Subject: [PATCH] gnu: hdf5-parallel-openmpi: Really enable parallel build.
From: Paul Garlick <[email-masked]>
To: [email-masked]
Cc: Paul Garlick <[email-masked]>
Date: Thu, 13 Sep 2018 21:03:25 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

This fix ensures that the H5_HAVE_PARALLEL identifier is correctly set
in the file H5pubconf.h.

* gnu/packages/maths.scm (hdf5-parallel-openmpi)[arguments]: Add
the "--enable-parallel" flag to the list of configure flags.  Remove
the incompatible "--enable-cxx" flag.  Add 'mpi-setup' phase.  Replace
the 'split' phase, omitting the references to the h5fc script which is
not present.
---
 gnu/packages/maths.scm | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index af41093..85d3884 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1034,10 +1034,13 @@ Swath).")
      `(("mpi" ,openmpi)
        ,@(package-inputs hdf5)))
     (arguments
-     (substitute-keyword-arguments `(#:configure-flags '("--enable-parallel")
-                                     ,@(package-arguments hdf5))
+     (substitute-keyword-arguments (package-arguments hdf5)
+       ((#:configure-flags flags)
+        ``("--enable-parallel" ,@(delete "--enable-cxx" ,flags)))
        ((#:phases phases)
         `(modify-phases ,phases
+           (add-after 'build 'mpi-setup
+	     ,%openmpi-setup)
            (add-before 'check 'patch-tests
              (lambda _
                ;; OpenMPI's mpirun will exit with non-zero status if it
@@ -1051,7 +1054,36 @@ Swath).")
                   (string-append front back "\n")))
                (substitute* "tools/h5diff/testph5diff.sh"
                  (("/bin/sh") (which "sh")))
-               #t))))))
+               #t))
+           (replace 'split
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                ;; Move all fortran-related files
+                (let* ((out (assoc-ref outputs "out"))
+                       (bin (string-append out "/bin"))
+                       (lib (string-append out "/lib"))
+                       (inc (string-append out "/include"))
+                       (ex (string-append out "/share/hdf5_examples/fortran"))
+                       (fort (assoc-ref outputs "fortran"))
+                       (flib (string-append fort "/lib"))
+                       (finc (string-append fort "/include"))
+                       (fex (string-append fort "/share/hdf5_examples/fortran")))
+                  (mkdir-p flib)
+                  (mkdir-p finc)
+                  (mkdir-p fex)
+                  (for-each (lambda (file)
+                              (rename-file file
+                                           (string-append flib "/" (basename file))))
+                            (find-files lib ".*fortran.*"))
+                  (for-each (lambda (file)
+                              (rename-file file
+                                           (string-append finc "/" (basename file))))
+                            (find-files inc ".*mod"))
+                  (for-each (lambda (file)
+                              (rename-file file
+                                           (string-append fex "/" (basename file))))
+                            (find-files ex ".*"))
+                  (delete-file-recursively ex))
+                #t))))))
     (synopsis "Management suite for data with parallel IO support")))
 
 (define-public h5check
-- 
1.8.3.1