summary refs log tree commit diff
path: root/gnu/packages/mpi.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2023-02-23 15:49:09 +0100
committerLudovic Courtès <ludo@gnu.org>2023-02-23 16:31:36 +0100
commitf45fc72c282bc14da7212b4acb8fe9707e53aad0 (patch)
tree4eafe6c53bd0ce6a7f32a11a2b2881418b4eae6f /gnu/packages/mpi.scm
parentb8d3b9d14b128645756a8102e2e5f8938495b942 (diff)
downloadguix-f45fc72c282bc14da7212b4acb8fe9707e53aad0.tar.gz
gnu: openmpi: Use gexps.
* gnu/packages/mpi.scm (openmpi)[arguments]: Use gexps.
Diffstat (limited to 'gnu/packages/mpi.scm')
-rw-r--r--gnu/packages/mpi.scm130
1 files changed, 66 insertions, 64 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 70b14c30b3..e8c20919d7 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -25,6 +25,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages mpi)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
@@ -191,13 +192,13 @@ bind processes, and much more.")
     (version "4.1.4")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://www.open-mpi.org/software/ompi/v"
-                          (version-major+minor version)
-                          "/downloads/openmpi-" version ".tar.bz2"))
-      (sha256
-       (base32 "03ckngrff1cl0l81vfvrfhp99rbgk7s0633kr1l468yibwbjx4cj"))
-      (patches (search-patches "openmpi-mtl-priorities.patch"))))
+       (method url-fetch)
+       (uri (string-append "https://www.open-mpi.org/software/ompi/v"
+                           (version-major+minor version)
+                           "/downloads/openmpi-" version ".tar.bz2"))
+       (sha256
+        (base32 "03ckngrff1cl0l81vfvrfhp99rbgk7s0633kr1l468yibwbjx4cj"))
+       (patches (search-patches "openmpi-mtl-priorities.patch"))))
 
     (properties
      ;; Tell the 'generic-html' updater to monitor this URL for updates.
@@ -228,68 +229,69 @@ bind processes, and much more.")
      (list pkg-config perl))
     (outputs '("out" "debug"))
     (arguments
-     `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work
-                           "--with-sge"
+     (list
+      #:configure-flags #~`("--enable-mpi-ext=affinity" ;cr doesn't work
+                            "--with-sge"
 
-                           ,@(if ,(package? (this-package-input "valgrind"))
-                               `("--enable-memchecker"
-                                 "--with-valgrind")
-                               `("--without-valgrind"))
+                            #$@(if (package? (this-package-input "valgrind"))
+                                   #~("--enable-memchecker"
+                                      "--with-valgrind")
+                                   #~("--without-valgrind"))
 
-                           "--with-hwloc=external"
-                           "--with-libevent"
+                            "--with-hwloc=external"
+                            "--with-libevent"
 
-                           ;; Help 'orterun' and 'mpirun' find their tools
-                           ;; under $prefix by default.
-                           "--enable-mpirun-prefix-by-default"
+                            ;; Help 'orterun' and 'mpirun' find their tools
+                            ;; under $prefix by default.
+                            "--enable-mpirun-prefix-by-default"
 
-                           ;; InfiniBand support
-                           "--enable-openib-control-hdr-padding"
-                           "--enable-openib-dynamic-sl"
-                           "--enable-openib-udcm"
-                           "--enable-openib-rdmacm"
-                           "--enable-openib-rdmacm-ibaddr"
+                            ;; InfiniBand support
+                            "--enable-openib-control-hdr-padding"
+                            "--enable-openib-dynamic-sl"
+                            "--enable-openib-udcm"
+                            "--enable-openib-rdmacm"
+                            "--enable-openib-rdmacm-ibaddr"
 
-                           ;; Enable support for SLURM's Process Manager
-                           ;; Interface (PMI).
-                           ,(string-append "--with-pmi="
-                                           (assoc-ref %build-inputs "slurm")))
-       #:phases (modify-phases %standard-phases
-                  ;; opensm is needed for InfiniBand support.
-                  (add-after 'unpack 'find-opensm-headers
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (setenv "C_INCLUDE_PATH"
-                              (search-input-directory inputs
-                                                      "/include/infiniband"))
-                      (setenv "CPLUS_INCLUDE_PATH"
-                              (search-input-directory inputs
-                                                      "/include/infiniband"))))
-                  (add-before 'build 'remove-absolute
-                    (lambda _
-                      ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
-                      ;; etc.) to reduce the closure size.  See
-                      ;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html>
-                      ;; and
-                      ;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>.
-                      (substitute* '("orte/tools/orte-info/param.c"
-                                     "oshmem/tools/oshmem_info/param.c"
-                                     "ompi/tools/ompi_info/param.c")
-                        (("_ABSOLUTE") ""))
-                      ;; Avoid valgrind (which pulls in gdb etc.).
-                      (substitute*
-                          '("./ompi/mca/io/romio321/src/io_romio321_component.c")
-                        (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS")
-                         "\"[elided to reduce closure]\""))))
-                  (add-before 'build 'scrub-timestamps ;reproducibility
-                    (lambda _
-                      (substitute* '("ompi/tools/ompi_info/param.c"
-                                     "orte/tools/orte-info/param.c"
-                                     "oshmem/tools/oshmem_info/param.c")
-                        ((".*(Built|Configured) on.*") ""))))
-                  (add-after 'install 'remove-logs ;reproducibility
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let ((out (assoc-ref outputs "out")))
-                        (for-each delete-file (find-files out "config.log"))))))))
+                            ;; Enable support for SLURM's Process Manager
+                            ;; Interface (PMI).
+                            ,(string-append "--with-pmi="
+                                            #$(this-package-input "slurm")))
+      #:phases #~(modify-phases %standard-phases
+                   ;; opensm is needed for InfiniBand support.
+                   (add-after 'unpack 'find-opensm-headers
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       (setenv "C_INCLUDE_PATH"
+                               (search-input-directory inputs
+                                                       "/include/infiniband"))
+                       (setenv "CPLUS_INCLUDE_PATH"
+                               (search-input-directory inputs
+                                                       "/include/infiniband"))))
+                   (add-before 'build 'remove-absolute
+                     (lambda _
+                       ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
+                       ;; etc.) to reduce the closure size.  See
+                       ;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html>
+                       ;; and
+                       ;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>.
+                       (substitute* '("orte/tools/orte-info/param.c"
+                                      "oshmem/tools/oshmem_info/param.c"
+                                      "ompi/tools/ompi_info/param.c")
+                         (("_ABSOLUTE") ""))
+                       ;; Avoid valgrind (which pulls in gdb etc.).
+                       (substitute*
+                           '("./ompi/mca/io/romio321/src/io_romio321_component.c")
+                         (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS")
+                          "\"[elided to reduce closure]\""))))
+                   (add-before 'build 'scrub-timestamps ;reproducibility
+                     (lambda _
+                       (substitute* '("ompi/tools/ompi_info/param.c"
+                                      "orte/tools/orte-info/param.c"
+                                      "oshmem/tools/oshmem_info/param.c")
+                         ((".*(Built|Configured) on.*") ""))))
+                   (add-after 'install 'remove-logs ;reproducibility
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let ((out (assoc-ref outputs "out")))
+                         (for-each delete-file (find-files out "config.log"))))))))
     (home-page "https://www.open-mpi.org")
     (synopsis "MPI-3 implementation")
     (description