commit:     433ddc6d4900cb2ba3d9adc7e5f19aee62022128
Author:     Daichi Yamamoto <dev <AT> dyama <DOT> net>
AuthorDate: Sun Aug  4 05:48:30 2024 +0000
Commit:     Daichi Yamamoto <dev <AT> dyama <DOT> net>
CommitDate: Sun Aug  4 05:48:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=433ddc6d

gui-wm/river: new package, add 0.3.5

Signed-off-by: Daichi Yamamoto <dev <AT> dyama.net>

 gui-wm/river/Manifest                              |  5 ++
 gui-wm/river/files/river-0.3.5-build-zig-zon.patch | 27 +++++++
 gui-wm/river/files/river-0.3.5-zig-0.12.0.patch    | 27 +++++++
 gui-wm/river/metadata.xml                          | 16 ++++
 gui-wm/river/river-0.3.5.ebuild                    | 87 ++++++++++++++++++++++
 5 files changed, 162 insertions(+)

diff --git a/gui-wm/river/Manifest b/gui-wm/river/Manifest
new file mode 100644
index 000000000..36e44d7c1
--- /dev/null
+++ b/gui-wm/river/Manifest
@@ -0,0 +1,5 @@
+DIST river-0.3.5.tar.gz 170903 BLAKE2B 
a4bdfc0ddd1dc92d6bed392c8a68a2639ef6ae3ee5d217c93d326edcec52af87286ac1c376a60554f9f65443a3130a1d44ff7841dba903a0d17516c94c95ce27
 SHA512 
49e3d0488030aee4f69936605fafc0027b2c78a9a399b5153d54a5ba64592c7efdc67bfd7fedcab6ba93c0689bc921f5a978f7b4b1a12e0c5fda0242900d328c
+DIST zig-pixman-0.2.0.tar.gz 7874 BLAKE2B 
25e0e0a65ab45c08e13ed48393e0d009a63e0ec4c2d8452f08ec4b013f9b696adb1d7356a49b1c3b25710982fb34629002df8d433382d433fcdefd1de5fd4358
 SHA512 
61ce38e9788e9a3701cf32b2d8721424088e1a8bd11841fecc999a31f9b46148e63a35cf770a39edcc7887913019654f7df945b7d7e3b57437d007f7d45609b9
+DIST zig-wayland-0.2.0.tar.gz 56543 BLAKE2B 
aaf82efe78d25c59a87de050147857fcf9a19764141cb40d92b0dd48b96ea0ec52d00a1ab0df1afe4c45cda6d64dda97f296f0aa29d8b9ea3da49e1d5cd69e50
 SHA512 
dfb140c06d9e3c566034f9102426e7bd47dcde87a2ae16d43ce3ea72cf44bea872bab1d9a23a24ae9d57d2d4ae6c56060a6b10f869de3990046426b0462db85e
+DIST zig-wlroots-0.18.0.tar.gz 56568 BLAKE2B 
2ff804f7472d9c48cc29375afcdbdaba996b0c73b4660a89cd982058c79603a0d3f5e7233b0bfe7f2a5af33046ea7dddddad95136a890997020be0f0beb3b050
 SHA512 
a67b35c0475253b581728a407d46e256ca1f587d7cc105f00f5a7e5eb39808cea46a3d302c965f92e08801e99e67a450c11f085a94b57b1d86c0c3bab83b806d
+DIST zig-xkbcommon-0.2.0.tar.gz 22700 BLAKE2B 
85045d002b4ec1ac8dadda67d3ce6f588e53938ac0a67c06d6cebc85a944d7a23fd1cc295410ce1a91cce9ffb587834f7eca2400e1468fec0193583ac71d6f86
 SHA512 
a99b6a2fefe34507fd687b58a9618a27ca617966798b410a72c9e53462c3f9c6dd0476a22bb9686cbf49994ca502743b4d25fdc55125359d4fe2860094bf0e82

diff --git a/gui-wm/river/files/river-0.3.5-build-zig-zon.patch 
b/gui-wm/river/files/river-0.3.5-build-zig-zon.patch
new file mode 100644
index 000000000..ae916f5b6
--- /dev/null
+++ b/gui-wm/river/files/river-0.3.5-build-zig-zon.patch
@@ -0,0 +1,27 @@
+--- a/build.zig.zon
++++ b/build.zig.zon
+@@ -4,20 +4,16 @@
+     .paths = .{""},
+     .dependencies = .{
+         .@"zig-pixman" = .{
+-            .url = 
"https://codeberg.org/ifreund/zig-pixman/archive/v0.2.0.tar.gz";,
+-            .hash = 
"12209db20ce873af176138b76632931def33a10539387cba745db72933c43d274d56",
++            .path = "deps/zig-pixman",
+         },
+         .@"zig-wayland" = .{
+-            .url = 
"https://codeberg.org/ifreund/zig-wayland/archive/v0.2.0.tar.gz";,
+-            .hash = 
"1220687c8c47a48ba285d26a05600f8700d37fc637e223ced3aa8324f3650bf52242",
++            .path = "deps/zig-wayland",
+         },
+         .@"zig-wlroots" = .{
+-            .url = 
"https://codeberg.org/ifreund/zig-wlroots/archive/v0.18.0.tar.gz";,
+-            .hash = 
"12204d789e17c158971f69c7b900e8d8f288e7b9e42b2242f3adfbca57e8266d848f",
++            .path = "deps/zig-wlroots",
+         },
+         .@"zig-xkbcommon" = .{
+-            .url = 
"https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.2.0.tar.gz";,
+-            .hash = 
"1220c90b2228d65fd8427a837d31b0add83e9fade1dcfa539bb56fd06f1f8461605f",
++            .path = "deps/zig-xkbcommon",
+         },
+     },
+ }

