? river
Index: cage/Makefile
===================================================================
RCS file: /cvs/ports/wayland/cage/Makefile,v
diff -u -p -u -p -r1.3 Makefile
--- cage/Makefile	21 Mar 2026 21:55:44 -0000	1.3
+++ cage/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,6 +1,6 @@
 COMMENT =	Wayland kiosk
 
-V =		0.2.1
+V =		0.3.0
 DISTNAME =	cage-${V}
 CATEGORIES =	wayland
 HOMEPAGE =	https://www.hjdskes.nl/projects/cage/
@@ -15,6 +15,7 @@ COMPILER =		base-clang ports-gcc
 COMPILER_LANGS =	c
 
 MODULES =	devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.20
 
 WANTLIB =	c xkbcommon wayland-server
 
Index: cage/distinfo
===================================================================
RCS file: /cvs/ports/wayland/cage/distinfo,v
diff -u -p -u -p -r1.2 distinfo
--- cage/distinfo	11 Nov 2025 11:41:19 -0000	1.2
+++ cage/distinfo	4 Jun 2026 11:32:50 -0000
@@ -1,2 +1,2 @@
-SHA256 (cage-0.2.1.tar.gz) = /BI446pbgnh6ldScs+G6wGceTTpACQCHhI9D8+H2Opg=
-SIZE (cage-0.2.1.tar.gz) = 24988
+SHA256 (cage-0.3.0.tar.gz) = zSUQ+DvvPgjmYNmUksp3YbIY7LU+4Bzbvu49aqvHc04=
+SIZE (cage-0.3.0.tar.gz) = 25485
Index: cagebreak/Makefile
===================================================================
RCS file: /cvs/ports/wayland/cagebreak/Makefile,v
diff -u -p -u -p -r1.2 Makefile
--- cagebreak/Makefile	2 Jan 2026 16:18:53 -0000	1.2
+++ cagebreak/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,7 +1,7 @@
 COMMENT =	wayland tiling compositor inspired by ratpoison
 
 V =		3.1.0
-REVISION =	0
+REVISION =	1
 DISTNAME =	release_${V}
 PKGNAME =	cagebreak-${V}
 
@@ -25,6 +25,7 @@ COMPILER_LANGS =	c
 
 MODULES =		devel/meson \
 			wayland/wlroots
+MODWLROOTS_VERSION =	0.19
 BUILD_DEPENDS =		textproc/scdoc \
 			wayland/wayland-protocols
 LIB_DEPENDS =		devel/pango \
Index: greetd/Makefile
===================================================================
RCS file: /cvs/ports/wayland/greetd/Makefile,v
diff -u -p -u -p -r1.7 Makefile
--- greetd/Makefile	31 Jan 2026 10:19:27 -0000	1.7
+++ greetd/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,7 +1,7 @@
 COMMENT =	wayland login manager daemon
 
 DIST_TUPLE =	srht kennylevinsen greetd 0.10.3 .
-REVISION =	5
+REVISION =	6
 
 CATEGORIES =	wayland
 
Index: labwc/Makefile
===================================================================
RCS file: /cvs/ports/wayland/labwc/Makefile,v
diff -u -p -u -p -r1.13 Makefile
--- labwc/Makefile	6 May 2026 13:02:44 -0000	1.13
+++ labwc/Makefile	4 Jun 2026 11:32:50 -0000
@@ -2,7 +2,7 @@ COMMENT =	window-stacking Wayland compos
 
 GH_ACCOUNT =	labwc
 GH_PROJECT =	labwc
-GH_TAGNAME =	0.9.7
+GH_TAGNAME =	0.20.0
 
 CATEGORIES =	wayland
 
@@ -15,7 +15,8 @@ PERMIT_PACKAGE = Yes
 COMPILER =		base-clang ports-gcc
 COMPILER_LANGS =	c
 
-MODULES =	devel/meson wayland/wlroots
+MODULES =		devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.20
 
 DEBUG_PACKAGES = ${BUILD_PACKAGES}
 
@@ -38,5 +39,7 @@ WANTLIB += c cairo glib-2.0 gobject-2.0 
 WANTLIB += pangocairo-1.0 pixman-1 png rsvg-2 sfdo-basedir sfdo-desktop
 WANTLIB += sfdo-icon wayland-server xcb xcb-ewmh xkbcommon
 WANTLIB += xml2 epoll-shim wayland-client wayland-cursor
+
+CONFIGURE_ARGS =	-Dsystemd-session=disabled
 
 .include <bsd.port.mk>
Index: labwc/distinfo
===================================================================
RCS file: /cvs/ports/wayland/labwc/distinfo,v
diff -u -p -u -p -r1.8 distinfo
--- labwc/distinfo	6 May 2026 13:02:44 -0000	1.8
+++ labwc/distinfo	4 Jun 2026 11:32:50 -0000
@@ -1,2 +1,2 @@
-SHA256 (labwc-0.9.7.tar.gz) = StTl5/KeDQcE+ttKByA3Fz2FC0bxISK3kWiHm5IuD0M=
-SIZE (labwc-0.9.7.tar.gz) = 548483
+SHA256 (labwc-0.20.0.tar.gz) = Pgt8/Y43HtSCby1UZ3Se3H+dbAZJHdlDpV7RwLSaNpo=
+SIZE (labwc-0.20.0.tar.gz) = 548211
Index: labwc/patches/patch-docs_autostart
===================================================================
RCS file: /cvs/ports/wayland/labwc/patches/patch-docs_autostart,v
diff -u -p -u -p -r1.2 patch-docs_autostart
--- labwc/patches/patch-docs_autostart	28 Aug 2025 21:07:13 -0000	1.2
+++ labwc/patches/patch-docs_autostart	4 Jun 2026 11:32:50 -0000
@@ -1,15 +1,15 @@
 Index: docs/autostart
 --- docs/autostart.orig
 +++ docs/autostart
-@@ -2,6 +2,7 @@
+@@ -10,6 +10,7 @@
  
  # Set background color.
  swaybg -c '#113344' >/dev/null 2>&1 &
 +havoc &
  
  # Configure output directives such as mode, position, scale and transform.
- # Use wlr-randr to get your output names
-@@ -10,10 +11,10 @@ swaybg -c '#113344' >/dev/null 2>&1 &
+ # Use wlr-randr to get your output names.
+@@ -18,10 +19,10 @@ swaybg -c '#113344' >/dev/null 2>&1 &
  #     output HDMI-A-1 position 1366,0
  #     output eDP-1 position 0,0
  #   }
@@ -22,7 +22,7 @@ Index: docs/autostart
  
  # To delay the launch of a particular client it is suggested that the following
  # syntax is used: ( sleep X ; foo ) &
-@@ -23,7 +24,7 @@ waybar >/dev/null 2>&1 &
+@@ -31,7 +32,7 @@ waybar >/dev/null 2>&1 &
  # Enable notifications. Typically GNOME/KDE application notifications go
  # through the org.freedesktop.Notifications D-Bus API and require a client such
  # as mako to function correctly. Thunderbird is an example of this.
@@ -31,7 +31,7 @@ Index: docs/autostart
  
  # Lock screen after 5 minutes; turn off display after another 5 minutes.
  #
-@@ -33,8 +34,5 @@ mako >/dev/null 2>&1 &
+@@ -41,8 +42,5 @@ mako >/dev/null 2>&1 &
  # (since a837fef). Instead use a wlr-output-power-management client such as
  # https://git.sr.ht/~leon_plickat/wlopm
  swayidle -w \
