Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Apr 2021 21:00:29 GMT
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 70148c11889b - main - x11-toolkits/wlroots: update to 0.13.0
Message-ID:  <202104072100.137L0TSZ058220@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=70148c11889b8de458a1c3ea23c94d05af404296

commit 70148c11889b8de458a1c3ea23c94d05af404296
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-02-23 17:26:36 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-04-07 20:59:00 +0000

    x11-toolkits/wlroots: update to 0.13.0
    
    Changes:        https://github.com/swaywm/wlroots/releases/tag/0.13.0
    Reported by:    GitHub (watch releases)
    Tested by:      Evgeniy Khramtsov (via CFT on x11@ list)
---
 x11-toolkits/wlroots/Makefile          |  25 +-
 x11-toolkits/wlroots/distinfo          |  18 +-
 x11-toolkits/wlroots/pkg-plist         |   5 +-
 x11-wm/cage/Makefile                   |  10 +-
 x11-wm/cage/distinfo                   |  12 +
 x11-wm/gamescope/Makefile              |   3 +
 x11-wm/gamescope/distinfo              |   4 +
 x11-wm/hikari/Makefile                 |   3 +-
 x11-wm/hikari/files/patch-wlroots-0.13 | 439 +++++++++++++++++++++++++++++++++
 x11-wm/labwc/Makefile                  |   7 +
 x11-wm/labwc/distinfo                  |   8 +
 x11-wm/phoc/Makefile                   |   9 +
 x11-wm/phoc/distinfo                   |   2 +
 x11-wm/river/Makefile                  |   1 +
 x11-wm/river/files/patch-wlroots-0.13  | 373 ++++++++++++++++++++++++++++
 x11-wm/sway/Makefile                   |  13 +-
 x11-wm/sway/distinfo                   |  18 ++
 x11-wm/wayfire-plugins-extra/Makefile  |   1 +
 x11-wm/wayfire/Makefile                |  14 +-
 x11-wm/wayfire/distinfo                |  16 ++
 20 files changed, 955 insertions(+), 26 deletions(-)

diff --git a/x11-toolkits/wlroots/Makefile b/x11-toolkits/wlroots/Makefile
index e327aa468266..16ae013a3737 100644
--- a/x11-toolkits/wlroots/Makefile
+++ b/x11-toolkits/wlroots/Makefile
@@ -1,10 +1,10 @@
 PORTNAME=	wlroots
-DISTVERSION=	0.12.0
+DISTVERSION=	0.13.0
 CATEGORIES=	x11-toolkits
 
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES+=	8bdf0df41719.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064
-PATCHFILES+=	90cb6d26877b.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064
+PATCHFILES+=	7c0e2a271a4c.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064
+PATCHFILES+=	d3b759ac5f08.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064
 
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Modular Wayland compositor library
@@ -17,7 +17,7 @@ BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto \
 		wayland-protocols>=1.17:graphics/wayland-protocols
 LIB_DEPENDS=	libudev.so:devel/libudev-devd \
 		libdrm.so:graphics/libdrm \
-		libwayland-egl.so:graphics/wayland \
+		libwayland-server.so:graphics/wayland \
 		libinput.so:x11/libinput \
 		libxkbcommon.so:x11/libxkbcommon
 RUN_DEPENDS=	libudev-devd>=0.4.1:devel/libudev-devd \
@@ -31,13 +31,13 @@ USE_LDCONFIG=	yes
 GH_ACCOUNT=	swaywm
 MESON_ARGS=	-Dexamples=false
 
-OPTIONS_DEFINE=	CONSOLEKIT LIBSEAT X11
-OPTIONS_DEFAULT=LIBSEAT X11
+OPTIONS_DEFINE=	CONSOLEKIT LIBSEAT UUID X11
+OPTIONS_DEFAULT=LIBSEAT UUID X11
 OPTIONS_SUB=	yes
 
 CONSOLEKIT_DESC=	DRM sessions without root using ConsoleKit2
 CONSOLEKIT_PATCH_SITES=	https://github.com/unrelentingtech/${GH_PROJECT}/commit/:ck2
-CONSOLEKIT_PATCHFILES=	fcee578b13eb.patch:-p1:ck2 # https://github.com/swaywm/wlroots/pull/1467
+CONSOLEKIT_PATCHFILES=	fb837ae10b1f.patch:-p1:ck2 # https://github.com/swaywm/wlroots/pull/1467
 CONSOLEKIT_LIB_DEPENDS=	libdbus-1.so:devel/dbus \
 			libconsolekit.so:sysutils/consolekit2
 CONSOLEKIT_MESON_ENABLED=	consolekit2
@@ -49,10 +49,17 @@ LIBSEAT_DESC=		DRM sessions with/without root via libseat (experimental)
 LIBSEAT_LIB_DEPENDS=	libseat.so:sysutils/seatd
 LIBSEAT_MESON_ENABLED=	libseat
 
+# uuid_create() is random on NetBSD and OpenBSD but not DragonFly and FreeBSD
+# See also https://github.com/netbsd/src/commit/8651e9a438af
+UUID_DESC=		Exported surfaces to use random UUIDs via libuuid
+UUID_LIB_DEPENDS=	libuuid.so:misc/e2fsprogs-libuuid
+
 X11_LIB_DEPENDS=	libxcb-errors.so:x11/xcb-util-errors \
+			libxcb-render-util.so:x11/xcb-util-renderutil \
 			libxcb-icccm.so:x11/xcb-util-wm
+X11_BUILD_DEPENDS=	xwayland-devel>0:x11-servers/xwayland-devel
 X11_RUN_DEPENDS=	xwayland-devel>0:x11-servers/xwayland-devel
-X11_USE=		XORG=x11,xcb
-X11_MESON_ENABLED=	x11-backend xcb-icccm xwayland
+X11_USE=		XORG=xcb
+X11_MESON_ENABLED=	x11-backend xwayland
 
 .include <bsd.port.mk>
