Subject: [bug#73124] [PATCH 2/3] gnu: wlroots: add 0.18

From: Rutherther <[email-masked]>
Date: Sun, 08 Sep 2024 17:30:13 +0000

wlroots major versions are usually incompatible. With
change to 0.18 wlroots has a different .pc pkg-config file
name, wlroots-0.18.pc. That means any package using pkg-config
to search for wlroots won't be able to find it. So even if there
were no breaking changes inside wlroots code base, it means programs
cannot be compiled against different major version.

I've thus exposed every wlroots as a separate symbol without the need
for use of "wlroots" symbol, so every package can use major wlroots version
appropriate for its version. I've kept wlroots symbol to not break anything
that is currently using it for wlroots-0.17.

Change-Id: Id7983e872e91543cbfc2b585f3723fa9b287309f
---
 gnu/packages/wm.scm | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7d7ac3498f..238f4138ab 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1723,10 +1723,10 @@ (define-public polybar
 functionality to display information about the most commonly used services.")
     (license license:expat)))
 
-(define-public wlroots
+(define-public wlroots-0.18
   (package
     (name "wlroots")
-    (version "0.17.4")
+    (version "0.18.0")
     (source
      (origin
        (method git-fetch)
@@ -1735,9 +1735,8 @@ (define-public wlroots
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0niigjpy8xxrnw3v9b3bsksw2q3yy3qsa2xx0aazwpycw5zrff83"))
-         ;; This patch can be removed once hwdata in Guix supports pkg-config
-         (patches (search-patches "wlroots-hwdata-fallback.patch"))))
+        (base32 "13avi2805wrfkghgc7ar273p61svmm85k3g3hg9bf2gaxsz6f91f"))
+       (patches (search-patches "wlroots-hwdata-fallback.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -1784,9 +1783,25 @@ (define-public wlroots
 modules for building a Wayland compositor.")
     (license license:expat)))  ; MIT license
 
+(define-public wlroots-0.17
+  (package
+    (inherit wlroots-0.18)
+    (name "wlroots")
+    (version "0.17.4")
+    (source
+     (origin
+       (inherit (package-source wlroots-0.18))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.freedesktop.org/wlroots/wlroots")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0niigjpy8xxrnw3v9b3bsksw2q3yy3qsa2xx0aazwpycw5zrff83"))))))
+
 (define-public wlroots-0.16
   (package
-    (inherit wlroots)
+    (inherit wlroots-0.18)
     (name "wlroots-0.16")
     (version "0.16.2")
     (source
@@ -1803,7 +1818,7 @@ (define-public wlroots-0.16
 
 (define-public wlroots-0.15
   (package
-    (inherit wlroots)
+    (inherit wlroots-0.18)
     (name "wlroots-0.15")
     (version "0.15.1")
     (source
@@ -1816,6 +1831,8 @@ (define-public wlroots-0.15
        (sha256
         (base32 "00s73nhi3sc48l426jdlqwpclg41kx1hv0yk4yxhbzw19gqpfm1h"))))))
 
+(define-public wlroots wlroots-0.17)
+
 (define-public wl-mirror
   (package
     (name "wl-mirror")
-- 
2.46.0