Re: [Buildroot] [PATCH v2 1/2] package/libxkbcommon: build libxkbregistry when libxml2 is available
Raphaël Gallais-Pou <[email protected]>
| Newsgroups | net.busybox.buildroot |
|---|---|
| Message-ID | <[email protected]> |
Hi, For information, I've provided a similar fix here: https://lore.kernel.org/buildroot/[email protected]/ 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/[email protected]/ 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 <[email protected]> > --- > > 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 [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot