aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2024-04-11 09:24:03 +0000
committerJan Beich <jbeich@FreeBSD.org>2024-06-10 22:50:51 +0000
commit175eb02da7621afeb9157eb2bed435c5aac19b9d (patch)
treeb75a83e81efa35762410c971a0db19debed62252
parent7fa85e6a38444c163def799f1e610095970a5f5d (diff)
downloadports-175eb02da7621afeb9157eb2bed435c5aac19b9d.tar.gz
ports-175eb02da7621afeb9157eb2bed435c5aac19b9d.zip
x11-toolkits/wlroots-devel: fork hyprland changes into a pinned port
Old wlroots snapshot as used by Hyprland before it was refactored out. Unlike upstream unbundled and using shared library to avoid leaking wlroots implementation details into hyprland package. This unblock wlroots-devel and sway-devel updates.
-rw-r--r--x11-toolkits/Makefile1
-rw-r--r--x11-toolkits/wlroots-devel/Makefile5
-rw-r--r--x11-toolkits/wlroots-devel/distinfo4
-rw-r--r--x11-toolkits/wlroots-hyprland/Makefile87
-rw-r--r--x11-toolkits/wlroots-hyprland/distinfo11
-rw-r--r--x11-toolkits/wlroots-hyprland/files/patch-suffix20
-rw-r--r--x11-toolkits/wlroots-hyprland/pkg-descr28
-rw-r--r--x11-toolkits/wlroots-hyprland/pkg-plist112
-rw-r--r--x11-wm/hyprland/Makefile4
-rw-r--r--x11-wm/hyprland/files/patch-system-wlroots2
10 files changed, 263 insertions, 11 deletions
diff --git a/x11-toolkits/Makefile b/x11-toolkits/Makefile
index 16f21ef63eb2..fa0122247442 100644
--- a/x11-toolkits/Makefile
+++ b/x11-toolkits/Makefile
@@ -245,6 +245,7 @@
SUBDIR += vte3
SUBDIR += wlroots
SUBDIR += wlroots-devel
+ SUBDIR += wlroots-hyprland
SUBDIR += wlroots015
SUBDIR += wlroots016
SUBDIR += wmapp
diff --git a/x11-toolkits/wlroots-devel/Makefile b/x11-toolkits/wlroots-devel/Makefile
index f2e517350ff7..168891730dc9 100644
--- a/x11-toolkits/wlroots-devel/Makefile
+++ b/x11-toolkits/wlroots-devel/Makefile
@@ -1,13 +1,10 @@
PORTNAME= wlroots
DISTVERSION= 0.17.0-312
DISTVERSIONSUFFIX= -gb1b34cd665
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11-toolkits
PKGNAMESUFFIX= -devel
-PATCH_SITES+= https://github.com/hyprwm/wlroots-hyprland/raw/5c1d51c5a279/patches/:hyprland
-PATCHFILES+= surface-nondivisible-by-scale.patch:-p1:hyprland
-PATCHFILES+= nvidia-hardware-cursors.patch:-p1:hyprland
PATCH_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
PATCHFILES+= cc6a7a04418f.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4697
PATCHFILES+= 4b4f76cc1357.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4614
diff --git a/x11-toolkits/wlroots-devel/distinfo b/x11-toolkits/wlroots-devel/distinfo
index 979f0acc3056..ca99004f22c8 100644
--- a/x11-toolkits/wlroots-devel/distinfo
+++ b/x11-toolkits/wlroots-devel/distinfo
@@ -1,10 +1,6 @@
TIMESTAMP = 1712827443
SHA256 (wlroots-0.17.0-312-gb1b34cd665.tar.bz2) = e9eb70ecddce0030b26b595d368cee15559febe1b8121de6bc6d5ec8bf95ccef
SIZE (wlroots-0.17.0-312-gb1b34cd665.tar.bz2) = 458003
-SHA256 (surface-nondivisible-by-scale.patch) = e9b9f9a537090627ea4fac0b5a101d8ffedf2b399465889b225c694645b4c173
-SIZE (surface-nondivisible-by-scale.patch) = 1778
-SHA256 (nvidia-hardware-cursors.patch) = ed4720310d61068b24ebd4a30767556cb7590acfd5c66c95d7408a0c95539dbc
-SIZE (nvidia-hardware-cursors.patch) = 12545
SHA256 (cc6a7a04418f.patch) = eb2bf98b372b668f773dbb1e3108bff16fefcc51be148775e6517ea4c9d35d83
SIZE (cc6a7a04418f.patch) = 1291
SHA256 (4b4f76cc1357.patch) = 163500bf90d39365a6ce8a9d24d48b2e65135d2f548c9532d933ed19b1097d53
diff --git a/x11-toolkits/wlroots-hyprland/Makefile b/x11-toolkits/wlroots-hyprland/Makefile
new file mode 100644
index 000000000000..73fd0a73720d
--- /dev/null
+++ b/x11-toolkits/wlroots-hyprland/Makefile
@@ -0,0 +1,87 @@
+PORTNAME= wlroots
+DISTVERSION= 0.17.0-312
+DISTVERSIONSUFFIX= -gb1b34cd665
+CATEGORIES= x11-toolkits
+PKGNAMESUFFIX= -hyprland
+
+PATCH_SITES+= https://github.com/hyprwm/wlroots-hyprland/raw/5c1d51c5a279/patches/:hyprland
+PATCHFILES+= surface-nondivisible-by-scale.patch:-p1:hyprland
+PATCHFILES+= nvidia-hardware-cursors.patch:-p1:hyprland
+PATCH_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
+PATCHFILES+= cc6a7a04418f.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4697
+PATCHFILES+= 4b4f76cc1357.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4614
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= Modular Wayland compositor library (Hyprland fork)
+WWW= https://github.com/hyprwm/wlroots-hyprland
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= wayland-protocols>=1.33:graphics/wayland-protocols
+LIB_DEPENDS= libdrm.so:graphics/libdrm \
+ libwayland-server.so:graphics/wayland \
+ libxkbcommon.so:x11/libxkbcommon
+
+USES= compiler:c11 gl meson pkgconfig xorg
+USE_GITLAB= yes
+USE_GL= gbm
+USE_XORG= pixman
+USE_LDCONFIG= yes
+GL_SITE= https://gitlab.freedesktop.org
+MESON_ARGS= -Dexamples=false -Dbackends=${BACKENDS:ts,} -Drenderers=${RENDERERS:ts,}
+PLIST_SUB= SUFFIX=${PKGNAMESUFFIX}
+
+PORTSCOUT= ignore:1
+
+OPTIONS_DEFINE= DRM OPENGL VULKAN X11
+OPTIONS_DEFAULT=DRM OPENGL VULKAN X11
+OPTIONS_EXCLUDE=VULKAN # not supported by Hyprland due to custom renderer
+OPTIONS_SUB= yes
+
+DRM_DESC= KMS console support
+DRM_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
+ hwdata>0:misc/hwdata
+DRM_LIB_DEPENDS= libudev.so:devel/libudev-devd \
+ libliftoff.so:graphics/libliftoff \
+ libdisplay-info.so:sysutils/libdisplay-info \
+ libseat.so:sysutils/seatd \
+ libinput.so:x11/libinput
+DRM_MESON_ENABLED= session
+DRM_VARS= BACKENDS+="drm libinput"
+
+OPENGL_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
+OPENGL_USE= GL=egl,glesv2
+OPENGL_VARS= RENDERERS+=gles2
+
+VULKAN_DESC= Vulkan renderer
+VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \
+ vulkan-headers>0:graphics/vulkan-headers
+VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
+VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
+VULKAN_VARS= RENDERERS+=vulkan
+
+X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \
+ libxcb-render-util.so:x11/xcb-util-renderutil \
+ libxcb-icccm.so:x11/xcb-util-wm
+X11_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
+ Xwayland:x11-servers/xwayland
+X11_RUN_DEPENDS= Xwayland:x11-servers/xwayland
+X11_USE= XORG=xcb
+X11_MESON_ENABLED= xwayland
+X11_VARS= BACKENDS+=x11
+
+post-patch:
+# Extract (snapshot) version from the port instead of meson.build
+ @${REINPLACE_CMD} "/STR/s/meson.project_version()/'${DISTVERSIONFULL}'/" \
+ ${WRKSRC}/include/wlr/meson.build
+# XXX Drop after FreeBSD 12.4 EOL around 2023-12-31
+# https://cgit.freebsd.org/src/commit/?id=d7535fb3e3cb
+ @if [ ${OPSYS} = FreeBSD -a ${OSVERSION} -lt 1300515 ]; then \
+ ${REINPLACE_CMD} -e '/POSIX/s/199309/200112/' \
+ ${WRKSRC}/render/gles2/pass.c \
+ ${WRKSRC}/render/gles2/renderer.c \
+ ${WRKSRC}/types/wlr_presentation_time.c; \
+ fi
+
+.include <bsd.port.mk>
diff --git a/x11-toolkits/wlroots-hyprland/distinfo b/x11-toolkits/wlroots-hyprland/distinfo
new file mode 100644
index 000000000000..979f0acc3056
--- /dev/null
+++ b/x11-toolkits/wlroots-hyprland/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1712827443
+SHA256 (wlroots-0.17.0-312-gb1b34cd665.tar.bz2) = e9eb70ecddce0030b26b595d368cee15559febe1b8121de6bc6d5ec8bf95ccef
+SIZE (wlroots-0.17.0-312-gb1b34cd665.tar.bz2) = 458003
+SHA256 (surface-nondivisible-by-scale.patch) = e9b9f9a537090627ea4fac0b5a101d8ffedf2b399465889b225c694645b4c173
+SIZE (surface-nondivisible-by-scale.patch) = 1778
+SHA256 (nvidia-hardware-cursors.patch) = ed4720310d61068b24ebd4a30767556cb7590acfd5c66c95d7408a0c95539dbc
+SIZE (nvidia-hardware-cursors.patch) = 12545
+SHA256 (cc6a7a04418f.patch) = eb2bf98b372b668f773dbb1e3108bff16fefcc51be148775e6517ea4c9d35d83
+SIZE (cc6a7a04418f.patch) = 1291
+SHA256 (4b4f76cc1357.patch) = 163500bf90d39365a6ce8a9d24d48b2e65135d2f548c9532d933ed19b1097d53
+SIZE (4b4f76cc1357.patch) = 2512
diff --git a/x11-toolkits/wlroots-hyprland/files/patch-suffix b/x11-toolkits/wlroots-hyprland/files/patch-suffix
new file mode 100644
index 000000000000..0c97d0509768
--- /dev/null
+++ b/x11-toolkits/wlroots-hyprland/files/patch-suffix
@@ -0,0 +1,20 @@
+Rename to avoid conflict with regular wlroots package
+
+--- meson.build.orig 2024-04-11 09:24:03 UTC
++++ meson.build
+@@ -1,5 +1,5 @@ project(
+ project(
+- 'wlroots',
++ 'wlroots-hyprland',
+ 'c',
+ version: '0.18.0-dev',
+ license: 'MIT',
+@@ -14,7 +14,7 @@ version_minor = version.split('.')[1]
+ version = meson.project_version().split('-')[0]
+ version_major = version.split('.')[0]
+ version_minor = version.split('.')[1]
+-versioned_name = '@0@-@1@.@2@'.format(meson.project_name(), version_major, version_minor)
++versioned_name = '@0@'.format(meson.project_name())
+
+ little_endian = target_machine.endian() == 'little'
+ big_endian = target_machine.endian() == 'big'
diff --git a/x11-toolkits/wlroots-hyprland/pkg-descr b/x11-toolkits/wlroots-hyprland/pkg-descr
new file mode 100644
index 000000000000..6daf6a788b68
--- /dev/null
+++ b/x11-toolkits/wlroots-hyprland/pkg-descr
@@ -0,0 +1,28 @@
+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.
diff --git a/x11-toolkits/wlroots-hyprland/pkg-plist b/x11-toolkits/wlroots-hyprland/pkg-plist
new file mode 100644
index 000000000000..9ce4c4bbb657
--- /dev/null
+++ b/x11-toolkits/wlroots-hyprland/pkg-plist
@@ -0,0 +1,112 @@
+include/wlroots%%SUFFIX%%/wlr/backend.h
+%%DRM%%include/wlroots%%SUFFIX%%/wlr/backend/drm.h
+include/wlroots%%SUFFIX%%/wlr/backend/headless.h
+include/wlroots%%SUFFIX%%/wlr/backend/interface.h
+%%DRM%%include/wlroots%%SUFFIX%%/wlr/backend/libinput.h
+include/wlroots%%SUFFIX%%/wlr/backend/multi.h
+%%DRM%%include/wlroots%%SUFFIX%%/wlr/backend/session.h
+include/wlroots%%SUFFIX%%/wlr/backend/wayland.h
+%%X11%%include/wlroots%%SUFFIX%%/wlr/backend/x11.h
+include/wlroots%%SUFFIX%%/wlr/config.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_buffer.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_keyboard.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_output.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_pointer.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_switch.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_tablet_pad.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_tablet_tool.h
+include/wlroots%%SUFFIX%%/wlr/interfaces/wlr_touch.h
+include/wlroots%%SUFFIX%%/wlr/render/allocator.h
+include/wlroots%%SUFFIX%%/wlr/render/dmabuf.h
+include/wlroots%%SUFFIX%%/wlr/render/drm_format_set.h
+%%OPENGL%%include/wlroots%%SUFFIX%%/wlr/render/egl.h
+%%OPENGL%%include/wlroots%%SUFFIX%%/wlr/render/gles2.h
+include/wlroots%%SUFFIX%%/wlr/render/interface.h
+include/wlroots%%SUFFIX%%/wlr/render/pass.h
+include/wlroots%%SUFFIX%%/wlr/render/pixman.h
+include/wlroots%%SUFFIX%%/wlr/render/swapchain.h
+%%VULKAN%%include/wlroots%%SUFFIX%%/wlr/render/vulkan.h
+include/wlroots%%SUFFIX%%/wlr/render/wlr_renderer.h
+include/wlroots%%SUFFIX%%/wlr/render/wlr_texture.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_buffer.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_compositor.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_content_type_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_cursor.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_cursor_shape_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_damage_ring.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_data_control_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_data_device.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_drm.h
+%%DRM%%include/wlroots%%SUFFIX%%/wlr/types/wlr_drm_lease_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_export_dmabuf_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_ext_foreign_toplevel_list_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_foreign_toplevel_management_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_fractional_scale_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_fullscreen_shell_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_gamma_control_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_idle_inhibit_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_idle_notify_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_input_device.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_input_method_v2.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_keyboard.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_keyboard_group.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_layer_shell_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_linux_dmabuf_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_matrix.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output_layer.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output_layout.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output_management_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output_power_management_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_output_swapchain_manager.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_pointer.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_pointer_constraints_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_pointer_gestures_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_presentation_time.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_primary_selection.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_primary_selection_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_region.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_relative_pointer_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_scene.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_screencopy_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_seat.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_security_context_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_server_decoration.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_session_lock_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_shm.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_single_pixel_buffer_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_subcompositor.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_switch.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_tablet_pad.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_tablet_tool.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_tablet_v2.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_tearing_control_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_text_input_v3.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_touch.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_transient_seat_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_viewporter.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_virtual_keyboard_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_virtual_pointer_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xcursor_manager.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_activation_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_decoration_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_foreign_registry.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_foreign_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_foreign_v2.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_output_v1.h
+include/wlroots%%SUFFIX%%/wlr/types/wlr_xdg_shell.h
+include/wlroots%%SUFFIX%%/wlr/util/addon.h
+include/wlroots%%SUFFIX%%/wlr/util/box.h
+include/wlroots%%SUFFIX%%/wlr/util/edges.h
+include/wlroots%%SUFFIX%%/wlr/util/log.h
+include/wlroots%%SUFFIX%%/wlr/util/region.h
+include/wlroots%%SUFFIX%%/wlr/util/transform.h
+include/wlroots%%SUFFIX%%/wlr/version.h
+include/wlroots%%SUFFIX%%/wlr/xcursor.h
+%%X11%%include/wlroots%%SUFFIX%%/wlr/xwayland.h
+%%X11%%include/wlroots%%SUFFIX%%/wlr/xwayland/server.h
+%%X11%%include/wlroots%%SUFFIX%%/wlr/xwayland/shell.h
+%%X11%%include/wlroots%%SUFFIX%%/wlr/xwayland/xwayland.h
+lib/libwlroots%%SUFFIX%%.so
+libdata/pkgconfig/wlroots%%SUFFIX%%.pc
diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index 88790806ab9f..74f757af0d87 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,7 +1,7 @@
PORTNAME= hyprland
DISTVERSIONPREFIX= v
DISTVERSION= 0.40.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= x11-wm wayland
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
@@ -22,7 +22,7 @@ LIB_DEPENDS= libhyprlang.so:devel/hyprlang \
libdrm.so:graphics/libdrm \
libwayland-server.so:graphics/wayland \
libuuid.so:misc/e2fsprogs-libuuid \
- libwlroots-0.18.so:x11-toolkits/wlroots-devel \
+ libwlroots-${PORTNAME}.so:x11-toolkits/wlroots-${PORTNAME} \
libhyprcursor.so:x11/hyprcursor \
libinput.so:x11/libinput \
libxkbcommon.so:x11/libxkbcommon
diff --git a/x11-wm/hyprland/files/patch-system-wlroots b/x11-wm/hyprland/files/patch-system-wlroots
index 425ce06a48f5..9c0643e27f17 100644
--- a/x11-wm/hyprland/files/patch-system-wlroots
+++ b/x11-wm/hyprland/files/patch-system-wlroots
@@ -8,7 +8,7 @@ Allow system wlroots to reduce maintenance (wlroots has tons of options)
-wlroots = subproject('wlroots-hyprland', default_options: ['examples=false', 'renderers=gles2'])
-have_xwlr = wlroots.get_variable('features').get('xwayland')
-+wlroots = dependency('wlroots-0.18', default_options: ['examples=false', 'renderers=gles2'])
++wlroots = dependency('wlroots-hyprland', default_options: ['examples=false', 'renderers=gles2'])
+have_xwlr = wlroots.get_variable(pkgconfig: 'have_xwayland', internal: 'have_xwayland') == 'true'
xcb_dep = dependency('xcb', required: get_option('xwayland'))