Subject: [bug#72877] [PATCH 4/8] gnu: python-slepc4py: Update to 3.21.1.

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

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

* gnu/packages/maths.scm (python-slepc4py): Update to 3.21.1.
[arguments]: Switch to gexps.  Replace ‘check’ phase.
[native-inputs]: New field.
[inputs]: Remove labels.  Add ‘petsc-openmpi’.

Change-Id: Ib6f1480415ac5128399c32c1974779b67edb5550
---
 gnu/packages/maths.scm | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 22e7fc5804..7249eb68da 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4042,31 +4042,32 @@ (define-public slepc-complex-openmpi
 (define-public python-slepc4py
   (package
     (name "python-slepc4py")
-    (version "3.16.1")
+    (version "3.21.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "slepc4py" version))
         (sha256
           (base32
-            "0fq997y73ymvcvdrxycp450pxwdgnqaw62gv9rwncfgsfplkvs9w"))))
+            "01vvpl8g73knkwnh6mbxd45vwcs4zsw814147fvgkvj30qkhx3mw"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             ;; Define path to PETSc installation.
-             (setenv "PETSC_DIR" (assoc-ref %build-inputs "petsc"))
-             ;; Define path to SLEPc installation.
-             (setenv "SLEPC_DIR" (assoc-ref %build-inputs "slepc"))
-             #t))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
-    (inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-petsc4py" ,python-petsc4py)
-       ("slepc" ,slepc-openmpi)))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'build 'pre-build
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; Define path to PETSc installation.
+                   (setenv "PETSC_DIR" (assoc-ref inputs "petsc-openmpi"))
+                   ;; Define path to SLEPc installation.
+                   (setenv "SLEPC_DIR" (assoc-ref inputs "slepc-openmpi"))))
+               (add-before 'check 'mpi-setup
+                 #$%openmpi-setup)
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "python" "test/runtests.py")))))))
+    (native-inputs (list python-cython-3))
+    (inputs (list python-numpy python-petsc4py petsc-openmpi slepc-openmpi))
     (home-page "https://bitbucket.org/slepc/slepc4py/")
     (synopsis "Python bindings for SLEPc")
     (description "SLEPc, the Scalable Library for Eigenvalue Problem
-- 
2.45.2