git: 2367a223013c - main - x11-wm/hyprland: update to 0.19.1.b

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Thu, 08 Dec 2022 11:34:32 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2367a223013c949592ba09c474f7f5f8bff0e6cb

commit 2367a223013c949592ba09c474f7f5f8bff0e6cb
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2022-12-06 13:15:18 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-12-08 11:34:18 +0000

    x11-wm/hyprland: update to 0.19.1.b
    
    Changes:        https://github.com/hyprwm/Hyprland/releases/tag/v0.19.0beta
    Changes:        https://github.com/hyprwm/Hyprland/releases/tag/v0.19.1beta
    Reported by:    GitHub (watch releases)
---
 x11-wm/hyprland/Makefile                 |  10 ++-
 x11-wm/hyprland/distinfo                 |   8 +-
 x11-wm/hyprland/files/patch-wlroots-0.16 | 136 +++++++++++++++++++++++++++++++
 3 files changed, 150 insertions(+), 4 deletions(-)

diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index 2db2ecf6876b..d39f1dba76f8 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	hyprland
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.18.0beta
+DISTVERSION=	0.19.1beta
 CATEGORIES=	x11-wm wayland
 
 MAINTAINER=	jbeich@FreeBSD.org
@@ -26,6 +26,7 @@ USE_GNOME=	cairo
 USE_XORG=	pixman
 GH_ACCOUNT=	hyprwm
 GH_PROJECT=	Hyprland
+GH_TUPLE=	hyprwm:hyprland-protocols:0dcff94:hyprland_protocols/subprojects/hyprland-protocols
 LDFLAGS+=	-static-libstdc++ -static-libgcc # avoid libc++ conflict
 
 OPTIONS_DEFINE=	X11
