aboutsummaryrefslogtreecommitdiff
path: root/x11-wm/river
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2020-11-09 23:47:36 +0000
committerJan Beich <jbeich@FreeBSD.org>2020-11-09 23:47:36 +0000
commitfa353d8a2f0ced840514e468f2f8168f7bc95b1b (patch)
tree3dc74ff565577e4217475958c2fd749eaa40e9b2 /x11-wm/river
parentf87655c66dbe3e97f6c99dba1e85d9cc1f3059d8 (diff)
downloadports-fa353d8a2f0ced840514e468f2f8168f7bc95b1b.tar.gz
ports-fa353d8a2f0ced840514e468f2f8168f7bc95b1b.zip
x11-wm/river: add new port
river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm. https://github.com/ifreund/river
Notes
Notes: svn path=/head/; revision=554797
Diffstat (limited to 'x11-wm/river')
-rw-r--r--x11-wm/river/Makefile53
-rw-r--r--x11-wm/river/distinfo5
-rw-r--r--x11-wm/river/files/patch-sigset31
-rw-r--r--x11-wm/river/pkg-descr8
4 files changed, 97 insertions, 0 deletions
diff --git a/x11-wm/river/Makefile b/x11-wm/river/Makefile
new file mode 100644
index 000000000000..bc3ad8cdbb5b
--- /dev/null
+++ b/x11-wm/river/Makefile
@@ -0,0 +1,53 @@
+# $FreeBSD$
+
+PORTNAME= river
+PORTVERSION= s20201104
+CATEGORIES= x11-wm
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= Dynamic tiling Wayland compositor
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols \
+ zig>=0.7.0:lang/zig
+LIB_DEPENDS= libevdev.so:devel/libevdev \
+ libwayland-server.so:graphics/wayland \
+ libwlroots.so:x11-toolkits/wlroots \
+ libxkbcommon.so:x11/libxkbcommon
+
+USES= pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= ifreund
+GH_TAGNAME= 5a6018f
+GH_TUPLE= ifreund:zig-wayland:931b6f7:zig_wayland/deps/zig-wayland
+CONFIGURE_ARGS= --prefix "${STAGEDIR}${PREFIX}" \
+ ${WITH_DEBUG:U-Drelease-fast=true} \
+ --verbose
+NO_INSTALL= yes # strip(1) breaks runtime
+PLIST_FILES= bin/${PORTNAME} \
+ bin/${PORTNAME}ctl \
+ bin/${PORTNAME}tile
+
+OPTIONS_DEFINE= MANPAGES X11
+OPTIONS_DEFAULT=MANPAGES X11
+
+MANPAGES_BUILD_DEPENDS= scdoc:textproc/scdoc
+MANPAGES_CONFIGURE_ON= -Dman-pages=true
+MANPAGES_CONFIGURE_OFF= -Dman-pages=false
+MANPAGES_PLIST_FILES= share/man/man1/${PORTNAME}.1.gz \
+ share/man/man1/${PORTNAME}ctl.1.gz \
+ share/man/man1/${PORTNAME}tile.1.gz \
+ share/man/man7/${PORTNAME}-layouts.7.gz
+
+X11_CONFIGURE_ON= -Dxwayland=true
+X11_CONFIGURE_OFF= -Dxwayland=false
+
+do-build:
+ @(cd ${WRKSRC} && ${MAKE_ENV} zig build ${CONFIGURE_ARGS})
+
+do-test:
+ @(cd ${WRKSRC} && ${TEST_ENV} zig build test ${CONFIGURE_ARGS})
+
+.include <bsd.port.mk>
diff --git a/x11-wm/river/distinfo b/x11-wm/river/distinfo
new file mode 100644
index 000000000000..05588b70b16a
--- /dev/null
+++ b/x11-wm/river/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1604500250
+SHA256 (ifreund-river-s20201104-5a6018f_GH0.tar.gz) = 807f4536abf1234969e4e32b4ba43fe1105e997d0dc4c272d55c8ea518791e08
+SIZE (ifreund-river-s20201104-5a6018f_GH0.tar.gz) = 91438
+SHA256 (ifreund-zig-wayland-931b6f7_GH0.tar.gz) = fb88a66e18f3d8b7b3d1ceb44dfb3085472134774035136d5d08f4ffcfe8bc2c
+SIZE (ifreund-zig-wayland-931b6f7_GH0.tar.gz) = 49602
diff --git a/x11-wm/river/files/patch-sigset b/x11-wm/river/files/patch-sigset
new file mode 100644
index 000000000000..dc0fa5a7baaa
--- /dev/null
+++ b/x11-wm/river/files/patch-sigset
@@ -0,0 +1,31 @@
+https://github.com/ziglang/zig/issues/5892
+
+./river/main.zig:82:70: error: container 'std.os' has no member called 'empty_sigset'
+ if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.empty_sigset, null) < 0) unreachable;
+ ^
+./river/command/spawn.zig:49:66: error: container 'std.os' has no member called 'empty_sigset'
+ if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.empty_sigset, null) < 0) unreachable;
+ ^
+
+--- river/command/spawn.zig.orig 2020-11-04 14:30:50 UTC
++++ river/command/spawn.zig
+@@ -46,7 +46,7 @@ pub fn spawn(
+ if (pid == 0) {
+ // Clean things up for the child in an intermediate fork
+ if (c.setsid() < 0) unreachable;
+- if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.empty_sigset, null) < 0) unreachable;
++ if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.sigset_t{ .__bits = [_]u32{0} ** std.os._SIG_WORDS }, null) < 0) unreachable;
+
+ const pid2 = std.os.fork() catch c._exit(1);
+ if (pid2 == 0) std.os.execveZ("/bin/sh", &child_args, std.c.environ) catch c._exit(1);
+--- river/main.zig.orig 2020-11-04 14:30:50 UTC
++++ river/main.zig
+@@ -79,7 +79,7 @@ pub fn main() anyerror!void {
+ const child_args = [_:null]?[*:0]const u8{ "/bin/sh", "-c", cmd, null };
+ const pid = try std.os.fork();
+ if (pid == 0) {
+- if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.empty_sigset, null) < 0) unreachable;
++ if (std.os.system.sigprocmask(std.os.SIG_SETMASK, &std.os.sigset_t{ .__bits = [_]u32{0} ** std.os._SIG_WORDS }, null) < 0) unreachable;
+ std.os.execveZ("/bin/sh", &child_args, std.c.environ) catch c._exit(1);
+ }
+ break :blk pid;
diff --git a/x11-wm/river/pkg-descr b/x11-wm/river/pkg-descr
new file mode 100644
index 000000000000..34e3b341b6af
--- /dev/null
+++ b/x11-wm/river/pkg-descr
@@ -0,0 +1,8 @@
+river is a dynamic tiling wayland compositor that takes inspiration
+from dwm and bspwm.
+
+Note: river is currently early in development. Expect breaking changes
+and missing features. If you run into a bug don't hesitate to open an
+issue upstream.
+
+WWW: https://github.com/ifreund/river