Subject: [PATCH] gnu: Add [email-masked]

From: nomike <[email-masked]>
Date: Sun, 25 May 2025 19:01:21 +0200

This adds a package for catch2 at version 3.8.1. As a lot of packages depend
on catch2 v. 3.5.3 this version is left as the default. As this is likely to
change in the future, version 3.8.1 is the base package and version 3.5.3
inherits from it.

* gnu/packages/check.scm
  (catch2-3.8.1): New variable, renamed from catch2-3, updated to v. 3.8.1
  (catch2-3): New variable, inherit from catch2-3.8.1

Change-Id: If66aa68039137e32fc760d209fdaa1f34b04f39e
---
I have previously raised #77772, but just updating catch2 to the new version
would trigger way too many rebuilds. I thus file this new patch, which will
update catch2 to 3.8.1, but under a new variable name. The old variable will
be used for a derivative of the new package with the old version.

This way no rebuild should be necessary and the new package can be slowly
transitioned to.

Maybe someone with more experience in guix can decide which one is the better
way forward and can close the other ticket.
 gnu/packages/check.scm | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 0092668ca7..5e94b738f9 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -55,6 +55,7 @@
 ;;; Copyright © 2024, 2025 gemmaro <[email-masked]>
 ;;; Copyright © 2024 Ashvith Shetty <[email-masked]>
 ;;; Copyright © 2025 Jordan Moore <[email-masked]>
+;;; Copyright © 2025 nomike Postmann <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -763,10 +764,10 @@ (define-public cbehave
 pattern.")
       (license license:apsl2))))
 
-(define-public catch2-3
+(define-public catch2-3.8.1
   (package
     (name "catch2")
-    (version "3.5.3")
+    (version "3.8.1")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -776,7 +777,7 @@ (define-public catch2-3
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))
+                "0v1k14n02aiw4rv5sxhc5612cjhkdj59cjpm50qfxhapsdv54n3f"))))
     (build-system cmake-build-system)
     (arguments
      (list
@@ -790,6 +791,23 @@ (define-public catch2-3
 a multi-paradigm automated test framework for C++ and Objective-C.")
     (license license:boost1.0)))
 
+
+(define-public catch2-3
+  (package
+   (inherit catch2-3.8.1)
+   (name "catch2")
+   (version "3.5.3")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "https://github.com/catchorg/Catch2")
+                  (commit (string-append "v" version))))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))))
+
+
 (define-public cmdtest
   (package
     (name "cmdtest")
-- 
2.49.0