git: e48f8fd8b164 - 2024Q1 - x11-wm/hyprland: update to 0.35.0

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Mon, 05 Feb 2024 14:25:51 UTC
The branch 2024Q1 has been updated by jbeich:

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

commit e48f8fd8b1648599300f13e8af55e6b752d167a1
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2024-02-05 01:59:02 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2024-02-05 14:23:56 +0000

    x11-wm/hyprland: update to 0.35.0
    
    Changes:        https://github.com/hyprwm/Hyprland/releases/tag/v0.35.0
    Reported by:    GitHub (watch releases)
    
    (cherry picked from commit 47721ef8e32bbb19f6faac39d9186d2b271eb323)
---
 x11-wm/hyprland/Makefile                 | 21 ++++++--
 x11-wm/hyprland/distinfo                 |  6 +--
 x11-wm/hyprland/files/patch-wlroots-0.17 | 83 ++++++++++++++++++++++++++++++--
 x11-wm/hyprland/pkg-plist                | 12 ++---
 4 files changed, 104 insertions(+), 18 deletions(-)

diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index ad3679df9a93..58a69b8474a0 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	hyprland
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.34.0
-PORTREVISION=	1
+DISTVERSION=	0.35.0
 CATEGORIES=	x11-wm wayland
 
 MAINTAINER=	jbeich@FreeBSD.org
@@ -33,6 +32,9 @@ GH_TUPLE=	hyprwm:hyprland-protocols:v0.2-4-g0c2ce70:hyprland_protocols/subprojec
 		canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86
 MESON_ARGS=	-Dsystemd=disabled
 
+# Generated by "make update-hash" for "hyprpm update" (headersValid)
+GH_HASH=	84ab8d11e8951a6551d1e1bf87796a8589da6d47
+
 # XXX Drop after FreeBSD 14.0 EOL around 2025-03-01
 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h)
 CXXFLAGS+=	-fexperimental-library
@@ -50,7 +52,7 @@ post-patch:
 		-e "/version.*jq/s/run_command.*/'${DISTVERSIONFULL}',/" \
 		${WRKSRC}/meson.build
 	@${REINPLACE_CMD} -i .nogit \
-		-e '/^HASH/s/=.*/=${DISTVERSIONFULL:C/.*-g//}/' \
+		-e '/^HASH/s/=.*/=${GH_HASH}/' \
 		-e '/^BRANCH/s/=.*/=main/' \
 		-e '/^MESSAGE/s/=.*/="?"/' \
 		-e "/^DATE/s/=.*/=\"$$(date -ur $$(${AWK} \
@@ -73,6 +75,16 @@ post-install:
 # Plugin API installs all headers (no private vs. public)
 	@(cd ${STAGEDIR}${PREFIX} && ${FIND} include/${PORTNAME} ! -type d) >>${TMPPLIST}
 
+update-hash:
+# https://docs.github.com/en/rest/commits/commits#get-a-commit
+# Pretend to be curl(1) for pretty-printed JSON to help parse with sed(1)
+	@${REINPLACE_CMD} -i '' -e "/^GH_HASH=/s/=.*/=	$$(\
+		${SETENV} HTTP_USER_AGENT=curl ${FETCH_CMD} -qo- \
+			https://api.github.com/repos/${GH_ACCOUNT}/${GH_PROJECT}/commits/${GH_TAGNAME} | \
+			${SED} -n '/sha/ { s/.*\"\([0-9a-f]\{40\}\).*/\1/p; q; }' \
+		)/" \
+		${.CURDIR}/Makefile
+
 # XXX Drop after FreeBSD 13.2 EOL around 2024-05-01 (don't forget distinfo)
 .if ${CXX} == c++ && exists(/usr/lib/libc++.so)
 .if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch)
@@ -97,3 +109,6 @@ bundled-libcxx:
 .endif
 .endif # exists(/usr/lib/libc++.so)
 .include <bsd.port.mk>
