gnu: Add pidgin.

* gnu/packages/patches/pidgin-add-search-path.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/messaging.scm (pidgin): New variable.
This commit is contained in:
Mark H Weaver 2015-08-04 00:12:16 -04:00
parent 008b525734
commit b1a2bc895a
3 changed files with 122 additions and 1 deletions

View File

@ -578,6 +578,7 @@ dist_patch_DATA = \
gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/perl-tk-x11-discover.patch \
gnu/packages/patches/pidgin-add-search-path.patch \
gnu/packages/patches/pingus-sdl-libs-config.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \

View File

@ -21,17 +21,29 @@
(define-module (gnu packages messaging)
#:use-module ((guix licenses)
#:select (gpl2+ gpl2 lgpl2.1 bsd-2))
#:select (gpl2+ gpl2 lgpl2.1 lgpl2.0+ bsd-2 non-copyleft))
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages enchant)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libidn)
#:use-module (gnu packages xml)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages glib)
#:use-module (gnu packages python)
@ -224,4 +236,87 @@ networks. It is easy to configure, can cope with dynamic IP addresses, and
supports IPv6, SSL-protected connections as well as PAM for authentication.")
(license gpl2+)))
(define-public pidgin
(package
(name "pidgin")
(version "2.10.11")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pidgin/Pidgin/"
version "/" name "-" version ".tar.bz2"))
(sha256
(base32
"01s0q30qrjlzj7kkz6f8lvrwsdd55a9yjh2xjjwyyxzw849j3bpj"))
(patches (list (search-patch "pidgin-add-search-path.patch")))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("check" ,check)
("intltool" ,intltool)
("gconf" ,gconf)
("python" ,python-2)
("doxygen" ,doxygen)))
(inputs
`(("gtk+" ,gtk+-2)
("libgcrypt" ,libgcrypt)
("gnutls" ,gnutls)
("cyrus-sasl" ,cyrus-sasl)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("python2-dbus" ,python2-dbus)
("libidn" ,libidn)
("libltdl" ,libltdl)
("libxml2" ,libxml2)
;; TODO: gstreamer: patches needed to support gstreamer-1.0 or later
;; TODO: farstream
;; TODO: meanwhile
;; TODO: network-manager
;; TODO: gtkspell
;; TODO: libxephyr
;; TODO: libgadu
("libxslt" ,libxslt)
("avahi" ,avahi)
("ncurses" ,ncurses)
("sqlite" ,sqlite)
("libice" ,libice)
("libsm" ,libsm)
("libxscrnsaver" ,libxscrnsaver)
("startup-notification" ,startup-notification)))
(arguments
`(#:configure-flags
(list "--disable-gtkspell"
"--disable-tcl"
"--disable-meanwhile"
"--disable-nm" ; XXX remove when we have network-manager
"--disable-vv" ; XXX remove when we have farstream and gstreamer
"--disable-gstreamer" ; XXX patches needed to support gstreamer-1.0
"--enable-cyrus-sasl"
(string-append "--with-ncurses-headers="
(assoc-ref %build-inputs "ncurses")
"/include"))))
(native-search-paths
(list (search-path-specification
(variable "PURPLE_PLUGIN_PATH")
(files (list (string-append "lib/purple-"
(version-prefix version 1))
"lib/pidgin")))))
(home-page "http://www.pidgin.im/")
(synopsis "Graphical multi-protocol instant messaging client")
(description
"Pidgin is a modular instant messaging client that supports many popular
chat protocols.")
(license
(list
gpl2+ ; Most of the code
lgpl2.1 ; GG protocol plugin (libpurple/protocols/gg/lib)
lgpl2.0+ ; OSCAR protocol plugin (libpurple/protocols/oscar)
;; The following licenses cover the zephyr protocol plugin:
(non-copyleft
"file://libpurple/protocols/zephyr/mit-copyright.h"
"See libpurple/protocols/zephyr/mit-copyright.h in the distribution.")
(non-copyleft
"file://libpurple/protocols/zephyr/mit-sipb-copyright.h"
"See libpurple/protocols/zephyr/mit-sipb-copyright.h in the distribution.")))))
;;; messaging.scm ends here

View File

@ -0,0 +1,25 @@
Support the PURPLE_PLUGIN_PATH environment variable. This patch is based on
one from Nixpkgs, but properly handles the case where that variable is unset.
--- pidgin-2.10.11/libpurple/plugin.c.orig 2014-11-23 11:41:25.000000000 -0500
+++ pidgin-2.10.11/libpurple/plugin.c 2015-08-04 14:31:02.257366144 -0400
@@ -1178,8 +1178,19 @@
void
purple_plugins_init(void) {
void *handle = purple_plugins_get_handle();
+ const gchar *purple_plugin_path;
purple_plugins_add_search_path(LIBDIR);
+ purple_plugin_path = g_getenv("PURPLE_PLUGIN_PATH");
+ if (purple_plugin_path && *purple_plugin_path) {
+ gchar **paths = g_strsplit(purple_plugin_path, ":", -1);
+ if (paths) {
+ gchar **p;
+ for (p = paths; *p; ++p)
+ if (**p) purple_plugins_add_search_path(*p);
+ }
+ g_strfreev(paths);
+ }
purple_signal_register(handle, "plugin-load",
purple_marshal_VOID__POINTER,