civodul pushed a commit to branch master
in repository guix.

commit ecb8ca6266484d4f896f155b38d3c8ea122450da
Author: Romain GARBAGE <[email protected]>
AuthorDate: Wed Dec 18 10:37:39 2024 +0100

    gnu: openmpi@4: Hard-code file name of ‘ssh’ command.
    
    This patch fixes a runtime error when launching an MPI program using
    mpiexec/mpirun in an environment where the ssh command is not
    available.
    
    * gnu/packages/mpi.scm (openmpi-4)[inputs]: Add openssh-sans-x.
    (openmpi-4)[arguments]: Fix path in code.
    
    Change-Id: I65255186c37b6eaba3c283c7046163abc2cb38b7
    Signed-off-by: Ludovic Courtès <[email protected]>
---
 gnu/packages/mpi.scm | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 661531abb9..157bbfdecd 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -53,6 +53,7 @@
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -220,7 +221,8 @@ bind processes, and much more.")
                      gfortran
                      libfabric
                      libevent
-                     opensm)
+                     opensm
+                     openssh-sans-x)
                (if-supported psm)
                (if-supported psm2)
                (if-supported ucx)
@@ -291,6 +293,14 @@ bind processes, and much more.")
                            
'("./ompi/mca/io/romio321/src/io_romio321_component.c")
                          (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS")
                           "\"[elided to reduce closure]\""))))
+                   (add-before 'build 'ssh-absolute-path
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       ;; Avoid error at run time about 'ssh' not being found.
+                       (substitute* "orte/mca/plm/rsh/plm_rsh_component.c"
+                         (("mca_plm_rsh_component.agent = \"ssh : rsh\";")
+                          (format #f "mca_plm_rsh_component.agent = \"~a : 
rsh\";"
+                                  (search-input-file inputs
+                                                     "bin/ssh"))))))
                    (add-before 'build 'scrub-timestamps ;reproducibility
                      (lambda _
                        (substitute* '("ompi/tools/ompi_info/param.c"

Reply via email to