xfce4-panel: backport patches to fix build failure

Backport upstream patches to fix the following build error:

| In file included from ../sources/xfce4-panel-4.21.1/migrate/main.c:23:
| ../sources/xfce4-panel-4.21.1/libxfce4panel/libxfce4panel.h:27:10: fatal error: libxfce4panel/libxfce4panel-enum-types.h: No such file or directory
|    27 | #include <libxfce4panel/libxfce4panel-enum-types.h>
|       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| compilation terminated.

Reference:
  https://gitlab.xfce.org/xfce/xfce4-panel/-/work_items/969

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Wenlin Kang
2026-05-28 11:03:39 +08:00
committed by Khem Raj
parent ff9b399795
commit 175d2fca5e
3 changed files with 343 additions and 0 deletions
@@ -0,0 +1,311 @@
From c259dfbbb8e139b43af179acec9824ecf849d34d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
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 <wenlin.kang@windriver.com>
---
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
@@ -0,0 +1,30 @@
From 151fec5f91fcb3dc5d55aee82a6d717dad77e877 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
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 <wenlin.kang@windriver.com>
---
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
@@ -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"