+
+# XXX Work around !target(makesum)
+makesum:	update-hash
diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo
index c5e3b03db8cd..01c9f07596c6 100644
--- a/x11-wm/hyprland/distinfo
+++ b/x11-wm/hyprland/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1704110595
-SHA256 (hyprwm-Hyprland-v0.34.0_GH0.tar.gz) = a556a52fdf8ad759f4a1017309f021c16b280b012e10e37ddfbf53456e3d6183
-SIZE (hyprwm-Hyprland-v0.34.0_GH0.tar.gz) = 7363751
+TIMESTAMP = 1707098342
+SHA256 (hyprwm-Hyprland-v0.35.0_GH0.tar.gz) = 2dbb8b5b6ea9179a6ba26757e274b04330eb26e7e3368e7e1fc68f58c42a3be5
+SIZE (hyprwm-Hyprland-v0.35.0_GH0.tar.gz) = 47430241
 SHA256 (hyprwm-hyprland-protocols-v0.2-4-g0c2ce70_GH0.tar.gz) = d8eb9712d66a167a22a0dae829b6dba2b85814b566d0a87918c944e7c0388d1b
 SIZE (hyprwm-hyprland-protocols-v0.2-4-g0c2ce70_GH0.tar.gz) = 6478
 SHA256 (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 69aff959179ff6247b375b92e797221dbd8e078eabbf1366280b0532617e7fb8
diff --git a/x11-wm/hyprland/files/patch-wlroots-0.17 b/x11-wm/hyprland/files/patch-wlroots-0.17
index f489a10606b1..f6297c42fc77 100644
--- a/x11-wm/hyprland/files/patch-wlroots-0.17
+++ b/x11-wm/hyprland/files/patch-wlroots-0.17
@@ -3,10 +3,21 @@ use as system package with more than one consumer.
 
 https://github.com/hyprwm/hyprland/commit/2ebfd0c7456e
 https://github.com/hyprwm/hyprland/commit/d2c3b23ace74
+https://github.com/hyprwm/hyprland/commit/33444e1e5ef8
+https://github.com/hyprwm/hyprland/commit/7b3d03938888
 
---- src/Compositor.cpp.orig	2023-11-30 15:20:08 UTC
+--- src/Compositor.cpp.orig	2024-02-05 01:59:02 UTC
 +++ src/Compositor.cpp
-@@ -190,7 +190,7 @@ void CCompositor::initServer() {
+@@ -115,7 +115,7 @@ void CCompositor::initServer() {
+     else
+         wlr_log_init(WLR_ERROR, Debug::wlrLog);
+ 
+-    m_sWLRBackend = wlr_backend_autocreate(m_sWLEventLoop, &m_sWLRSession);
++    m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay, &m_sWLRSession);
+ 
+     if (!m_sWLRBackend) {
+         Debug::log(CRIT, "m_sWLRBackend was NULL! This usually means wlroots could not find a GPU or enountered some issues.");
+@@ -169,7 +169,7 @@ void CCompositor::initServer() {
  
      m_sWLRGammaCtrlMgr = wlr_gamma_control_manager_v1_create(m_sWLDisplay);
  
@@ -15,7 +26,16 @@ https://github.com/hyprwm/hyprland/commit/d2c3b23ace74
  
      m_sWLROutputPowerMgr = wlr_output_power_manager_v1_create(m_sWLDisplay);
  
-@@ -282,7 +282,7 @@ void CCompositor::initAllSignals() {
+@@ -239,7 +239,7 @@ void CCompositor::initServer() {
+ 
+     m_sWLRActivation = wlr_xdg_activation_v1_create(m_sWLDisplay);
+ 
+-    m_sWLRHeadlessBackend = wlr_headless_backend_create(m_sWLEventLoop);
++    m_sWLRHeadlessBackend = wlr_headless_backend_create(m_sWLDisplay);
+ 
+     m_sWLRSessionLockMgr = wlr_session_lock_manager_v1_create(m_sWLDisplay);
+ 
+@@ -261,7 +261,7 @@ void CCompositor::initAllSignals() {
  
  void CCompositor::initAllSignals() {
      addWLSignal(&m_sWLRBackend->events.new_output, &Events::listen_newOutput, m_sWLRBackend, "Backend");
@@ -24,6 +44,31 @@ https://github.com/hyprwm/hyprland/commit/d2c3b23ace74
      addWLSignal(&m_sWLRCursor->events.motion, &Events::listen_mouseMove, m_sWLRCursor, "WLRCursor");
      addWLSignal(&m_sWLRCursor->events.motion_absolute, &Events::listen_mouseMoveAbsolute, m_sWLRCursor, "WLRCursor");
      addWLSignal(&m_sWLRCursor->events.button, &Events::listen_mouseButton, m_sWLRCursor, "WLRCursor");
+--- src/Window.cpp.orig	2024-02-05 01:59:02 UTC
++++ src/Window.cpp
+@@ -513,7 +513,7 @@ void CWindow::onMap() {
+         if (ctrl->pWlrHint->surface != m_pWLSurface.wlr())
+             continue;
+ 
+-        m_bTearingHint = ctrl->pWlrHint->current;
++        m_bTearingHint = ctrl->pWlrHint->hint;
+         break;
+     }
+ }
+--- src/events/Misc.cpp.orig	2024-02-05 01:59:02 UTC
++++ src/events/Misc.cpp
+@@ -255,9 +255,9 @@ void Events::listener_newTearingHint(wl_listener* list
+             const auto PWINDOW = g_pCompositor->getWindowFromSurface(TEARINGHINT->pWlrHint->surface);
+ 
+             if (PWINDOW) {
+-                PWINDOW->m_bTearingHint = (bool)TEARINGHINT->pWlrHint->current;
++                PWINDOW->m_bTearingHint = TEARINGHINT->pWlrHint->hint;
+ 
+-                Debug::log(LOG, "Hint {:x} (window {}) set tearing hint to {}", (uintptr_t)TEARINGHINT->pWlrHint, PWINDOW, (uint32_t)TEARINGHINT->pWlrHint->current);
++                Debug::log(LOG, "Hint {:x} (window {}) set tearing hint to {}", (uintptr_t)TEARINGHINT->pWlrHint, PWINDOW, (uint32_t)TEARINGHINT->pWlrHint->hint);
+             }
+         },
+         NEWCTRL, "TearingController");
 --- src/events/Windows.cpp.orig	2023-11-30 15:20:08 UTC
 +++ src/events/Windows.cpp
 @@ -1171,10 +1171,12 @@ void Events::listener_newXDGToplevel(wl_listener* list
@@ -52,3 +97,35 @@ https://github.com/hyprwm/hyprland/commit/d2c3b23ace74
  #include <wlr/render/swapchain.h>
  #include <wlr/render/egl.h>
  
+--- src/managers/input/InputManager.cpp.orig	2024-02-05 01:59:02 UTC
++++ src/managers/input/InputManager.cpp
+@@ -699,8 +699,7 @@ void CInputManager::onMouseWheel(wlr_pointer_axis_even
+             return;
+     }
+ 
+-    wlr_seat_pointer_notify_axis(g_pCompositor->m_sSeat.seat, e->time_msec, e->orientation, factor * e->delta, std::round(factor * e->delta_discrete), e->source,
+-                                 WLR_AXIS_RELATIVE_DIRECTION_IDENTICAL);
++    wlr_seat_pointer_notify_axis(g_pCompositor->m_sSeat.seat, e->time_msec, e->orientation, factor * e->delta, std::round(factor * e->delta_discrete), e->source);
+ }
+ 
+ Vector2D CInputManager::getMouseCoordsInternal() {
+--- src/render/Renderer.cpp.orig	2024-02-05 01:59:02 UTC
++++ src/render/Renderer.cpp
+@@ -163,7 +163,7 @@ static void renderSurface(struct wlr_surface* surface,
+ 
+     if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) {
+         wlr_surface_send_frame_done(surface, RDATA->when);
+-        wlr_presentation_surface_textured_on_output(surface, RDATA->pMonitor->output);
++        wlr_presentation_surface_textured_on_output(g_pCompositor->m_sWLRPresentation, surface, RDATA->pMonitor->output);
+     }
+ 
+     g_pHyprOpenGL->blend(true);
+@@ -923,7 +923,7 @@ bool CHyprRenderer::attemptDirectScanout(CMonitor* pMo
+     timespec now;
+     clock_gettime(CLOCK_MONOTONIC, &now);
+     wlr_surface_send_frame_done(PSURFACE, &now);
+-    wlr_presentation_surface_scanned_out_on_output(PSURFACE, pMonitor->output);
++    wlr_presentation_surface_scanned_out_on_output(g_pCompositor->m_sWLRPresentation, PSURFACE, pMonitor->output);
+ 
+     if (pMonitor->state.commit()) {
+         if (!m_pLastScanout) {
diff --git a/x11-wm/hyprland/pkg-plist b/x11-wm/hyprland/pkg-plist
index 9e8663c2bdd7..8e880fcbf449 100644
--- a/x11-wm/hyprland/pkg-plist
+++ b/x11-wm/hyprland/pkg-plist
@@ -4,15 +4,9 @@ bin/hyprpm
 man/man1/Hyprland.1.gz
 man/man1/hyprctl.1.gz
 %%DATADIR%%/hyprland.conf
-%%DATADIR%%/wall_2K.png
-%%DATADIR%%/wall_4K.png
-%%DATADIR%%/wall_8K.png
-%%DATADIR%%/wall_anime2_2K.png
-%%DATADIR%%/wall_anime2_4K.png
-%%DATADIR%%/wall_anime2_8K.png
-%%DATADIR%%/wall_anime_2K.png
-%%DATADIR%%/wall_anime_4K.png
-%%DATADIR%%/wall_anime_8K.png
+%%DATADIR%%/wall0.png
+%%DATADIR%%/wall1.png
+%%DATADIR%%/wall2.png
 share/pkgconfig/hyprland.pc
 share/wayland-sessions/hyprland.desktop
 share/xdg-desktop-portal/hyprland-portals.conf