diff --git a/gnu/local.mk b/gnu/local.mk index c46f3a8c4a..ba86d556a0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1166,6 +1166,7 @@ dist_patch_DATA = \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ + %D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ %D%/packages/patches/thefuck-test-environ.patch \ diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index dd937ef53e..0d818514a7 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1767,15 +1767,35 @@ messaging that aren’t available to clients that connect over XMPP.") (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 "https://github.com/majn/telegram-purple") + (url home-page) (commit (string-append "v" version)) (recursive? #t))) (sha256 (base32 - "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp")))) + "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) @@ -1791,7 +1811,7 @@ messaging that aren’t available to clients that connect over XMPP.") (arguments `(;; disable tests for now - tests are failing on pidgin path ;; verification but it seems to be harmless - #:tests? #f + #:tests? #t #:phases (modify-phases %standard-phases ;; We're using release tag for repository checkout - let's prepare @@ -1808,32 +1828,24 @@ messaging that aren’t available to clients that connect over XMPP.") "#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))) + "#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) - (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-purple is a Libpurple protocol plugin that adds -support for the Telegram messenger.") + #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.