Wednesday, June 03, 2026

Adding wlroots 0.20

Hi, picking up the thread started by Robert Lillack, here is the diff I have been testing and which so far works fine here. Any thoughts? cheers, Volker

Index: Makefile
===================================================================
RCS file: Makefile
diff -N Makefile
--- Makefile	20 Feb 2026 21:35:37 -0000	1.18
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,60 +0,0 @@
-COMMENT =	modular Wayland compositor library
-
-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>
Index: Makefile.inc
===================================================================
RCS file: Makefile.inc
diff -N Makefile.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Makefile.inc	3 Jun 2026 17:21:39 -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: distinfo
===================================================================
RCS file: distinfo
diff -N distinfo
--- 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.port.mk
===================================================================
RCS file: /cvs/ports/wayland/wlroots/wlroots.port.mk,v
retrieving revision 1.2
diff -u -p -r1.2 wlroots.port.mk
--- wlroots.port.mk	28 Aug 2025 21:01:27 -0000	1.2
+++ wlroots.port.mk	3 Jun 2026 17:21:39 -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: 0.19/Makefile
===================================================================
RCS file: 0.19/Makefile
diff -N 0.19/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/Makefile	3 Jun 2026 17:21:39 -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: 0.19/distinfo
===================================================================
RCS file: 0.19/distinfo
diff -N 0.19/distinfo
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/distinfo	3 Jun 2026 17:21:39 -0000
@@ -0,0 +1,2 @@
+SHA256 (wlroots-0.19.3.tar.gz) = XQJpMXXlr9mvXxDj5JdtbpJJ3DmpDrF9I/pfVLElzMU=
+SIZE (wlroots-0.19.3.tar.gz) = 671529
Index: 0.19/patches/patch-backend_drm_backend_c
===================================================================
RCS file: 0.19/patches/patch-backend_drm_backend_c
diff -N 0.19/patches/patch-backend_drm_backend_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-backend_drm_backend_c	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-backend_drm_drm_c
===================================================================
RCS file: 0.19/patches/patch-backend_drm_drm_c
diff -N 0.19/patches/patch-backend_drm_drm_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-backend_drm_drm_c	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: 0.19/patches/patch-include_backend_drm_drm_h
diff -N 0.19/patches/patch-include_backend_drm_drm_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-include_backend_drm_drm_h	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-meson_build
===================================================================
RCS file: 0.19/patches/patch-meson_build
diff -N 0.19/patches/patch-meson_build
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-meson_build	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-render_drm_syncobj_c
===================================================================
RCS file: 0.19/patches/patch-render_drm_syncobj_c
diff -N 0.19/patches/patch-render_drm_syncobj_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-render_drm_syncobj_c	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: 0.19/patches/patch-render_vulkan_vulkan_c
diff -N 0.19/patches/patch-render_vulkan_vulkan_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-render_vulkan_vulkan_c	3 Jun 2026 17:21:39 -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: 0.19/patches/patch-xcursor_xcursor_c
===================================================================
RCS file: 0.19/patches/patch-xcursor_xcursor_c
diff -N 0.19/patches/patch-xcursor_xcursor_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/patches/patch-xcursor_xcursor_c	3 Jun 2026 17:21:39 -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: 0.19/pkg/DESCR
===================================================================
RCS file: 0.19/pkg/DESCR
diff -N 0.19/pkg/DESCR
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/pkg/DESCR	3 Jun 2026 17:21:39 -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: 0.19/pkg/PLIST
===================================================================
RCS file: 0.19/pkg/PLIST
diff -N 0.19/pkg/PLIST
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.19/pkg/PLIST	3 Jun 2026 17:21:39 -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: 0.20/Makefile
===================================================================
RCS file: 0.20/Makefile
diff -N 0.20/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/Makefile	3 Jun 2026 17:21:39 -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: 0.20/distinfo
===================================================================
RCS file: 0.20/distinfo
diff -N 0.20/distinfo
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/distinfo	3 Jun 2026 17:21:39 -0000
@@ -0,0 +1,2 @@
+SHA256 (wlroots-0.20.1.tar.gz) = qFQRh7rsqiYgk4r6zeiCZst++lkoywnVedjvsHvEkBs=
+SIZE (wlroots-0.20.1.tar.gz) = 700814
Index: 0.20/patches/patch-backend_drm_backend_c
===================================================================
RCS file: 0.20/patches/patch-backend_drm_backend_c
diff -N 0.20/patches/patch-backend_drm_backend_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-backend_drm_backend_c	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-backend_drm_drm_c
===================================================================
RCS file: 0.20/patches/patch-backend_drm_drm_c
diff -N 0.20/patches/patch-backend_drm_drm_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-backend_drm_drm_c	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: 0.20/patches/patch-include_backend_drm_drm_h
diff -N 0.20/patches/patch-include_backend_drm_drm_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-include_backend_drm_drm_h	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-meson_build
===================================================================
RCS file: 0.20/patches/patch-meson_build
diff -N 0.20/patches/patch-meson_build
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-meson_build	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-render_drm_syncobj_c
===================================================================
RCS file: 0.20/patches/patch-render_drm_syncobj_c
diff -N 0.20/patches/patch-render_drm_syncobj_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-render_drm_syncobj_c	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: 0.20/patches/patch-render_vulkan_vulkan_c
diff -N 0.20/patches/patch-render_vulkan_vulkan_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-render_vulkan_vulkan_c	3 Jun 2026 17:21:39 -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: 0.20/patches/patch-xcursor_xcursor_c
===================================================================
RCS file: 0.20/patches/patch-xcursor_xcursor_c
diff -N 0.20/patches/patch-xcursor_xcursor_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/patches/patch-xcursor_xcursor_c	3 Jun 2026 17:21:39 -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: 0.20/pkg/DESCR
===================================================================
RCS file: 0.20/pkg/DESCR
diff -N 0.20/pkg/DESCR
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/pkg/DESCR	3 Jun 2026 17:21:39 -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: 0.20/pkg/PLIST
===================================================================
RCS file: 0.20/pkg/PLIST
diff -N 0.20/pkg/PLIST
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 0.20/pkg/PLIST	3 Jun 2026 17:21:39 -0000
@@ -0,0 +1,134 @@
+@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_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: patches/patch-backend_drm_backend_c
===================================================================
RCS file: patches/patch-backend_drm_backend_c
diff -N patches/patch-backend_drm_backend_c
--- 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: patches/patch-backend_drm_drm_c
===================================================================
RCS file: patches/patch-backend_drm_drm_c
diff -N patches/patch-backend_drm_drm_c
--- 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: patches/patch-include_backend_drm_drm_h
===================================================================
RCS file: patches/patch-include_backend_drm_drm_h
diff -N patches/patch-include_backend_drm_drm_h
--- 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: patches/patch-meson_build
===================================================================
RCS file: patches/patch-meson_build
diff -N patches/patch-meson_build
--- 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: patches/patch-render_drm_syncobj_c
===================================================================
RCS file: patches/patch-render_drm_syncobj_c
diff -N patches/patch-render_drm_syncobj_c
--- 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: patches/patch-render_vulkan_vulkan_c
===================================================================
RCS file: patches/patch-render_vulkan_vulkan_c
diff -N patches/patch-render_vulkan_vulkan_c
--- 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: patches/patch-xcursor_xcursor_c
===================================================================
RCS file: patches/patch-xcursor_xcursor_c
diff -N patches/patch-xcursor_xcursor_c
--- 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: pkg/DESCR
===================================================================
RCS file: pkg/DESCR
diff -N pkg/DESCR
--- 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: pkg/PLIST
===================================================================
RCS file: pkg/PLIST
diff -N pkg/PLIST
--- 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

No comments:

Post a Comment