commit:     57236d595649afbb6777e95809156a31e45b084b
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun May  5 18:03:55 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun May  5 18:27:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57236d59

gui-wm/wayfire: resolve issues in wayfire-session

Start dbus (add a USE flag for this).
Add a config file to disable hardware cursor (invisible on nvidia).
Initialize .ini file if absent (and remove the postinst message).
It can be started from a tty or from sddm.

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 gui-wm/wayfire/files/wayfire-session-2 |  26 +++++++++
 gui-wm/wayfire/files/wayfire.env       |   2 +
 gui-wm/wayfire/wayfire-0.8.1-r2.ebuild | 102 +++++++++++++++++++++++++++++++++
 3 files changed, 130 insertions(+)

diff --git a/gui-wm/wayfire/files/wayfire-session-2 
b/gui-wm/wayfire/files/wayfire-session-2
new file mode 100644
index 000000000000..0713ca0bbb93
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire-session-2
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# output to syslog and stderr
+# with PID and syslog identity 'wayfire'
+exec 1> >(logger --id=$$ --stderr --tag wayfire) 2>&1
+
+# if undefined, or empty, set to freedesktop specification defaults
+[ -z "$XDG_DATA_DIRS" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share"
+
+# freedesktop specifications mandate that the definition
+# of XDG_SESSION_TYPE should be respected
+export XDG_SESSION_TYPE=wayland
+export GDK_BACKEND=wayland
+export QT_QPA_PLATFORM=wayland
+export MOZ_ENABLE_WAYLAND=1
+
+# copy wayfire.ini to $HOME/.config/ if not already there
+configdir="${XDG_CONFIG_HOME:=${HOME}/.config}"
+if [[ ! -f ${configdir}/wayfire.ini ]]; then
+       cp /usr/share/wayfire/wayfire.ini "${configdir}"
+fi
+
+# override or add environment variables
+[[ -f @EPREFIX@/etc/wayfire.env ]] && . @EPREFIX@/etc/wayfire.env
+
+exec @DBUS_RUN_SESSION@ @EPREFIX@/usr/bin/wayfire "$@"

diff --git a/gui-wm/wayfire/files/wayfire.env b/gui-wm/wayfire/files/wayfire.env
new file mode 100644
index 000000000000..47ce61e3183c
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire.env
@@ -0,0 +1,2 @@
+# Uncomment if the mouse cursor is invisible:
+#export WLR_NO_HARDWARE_CURSORS=1

diff --git a/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild 
b/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild
new file mode 100644
index 000000000000..ff1a84e65576
--- /dev/null
+++ b/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild
@@ -0,0 +1,102 @@
+# 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/0.8"
+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="+dbus +gles3 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
+CDEPEND="
+       dev-cpp/nlohmann_json
+       dev-libs/glib:2
+       dev-libs/libevdev
+       >=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/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
+"
+
+PATCHES=(
+       "${FILESDIR}/wayfire-0.8.0-dont-use-installed-config-h.patch"
+)
+
+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() {
+       local emesonargs=(
+               $(meson_feature test tests)
+               $(meson_feature X xwayland)
+               $(meson_use gles3 enable_gles32)
+               -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
+}

Reply via email to