From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (unknown [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3E03415802E for ; Wed, 26 Jun 2024 09:04:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2B0302BC0DD; Wed, 26 Jun 2024 09:03:24 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id D25542BC0DA for ; Wed, 26 Jun 2024 09:03:22 +0000 (UTC) From: Sam James To: Eli Schwartz Cc: gentoo-dev@lists.gentoo.org, gnome@gentoo.org, xfce@gentoo.org, binhost@gentoo.org Subject: Re: [gentoo-dev] [PATCH 1/5] gui-libs/gtk: add a "poison" macro support to disable X/wayland In-Reply-To: <20240623173646.3368935-2-eschwartz93@gmail.com> (Eli Schwartz's message of "Sun, 23 Jun 2024 13:35:47 -0400") Organization: Gentoo References: <20240623173646.3368935-1-eschwartz93@gmail.com> <20240623173646.3368935-2-eschwartz93@gmail.com> Date: Wed, 26 Jun 2024 10:03:17 +0100 Message-ID: <877cecnkiy.fsf@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Archives-Salt: c5b3963e-df1d-4d1b-b0b5-800dccf0ed2c X-Archives-Hash: 97e92125696da05382bf214bc13b4ddf --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Eli Schwartz 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=3Dtrue. > 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 > --- > ...-poison-macro-to-hide-GDK_WINDOWING_.patch | 25 ++++++++++--------- > gui-libs/gtk/gtk-4.12.5-r1.ebuild | 7 ++++++ > ...-4.12.5-r1.ebuild =3D> gtk-4.12.5-r2.ebuild} | 9 ++++++- > ...gtk-4.14.4.ebuild =3D> gtk-4.14.3-r1.ebuild} | 7 ++++++ > ...gtk-4.14.3.ebuild =3D> gtk-4.14.4-r1.ebuild} | 7 ++++++ > 5 files changed, 42 insertions(+), 13 deletions(-) > copy {x11-libs/gtk+ =3D> 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 =3D> gtk-4.12.5-r2.ebuild} (94%) > rename gui-libs/gtk/{gtk-4.14.4.ebuild =3D> gtk-4.14.3-r1.ebuild} (96%) > rename gui-libs/gtk/{gtk-4.14.3.ebuild =3D> 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-G= DK_WINDOWING_.patch > similarity index 86% > copy from x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WIN= DOWING_.patch > copy to gui-libs/gtk/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOW= ING_.patch > index 9bba12f8445b..4e078610f8cb 100644 > --- a/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWI= NG_.patch > +++ b/gui-libs/gtk/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWIN= G_.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 > 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 > 3 files changed, 15 insertions(+) >=20=20 > 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 >=20=20=20 >=20=20=20 > @@ -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 >=20=20=20 > + #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 @@ > +=20 > + #pragma once >=20=20=20 > +#ifdef GENTOO_GTK_HIDE_WAYLAND > + #error "A Gentoo ebuild has hidden wayland and it cannot be used in t= his compilation unit. Please file a bug if you see this error." > @@ -70,12 +71,12 @@ index 2b79295add..5f0e9cfa81 100644 >=20=20=20 > #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 @@ > +=20 > + #pragma once >=20=20=20 > +#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=3D" > ) > " >=20=20 > +PATCHES=3D( > + # Gentoo-specific patch to add a "poison" macro support, allowing other= ebuilds > + # with USE=3D"-wayland -X" to trick gtk into claiming that it wasn't bu= ilt 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=3D" > test? ( introspection ) > " >=20=20 > -KEYWORDS=3D"~alpha amd64 arm arm64 ~ia64 ~loong ppc ppc64 ~riscv sparc x= 86" > +KEYWORDS=3D"~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s= parc ~x86" >=20=20 > COMMON_DEPEND=3D" > >=3Ddev-libs/glib-2.76.0:2 > @@ -100,6 +100,13 @@ BDEPEND=3D" > ) > " >=20=20 > +PATCHES=3D( > + # Gentoo-specific patch to add a "poison" macro support, allowing other= ebuilds > + # with USE=3D"-wayland -X" to trick gtk into claiming that it wasn't bu= ilt 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=3D" > ) > " >=20=20 > +PATCHES=3D( > + # Gentoo-specific patch to add a "poison" macro support, allowing other= ebuilds > + # with USE=3D"-wayland -X" to trick gtk into claiming that it wasn't bu= ilt 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=3D" > ) > " >=20=20 > +PATCHES=3D( > + # Gentoo-specific patch to add a "poison" macro support, allowing other= ebuilds > + # with USE=3D"-wayland -X" to trick gtk into claiming that it wasn't bu= ilt 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 > } --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZnvZVV8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZCPvQEArQn28el4YACPW5CxYnBEhduqnxEKybqWCv/f qedCsJsA/2P0+7ARwXm4DMUdzCd3sa5qigwmhH3Mcs0/8348fYIP =sgTz -----END PGP SIGNATURE----- --=-=-=--