summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz93@gmail.com>2024-05-19 14:01:45 -0400
committerEli Schwartz <eschwartz@gentoo.org>2024-08-05 20:18:30 -0400
commitcec63c55db0dded229ba78395830af7fb7e0bed0 (patch)
tree2ee1c8c6d97c3c9431e956cc855e754bc9d6864c /xfce-base
parentx11-libs/wxGTK: prevent automagically building against gtk[X,wayland] (diff)
downloadgentoo-cec63c55db0dded229ba78395830af7fb7e0bed0.tar.gz
gentoo-cec63c55db0dded229ba78395830af7fb7e0bed0.tar.bz2
gentoo-cec63c55db0dded229ba78395830af7fb7e0bed0.zip
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@gmail.com> Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'xfce-base')
-rw-r--r--xfce-base/libxfce4ui/libxfce4ui-4.18.6-r1.ebuild79
1 files changed, 79 insertions, 0 deletions
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
+}