diff --git a/x11-toolkits/wlroots/distinfo b/x11-toolkits/wlroots/distinfo
index 3706fc23d866..d35910fd7972 100644
--- a/x11-toolkits/wlroots/distinfo
+++ b/x11-toolkits/wlroots/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1604844104
-SHA256 (swaywm-wlroots-0.12.0_GH0.tar.gz) = c9e9f4f6d2f526d0b2886daf3ec37e64831773059aa669fb98a88522a1626bdb
-SIZE (swaywm-wlroots-0.12.0_GH0.tar.gz) = 476936
-SHA256 (8bdf0df41719.patch) = 038fb04b004f862f5ee9a2ad6f97592c94501283b17af6537d19469467cb2e28
-SIZE (8bdf0df41719.patch) = 5800
-SHA256 (90cb6d26877b.patch) = 65c9c9f45d9916da143b76dec3280f7414c757ff2cf9992897ed69cfcaed5edd
-SIZE (90cb6d26877b.patch) = 3971
-SHA256 (fcee578b13eb.patch) = 641ae85b3730854f9cbafe9f5f27ddc7c79fa5eb59ff1f5d2ea64f6e6179ca29
-SIZE (fcee578b13eb.patch) = 27688
+TIMESTAMP = 1617734115
+SHA256 (swaywm-wlroots-0.13.0_GH0.tar.gz) = f6bea37fd4a6f5e5f552b83d61adae8c73e64b0bcb9ae0ab464ebcd9309d3cf3
+SIZE (swaywm-wlroots-0.13.0_GH0.tar.gz) = 503575
+SHA256 (7c0e2a271a4c.patch) = 2b92d3dde7640061ed85ab1690031f7627bebc2366e8c4da217017188ba7195e
+SIZE (7c0e2a271a4c.patch) = 5729
+SHA256 (d3b759ac5f08.patch) = 82109857db12457632a3a8d5de33830613bbd525f3c724d4aa3ce6fd94a7a57c
+SIZE (d3b759ac5f08.patch) = 4028
+SHA256 (fb837ae10b1f.patch) = ecf07d813ae796eca946e909a35434a93b07fc349d6ca8b48d7834cb2dfb4071
+SIZE (fb837ae10b1f.patch) = 27075
diff --git a/x11-toolkits/wlroots/pkg-plist b/x11-toolkits/wlroots/pkg-plist
index 85bed060f161..6e275d0f95b9 100644
--- a/x11-toolkits/wlroots/pkg-plist
+++ b/x11-toolkits/wlroots/pkg-plist
@@ -76,6 +76,9 @@ include/wlr/types/wlr_virtual_keyboard_v1.h
 include/wlr/types/wlr_virtual_pointer_v1.h
 include/wlr/types/wlr_xcursor_manager.h
 include/wlr/types/wlr_xdg_decoration_v1.h
+include/wlr/types/wlr_xdg_foreign_registry.h
+include/wlr/types/wlr_xdg_foreign_v1.h
+include/wlr/types/wlr_xdg_foreign_v2.h
 include/wlr/types/wlr_xdg_output_v1.h
 include/wlr/types/wlr_xdg_shell.h
 include/wlr/util/edges.h
@@ -85,5 +88,5 @@ include/wlr/version.h
 include/wlr/xcursor.h
 %%X11%%include/wlr/xwayland.h
 lib/libwlroots.so
-lib/libwlroots.so.7
+lib/libwlroots.so.8
 libdata/pkgconfig/wlroots.pc
diff --git a/x11-wm/cage/Makefile b/x11-wm/cage/Makefile
index 3ba6b07a2358..785db5d30ef0 100644
--- a/x11-wm/cage/Makefile
+++ b/x11-wm/cage/Makefile
@@ -1,11 +1,17 @@
 PORTNAME=	cage
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.1.2.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	x11-wm
 
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
 PATCHFILES+=	70ecdcb02ea0.patch:-p1 # https://github.com/Hjdskes/cage/pull/148
+PATCHFILES+=	43f1ea36d669.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
+PATCHFILES+=	e3b1a57acaee.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
+PATCHFILES+=	0db62672a4c1.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
+PATCHFILES+=	2852b4e6d024.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
+PATCHFILES+=	956b0cc6a476.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
+PATCHFILES+=	e1956ccb723e.patch:-p1 # https://github.com/Hjdskes/cage/pull/174
 
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Wayland kiosk
@@ -15,7 +21,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto \
 		wayland-protocols>=1.14:graphics/wayland-protocols \
-		wlroots>=0.11.0:x11-toolkits/wlroots
+		wlroots>=0.13.0:x11-toolkits/wlroots
 LIB_DEPENDS=	libwayland-server.so:graphics/wayland \
 		libwlroots.so:x11-toolkits/wlroots \
 		libxkbcommon.so:x11/libxkbcommon
diff --git a/x11-wm/cage/distinfo b/x11-wm/cage/distinfo
index 37e8097a9c86..287d0c9cb86b 100644
--- a/x11-wm/cage/distinfo
+++ b/x11-wm/cage/distinfo
@@ -3,3 +3,15 @@ SHA256 (Hjdskes-cage-v0.1.2.1_GH0.tar.gz) = 38a3e3968f00cc58fe1d9448e972cfac7d1e
 SIZE (Hjdskes-cage-v0.1.2.1_GH0.tar.gz) = 24600
 SHA256 (70ecdcb02ea0.patch) = 2dd0e99d181986c6b2d5e04e89f692e3d77b8bd2a3a08f94cf8a27b38489eb3c
 SIZE (70ecdcb02ea0.patch) = 2137
+SHA256 (43f1ea36d669.patch) = b81ffa42da2ab21d12616315c83c932b7d88c1d365229615c7489ce5129f7010
+SIZE (43f1ea36d669.patch) = 1114
+SHA256 (e3b1a57acaee.patch) = d40a85a5dc75eb0dae37e0f1b9a033d21efa75717177529182e69bd6812bd482
+SIZE (e3b1a57acaee.patch) = 1056
+SHA256 (0db62672a4c1.patch) = 9b7d8a4c3ae8fe10a799b272e3d727bb1c32fc490ad546bc32a6c373c745b556
+SIZE (0db62672a4c1.patch) = 1457
+SHA256 (2852b4e6d024.patch) = 073b0a07897b7f9a134f22c9297dd97fb35233c8265c08b1f3fa54d8bc596cd8
+SIZE (2852b4e6d024.patch) = 7147
+SHA256 (956b0cc6a476.patch) = e77e1266ca9c0e6e119d18ea32669c7494d3d46f71c354c1446014439090f884
+SIZE (956b0cc6a476.patch) = 2993
+SHA256 (e1956ccb723e.patch) = 20cb74a2b070b0b13df437924962dd475afb5510e57fb817b37e999127851ba6
+SIZE (e1956ccb723e.patch) = 1115
diff --git a/x11-wm/gamescope/Makefile b/x11-wm/gamescope/Makefile
index 771958b44ae2..1e5b25601a35 100644
--- a/x11-wm/gamescope/Makefile
+++ b/x11-wm/gamescope/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	gamescope
 DISTVERSION=	3.7.1
