guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 05fc558fb269fb86c64145b8f6acea944ae5ae64
Author: Andreas Enge <[email protected]>
AuthorDate: Wed Sep 17 17:02:04 2025 +0200

    gnu: abseil-cpp-20220623: Remove inheritance.
    
    * gnu/packages/cpp.scm (abseil-cpp-20220623): Remove inheritance from
    abseil-cpp-20200923.3 while keeping the derivation unchanged.
    (abseil-cpp-20200923.3): Update comment.
    
    Change-Id: I7d5fad14211127272769a02461c6f96cd8a073e4
---
 gnu/packages/cpp.scm | 83 +++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 60 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9f177f6b9f..05f564dcfb 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2025 Nicolas Graves <[email protected]>
 ;;; Copyright © 2025 Romain Garbage <[email protected]>
 ;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <[email protected]>
+;;; Copyright © 2025 Andreas Enge <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2042,8 +2043,7 @@ point and then, after each tween step, plugging back the 
result.")
     (license license:expat)))
 
 (define-public abseil-cpp-20200923.3
-  ;; This is not needed anymore except as a base of inheritance for
-  ;; abseil-cpp-20220623.
+  ;; This is not needed anymore.
   (package
     (name "abseil-cpp")
     (version "20200923.3")
@@ -2098,27 +2098,64 @@ Google's C++ code base.")
     (license license:asl2.0)))
 
 (define-public abseil-cpp-20220623
-  (let ((base abseil-cpp-20200923.3))
-    (package
-      (inherit base)
-      (name "abseil-cpp")
-      (version "20220623.2")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/abseil/abseil-cpp";)
-                      (commit version)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr"))
-                (patches
-                 (search-patches 
"abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:configure-flags flags)
-          `(cons* "-DABSL_BUILD_TESTING=ON"
-                  (delete "-DABSL_RUN_TESTS=ON" ,flags))))))))
+  (package
+    (name "abseil-cpp")
+    (version "20220623.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/abseil/abseil-cpp";)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr"))
+              (patches
+               (search-patches 
"abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+      (list
+        #:configure-flags
+          ;; The following convoluted expression has been crafted to avoid
+          ;; changing the derivation when removing inheritance from
+          ;; abseil-cpp-20200923.3.
+          #~(cons*
+              "-DABSL_BUILD_TESTING=ON"
+              (delete
+                "-DABSL_RUN_TESTS=ON"
+                (list "-DBUILD_SHARED_LIBS=ON"
+                      "-DABSL_RUN_TESTS=ON"
+                      "-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
+                       ;; Needed, else we get errors like:
+                       ;; ld: 
CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
+                       ;;   undefined reference to symbol 
'_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
+                       ;; ld: /gnu/store/...-googletest-1.10.0/lib/libgmock.so:
+                       ;;   error adding symbols: DSO missing from command line
+                       ;; collect2: error: ld returned 1 exit status
+                       "-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")))
+        #:phases
+        #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-max
+            (lambda _
+              (substitute* "absl/debugging/failure_signal_handler.cc"
+                (("std::max\\(SIGSTKSZ, 65536\\)")
+                 "std::max<size_t>(SIGSTKSZ, 65536)"))))
+          (add-before 'configure 'remove-gtest-check
+            ;; The CMakeLists fails to find our googletest for some reason, but
+            ;; it works nonetheless.
+            (lambda _
+              (substitute* "CMakeLists.txt"
+                (("check_target\\(gtest\\)") "")
+                (("check_target\\(gtest_main\\)") "")
+                (("check_target\\(gmock\\)") "")))))))
+    (native-inputs
+     (list googletest))
+    (home-page "https://abseil.io";)
+    (synopsis "Augmented C++ standard library")
+    (description "Abseil is a collection of C++ library code designed to
+augment the C++ standard library.  The Abseil library code is collected from
+Google's C++ code base.")
+    (license license:asl2.0)))
 
 (define-public abseil-cpp
   (let ((base abseil-cpp-20220623))

Reply via email to