Summary: | app-emulation/qemu-9.2.3-r1: Fails to build - error: use of undeclared identifier 'x11_window'; did you mean 'gdk_window'? | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | zyxhere <zyx> |
Component: | Current packages | Assignee: | Virtualization Team <virtualization> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | dilfridge, eschwartz |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log.gz |
Description
zyxhere
2025-04-21 13:26:27 UTC
if gtk.found() gtkx11 = dependency('gtk+-x11-3.0', version: '>=3.22.0', method: 'pkg-config', required: false) if gtkx11.found() x11 = dependency('x11', method: 'pkg-config', required: gtkx11.found()) endif And then it sets -DCONFIG_X11 everywhere. This is pretty awkward. As discussed with Sam, I added this commit: commit fae2ef851deea7ee791ac044e2b201cdef62bc89 Author: Eli Schwartz <eschwartz@gentoo.org> AuthorDate: Mon Apr 14 22:07:22 2025 Commit: Eli Schwartz <eschwartz@gentoo.org> CommitDate: Mon Apr 21 04:28:42 2025 app-emulation/qemu: avoid automagic deps on gtk+[X,wayland] e.g. the upstream code checks whether GDK_WINDOWING_WAYLAND is defined by the gtk headers, and if so will compile against the wayland symbols it provides. This means that qemu built on a system with gtk+[-wayland] will be compatible with anything, but when built on a system with gtk+[wayland], requires that at runtime. Use a Gentoo-specific macro hack to hide the GTK implementations when we don't want it, alongside new USE flags to control the dependency usage. Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> app-emulation/qemu/{qemu-9.1.2.ebuild => qemu-9.1.2-r1.ebuild} | 10 +++++++--- app-emulation/qemu/{qemu-9.1.3.ebuild => qemu-9.1.3-r1.ebuild} | 10 +++++++--- app-emulation/qemu/{qemu-9.2.3.ebuild => qemu-9.2.3-r1.ebuild} | 10 +++++++--- app-emulation/qemu/qemu-9999.ebuild | 10 +++++++--- 4 files changed, 28 insertions(+), 12 deletions(-) rename app-emulation/qemu/{qemu-9.1.2.ebuild => qemu-9.1.2-r1.ebuild} (98%) rename app-emulation/qemu/{qemu-9.1.3.ebuild => qemu-9.1.3-r1.ebuild} (98%) rename app-emulation/qemu/{qemu-9.2.3.ebuild => qemu-9.2.3-r1.ebuild} (98%) This is obviously a "good" thing as now you can't get automagic dependencies if you build with USE="-X". Also, it's a bad thing since it now goes ahead and detects x11.pc and gtk+-x11-3.0.pc regardless and tries to use it. I think this means effectively USE=X needs to be forced / withdrawn so that USE=gtk unconditionally enables X support. Do we think that upstream will add an option to control this? > I think this means effectively USE=X needs to be forced / withdrawn so that
> USE=gtk unconditionally enables X support. Do we think that upstream will
> add an option to control this?
I think they would, yeah, though reviews usually take ages. Forcing is fine for now.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce499b2bc455a19aa44b36f451966168ecc2160b commit ce499b2bc455a19aa44b36f451966168ecc2160b Author: Sam James <sam@gentoo.org> AuthorDate: 2025-04-22 06:33:19 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2025-04-22 06:40:41 +0000 profiles/base: force app-emulation/qemu[X] qemu[X] still has automagic on some parts of gtk[X]. Workaround that for now for bug #954152. This was exposed by fae2ef851deea7ee791ac044e2b201cdef62bc89 as if gtk[X] was found (and gtk[X] being found implies libX11 is around), you would get the automagic availability of functions like gdk_x11_display_get_xdisplay. Bug: https://bugs.gentoo.org/954152 Signed-off-by: Sam James <sam@gentoo.org> profiles/base/package.use.force | 5 +++++ 1 file changed, 5 insertions(+) |