From e9f2dc883074fbba612f4e57a7bff06a8a6420e7 Mon Sep 17 00:00:00 2001 From: Raymond Gauthier Date: Fri, 18 Sep 2015 02:02:16 -0400 Subject: thunar: plugin improvements (close #9908) Improve thunar/thunarx so that thunar's plugin directory could be overriden using a `THUNARX_MODULE_DIR` environment variable so that plugins not built along with the `thunar` package could be installed as well. This could allow one to wrap `thunar` in a `thunar-with-plugins` package where plugins are declared instead of being found (a bit in the same fashion as gstreamer plugins). --- .../xfce/core/thunarx_plugins_directory.patch | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pkgs/desktops/xfce/core/thunarx_plugins_directory.patch (limited to 'pkgs/desktops/xfce/core/thunarx_plugins_directory.patch') diff --git a/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch new file mode 100644 index 00000000000..e1431d86b14 --- /dev/null +++ b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch @@ -0,0 +1,48 @@ +diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c +index 31b8835..a3e7f4e 100644 +--- a/thunarx/thunarx-provider-factory.c ++++ b/thunarx/thunarx-provider-factory.c +@@ -141,12 +141,19 @@ static GList* + thunarx_provider_factory_load_modules (ThunarxProviderFactory *factory) + { + ThunarxProviderModule *module; ++ const gchar *thunar_dir; + const gchar *name; + GList *modules = NULL; + GList *lp; + GDir *dp; + +- dp = g_dir_open (THUNARX_DIRECTORY, 0, NULL); ++ thunar_dir = g_getenv("THUNARX_MODULE_DIR"); ++ if (NULL == thunar_dir) ++ { ++ thunar_dir = THUNARX_DIRECTORY; ++ } ++ ++ dp = g_dir_open (thunar_dir, 0, NULL); + if (G_LIKELY (dp != NULL)) + { + /* determine the types for all existing plugins */ +diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c +index 023ad2a..6c21997 100644 +--- a/thunarx/thunarx-provider-module.c ++++ b/thunarx/thunarx-provider-module.c +@@ -174,10 +174,17 @@ static gboolean + thunarx_provider_module_load (GTypeModule *type_module) + { + ThunarxProviderModule *module = THUNARX_PROVIDER_MODULE (type_module); ++ const gchar *thunar_dir; + gchar *path; ++ ++ thunar_dir = g_getenv("THUNARX_MODULE_DIR"); ++ if (NULL == thunar_dir) ++ { ++ thunar_dir = THUNARX_DIRECTORY; ++ } + + /* load the module using the runtime link editor */ +- path = g_build_filename (THUNARX_DIRECTORY, type_module->name, NULL); ++ path = g_build_filename (thunar_dir, type_module->name, NULL); + module->library = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); + g_free (path); + -- cgit 1.4.1