@@ -45,4 +46,11 @@ post-patch:
 	@${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \
 		${WRKSRC}/src/render/OpenGL.cpp
 
+.ifdef GH_TUPLE
+post-install:
+# XXX USES=meson invokes ninja directly, so doesn't support --skip-subprojects
+	@${RM} -r ${STAGEDIR}${PREFIX}/share/pkgconfig
+	@${RM} -r ${STAGEDIR}${PREFIX}/share/protocols
+.endif
+
 .include <bsd.port.mk>
diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo
index 84b9c28bad08..b989da06ee8c 100644
--- a/x11-wm/hyprland/distinfo
+++ b/x11-wm/hyprland/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1668612936
-SHA256 (hyprwm-Hyprland-v0.18.0beta_GH0.tar.gz) = 6b2c07263fbd874faa498d211f801191a947ea41b370cbd0f1fa0a58b7fe5a54
-SIZE (hyprwm-Hyprland-v0.18.0beta_GH0.tar.gz) = 686959
+TIMESTAMP = 1670439422
+SHA256 (hyprwm-Hyprland-v0.19.1beta_GH0.tar.gz) = 69b3fac34ec565bb4b3ae5d89c264e65f196d8eb08cfb4b4214bf541fe81c2b6
+SIZE (hyprwm-Hyprland-v0.19.1beta_GH0.tar.gz) = 697744
+SHA256 (hyprwm-hyprland-protocols-0dcff94_GH0.tar.gz) = 8a98166d88af0a59dd57ead5b3991f774eac6846f3fe713a6ef9d5754137d025
+SIZE (hyprwm-hyprland-protocols-0dcff94_GH0.tar.gz) = 4689
diff --git a/x11-wm/hyprland/files/patch-wlroots-0.16 b/x11-wm/hyprland/files/patch-wlroots-0.16
new file mode 100644
index 000000000000..1d488a5289f4
--- /dev/null
+++ b/x11-wm/hyprland/files/patch-wlroots-0.16
@@ -0,0 +1,136 @@
+Revert to wlroots 0.16 API as 0.17 is a moving target, so hard to
+use as system package with more than one consumer.
+
+https://github.com/hyprwm/Hyprland/commit/df132e5ff339
+https://github.com/hyprwm/Hyprland/commit/c012e3d66b21
+https://github.com/hyprwm/Hyprland/commit/d6b3bfc48e22
+
+--- src/Compositor.cpp.orig	2022-12-06 13:15:18 UTC
++++ src/Compositor.cpp
+@@ -53,7 +53,7 @@ CCompositor::CCompositor() {
+     wl_event_loop_add_signal(m_sWLEventLoop, SIGTERM, handleCritSignal, nullptr);
+     //wl_event_loop_add_signal(m_sWLEventLoop, SIGINT, handleCritSignal, nullptr);
+ 
+-    m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay, &m_sWLRSession);
++    m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay);
+ 
+     if (!m_sWLRBackend) {
+         Debug::log(CRIT, "m_sWLRBackend was NULL!");
+@@ -76,10 +76,11 @@ CCompositor::CCompositor() {
+     wlr_renderer_init_wl_shm(m_sWLRRenderer, m_sWLDisplay);
+ 
+     if (wlr_renderer_get_dmabuf_texture_formats(m_sWLRRenderer)) {
+-        if (wlr_renderer_get_drm_fd(m_sWLRRenderer) >= 0)
++        if (wlr_renderer_get_drm_fd(m_sWLRRenderer) >= 0) {
+             wlr_drm_create(m_sWLDisplay, m_sWLRRenderer);
++        }
+ 
+-        m_sWLRLinuxDMABuf = wlr_linux_dmabuf_v1_create_with_renderer(m_sWLDisplay, 4, m_sWLRRenderer);
++        m_sWLRLinuxDMABuf = wlr_linux_dmabuf_v1_create(m_sWLDisplay, m_sWLRRenderer);
+     }
+ 
+     m_sWLRAllocator = wlr_allocator_autocreate(m_sWLRBackend, m_sWLRRenderer);
+@@ -131,7 +132,7 @@ CCompositor::CCompositor() {
+ 
+     m_sWLRIdle = wlr_idle_create(m_sWLDisplay);
+ 
+-    m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay, 4);
++    m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay);
+ 
+     m_sWLRServerDecoMgr = wlr_server_decoration_manager_create(m_sWLDisplay);
+     m_sWLRXDGDecoMgr = wlr_xdg_decoration_manager_v1_create(m_sWLDisplay);
+@@ -171,6 +172,8 @@ CCompositor::CCompositor() {
+     wlr_xdg_foreign_v2_create(m_sWLDisplay, m_sWLRForeignRegistry);
+ 
+     m_sWLRPointerGestures = wlr_pointer_gestures_v1_create(m_sWLDisplay);
++
++    m_sWLRSession = wlr_backend_get_session(m_sWLRBackend);
+ 
+     m_sWLRTextInputMgr = wlr_text_input_manager_v3_create(m_sWLDisplay);
+ 
+--- src/events/Events.hpp.orig	2022-12-06 13:15:18 UTC
++++ src/events/Events.hpp
+@@ -96,7 +96,6 @@ namespace Events {
+     // Monitor part 2 the sequel
+     DYNLISTENFUNC(monitorFrame);
+     DYNLISTENFUNC(monitorDestroy);
+-    DYNLISTENFUNC(monitorStateRequest);
+ 
+     // XWayland
+     LISTENER(readyXWayland);
+--- src/events/Monitors.cpp.orig	2022-12-06 13:15:18 UTC
++++ src/events/Monitors.cpp
+@@ -266,10 +266,11 @@ void Events::listener_monitorFrame(void* owner, void* 
+                 damageBlinkCleanup = 0;
+         }
+ 
+-        if (wlr_renderer_begin(g_pCompositor->m_sWLRRenderer, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y)) {
+-            wlr_output_render_software_cursors(PMONITOR->output, NULL);
+-            wlr_renderer_end(g_pCompositor->m_sWLRRenderer);
+-        }
++        wlr_renderer_begin(g_pCompositor->m_sWLRRenderer, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y);
++
++        wlr_output_render_software_cursors(PMONITOR->output, NULL);
++
++        wlr_renderer_end(g_pCompositor->m_sWLRRenderer);
+     }
+ 
+     g_pHyprOpenGL->end();
+@@ -354,11 +355,4 @@ void Events::listener_monitorDestroy(void* owner, void
+             pMostHzMonitor = pMonitorMostHz;
+         }
+     }
+-}
+-
+-void Events::listener_monitorStateRequest(void* owner, void* data) {
+-    const auto PMONITOR = (CMonitor*)owner;
+-    const auto E = (wlr_output_event_request_state*)data;
+-
+-    wlr_output_commit_state(PMONITOR->output, E->state);
+ }
+--- src/helpers/Monitor.cpp.orig	2022-12-06 13:15:18 UTC
++++ src/helpers/Monitor.cpp
+@@ -5,10 +5,8 @@ void CMonitor::onConnect(bool noRule) {
+ void CMonitor::onConnect(bool noRule) {
+     hyprListener_monitorDestroy.removeCallback();
+     hyprListener_monitorFrame.removeCallback();
+-    hyprListener_monitorStateRequest.removeCallback();
+     hyprListener_monitorFrame.initCallback(&output->events.frame, &Events::listener_monitorFrame, this);
+     hyprListener_monitorDestroy.initCallback(&output->events.destroy, &Events::listener_monitorDestroy, this);
+-    hyprListener_monitorStateRequest.initCallback(&output->events.request_state, &Events::listener_monitorStateRequest, this);
+ 
+     if (m_bEnabled) {
+         wlr_output_enable(output, 1);
+@@ -185,7 +183,7 @@ void CMonitor::onDisconnect() {
+     if (!BACKUPMON) {
+         Debug::log(WARN, "Unplugged last monitor, entering an unsafe state. Good luck my friend.");
+ 
+-        hyprListener_monitorStateRequest.removeCallback();
++        hyprListener_monitorMode.removeCallback();
+         hyprListener_monitorDestroy.removeCallback();
+ 
+         g_pCompositor->m_bUnsafeState = true;
+--- src/helpers/Monitor.hpp.orig	2022-12-06 13:15:18 UTC
++++ src/helpers/Monitor.hpp
+@@ -56,7 +56,7 @@ class CMonitor { (public)
+ 
+     DYNLISTENER(monitorFrame);
+     DYNLISTENER(monitorDestroy);
+-    DYNLISTENER(monitorStateRequest);
++    DYNLISTENER(monitorMode);
+ 
+     // hack: a group = workspaces on a monitor.
+     // I don't really care lol :P
+--- src/helpers/SubsurfaceTree.cpp.orig	2022-12-06 13:15:18 UTC
++++ src/helpers/SubsurfaceTree.cpp
+@@ -3,8 +3,8 @@ void addSurfaceGlobalOffset(SSurfaceTreeNode* node, in
+ #include "../Compositor.hpp"
+ 
+ void addSurfaceGlobalOffset(SSurfaceTreeNode* node, int* lx, int* ly) {
+-    *lx += node->pSurface->current.dx;
+-    *ly += node->pSurface->current.dy;
++    *lx += node->pSurface->sx;
++    *ly += node->pSurface->sy;
+ 
+     if (node->offsetfn) {
+         // This is the root node