1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-11 07:22:22 +00:00

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
This commit is contained in:
Jan Beich 2020-11-09 23:47:36 +00:00
parent f87655c66d
commit fa353d8a2f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=554797
5 changed files with 98 additions and 0 deletions

View File

@ -84,6 +84,7 @@
SUBDIR += qtile
SUBDIR += ratmen
SUBDIR += ratpoison
SUBDIR += river
SUBDIR += rubygem-uh-layout
SUBDIR += rubygem-uh-wm
SUBDIR += sawfish

53
x11-wm/river/Makefile Normal file
View File

@ -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>

5
x11-wm/river/distinfo Normal file
View File

@ -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

View File

@ -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;

8
x11-wm/river/pkg-descr Normal file
View File

@ -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