Index: labwc/pkg/PLIST
===================================================================
RCS file: /cvs/ports/wayland/labwc/pkg/PLIST,v
diff -u -p -u -p -r1.7 PLIST
--- labwc/pkg/PLIST	2 Mar 2026 12:43:20 -0000	1.7
+++ labwc/pkg/PLIST	4 Jun 2026 11:32:50 -0000
@@ -46,6 +46,7 @@ share/locale/id/LC_MESSAGES/labwc.mo
 share/locale/it/LC_MESSAGES/labwc.mo
 share/locale/ja/LC_MESSAGES/labwc.mo
 share/locale/ka/LC_MESSAGES/labwc.mo
+share/locale/kab/LC_MESSAGES/labwc.mo
 share/locale/kk/LC_MESSAGES/labwc.mo
 share/locale/ko/LC_MESSAGES/labwc.mo
 share/locale/lt/LC_MESSAGES/labwc.mo
@@ -57,6 +58,9 @@ share/locale/pt/LC_MESSAGES/labwc.mo
 share/locale/pt_BR/LC_MESSAGES/labwc.mo
 share/locale/ru/LC_MESSAGES/labwc.mo
 share/locale/sk/LC_MESSAGES/labwc.mo
+share/locale/sr_Latn/
+share/locale/sr_Latn/LC_MESSAGES/
+share/locale/sr_Latn/LC_MESSAGES/labwc.mo
 share/locale/sv/LC_MESSAGES/labwc.mo
 share/locale/tr/LC_MESSAGES/labwc.mo
 share/locale/uk/LC_MESSAGES/labwc.mo
Index: mango/Makefile
===================================================================
RCS file: /cvs/ports/wayland/mango/Makefile,v
diff -u -p -u -p -r1.5 Makefile
--- mango/Makefile	29 May 2026 18:39:38 -0000	1.5
+++ mango/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,6 +1,7 @@
 COMMENT =		lightweight, high-performance Wayland compositor
 
 DIST_TUPLE=		github mangowm mango 0.14.0 .
+REVISION =		0
 
 CATEGORIES =		wayland
 
@@ -17,6 +18,7 @@ WANTLIB += wayland-server xcb-icccm xkbc
 COMPILER =		base-clang ports-gcc
 
 MODULES =		devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.19
 
 BUILD_DEPENDS =		wayland/wayland-protocols
 
Index: scenefx/Makefile
===================================================================
RCS file: /cvs/ports/wayland/scenefx/Makefile,v
diff -u -p -u -p -r1.1.1.1 Makefile
--- scenefx/Makefile	6 Apr 2026 19:17:09 -0000	1.1.1.1
+++ scenefx/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,6 +1,7 @@
 COMMENT =		drop-in replacement for the wlroots scene API
 
 V =			0.4.1
+REVISION =		0
 SCENEFX_LIBV =		0.4
 
 DIST_TUPLE=		github wlrfx scenefx ${V} .
@@ -15,6 +16,7 @@ PERMIT_PACKAGE =	Yes
 COMPILER =		base-clang ports-gcc
 
 MODULES =		devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.19
 
 BUILD_DEPENDS =		wayland/wayland-protocols
 
Index: sway/Makefile
===================================================================
RCS file: /cvs/ports/wayland/sway/Makefile,v
diff -u -p -u -p -r1.18 Makefile
--- sway/Makefile	21 Mar 2026 19:50:19 -0000	1.18
+++ sway/Makefile	4 Jun 2026 11:32:50 -0000
@@ -2,8 +2,7 @@ COMMENT =	i3-compatible Wayland composit
 
 GH_ACCOUNT =	swaywm
 GH_PROJECT =	sway
-GH_TAGNAME =	1.11
-REVISION =	0
+GH_TAGNAME =	1.12
 
 CATEGORIES =	wayland
 
@@ -16,7 +15,8 @@ PERMIT_PACKAGE = Yes
 COMPILER =		base-clang ports-gcc
 COMPILER_LANGS =	c
 
-MODULES =	devel/meson wayland/wlroots
+MODULES =		devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.20
 
 WANTLIB =	cairo drm evdev gdk_pixbuf-2.0 glib-2.0 gobject-2.0 input
 WANTLIB +=	json-c pango-1.0 pangocairo-1.0 pcre2-8 pixman-1 pthread
Index: sway/distinfo
===================================================================
RCS file: /cvs/ports/wayland/sway/distinfo,v
diff -u -p -u -p -r1.7 distinfo
--- sway/distinfo	28 Aug 2025 21:02:59 -0000	1.7
+++ sway/distinfo	4 Jun 2026 11:32:50 -0000
@@ -1,2 +1,2 @@
-SHA256 (sway-1.11.tar.gz) = A07EUZMm1q9SdYFHAN3kboUsUXRhQQmv/kyGsvvuBio=
-SIZE (sway-1.11.tar.gz) = 5583731
+SHA256 (sway-1.12.tar.gz) = Kcp8qslg0T4C2CE0GNkaVCLHwjECooPOq5RMV8Xh788=
+SIZE (sway-1.12.tar.gz) = 5590239
Index: sway/patches/patch-meson_build
===================================================================
RCS file: /cvs/ports/wayland/sway/patches/patch-meson_build,v
diff -u -p -u -p -r1.3 patch-meson_build
--- sway/patches/patch-meson_build	28 Aug 2025 21:02:59 -0000	1.3
+++ sway/patches/patch-meson_build	4 Jun 2026 11:32:50 -0000
@@ -1,7 +1,7 @@
 Index: meson.build
 --- meson.build.orig
 +++ meson.build
