summaryrefslogtreecommitdiff
path: root/gui-wm
diff options
context:
space:
mode:
authorAlfred Wingate <parona@protonmail.com>2024-03-19 11:36:33 +0200
committerSam James <sam@gentoo.org>2024-03-19 10:05:38 +0000
commit313a17318ddeb6039fd081da6793f64afad942d2 (patch)
treeefe7fd88404ce9e222e7020c2ab695115a6962e7 /gui-wm
parentdev-libs/libjwt: 1.15.3 (diff)
downloadgentoo-313a17318ddeb6039fd081da6793f64afad942d2.tar.gz
gentoo-313a17318ddeb6039fd081da6793f64afad942d2.tar.bz2
gentoo-313a17318ddeb6039fd081da6793f64afad942d2.zip
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@protonmail.com> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'gui-wm')
-rw-r--r--gui-wm/wayfire/files/wayfire-0.8.0-dont-use-installed-config-h.patch65
-rw-r--r--gui-wm/wayfire/wayfire-0.8.0-r2.ebuild158
-rw-r--r--gui-wm/wayfire/wayfire-0.8.1-r1.ebuild (renamed from gui-wm/wayfire/wayfire-0.8.1.ebuild)4
3 files changed, 227 insertions, 0 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 <parona@protonmail.com>
+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 <parona@protonmail.com>
+--- 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.0-r2.ebuild b/gui-wm/wayfire/wayfire-0.8.0-r2.ebuild
new file mode 100644
index 000000000000..c6ed5fedef88
--- /dev/null
+++ b/gui-wm/wayfire/wayfire-0.8.0-r2.ebuild
@@ -0,0 +1,158 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+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/9999"
+else
+ SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+ SLOT="0/$(ver_cut 1-2)"
+fi
+
+LICENSE="MIT"
+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/libevdev
+ >=dev-libs/libinput-1.7.0
+ dev-libs/wayland
+ >=dev-libs/wayland-protocols-1.12
+ 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
+ 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
+
+ sed -e "s:@EPREFIX@:${EPREFIX}:" \
+ "${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)
+ )
+
+ 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
+}
+
+pkg_postinst() {
+ if [ -z "${REPLACING_VERSIONS}" ]; then
+ elog "Wayfire has been installed but the session cannot be used"
+ elog "until you install a configuration file. The default config"
+ elog "file is installed at \"/usr/share/wayfire/wayfire.ini\""
+ elog "To install the file execute"
+ elog "\$ cp /usr/share/wayfire/wayfire.ini ~/.config/wayfire.ini"
+ fi
+}
diff --git a/gui-wm/wayfire/wayfire-0.8.1.ebuild b/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