new file mode 100644
@@ -0,0 +1,114 @@
+From 6fc6e4408ea021ee8a210e691f1a13b807121a3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
+Date: Thu, 19 Mar 2026 18:33:41 +0100
+Subject: [PATCH] build: Make sure gdbus headers are generated before including
+ them
+
+Fixes: #48
+
+Upstream-Status: Backport [https://gitlab.xfce.org/xfce/xfconf/-/commit/6fc6e4408ea021ee8a210e691f1a13b807121a3c]
+---
+ .scan-build-false-positives | 2 ++
+ common/meson.build | 36 +++++++++++++++++++-----------------
+ xfconf/meson.build | 5 ++++-
+ xfconfd/meson.build | 1 +
+ 4 files changed, 26 insertions(+), 18 deletions(-)
+
+diff --git a/.scan-build-false-positives b/.scan-build-false-positives
+index d925d3f..7ab5ec6 100644
+--- a/.scan-build-false-positives
++++ b/.scan-build-false-positives
+@@ -1,5 +1,7 @@
+ # gdbus-codegen generated code
+ xfconf-gdbus-bindings.c:[0-9]+:[0-9]+: warning: Value stored to .+skeleton.+ during its initialization is never read \[deadcode.DeadStores\]
++xfconf-gdbus-bindings.c:[0-9]+:[0-9]+: warning: Value stored to .+skeleton.+ during its initialization is never read \[deadcode.DeadStores\]
++xfconf-gdbus-bindings.c:[0-9]+:[0-9]+: warning: Value stored to .+skeleton.+ during its initialization is never read \[deadcode.DeadStores\]
+
+ # gobject-introspection generated code
+ Xfconf-0.c:[0-9]+:[0-9]+: warning: Access to field .+message.+ results in a dereference of a null pointer \(loaded from variable .+error.+\) \[core.NullDereference\]
+diff --git a/common/meson.build b/common/meson.build
+index 08acd5b..fe30c38 100644
+--- a/common/meson.build
++++ b/common/meson.build
+@@ -22,6 +22,24 @@ xfconf_visibility_sources += configure_file(
+ command: [xdt_gen_visibility, '--kind=source', '@INPUT@', '@OUTPUT@'],
+ )
+
++xfconf_dbus_xml = configure_file(
++ configuration: configuration_data({
++ 'XFCONF_SERVICE_NAME_PREFIX': xfconf_service_name_prefix,
++ 'XFCONF_SERVICE_PATH_PREFIX': xfconf_service_path_prefix,
++ }),
++ input: 'xfconf-dbus.xml.in',
++ output: 'xfconf-dbus.xml',
++)
++
++xfconf_gdbus_sources = gnome.gdbus_codegen(
++ 'xfconf-gdbus-bindings',
++ sources: xfconf_dbus_xml,
++ interface_prefix: '@0@.Xfconf'.format(xfconf_service_name_prefix),
++ namespace: 'Xfconf',
++ annotations: ['@0@.Xfconf'.format(xfconf_service_name_prefix), 'org.gtk.GDBus.C.Name', 'Exported'],
++ install_header: false,
++)
++
+ xfconf_common = static_library(
+ 'xfconf-common',
+ xfconf_common_sources,
+@@ -61,25 +79,9 @@ xfconf_gvaluefuncs = static_library(
+ install: false,
+ )
+
+-xfconf_dbus_xml = configure_file(
+- configuration: configuration_data({
+- 'XFCONF_SERVICE_NAME_PREFIX': xfconf_service_name_prefix,
+- 'XFCONF_SERVICE_PATH_PREFIX': xfconf_service_path_prefix,
+- }),
+- input: 'xfconf-dbus.xml.in',
+- output: 'xfconf-dbus.xml',
+-)
+-
+ xfconf_dbus = static_library(
+ 'xfconf-dbus',
+- gnome.gdbus_codegen(
+- 'xfconf-gdbus-bindings',
+- sources: xfconf_dbus_xml,
+- interface_prefix: '@0@.Xfconf'.format(xfconf_service_name_prefix),
+- namespace: 'Xfconf',
+- annotations: ['@0@.Xfconf'.format(xfconf_service_name_prefix), 'org.gtk.GDBus.C.Name', 'Exported'],
+- install_header: false,
+- ),
++ xfconf_gdbus_sources,
+ c_args: [
+ '-DG_LOG_DOMAIN="@0@"'.format('xfconf-common'),
+ ],
+diff --git a/xfconf/meson.build b/xfconf/meson.build
+index e3ecd55..15cafa5 100644
+--- a/xfconf/meson.build
++++ b/xfconf/meson.build
+@@ -39,7 +39,10 @@ xfconf_version = '@0@.0.0'.format(xfconf_so_version)
+ xfconf = library(
+ xfconf_pkgname,
+ xfconf_sources,
+- sources: xfconf_visibility_sources,
++ sources: [
++ xfconf_visibility_sources,
++ xfconf_gdbus_sources,
++ ],
+ version: xfconf_version,
+ soversion: xfconf_so_version,
+ c_args: [
+diff --git a/xfconfd/meson.build b/xfconfd/meson.build
+index 6e46a58..13e614e 100644
+--- a/xfconfd/meson.build
++++ b/xfconfd/meson.build
+@@ -56,6 +56,7 @@ executable(
+ sources: [
+ xfce_revision_h,
+ xfconf_visibility_sources,
++ xfconf_gdbus_sources,
+ ],
+ c_args: c_args,
+ include_directories: [
+--
+2.50.0
similarity index 64%
rename from meta-xfce/recipes-xfce/xfconf/xfconf_4.20.0.bb
rename to meta-xfce/recipes-xfce/xfconf/xfconf_4.21.2.bb
@@ -5,11 +5,14 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
DEPENDS = "libxfce4util perl intltool-native xfce4-dev-tools-native"
-inherit xfce gtk-doc gobject-introspection bash-completion vala
+XFCE_COMPRESS_TYPE = "xz"
+XFCEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk-doc"
-EXTRA_OECONF += "GDBUS_CODEGEN=${STAGING_BINDIR_NATIVE}/gdbus-codegen"
+inherit xfce gtk-doc gobject-introspection bash-completion vala
-SRC_URI[sha256sum] = "8bc43c60f1716b13cf35fc899e2a36ea9c6cdc3478a8f051220eef0f53567efd"
+SRC_URI += "file://0001-build-Make-sure-gdbus-headers-are-generated-before-i.patch"
+SRC_URI[sha256sum] = "99aa4366e909ba7b9f746aba48b610b9e9d2933aeb283c7fa5f37a7c3dc7a3a6"
FILES:${PN} += "${libdir}/xfce4/xfconf/xfconfd \
${libdir}/gio/modules/libxfconfgsettingsbackend.so \
@@ -17,6 +20,5 @@ FILES:${PN} += "${libdir}/xfce4/xfconf/xfconfd \
${systemd_user_unitdir}/xfconfd.service \
"
-FILES:${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la"
+PACKAGECONFIG[gsettings-backend] = "-Dgsettings-backend=true,-Dgsettings-backend=false,"
-PACKAGECONFIG[gsettings-backend] = "--enable-gsettings-backend,--disable-gsettings-backend,"