commit:     cec63c55db0dded229ba78395830af7fb7e0bed0
Author:     Eli Schwartz <eschwartz93 <AT> gmail <DOT> com>
AuthorDate: Sun May 19 18:01:45 2024 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Tue Aug  6 00:18:30 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cec63c55

xfce-base/libxfce4ui: prevent automagically building against gtk[wayland]

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 libxfce4ui 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 regardless of USE flag.

This cannot be expressed with USE flags. We could bind tightly to
whether gtk was built with wayland and arbitrarily restrict
libxfce4ui[-wayland] to only build and install on a system with
gtk+[-wayland].

But we recently added a hack to gtk itself which allows hiding the
automagic macros entirely. Inject this via append-cflags if the USE
flags aren't set, to simulate building on a system with more minimal gtk
packages.

Fixed upstream in:
https://gitlab.xfce.org/xfce/libxfce4ui/-/commit/967359624e408365b4c027bab66e737063af604b
and hence only worked around for 4.18.

Bug: https://bugs.gentoo.org/624960
Closes: https://bugs.gentoo.org/873520
Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 xfce-base/libxfce4ui/libxfce4ui-4.18.6-r1.ebuild | 79 ++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/xfce-base/libxfce4ui/libxfce4ui-4.18.6-r1.ebuild 
b/xfce-base/libxfce4ui/libxfce4ui-4.18.6-r1.ebuild
new file mode 100644
index 000000000000..f8978f7e1dd2
--- /dev/null
+++ b/xfce-base/libxfce4ui/libxfce4ui-4.18.6-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic xdg-utils vala
+
+DESCRIPTION="Unified widget and session management libs for Xfce"
+HOMEPAGE="
+       https://docs.xfce.org/xfce/libxfce4ui/start
+       https://gitlab.xfce.org/xfce/libxfce4ui/
+"
+SRC_URI="https://archive.xfce.org/src/xfce/${PN}/${PV%.*}/${P}.tar.bz2";
+
+LICENSE="LGPL-2+ GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 
~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="glade +introspection startup-notification system-info vala wayland"
+REQUIRED_USE="vala? ( introspection )"
+
+DEPEND="
+       >=dev-libs/glib-2.66.0
+       >=x11-libs/gtk+-3.24.41-r1:3[introspection?,wayland?,X]
+       x11-libs/libX11
+       x11-libs/libICE
+       x11-libs/libSM
+       >=xfce-base/libxfce4util-4.17.2:=[introspection?,vala?]
+       >=xfce-base/xfconf-4.12:=
+       glade? ( dev-util/glade:3.10 )
+       introspection? ( >=dev-libs/gobject-introspection-1.66:= )
+       startup-notification? ( x11-libs/startup-notification )
+       system-info? (
+               dev-libs/libgudev
+               gnome-base/libgtop
+               >=media-libs/libepoxy-1.2
+       )
+"
+RDEPEND="
+       ${DEPEND}
+"
+BDEPEND="
+       dev-lang/perl
+       dev-util/intltool
+       sys-devel/gettext
+       virtual/pkgconfig
+       vala? ( $(vala_depend) )
+"
+
+src_configure() {
+       # defang automagic dependencies, bug #873520
+       use wayland || append-cflags -DGENTOO_GTK_HIDE_WAYLAND
+
+       local myconf=(
+               $(use_enable introspection)
+               $(use_enable system-info glibtop)
+               $(use_enable system-info epoxy)
+               $(use_enable system-info gudev)
+               $(use_enable startup-notification)
+               $(use_enable vala)
+               $(use_enable glade gladeui2)
+               --with-vendor-info=Gentoo
+       )
+
+       use vala && vala_setup
+       econf "${myconf[@]}"
+}
+
+src_install() {
+       emake -j1 DESTDIR="${D}" install
+       find "${D}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+       xdg_icon_cache_update
+}
+
+pkg_postrm() {
+       xdg_icon_cache_update
+}

Reply via email to