commit:     38003da3bc9028883e791b0d1edb8c19c4f072bd
Author:     Violet Purcell <vimproved <AT> inventati <DOT> org>
AuthorDate: Fri Jan 16 21:48:50 2026 +0000
Commit:     Violet Purcell <vimproved <AT> inventati <DOT> org>
CommitDate: Sun Jan 18 23:16:12 2026 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=38003da3

gui-wm/river: add 9999

Signed-off-by: Violet Purcell <vimproved <AT> inventati.org>
Part-of: https://github.com/gentoo/guru/pull/421

 gui-wm/river/files/river-9999-fix-scdoc-path.patch | 14 ++++
 gui-wm/river/river-9999.ebuild                     | 80 ++++++++++++++++++++++
 2 files changed, 94 insertions(+)

diff --git a/gui-wm/river/files/river-9999-fix-scdoc-path.patch 
b/gui-wm/river/files/river-9999-fix-scdoc-path.patch
new file mode 100644
index 0000000000..ab53ce6f60
--- /dev/null
+++ b/gui-wm/river/files/river-9999-fix-scdoc-path.patch
@@ -0,0 +1,14 @@
+--- a/build.zig
++++ b/build.zig
+@@ -252,8 +252,9 @@
+         inline for (.{"river"}) |page| {
+             // Workaround for https://github.com/ziglang/zig/issues/16369
+             // Even passing a buffer to std.Build.Step.Run appears to be racy 
and occasionally deadlocks.
+-            const scdoc = b.addSystemCommand(&.{ "/bin/sh", "-c", "scdoc < 
doc/" ++ page ++ ".1.scd" });
++            // Fix: Ensure scdoc runs in the correct source directory to find 
.scd files
++            const scdoc = b.addSystemCommand(&.{ "/bin/sh", "-c", b.fmt("cd 
{s} && scdoc < doc/{s}.1.scd", .{ b.build_root.path orelse ".", page }) });
+             // This makes the caching work for the Workaround, and the extra 
argument is ignored by /bin/sh.
+             scdoc.addFileArg(b.path("doc/" ++ page ++ ".1.scd"));
+
+             const stdout = scdoc.captureStdOut();
+             b.getInstallStep().dependOn(&b.addInstallFile(stdout, 
"share/man/man1/" ++ page ++ ".1").step);

diff --git a/gui-wm/river/river-9999.ebuild b/gui-wm/river/river-9999.ebuild
new file mode 100644
index 0000000000..63242ec2a7
--- /dev/null
+++ b/gui-wm/river/river-9999.ebuild
@@ -0,0 +1,80 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A dynamic tiling Wayland compositor"
+HOMEPAGE="https://isaacfreund.com/software/river/ 
https://codeberg.org/river/river";
+
+ZIG_SLOT="0.15"
+inherit zig
+
+if [[ "${PV}" = "9999" ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://codeberg.org/river/river.git";
+else
+       # TODO verify-sig support
+       SRC_URI="
+               
https://codeberg.org/river/river/releases/download/v${PV}/${P}.tar.gz
+               ${ZBS_DEPENDENCIES_SRC_URI}
+       "
+       KEYWORDS="~amd64"
+fi
+
+# river: GPL-3-or-later
+# zig-pixman, zig-wayland, zig-wlroots, zig-xkbcommon: MIT
+LICENSE="GPL-3+ MIT"
+SLOT="0"
+IUSE="X +llvm man"
+
+BDEPEND="
+       dev-libs/wayland-protocols
+       dev-util/wayland-scanner
+       man? ( app-text/scdoc )
+       || (
+               dev-lang/zig:${ZIG_SLOT}[llvm(+)?]
+               dev-lang/zig-bin:${ZIG_SLOT}
+       )
+"
+DEPEND="
+       dev-libs/libevdev
+       dev-libs/libinput:=
+       dev-libs/wayland
+       gui-libs/wlroots:0.19[X?]
+       x11-libs/libxkbcommon[wayland,X?]
+       x11-libs/pixman
+"
+RDEPEND="${DEPEND}"
+
+DOCS=( "README.md" )
+
+PATCHES=(
+       "${FILESDIR}/${P}-fix-scdoc-path.patch"
+)
+
+src_unpack() {
+       if [[ "${PV}" = "9999" ]]; then
+               git-r3_src_unpack
+               zig_live_fetch
+       else
+               zig_src_unpack
+       fi
+}
+
+src_configure() {
+       local my_zbs_args=(
+               -Dstrip=false # Let Portage control this
+               -Dpie=true
+               -Dman-pages=$(usex man true false)
+               -Dxwayland=$(usex X true false)
+       )
+
+       zig_src_configure
+}
+
+src_install() {
+       zig_src_install
+
+       insinto /usr/share/wayland-sessions/
+       doins contrib/river.desktop
+}

Reply via email to