From: Matthieu Herrb Subject: update: wayland/wlroots 0.19 To: ports@openbsd.org Date: Sun, 17 Aug 2025 16:40:11 +0200 Hi, Now that pixman 0.46.4 is in xenocara and snapshots with it are available: The patch below updates wlroots to version 0.19. Changelog : https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.19.0 You need to run a system with the new pixman version to test this. Note that labwc, sway and wayfire will need updates too, I'm sending the patches in following mails. Index: Makefile =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/Makefile,v diff -u -p -u -r1.13 Makefile --- Makefile 14 Aug 2025 15:09:26 -0000 1.13 +++ Makefile 15 Aug 2025 16:30:30 -0000 @@ -1,8 +1,7 @@ COMMENT = modular Wayland compositor library -V = ${MODWLROOTS_VERSION}.2 +V = ${MODWLROOTS_VERSION}.0 EPOCH = 0 -REVISION = 1 DISTNAME = wlroots-${V} CATEGORIES = wayland @@ -13,7 +12,7 @@ HOMEPAGE = https://gitlab.freedesktop.or # MIT PERMIT_PACKAGE = Yes -SHARED_LIBS += wlroots-0.18 0.0 # 0.0 +SHARED_LIBS += wlroots-0.19 0.0 # 0.0 MODULES = devel/meson wayland/wlroots @@ -56,6 +55,9 @@ RUN_DEPENDS = \ graphics/ffmpeg \ graphics/png \ wayland/xwayland + +CONFIGURE_ARGS = \ + -Dallocators=gbm DEBUG_PACKAGES = ${BUILD_PACKAGES} Index: distinfo =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/distinfo,v diff -u -p -u -r1.8 distinfo --- distinfo 16 Dec 2024 18:25:23 -0000 1.8 +++ distinfo 15 Aug 2025 16:30:30 -0000 @@ -1,2 +1,2 @@ -SHA256 (wlroots-0.18.2.tar.gz) = z3dsFpFp8nmAjZ6rxlg/SEM43NRUyWaihf8XjIjBBdQ= -SIZE (wlroots-0.18.2.tar.gz) = 629379 +SHA256 (wlroots-0.19.0.tar.gz) = rvsP4mM7Cq0dZhI7L0GvqwBPtiXip3kEks3TmoBcrJE= +SIZE (wlroots-0.19.0.tar.gz) = 669326 Index: wlroots.port.mk =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/wlroots.port.mk,v diff -u -p -u -r1.1 wlroots.port.mk --- wlroots.port.mk 14 Aug 2025 15:09:26 -0000 1.1 +++ wlroots.port.mk 15 Aug 2025 16:30:30 -0000 @@ -1,4 +1,4 @@ -MODWLROOTS_VERSION = 0.18 +MODWLROOTS_VERSION = 0.19 MODWLROOTS_WANTLIB = wlroots-${MODWLROOTS_VERSION} MODWLROOTS_LIB_DEPENDS = wayland/wlroots Index: patches/patch-backend_drm_backend_c =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/patches/patch-backend_drm_backend_c,v diff -u -p -u -r1.1 patch-backend_drm_backend_c --- patches/patch-backend_drm_backend_c 11 Aug 2025 18:34:17 -0000 1.1 +++ patches/patch-backend_drm_backend_c 15 Aug 2025 16:30:30 -0000 @@ -1,7 +1,13 @@ Index: backend/drm/backend.c --- backend/drm/backend.c.orig +++ backend/drm/backend.c -@@ -10,6 +10,7 @@ +@@ -3,11 +3,13 @@ + #include + #include + #include ++#include + #include + #include #include #include #include @@ -9,7 +15,7 @@ Index: backend/drm/backend.c #include #include "backend/drm/drm.h" #include "backend/drm/fb.h" -@@ -167,6 +168,8 @@ static void handle_parent_destroy(struct wl_listener * +@@ -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) { @@ -18,7 +24,7 @@ Index: backend/drm/backend.c assert(session && dev); assert(!parent || wlr_backend_is_drm(parent)); -@@ -267,6 +270,28 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_ +@@ -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); Index: patches/patch-backend_drm_drm_c =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/patches/patch-backend_drm_drm_c,v diff -u -p -u -r1.1 patch-backend_drm_drm_c --- patches/patch-backend_drm_drm_c 11 Aug 2025 18:34:17 -0000 1.1 +++ patches/patch-backend_drm_drm_c 15 Aug 2025 16:30:30 -0000 @@ -1,7 +1,7 @@ Index: backend/drm/drm.c --- backend/drm/drm.c.orig +++ backend/drm/drm.c -@@ -9,6 +9,7 @@ +@@ -8,6 +8,7 @@ #include #include #include @@ -19,7 +19,7 @@ Index: backend/drm/drm.c if (drm->iface->finish != NULL) { drm->iface->finish(drm); } -@@ -2113,6 +2117,18 @@ int handle_drm_event(int fd, uint32_t mask, void *data +@@ -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); } Index: patches/patch-include_backend_drm_drm_h =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/patches/patch-include_backend_drm_drm_h,v diff -u -p -u -r1.1 patch-include_backend_drm_drm_h --- patches/patch-include_backend_drm_drm_h 11 Aug 2025 18:34:17 -0000 1.1 +++ patches/patch-include_backend_drm_drm_h 15 Aug 2025 16:30:30 -0000 @@ -1,7 +1,7 @@ Index: include/backend/drm/drm.h --- include/backend/drm/drm.h.orig +++ include/backend/drm/drm.h -@@ -85,6 +85,7 @@ struct wlr_drm_backend { +@@ -92,6 +92,7 @@ struct wlr_drm_backend { bool addfb2_modifiers; int fd; @@ -9,7 +9,7 @@ Index: include/backend/drm/drm.h char *name; struct wlr_device *dev; struct liftoff_device *liftoff; -@@ -96,6 +97,7 @@ struct wlr_drm_backend { +@@ -103,6 +104,7 @@ struct wlr_drm_backend { struct wlr_drm_plane *planes; struct wl_event_source *drm_event; @@ -17,9 +17,9 @@ Index: include/backend/drm/drm.h struct wl_listener session_destroy; struct wl_listener session_active; -@@ -215,6 +217,7 @@ bool commit_drm_device(struct wlr_drm_backend *drm, +@@ -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); - void restore_drm_device(struct wlr_drm_backend *drm); 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); Index: patches/patch-meson_build =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/patches/patch-meson_build,v diff -u -p -u -r1.2 patch-meson_build --- patches/patch-meson_build 7 Nov 2024 09:44:27 -0000 1.2 +++ patches/patch-meson_build 15 Aug 2025 16:30:30 -0000 @@ -3,7 +3,7 @@ No librt on OpenBSD Index: meson.build --- meson.build.orig +++ meson.build -@@ -134,7 +134,6 @@ pixman = dependency('pixman-1', +@@ -121,7 +121,6 @@ pixman = dependency('pixman-1', default_options: ['werror=false'], ) math = cc.find_library('m') @@ -11,7 +11,7 @@ Index: meson.build wlr_files = [] wlr_deps = [ -@@ -143,7 +142,6 @@ wlr_deps = [ +@@ -130,7 +129,6 @@ wlr_deps = [ xkbcommon, pixman, math, Index: patches/patch-render_drm_syncobj_c =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/patches/patch-render_drm_syncobj_c,v diff -u -p -u -r1.1 patch-render_drm_syncobj_c --- patches/patch-render_drm_syncobj_c 7 Nov 2024 09:44:27 -0000 1.1 +++ patches/patch-render_drm_syncobj_c 15 Aug 2025 16:30:30 -0000 @@ -3,7 +3,7 @@ ETIMEDOUT on OpenBSD, not ETIME Index: render/drm_syncobj.c --- render/drm_syncobj.c.orig +++ render/drm_syncobj.c -@@ -126,7 +126,7 @@ out: +@@ -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; Index: pkg/PLIST =================================================================== RCS file: /local/cvs/ports/wayland/wlroots/pkg/PLIST,v diff -u -p -u -r1.5 PLIST --- pkg/PLIST 14 Aug 2025 15:09:26 -0000 1.5 +++ pkg/PLIST 15 Aug 2025 16:30:30 -0000 @@ -13,6 +13,7 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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 @@ -38,6 +39,7 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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 @@ -48,10 +50,12 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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_fullscreen_shell_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 @@ -63,7 +67,6 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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_matrix.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 @@ -76,7 +79,6 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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_region.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 @@ -101,11 +103,14 @@ include/wlroots-${MODWLROOTS_VERSION}/wl 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 -- Matthieu Herrb