Subject: [bug#72766] [PATCH v3 2/2] gnu: slurm: Move client executables into separate output.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 24 Oct 2024 12:01:24 +0200

Hi Arun,

Arun Isaac <[email-masked]> skribis:

> * gnu/packages/parallel.scm (slurm)[outputs]: Add client.
> [arguments]: Add move-client-executables phase.
>
> Change-Id: Id7441b0b34a5b8433e4c38bd5c56e4ca1fec587c

[...]

> +    (outputs '("out" "client"))
>      (arguments
>       (list #:configure-flags
>             #~(list "--enable-pam"
> @@ -291,7 +292,17 @@ (define-public slurm
>                     (invoke "make" "install" "-C" "contribs/pmi")
>  
>                     ;; Others expect pmi2.
> -                   (invoke "make" "install" "-C" "contribs/pmi2"))))))
> +                   (invoke "make" "install" "-C" "contribs/pmi2")))
> +               (add-after 'install 'move-client-executables
> +                 (lambda _
> +                   (let ((client-bin (string-append #$output:client "/bin")))
> +                     (mkdir-p client-bin)
> +                     (for-each (lambda (executable)
> +                                 (rename-file executable
> +                                              (string-append client-bin
> +                                                             "/"
> +                                                             (basename executable))))
> +                               (find-files (string-append #$output "/bin")))))))))

I think “bin” would be a more conventional name for the output; this is
used in a couple of packages and recognized by ‘package->recutils’.

However, what does ‘guix size slurm:client’ report?  I suspect it
depends on slurm:out, in which case moving to a separate output makes no
difference from that perspective.

Thanks,
Ludo’.