+PORTREVISION=	1
 CATEGORIES=	x11-wm
 
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
@@ -8,6 +9,8 @@ PATCHFILES+=	620f8f5bc530.patch:-p1 # https://github.com/Plagman/gamescope/pull/
 PATCHFILES+=	892d79b0f37e.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
 PATCHFILES+=	ae60c865d9d8.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
 PATCHFILES+=	d59836199ebe.patch:-p1 # https://github.com/Plagman/gamescope/issues/120
+PATCHFILES+=	9d84b38c9042.patch:-p1 # wlroots 0.13
+PATCHFILES+=	a9d8a368d809.patch:-p1 # wlroots 0.13
 
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Micro-compositor from SteamOS
diff --git a/x11-wm/gamescope/distinfo b/x11-wm/gamescope/distinfo
index 4989ae4c8251..a02bbea2aade 100644
--- a/x11-wm/gamescope/distinfo
+++ b/x11-wm/gamescope/distinfo
@@ -13,3 +13,7 @@ SHA256 (ae60c865d9d8.patch) = 41593e80d11a80c17a173cd03330738fc9deb82626c6788e15
 SIZE (ae60c865d9d8.patch) = 1111
 SHA256 (d59836199ebe.patch) = 40b519ef847b979ba088325cdd7170bed91936b79d845c65d2126b2b25166a1e
 SIZE (d59836199ebe.patch) = 2586
+SHA256 (9d84b38c9042.patch) = 635e87956399b4c82c8d5234e48752537aa4621d24d02dc0923f61ed040ebab0
+SIZE (9d84b38c9042.patch) = 1514
+SHA256 (a9d8a368d809.patch) = b3eb5e323b351870a3c97df610bc27e33713623017e4a219b13dbc8b6df752a5
+SIZE (a9d8a368d809.patch) = 912
diff --git a/x11-wm/hikari/Makefile b/x11-wm/hikari/Makefile
index 213d9bde31d6..31120173e6a6 100644
--- a/x11-wm/hikari/Makefile
+++ b/x11-wm/hikari/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	hikari
 DISTVERSION=	2.2.3
+PORTREVISION=	1
 CATEGORIES=	x11-wm
 MASTER_SITES=	https://hikari.acmelabs.space/releases/
 
@@ -11,7 +12,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto \
 		wayland-protocols>=1.14:graphics/wayland-protocols \
-		wlroots>=0.9.0<0.13.0:x11-toolkits/wlroots
+		wlroots>=0.13.0<0.14.0:x11-toolkits/wlroots
 LIB_DEPENDS=	libinput.so:x11/libinput \
 		libucl.so:textproc/libucl \
 		libwayland-server.so:graphics/wayland \
