Subject: [bug#32619] [PATCH] gnu: petsc-openmpi: Configure with support for hdf5 data format.

From: Paul Garlick <[email-masked]>
Date: Mon, 3 Sep 2018 11:57:38 +0100

* gnu/packages/maths.scm (petsc-openmpi)[inputs]: Add
hdf5-parallel-openmpi.
[arguments]: Add '--with-hdf5-include' and '--with-hdf5-lib'
flags.  Add 'set-test-environment' phase.
---
 gnu/packages/maths.scm | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 377e47b..465bf92 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2016 Leo Famulari <[email-masked]>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <[email-masked]>
-;;; Copyright © 2017 Paul Garlick <[email-masked]>
+;;; Copyright © 2017, 2018 Paul Garlick <[email-masked]>
 ;;; Copyright © 2017 Nils Gillmann <[email-masked]>
 ;;; Copyright © 2017 Ben Woodcroft <[email-masked]>
 ;;; Copyright © 2017 Theodoros Foradis <[email-masked]>
@@ -1690,6 +1690,7 @@ scientific applications modeled by partial differential equations.")
     (name "petsc-openmpi")
     (inputs
      `(("openmpi" ,openmpi)
+       ("hdf5" ,hdf5-parallel-openmpi)
        ,@(package-inputs petsc)))
     (arguments
      (substitute-keyword-arguments (package-arguments petsc)
@@ -1697,7 +1698,21 @@ scientific applications modeled by partial differential equations.")
         ``("--with-mpiexec=mpirun"
            ,(string-append "--with-mpi-dir="
                            (assoc-ref %build-inputs "openmpi"))
-           ,@(delete "--with-mpi=0" ,cf)))))
+           ,(string-append "--with-hdf5-include="
+                           (assoc-ref %build-inputs "hdf5") "/include")
+           ,(string-append "--with-hdf5-lib="
+                           (assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a")
+           ,@(delete "--with-mpi=0" ,cf)))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'check 'set-test-environment
+             (lambda _
+               ;; By default, running the test suite would fail because 'ssh'
+               ;; could not be found in $PATH.  Define this variable to
+               ;; placate Open MPI without adding a dependency on OpenSSH (the
+               ;; agent isn't used anyway.)
+               (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+               #t))))))
     (synopsis "Library to solve PDEs (with MPI support)")))
 
 (define-public petsc-complex-openmpi
-- 
1.8.3.1