gnu: Add telegram-purple.

* gnu/packages/messaging.scm (telegram-purple): New variable.
* gnu/packages/patches/telegram-purple-adjust-test.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Tomáš Čech 2018-10-21 18:18:13 +02:00 committed by Ludovic Courtès
parent 932d160056
commit e9a041577a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 97 additions and 0 deletions

View File

@ -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 \

View File

@ -1763,4 +1763,86 @@ non-interoperable protocol, which allows it to support features like group
messaging that arent 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

View File

@ -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.