~ruther/guix-local

f85e9b104a7d1d910a8bff98f8e37b9ffbede6ed — Ludovic Courtès 2 years ago 3863992
gnu: prrte: Record the absolute file name of ‘prted’.

Previously a command like:

  guix shell --pure openmpi@5 openssh intel-mpi-benchmarks \
    --with-input=openmpi@4=openmpi@5 slurm -- \
    salloc -N2 -- mpirun -np 2 --map-by node IMB-MPI1 PingPong

would silently fail due to ‘prted’ not being found in $PATH.

* gnu/packages/parallel.scm (prrte)[arguments]: Add
‘patch-prted-reference’ phase.

Change-Id: Iff30cb5a4dcc9e9cfe6638d518ee4f19561289a0
Signed-off-by: Andreas Enge <andreas@enge.fr>
1 files changed, 9 insertions(+), 1 deletions(-)

M gnu/packages/parallel.scm
M gnu/packages/parallel.scm => gnu/packages/parallel.scm +9 -1
@@ 727,7 727,15 @@ commonly needed services in distributed and parallel computing systems.")
                    (("_ABSOLUTE")
                     "")
                    (("PRTE_CONFIGURE_CLI")
                     "\"[elided to reduce closure]\"")))))
                     "\"[elided to reduce closure]\""))))
              (add-after 'unpack 'patch-prted-reference
                (lambda _
                  ;; Record the absolute file name of 'prted' instead of
                  ;; assuming it will be found in $PATH at run time.
                  (substitute* "src/runtime/prte_mca_params.c"
                    (("prte_launch_agent =.*")
                     (string-append "prte_launch_agent = \""
                                    #$output "/bin/prted\";\n"))))))

          #:disallowed-references (list (canonical-package gcc))))
   (inputs (list libevent