diff --git a/x11-wm/hikari/files/patch-wlroots-0.13 b/x11-wm/hikari/files/patch-wlroots-0.13
new file mode 100644
index 000000000000..41ff4f72f408
--- /dev/null
+++ b/x11-wm/hikari/files/patch-wlroots-0.13
@@ -0,0 +1,439 @@
+In file included from src/action.c:7:
+In file included from include/hikari/server.h:29:
+In file included from include/hikari/layer_shell.h:4:
+/usr/local/include/wlr/types/wlr_layer_shell_v1.h:52:52: error: field has incomplete type 'enum zwlr_layer_surface_v1_keyboard_interactivity'
+        enum zwlr_layer_surface_v1_keyboard_interactivity keyboard_interactive;
+                                                          ^
+/usr/local/include/wlr/types/wlr_layer_shell_v1.h:52:7: note: forward declaration of 'enum zwlr_layer_surface_v1_keyboard_interactivity'
+        enum zwlr_layer_surface_v1_keyboard_interactivity keyboard_interactive;
+             ^
+In file included from src/configuration.c:29:
+In file included from include/hikari/server.h:8:
+In file included from /usr/local/include/wlr/types/wlr_virtual_keyboard_v1.h:14:
+In file included from /usr/local/include/wlr/interfaces/wlr_keyboard.h:13:
+/usr/local/include/wlr/types/wlr_keyboard.h:113:10: error: conflicting types for 'wlr_keyboard_get_modifiers'
+uint32_t wlr_keyboard_get_modifiers(struct wlr_keyboard *keyboard);
+         ^
+include/hikari/keyboard.h:61:24: note: previous implicit declaration is here
+  uint32_t modifiers = wlr_keyboard_get_modifiers(keyboard->device->keyboard);
+                       ^
+In file included from src/configuration.c:32:
+include/hikari/switch.h:14:25: error: field has incomplete type 'enum wlr_switch_state'
+  enum wlr_switch_state state;
+                        ^
+include/hikari/switch.h:14:8: note: forward declaration of 'enum wlr_switch_state'
+  enum wlr_switch_state state;
+       ^
+src/dnd_mode.c:25:23: error: use of undeclared identifier 'WLR_KEY_RELEASED'; did you mean 'WLR_BUTTON_RELEASED'?
+  if (event->state == WLR_KEY_RELEASED) {
+src/group_assign_mode.c:256:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/input_grab_mode.c:53:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/layout_select_mode.c:62:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/lock_mode.c:180:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/mark_assign_mode.c:164:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/mark_select_mode.c:40:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/move_mode.c:35:23: error: use of undeclared identifier 'WLR_KEY_RELEASED'; did you mean 'WLR_BUTTON_RELEASED'?
+  if (event->state == WLR_KEY_RELEASED) {
+src/normal_mode.c:322:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+src/resize_mode.c:35:23: error: use of undeclared identifier 'WLR_KEY_RELEASED'; did you mean 'WLR_BUTTON_RELEASED'?
+  if (event->state == WLR_KEY_RELEASED) {
+src/sheet_assign_mode.c:169:23: error: use of undeclared identifier 'WLR_KEY_PRESSED'
+  if (event->state == WLR_KEY_PRESSED) {
+                      ^
+
+src/server.c:756:61: error: too many arguments to function call, expected single argument 'display', have 2 arguments
+  server->backend = wlr_backend_autocreate(server->display, NULL);
+                    ~~~~~~~~~~~~~~~~~~~~~~                  ^~~~
+/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
+#define NULL    ((void *)0)
+                ^~~~~~~~~~~
+/usr/local/include/wlr/backend.h:35:21: note: 'wlr_backend_autocreate' declared here
+struct wlr_backend *wlr_backend_autocreate(struct wl_display *display);
+                    ^
+
+00:00:00.167 [render/gles2/texture.c:162] Unsupported pixel format 0x0
+
+--- include/hikari/keyboard.h.orig	2020-07-21 06:19:04 UTC
++++ include/hikari/keyboard.h
+@@ -6,6 +6,7 @@
+ #include <xkbcommon/xkbcommon.h>
+ 
+ #include <wlr/types/wlr_input_device.h>
++#include <wlr/types/wlr_keyboard.h>
+ 
+ #include <hikari/binding_group.h>
+ #include <hikari/keyboard_config.h>
+--- include/hikari/switch.h.orig	2020-07-21 06:19:04 UTC
++++ include/hikari/switch.h
+@@ -2,6 +2,7 @@
+ #define HIKARI_SWITCH_H
+ 
+ #include <wlr/types/wlr_input_device.h>
++#include <wlr/types/wlr_switch.h>
+ 
+ struct hikari_action;
+ struct hikari_switch_config;
+--- protocol/wlr-layer-shell-unstable-v1.xml.orig	2020-05-01 08:37:51 UTC
++++ protocol/wlr-layer-shell-unstable-v1.xml
+@@ -25,7 +25,7 @@
+     THIS SOFTWARE.
+   </copyright>
+ 
+-  <interface name="zwlr_layer_shell_v1" version="2">
++  <interface name="zwlr_layer_shell_v1" version="4">
+     <description summary="create surfaces that are layers of the desktop">
+       Clients can use this interface to assign the surface_layer role to
+       wl_surfaces. Such surfaces are assigned to a "layer" of the output and
+@@ -47,6 +47,12 @@
+         or manipulate a buffer prior to the first layer_surface.configure call
+         must also be treated as errors.
+ 
++        After creating a layer_surface object and setting it up, the client
++        must perform an initial commit without any buffer attached.
++        The compositor will reply with a layer_surface.configure event.
++        The client must acknowledge it and is then allowed to attach a buffer
++        to map the surface.
++
+         You may pass NULL for output to allow the compositor to decide which
+         output to use. Generally this will be the one that the user most
+         recently interacted with.
+@@ -82,9 +88,19 @@
+       <entry name="top" value="2"/>
+       <entry name="overlay" value="3"/>
+     </enum>
++
++    <!-- Version 3 additions -->
++
++    <request name="destroy" type="destructor" since="3">
++      <description summary="destroy the layer_shell object">
++        This request indicates that the client will not use the layer_shell
++        object any more. Objects that have been created through this instance
++        are not affected.
++      </description>
++    </request>
+   </interface>
+ 
+-  <interface name="zwlr_layer_surface_v1" version="2">
++  <interface name="zwlr_layer_surface_v1" version="4">
+     <description summary="layer metadata interface">
+       An interface that may be implemented by a wl_surface, for surfaces that
+       are designed to be rendered as a layer of a stacked desktop-like
+@@ -93,6 +109,14 @@
+       Layer surface state (layer, size, anchor, exclusive zone,
+       margin, interactivity) is double-buffered, and will be applied at the
+       time wl_surface.commit of the corresponding wl_surface is called.
++
++      Attaching a null buffer to a layer surface unmaps it.
++
++      Unmapping a layer_surface means that the surface cannot be shown by the
++      compositor until it is explicitly mapped again. The layer_surface
++      returns to the state it had right after layer_shell.get_layer_surface.
++      The client can re-map the surface by performing a commit without any
++      buffer attached, waiting for a configure event and handling it as usual.
+     </description>
+ 
+     <request name="set_size">
+@@ -179,21 +203,85 @@
+       <arg name="left" type="int"/>
+     </request>
+ 
++    <enum name="keyboard_interactivity">
++      <description summary="types of keyboard interaction possible for a layer shell surface">
++        Types of keyboard interaction possible for layer shell surfaces. The
++        rationale for this is twofold: (1) some applications are not interested
++        in keyboard events and not allowing them to be focused can improve the
++        desktop experience; (2) some applications will want to take exclusive
++        keyboard focus.
++      </description>
++
++      <entry name="none" value="0">
++        <description summary="no keyboard focus is possible">
++          This value indicates that this surface is not interested in keyboard
++          events and the compositor should never assign it the keyboard focus.
++
++          This is the default value, set for newly created layer shell surfaces.
++
++          This is useful for e.g. desktop widgets that display information or
++          only have interaction with non-keyboard input devices.
++        </description>
++      </entry>
++      <entry name="exclusive" value="1">
++        <description summary="request exclusive keyboard focus">
++          Request exclusive keyboard focus if this surface is above the shell surface layer.
++
++          For the top and overlay layers, the seat will always give
++          exclusive keyboard focus to the top-most layer which has keyboard
++          interactivity set to exclusive. If this layer contains multiple
++          surfaces with keyboard interactivity set to exclusive, the compositor
++          determines the one receiving keyboard events in an implementation-
++          defined manner. In this case, no guarantee is made when this surface
++          will receive keyboard focus (if ever).
++
++          For the bottom and background layers, the compositor is allowed to use
++          normal focus semantics.
++
++          This setting is mainly intended for applications that need to ensure
++          they receive all keyboard events, such as a lock screen or a password
++          prompt.
++        </description>
++      </entry>
++      <entry name="on_demand" value="2" since="4">
++        <description summary="request regular keyboard focus semantics">
++          This requests the compositor to allow this surface to be focused and
++          unfocused by the user in an implementation-defined manner. The user
++          should be able to unfocus this surface even regardless of the layer
++          it is on.
++
++          Typically, the compositor will want to use its normal mechanism to
++          manage keyboard focus between layer shell surfaces with this setting
++          and regular toplevels on the desktop layer (e.g. click to focus).
++          Nevertheless, it is possible for a compositor to require a special
++          interaction to focus or unfocus layer shell surfaces (e.g. requiring
++          a click even if focus follows the mouse normally, or providing a
++          keybinding to switch focus between layers).
++
++          This setting is mainly intended for desktop shell components (e.g.
++          panels) that allow keyboard interaction. Using this option can allow
++          implementing a desktop shell that can be fully usable without the
++          mouse.
++        </description>
++      </entry>
++    </enum>
++
+     <request name="set_keyboard_interactivity">
+       <description summary="requests keyboard events">
+-        Set to 1 to request that the seat send keyboard events to this layer
+-        surface. For layers below the shell surface layer, the seat will use
+-        normal focus semantics. For layers above the shell surface layers, the
+-        seat will always give exclusive keyboard focus to the top-most layer
+-        which has keyboard interactivity set to true.
++        Set how keyboard events are delivered to this surface. By default,
++        layer shell surfaces do not receive keyboard events; this request can
++        be used to change this.
+ 
++        This setting is inherited by child surfaces set by the get_popup
++        request.
++
+         Layer surfaces receive pointer, touch, and tablet events normally. If
+         you do not want to receive them, set the input region on your surface
+         to an empty region.
+ 
+-        Events is double-buffered, see wl_surface.commit.
++        Keyboard interactivity is double-buffered, see wl_surface.commit.
+       </description>
+-      <arg name="keyboard_interactivity" type="uint"/>
++      <arg name="keyboard_interactivity" type="uint" enum="keyboard_interactivity"/>
+     </request>
+ 
+     <request name="get_popup">
+@@ -278,6 +366,7 @@
+       <entry name="invalid_surface_state" value="0" summary="provided surface state is invalid"/>
+       <entry name="invalid_size" value="1" summary="size is invalid"/>
+       <entry name="invalid_anchor" value="2" summary="anchor bitfield is invalid"/>
++      <entry name="invalid_keyboard_interactivity" value="3" summary="keyboard interactivity is invalid"/>
+     </enum>
+ 
+     <enum name="anchor" bitfield="true">
+@@ -295,7 +384,7 @@
+ 
+         Layer is double-buffered, see wl_surface.commit.
+       </description>
+-      <arg name="layer" type="uint" enum="layer" summary="layer to move this surface to"/>
++      <arg name="layer" type="uint" enum="zwlr_layer_shell_v1.layer" summary="layer to move this surface to"/>
+     </request>
+   </interface>
+ </protocol>
+--- src/dnd_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/dnd_mode.c
+@@ -22,7 +22,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_RELEASED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED) {
+     hikari_server_enter_normal_mode(NULL);
+   }
+ }
+--- src/group_assign_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/group_assign_mode.c
+@@ -253,7 +253,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     uint32_t keycode = event->keycode + 8;
+     hikari_keyboard_for_keysym(keyboard, keycode, handle_keysym);
+   }
+--- src/indicator_bar.c.orig	2020-09-08 08:20:26 UTC
++++ src/indicator_bar.c
+@@ -4,6 +4,7 @@
+ #include <pango/pangocairo.h>
+ #include <string.h>
+ 
++#include <drm_fourcc.h>
+ #include <wlr/backend.h>
+ #include <wlr/render/wlr_renderer.h>
+ #include <wlr/render/wlr_texture.h>
+@@ -120,7 +121,7 @@ hikari_indicator_bar_update(struct hikari_indicator_ba
+   int stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width);
+ 
+   indicator_bar->texture = wlr_texture_from_pixels(
+-      wlr_renderer, WL_SHM_FORMAT_ARGB8888, stride, width, height, data);
++      wlr_renderer, DRM_FORMAT_ARGB8888, stride, width, height, data);
+ 
+   cairo_surface_destroy(surface);
+   g_object_unref(layout);
+--- src/input_grab_mode.c.orig	2020-10-22 15:14:16 UTC
++++ src/input_grab_mode.c
+@@ -50,7 +50,7 @@ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+   struct hikari_workspace *workspace = hikari_server.workspace;
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     uint32_t modifiers = hikari_server.keyboard_state.modifiers;
+     struct hikari_binding_group *bindings = &keyboard->bindings[modifiers];
+ 
+--- src/layout_select_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/layout_select_mode.c
+@@ -59,7 +59,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     apply_layout(hikari_configuration, event, keyboard);
+   }
+ }
+--- src/lock_indicator.c.orig	2020-07-21 06:19:04 UTC
++++ src/lock_indicator.c
+@@ -1,5 +1,6 @@
+ #include <hikari/lock_indicator.h>
+ 
++#include <drm_fourcc.h>
+ #include <wlr/backend.h>
+ #include <wlr/render/wlr_renderer.h>
+ #include <wlr/types/wlr_matrix.h>
+@@ -45,7 +46,7 @@ init_indicator_circle(float color[static 4])
+   int stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, size);
+ 
+   texture = wlr_texture_from_pixels(
+-      wlr_renderer, WL_SHM_FORMAT_ARGB8888, stride, size, size, data);
++      wlr_renderer, DRM_FORMAT_ARGB8888, stride, size, size, data);
+ 
+   cairo_surface_destroy(surface);
+   g_object_unref(layout);
+--- src/lock_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/lock_mode.c
+@@ -177,7 +177,7 @@ key_handler(
+ {
+   struct hikari_lock_mode *mode = get_mode();
+ 
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     const xkb_keysym_t *syms;
+     uint32_t keycode = event->keycode + 8;
+     uint32_t codepoint;
+--- src/mark_assign_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/mark_assign_mode.c
+@@ -161,7 +161,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     assign_mark(event, keyboard);
+   }
+ }
+--- src/mark_select_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/mark_select_mode.c
+@@ -37,7 +37,7 @@ key_handler(
+ {
+   struct hikari_workspace *workspace = hikari_server.workspace;
+ 
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     mark_select(workspace, event, keyboard);
+   }
+ }
+--- src/move_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/move_mode.c
+@@ -32,7 +32,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_RELEASED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED) {
+     hikari_server_enter_normal_mode(NULL);
+   }
+ }
+--- src/normal_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/normal_mode.c
+@@ -319,7 +319,7 @@ key_handler(
+     return;
+   }
+ 
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     uint32_t modifiers = hikari_server.keyboard_state.modifiers;
+     struct hikari_binding_group *bindings = &keyboard->bindings[modifiers];
+ 
+--- src/output.c.orig	2020-09-08 08:20:26 UTC
++++ src/output.c
+@@ -1,5 +1,6 @@
+ #include <hikari/output.h>
+ 
++#include <drm_fourcc.h>
+ #include <wlr/backend.h>
+ 
+ #include <hikari/memory.h>
+@@ -86,7 +87,7 @@ hikari_output_load_background(struct hikari_output *ou
+       wlr_backend_get_renderer(output->wlr_output->backend);
+ 
+   output->background = wlr_texture_from_pixels(renderer,
+-      WL_SHM_FORMAT_ARGB8888,
++      DRM_FORMAT_ARGB8888,
+       stride,
+       output_width,
+       output_height,
+--- src/resize_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/resize_mode.c
+@@ -32,7 +32,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_RELEASED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED) {
+     hikari_server_enter_normal_mode(NULL);
+   }
+ }
+--- src/server.c.orig	2020-09-08 08:20:26 UTC
++++ src/server.c
+@@ -753,7 +753,7 @@ hikari_server_prepare_privileged(void)
+     goto done;
+   }
+ 
+-  server->backend = wlr_backend_autocreate(server->display, NULL);
++  server->backend = wlr_backend_autocreate(server->display);
+   if (server->backend == NULL) {
+     fprintf(stderr, "error: could not create backend\n");
+     goto done;
+--- src/sheet_assign_mode.c.orig	2020-09-08 08:20:26 UTC
++++ src/sheet_assign_mode.c
+@@ -166,7 +166,7 @@ static void
+ key_handler(
+     struct hikari_keyboard *keyboard, struct wlr_event_keyboard_key *event)
+ {
+-  if (event->state == WLR_KEY_PRESSED) {
++  if (event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+     uint32_t keycode = event->keycode + 8;
+     hikari_keyboard_for_keysym(keyboard, keycode, handle_keysym);
+   }
diff --git a/x11-wm/labwc/Makefile b/x11-wm/labwc/Makefile
index e28ef85041e8..0f41419b618d 100644
--- a/x11-wm/labwc/Makefile
+++ b/x11-wm/labwc/Makefile
@@ -1,7 +1,14 @@
 PORTNAME=	labwc
 DISTVERSION=	0.1.0
+PORTREVISION=	1
 CATEGORIES=	x11-wm
 
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	2ee21e9a82d8.patch:-p1 # https://github.com/johanmalm/labwc/pull/26
+PATCHFILES+=	ad07acc13cee.patch:-p1 # https://github.com/johanmalm/labwc/pull/26
+PATCHFILES+=	c9023dd2c6af.patch:-p1 # https://github.com/johanmalm/labwc/pull/26
+PATCHFILES+=	0ca3eb8f790c.patch:-p1 # https://github.com/johanmalm/labwc/pull/26
+
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Openbox alternative for Wayland
 
diff --git a/x11-wm/labwc/distinfo b/x11-wm/labwc/distinfo
index 1a39fad6b455..a06d629ec38f 100644
--- a/x11-wm/labwc/distinfo
+++ b/x11-wm/labwc/distinfo
@@ -1,3 +1,11 @@
 TIMESTAMP = 1615031145
 SHA256 (johanmalm-labwc-0.1.0_GH0.tar.gz) = c3087c0dc846c18499a335fe04c9bc46f014f7421739573636f6f8f746fd3c84
 SIZE (johanmalm-labwc-0.1.0_GH0.tar.gz) = 59533
+SHA256 (2ee21e9a82d8.patch) = 2f6a312853a14ceb5853cfd6b59c49b6110f7ee12363b5b0f19eb176471aaa27
+SIZE (2ee21e9a82d8.patch) = 1422
+SHA256 (ad07acc13cee.patch) = e104ba1327136dc22b02ab7475f65f3ff2845fe644fecfd884cfbd6337df6248
+SIZE (ad07acc13cee.patch) = 5132
+SHA256 (c9023dd2c6af.patch) = ac6e04d88c1d7ded9d9a989721ac26f6954ed3d3e1680d90a93d1f04f07adc1d
+SIZE (c9023dd2c6af.patch) = 2465
+SHA256 (0ca3eb8f790c.patch) = 89ce5081ff675e17c308de0bb73ce5439452958d0a803e5c7a7015be177b3e4b
+SIZE (0ca3eb8f790c.patch) = 1715
diff --git a/x11-wm/phoc/Makefile b/x11-wm/phoc/Makefile
index 00f0d178174e..311d6b779146 100644
--- a/x11-wm/phoc/Makefile
+++ b/x11-wm/phoc/Makefile
@@ -1,8 +1,12 @@
 PORTNAME=	phoc
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.7.0
+PORTREVISION=	1
 CATEGORIES=	x11-wm
 
+PATCH_SITES=	${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
+PATCHFILES+=	b37bf15194e6.diff:-p1 # https://source.puri.sm/Librem5/phoc/-/merge_requests/241
+
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Phone compositor
 
@@ -32,5 +36,10 @@ GLIB_SCHEMAS=	sm.puri.phoc.gschema.xml
 post-extract:
 # Avoid confusing Meson instead of forcing -Dembed-wlroots=disabled
 	@${RMDIR} ${WRKSRC}/subprojects/wlroots
+.if defined(PATCHFILES) && ${PATCHFILES:Mb37bf15194e6*}
+# Pretend to be a regular file for vendor patch to apply as is
+	@${ECHO_CMD} "Subproject commit 3d227f140e3c4af42d759477fc38e82a4c3dc4ef" \
+		>${WRKSRC}/subprojects/wlroots
+.endif
 
 .include <bsd.port.mk>
diff --git a/x11-wm/phoc/distinfo b/x11-wm/phoc/distinfo
index fe3826d9ede0..7403915ca708 100644
--- a/x11-wm/phoc/distinfo
+++ b/x11-wm/phoc/distinfo
@@ -1,3 +1,5 @@
 TIMESTAMP = 1616120558
 SHA256 (Librem5-phoc-f26fa0123742ba95d303ad552fc1f8d2d0117288_GL0.tar.gz) = 266c58250ca0f1ef6daf1bdcf5fb30af8fea674a9ee3237b8c9fc0700ebfe320
 SIZE (Librem5-phoc-f26fa0123742ba95d303ad552fc1f8d2d0117288_GL0.tar.gz) = 143148
+SHA256 (b37bf15194e6.diff) = 0a0e8652dab5b4fabc751ed1274b7b94575d2f226917392a960f1c4c477b9f93
+SIZE (b37bf15194e6.diff) = 19468
diff --git a/x11-wm/river/Makefile b/x11-wm/river/Makefile
index aa75fb544674..c30da18fbb5e 100644
--- a/x11-wm/river/Makefile
+++ b/x11-wm/river/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	river
 PORTVERSION=	s20210328
+PORTREVISION=	1
 CATEGORIES=	x11-wm
 
 MAINTAINER=	jbeich@FreeBSD.org
diff --git a/x11-wm/river/files/patch-wlroots-0.13 b/x11-wm/river/files/patch-wlroots-0.13
new file mode 100644
index 000000000000..4c8afdd02055
--- /dev/null
+++ b/x11-wm/river/files/patch-wlroots-0.13
@@ -0,0 +1,373 @@
+https://github.com/swaywm/zig-wlroots/commit/4902876cd4f9
+https://github.com/ifreund/river/commit/73594ee57c95
+
+--- deps/zig-wlroots/src/backend.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/backend.zig
+@@ -15,9 +15,9 @@ pub const Backend = extern struct {
+ 
+     // backend.h
+ 
+-    extern fn wlr_backend_autocreate(server: *wl.Server, create_renderer_func: ?wlr.Renderer.CreateFn) ?*Backend;
+-    pub fn autocreate(server: *wl.Server, create_renderer_func: ?wlr.Renderer.CreateFn) !*Backend {
+-        return wlr_backend_autocreate(server, create_renderer_func) orelse error.BackendCreateFailed;
++    extern fn wlr_backend_autocreate(server: *wl.Server) ?*Backend;
++    pub fn autocreate(server: *wl.Server) !*Backend {
++        return wlr_backend_autocreate(server) orelse error.BackendCreateFailed;
+     }
+ 
+     extern fn wlr_backend_start(backend: *Backend) bool;
+--- deps/zig-wlroots/src/backend/session.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/backend/session.zig
+@@ -6,17 +6,24 @@ const wl = wayland.server.wl;
+ pub const Device = extern struct {
+     fd: c_int,
+     dev: u64,
+-    signal: wl.Signal(*Session),
+-
+     /// Session.devices
+     link: wl.list.Link,
++
++    events: extern struct {
++        change: wl.Signal(void),
++    },
+ };
+ 
+ pub const Session = extern struct {
+     const Impl = opaque {};
+ 
++    pub const event = struct {
++        pub const Add = extern struct {
++            path: [*:0]const u8,
++        };
++    };
++
+     impl: *const Impl,
+-    session_signal: wl.Signal(*Session),
+     active: bool,
+ 
+     vtnr: c_uint,
+@@ -29,9 +36,12 @@ pub const Session = extern struct {
+ 
+     devices: wl.list.Head(Device, "link"),
+ 
++    server: *wl.Server,
+     server_destroy: wl.Listener(*wl.Server),
+ 
+     events: extern struct {
++        active: wl.Signal(void),
++        add_drm_card: wl.Signal(*event.Add),
+         destroy: wl.Signal(*Session),
+     },
+ 
+@@ -43,20 +53,19 @@ pub const Session = extern struct {
+     extern fn wlr_session_destroy(session: *Session) void;
+     pub const destroy = wlr_session_destroy;
+ 
+-    extern fn wlr_session_open_file(session: *Session, path: [*:0]const u8) c_int;
+-    pub const openFile = wlr_session_open_file;
++    extern fn wlr_session_open_file(session: *Session, path: [*:0]const u8) ?*Device;
++    pub fn openFile(session: *Session, path: [*:0]const u8) !*Device {
++        return wlr_session_open_file(session, path) orelse error.SessionOpenFileFailed;
++    }
+ 
+-    extern fn wlr_session_close_file(session: *Session, fd: c_int) void;
++    extern fn wlr_session_close_file(session: *Session, device: *Device) void;
+     pub const closeFile = wlr_session_close_file;
+ 
+-    extern fn wlr_session_signal_add(session: *Session, fd: c_int, listener: *wl.Listener(*Session)) void;
+-    pub const signalAdd = wlr_session_signal_add;
+-
+     extern fn wlr_session_change_vt(session: *Session, vt: c_uint) bool;
+     pub fn changeVt(session: *Session, vt: c_uint) !void {
+         if (!wlr_session_change_vt(session, vt)) return error.ChangeVtFailed;
+     }
+ 
+-    extern fn wlr_session_find_gpus(session: *Session, ret_len: usize, ret: [*]c_int) usize;
++    extern fn wlr_session_find_gpus(session: *Session, ret_len: usize, ret: [*]*Device) usize;
+     pub const findGpus = wlr_session_find_gpus;
+ };
+--- deps/zig-wlroots/src/render/renderer.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/render/renderer.zig
+@@ -6,14 +6,6 @@ const wl = wayland.server.wl;
+ pub const Renderer = extern struct {
+     const Impl = opaque {};
+ 
+-    pub const CreateFn = fn (
+-        egl: *wlr.Egl,
+-        platform: c_uint, // EGLenum
+-        remote_display: ?*c_void,
+-        config_attribs: *i32, // EGLint
+-        visual_id: i32, // EGLint
+-    ) callconv(.C) ?*Renderer;
+-
+     impl: *const Impl,
+     rendering: bool,
+     events: extern struct {
+@@ -22,8 +14,7 @@ pub const Renderer = extern struct {
+ 
+     // wlr_renderer functions:
+ 
+-    // TODO: int types
+-    extern fn wlr_renderer_begin(renderer: *Renderer, width: c_int, height: c_int) void;
++    extern fn wlr_renderer_begin(renderer: *Renderer, width: u32, height: u32) void;
+     pub const begin = wlr_renderer_begin;
+ 
+     pub extern fn wlr_renderer_end(renderer: *Renderer) void;
+@@ -47,8 +38,8 @@ pub const Renderer = extern struct {
+     extern fn wlr_renderer_scissor(renderer: *Renderer, box: *wlr.Box) void;
+     pub const scissor = wlr_renderer_scissor;
+ 
+-    extern fn wlr_renderer_get_formats(renderer: *Renderer, len: *usize) [*]const wl.Shm.Format;
+-    pub const getFormats = wlr_renderer_get_formats;
++    extern fn wlr_renderer_get_shm_texture_formats(renderer: *Renderer, len: *usize) [*]const wl.Shm.Format;
++    pub const getShmTextureFormats = wlr_renderer_get_shm_texture_formats;
+ 
+     extern fn wlr_renderer_resource_is_wl_drm_buffer(renderer: *Renderer, buffer: *wl.Buffer) bool;
+     pub const resourceIsWlDrmBuffer = wlr_renderer_resource_is_wl_drm_buffer;
+@@ -62,7 +53,7 @@ pub const Renderer = extern struct {
+     pub const wlDrmBufferGetSize = wlr_renderer_wl_drm_buffer_get_size;
+ 
+     // TODO:
+-    //extern fn wlr_renderer_get_dmabuf_formats(renderer: *Renderer) [*c]const struct_wlr_drm_format_set;
++    //extern fn wlr_renderer_get_dmabuf_texture_formats(renderer: *Renderer) [*c]const struct_wlr_drm_format_set;
+     //pub const getDmabufFormats = wlr_renderer_get_dmabuf_formats;
+ 
+     extern fn wlr_renderer_read_pixels(
+@@ -86,9 +77,6 @@ pub const Renderer = extern struct {
+         src: *wlr.DmabufAttributes,
+     ) bool;
+     pub const blitDmabuf = wlr_renderer_blit_dmabuf;
+-
+-    extern fn wlr_renderer_format_supported(renderer: *Renderer, fmt: wl.Shm.Format) bool;
+-    pub const formatSupported = wlr_renderer_format_supported;
+ 
+     extern fn wlr_renderer_get_drm_fd(renderer: *Renderer) c_int;
+     pub const getDrmFd = wlr_renderer_get_drm_fd;
+--- deps/zig-wlroots/src/render/texture.zig.orig	2021-03-01 13:53:50 UTC
++++ deps/zig-wlroots/src/render/texture.zig
+@@ -10,7 +10,7 @@ pub const Texture = extern struct {
+     width: u32,
+     height: u32,
+ 
+-    extern fn wlr_texture_from_pixels(renderer: *wlr.Renderer, wl_fmt: wl.Shm.Format, stride: u32, width: u32, height: u32, data: *const c_void) ?*Texture;
++    extern fn wlr_texture_from_pixels(renderer: *wlr.Renderer, fmt: u32, stride: u32, width: u32, height: u32, data: *const c_void) ?*Texture;
+     pub const fromPixels = wlr_texture_from_pixels;
+ 
+     extern fn wlr_texture_from_wl_drm(renderer: *wlr.Renderer, data: *wl.Drm) ?*Texture;
+--- deps/zig-wlroots/src/types/buffer.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/types/buffer.zig
+@@ -49,6 +49,9 @@ pub const ClientBuffer = extern struct {
+     resource_destroy: wl.Listener(*wl.Buffer),
+     release: wl.Listener(void),
+ 
++    extern fn wlr_client_buffer_get(buffer: *wlr.Buffer) ?*ClientBuffer;
++    pub const get = wlr_client_buffer_get;
++
+     extern fn wlr_client_buffer_import(renderer: *wlr.Renderer, resource: *wl.Buffer) ?*ClientBuffer;
+     pub const import = wlr_client_buffer_import;
+ 
+--- deps/zig-wlroots/src/types/layer_shell_v1.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/types/layer_shell_v1.zig
+@@ -109,7 +109,7 @@ pub const LayerSurfaceV1 = extern struct {
+         );
+     }
+ 
+-    extern fn wlr_layer_surface_v1_for_each_popup(
++    extern fn wlr_layer_surface_v1_for_each_popup_surface(
+         surface: *LayerSurfaceV1,
+         iterator: fn (*wlr.Surface, c_int, c_int, ?*c_void) callconv(.C) void,
+         user_data: ?*c_void,
+@@ -120,7 +120,7 @@ pub const LayerSurfaceV1 = extern struct {
+         iterator: fn (surface: *wlr.Surface, sx: c_int, sy: c_int, data: T) callconv(.C) void,
+         data: T,
+     ) void {
+-        wlr_layer_surface_v1_for_each_popup(
++        wlr_layer_surface_v1_for_each_popup_surface(
+             surface,
+             @ptrCast(fn (*wlr.Surface, c_int, c_int, ?*c_void) callconv(.C) void, iterator),
+             data,
+--- deps/zig-wlroots/src/types/output.zig.orig	2021-02-15 17:19:02 UTC
++++ deps/zig-wlroots/src/types/output.zig
+@@ -105,6 +105,11 @@ pub const Output = extern struct {
+             /// This is a bitfield of Present.flag members
+             flags: u32,
+         };
++
++        pub const Bind = extern struct {
++            output: *wlr.Output,
++            resource: *wl.Output,
++        };
+     };
+ 
+     const Impl = opaque {};
*** 304 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104072100.137L0TSZ058220>