commit: 313a17318ddeb6039fd081da6793f64afad942d2 Author: Alfred Wingate <parona <AT> protonmail <DOT> com> AuthorDate: Tue Mar 19 09:36:33 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Mar 19 10:05:38 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=313a1731
gui-wm/wayfire: add patch to not use system installed configuration * Otherwise you would get hard to parse errors when different parts of build are built with different configurations. Signed-off-by: Alfred Wingate <parona <AT> protonmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> ...wayfire-0.8.0-dont-use-installed-config-h.patch | 65 ++++++++++++++++++ ...ayfire-0.8.1.ebuild => wayfire-0.8.0-r2.ebuild} | 77 ++++++++++++++++++---- ...ayfire-0.8.1.ebuild => wayfire-0.8.1-r1.ebuild} | 4 ++ 3 files changed, 134 insertions(+), 12 deletions(-) diff --git a/gui-wm/wayfire/files/wayfire-0.8.0-dont-use-installed-config-h.patch b/gui-wm/wayfire/files/wayfire-0.8.0-dont-use-installed-config-h.patch new file mode 100644 index 000000000000..3938cd955ce2 --- /dev/null +++ b/gui-wm/wayfire/files/wayfire-0.8.0-dont-use-installed-config-h.patch @@ -0,0 +1,65 @@ +https://github.com/WayfireWM/wayfire/pull/2225 + +From f7bcad19598cbff1324f7737022ffee8848b3555 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate <[email protected]> +Date: Mon, 18 Mar 2024 16:32:06 +0200 +Subject: [PATCH] Copy config.h approach from wlroots-full.hpp to other public + api headers (#2225) + +* Otherwise wayfire could use the config.h of an already installed + wayfire installation and lead to confusing linking issues if the + options differed (like installed wayfire has xwayland disabled and the + new build has it enabled). + +Signed-off-by: Alfred Wingate <[email protected]> +--- a/src/api/wayfire/debug.hpp ++++ b/src/api/wayfire/debug.hpp +@@ -1,8 +1,12 @@ + #ifndef DEBUG_HPP + #define DEBUG_HPP + +-#ifndef WAYFIRE_PLUGIN +- #include "config.h" ++// WF_USE_CONFIG_H is set only when building Wayfire itself, external plugins ++// need to use <wayfire/config.h> ++#ifdef WF_USE_CONFIG_H ++ #include <config.h> ++#else ++ #include <wayfire/config.h> + #endif + + #define nonull(x) ((x) ? (x) : ("nil")) +--- a/src/api/wayfire/unstable/wlr-view-events.hpp ++++ b/src/api/wayfire/unstable/wlr-view-events.hpp +@@ -1,9 +1,11 @@ + #pragma once + +-#if __has_include(<wayfire/config.h>) +- #include <wayfire/config.h> ++// WF_USE_CONFIG_H is set only when building Wayfire itself, external plugins ++// need to use <wayfire/config.h> ++#ifdef WF_USE_CONFIG_H ++ #include <config.h> + #else +- #include "config.h" ++ #include <wayfire/config.h> + #endif + + #include <wayfire/nonstd/wlroots-full.hpp> +--- a/src/api/wayfire/unstable/xwl-toplevel-base.hpp ++++ b/src/api/wayfire/unstable/xwl-toplevel-base.hpp +@@ -1,9 +1,11 @@ + #pragma once + +-#if __has_include(<wayfire/config.h>) +- #include <wayfire/config.h> ++// WF_USE_CONFIG_H is set only when building Wayfire itself, external plugins ++// need to use <wayfire/config.h> ++#ifdef WF_USE_CONFIG_H ++ #include <config.h> + #else +- #include "config.h" ++ #include <wayfire/config.h> + #endif + + #include <wayfire/nonstd/wlroots-full.hpp> diff --git a/gui-wm/wayfire/wayfire-0.8.1.ebuild b/gui-wm/wayfire/wayfire-0.8.0-r2.ebuild similarity index 55% copy from gui-wm/wayfire/wayfire-0.8.1.ebuild copy to gui-wm/wayfire/wayfire-0.8.0-r2.ebuild index a5e655f6d398..c6ed5fedef88 100644 --- a/gui-wm/wayfire/wayfire-0.8.1.ebuild +++ b/gui-wm/wayfire/wayfire-0.8.0-r2.ebuild @@ -11,55 +11,99 @@ 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.8" + SLOT="0/9999" else SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz" - KEYWORDS="~amd64 ~arm64 ~riscv" + KEYWORDS="~amd64 ~arm64 ~riscv ~x86" SLOT="0/$(ver_cut 1-2)" fi LICENSE="MIT" -IUSE="+gles test X" +IUSE="+gles +system-wfconfig +system-wlroots test X" 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 +WLROOTS_CDEPEND=" + >=dev-libs/libinput-1.14.0:= + >=dev-libs/wayland-1.21 + media-libs/libglvnd + media-libs/mesa[egl(+),gles2] + sys-apps/hwdata:= + sys-auth/seatd:= + >=x11-libs/libdrm-2.4.114:= + x11-libs/libxkbcommon + >=x11-libs/pixman-0.42.0 + virtual/libudev + X? ( + x11-base/xwayland + x11-libs/libxcb:0= + x11-libs/xcb-util-image + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +WLROOTS_DEPEND=" + >=dev-libs/wayland-protocols-1.28 +" +WLROOTS_BDEPEND=" + dev-util/glslang + dev-util/wayland-scanner +" + CDEPEND=" dev-cpp/nlohmann_json - dev-libs/glib:2 dev-libs/libevdev - >=dev-libs/libinput-1.7.0:= + >=dev-libs/libinput-1.7.0 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/libdrm:= x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman - X? ( - x11-libs/libxcb:= - ) + system-wfconfig? ( gui-libs/wf-config:${SLOT} ) + !system-wfconfig? ( dev-libs/libxml2 ) + !system-wlroots? ( ${WLROOTS_CDEPEND} ) " +if [[ ${PV} == 9999 ]] ; then + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/9999[drm(+),libinput(+),x11-backend,X?] ) + " +else + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/16[drm(+),libinput(+),x11-backend,X?] ) + " +fi + RDEPEND=" ${CDEPEND} x11-misc/xkeyboard-config + !system-wfconfig? ( !gui-libs/wf-config ) + !system-wlroots? ( !gui-libs/wlroots ) " DEPEND=" ${CDEPEND} + !system-wlroots? ( ${WLROOTS_DEPEND} ) test? ( dev-cpp/doctest ) " BDEPEND=" dev-util/wayland-scanner virtual/pkgconfig + !system-wlroots? ( ${WLROOTS_BDEPEND} ) " +PATCHES=( + "${FILESDIR}/wayfire-0.8.0-fix-duplicate-manpage.patch" + "${FILESDIR}/wayfire-0.8.0-dont-use-installed-config-h.patch" +) + src_prepare() { default @@ -67,15 +111,24 @@ src_prepare() { "${FILESDIR}"/wayfire-session > "${T}"/wayfire-session || die sed -e "s:@EPREFIX@:${EPREFIX}:" \ "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die + + if [[ "${PV}" != 9999 ]]; then + # Don't run git if git is installed and its not a git dir + sed -i \ + -e "/git = find_program/ifs = import\('fs'\)" \ + -e "s/if git.found()/if git.found() and fs.is_dir('.git')/" \ + meson.build || die + fi + } src_configure() { local emesonargs=( + $(meson_feature system-wfconfig use_system_wfconfig) + $(meson_feature system-wlroots use_system_wlroots) $(meson_feature test tests) $(meson_feature X xwayland) $(meson_use gles enable_gles32) - -Duse_system_wfconfig=enabled - -Duse_system_wlroots=enabled ) meson_src_configure diff --git a/gui-wm/wayfire/wayfire-0.8.1.ebuild b/gui-wm/wayfire/wayfire-0.8.1-r1.ebuild similarity index 96% rename from gui-wm/wayfire/wayfire-0.8.1.ebuild rename to gui-wm/wayfire/wayfire-0.8.1-r1.ebuild index a5e655f6d398..094395b5b72e 100644 --- a/gui-wm/wayfire/wayfire-0.8.1.ebuild +++ b/gui-wm/wayfire/wayfire-0.8.1-r1.ebuild @@ -60,6 +60,10 @@ BDEPEND=" virtual/pkgconfig " +PATCHES=( + "${FILESDIR}/wayfire-0.8.0-dont-use-installed-config-h.patch" +) + src_prepare() { default
