diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/xfce4-panel-plugins.patch | 115 | ||||
-rw-r--r-- | gnu/packages/xfce.scm | 20 |
3 files changed, 13 insertions, 123 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 9950c9f3b6..7aeef689e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2370,7 +2370,6 @@ dist_patch_DATA = \ %D%/packages/patches/xfig-Enable-error-message-for-missing-libraries.patch \ %D%/packages/patches/xfig-Fix-double-free-when-requesting-MediaBox.patch \ %D%/packages/patches/xfig-Use-pkg-config-to-set-fontconfig-CFLAGS-and-LIBS.patch \ - %D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xgboost-use-system-dmlc-core.patch \ %D%/packages/patches/xmonad-dynamic-linking.patch \ diff --git a/gnu/packages/patches/xfce4-panel-plugins.patch b/gnu/packages/patches/xfce4-panel-plugins.patch deleted file mode 100644 index df5a0a914d..0000000000 --- a/gnu/packages/patches/xfce4-panel-plugins.patch +++ /dev/null @@ -1,115 +0,0 @@ -Search for xfce4 panel plugins in the directories specified -in XDG_DATA_DIRS and X_XFCE4_LIB_DIRS. For discussion of the -relevant issues, see: - - https://bugzilla.xfce.org/show_bug.cgi?id=5455 - -Patch by Mark H Weaver <mhw@netris.org> - ---- xfce4-panel-4.10.0/panel/panel-module.c.orig 2012-04-28 16:31:35.000000000 -0400 -+++ xfce4-panel-4.10.0/panel/panel-module.c 2014-12-14 01:31:55.728107386 -0500 -@@ -35,8 +35,14 @@ - #include <panel/panel-plugin-external-wrapper.h> - #include <panel/panel-plugin-external-46.h> - --#define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") --#define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins") -+#define PANEL_PLUGINS_LIB_DIR_TAIL (G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") -+#define PANEL_PLUGINS_LIB_DIR_TAIL_OLD (G_DIR_SEPARATOR_S "panel-plugins") -+ -+static const gchar *plugins_lib_dir_tails[] = -+{ -+ PANEL_PLUGINS_LIB_DIR_TAIL, -+ PANEL_PLUGINS_LIB_DIR_TAIL_OLD -+}; - - - typedef enum _PanelModuleRunMode PanelModuleRunMode; -@@ -335,21 +341,39 @@ - /* show a messsage if the old module path key still exists */ - g_message ("Plugin %s: The \"X-XFCE-Module-Path\" key is " - "ignored in \"%s\", the panel will look for the " -- "module in %s. See bug #5455 why this decision was made", -- name, filename, PANEL_PLUGINS_LIB_DIR); -+ "module in DIR%s for each DIR in $X_XFCE4_LIB_DIRS " -+ "(%s by default). See bug #5455 for discussion.", -+ name, filename, PANEL_PLUGINS_LIB_DIR_TAIL, LIBDIR); - } - #endif - -- path = g_module_build_path (PANEL_PLUGINS_LIB_DIR, module_name); -- found = g_file_test (path, G_FILE_TEST_EXISTS); -+ /* search for module */ -+ { -+ gchar *dirs_string; -+ gchar **dirs; -+ int i, j; -+ -+ dirs_string = (gchar *) g_getenv ("X_XFCE4_LIB_DIRS"); -+ if (!dirs_string) -+ dirs_string = LIBDIR; -+ dirs = g_strsplit (dirs_string, G_SEARCHPATH_SEPARATOR_S, 0); -+ -+ found = FALSE; -+ path = NULL; -+ -+ for (i = 0; !found && dirs[i] != NULL; i++) -+ for (j = 0; !found && j < G_N_ELEMENTS (plugins_lib_dir_tails); j++) -+ { -+ gchar *dir = g_strconcat (dirs[i], plugins_lib_dir_tails[j], NULL); -+ -+ g_free (path); -+ path = g_module_build_path (dir, module_name); -+ found = g_file_test (path, G_FILE_TEST_EXISTS); -+ g_free (dir); -+ } - -- if (!found) -- { -- /* deprecated location for module plugin directories */ -- g_free (path); -- path = g_module_build_path (PANEL_PLUGINS_LIB_DIR_OLD, module_name); -- found = g_file_test (path, G_FILE_TEST_EXISTS); -- } -+ g_strfreev (dirs); -+ } - - if (G_LIKELY (found)) - { ---- xfce4-panel-4.10.0/panel/panel-module-factory.c.orig 2012-04-28 16:31:35.000000000 -0400 -+++ xfce4-panel-4.10.0/panel/panel-module-factory.c 2014-12-13 23:55:27.439404812 -0500 -@@ -42,6 +42,11 @@ - #define PANEL_PLUGINS_DATA_DIR (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") - #define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins") - -+static const gchar *plugins_data_dir_tails[] = -+{ -+ (G_DIR_SEPARATOR_S "xfce4" G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins"), -+ (G_DIR_SEPARATOR_S "xfce4" G_DIR_SEPARATOR_S "panel-plugins") -+}; - - - static void panel_module_factory_finalize (GObject *object); -@@ -223,8 +228,22 @@ - panel_module_factory_load_modules (PanelModuleFactory *factory, - gboolean warn_if_known) - { -+ const gchar * const * system_data_dirs; -+ int i, j; -+ - panel_return_if_fail (PANEL_IS_MODULE_FACTORY (factory)); - -+ system_data_dirs = g_get_system_data_dirs (); -+ for (i = 0; system_data_dirs[i] != NULL; i++) -+ for (j = 0; j < G_N_ELEMENTS (plugins_data_dir_tails); j++) -+ { -+ gchar *dir; -+ -+ dir = g_strconcat (system_data_dirs[i], plugins_data_dir_tails[j], NULL); -+ panel_module_factory_load_modules_dir (factory, dir, warn_if_known); -+ g_free (dir); -+ } -+ - /* load from the new and old location */ - panel_module_factory_load_modules_dir (factory, PANEL_PLUGINS_DATA_DIR, warn_if_known); - panel_module_factory_load_modules_dir (factory, PANEL_PLUGINS_DATA_DIR_OLD, warn_if_known); diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index e6499987e4..0315179ecb 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -441,7 +441,7 @@ windowing-system-independent manner.") (define-public xfce4-panel (package (name "xfce4-panel") - (version "4.18.6") + (version "4.20.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -449,12 +449,17 @@ windowing-system-independent manner.") name "-" version ".tar.bz2")) (sha256 (base32 - "0qkw1msrvq7hc4mjg9iai0kymgkrpj1nijv04zjbdfcbymhp2cr1")) - (patches (search-patches "xfce4-panel-plugins.patch")))) + "1f235lwmqavvsay9899gm7p2z3fdha6qgx05wczikhhnbmgwsczz")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-configure + (lambda _ + (substitute* "configure" + ;; XDG_CHECK_PACKAGE_BINARY requires an absolute path. + (("\\$PKG_CONFIG --variable=gdbus_codegen gio-2.0") + "type -p gdbus-codegen")))) (add-after 'unpack 'fix-tzdata-path (lambda* (#:key inputs #:allow-other-keys) (substitute* (string-append "plugins/clock/clock.c") @@ -470,15 +475,16 @@ windowing-system-independent manner.") (inputs (list tzdata ;; For fix-tzdata-path phase only. exo - gtk+-2 xfconf garcon + gtk-layer-shell libwnck - libxfce4ui)) + libxfce4ui + libxfce4windowing)) (native-search-paths (list (search-path-specification - (variable "X_XFCE4_LIB_DIRS") - (files '("lib/xfce4"))))) + (variable "XDG_DATA_DIRS") + (files '("share"))))) (home-page "https://www.xfce.org/") (synopsis "Xfce desktop panel") (description |