Subject: [PATCH 3/5] gnu: elemental: Update to 0.87.7-0.6eb15a0.

From: Sharlatan Hellseher <[email-masked]>
Date: Thu, 2 Nov 2023 15:37:48 +0000

The build of elemental is failed on GCC 7+:
https://github.com/elemental/Elemental/issues/254

Fixed but not released yet in merge request:
https://github.com/elemental/Elemental/pull/259

* gnu/packages/maths.scm (elemental): Update to 0.87.7-0.6eb15a0.

Change-Id: I333f1de160489035f1a8875173abdd57c03ef777
---
 gnu/packages/maths.scm | 109 +++++++++++++++++++++--------------------
 1 file changed, 57 insertions(+), 52 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ed1708c77b..6b9725bdcc 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -7593,60 +7593,65 @@ (define-public elpa-openmpi
     (synopsis "Eigenvalue solvers for symmetric matrices (with MPI support)")))
 
 (define-public elemental
-  (package
-    (name "elemental")
-    (version "0.87.7")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/elemental/Elemental")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1687xpjjzig27y2pnqv7hv09smpijyfdpz7qjgmcxf4shfajlfkc"))))
-    (build-system cmake-build-system)
-    (home-page "https://github.com/elemental/Elemental")
-    (native-inputs
-     (list gfortran))
-    (inputs
-     `(("blas" ,openblas)
-       ("gfortran:lib" ,gfortran "lib")
-       ("gmp" ,gmp)
-       ("lapack" ,lapack)
-       ("metis" ,metis)
-       ("mpc" ,mpc)
-       ("mpfr" ,mpfr)
-       ("mpi" ,openmpi)
-       ("qd" ,qd)))
-    (arguments
-     `(#:build-type "Release"           ;default RelWithDebInfo not supported
-       #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES"
-                           "-DEL_AVOID_COMPLEX_MPI:BOOL=NO"
-                           "-DEL_CACHE_WARNINGS:BOOL=YES"
-                           "-DEL_TESTS:BOOL=YES"
-                           "-DCMAKE_INSTALL_LIBDIR=lib"
-                           "-DGFORTRAN_LIB=gfortran")
-       #:phases (modify-phases %standard-phases
-                  (add-before 'check 'mpi-setup
-                    ,%openmpi-setup)
-                  (add-before 'check 'setup-tests
-                    (lambda _
-                      ;; Parallelism is done at the MPI layer.
-                      (setenv "OMP_NUM_THREADS" "1")
-                      #t))
-                  (add-after 'install 'remove-tests
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; Tests are installed, with no easy configuration
-                      ;; switch to prevent this, so delete them.
-                      (delete-file-recursively
-                        (string-append (assoc-ref outputs "out") "/bin"))
-                      #t)))))
-    (synopsis "Dense and sparse-direct linear algebra and optimization")
-    (description "Elemental is a modern C++ library for distributed-memory
+  ;; The build of 0.87.7 is failed for a long time due to new version of GCC. The
+  ;; latest commit has fixes.
+  ;; See https://github.com/elemental/Elemental/issues/254
+  (let ((commit "6eb15a0da2a4998bf1cf971ae231b78e06d989d9")
+        (revision "0"))
+    (package
+      (name "elemental")
+      (version (git-version "0.87.7" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/elemental/Elemental")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "06xcs4ic60ndcf2hq19gr8yjwdsnphpcyhapab41rkw726z4lm7p"))))
+      (build-system cmake-build-system)
+      (home-page "https://github.com/elemental/Elemental")
+      (native-inputs
+       (list gfortran))
+      (inputs
+       `(("blas" ,openblas)
+         ("gfortran:lib" ,gfortran "lib")
+         ("gmp" ,gmp)
+         ("lapack" ,lapack)
+         ("metis" ,metis)
+         ("mpc" ,mpc)
+         ("mpfr" ,mpfr)
+         ("mpi" ,openmpi)
+         ("qd" ,qd)))
+      (arguments
+       `(#:build-type "Release"           ;default RelWithDebInfo not supported
+         #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES"
+                             "-DEL_AVOID_COMPLEX_MPI:BOOL=NO"
+                             "-DEL_CACHE_WARNINGS:BOOL=YES"
+                             "-DEL_TESTS:BOOL=YES"
+                             "-DCMAKE_INSTALL_LIBDIR=lib"
+                             "-DGFORTRAN_LIB=gfortran")
+         #:phases (modify-phases %standard-phases
+                    (add-before 'check 'mpi-setup
+                      ,%openmpi-setup)
+                    (add-before 'check 'setup-tests
+                      (lambda _
+                        ;; Parallelism is done at the MPI layer.
+                        (setenv "OMP_NUM_THREADS" "1")
+                        #t))
+                    (add-after 'install 'remove-tests
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        ;; Tests are installed, with no easy configuration
+                        ;; switch to prevent this, so delete them.
+                        (delete-file-recursively
+                         (string-append (assoc-ref outputs "out") "/bin"))
+                        #t)))))
+      (synopsis "Dense and sparse-direct linear algebra and optimization")
+      (description "Elemental is a modern C++ library for distributed-memory
 dense and sparse-direct linear algebra, conic optimization, and lattice
 reduction.")
-    (license license:bsd-2)))
+      (license license:bsd-2))))
 
 (define-public mcrl2
   (package
-- 
2.41.0