diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/messaging.scm | 82 | ||||
-rw-r--r-- | gnu/packages/patches/telegram-purple-adjust-test.patch | 14 |
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. |