about summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2014-10-18 12:22:37 +0400
committerVladimír Čunát <vcunat@gmail.com>2014-10-23 13:03:23 +0200
commit2feaa0278a7cb6168faf3774c7e38cb0dd4a1777 (patch)
tree9e392883f3c68f13ba2cdda11278303e81734fcd /pkgs/applications/networking
parent3b133beb7a20ceb30f6088265217e3482d4063bb (diff)
downloadnixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar.gz
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar.bz2
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar.lz
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar.xz
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.tar.zst
nixlib-2feaa0278a7cb6168faf3774c7e38cb0dd4a1777.zip
pidgin: add wrapper (close #4577, fixes #992)
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch20
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix21
3 files changed, 44 insertions, 2 deletions
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch
new file mode 100644
index 000000000000..b0758777186a
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch
@@ -0,0 +1,20 @@
+diff --git a/libpurple/plugin.c b/libpurple/plugin.c
+index 4f2b402..fda9add 100644
+--- a/libpurple/plugin.c
++++ b/libpurple/plugin.c
+@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) {
+ void
+ purple_plugins_init(void) {
+ 	void *handle = purple_plugins_get_handle();
++	gchar **paths, **p;
+ 
+ 	purple_plugins_add_search_path(LIBDIR);
++	paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1);
++	if (paths) {
++		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,
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 814a191c457a..12323bfe2978 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -21,7 +21,8 @@
 } :
 
 stdenv.mkDerivation rec {
-  name = "pidgin-2.10.9";
+  majorVersion = "2";
+  name = "pidgin-${majorVersion}.10.9";
   src = fetchurl {
     url = "mirror://sourceforge/pidgin/${name}.tar.bz2";
     sha256 = "06gka47myl9f5x0flkq74ml75akkf28rx9sl8pm3wqkzazc2wdnw";
@@ -46,7 +47,7 @@ stdenv.mkDerivation rec {
     pkgconfig gtk perl perlXMLParser gettext
   ];
 
-  patches = [./pidgin-makefile.patch ];
+  patches = [./pidgin-makefile.patch ./add-search-path.patch ];
 
   configureFlags="--with-nspr-includes=${nspr}/include/nspr --with-nspr-libs=${nspr}/lib --with-nss-includes=${nss}/include/nss --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include --disable-meanwhile --disable-nm --disable-tcl"
   + (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no")
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
new file mode 100644
index 000000000000..a10eb6864cca
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildEnv, pidgin, makeWrapper, plugins }:
+
+let drv = buildEnv {
+  name = "${pidgin.name}-with-plugins";
+
+  paths = [ pidgin ] ++ plugins;
+
+  postBuild = ''
+    # TODO: This could be avoided if buildEnv could be forced to create all directories
+    if [ -L $out/bin ]; then
+      rm $out/bin
+      mkdir $out/bin
+      for i in ${pidgin}/bin/*; do
+        ln -s $i $out/bin
+      done
+    fi
+    wrapProgram $out/bin/pidgin \
+      --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin"
+  '';
+  };
+in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
\ No newline at end of file