diff --git a/gui-wm/river/files/river-0.3.5-zig-0.12.0.patch 
b/gui-wm/river/files/river-0.3.5-zig-0.12.0.patch
new file mode 100644
index 000000000..88442d220
--- /dev/null
+++ b/gui-wm/river/files/river-0.3.5-zig-0.12.0.patch
@@ -0,0 +1,27 @@
+zig-wayland-0.2.0
+--- a/deps/zig-wayland/src/scanner.zig
++++ b/deps/zig-wayland/src/scanner.zig
+@@ -528,7 +528,7 @@
+     // These interfaces are special in that their version may never be 
increased.
+     // That is, they are pinned to version 1 forever. They also may break the
+     // normally required tree object creation hierarchy.
+-    const version_locked_interfaces = 
std.StaticStringMap(void).initComptime(.{
++    const version_locked_interfaces = std.ComptimeStringMap(void, .{
+         .{"wl_display"},
+         .{"wl_registry"},
+         .{"wl_callback"},
+
+river-0.3.5
+--- a/river/command.zig
++++ b/river/command.zig
+@@ -36,9 +36,8 @@
+     vertical,
+ };
+
+-const command_impls = std.StaticStringMap(
++const command_impls = std.ComptimeStringMap(
+     *const fn (*Seat, []const [:0]const u8, *?[]const u8) Error!void,
+-).initComptime(
+     .{
+         // zig fmt: off
+         .{ "attach-mode",               
@import("command/attach_mode.zig").defaultAttachMode },

diff --git a/gui-wm/river/metadata.xml b/gui-wm/river/metadata.xml
new file mode 100644
index 000000000..9d512004a
--- /dev/null
+++ b/gui-wm/river/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Daichi Yamamoto</name>
+       </maintainer>
+       <use>
+               <flag name="fish-completion">Enable fish-completion 
support</flag>
+               <flag name="llvm">Use LLVM Zig backend</flag>
+               <flag name="xwayland">Enable xwayland support</flag>
+       </use>
+       <upstream>
+               <remote-id type="codeberg">river/river</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/gui-wm/river/river-0.3.5.ebuild b/gui-wm/river/river-0.3.5.ebuild
new file mode 100644
index 000000000..8226a42ae
--- /dev/null
+++ b/gui-wm/river/river-0.3.5.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo
+
+DESCRIPTION="A dynamic tiling Wayland compositor"
+HOMEPAGE="https://isaacfreund.com/software/river/";
+
+SRC_URI="
+       https://codeberg.org/river/river/archive/v${PV}.tar.gz -> ${P}.tar.gz
+       https://codeberg.org/ifreund/zig-pixman/archive/v0.2.0.tar.gz -> 
zig-pixman-0.2.0.tar.gz
+       https://codeberg.org/ifreund/zig-wayland/archive/v0.2.0.tar.gz -> 
zig-wayland-0.2.0.tar.gz
+       https://codeberg.org/ifreund/zig-wlroots/archive/v0.18.0.tar.gz -> 
zig-wlroots-0.18.0.tar.gz
+       https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.2.0.tar.gz -> 
zig-xkbcommon-0.2.0.tar.gz
+"
+S="${WORKDIR}/${PN}"
+
+PATCHES=(
+       "${FILESDIR}/${P}-build-zig-zon.patch"
+       "${FILESDIR}/${P}-zig-0.12.0.patch"
+)
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+llvm +man pie xwayland bash-completion zsh-completion fish-completion"
+
+EZIG_MIN="0.12"
+
+DEPEND="
+       || ( dev-lang/zig-bin:${EZIG_MIN} dev-lang/zig:${EZIG_MIN} )
+       dev-libs/wayland
+       gui-libs/wlroots:0.18
+       x11-libs/libxkbcommon
+       x11-libs/pixman
+"
+RDEPEND="${DEPEND}"
+
+# https://github.com/ziglang/zig/issues/3382
+QA_FLAGS_IGNORED="usr/bin/*"
+
+ezig_build() {
+       EZIG=zig
+       edo "${EZIG}" build "${ZIG_BUILD_ARGS[@]}" "${@}"
+}
+
+src_unpack() {
+       default
+
+       edo mkdir "${S}/deps"
+       edo mv zig-pixman "${S}/deps"
+       edo mv zig-wayland "${S}/deps"
+       edo mv zig-wlroots "${S}/deps"
+       edo mv zig-xkbcommon "${S}/deps"
+}
+
+src_configure() {
+       export ZIG_BUILD_ARGS=(
+               -Doptimize=ReleaseSafe
+
+               -Dpie=$(usex pie true false)
+               -Dno-llvm=$(usex llvm false true)
+               -Dman-pages=$(usex man true false)
+               -Dbash-completion=$(usex bash-completion true false)
+               -Dzsh-completion=$(usex zsh-completion true false)
+               -Dfish-completion=$(usex fish-completion true false)
+               -Dxwayland=$(usex xwayland true false)
+       )
+}
+
+src_compile() {
+       ezig_build
+}
+
+src_test() {
+       ezig_build test
+}
+
+src_install() {
+       ezig_build install --prefix "${ED}/usr"
+
+       dodoc README.md
+       insinto /usr/share/wayland-sessions
+       doins contrib/river.desktop
+}

Reply via email to