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
 

Reply via email to