Subject: [PATCH] gnu: Add telegram-purple.

From: Tomáš Čech <[email-masked]>
Date: Thu, 13 Sep 2018 13:45:24 +0200

* gnu/packages/messaging.scm (telegram-purple): New variable.
---
 gnu/packages/messaging.scm | 70 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 69 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 42a0847b7..90c1b7b47 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -96,7 +96,8 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages photo)
-  #:use-module (gnu packages texinfo))
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages version-control))
 
 (define-public libotr
   (package
@@ -1719,4 +1720,71 @@ QMatrixClient project.")
     (license (list license:gpl3+ ; all source code
                    license:lgpl3+)))) ; icons/breeze
 
+(define-public telegram-purple
+  (package
+    (name "telegram-purple")
+    (version "1.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/majn/telegram-purple")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              (sha256
+               (base32
+                "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("git" ,git)
+       ("which" ,which)))
+    (inputs
+     `(("pidgin" ,pidgin)
+       ("libgcrypt" ,libgcrypt)
+       ("libwebp" ,libwebp)
+       ("glib" ,glib)
+       ("gettext" ,gnu-gettext)
+       ("gtk+" ,gtk+-2)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-commit.h
+           (lambda _
+             (with-output-to-file "./commit.h"
+               (lambda ()
+                 (display
+                  (string-append "//generated by guix, use version instead of "
+                                 "commit\n"
+                                 "#ifndef GIT_COMMIT\n"
+                                 "#  define GIT_COMMIT \"v"
+                                 ,version "\"\n"
+                                 "#endif\n"))))))
+         (replace 'configure
+           ;; configure does not work followed by both "SHELL=..." and
+           ;; "CONFIG_SHELL=..."; set environment variables instead
+           (lambda* (#:key outputs configure-flags #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bash (which "bash"))
+                    (flags `(,(string-append "--prefix=" out)
+                             ,@configure-flags)))
+               (setenv "SHELL" bash)
+               (setenv "CONFIG_SHELL" bash)
+               (apply invoke "./configure" flags))))
+         (replace 'install
+           ;; install is trying to use pidgin's lib directory instead of
+           ;; its own
+           (lambda* (#:key outputs configure-flags #:allow-other-keys)
+             (let* ((tgt (string-append (assoc-ref outputs "out")
+                                        "/lib/purple-2/")))
+               (mkdir-p tgt)
+               (install-file "bin/telegram-purple.so"
+                             tgt)))))))
+    ;; gettext
+    (home-page "https://github.com/majn/telegram-purple")
+    (synopsis "Telegram support for pidgin")
+    (description "Telegram protocol support for pidgin.")
+    (license license:gpl2+))))
+
 ;;; messaging.scm ends here
-- 
2.18.0