Subject: [bug#72877] [PATCH 1/8] gnu: petsc: Update to 3.21.4.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 29 Aug 2024 17:39:34 +0200

From: Ludovic Courtès <[email-masked]>

* gnu/packages/maths.scm (petsc): Update to 3.21.4.  Update source URL.
[arguments]: Move ‘check’ phase after ‘install’.
[home-page]: Update.

Change-Id: I8e7244ad4f8566119bc259f1dccec9589760a491
---
 gnu/packages/maths.scm | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 557d9acc48..4be9ad9d7e 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3510,15 +3510,15 @@ (define-public maxflow
 (define-public petsc
   (package
     (name "petsc")
-    (version "3.16.1")
+    (version "3.21.4")
     (source
      (origin
       (method url-fetch)
       ;; The *-lite-* tarball does not contain the *large* documentation
-      (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
+      (uri (string-append "https://web.cels.anl.gov/projects/petsc/download/release-snapshots/"
                           "petsc-lite-" version ".tar.gz"))
       (sha256
-       (base32 "0sm03vpg010q9icidiq587n325m0598cj6hab2rdv85nwyygg74h"))))
+       (base32 "1394ybnchawb2kghx4xk36gw26930aa73lxyw96diiqp8rnhgbm9"))))
     (outputs '("out"                    ; libraries and headers
                "examples"))             ; ~30MiB of examples
     (build-system gnu-build-system)
@@ -3614,6 +3614,16 @@ (define-public petsc
                 (("([[:graph:]]+)/bin/diff") "diff")
                 (("([[:graph:]]+)/bin/sed") "sed")
                 (("([[:graph:]]+)/bin/gfortran") "gfortran")))))
+
+          ;; Some of the tests get linked with '-L$prefix/lib -lpetsc' (even
+          ;; though that's unnecessary because they also explicitly link
+          ;; against 'libpetsc.so' from the build directory).  To work around
+          ;; it, run tests after installation.  See
+          ;; <https://gitlab.com/petsc/petsc/-/issues/1634>.
+          (delete 'check)
+          (add-after 'install 'check
+            (assoc-ref %standard-phases 'check))
+
           (add-after 'install 'move-examples
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
@@ -3622,7 +3632,7 @@ (define-public petsc
                      (exdir' (string-append examples "/share/petsc/examples")))
                 (copy-recursively exdir exdir')
                 (delete-file-recursively exdir)))))))
-    (home-page "https://www.mcs.anl.gov/petsc")
+    (home-page "https://petsc.org")
     (synopsis "Library to solve PDEs")
     (description "PETSc, pronounced PET-see (the S is silent), is a suite of
 data structures and routines for the scalable (parallel) solution of
-- 
2.45.2