-@@ -29,6 +29,8 @@ add_project_arguments(
+@@ -30,6 +30,8 @@ add_project_arguments(
  cc = meson.get_compiler('c')
  
  is_freebsd = host_machine.system().startswith('freebsd')
@@ -10,7 +10,7 @@ Index: meson.build
  datadir = get_option('datadir')
  sysconfdir = get_option('sysconfdir')
  prefix = get_option('prefix')
-@@ -77,7 +79,7 @@ xcb = wlroots_features['xwayland'] ? dependency('xcb')
+@@ -78,7 +80,7 @@ xcb = wlroots_features['xwayland'] ? dependency('xcb')
  drm = dependency('libdrm')
  libudev = wlroots_features['libinput_backend'] ? dependency('libudev') : null_dep
  math = cc.find_library('m')
Index: wayback/Makefile
===================================================================
RCS file: /cvs/ports/wayland/wayback/Makefile,v
diff -u -p -u -p -r1.3 Makefile
--- wayback/Makefile	21 Mar 2026 19:59:20 -0000	1.3
+++ wayback/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,6 +1,7 @@
 COMMENT =	X11 compat layer for running full X11 desktop environments
 
 V =		0.3
+REVISION =	0
 DISTNAME =	wayback-${V}
 CATEGORIES =	wayland
 
@@ -15,7 +16,8 @@ PERMIT_PACKAGE = Yes
 COMPILER =		base-clang ports-gcc
 COMPILER_LANGS =	c
 
-MODULES =	devel/meson wayland/wlroots
+MODULES =		devel/meson wayland/wlroots
+MODWLROOTS_VERSION =	0.19
 
 WANTLIB +=	wayland-client wayland-server xkbcommon c
 
Index: wlroots/Makefile
===================================================================
RCS file: /cvs/ports/wayland/wlroots/Makefile,v
diff -u -p -u -p -r1.18 Makefile
--- wlroots/Makefile	20 Feb 2026 21:35:37 -0000	1.18
+++ wlroots/Makefile	4 Jun 2026 11:32:50 -0000
@@ -1,60 +1,5 @@
-COMMENT =	modular Wayland compositor library
+SUBDIR =
+SUBDIR +=	0.19
+SUBDIR +=	0.20
 
-V =		${MODWLROOTS_VERSION}.2
-REVISION =	1
-EPOCH =		0
-DISTNAME =	wlroots-${V}
-CATEGORIES =	wayland
-
-SITES =		${HOMEPAGE}/wlroots/-/releases/${V}/downloads/
-
-HOMEPAGE =	https://gitlab.freedesktop.org/wlroots
-
-# MIT
-PERMIT_PACKAGE = Yes
-
-SHARED_LIBS +=  wlroots-0.19 0.0 # 0.0
-
-COMPILER =	base-clang ports-gcc
-COMPILER_LANGS=	c
-MODULES =	devel/meson wayland/wlroots
-
-MODWLROOTS_LIBDEP =	No
-
-WANTLIB +=	EGL GLESv2 drm gbm m pixman-1
-WANTLIB +=	display-info lcms2 liftoff udev
-WANTLIB +=	input seat
-WANTLIB +=	vulkan wayland-client wayland-server
-WANTLIB +=	xcb xcb-composite xcb-dri3 xcb-errors xcb-ewmh
-WANTLIB +=	xcb-icccm xcb-present xcb-render xcb-render-util
-WANTLIB +=	xcb-res xcb-shm xcb-xfixes xcb-xinput
-WANTLIB +=	xkbcommon
-
-BUILD_DEPENDS = \
-		graphics/glslang \
-		graphics/vulkan-headers \
-		misc/hwdata \
-		wayland/wayland-protocols \
-		wayland/xwayland
-
-LIB_DEPENDS = \
-		graphics/lcms2 \
-		graphics/libliftoff \
-		graphics/vulkan-loader \
-		sysutils/libdisplay-info \
-		sysutils/libudev-openbsd \
-		sysutils/seatd \
-		wayland/libinput-openbsd \
-		wayland/wayland \
-		x11/xcb-util-errors \
-		x11/xkbcommon
-
-RUN_DEPENDS =	wayland/xwayland
-
-CONFIGURE_ARGS = \
-		-Dexamples=false \
-		-Dallocators=gbm
-
-DEBUG_PACKAGES = ${BUILD_PACKAGES}
-
-.include <bsd.port.mk>
+.include <bsd.port.subdir.mk>
Index: wlroots/Makefile.inc
===================================================================
RCS file: wlroots/Makefile.inc
diff -N wlroots/Makefile.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/Makefile.inc	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,55 @@
+COMMENT ?=	modular Wayland compositor library (${MODWLROOTS_VERSION})
+
+DISTNAME =	wlroots-${V}
+PKGSTEM ?=	wlroots-${MODWLROOTS_VERSION}
+CATEGORIES =	wayland
+EPOCH =		0
+
+SITES =		${HOMEPAGE}/wlroots/-/releases/${V}/downloads/
+
+HOMEPAGE =	https://gitlab.freedesktop.org/wlroots
+
+# MIT
+PERMIT_PACKAGE = Yes
+
+COMPILER =	base-clang ports-gcc
+COMPILER_LANGS=	c
+MODULES =	devel/meson wayland/wlroots
+
+MODWLROOTS_LIBDEP =	No
+
+WANTLIB +=	EGL GLESv2 drm gbm m pixman-1
+WANTLIB +=	display-info lcms2 liftoff udev
+WANTLIB +=	input seat
+WANTLIB +=	vulkan wayland-client wayland-server
+WANTLIB +=	xcb xcb-composite xcb-dri3 xcb-errors xcb-ewmh
+WANTLIB +=	xcb-icccm xcb-present xcb-render xcb-render-util
+WANTLIB +=	xcb-res xcb-shm xcb-xfixes xcb-xinput
+WANTLIB +=	xkbcommon
+
+BUILD_DEPENDS = \
+		graphics/glslang \
+		graphics/vulkan-headers \
+		misc/hwdata \
+		wayland/wayland-protocols \
+		wayland/xwayland
+
+LIB_DEPENDS = \
+		graphics/lcms2 \
+		graphics/libliftoff \
+		graphics/vulkan-loader \
+		sysutils/libdisplay-info \
+		sysutils/libudev-openbsd \
+		sysutils/seatd \
+		wayland/libinput-openbsd \
+		wayland/wayland \
+		x11/xcb-util-errors \
+		x11/xkbcommon
+
+RUN_DEPENDS =	wayland/xwayland
+
+CONFIGURE_ARGS = \
+		-Dexamples=false \
+		-Dallocators=gbm
+
+DEBUG_PACKAGES = ${BUILD_PACKAGES}
Index: wlroots/distinfo
===================================================================
RCS file: wlroots/distinfo
diff -N wlroots/distinfo
--- wlroots/distinfo	19 Nov 2025 08:58:58 -0000	1.10
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-SHA256 (wlroots-0.19.2.tar.gz) = CaCo1gEEyLB3L+5PYLp2qJrtflnf92WdAJYPuga98mc=
-SIZE (wlroots-0.19.2.tar.gz) = 670983
Index: wlroots/wlroots.port.mk
===================================================================
RCS file: /cvs/ports/wayland/wlroots/wlroots.port.mk,v
diff -u -p -u -p -r1.2 wlroots.port.mk
--- wlroots/wlroots.port.mk	28 Aug 2025 21:01:27 -0000	1.2
+++ wlroots/wlroots.port.mk	4 Jun 2026 11:32:50 -0000
@@ -1,13 +1,13 @@
-MODWLROOTS_VERSION =		0.19
+MODWLROOTS_VERSION ?=		0.19
 
 MODWLROOTS_WANTLIB =		wlroots-${MODWLROOTS_VERSION}
-MODWLROOTS_LIB_DEPENDS =    	wayland/wlroots
+MODWLROOTS_LIB_DEPENDS =	wayland/wlroots/${MODWLROOTS_VERSION}
 
 MODWLROOTS_LIBDEP?=		Yes
 
 .if ${MODWLROOTS_LIBDEP:L} == "yes"
 LIB_DEPENDS +=			${MODWLROOTS_LIB_DEPENDS}
-WANTLIB +=              	${MODWLROOTS_WANTLIB}
+WANTLIB +=			${MODWLROOTS_WANTLIB}
 .endif
 
 SUBST_VARS += 			MODWLROOTS_VERSION
Index: wlroots/0.19/Makefile
===================================================================
RCS file: wlroots/0.19/Makefile
diff -N wlroots/0.19/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/Makefile	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,9 @@
+MODWLROOTS_VERSION =	0.19
+
+V =		${MODWLROOTS_VERSION}.3
+
+SHARED_LIBS +=	wlroots-0.19 0.0 # 0.0
+
+PKGSPEC =	wlroots->=0.19v0,<0.20v0
+
+.include <bsd.port.mk>
Index: wlroots/0.19/distinfo
===================================================================
RCS file: wlroots/0.19/distinfo
diff -N wlroots/0.19/distinfo
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/distinfo	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,2 @@
+SHA256 (wlroots-0.19.3.tar.gz) = XQJpMXXlr9mvXxDj5JdtbpJJ3DmpDrF9I/pfVLElzMU=
+SIZE (wlroots-0.19.3.tar.gz) = 671529
Index: wlroots/0.19/patches/patch-backend_drm_backend_c
===================================================================
RCS file: wlroots/0.19/patches/patch-backend_drm_backend_c
diff -N wlroots/0.19/patches/patch-backend_drm_backend_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-backend_drm_backend_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,55 @@
+Index: backend/drm/backend.c
+--- backend/drm/backend.c.orig
++++ backend/drm/backend.c
+@@ -3,11 +3,13 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+ #include <wayland-server-core.h>
+ #include <wlr/backend/interface.h>
+ #include <wlr/backend/session.h>
+ #include <wlr/interfaces/wlr_output.h>
+ #include <wlr/util/log.h>
++#include <sys/event.h>
+ #include <xf86drm.h>
+ #include "backend/drm/drm.h"
+ #include "backend/drm/fb.h"
+@@ -207,6 +209,8 @@ static bool init_mgpu_renderer(struct wlr_drm_backend 
+ 
+ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
+ 		struct wlr_device *dev, struct wlr_backend *parent) {
++	int kq;
++	struct kevent kev;
+ 	assert(session && dev);
+ 	assert(!parent || wlr_backend_is_drm(parent));
+ 
+@@ -283,6 +287,28 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_
+ 	drm->session_destroy.notify = handle_session_destroy;
+ 	wl_signal_add(&session->events.destroy, &drm->session_destroy);
+ 
++	if ((kq = kqueue()) <= 0)
++		goto continue_without_kqueue;
++
++	EV_SET(&kev, dev->fd, EVFILT_DEVICE, EV_ADD | EV_ENABLE | EV_CLEAR,
++	       NOTE_CHANGE, 0, NULL);
++
++	if (kevent(kq, &kev, 1, NULL, 0, NULL) < 0) {
++		close(kq);
++		goto continue_without_kqueue;
++	}
++
++	drm->drm_kevent = wl_event_loop_add_fd(session->event_loop, kq,
++		WL_EVENT_READABLE, handle_drm_kevent, drm);
++	if (!drm->drm_kevent) {
++		wlr_log(WLR_ERROR, "Failed to create DRM kevent source");
++		close(kq);
++		goto continue_without_kqueue;
++	}
++	drm->kq = kq;
++	wlr_log(WLR_INFO, "DRM kevent source added");
++
++continue_without_kqueue:
+ 	return &drm->backend;
+ 
+ error_mgpu_renderer:
Index: wlroots/0.19/patches/patch-backend_drm_drm_c
===================================================================
RCS file: wlroots/0.19/patches/patch-backend_drm_drm_c
diff -N wlroots/0.19/patches/patch-backend_drm_drm_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-backend_drm_drm_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,40 @@
+Index: backend/drm/drm.c
+--- backend/drm/drm.c.orig
++++ backend/drm/drm.c
+@@ -8,6 +8,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <strings.h>
++#include <sys/event.h>
+ #include <time.h>
+ #include <wayland-server-core.h>
+ #include <wayland-util.h>
+@@ -375,6 +376,9 @@ void finish_drm_resources(struct wlr_drm_backend *drm)
+ 		return;
+ 	}
+ 
++	if (drm->kq)
++		close(drm->kq);
++
+ 	if (drm->iface->finish != NULL) {
+ 		drm->iface->finish(drm);
+ 	}
+@@ -2050,6 +2054,18 @@ int handle_drm_event(int fd, uint32_t mask, void *data
+ 		wlr_log(WLR_ERROR, "drmHandleEvent failed");
+ 		wlr_backend_destroy(&drm->backend);
+ 	}
++	return 1;
++}
++
++int handle_drm_kevent(int fd, uint32_t mask, void *data) {
++	struct kevent kev;
++	struct wlr_drm_backend *drm = data;
++
++	if ((kevent(fd, NULL, 0, &kev, 1, NULL)) && kev.fflags & NOTE_CHANGE) {
++		wlr_log(WLR_INFO, "DRM hotplug detected");
++		scan_drm_connectors(drm, NULL);
++	}
++
+ 	return 1;
+ }
+ 
Index: wlroots/0.19/patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: wlroots/0.19/patches/patch-include_backend_drm_drm_h
diff -N wlroots/0.19/patches/patch-include_backend_drm_drm_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-include_backend_drm_drm_h	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,27 @@
+Index: include/backend/drm/drm.h
+--- include/backend/drm/drm.h.orig
++++ include/backend/drm/drm.h
+@@ -92,6 +92,7 @@ struct wlr_drm_backend {
+ 	bool addfb2_modifiers;
+ 
+ 	int fd;
++	int kq;
+ 	char *name;
+ 	struct wlr_device *dev;
+ 	struct liftoff_device *liftoff;
+@@ -103,6 +104,7 @@ struct wlr_drm_backend {
+ 	struct wlr_drm_plane *planes;
+ 
+ 	struct wl_event_source *drm_event;
++	struct wl_event_source *drm_kevent;
+ 
+ 	struct wl_listener session_destroy;
+ 	struct wl_listener session_active;
+@@ -226,6 +228,7 @@ void scan_drm_leases(struct wlr_drm_backend *drm);
+ bool commit_drm_device(struct wlr_drm_backend *drm,
+ 	const struct wlr_backend_output_state *states, size_t states_len, bool test_only);
+ int handle_drm_event(int fd, uint32_t mask, void *data);
++int handle_drm_kevent(int fd, uint32_t mask, void *data);
+ void destroy_drm_connector(struct wlr_drm_connector *conn);
+ bool drm_connector_is_cursor_visible(struct wlr_drm_connector *conn);
+ size_t drm_crtc_get_gamma_lut_size(struct wlr_drm_backend *drm,
Index: wlroots/0.19/patches/patch-meson_build
===================================================================
RCS file: wlroots/0.19/patches/patch-meson_build
diff -N wlroots/0.19/patches/patch-meson_build
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-meson_build	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,21 @@
+No librt on OpenBSD
+
+Index: meson.build
+--- meson.build.orig
++++ meson.build
+@@ -121,7 +121,6 @@ pixman = dependency('pixman-1',
+ 	default_options: ['werror=false'],
+ )
+ math = cc.find_library('m')
+-rt = cc.find_library('rt')
+ 
+ wlr_files = []
+ wlr_deps = [
+@@ -130,7 +129,6 @@ wlr_deps = [
+ 	xkbcommon,
+ 	pixman,
+ 	math,
+-	rt,
+ ]
+ 
+ subdir('protocol')
Index: wlroots/0.19/patches/patch-render_drm_syncobj_c
===================================================================
RCS file: wlroots/0.19/patches/patch-render_drm_syncobj_c
diff -N wlroots/0.19/patches/patch-render_drm_syncobj_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-render_drm_syncobj_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,14 @@
+ETIMEDOUT on OpenBSD, not ETIME
+
+Index: render/drm_syncobj.c
+--- render/drm_syncobj.c.orig
++++ render/drm_syncobj.c
+@@ -161,7 +161,7 @@ out:
+ bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
+ 		uint64_t point, uint32_t flags, bool *result) {
+ 	int etime;
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__)
+ 	etime = ETIMEDOUT;
+ #else
+ 	etime = ETIME;
Index: wlroots/0.19/patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: wlroots/0.19/patches/patch-render_vulkan_vulkan_c
diff -N wlroots/0.19/patches/patch-render_vulkan_vulkan_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-render_vulkan_vulkan_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,11 @@
+otherwise makedev() function isnt found
+
+Index: render/vulkan/vulkan.c
+--- render/vulkan/vulkan.c.orig
++++ render/vulkan/vulkan.c
+@@ -1,4 +1,4 @@
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__)
+ #undef _POSIX_C_SOURCE
+ #endif
+ #include <assert.h>
Index: wlroots/0.19/patches/patch-xcursor_xcursor_c
===================================================================
RCS file: wlroots/0.19/patches/patch-xcursor_xcursor_c
diff -N wlroots/0.19/patches/patch-xcursor_xcursor_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/patches/patch-xcursor_xcursor_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,12 @@
+Index: xcursor/xcursor.c
+--- xcursor/xcursor.c.orig
++++ xcursor/xcursor.c
+@@ -490,7 +490,7 @@ xcursor_xc_file_load_images(FILE *file, int size)
+ #endif
+ 
+ #ifndef XCURSORPATH
+-#define XCURSORPATH "~/.icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
++#define XCURSORPATH "~/.icons:/usr/X11R6/include/pixmaps:/usr/local/share/icons:/usr/local/lib/X11/icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
+ #endif
+ 
+ #define XDG_DATA_HOME_FALLBACK "~/.local/share"
Index: wlroots/0.19/pkg/DESCR
===================================================================
RCS file: wlroots/0.19/pkg/DESCR
diff -N wlroots/0.19/pkg/DESCR
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/pkg/DESCR	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,38 @@
+Pluggable, composable, unopinionated modules for building a Wayland
+compositor; or about 60,000 lines of code you were going to write
+anyway.
+
+ * wlroots provides backends that abstract the underlying display and
+   input hardware, including KMS/DRM, libinput, Wayland, X11, and
+   headless backends, plus any custom backends you choose to write,
+   which can all be created or destroyed at runtime and used in
+   concert with each other.
+
+ * wlroots provides unopinionated, mostly standalone implementations
+   of many Wayland interfaces, both from wayland.xml and various
+   protocol extensions. We also promote the standardization of
+   portable extensions across many compositors.
+
+ * wlroots provides several powerful, standalone, and optional tools
+   that implement components common to many compositors, such as the
+   arrangement of outputs in physical space.
+
+ * wlroots provides an Xwayland abstraction that allows you to have
+   excellent Xwayland support without worrying about writing your own
+   X11 window manager on top of writing your compositor.
+
+ * wlroots provides a renderer abstraction that simple compositors can
+   use to avoid writing GL code directly, but which steps out of the
+   way when your needs demand custom rendering code.
+
+wlroots implements a huge variety of Wayland compositor features and
+implements them right, so you can focus on the features that make your
+compositor unique. By using wlroots, you get high performance,
+excellent hardware compatibility, broad support for many wayland
+interfaces, and comfortable development tools - or any subset of these
+features you like, because all of them work independently of one
+another and freely compose with anything you want to implement
+yourself.
+
+A variety of wrapper libraries are available for using it with your
+favorite programming language.
Index: wlroots/0.19/pkg/PLIST
===================================================================
RCS file: wlroots/0.19/pkg/PLIST
diff -N wlroots/0.19/pkg/PLIST
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.19/pkg/PLIST	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,134 @@
+@option no-default-conflict
+@option is-branch
+@conflict wlroots->=0.19,<0.20
+@conflict wlroots->=0.19v0,<0.20v0
+@pkgpath wayland/wlroots
+include/wlroots-${MODWLROOTS_VERSION}/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/drm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/headless.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/interface.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/libinput.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/multi.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/session.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/wayland.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/x11.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/config.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_buffer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_ext_image_capture_source_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_keyboard.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_output.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_pointer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_switch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_pad.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_tool.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_touch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/allocator.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/color.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/dmabuf.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_format_set.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_syncobj.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/egl.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/gles2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/interface.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pass.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pixman.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/swapchain.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/vulkan.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_renderer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_texture.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_alpha_modifier_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_buffer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_color_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_compositor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_content_type_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor_shape_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_damage_ring.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_device.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm_lease_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_export_dmabuf_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_data_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_foreign_toplevel_list_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_capture_source_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_copy_capture_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_foreign_toplevel_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_fractional_scale_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_gamma_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_inhibit_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_notify_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_device.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_method_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_group.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_layer_shell_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_dmabuf_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_drm_syncobj_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layout.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_power_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_swapchain_manager.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_constraints_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_gestures_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_presentation_time.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_relative_pointer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_scene.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_screencopy_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_seat.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_security_context_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_server_decoration.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_session_lock_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_shm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_single_pixel_buffer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_subcompositor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_switch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_pad.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_tool.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tearing_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_text_input_v3.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_touch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_transient_seat_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_viewporter.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_keyboard_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_pointer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xcursor_manager.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_activation_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_decoration_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_dialog_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_registry.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_output_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_shell.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_system_bell_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_toplevel_icon_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/addon.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/box.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/edges.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/log.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/region.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/transform.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/version.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xcursor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/server.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/shell.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/xwayland.h
+@lib lib/libwlroots-${MODWLROOTS_VERSION}.so.${LIBwlroots-${MODWLROOTS_VERSION}_VERSION}
+lib/pkgconfig/wlroots-${MODWLROOTS_VERSION}.pc
Index: wlroots/0.20/Makefile
===================================================================
RCS file: wlroots/0.20/Makefile
diff -N wlroots/0.20/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/Makefile	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,9 @@
+MODWLROOTS_VERSION =	0.20
+
+V =		${MODWLROOTS_VERSION}.1
+
+SHARED_LIBS +=	wlroots-0.20 0.0 # 0.0
+
+PKGSPEC =	wlroots->=0.20v0,<0.21v0
+
+.include <bsd.port.mk>
Index: wlroots/0.20/distinfo
===================================================================
RCS file: wlroots/0.20/distinfo
diff -N wlroots/0.20/distinfo
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/distinfo	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,2 @@
+SHA256 (wlroots-0.20.1.tar.gz) = qFQRh7rsqiYgk4r6zeiCZst++lkoywnVedjvsHvEkBs=
+SIZE (wlroots-0.20.1.tar.gz) = 700814
Index: wlroots/0.20/patches/patch-backend_drm_backend_c
===================================================================
RCS file: wlroots/0.20/patches/patch-backend_drm_backend_c
diff -N wlroots/0.20/patches/patch-backend_drm_backend_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-backend_drm_backend_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,55 @@
+Index: backend/drm/backend.c
+--- backend/drm/backend.c.orig
++++ backend/drm/backend.c
+@@ -3,11 +3,13 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+ #include <wayland-server-core.h>
+ #include <wlr/backend/interface.h>
+ #include <wlr/backend/session.h>
+ #include <wlr/interfaces/wlr_output.h>
+ #include <wlr/util/log.h>
++#include <sys/event.h>
+ #include <xf86drm.h>
+ #include "backend/drm/drm.h"
+ #include "backend/drm/fb.h"
+@@ -207,6 +209,8 @@ static bool init_mgpu_renderer(struct wlr_drm_backend 
+ 
+ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
+ 		struct wlr_device *dev, struct wlr_backend *parent) {
++	int kq;
++	struct kevent kev;
+ 	assert(session && dev);
+ 	assert(!parent || wlr_backend_is_drm(parent));
+ 
+@@ -283,6 +287,28 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_
+ 	drm->session_destroy.notify = handle_session_destroy;
+ 	wl_signal_add(&session->events.destroy, &drm->session_destroy);
+ 
++	if ((kq = kqueue()) <= 0)
++		goto continue_without_kqueue;
++
++	EV_SET(&kev, dev->fd, EVFILT_DEVICE, EV_ADD | EV_ENABLE | EV_CLEAR,
++	       NOTE_CHANGE, 0, NULL);
++
++	if (kevent(kq, &kev, 1, NULL, 0, NULL) < 0) {
++		close(kq);
++		goto continue_without_kqueue;
++	}
++
++	drm->drm_kevent = wl_event_loop_add_fd(session->event_loop, kq,
++		WL_EVENT_READABLE, handle_drm_kevent, drm);
++	if (!drm->drm_kevent) {
++		wlr_log(WLR_ERROR, "Failed to create DRM kevent source");
++		close(kq);
++		goto continue_without_kqueue;
++	}
++	drm->kq = kq;
++	wlr_log(WLR_INFO, "DRM kevent source added");
++
++continue_without_kqueue:
+ 	return &drm->backend;
+ 
+ error_mgpu_renderer:
Index: wlroots/0.20/patches/patch-backend_drm_drm_c
===================================================================
RCS file: wlroots/0.20/patches/patch-backend_drm_drm_c
diff -N wlroots/0.20/patches/patch-backend_drm_drm_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-backend_drm_drm_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,40 @@
+Index: backend/drm/drm.c
+--- backend/drm/drm.c.orig
++++ backend/drm/drm.c
+@@ -8,6 +8,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <strings.h>
++#include <sys/event.h>
+ #include <time.h>
+ #include <wayland-server-core.h>
+ #include <wayland-util.h>
+@@ -387,6 +388,9 @@ void finish_drm_resources(struct wlr_drm_backend *drm)
+ 		return;
+ 	}
+ 
++	if (drm->kq)
++		close(drm->kq);
++
+ 	if (drm->iface->finish != NULL) {
+ 		drm->iface->finish(drm);
+ 	}
+@@ -2098,6 +2102,18 @@ int handle_drm_event(int fd, uint32_t mask, void *data
+ 		wlr_log(WLR_ERROR, "drmHandleEvent failed");
+ 		wlr_backend_destroy(&drm->backend);
+ 	}
++	return 1;
++}
++
++int handle_drm_kevent(int fd, uint32_t mask, void *data) {
++	struct kevent kev;
++	struct wlr_drm_backend *drm = data;
++
++	if ((kevent(fd, NULL, 0, &kev, 1, NULL)) && kev.fflags & NOTE_CHANGE) {
++		wlr_log(WLR_INFO, "DRM hotplug detected");
++		scan_drm_connectors(drm, NULL);
++	}
++
+ 	return 1;
+ }
+ 
Index: wlroots/0.20/patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: wlroots/0.20/patches/patch-include_backend_drm_drm_h
diff -N wlroots/0.20/patches/patch-include_backend_drm_drm_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-include_backend_drm_drm_h	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,27 @@
+Index: include/backend/drm/drm.h
+--- include/backend/drm/drm.h.orig
++++ include/backend/drm/drm.h
+@@ -96,6 +96,7 @@ struct wlr_drm_backend {
+ 	bool addfb2_modifiers;
+ 
+ 	int fd;
++	int kq;
+ 	char *name;
+ 	struct wlr_device *dev;
+ 	struct liftoff_device *liftoff;
+@@ -107,6 +108,7 @@ struct wlr_drm_backend {
+ 	struct wlr_drm_plane *planes;
+ 
+ 	struct wl_event_source *drm_event;
++	struct wl_event_source *drm_kevent;
+ 
+ 	struct wl_listener session_destroy;
+ 	struct wl_listener session_active;
+@@ -236,6 +238,7 @@ void scan_drm_leases(struct wlr_drm_backend *drm);
+ bool commit_drm_device(struct wlr_drm_backend *drm,
+ 	const struct wlr_backend_output_state *states, size_t states_len, bool test_only);
+ int handle_drm_event(int fd, uint32_t mask, void *data);
++int handle_drm_kevent(int fd, uint32_t mask, void *data);
+ void destroy_drm_connector(struct wlr_drm_connector *conn);
+ bool drm_connector_is_cursor_visible(struct wlr_drm_connector *conn);
+ size_t drm_crtc_get_gamma_lut_size(struct wlr_drm_backend *drm,
Index: wlroots/0.20/patches/patch-meson_build
===================================================================
RCS file: wlroots/0.20/patches/patch-meson_build
diff -N wlroots/0.20/patches/patch-meson_build
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-meson_build	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,21 @@
+No librt on OpenBSD
+
+Index: meson.build
+--- meson.build.orig
++++ meson.build
+@@ -121,7 +121,6 @@ pixman = dependency('pixman-1',
+ 	default_options: ['werror=false'],
+ )
+ math = cc.find_library('m')
+-rt = cc.find_library('rt')
+ 
+ wlr_files = []
+ wlr_deps = [
+@@ -130,7 +129,6 @@ wlr_deps = [
+ 	xkbcommon,
+ 	pixman,
+ 	math,
+-	rt,
+ ]
+ 
+ subdir('protocol')
Index: wlroots/0.20/patches/patch-render_drm_syncobj_c
===================================================================
RCS file: wlroots/0.20/patches/patch-render_drm_syncobj_c
diff -N wlroots/0.20/patches/patch-render_drm_syncobj_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-render_drm_syncobj_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,14 @@
+ETIMEDOUT on OpenBSD, not ETIME
+
+Index: render/drm_syncobj.c
+--- render/drm_syncobj.c.orig
++++ render/drm_syncobj.c
+@@ -161,7 +161,7 @@ out:
+ bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
+ 		uint64_t point, uint32_t flags, bool *result) {
+ 	int etime;
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__)
+ 	etime = ETIMEDOUT;
+ #else
+ 	etime = ETIME;
Index: wlroots/0.20/patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: wlroots/0.20/patches/patch-render_vulkan_vulkan_c
diff -N wlroots/0.20/patches/patch-render_vulkan_vulkan_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-render_vulkan_vulkan_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,11 @@
+otherwise makedev() function isnt found
+
+Index: render/vulkan/vulkan.c
+--- render/vulkan/vulkan.c.orig
++++ render/vulkan/vulkan.c
+@@ -1,4 +1,4 @@
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__)
+ #undef _POSIX_C_SOURCE
+ #endif
+ #include <assert.h>
Index: wlroots/0.20/patches/patch-xcursor_xcursor_c
===================================================================
RCS file: wlroots/0.20/patches/patch-xcursor_xcursor_c
diff -N wlroots/0.20/patches/patch-xcursor_xcursor_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/patches/patch-xcursor_xcursor_c	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,12 @@
+Index: xcursor/xcursor.c
+--- xcursor/xcursor.c.orig
++++ xcursor/xcursor.c
+@@ -490,7 +490,7 @@ xcursor_xc_file_load_images(FILE *file, int size)
+ #endif
+ 
+ #ifndef XCURSORPATH
+-#define XCURSORPATH "~/.icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
++#define XCURSORPATH "~/.icons:/usr/X11R6/include/pixmaps:/usr/local/share/icons:/usr/local/lib/X11/icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
+ #endif
+ 
+ #define XDG_DATA_HOME_FALLBACK "~/.local/share"
Index: wlroots/0.20/pkg/DESCR
===================================================================
RCS file: wlroots/0.20/pkg/DESCR
diff -N wlroots/0.20/pkg/DESCR
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/pkg/DESCR	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,38 @@
+Pluggable, composable, unopinionated modules for building a Wayland
+compositor; or about 60,000 lines of code you were going to write
+anyway.
+
+ * wlroots provides backends that abstract the underlying display and
+   input hardware, including KMS/DRM, libinput, Wayland, X11, and
+   headless backends, plus any custom backends you choose to write,
+   which can all be created or destroyed at runtime and used in
+   concert with each other.
+
+ * wlroots provides unopinionated, mostly standalone implementations
+   of many Wayland interfaces, both from wayland.xml and various
+   protocol extensions. We also promote the standardization of
+   portable extensions across many compositors.
+
+ * wlroots provides several powerful, standalone, and optional tools
+   that implement components common to many compositors, such as the
+   arrangement of outputs in physical space.
+
+ * wlroots provides an Xwayland abstraction that allows you to have
+   excellent Xwayland support without worrying about writing your own
+   X11 window manager on top of writing your compositor.
+
+ * wlroots provides a renderer abstraction that simple compositors can
+   use to avoid writing GL code directly, but which steps out of the
+   way when your needs demand custom rendering code.
+
+wlroots implements a huge variety of Wayland compositor features and
+implements them right, so you can focus on the features that make your
+compositor unique. By using wlroots, you get high performance,
+excellent hardware compatibility, broad support for many wayland
+interfaces, and comfortable development tools - or any subset of these
+features you like, because all of them work independently of one
+another and freely compose with anything you want to implement
+yourself.
+
+A variety of wrapper libraries are available for using it with your
+favorite programming language.
Index: wlroots/0.20/pkg/PLIST
===================================================================
RCS file: wlroots/0.20/pkg/PLIST
diff -N wlroots/0.20/pkg/PLIST
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wlroots/0.20/pkg/PLIST	4 Jun 2026 11:32:50 -0000
@@ -0,0 +1,138 @@
+@option no-default-conflict
+@option is-branch
+@conflict wlroots->=0.20,<0.21
+@conflict wlroots->=0.20v0,<0.21v0
+@pkgpath wayland/wlroots
+include/wlroots-${MODWLROOTS_VERSION}/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/drm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/headless.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/interface.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/libinput.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/multi.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/session.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/wayland.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/x11.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/config.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_buffer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_ext_image_capture_source_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_keyboard.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_output.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_pointer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_switch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_pad.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_tool.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_touch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/allocator.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/color.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/dmabuf.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_format_set.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_syncobj.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/egl.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/gles2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/interface.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pass.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pixman.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/swapchain.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/vulkan.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_renderer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_texture.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_alpha_modifier_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_buffer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_color_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_color_representation_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_compositor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_content_type_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor_shape_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_damage_ring.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_device.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm_lease_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_export_dmabuf_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_data_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_foreign_toplevel_list_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_capture_source_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_copy_capture_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_workspace_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_fixes.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_foreign_toplevel_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_fractional_scale_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_gamma_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_inhibit_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_notify_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_device.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_method_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_group.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_layer_shell_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_dmabuf_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_drm_syncobj_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layout.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_power_management_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_swapchain_manager.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_constraints_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_gestures_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_presentation_time.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_relative_pointer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_scene.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_screencopy_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_seat.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_security_context_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_server_decoration.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_session_lock_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_shm.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_single_pixel_buffer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_subcompositor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_switch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_pad.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_tool.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tearing_control_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_text_input_v3.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_touch.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_transient_seat_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_viewporter.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_keyboard_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_pointer_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xcursor_manager.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_activation_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_decoration_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_dialog_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_registry.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v2.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_output_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_shell.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_system_bell_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_toplevel_icon_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_toplevel_tag_v1.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/addon.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/box.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/edges.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/log.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/region.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/util/transform.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/version.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xcursor.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/server.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/shell.h
+include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/xwayland.h
+@lib lib/libwlroots-${MODWLROOTS_VERSION}.so.${LIBwlroots-${MODWLROOTS_VERSION}_VERSION}
+lib/pkgconfig/wlroots-${MODWLROOTS_VERSION}.pc
Index: wlroots/patches/patch-backend_drm_backend_c
===================================================================
RCS file: wlroots/patches/patch-backend_drm_backend_c
diff -N wlroots/patches/patch-backend_drm_backend_c
--- wlroots/patches/patch-backend_drm_backend_c	28 Aug 2025 21:01:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,55 +0,0 @@
-Index: backend/drm/backend.c
---- backend/drm/backend.c.orig
-+++ backend/drm/backend.c
-@@ -3,11 +3,13 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <unistd.h>
- #include <wayland-server-core.h>
- #include <wlr/backend/interface.h>
- #include <wlr/backend/session.h>
- #include <wlr/interfaces/wlr_output.h>
- #include <wlr/util/log.h>
-+#include <sys/event.h>
- #include <xf86drm.h>
- #include "backend/drm/drm.h"
- #include "backend/drm/fb.h"
-@@ -207,6 +209,8 @@ static bool init_mgpu_renderer(struct wlr_drm_backend 
- 
- struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
- 		struct wlr_device *dev, struct wlr_backend *parent) {
-+	int kq;
-+	struct kevent kev;
- 	assert(session && dev);
- 	assert(!parent || wlr_backend_is_drm(parent));
- 
-@@ -283,6 +287,28 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_
- 	drm->session_destroy.notify = handle_session_destroy;
- 	wl_signal_add(&session->events.destroy, &drm->session_destroy);
- 
-+	if ((kq = kqueue()) <= 0)
-+		goto continue_without_kqueue;
-+
-+	EV_SET(&kev, dev->fd, EVFILT_DEVICE, EV_ADD | EV_ENABLE | EV_CLEAR,
-+	       NOTE_CHANGE, 0, NULL);
-+
-+	if (kevent(kq, &kev, 1, NULL, 0, NULL) < 0) {
-+		close(kq);
-+		goto continue_without_kqueue;
-+	}
-+
-+	drm->drm_kevent = wl_event_loop_add_fd(session->event_loop, kq,
-+		WL_EVENT_READABLE, handle_drm_kevent, drm);
-+	if (!drm->drm_kevent) {
-+		wlr_log(WLR_ERROR, "Failed to create DRM kevent source");
-+		close(kq);
-+		goto continue_without_kqueue;
-+	}
-+	drm->kq = kq;
-+	wlr_log(WLR_INFO, "DRM kevent source added");
-+
-+continue_without_kqueue:
- 	return &drm->backend;
- 
- error_mgpu_renderer:
Index: wlroots/patches/patch-backend_drm_drm_c
===================================================================
RCS file: wlroots/patches/patch-backend_drm_drm_c
diff -N wlroots/patches/patch-backend_drm_drm_c
--- wlroots/patches/patch-backend_drm_drm_c	28 Aug 2025 21:01:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-Index: backend/drm/drm.c
---- backend/drm/drm.c.orig
-+++ backend/drm/drm.c
-@@ -8,6 +8,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <strings.h>
-+#include <sys/event.h>
- #include <time.h>
- #include <wayland-server-core.h>
- #include <wayland-util.h>
-@@ -375,6 +376,9 @@ void finish_drm_resources(struct wlr_drm_backend *drm)
- 		return;
- 	}
- 
-+	if (drm->kq)
-+		close(drm->kq);
-+
- 	if (drm->iface->finish != NULL) {
- 		drm->iface->finish(drm);
- 	}
-@@ -2050,6 +2054,18 @@ int handle_drm_event(int fd, uint32_t mask, void *data
- 		wlr_log(WLR_ERROR, "drmHandleEvent failed");
- 		wlr_backend_destroy(&drm->backend);
- 	}
-+	return 1;
-+}
-+
-+int handle_drm_kevent(int fd, uint32_t mask, void *data) {
-+	struct kevent kev;
-+	struct wlr_drm_backend *drm = data;
-+
-+	if ((kevent(fd, NULL, 0, &kev, 1, NULL)) && kev.fflags & NOTE_CHANGE) {
-+		wlr_log(WLR_INFO, "DRM hotplug detected");
-+		scan_drm_connectors(drm, NULL);
-+	}
-+
- 	return 1;
- }
- 
Index: wlroots/patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: wlroots/patches/patch-include_backend_drm_drm_h
diff -N wlroots/patches/patch-include_backend_drm_drm_h
--- wlroots/patches/patch-include_backend_drm_drm_h	28 Aug 2025 21:01:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-Index: include/backend/drm/drm.h
---- include/backend/drm/drm.h.orig
-+++ include/backend/drm/drm.h
-@@ -92,6 +92,7 @@ struct wlr_drm_backend {
- 	bool addfb2_modifiers;
- 
- 	int fd;
-+	int kq;
- 	char *name;
- 	struct wlr_device *dev;
- 	struct liftoff_device *liftoff;
-@@ -103,6 +104,7 @@ struct wlr_drm_backend {
- 	struct wlr_drm_plane *planes;
- 
- 	struct wl_event_source *drm_event;
-+	struct wl_event_source *drm_kevent;
- 
- 	struct wl_listener session_destroy;
- 	struct wl_listener session_active;
-@@ -226,6 +228,7 @@ void scan_drm_leases(struct wlr_drm_backend *drm);
- bool commit_drm_device(struct wlr_drm_backend *drm,
- 	const struct wlr_backend_output_state *states, size_t states_len, bool test_only);
- int handle_drm_event(int fd, uint32_t mask, void *data);
-+int handle_drm_kevent(int fd, uint32_t mask, void *data);
- void destroy_drm_connector(struct wlr_drm_connector *conn);
- bool drm_connector_is_cursor_visible(struct wlr_drm_connector *conn);
- size_t drm_crtc_get_gamma_lut_size(struct wlr_drm_backend *drm,
Index: wlroots/patches/patch-meson_build
===================================================================
RCS file: wlroots/patches/patch-meson_build
diff -N wlroots/patches/patch-meson_build
--- wlroots/patches/patch-meson_build	28 Aug 2025 21:01:27 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-No librt on OpenBSD
-
-Index: meson.build
---- meson.build.orig
-+++ meson.build
-@@ -121,7 +121,6 @@ pixman = dependency('pixman-1',
- 	default_options: ['werror=false'],
- )
- math = cc.find_library('m')
--rt = cc.find_library('rt')
- 
- wlr_files = []
- wlr_deps = [
-@@ -130,7 +129,6 @@ wlr_deps = [
- 	xkbcommon,
- 	pixman,
- 	math,
--	rt,
- ]
- 
- subdir('protocol')
Index: wlroots/patches/patch-render_drm_syncobj_c
===================================================================
RCS file: wlroots/patches/patch-render_drm_syncobj_c
diff -N wlroots/patches/patch-render_drm_syncobj_c
--- wlroots/patches/patch-render_drm_syncobj_c	28 Aug 2025 21:01:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-ETIMEDOUT on OpenBSD, not ETIME
-
-Index: render/drm_syncobj.c
---- render/drm_syncobj.c.orig
-+++ render/drm_syncobj.c
-@@ -161,7 +161,7 @@ out:
- bool wlr_drm_syncobj_timeline_check(struct wlr_drm_syncobj_timeline *timeline,
- 		uint64_t point, uint32_t flags, bool *result) {
- 	int etime;
--#if defined(__FreeBSD__)
-+#if defined(__FreeBSD__) || defined(__OpenBSD__)
- 	etime = ETIMEDOUT;
- #else
- 	etime = ETIME;
Index: wlroots/patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: wlroots/patches/patch-render_vulkan_vulkan_c
diff -N wlroots/patches/patch-render_vulkan_vulkan_c
--- wlroots/patches/patch-render_vulkan_vulkan_c	7 Nov 2024 09:44:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
-otherwise makedev() function isnt found
-
-Index: render/vulkan/vulkan.c
---- render/vulkan/vulkan.c.orig
-+++ render/vulkan/vulkan.c
-@@ -1,4 +1,4 @@
--#if defined(__FreeBSD__)
-+#if defined(__FreeBSD__) || defined(__OpenBSD__)
- #undef _POSIX_C_SOURCE
- #endif
- #include <assert.h>
Index: wlroots/patches/patch-xcursor_xcursor_c
===================================================================
RCS file: wlroots/patches/patch-xcursor_xcursor_c
diff -N wlroots/patches/patch-xcursor_xcursor_c
--- wlroots/patches/patch-xcursor_xcursor_c	7 Nov 2024 09:44:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: xcursor/xcursor.c
---- xcursor/xcursor.c.orig
-+++ xcursor/xcursor.c
-@@ -490,7 +490,7 @@ xcursor_xc_file_load_images(FILE *file, int size)
- #endif
- 
- #ifndef XCURSORPATH
--#define XCURSORPATH "~/.icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
-+#define XCURSORPATH "~/.icons:/usr/X11R6/include/pixmaps:/usr/local/share/icons:/usr/local/lib/X11/icons:/usr/share/icons:/usr/share/pixmaps:~/.cursors:/usr/share/cursors/xorg-x11:"ICONDIR
- #endif
- 
- #define XDG_DATA_HOME_FALLBACK "~/.local/share"
Index: wlroots/pkg/DESCR
===================================================================
RCS file: wlroots/pkg/DESCR
diff -N wlroots/pkg/DESCR
--- wlroots/pkg/DESCR	5 Jan 2026 07:31:07 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-Pluggable, composable, unopinionated modules for building a Wayland
-compositor; or about 60,000 lines of code you were going to write
-anyway.
-
- * wlroots provides backends that abstract the underlying display and
-   input hardware, including KMS/DRM, libinput, Wayland, X11, and
-   headless backends, plus any custom backends you choose to write,
-   which can all be created or destroyed at runtime and used in
-   concert with each other.
-
- * wlroots provides unopinionated, mostly standalone implementations
-   of many Wayland interfaces, both from wayland.xml and various
-   protocol extensions. We also promote the standardization of
-   portable extensions across many compositors.
-
- * wlroots provides several powerful, standalone, and optional tools
-   that implement components common to many compositors, such as the
-   arrangement of outputs in physical space.
-
- * wlroots provides an Xwayland abstraction that allows you to have
-   excellent Xwayland support without worrying about writing your own
-   X11 window manager on top of writing your compositor.
-
- * wlroots provides a renderer abstraction that simple compositors can
-   use to avoid writing GL code directly, but which steps out of the
-   way when your needs demand custom rendering code.
-
-wlroots implements a huge variety of Wayland compositor features and
-implements them right, so you can focus on the features that make your
-compositor unique. By using wlroots, you get high performance,
-excellent hardware compatibility, broad support for many wayland
-interfaces, and comfortable development tools - or any subset of these
-features you like, because all of them work independently of one
-another and freely compose with anything you want to implement
-yourself.
-
-Check out our wiki to get started with wlroots. Join our IRC channel:
-#wlroots on Libera Chat.
-
-A variety of wrapper libraries are available for using it with your
-favorite programming language.
Index: wlroots/pkg/PLIST
===================================================================
RCS file: wlroots/pkg/PLIST
diff -N wlroots/pkg/PLIST
--- wlroots/pkg/PLIST	28 Aug 2025 21:01:27 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,129 +0,0 @@
-include/wlroots-${MODWLROOTS_VERSION}/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/drm.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/headless.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/interface.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/libinput.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/multi.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/session.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/wayland.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/backend/x11.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/config.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_buffer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_ext_image_capture_source_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_keyboard.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_output.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_pointer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_switch.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_pad.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_tablet_tool.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/interfaces/wlr_touch.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/allocator.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/color.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/dmabuf.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_format_set.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/drm_syncobj.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/egl.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/gles2.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/interface.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pass.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/pixman.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/swapchain.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/vulkan.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_renderer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/render/wlr_texture.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_alpha_modifier_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_buffer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_color_management_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_compositor.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_content_type_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_cursor_shape_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_damage_ring.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_control_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_data_device.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_drm_lease_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_export_dmabuf_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_data_control_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_foreign_toplevel_list_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_capture_source_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_ext_image_copy_capture_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_foreign_toplevel_management_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_fractional_scale_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_gamma_control_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_inhibit_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_idle_notify_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_device.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_input_method_v2.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_group.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_layer_shell_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_dmabuf_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_linux_drm_syncobj_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_layout.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_management_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_power_management_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_output_swapchain_manager.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_constraints_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_pointer_gestures_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_presentation_time.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_primary_selection_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_relative_pointer_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_scene.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_screencopy_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_seat.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_security_context_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_server_decoration.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_session_lock_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_shm.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_single_pixel_buffer_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_subcompositor.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_switch.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_pad.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_tool.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tablet_v2.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_tearing_control_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_text_input_v3.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_touch.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_transient_seat_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_viewporter.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_keyboard_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_virtual_pointer_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xcursor_manager.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_activation_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_decoration_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_dialog_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_registry.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_foreign_v2.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_output_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_shell.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_system_bell_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/types/wlr_xdg_toplevel_icon_v1.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/addon.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/box.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/edges.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/log.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/region.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/util/transform.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/version.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xcursor.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/server.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/shell.h
-include/wlroots-${MODWLROOTS_VERSION}/wlr/xwayland/xwayland.h
-@lib lib/libwlroots-${MODWLROOTS_VERSION}.so.${LIBwlroots-${MODWLROOTS_VERSION}_VERSION}
-lib/pkgconfig/wlroots-${MODWLROOTS_VERSION}.pc
