guix_mirror_bot pushed a commit to branch master
in repository guix.
commit c9f41f72023bc7f98e6abd23eb2167051cccef73
Author: Ludovic Courtès <[email protected]>
AuthorDate: Thu Jan 8 14:29:12 2026 +0100
gnu: elpa: Update to 2025.06.001.
* gnu/packages/maths.scm (elpa): Update to 2025.06.001.
[source]: Switch to ‘git-fetch’.
[native-inputs]: Add Autotools and Python; remove labels.
[inputs]: Remove labels.
[arguments]: Use gexps.
[properties]: New field.
(elpa-openmpi): Use ‘package/inherit’.
[inputs]: Remove labels.
[arguments]: Use gexps.
Change-Id: Ie12fa7242e15779e8dd3965822f7699f6078e39a
Signed-off-by: Ludovic Courtès <[email protected]>
Merges: #5475
---
gnu/packages/maths.scm | 159 ++++++++++++++++++++++++++-----------------------
1 file changed, 85 insertions(+), 74 deletions(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 55b3f56a86..07eedbede0 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2015 Fabian Harfert <[email protected]>
;;; Copyright © 2016 Roel Janssen <[email protected]>
;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <[email protected]>
-;;; Copyright © 2016-2025 Ludovic Courtès <[email protected]>
+;;; Copyright © 2016-2026 Ludovic Courtès <[email protected]>
;;; Copyright © 2016 Leo Famulari <[email protected]>
;;; Copyright © 2016, 2017 Thomas Danckaert <[email protected]>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Paul Garlick
<[email protected]>
@@ -8705,92 +8705,103 @@ theories} (SMT) solver. It provides a C/C++ API, as
well as Python bindings.")
(define-public elpa
(package
(name "elpa")
- (version "2018.11.001")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://elpa.mpcdf.mpg.de/software/"
- "tarball-archive/Releases/"
- version "/elpa-" version ".tar.gz"))
- (sha256
- (base32
- "05hv3v5i6xmziaizw350ff72y1c3k662r85fm3xfdrkclj5zw9yc"))))
+ (version "2025.06.001")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.mpcdf.mpg.de/elpa/elpa")
+ (commit (string-append "new_release_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1j2mqa8g76z6xmwji99320v6q98p823glvxjsdcdpaji59wgvdql"))))
(build-system gnu-build-system)
- (native-inputs
- `(("fortran" ,gfortran)
- ("perl" ,perl))) ;for configure and deps
- (inputs
- `(("blas" ,openblas)))
(arguments
- `(#:configure-flags
- `("--enable-openmp"
- "--with-mpi=no"
- ;; ELPA unfortunately does not support runtime dispatch, so we can
- ;; only enable the "generic" kernels. See the "Cross compilation"
- ;; section of INSTALL.md.
- "--enable-generic"
- "--disable-sse" "--disable-sse-assembly" ;Require SSE3
- "--disable-avx" "--disable-avx2" "--disable-avx512"
- ,(string-append "CFLAGS=-O3 "
- "-funsafe-loop-optimizations
-funsafe-math-optimizations "
- "-ftree-vect-loop-version -ftree-vectorize "
- ,(let ((system (or (%current-target-system)
- (%current-system))))
- (cond
- ((or (string-prefix? "x86_64" system)
- (string-prefix? "i686" system))
- "-msse2")
- (else "")))))
- #:parallel-tests? #f ;tests are multi-threaded, via BLAS
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-header-generation
- (lambda _
- (substitute* "configure"
- (("^ *make.*top_srcdir=\"\\$srcdir\"" &)
- (string-append & " CPP=\"$CPP\"")))
- #t))
- (add-before 'check 'setup-tests
- (lambda _
- ;; Decrease test time and RAM use by computing fewer eigenvalues.
- ;; The flags are (MATRIX-SIZE, EIGENVALUES, BLOCK-SIZE), where
- ;; the default is (500, 250, 16) for C tests and (5000, 150, 16)
- ;; for Fortran. This also causes several tests to pass that
- ;; otherwise would otherwise fail with matrix size 5000; possibly
- ;; due to floating point tolerances that are too tight.
- (setenv "TEST_FLAGS" "1500 50 16") ;from elpa.spec
- (setenv "OMP_NUM_THREADS" (number->string (parallel-job-count)))
- (substitute* "Makefile"
- ;; Test scripts are generated, patch the shebang
- (("#!/bin/bash") (string-append "#!" (which "sh"))))
- #t)))))
+ (list #:configure-flags
+ #~`("--enable-openmp" "--with-mpi=no"
+ ;; ELPA unfortunately does not support runtime dispatch, so we
+ ;; can only enable the "generic" kernels. See the "Cross
+ ;; compilation" section of INSTALL.md.
+ "--enable-generic-kernels"
+ "--disable-sse"
+ "--disable-sse-assembly" ;Require SSE3
+ "--disable-avx"
+ "--disable-avx2"
+ "--disable-avx512"
+ #$(string-append "CFLAGS=-O3 -funsafe-loop-optimizations "
+ "-funsafe-math-optimizations "
+ "-ftree-vect-loop-version -ftree-vectorize "
+ (let ((system (or (%current-target-system)
+ (%current-system))))
+ (cond
+ ((or (string-prefix? "x86_64" system)
+ (string-prefix? "i686" system))
+ "-msse2")
+ (else "")))))
+ #:parallel-tests? #f ;tests are multi-threaded, via BLAS
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'bootstrap 'patch-shebangs-early
+ (lambda _
+ (patch-shebang "generate_automake_test_programs.py")))
+ (add-before 'configure 'patch-header-generation
+ (lambda _
+ (substitute* "configure"
+ (("^ *make.*top_srcdir=\"\\$srcdir\"" &)
+ (string-append & " CPP=\"$CPP\""))) #t))
+ (add-before 'check 'setup-tests
+ (lambda _
+ ;; Decrease test time and RAM use by computing fewer
+ ;; eigenvalues. The flags are (MATRIX-SIZE, EIGENVALUES,
+ ;; BLOCK-SIZE), where the default is (500, 250, 16) for C
+ ;; tests and (5000, 150, 16) for Fortran. This also causes
+ ;; several tests to pass that otherwise would otherwise
+ ;; fail with matrix size 5000; possibly due to floating
+ ;; point tolerances that are too tight.
+ (setenv "TEST_FLAGS" "1500 50 16") ;from elpa.spec
+ (setenv "OMP_NUM_THREADS"
+ (number->string (parallel-job-count)))
+ (substitute* "Makefile"
+ ;; Test scripts are generated, patch the shebang
+ (("#!/bin/bash")
+ (string-append "#!" (which "sh")))))))))
+ (native-inputs
+ (list autoconf-2.71
+ automake
+ libtool
+ gfortran
+ perl
+ python))
+ (inputs (list openblas))
(home-page "https://elpa.mpcdf.mpg.de")
(synopsis "Eigenvalue solvers for symmetric matrices")
(description
"The ELPA library provides efficient and scalable direct eigensolvers for
symmetric matrices.")
- (license license:lgpl3)))
+ (license license:lgpl3)
+ (properties '((tunable? . #t)))))
(define-public elpa-openmpi
- (package (inherit elpa)
+ (package/inherit elpa
(name "elpa-openmpi")
(inputs
- `(("mpi" ,openmpi)
- ("scalapack" ,scalapack)
- ,@(package-inputs elpa)))
+ (modify-inputs (package-inputs elpa)
+ (prepend openmpi scalapack zlib)))
(arguments
(substitute-keyword-arguments (package-arguments elpa)
- ((#:configure-flags cf '())
- `(cons "--with-mpi=yes" (delete "--with-mpi=no" ,cf)))
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-before 'check 'mpi-setup
- (lambda _
- ;; Tests use 2 mpi tasks by default, use our remaining build
- ;; cores as OpenMP threads.
- (setenv "OMP_NUM_THREADS" (number->string
- (max (quotient (parallel-job-count)
2)
- 1)))
- (,%openmpi-setup)))))))
+ ((#:configure-flags cf #~())
+ #~(cons "--with-mpi=yes"
+ (delete "--with-mpi=no" #$cf)))
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'mpi-setup
+ (lambda _
+ ;; Tests use 2 mpi tasks by default, use our remaining build
+ ;; cores as OpenMP threads.
+ (setenv "OMP_NUM_THREADS"
+ (number->string (max (quotient (parallel-job-count) 2)
+ 1)))
+ (#$%openmpi-setup)))))))
(synopsis "Eigenvalue solvers for symmetric matrices (with MPI support)")))
(define-public elemental