[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#32727: [PATCH] gnu: Add telegram-purple.
From: |
Ludovic Courtès |
Subject: |
bug#32727: [PATCH] gnu: Add telegram-purple. |
Date: |
Sat, 27 Oct 2018 16:35:03 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hello Tomáš,
Tomáš Čech <address@hidden> skribis:
> * gnu/packages/messaging.scm (telegram-purple): New variable.
I’ve applied this patch but I ended up making substantial changes (patch
attached), in particular:
• Arrange to run “make install” so that all the files get installed
(locales, icons, etc.) and not just the .so;
• Adjust the test/loadtest.c so that it actually runs;
• Arrange to keep the standard ‘configure’ phase rather than
overriding it.
The other changes are more cosmetic.
Are we really more picky than openSuSE? :-)
Thank you,
Ludo’.
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 := @address@hidden"
+ "PLUGIN_DIR_PURPLE := @libdir@/purple-2\n"))
+ (("^DATA_ROOT_DIR_PURPLE=.*")
+ "DATA_ROOT_DIR_PURPLE := @address@hidden")
+
+ ;; 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.