summary refs log tree commit diff
path: root/gnu/packages/patches/pidgin-add-search-path.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/pidgin-add-search-path.patch')
-rw-r--r--gnu/packages/patches/pidgin-add-search-path.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/packages/patches/pidgin-add-search-path.patch b/gnu/packages/patches/pidgin-add-search-path.patch
new file mode 100644
index 0000000000..00eb9e4ca6
--- /dev/null
+++ b/gnu/packages/patches/pidgin-add-search-path.patch
@@ -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,