aboutsummaryrefslogtreecommitdiff
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,