(address . guix-patches@gnu.org)
Hello Guix!
Please find the attached patch-set to add telegram-cli and its
dependencies into Guix.
Regards,
RG.
From 46d83425664d862f20fd6a4e671cf68a0b2eb5cf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 18 Jan 2021 04:04:25 -0500
Subject: [PATCH 18/18] gnu: Add telegram-client.
* gnu/packages/telegram.scm (telegram-cli): New variable.
---
gnu/packages/telegram.scm | 83 +++++++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
Toggle diff (107 lines)
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 4c7e34a1ff..1c75168f21 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -41,13 +41,18 @@
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux)
#:use-module (gnu packages lxqt)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)
@@ -443,3 +448,81 @@ a part of telegram-cli, but now being maintained separately.")
(description "TGL is the telegram library for telegram-cli.")
(home-page "https://github.com/vysheng/tgl")
(license license:lgpl2.1+)))
+
+(define-public telegram-cli
+ (package
+ (name "telegram-cli")
+ (version "1.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/vysheng/tg.git")
+ (commit "6547c0b21b977b327b3c5e8142963f4bc246187a")))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "0c1w7jgska71jjbvg1y09v52549pwa4zkdjly18yxywn7gayd2p6"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:configure-flags
+ (list
+ ;; Use gcrypt instead of openssl.
+ "--disable-openssl")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-tgl-and-tlparser
+ (lambda _
+ (for-each delete-file
+ (list
+ "Makefile.tgl"
+ "Makefile.tl-parser"))
+ (substitute* "Makefile.in"
+ (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
+ "")
+ (("include \\$\\{srcdir\\}/Makefile\\.tgl")
+ "")
+ (("-I\\$\\{srcdir\\}/tgl")
+ (string-append "-I" (assoc-ref %build-inputs "tgl")
+ "/include/tgl"))
+ (("AUTO=auto")
+ (string-append "AUTO=" (assoc-ref %build-inputs "tgl")
+ "/include/tgl/auto"))
+ (("LIB=libs")
+ (string-append "LIB=" (assoc-ref %build-inputs "tgl")
+ "/lib/tgl")))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (source (string-append (getenv "TEMP") "/source")))
+ ;; Install client.
+ (install-file
+ (string-append source "/bin/telegram-cli")
+ (string-append out "/bin"))
+ ;; Install server public-key.
+ (install-file
+ (string-append source "/server.pub")
+ (string-append out "/etc/telegram-cli")))
+ #t)))))
+ (native-inputs
+ `(("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("jansson" ,jansson)
+ ("libconfig" ,libconfig)
+ ("libevent" ,libevent)
+ ("libgcrypt" ,libgcrypt)
+ ("lua" ,lua)
+ ("openssl" ,openssl)
+ ("python" ,python)
+ ("readline" ,readline)
+ ("tgl" ,tgl)
+ ("tl-parser" ,tl-parser)
+ ("zlib" ,zlib)))
+ (synopsis "Telegram Messenger CLI")
+ (description "TG is the command-line interface for Telegram Messenger.")
+ (home-page "https://github.com/vysheng/tgl")
+ (license license:gpl2+)))
--
2.30.0
From 8c4aca963cda5fe706905dc8e67cf205845c662b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sun, 17 Jan 2021 22:03:11 -0500
Subject: [PATCH 17/18] gnu: Add tgl.
* gnu/packages/telegram.scm (tgl): New variable.
---
gnu/packages/telegram.scm | 91 +++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
Toggle diff (119 lines)
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 3c3aef4b9a..4c7e34a1ff 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -32,10 +32,12 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages language)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux)
#:use-module (gnu packages lxqt)
@@ -53,6 +55,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system qt))
(define-public tg_owt
@@ -352,3 +355,91 @@ messenger.")
a part of telegram-cli, but now being maintained separately.")
(home-page "https://github.com/vysheng/tl-parser")
(license license:gpl2+))))
+
+(define-public tgl
+ (package
+ (name "tgl")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/vysheng/tgl.git")
+ (commit "ffb04caca71de0cddf28cd33a4575922900a59ed")))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "0cf5s7ygslb5klg1qv9qdc3hivhspmvh3zkacyyhd2yyikb5p0f9"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:configure-flags
+ (list
+ ;; Use gcrypt instead of openssl.
+ "--disable-openssl"
+ ;; Enable extended queries system.
+ "--enable-extf"
+ ;; Include libevent-based net and timers.
+ "--enable-libevent")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-tl-parser
+ (lambda _
+ (delete-file "Makefile.tl-parser")
+ (substitute* "Makefile.in"
+ (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
+ "")
+ (("\\$\\{EXE\\}/tl-parser")
+ "tl-parser"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin-to (string-append out "/bin"))
+ (include-to (string-append out "/include"))
+ (lib-to (string-append out "/lib"))
+ (source (string-append (getenv "TEMP") "/source"))
+ (bin-from (string-append source "/bin"))
+ (lib-from (string-append source "/libs")))
+ ;; Install executables.
+ (with-directory-excursion bin-from
+ (for-each
+ (lambda (file)
+ (install-file file bin-to))
+ (list
+ "generate")))
+ ;; Install headers.
+ (with-directory-excursion source
+ (for-each
+ (lambda (file)
+ (install-file file (string-append include-to "/tgl/crypto"))
+ (delete-file file))
+ (find-files "crypto" "\\.h$"))
+ (for-each
+ (lambda (file)
+ (install-file file (string-append include-to "/tgl/auto"))
+ (delete-file file))
+ (find-files "auto" "\\.h$"))
+ (for-each
+ (lambda (file)
+ (install-file file (string-append include-to "/tgl"))
+ (delete-file file))
+ (find-files "." "\\.h$")))
+ ;; Install libraries.
+ (for-each
+ (lambda (file)
+ (install-file file (string-append lib-to "/tgl")))
+ (find-files lib-from "\\.(a|so)$")))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libevent" ,libevent)
+ ("libgcrypt" ,libgcrypt)
+ ("tl-parser" ,tl-parser)
+ ("zlib" ,zlib)))
+ (synopsis "Telegram Library")
+ (description "TGL is the telegram library for telegram-cli.")
+ (home-page "https://github.com/vysheng/tgl")
+ (license license:lgpl2.1+)))
--
2.30.0
From 656d1067c9c9c15fc69386071dd94c0b29040fd4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sun, 17 Jan 2021 12:16:34 -0500
Subject: [PATCH 16/18] gnu: Add tl-parser.
* gnu/packages/telegram.scm (tl-parser): New variable.
---
gnu/packages/telegram.scm | 49 +++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
Toggle diff (59 lines)
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 9759a11873..3c3aef4b9a 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -303,3 +303,52 @@ messenger.")
license:lgpl2.1+
;; Others
license:gpl3+))))
+
+(define-public tl-parser
+ (let ((commit "1933e76f8f4fb74311be723b432e4c56e3a5ec06")
+ (revision "1"))
+ (package
+ (name "tl-parser")
+ (version
+ (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/vysheng/tl-parser.git")
+ (commit commit)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "13cwi247kajzpkbl86hnwmn1sn2h6rqndz6khajbqj0mlw9mv4hq"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (include (string-append out "/include"))
+ (source (string-append (getenv "TEMP") "/source"))
+ (build (string-append (getenv "TEMP") "/build")))
+ ;; Install executables.
+ (with-directory-excursion build
+ (for-each
+ (lambda (file)
+ (install-file file bin))
+ (list
+ "tl-parser")))
+ ;; Install headers.
+ (for-each
+ (lambda (file)
+ (install-file file (string-append include "/tl-parser")))
+ (find-files source "\\.h$")))
+ #t)))))
+ (synopsis "Parse tl scheme to tlo")
+ (description "TL-Parser is a tl scheme to tlo file parser. It was formely
+a part of telegram-cli, but now being maintained separately.")
+ (home-page "https://github.com/vysheng/tl-parser")
+ (license license:gpl2+))))
--
2.30.0