From 30bdcd40318b11e12f8591bc418bee2f7f67dbb8 Mon Sep 17 00:00:00 2001 From: Viorel Munteanu Date: Thu, 10 Jul 2025 12:17:07 +0300 Subject: [PATCH] gui-wm/wayfire: fix unstripped LTO libs See this comment: https://bugs.gentoo.org/618550#c5 Closes: https://bugs.gentoo.org/959126 Signed-off-by: Viorel Munteanu --- gui-wm/wayfire/wayfire-0.9.0-r1.ebuild | 116 +++++++++++++++++++++++++ gui-wm/wayfire/wayfire-9999.ebuild | 7 +- 2 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 gui-wm/wayfire/wayfire-0.9.0-r1.ebuild diff --git a/gui-wm/wayfire/wayfire-0.9.0-r1.ebuild b/gui-wm/wayfire/wayfire-0.9.0-r1.ebuild new file mode 100644 index 0000000000000..0f479febe1ddf --- /dev/null +++ b/gui-wm/wayfire/wayfire-0.9.0-r1.ebuild @@ -0,0 +1,116 @@ +# Copyright 2019-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a meson toolchain-funcs + +DESCRIPTION="compiz like 3D wayland compositor" +HOMEPAGE="https://github.com/WayfireWM/wayfire" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git" + SLOT="0/0.10" +else + SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~riscv" + SLOT="0/$(ver_cut 1-2)" +fi + +LICENSE="MIT" +IUSE="X +dbus +gles3 openmp test" +RESTRICT="!test? ( test )" + +# bundled wlroots has the following dependency string according to included headers. +# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?] +# enable x11-backend with X and vice versa +CDEPEND=" + dev-cpp/nlohmann_json + dev-libs/glib:2 + dev-libs/libevdev + dev-libs/libinput:= + dev-libs/wayland + >=dev-libs/wayland-protocols-1.12 + gui-libs/wf-config:${SLOT} + gui-libs/wlroots:0/17[drm(+),libinput(+),x11-backend,X?] + media-libs/glm + media-libs/libglvnd + media-libs/libjpeg-turbo:= + media-libs/libpng:= + x11-libs/cairo + x11-libs/libxkbcommon + x11-libs/pango + x11-libs/pixman + dbus? ( sys-apps/dbus ) + X? ( x11-libs/libxcb:= ) +" + +RDEPEND=" + ${CDEPEND} + x11-misc/xkeyboard-config +" +DEPEND=" + ${CDEPEND} + test? ( dev-cpp/doctest ) +" +BDEPEND=" + dev-util/wayland-scanner + virtual/pkgconfig + openmp? ( + || ( + sys-devel/gcc[openmp] + llvm-core/clang-runtime[openmp] + ) + ) +" + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_prepare() { + default + + local dbusrunsession=$(usev dbus dbus-run-session) + sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \ + "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die + sed -e "s:@EPREFIX@:${EPREFIX}:" \ + "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die +} + +src_configure() { + lto-guarantee-fat + + local emesonargs=( + $(meson_feature test tests) + $(meson_feature X xwayland) + $(meson_use gles3 enable_gles32) + $(meson_use openmp enable_openmp) + -Duse_system_wfconfig=enabled + -Duse_system_wlroots=enabled + ) + meson_src_configure +} + +src_install() { + meson_src_install + dobin "${T}"/wayfire-session + + insinto "/usr/share/wayland-sessions/" + insopts -m644 + doins wayfire.desktop + doins "${T}"/wayfire-session.desktop + + insinto "/usr/share/wayfire/" + doins wayfire.ini + + insinto "/etc" + doins "${FILESDIR}"/wayfire.env + + strip-lto-bytecode +} diff --git a/gui-wm/wayfire/wayfire-9999.ebuild b/gui-wm/wayfire/wayfire-9999.ebuild index bdf9510aa37f0..cd1b516610520 100644 --- a/gui-wm/wayfire/wayfire-9999.ebuild +++ b/gui-wm/wayfire/wayfire-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit meson toolchain-funcs +inherit dot-a meson toolchain-funcs DESCRIPTION="compiz like 3D wayland compositor" HOMEPAGE="https://github.com/WayfireWM/wayfire" @@ -86,6 +86,8 @@ src_prepare() { } src_configure() { + lto-guarantee-fat + local emesonargs=( $(meson_feature test tests) $(meson_feature X xwayland) @@ -94,7 +96,6 @@ src_configure() { -Duse_system_wfconfig=enabled -Duse_system_wlroots=enabled ) - meson_src_configure } @@ -112,4 +113,6 @@ src_install() { insinto "/etc" doins "${FILESDIR}"/wayfire.env + + strip-lto-bytecode }