git: c24c9557133c - 2023Q2 - x11-wm/hyprland: update to 0.25.0

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Wed, 03 May 2023 16:57:14 UTC
The branch 2023Q2 has been updated by jbeich:

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

commit c24c9557133c9b565d3398a91ef4a3d987366d99
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-05-03 16:15:08 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-05-03 16:57:05 +0000

    x11-wm/hyprland: update to 0.25.0
    
    Changes:        https://github.com/hyprwm/Hyprland/releases/tag/v0.25.0
    Reported by:    GitHub (watch releases)
    
    (cherry picked from commit d3cd6c622a6dd800995d3a4da39829d4bc7d860d)
---
 x11-wm/hyprland/Makefile                 | 14 +++---
 x11-wm/hyprland/distinfo                 | 16 ++----
 x11-wm/hyprland/files/patch-wlroots-0.16 | 84 +++++++++++++++++++-------------
 x11-wm/hyprland/pkg-plist                |  1 +
 4 files changed, 61 insertions(+), 54 deletions(-)

diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index c1119114e0f2..d6b7b3882bb6 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,14 +1,8 @@
 PORTNAME=	hyprland
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.24.1
-PORTREVISION=	2
+DISTVERSION=	0.25.0
 CATEGORIES=	x11-wm wayland
 
-PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES+=	efee6a1cda27.patch:-p1 # https://github.com/hyprwm/Hyprland/pull/2026
-PATCHFILES+=	8944db49be38.patch:-p1 # https://github.com/hyprwm/Hyprland/issues/2065
-PATCHFILES+=	63841c8aac8c.patch:-p1 # https://github.com/hyprwm/Hyprland/pull/2066
-
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #'
 WWW=		https://hyprland.org/
@@ -32,7 +26,7 @@ USE_GNOME=	cairo pango
 USE_XORG=	pixman
 GH_ACCOUNT=	hyprwm
 GH_PROJECT=	Hyprland
-GH_TUPLE=	hyprwm:hyprland-protocols:d7d403b:hyprland_protocols/subprojects/hyprland-protocols \
+GH_TUPLE=	hyprwm:hyprland-protocols:4d29e48:hyprland_protocols/subprojects/hyprland-protocols \
 		canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86
 MESON_ARGS=	-Dsystemd=disabled
 
@@ -63,6 +57,10 @@ post-configure:
 		--skip-subprojects/' ${BUILD_WRKSRC}/build.ninja
 .endif
 
+post-install:
+# Plugin API installs all headers (no private vs. public)
+	@(cd ${STAGEDIR}${PREFIX} && ${FIND} include/${PORTNAME} ! -type d) >>${TMPPLIST}
+
 # 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)
diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo
index 32e469043657..e4890ec2778a 100644
--- a/x11-wm/hyprland/distinfo
+++ b/x11-wm/hyprland/distinfo
@@ -1,15 +1,9 @@
-TIMESTAMP = 1681059564
-SHA256 (hyprwm-Hyprland-v0.24.1_GH0.tar.gz) = 8b0cd0cc493aa0405c001426f0de153f3fc80f27c73088d4c66939643578e4e7
-SIZE (hyprwm-Hyprland-v0.24.1_GH0.tar.gz) = 758442
-SHA256 (hyprwm-hyprland-protocols-d7d403b_GH0.tar.gz) = f246db4d75546b6c411aa8c95363de4f475413f5e85b92b740d312b33729daed
-SIZE (hyprwm-hyprland-protocols-d7d403b_GH0.tar.gz) = 6333
+TIMESTAMP = 1683130508
+SHA256 (hyprwm-Hyprland-v0.25.0_GH0.tar.gz) = 0e02b35f623acdfd71a768b9ef04b54407f1647f6b79c47a4239e1f70ac8c3f8
+SIZE (hyprwm-Hyprland-v0.25.0_GH0.tar.gz) = 766846
+SHA256 (hyprwm-hyprland-protocols-4d29e48_GH0.tar.gz) = 1384ccdbb0149cdc40d74fbe21fba97d706db08b718c7df9481076381d852c74
+SIZE (hyprwm-hyprland-protocols-4d29e48_GH0.tar.gz) = 6340
 SHA256 (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 69aff959179ff6247b375b92e797221dbd8e078eabbf1366280b0532617e7fb8
 SIZE (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 116938
 SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271
 SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803
-SHA256 (efee6a1cda27.patch) = 56621b462066573098774bb5601595bda8b4f2f55faacd84e1b93fbfc22f4c31
-SIZE (efee6a1cda27.patch) = 4384
-SHA256 (8944db49be38.patch) = 402c84680f0d206a991d8e07aa032b6af626e21cbf0fa93f3f9feea9be01daa3
-SIZE (8944db49be38.patch) = 1805
-SHA256 (63841c8aac8c.patch) = 318869b055e0bce87723004f2da13922c4ff82791c70fa99554dd3ab53bc279b
-SIZE (63841c8aac8c.patch) = 2371
diff --git a/x11-wm/hyprland/files/patch-wlroots-0.16 b/x11-wm/hyprland/files/patch-wlroots-0.16
index ea893bfada93..0cd0eed17660 100644
--- a/x11-wm/hyprland/files/patch-wlroots-0.16
+++ b/x11-wm/hyprland/files/patch-wlroots-0.16
@@ -7,8 +7,9 @@ https://github.com/hyprwm/Hyprland/commit/d6b3bfc48e22
 https://github.com/hyprwm/Hyprland/commit/a46abd8b1ada
 https://github.com/hyprwm/Hyprland/commit/a34b74766193
 https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
+https://github.com/hyprwm/Hyprland/commit/d03dcc3d9941
 
---- src/Compositor.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/Compositor.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/Compositor.cpp
 @@ -104,7 +104,7 @@ void CCompositor::initServer() {
      if (LOGWLR && std::string(LOGWLR) == "1")
@@ -33,6 +34,15 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
      }
  
      m_sWLRAllocator = wlr_allocator_autocreate(m_sWLRBackend, m_sWLRRenderer);
+@@ -147,7 +148,7 @@ void CCompositor::initServer() {
+         throw std::runtime_error("wlr_gles2_renderer_get_egl() failed!");
+     }
+ 
+-    m_sWLRCompositor    = wlr_compositor_create(m_sWLDisplay, 6, m_sWLRRenderer);
++    m_sWLRCompositor    = wlr_compositor_create(m_sWLDisplay, m_sWLRRenderer);
+     m_sWLRSubCompositor = wlr_subcompositor_create(m_sWLDisplay);
+     m_sWLRDataDevMgr    = wlr_data_device_manager_create(m_sWLDisplay);
+ 
 @@ -187,7 +188,7 @@ void CCompositor::initServer() {
  
      m_sWLRIdle = wlr_idle_create(m_sWLDisplay);
@@ -51,7 +61,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
  
      m_sWLRTextInputMgr = wlr_text_input_manager_v3_create(m_sWLDisplay);
  
---- src/events/Events.hpp.orig	2023-04-08 12:08:56 UTC
+--- src/events/Events.hpp.orig	2023-05-03 16:15:08 UTC
 +++ src/events/Events.hpp
 @@ -97,7 +97,6 @@ namespace Events {
      // Monitor part 2 the sequel
@@ -60,10 +70,10 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
 -    DYNLISTENFUNC(monitorStateRequest);
      DYNLISTENFUNC(monitorDamage);
      DYNLISTENFUNC(monitorNeedsFrame);
- 
---- src/events/Monitors.cpp.orig	2023-04-08 12:08:56 UTC
+     DYNLISTENFUNC(monitorCommit);
+--- src/events/Monitors.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/events/Monitors.cpp
-@@ -190,13 +190,6 @@ void Events::listener_monitorDestroy(void* owner, void
+@@ -193,13 +193,6 @@ void Events::listener_monitorDestroy(void* owner, void
      }
  }
  
@@ -77,33 +87,34 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
  void Events::listener_monitorDamage(void* owner, void* data) {
      const auto PMONITOR = (CMonitor*)owner;
      const auto E        = (wlr_output_event_damage*)data;
---- src/events/Windows.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/events/Windows.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/events/Windows.cpp
-@@ -846,7 +846,7 @@ void Events::listener_activateXDG(wl_listener* listene
+@@ -863,7 +863,7 @@ void Events::listener_activateXDG(wl_listener* listene
  
-     Debug::log(LOG, "Activate request for surface at %x", E->surface);
+     Debug::log(LOG, "Activate request for surface at %lx", E->surface);
  
 -    if (!wlr_xdg_surface_try_from_wlr_surface(E->surface))
 +    if (!wlr_surface_is_xdg_surface(E->surface))
          return;
  
      const auto PWINDOW = g_pCompositor->getWindowFromSurface(E->surface);
---- src/helpers/Monitor.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/helpers/Monitor.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/helpers/Monitor.cpp
-@@ -19,12 +19,10 @@ void CMonitor::onConnect(bool noRule) {
+@@ -19,13 +19,11 @@ void CMonitor::onConnect(bool noRule) {
  void CMonitor::onConnect(bool noRule) {
      hyprListener_monitorDestroy.removeCallback();
      hyprListener_monitorFrame.removeCallback();
 -    hyprListener_monitorStateRequest.removeCallback();
      hyprListener_monitorDamage.removeCallback();
      hyprListener_monitorNeedsFrame.removeCallback();
+     hyprListener_monitorCommit.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);
      hyprListener_monitorDamage.initCallback(&output->events.damage, &Events::listener_monitorDamage, this);
      hyprListener_monitorNeedsFrame.initCallback(&output->events.needs_frame, &Events::listener_monitorNeedsFrame, this);
- 
-@@ -238,7 +236,7 @@ void CMonitor::onDisconnect() {
+     hyprListener_monitorCommit.initCallback(&output->events.commit, &Events::listener_monitorCommit, this);
+@@ -249,7 +247,7 @@ void CMonitor::onDisconnect() {
      if (!BACKUPMON) {
          Debug::log(WARN, "Unplugged last monitor, entering an unsafe state. Good luck my friend.");
  
@@ -112,16 +123,16 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
          hyprListener_monitorDestroy.removeCallback();
  
          g_pCompositor->m_bUnsafeState = true;
-@@ -295,7 +293,7 @@ void CMonitor::onDisconnect() {
+@@ -307,7 +305,7 @@ void CMonitor::onDisconnect() {
      std::erase_if(g_pCompositor->m_vMonitors, [&](std::shared_ptr<CMonitor>& el) { return el.get() == this; });
  }
  
 -void CMonitor::addDamage(const pixman_region32_t* rg) {
 +void CMonitor::addDamage(pixman_region32_t* rg) {
-     if (wlr_damage_ring_add(&damage, rg))
-         g_pCompositor->scheduleFrameForMonitor(this);
- }
---- src/helpers/Monitor.hpp.orig	2023-04-08 12:08:56 UTC
+     static auto* const PZOOMFACTOR = &g_pConfigManager->getConfigValuePtr("misc:cursor_zoom_factor")->floatValue;
+     if (*PZOOMFACTOR != 1.f && g_pCompositor->getMonitorFromCursor() == this) {
+         wlr_damage_ring_add_whole(&damage);
+--- src/helpers/Monitor.hpp.orig	2023-05-03 16:15:08 UTC
 +++ src/helpers/Monitor.hpp
 @@ -64,7 +64,7 @@ class CMonitor {
  
@@ -131,8 +142,8 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
 +    DYNLISTENER(monitorMode);
      DYNLISTENER(monitorDamage);
      DYNLISTENER(monitorNeedsFrame);
- 
-@@ -75,7 +75,7 @@ class CMonitor {
+     DYNLISTENER(monitorCommit);
+@@ -76,7 +76,7 @@ class CMonitor {
      // methods
      void                       onConnect(bool noRule);
      void                       onDisconnect();
@@ -141,7 +152,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
      void                       addDamage(const wlr_box* box);
      void                       setMirror(const std::string&);
      bool                       isMirror();
---- src/helpers/SubsurfaceTree.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/helpers/SubsurfaceTree.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/helpers/SubsurfaceTree.cpp
 @@ -6,8 +6,8 @@ void addSurfaceGlobalOffset(SSurfaceTreeNode* node, in
      if (!node->pSurface || !node->pSurface->exists())
@@ -154,7 +165,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
  
      if (node->offsetfn) {
          // This is the root node
---- src/managers/XWaylandManager.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/managers/XWaylandManager.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/managers/XWaylandManager.cpp
 @@ -35,16 +35,16 @@ void CHyprXWaylandManager::activateSurface(wlr_surface
      if (!pSurface)
@@ -178,7 +189,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
      }
  }
  
---- src/managers/input/InputMethodRelay.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/managers/input/InputMethodRelay.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/managers/input/InputMethodRelay.cpp
 @@ -184,8 +184,8 @@ void CInputMethodRelay::updateInputPopup(SIMEPopup* pP
      Vector2D   parentPos;
@@ -202,9 +213,9 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
  
          if (PLS) {
              parentPos = Vector2D(PLS->geometry.x, PLS->geometry.y) + g_pCompositor->getMonitorFromID(PLS->monitorID)->vecPosition;
---- src/protocols/ToplevelExport.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/protocols/ToplevelExport.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/protocols/ToplevelExport.cpp
-@@ -369,7 +369,8 @@ bool CToplevelExportProtocolManager::copyFrameShm(STop
+@@ -373,7 +373,8 @@ bool CToplevelExportProtocolManager::copyFrameShm(SScr
      g_pHyprRenderer->renderWindow(frame->pWindow, PMONITOR, now, false, RENDER_PASS_ALL, true, true);
      g_pHyprRenderer->m_bBlockSurfaceFeedback = false;
  
@@ -214,7 +225,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
          // hack le massive
          wlr_output_cursor* cursor;
          const auto         OFFSET = frame->pWindow->m_vRealPosition.vec() - PMONITOR->vecPosition;
---- src/render/Renderer.cpp.orig	2023-04-08 12:08:56 UTC
+--- src/render/Renderer.cpp.orig	2023-05-03 16:15:08 UTC
 +++ src/render/Renderer.cpp
 @@ -37,7 +37,7 @@ void renderSurface(struct wlr_surface* surface, int x,
      rounding -= 1; // to fix a border issue
@@ -225,7 +236,7 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
              g_pHyprOpenGL->renderTexture(TEXTURE, &windowBox, RDATA->fadeAlpha * RDATA->alpha, rounding, true);
          } else {
              if (RDATA->blur)
-@@ -665,9 +665,6 @@ bool CHyprRenderer::attemptDirectScanout(CMonitor* pMo
+@@ -697,9 +697,6 @@ bool CHyprRenderer::attemptDirectScanout(CMonitor* pMo
      if (!pMonitor->mirrors.empty() || pMonitor->isMirror() || m_bDirectScanoutBlocked)
          return false; // do not DS if this monitor is being mirrored. Will break the functionality.
  
@@ -235,21 +246,24 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
      const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pMonitor->activeWorkspace);
  
      if (!PWORKSPACE || !PWORKSPACE->m_bHasFullscreenWindow || g_pInputManager->m_sDrag.drag || g_pCompositor->m_sSeat.exclusiveClient || pMonitor->specialWorkspaceID)
-@@ -928,10 +925,9 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) 
+@@ -971,7 +968,7 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) 
                  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);
+             if (pMonitor == g_pCompositor->getMonitorFromCursor() && *PZOOMFACTOR != 1.f) {
+                 wlr_output_lock_software_cursors(pMonitor->output, true);
+                 wlr_output_render_software_cursors(pMonitor->output, NULL);
+@@ -979,7 +976,6 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) 
+             } else
+                 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();
-@@ -1003,20 +999,48 @@ void CHyprRenderer::setWindowScanoutMode(CWindow* pWin
+     if (pMonitor == g_pCompositor->getMonitorFromCursor())
+@@ -1081,20 +1077,48 @@ void CHyprRenderer::setWindowScanoutMode(CWindow* pWin
          return;
      }
  
@@ -304,5 +318,5 @@ https://github.com/hyprwm/Hyprland/commit/1a5d5bf6201b
 +
 +    wlr_drm_format_set_finish(&scanoutFormats);
  
-     Debug::log(LOG, "Scanout mode ON set for %x", pWindow);
+     Debug::log(LOG, "Scanout mode ON set for %lx", pWindow);
  }
diff --git a/x11-wm/hyprland/pkg-plist b/x11-wm/hyprland/pkg-plist
index 3c6d77e4eefd..63775edfaec7 100644
--- a/x11-wm/hyprland/pkg-plist
+++ b/x11-wm/hyprland/pkg-plist
@@ -6,4 +6,5 @@ man/man1/hyprctl.1.gz
 %%DATADIR%%/wall_2K.png
 %%DATADIR%%/wall_4K.png
 %%DATADIR%%/wall_8K.png
+share/pkgconfig/hyprland.pc
 share/wayland-sessions/hyprland.desktop