From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [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 5545B15817D for ; Sun, 23 Jun 2024 17:37:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3E1FEE2A1B; Sun, 23 Jun 2024 17:36:52 +0000 (UTC) Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) (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 EE54AE2A15 for ; Sun, 23 Jun 2024 17:36:51 +0000 (UTC) Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-3d227b1f4f0so2024648b6e.3 for ; Sun, 23 Jun 2024 10:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719164210; x=1719769010; darn=lists.gentoo.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=n0nxXCgHFCtMO0TQN1jMAkponeY2WB7yWNZndzAJ9xw=; b=lX/+bMAD5QhTeu5GsEsaTYBG/8n5LsmxLro6OAlnL9BBiPKaZ+UcldmxHbRHt2zQOw nkBPSpvTNiN7PFeEX+eCQXmAuKVD9/Gs1DjO2kvFIYMhRhDY9RsZD8VoHauUW5JbyCSZ KuHQQ+7Jrp8yZftIbMOa3EPSnShklzppfIvVcZ2LVLrvFpjnpGIFuOyWU7b+bCYbrbZy Mo0vwBE0vtesuN5n24vlIJGqmDz2L6gUQuJQ8b8uWtta+CYgC5TGGoDE2j291iRPp0im nlFnDL7U4nxYnV1gP9REYe1gFz2jdTRk9v+qosHwcK8LZu5+2sFiPHWl0tF1Ohmr5Qbv dtYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719164210; x=1719769010; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n0nxXCgHFCtMO0TQN1jMAkponeY2WB7yWNZndzAJ9xw=; b=NZFxoUed1KM2Mn8oNUyGEumPfKeTZZTuz/kWJWOdFXov/vpVsPABt+TIE3wDGxB2sD Q88y4H1c53P3RkQ/LeMnyLDH84hYZUWZ93NvGAzKDiwWbu02HmRl1QOSDLGi0mRpVQvT zGi4UgAWdbzkMandCuKCOG5xQFptrHYniFgRcUyFtZ6iy2eFlFUg8lHXGzuolYYjgYBi lRiUd0hiqzkNjMVe1FpyoZXKFetjBcqO12CEWREzkntycdt5TBAOXQo/70UG3rQRxVtW VD7thwxVEh1QXZyzrJNmxJeUzbY5mpdG1uLK1LCsNJRI7CDeRslHg9EI0Kx1bEfbjS/O rDdg== X-Gm-Message-State: AOJu0YwGtRRW2VFWJ455QJ2lPxsHqPQSYMCRzFiDBWF6Cj0UER2QIyDm eNA9hBl0QkT53VaEjdaKPFjdzWn9oGqj1Q4SoXf3S6KrHO3SPPBgxeBoeyLE X-Google-Smtp-Source: AGHT+IFf23x6QUxUsamSDttpzZ9zocmoyIIt5dtwZ0z+nMb2Ueqv9oNnh5RQEKKi8UtAPxDLSiNnKg== X-Received: by 2002:a05:6808:1b10:b0:3d2:21a5:d3ba with SMTP id 5614622812f47-3d545967ae4mr3865851b6e.15.1719164210247; Sun, 23 Jun 2024 10:36:50 -0700 (PDT) Received: from acleverhostname.lan ([2603:6011:3f0:69d0::12ac]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-444c2c88de3sm33620671cf.87.2024.06.23.10.36.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Jun 2024 10:36:49 -0700 (PDT) From: Eli Schwartz To: gentoo-dev@lists.gentoo.org Cc: gnome@gentoo.org, xfce@gentoo.org, binhost@gentoo.org Subject: [gentoo-dev] [PATCH 1/5] gui-libs/gtk: add a "poison" macro support to disable X/wayland Date: Sun, 23 Jun 2024 13:35:47 -0400 Message-ID: <20240623173646.3368935-2-eschwartz93@gmail.com> X-Mailer: git-send-email 2.44.2 In-Reply-To: <20240623173646.3368935-1-eschwartz93@gmail.com> References: <20240623173646.3368935-1-eschwartz93@gmail.com> 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-Transfer-Encoding: 8bit X-Archives-Salt: c625adcd-382f-4195-b2b7-c357065a5315 X-Archives-Hash: 87ade92168073e8e4885abff08291edf 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. 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 => 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 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(+) 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 } -- 2.44.2