* [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available
@ 2026-08-09 20:14 Alsey Coleman Miller
2026-08-09 20:14 ` [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver Alsey Coleman Miller
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alsey Coleman Miller @ 2026-08-09 20:14 UTC (permalink / raw)
To: buildroot; +Cc: André Zwing, Thomas Petazzoni, Alsey Coleman Miller
libxkbregistry is the keyboard layout catalogue half of the library. It
parses the XML layout registry and so needs libxml2, which is presumably
why it was disabled unconditionally rather than wired to a dependency.
wine needs it. Its configure.ac requires XKBREGISTRY_LIBS alongside
wayland-client, wayland-scanner, xkbcommon and linux/input.h before it
will build the Wayland driver, and wine.mk passes --with-wayland for any
build with BR2_PACKAGE_WAYLAND - which turns that notice into a hard
error:
checking for wayland-client.h... yes
checking for wl_display_connect in -lwayland-client... yes
checking for wayland-scanner... .../host/bin/wayland-scanner
checking for xkb_context_new in -lxkbcommon... yes
checking for wayland-egl.h... yes
checking for wl_egl_window_create in -lwayland-egl... yes
configure: error: Wayland development files not found, the Wayland
driver won't be supported.
This is an error since --with-wayland was requested.
Every other term of that test passes; only XKBREGISTRY_LIBS is empty, so
wine and wayland together could not be built on any architecture.
Gated on BR2_PACKAGE_LIBXML2 rather than turned on outright, because
meson.build takes dependency('libxml-2.0') unconditionally once
enable-xkbregistry is set, so a target without libxml2 would fail to
configure.
Regarding since when this is broken, three pieces had to come together:
- libxkbcommon has passed -Denable-xkbregistry=false since commit
1791bc30a5 ("package/libxkbcommon: bump version to 1.0.1", Sep 2020),
i.e. Buildroot 2020.11. libxkbregistry has therefore never been built
in Buildroot.
- wine's configure gained the XKBREGISTRY_LIBS term in its Wayland
test in wine 9.0, with upstream commit d64ea8e4a6c9
("winewayland.drv: Enumerate Xkb layouts and create matching HKL.",
Nov 2023).
- wine.mk started passing --with-wayland in commit 7cb49e7712
("package/wine: bump to version 9.19", Oct 2024), which is what turns
the missing XKBREGISTRY_LIBS from a notice into a hard error.
The breakage therefore dates from Buildroot 2024.11, and every branch
since is affected, including the LTS one: 2025.02.x carries wine 10.0,
whose configure has the XKBREGISTRY_LIBS check, together with
libxkbcommon 1.9.2 built with -Denable-xkbregistry=false, and its wine.mk
passes --with-wayland. 2025.05.x and 2025.08.x are in the same state.
A backport to 2025.02.x is thus needed.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
Notes:
Changes since v1:
- Extend the commit log to document since when the problem exists, and
whether the 2025.02.x LTS branch is affected (suggested by Thomas
Petazzoni). No change to the code.
package/libxkbcommon/libxkbcommon.mk | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/package/libxkbcommon/libxkbcommon.mk b/package/libxkbcommon/libxkbcommon.mk
index 21a2b937ef..406affe401 100644
--- a/package/libxkbcommon/libxkbcommon.mk
+++ b/package/libxkbcommon/libxkbcommon.mk
@@ -12,8 +12,14 @@ LIBXKBCOMMON_CPE_ID_VENDOR = xkbcommon
LIBXKBCOMMON_INSTALL_STAGING = YES
LIBXKBCOMMON_DEPENDENCIES = host-bison host-flex
LIBXKBCOMMON_CONF_OPTS = \
- -Denable-docs=false \
- -Denable-xkbregistry=false
+ -Denable-docs=false
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+LIBXKBCOMMON_CONF_OPTS += -Denable-xkbregistry=true
+LIBXKBCOMMON_DEPENDENCIES += libxml2
+else
+LIBXKBCOMMON_CONF_OPTS += -Denable-xkbregistry=false
+endif
ifeq ($(BR2_PACKAGE_XORG7),y)
LIBXKBCOMMON_CONF_OPTS += -Denable-x11=true
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver
2026-08-09 20:14 [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Alsey Coleman Miller
@ 2026-08-09 20:14 ` Alsey Coleman Miller
2026-08-09 20:29 ` Thomas Petazzoni via buildroot
2026-08-09 20:28 ` [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Thomas Petazzoni via buildroot
2026-08-10 9:51 ` Raphaël Gallais-Pou
2 siblings, 1 reply; 5+ messages in thread
From: Alsey Coleman Miller @ 2026-08-09 20:14 UTC (permalink / raw)
To: buildroot; +Cc: André Zwing, Thomas Petazzoni, Alsey Coleman Miller
wine.mk passes --with-wayland whenever BR2_PACKAGE_WAYLAND is enabled,
but nothing guarantees the rest of what wine's Wayland test needs is in
the configuration. That test is:
WINE_NOTICE_WITH(wayland, [test -z "$WAYLAND_CLIENT_LIBS" \
-o -z "$WAYLAND_SCANNER" -o -z "$XKBCOMMON_LIBS" \
-o -z "$XKBREGISTRY_LIBS" -o "$ac_cv_header_linux_input_h" = "no"], ...)
and because --with-wayland is passed explicitly, WINE_NOTICE_WITH turns
into AC_MSG_ERROR rather than a notice.
So wine needs libxkbcommon, and it needs the libxkbregistry part of it,
which is only built when libxml2 is available. Select both when Wayland
support is enabled, and add libxkbcommon to the build dependencies.
Note that libxml2 is not a direct dependency of wine, it only has to be
in the configuration so that libxkbcommon builds libxkbregistry; the
build ordering is handled by libxkbcommon's own dependency on libxml2.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
Notes:
New patch in v2, following Thomas Petazzoni's review of v1.
package/wine/Config.in | 5 +++++
package/wine/wine.mk | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/package/wine/Config.in b/package/wine/Config.in
index db3b1570ef..7a01ef6f7c 100644
--- a/package/wine/Config.in
+++ b/package/wine/Config.in
@@ -17,6 +17,11 @@ config BR2_PACKAGE_WINE
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
select BR2_PACKAGE_ALSA_LIB_SEQ if BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_ALSA_LIB_RAWMIDI if BR2_PACKAGE_ALSA_LIB
+ # The Wayland driver needs libxkbcommon, including its
+ # libxkbregistry part, which is only built when libxml2 is
+ # available.
+ select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND
+ select BR2_PACKAGE_LIBXML2 if BR2_PACKAGE_WAYLAND
help
Wine is a compatibility layer capable of running Windows
applications on Linux. Instead of simulating internal
diff --git a/package/wine/wine.mk b/package/wine/wine.mk
index 4f0e229e9a..eca13d77cb 100644
--- a/package/wine/wine.mk
+++ b/package/wine/wine.mk
@@ -189,7 +189,7 @@ endif
ifeq ($(BR2_PACKAGE_WAYLAND),y)
WINE_CONF_OPTS += --with-wayland
-WINE_DEPENDENCIES += wayland
+WINE_DEPENDENCIES += wayland libxkbcommon
else
WINE_CONF_OPTS += --without-wayland
endif
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available
2026-08-09 20:14 [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Alsey Coleman Miller
2026-08-09 20:14 ` [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver Alsey Coleman Miller
@ 2026-08-09 20:28 ` Thomas Petazzoni via buildroot
2026-08-10 9:51 ` Raphaël Gallais-Pou
2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-08-09 20:28 UTC (permalink / raw)
To: Alsey Coleman Miller; +Cc: buildroot, André Zwing
On Sun, Aug 09, 2026 at 04:14:02PM -0400, Alsey Coleman Miller wrote:
> libxkbregistry is the keyboard layout catalogue half of the library. It
> parses the XML layout registry and so needs libxml2, which is presumably
> why it was disabled unconditionally rather than wired to a dependency.
>
> wine needs it. Its configure.ac requires XKBREGISTRY_LIBS alongside
> wayland-client, wayland-scanner, xkbcommon and linux/input.h before it
> will build the Wayland driver, and wine.mk passes --with-wayland for any
> build with BR2_PACKAGE_WAYLAND - which turns that notice into a hard
> error:
>
> checking for wayland-client.h... yes
> checking for wl_display_connect in -lwayland-client... yes
> checking for wayland-scanner... .../host/bin/wayland-scanner
> checking for xkb_context_new in -lxkbcommon... yes
> checking for wayland-egl.h... yes
> checking for wl_egl_window_create in -lwayland-egl... yes
> configure: error: Wayland development files not found, the Wayland
> driver won't be supported.
> This is an error since --with-wayland was requested.
>
> Every other term of that test passes; only XKBREGISTRY_LIBS is empty, so
> wine and wayland together could not be built on any architecture.
>
> Gated on BR2_PACKAGE_LIBXML2 rather than turned on outright, because
> meson.build takes dependency('libxml-2.0') unconditionally once
> enable-xkbregistry is set, so a target without libxml2 would fail to
> configure.
>
> Regarding since when this is broken, three pieces had to come together:
>
> - libxkbcommon has passed -Denable-xkbregistry=false since commit
> 1791bc30a5 ("package/libxkbcommon: bump version to 1.0.1", Sep 2020),
> i.e. Buildroot 2020.11. libxkbregistry has therefore never been built
> in Buildroot.
>
> - wine's configure gained the XKBREGISTRY_LIBS term in its Wayland
> test in wine 9.0, with upstream commit d64ea8e4a6c9
> ("winewayland.drv: Enumerate Xkb layouts and create matching HKL.",
> Nov 2023).
>
> - wine.mk started passing --with-wayland in commit 7cb49e7712
> ("package/wine: bump to version 9.19", Oct 2024), which is what turns
> the missing XKBREGISTRY_LIBS from a notice into a hard error.
>
> The breakage therefore dates from Buildroot 2024.11, and every branch
> since is affected, including the LTS one: 2025.02.x carries wine 10.0,
> whose configure has the XKBREGISTRY_LIBS check, together with
> libxkbcommon 1.9.2 built with -Denable-xkbregistry=false, and its wine.mk
> passes --with-wayland. 2025.05.x and 2025.08.x are in the same state.
> A backport to 2025.02.x is thus needed.
>
> Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
Thanks for this new iteration!
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver
2026-08-09 20:14 ` [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver Alsey Coleman Miller
@ 2026-08-09 20:29 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-08-09 20:29 UTC (permalink / raw)
To: Alsey Coleman Miller; +Cc: buildroot, André Zwing
Hello,
On Sun, Aug 09, 2026 at 04:14:03PM -0400, Alsey Coleman Miller wrote:
> wine.mk passes --with-wayland whenever BR2_PACKAGE_WAYLAND is enabled,
> but nothing guarantees the rest of what wine's Wayland test needs is in
> the configuration. That test is:
>
> WINE_NOTICE_WITH(wayland, [test -z "$WAYLAND_CLIENT_LIBS" \
> -o -z "$WAYLAND_SCANNER" -o -z "$XKBCOMMON_LIBS" \
> -o -z "$XKBREGISTRY_LIBS" -o "$ac_cv_header_linux_input_h" = "no"], ...)
>
> and because --with-wayland is passed explicitly, WINE_NOTICE_WITH turns
> into AC_MSG_ERROR rather than a notice.
>
> So wine needs libxkbcommon, and it needs the libxkbregistry part of it,
> which is only built when libxml2 is available. Select both when Wayland
> support is enabled, and add libxkbcommon to the build dependencies.
>
> Note that libxml2 is not a direct dependency of wine, it only has to be
> in the configuration so that libxkbcommon builds libxkbregistry; the
> build ordering is handled by libxkbcommon's own dependency on libxml2.
>
> Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
Thanks for this new iteration!
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available
2026-08-09 20:14 [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Alsey Coleman Miller
2026-08-09 20:14 ` [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver Alsey Coleman Miller
2026-08-09 20:28 ` [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Thomas Petazzoni via buildroot
@ 2026-08-10 9:51 ` Raphaël Gallais-Pou
2 siblings, 0 replies; 5+ messages in thread
From: Raphaël Gallais-Pou @ 2026-08-10 9:51 UTC (permalink / raw)
To: Alsey Coleman Miller, buildroot, Romain Naour
Cc: André Zwing, Thomas Petazzoni
Hi,
For information, I've provided a similar fix here:
https://lore.kernel.org/buildroot/20260527-master-v1-1-0d975f3b3f0d@gmail.com/
earlier this summer.
Romain stated that xkbregistry had been disabled on purpose[1] and to
which my question has remained unanswered in this time of holidays.
Best regards,
Raphaël
[1]
https://lore.kernel.org/buildroot/cbfb9495-35d2-447e-a9e1-22c834d07dc5@smile.fr/
Le 09/08/2026 à 22:14, Alsey Coleman Miller a écrit :
> libxkbregistry is the keyboard layout catalogue half of the library. It
> parses the XML layout registry and so needs libxml2, which is presumably
> why it was disabled unconditionally rather than wired to a dependency.
>
> wine needs it. Its configure.ac requires XKBREGISTRY_LIBS alongside
> wayland-client, wayland-scanner, xkbcommon and linux/input.h before it
> will build the Wayland driver, and wine.mk passes --with-wayland for any
> build with BR2_PACKAGE_WAYLAND - which turns that notice into a hard
> error:
>
> checking for wayland-client.h... yes
> checking for wl_display_connect in -lwayland-client... yes
> checking for wayland-scanner... .../host/bin/wayland-scanner
> checking for xkb_context_new in -lxkbcommon... yes
> checking for wayland-egl.h... yes
> checking for wl_egl_window_create in -lwayland-egl... yes
> configure: error: Wayland development files not found, the Wayland
> driver won't be supported.
> This is an error since --with-wayland was requested.
>
> Every other term of that test passes; only XKBREGISTRY_LIBS is empty, so
> wine and wayland together could not be built on any architecture.
>
> Gated on BR2_PACKAGE_LIBXML2 rather than turned on outright, because
> meson.build takes dependency('libxml-2.0') unconditionally once
> enable-xkbregistry is set, so a target without libxml2 would fail to
> configure.
>
> Regarding since when this is broken, three pieces had to come together:
>
> - libxkbcommon has passed -Denable-xkbregistry=false since commit
> 1791bc30a5 ("package/libxkbcommon: bump version to 1.0.1", Sep 2020),
> i.e. Buildroot 2020.11. libxkbregistry has therefore never been built
> in Buildroot.
>
> - wine's configure gained the XKBREGISTRY_LIBS term in its Wayland
> test in wine 9.0, with upstream commit d64ea8e4a6c9
> ("winewayland.drv: Enumerate Xkb layouts and create matching HKL.",
> Nov 2023).
>
> - wine.mk started passing --with-wayland in commit 7cb49e7712
> ("package/wine: bump to version 9.19", Oct 2024), which is what turns
> the missing XKBREGISTRY_LIBS from a notice into a hard error.
>
> The breakage therefore dates from Buildroot 2024.11, and every branch
> since is affected, including the LTS one: 2025.02.x carries wine 10.0,
> whose configure has the XKBREGISTRY_LIBS check, together with
> libxkbcommon 1.9.2 built with -Denable-xkbregistry=false, and its wine.mk
> passes --with-wayland. 2025.05.x and 2025.08.x are in the same state.
> A backport to 2025.02.x is thus needed.
>
> Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
> ---
>
> Notes:
> Changes since v1:
> - Extend the commit log to document since when the problem exists, and
> whether the 2025.02.x LTS branch is affected (suggested by Thomas
> Petazzoni). No change to the code.
>
> package/libxkbcommon/libxkbcommon.mk | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/package/libxkbcommon/libxkbcommon.mk b/package/libxkbcommon/libxkbcommon.mk
> index 21a2b937ef..406affe401 100644
> --- a/package/libxkbcommon/libxkbcommon.mk
> +++ b/package/libxkbcommon/libxkbcommon.mk
> @@ -12,8 +12,14 @@ LIBXKBCOMMON_CPE_ID_VENDOR = xkbcommon
> LIBXKBCOMMON_INSTALL_STAGING = YES
> LIBXKBCOMMON_DEPENDENCIES = host-bison host-flex
> LIBXKBCOMMON_CONF_OPTS = \
> - -Denable-docs=false \
> - -Denable-xkbregistry=false
> + -Denable-docs=false
> +
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +LIBXKBCOMMON_CONF_OPTS += -Denable-xkbregistry=true
> +LIBXKBCOMMON_DEPENDENCIES += libxml2
> +else
> +LIBXKBCOMMON_CONF_OPTS += -Denable-xkbregistry=false
> +endif
>
> ifeq ($(BR2_PACKAGE_XORG7),y)
> LIBXKBCOMMON_CONF_OPTS += -Denable-x11=true
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-10 9:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-09 20:14 [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Alsey Coleman Miller
2026-08-09 20:14 ` [Buildroot] [PATCH v2 2/2] package/wine: select libxkbcommon and libxml2 for the Wayland driver Alsey Coleman Miller
2026-08-09 20:29 ` Thomas Petazzoni via buildroot
2026-08-09 20:28 ` [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available Thomas Petazzoni via buildroot
2026-08-10 9:51 ` Raphaël Gallais-Pou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox