kumquat-buildroot/package/wlroots/Config.in
Adam Duskett 50eed2060a package/wlroots: add hwdata and hwdata_pnp_ids as a dependency
Since upstream commit
eec95e3d5e1a4f2e13b1f6b34cc287475ca57daf ("backend/drm: use pnp.ids to
fetch EDID data"), the pnp.ids file from hwdata is parsed at build
time to generate a C source file. As per backend/drm/meson.build:

hwdata = dependency('hwdata', required: false, native: true)
if hwdata.found()
	hwdata_dir = hwdata.get_variable(pkgconfig: 'pkgdatadir')
	pnp_ids = files(hwdata_dir / 'pnp.ids')
else
	pnp_ids = files('/usr/share/hwdata/pnp.ids')
endif

This is only needed when the DRM backend of wlroots is enabled, but
currently, Buildroot enables this backend unconditionally.

This failure can be reproduced using the following defconfig:

BR2_x86_64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_OSMESA_GALLIUM=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_WLROOTS=y

The issue was not caught in the autobuilders because the last
successful build of a configuration that includes wlroots dates back
from 2022-05-05, at which time Buildroot had wlroots 0.15.1.

This change in wlroots was introduced in wlroots 0.16.0, which means
that it's only since Buildroot bumped from 0.15.1 to 0.16.2 in
d6279bc82c ("package/wlroots: bump to
version 0.16.2") that the issue occurs. This commit is not yet in any
tagged release, so there is no need to backport this fix.

It should be noted that the proposed patch also installs pnp.ids to
the target filesystem, while it is in practice not needed at runtime
by wlroots. However, our current hwdata packaging doesn't allow
installing it only in staging, and since wlroots anyway implies we're
building a fairly heavy graphics stack, the size overhead of hwdata is
deemed to be an acceptable trade-off.

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[Thomas: further extend the commit log, with details gathered by Yann
and myself.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-12-23 15:46:58 +01:00

70 lines
2.2 KiB
Plaintext

comment "wlroots needs udev, EGL w/ Wayland backend and OpenGL ES support"
depends on !BR2_PACKAGE_HAS_LIBEGL || \
!BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
!BR2_PACKAGE_HAS_LIBGLES || \
!BR2_PACKAGE_HAS_UDEV
comment "wlroots needs a toolchain w/ threads, dynamic library"
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
config BR2_PACKAGE_WLROOTS
bool "wlroots"
depends on !BR2_STATIC_LIBS # wayland
depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm, wayland
depends on BR2_PACKAGE_HAS_UDEV # libinput
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND
depends on BR2_PACKAGE_HAS_LIBGLES
select BR2_PACKAGE_HWDATA
select BR2_PACKAGE_HWDATA_PNP_IDS
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_LIBINPUT
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_PIXMAN
select BR2_PACKAGE_SEATD
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
help
wlroots is a modular Wayland library for building compositors
which implements many of their common features.
https://gitlab.freedesktop.org/wlroots/wlroots
if BR2_PACKAGE_WLROOTS
config BR2_PACKAGE_WLROOTS_X11
bool "X11 backend"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_RENDERUTIL
select BR2_PACKAGE_XCB_UTIL_WM
select BR2_PACKAGE_XLIB_LIBX11
help
Support Wayland sessions nested inside a X11 window
config BR2_PACKAGE_WLROOTS_XWAYLAND
bool "XWayland support"
depends on BR2_PACKAGE_XORG7 # libxcb, xcb-util-wm, xwayland
depends on BR2_USE_MMU # xwayland
depends on !BR2_STATIC_LIBS # xwayland
depends on BR2_TOOLCHAIN_HAS_THREADS # xwayland
depends on !BR2_RISCV_32 # xwayland -> xlib_libxshmfence
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # xwayland -> xlib_libxshmfence
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_WM
select BR2_PACKAGE_XWAYLAND
help
Support for running X11 applications under wayland
comment "XWayland support needs X.org enabled"
depends on !BR2_PACKAGE_XORG7
comment "XWayland support needs a toolchain w/ threads, dynamic library"
depends on BR2_USE_MMU
depends on !BR2_RISCV_32
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
endif