aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/messaging.scm82
-rw-r--r--gnu/packages/patches/telegram-purple-adjust-test.patch14
2 files changed, 96 insertions, 0 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 42fb3733bb..0090fe12ce 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1763,4 +1763,86 @@ non-interoperable protocol, which allows it to support features like group
messaging that aren’t available to clients that connect over XMPP.")
(license license:expat)))
+(define-public telegram-purple
+ (package
+ (name "telegram-purple")
+ (version "1.3.1")
+ (home-page "https://github.com/majn/telegram-purple")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (sha256
+ (base32
+ "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "Makefile.in"
+ ;; By default these two directories point to Pidgin's own
+ ;; prefix.
+ (("^PLUGIN_DIR_PURPLE=.*")
+ (string-append
+ "exec_prefix := @exec_prefix@\n"
+ "PLUGIN_DIR_PURPLE := @libdir@/purple-2\n"))
+ (("^DATA_ROOT_DIR_PURPLE=.*")
+ "DATA_ROOT_DIR_PURPLE := @datarootdir@\n")
+
+ ;; Honor sysconfdir instead of trying to write to /etc.
+ (("DESTDIR\\)/etc/telegram-purple")
+ "DESTDIR)@sysconfdir@/telegram-purple"))
+ #t))
+ (patches (search-patches "telegram-purple-adjust-test.patch"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("pidgin" ,pidgin)
+ ("libgcrypt" ,libgcrypt)
+ ("libwebp" ,libwebp)
+ ("glib" ,glib)
+ ("gettext" ,gnu-gettext)
+ ("gtk+" ,gtk+-2)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; We're using release tag for repository checkout - let's prepare
+ ;; header defining GIT_COMMIT manually instead of running git to
+ ;; identify version which is being compiled. Git repository
+ ;; is removed anyway and only source code is kept.
+ (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"))))
+ #t))
+ (add-before 'configure 'set-SHELL-variables
+ ;; Set these environment variables so that 'tgl/configure' uses the
+ ;; right shell and not /bin/sh.
+ (lambda _
+ (let ((bash (which "bash")))
+ (setenv "SHELL" bash)
+ (setenv "CONFIG_SHELL" bash)
+ #t))))))
+ (synopsis "Telegram messaging support for Pidgin")
+ (description
+ "Telegram-purple is a plugin for Libpurple, the communication library
+used by the Pidgin instant messaging client, that adds support for the
+Telegram messenger.")
+
+ ;; Code under tgl/ (the Telegram library) is LGPLv2.1+, but the plugin
+ ;; itself is GPLv2+.
+ (license license:gpl2+)))
+
;;; messaging.scm ends here
diff --git a/gnu/packages/patches/telegram-purple-adjust-test.patch b/gnu/packages/patches/telegram-purple-adjust-test.patch
new file mode 100644
index 0000000000..db3b497d5d
--- /dev/null
+++ b/gnu/packages/patches/telegram-purple-adjust-test.patch
@@ -0,0 +1,14 @@
+This test incorrectly expects the libpurple search path to initially
+contain exactly one element. Remove this incorrect assertion.
+
+--- telegram-purple-1.3.1-checkout/test/loadtest.c 2018-10-27 16:25:06.258459600 +0200
++++ telegram-purple-1.3.1-checkout/test/loadtest.c 2018-10-27 16:25:11.830434770 +0200
+@@ -156,7 +156,7 @@ static void tdf_inject_plugin (void) {
+ printf ("Injecting our module into purple_plugins_* ...\n");
+ purple_plugins_init ();
+ GList *search_paths = purple_plugins_get_search_paths ();
+- assert (!search_paths->prev && !search_paths->next && search_paths->data);
++ assert (!search_paths->prev && search_paths->data);
+ GList *new_paths = g_list_append (search_paths, g_strdup ("bin/"));
+ assert (new_paths == search_paths);
+ // Load "my" path before the default.