diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0001-build-Be-sure-to-generate-sub-headers-before-includi.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-build-Be-sure-to-generate-sub-headers-before-includi.patch new file mode 100644 index 0000000000..67d2b4eaa8 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-build-Be-sure-to-generate-sub-headers-before-includi.patch @@ -0,0 +1,311 @@ +From c259dfbbb8e139b43af179acec9824ecf849d34d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= +Date: Thu, 19 Feb 2026 11:44:35 +0100 +Subject: [PATCH 1/2] build: Be sure to generate sub-headers before including + libxfce4panel.h + +Fixes: #969 + +Upstream-Status: Backport [https://gitlab.xfce.org/xfce/xfce4-panel/-/commit/c259dfbbb8e139b43af179acec9824ecf849d34d] + +Signed-off-by: Wenlin Kang +--- + common/meson.build | 3 +++ + .../{libxfce4panel.h => libxfce4panel.h.in} | 0 + libxfce4panel/meson.build | 17 +++++++++++++++-- + migrate/meson.build | 3 +++ + panel/meson.build | 1 + + plugins/actions/meson.build | 5 ++++- + plugins/applicationsmenu/meson.build | 5 ++++- + plugins/clock/meson.build | 5 ++++- + plugins/directorymenu/meson.build | 5 ++++- + plugins/launcher/meson.build | 5 ++++- + plugins/pager/meson.build | 5 ++++- + plugins/separator/meson.build | 5 ++++- + plugins/showdesktop/meson.build | 5 ++++- + plugins/systray/meson.build | 5 ++++- + plugins/tasklist/meson.build | 5 ++++- + plugins/windowmenu/meson.build | 5 ++++- + wrapper/meson.build | 3 +++ + 17 files changed, 69 insertions(+), 13 deletions(-) + rename libxfce4panel/{libxfce4panel.h => libxfce4panel.h.in} (100%) + +diff --git a/common/meson.build b/common/meson.build +index ce7f3a98c..d880455ac 100644 +--- a/common/meson.build ++++ b/common/meson.build +@@ -8,6 +8,9 @@ libpanel_common = static_library( + 'panel-xfconf.c', + 'panel-xfconf.h', + ], ++ sources: [ ++ libxfce4panel_h, ++ ], + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libpanel-common'), + ], +diff --git a/libxfce4panel/libxfce4panel.h b/libxfce4panel/libxfce4panel.h.in +similarity index 100% +rename from libxfce4panel/libxfce4panel.h +rename to libxfce4panel/libxfce4panel.h.in +diff --git a/libxfce4panel/meson.build b/libxfce4panel/meson.build +index bb66b1534..150319388 100644 +--- a/libxfce4panel/meson.build ++++ b/libxfce4panel/meson.build +@@ -6,7 +6,6 @@ libpanel_install_dir = get_option('prefix') / get_option('includedir') / libpane + + libpanel_headers = [ + 'libxfce4panel-enums.h', +- 'libxfce4panel.h', + 'xfce-arrow-button.h', + 'xfce-panel-convenience.h', + 'xfce-panel-image.h', +@@ -16,7 +15,7 @@ libpanel_headers = [ + + # do not add this header to GI sources, it creates unsolvable conflicts with other + # libs whose identifier prefix is Xfce, e.g. libxfce4ui and libxfce4util +-configure_file( ++libpanel_config_h = configure_file( + configuration: configuration_data({ + 'LIBXFCE4PANEL_VERSION': meson.project_version(), + 'LIBXFCE4PANEL_VERSION_MAJOR': version_parts[0], +@@ -84,6 +83,20 @@ libpanel_enums += gnome.mkenums( + ftail: '\n#define __LIBXFCE4PANEL_ENUM_TYPES_C__\n#include "libxfce4panel-visibility.c"\n', + ) + ++libxfce4panel_h = custom_target( ++ 'libxfce4panel.h', ++ input: 'libxfce4panel.h.in', ++ output: 'libxfce4panel.h', ++ command: ['cp', '@INPUT@', '@OUTPUT@'], ++ depends: [ ++ libpanel_enums, ++ ], ++ depend_files: [ ++ libpanel_config_h, ++ ], ++) ++libpanel_sources += libxfce4panel_h ++ + libpanel_deps = [ + glib, + gmodule, +diff --git a/migrate/meson.build b/migrate/meson.build +index 8159f6336..19d95a2eb 100644 +--- a/migrate/meson.build ++++ b/migrate/meson.build +@@ -21,6 +21,9 @@ migrate_sources = [ + executable( + 'migrate', + migrate_sources, ++ sources: [ ++ libxfce4panel_h, ++ ], + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('xfce4-panel-migrate'), + '-DXDGCONFIGDIR="@0@"'.format(xdgconfdir), +diff --git a/panel/meson.build b/panel/meson.build +index 78e2d8d15..6c2fd4e1e 100644 +--- a/panel/meson.build ++++ b/panel/meson.build +@@ -73,6 +73,7 @@ executable( + sources: [ + xfce_revision_h, + xfce4_panel_resources_c, ++ libxfce4panel_h, + ], + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('xfce4-panel'), +diff --git a/plugins/actions/meson.build b/plugins/actions/meson.build +index 55dcd2e1f..c3d824d41 100644 +--- a/plugins/actions/meson.build ++++ b/plugins/actions/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'actions', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libactions'), +diff --git a/plugins/applicationsmenu/meson.build b/plugins/applicationsmenu/meson.build +index efa825f00..15e06af0f 100644 +--- a/plugins/applicationsmenu/meson.build ++++ b/plugins/applicationsmenu/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'applicationsmenu', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libapplicationsmenu'), +diff --git a/plugins/clock/meson.build b/plugins/clock/meson.build +index b08f3c39c..8e005f486 100644 +--- a/plugins/clock/meson.build ++++ b/plugins/clock/meson.build +@@ -22,7 +22,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'clock', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libclock'), +diff --git a/plugins/directorymenu/meson.build b/plugins/directorymenu/meson.build +index 43e81abf3..0bf48bae6 100644 +--- a/plugins/directorymenu/meson.build ++++ b/plugins/directorymenu/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'directorymenu', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libdirectorymenu'), +diff --git a/plugins/launcher/meson.build b/plugins/launcher/meson.build +index d228eca54..8815b5baa 100644 +--- a/plugins/launcher/meson.build ++++ b/plugins/launcher/meson.build +@@ -10,7 +10,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'launcher', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('liblauncher'), +diff --git a/plugins/pager/meson.build b/plugins/pager/meson.build +index 30fcbdef6..45e34c62b 100644 +--- a/plugins/pager/meson.build ++++ b/plugins/pager/meson.build +@@ -10,7 +10,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'pager', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libpager'), +diff --git a/plugins/separator/meson.build b/plugins/separator/meson.build +index 9de0289b3..26581e90e 100644 +--- a/plugins/separator/meson.build ++++ b/plugins/separator/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'separator', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libseparator'), +diff --git a/plugins/showdesktop/meson.build b/plugins/showdesktop/meson.build +index 2e4812de4..c599138c2 100644 +--- a/plugins/showdesktop/meson.build ++++ b/plugins/showdesktop/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'showdesktop', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libshowdesktop'), +diff --git a/plugins/systray/meson.build b/plugins/systray/meson.build +index 2efa088d4..ea364ccff 100644 +--- a/plugins/systray/meson.build ++++ b/plugins/systray/meson.build +@@ -52,7 +52,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'systray', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libsystray'), +diff --git a/plugins/tasklist/meson.build b/plugins/tasklist/meson.build +index 333e91c21..61b889536 100644 +--- a/plugins/tasklist/meson.build ++++ b/plugins/tasklist/meson.build +@@ -10,7 +10,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'tasklist', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libtasklist'), +diff --git a/plugins/windowmenu/meson.build b/plugins/windowmenu/meson.build +index 71125ffc7..07a6d767a 100644 +--- a/plugins/windowmenu/meson.build ++++ b/plugins/windowmenu/meson.build +@@ -8,7 +8,10 @@ plugin_install_subdir = 'xfce4' / 'panel' / 'plugins' + shared_module( + 'windowmenu', + plugin_sources, +- sources: xfce4_panel_resources_c, ++ sources: [ ++ xfce4_panel_resources_c, ++ libxfce4panel_h, ++ ], + gnu_symbol_visibility: 'hidden', + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('libwindowmenu'), +diff --git a/wrapper/meson.build b/wrapper/meson.build +index 4f33fd89a..e88644c1f 100644 +--- a/wrapper/meson.build ++++ b/wrapper/meson.build +@@ -31,6 +31,9 @@ wrapper_sources += gnome.gdbus_codegen( + executable( + 'wrapper-2.0', + wrapper_sources, ++ sources: [ ++ libxfce4panel_h, ++ ], + c_args: [ + '-DG_LOG_DOMAIN="@0@"'.format('xfce4-panel-wrapper'), + ], +-- +2.43.0 + diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0002-build-Install-missing-libxfce4panel.h.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-build-Install-missing-libxfce4panel.h.patch new file mode 100644 index 0000000000..ee1f48086a --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-build-Install-missing-libxfce4panel.h.patch @@ -0,0 +1,30 @@ +From 151fec5f91fcb3dc5d55aee82a6d717dad77e877 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= +Date: Sun, 22 Feb 2026 17:11:05 +0100 +Subject: [PATCH 2/2] build: Install missing libxfce4panel.h + +Fixes: c259dfbbb8e139b43af179acec9824ecf849d34d + +Upstream-Status: Backport [https://gitlab.xfce.org/xfce/xfce4-panel/-/commit/151fec5f91fcb3dc5d55aee82a6d717dad77e877] + +Signed-off-by: Wenlin Kang +--- + libxfce4panel/meson.build | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libxfce4panel/meson.build b/libxfce4panel/meson.build +index 150319388..38d8ad198 100644 +--- a/libxfce4panel/meson.build ++++ b/libxfce4panel/meson.build +@@ -94,6 +94,8 @@ libxfce4panel_h = custom_target( + depend_files: [ + libpanel_config_h, + ], ++ install: true, ++ install_dir: libpanel_install_dir, + ) + libpanel_sources += libxfce4panel_h + +-- +2.43.0 + diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb index 00c9352dec..350784e083 100644 --- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb +++ b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb @@ -15,6 +15,8 @@ SRC_URI += " \ file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ file://0002-use-lxdm-to-replace-dm-tool.patch \ file://0001-build-Do-not-display-full-path-in-generated-headers.patch \ + file://0001-build-Be-sure-to-generate-sub-headers-before-includi.patch \ + file://0002-build-Install-missing-libxfce4panel.h.patch \ " SRC_URI[sha256sum] = "c940dae515bef4af08a126011d2fd873ce99e815157ba8cef5332195bb60e51e"