Eli Schwartz <eschwart...@gmail.com> writes: > Many packages perform automagic dependencies on gdk's backend > implementations by checking if the macro is defined and then using the > code it unlocks, rather than having a buildsystem option such as > -Dwayland=true. > Doesn't gtk3 need this too? Also, could we have an upstream report making them aware of this for gtk4?
> It's unfeasible to patch every such package's source code to add > configure options and respect them. Instead add a truly filthy hack and > permit gtk itself to selectively show or hide the windowing system in > use. > > Bug: https://bugs.gentoo.org/624960 > Signed-off-by: Eli Schwartz <eschwart...@gmail.com> > --- > ...-poison-macro-to-hide-GDK_WINDOWING_.patch | 25 ++++++++++--------- > gui-libs/gtk/gtk-4.12.5-r1.ebuild | 7 ++++++ > ...-4.12.5-r1.ebuild => gtk-4.12.5-r2.ebuild} | 9 ++++++- > ...gtk-4.14.4.ebuild => gtk-4.14.3-r1.ebuild} | 7 ++++++ > ...gtk-4.14.3.ebuild => gtk-4.14.4-r1.ebuild} | 7 ++++++ > 5 files changed, 42 insertions(+), 13 deletions(-) > copy {x11-libs/gtk+ => > gui-libs/gtk}/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > (86%) > copy gui-libs/gtk/{gtk-4.12.5-r1.ebuild => gtk-4.12.5-r2.ebuild} (94%) > rename gui-libs/gtk/{gtk-4.14.4.ebuild => gtk-4.14.3-r1.ebuild} (96%) > rename gui-libs/gtk/{gtk-4.14.3.ebuild => gtk-4.14.4-r1.ebuild} (96%) > > diff --git > a/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > b/gui-libs/gtk/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > similarity index 86% > copy from > x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > copy to > gui-libs/gtk/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > index 9bba12f8445b..4e078610f8cb 100644 > --- > a/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > +++ > b/gui-libs/gtk/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > @@ -1,4 +1,4 @@ > -From 25bdad805bb9e16032baf4480e9c1e432ddef49b Mon Sep 17 00:00:00 2001 > +From 0537043f72ea1a634b101efa9e11cc0a22baaf71 Mon Sep 17 00:00:00 2001 > From: Eli Schwartz <eschwart...@gmail.com> > Date: Wed, 19 Jun 2024 21:28:31 -0400 > Subject: [PATCH] gdk: add a "poison" macro to hide GDK_WINDOWING_* > @@ -34,10 +34,10 @@ Signed-off-by: Eli Schwartz <eschwart...@gmail.com> > 3 files changed, 15 insertions(+) > > diff --git a/gdk/gdkconfig.h.meson b/gdk/gdkconfig.h.meson > -index 7db19e0470..6bee207e94 100644 > +index d5b48f3184..22baab52ae 100644 > --- a/gdk/gdkconfig.h.meson > +++ b/gdk/gdkconfig.h.meson > -@@ -10,9 +10,16 @@ > +@@ -10,10 +10,17 @@ > G_BEGIN_DECLS > > > @@ -46,21 +46,22 @@ index 7db19e0470..6bee207e94 100644 > +#endif > + > #mesondefine GDK_WINDOWING_BROADWAY > + #mesondefine GDK_WINDOWING_MACOS > + > +#ifndef GENTOO_GTK_HIDE_WAYLAND > #mesondefine GDK_WINDOWING_WAYLAND > +#endif > + > #mesondefine GDK_WINDOWING_WIN32 > - #mesondefine GDK_WINDOWING_QUARTZ > > + #mesondefine GDK_RENDERING_CAIRO > diff --git a/gdk/wayland/gdkwayland.h b/gdk/wayland/gdkwayland.h > -index 2b79295add..5f0e9cfa81 100644 > +index 846445910e..5d84619295 100644 > --- a/gdk/wayland/gdkwayland.h > +++ b/gdk/wayland/gdkwayland.h > -@@ -25,6 +25,10 @@ > - #ifndef __GDK_WAYLAND_H__ > - #define __GDK_WAYLAND_H__ > +@@ -24,6 +24,10 @@ > + > + #pragma once > > +#ifdef GENTOO_GTK_HIDE_WAYLAND > + #error "A Gentoo ebuild has hidden wayland and it cannot be used in this > compilation unit. Please file a bug if you see this error." > @@ -70,12 +71,12 @@ index 2b79295add..5f0e9cfa81 100644 > > #define __GDKWAYLAND_H_INSIDE__ > diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h > -index 1f64bccb6d..256c83015e 100644 > +index 6bef6b6de8..d4f8b94550 100644 > --- a/gdk/x11/gdkx.h > +++ b/gdk/x11/gdkx.h > -@@ -25,6 +25,10 @@ > - #ifndef __GDK_X_H__ > - #define __GDK_X_H__ > +@@ -24,6 +24,10 @@ > + > + #pragma once > > +#ifdef GENTOO_GTK_HIDE_X11 > + #error "A Gentoo ebuild has hidden x11 and it cannot be used in this > compilation unit. Please file a bug if you see this error." > diff --git a/gui-libs/gtk/gtk-4.12.5-r1.ebuild > b/gui-libs/gtk/gtk-4.12.5-r1.ebuild > index cd5ffd7bad88..aec0c8889e71 100644 > --- a/gui-libs/gtk/gtk-4.12.5-r1.ebuild > +++ b/gui-libs/gtk/gtk-4.12.5-r1.ebuild > @@ -100,6 +100,13 @@ BDEPEND=" > ) > " > > +PATCHES=( > + # Gentoo-specific patch to add a "poison" macro support, allowing other > ebuilds > + # with USE="-wayland -X" to trick gtk into claiming that it wasn't > built with > + # such support. > + "${FILESDIR}"/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > +) > + > python_check_deps() { > python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" || return > } > diff --git a/gui-libs/gtk/gtk-4.12.5-r1.ebuild > b/gui-libs/gtk/gtk-4.12.5-r2.ebuild > similarity index 94% > copy from gui-libs/gtk/gtk-4.12.5-r1.ebuild > copy to gui-libs/gtk/gtk-4.12.5-r2.ebuild > index cd5ffd7bad88..2b6fd10d8caa 100644 > --- a/gui-libs/gtk/gtk-4.12.5-r1.ebuild > +++ b/gui-libs/gtk/gtk-4.12.5-r2.ebuild > @@ -16,7 +16,7 @@ REQUIRED_USE=" > test? ( introspection ) > " > > -KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ppc ppc64 ~riscv sparc x86" > +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc > ~x86" > > COMMON_DEPEND=" > >=dev-libs/glib-2.76.0:2 > @@ -100,6 +100,13 @@ BDEPEND=" > ) > " > > +PATCHES=( > + # Gentoo-specific patch to add a "poison" macro support, allowing other > ebuilds > + # with USE="-wayland -X" to trick gtk into claiming that it wasn't > built with > + # such support. > + "${FILESDIR}"/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > +) > + > python_check_deps() { > python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" || return > } > diff --git a/gui-libs/gtk/gtk-4.14.4.ebuild > b/gui-libs/gtk/gtk-4.14.3-r1.ebuild > similarity index 96% > rename from gui-libs/gtk/gtk-4.14.4.ebuild > rename to gui-libs/gtk/gtk-4.14.3-r1.ebuild > index 7f0c8930ab74..6bd05ace61ea 100644 > --- a/gui-libs/gtk/gtk-4.14.4.ebuild > +++ b/gui-libs/gtk/gtk-4.14.3-r1.ebuild > @@ -108,6 +108,13 @@ BDEPEND=" > ) > " > > +PATCHES=( > + # Gentoo-specific patch to add a "poison" macro support, allowing other > ebuilds > + # with USE="-wayland -X" to trick gtk into claiming that it wasn't > built with > + # such support. > + "${FILESDIR}"/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > +) > + > python_check_deps() { > python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" || return > } > diff --git a/gui-libs/gtk/gtk-4.14.3.ebuild > b/gui-libs/gtk/gtk-4.14.4-r1.ebuild > similarity index 96% > rename from gui-libs/gtk/gtk-4.14.3.ebuild > rename to gui-libs/gtk/gtk-4.14.4-r1.ebuild > index 7f0c8930ab74..6bd05ace61ea 100644 > --- a/gui-libs/gtk/gtk-4.14.3.ebuild > +++ b/gui-libs/gtk/gtk-4.14.4-r1.ebuild > @@ -108,6 +108,13 @@ BDEPEND=" > ) > " > > +PATCHES=( > + # Gentoo-specific patch to add a "poison" macro support, allowing other > ebuilds > + # with USE="-wayland -X" to trick gtk into claiming that it wasn't > built with > + # such support. > + "${FILESDIR}"/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch > +) > + > python_check_deps() { > python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" || return > }
signature.asc
Description: PGP signature