diff mbox series

[bug#54547] gnu: slurm: Install libpmi2.

Message ID 20220324152615.30374-1-ludo@gnu.org
State Accepted
Headers show
Series [bug#54547] gnu: slurm: Install libpmi2. | expand

Commit Message

Ludovic Courtès March 24, 2022, 3:26 p.m. UTC
From: Ludovic Courtès <ludovic.courtes@inria.fr>

* gnu/packages/parallel.scm (slurm)[source](snippet): Let PMI2 through.
[arguments]: In phase 'install-libpmi', install "contribs/pmi2".
[license]: Add 'non-copyleft'.
---
 gnu/packages/parallel.scm | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

Hi!

Previously, we were erroneously excluding libpmi2.  It’s actually free,
under a lax non-copyleft license (full text below):

  https://github.com/SchedMD/slurm/blob/master/contribs/pmi2/COPYRIGHT

That library is in Debian:

  https://packages.debian.org/sid/libpmi2-0-dev

Tested with slurm 20.11, 20.02, 19, and 18 as currently available.

Objections?

Thanks,
Ludo’.

Full license text:

--8<---------------cut here---------------start------------->8---

				  COPYRIGHT

The following is a notice of limited availability of the code, and disclaimer
which must be included in the prologue of the code and in all source listings
of the code.

Copyright Notice
 + 2002 University of Chicago

Permission is hereby granted to use, reproduce, prepare derivative works, and
to redistribute to others.  This software was authored by:

Mathematics and Computer Science Division
Argonne National Laboratory, Argonne IL 60439

(and)

Department of Computer Science
University of Illinois at Urbana-Champaign


			      GOVERNMENT LICENSE

Portions of this material resulted from work developed under a U.S.
Government Contract and are subject to the following license: the Government
is granted for itself and others acting on its behalf a paid-up, nonexclusive,
irrevocable worldwide license in this computer software to reproduce, prepare
derivative works, and perform publicly and display publicly.

				  DISCLAIMER

This computer code material was prepared, in part, as an account of work
sponsored by an agency of the United States Government.  Neither the United
States, nor the University of Chicago, nor any of their employees, makes any
warranty express or implied, or assumes any legal liability or responsibility
for the accuracy, completeness, or usefulness of any information, apparatus,
product, or process disclosed, or represents that its use would not infringe
privately owned rights.
--8<---------------cut here---------------end--------------->8---

Comments

Philippe SWARTVAGHER March 28, 2022, 11:40 a.m. UTC | #1
Hello,

Le 24/03/2022 à 16:26, Ludovic Courtès a écrit :
> From: Ludovic Courtès <ludovic.courtes@inria.fr>
>
> * gnu/packages/parallel.scm (slurm)[source](snippet): Let PMI2 through.
> [arguments]: In phase 'install-libpmi', install "contribs/pmi2".
> [license]: Add 'non-copyleft'.
> ---
>   gnu/packages/parallel.scm | 18 ++++++++++++------
>   1 file changed, 12 insertions(+), 6 deletions(-)
>
> Hi!
>
> Previously, we were erroneously excluding libpmi2.  It’s actually free,
> under a lax non-copyleft license (full text below):
>
>    https://github.com/SchedMD/slurm/blob/master/contribs/pmi2/COPYRIGHT
>
> That library is in Debian:
>
>    https://packages.debian.org/sid/libpmi2-0-dev
>
> Tested with slurm 20.11, 20.02, 19, and 18 as currently available.
>
> Objections?
>
> Thanks,
> Ludo’.
>
> Full license text:
>
> --8<---------------cut here---------------start------------->8---
>
> 				  COPYRIGHT
>
> The following is a notice of limited availability of the code, and disclaimer
> which must be included in the prologue of the code and in all source listings
> of the code.
>
> Copyright Notice
>   + 2002 University of Chicago
>
> Permission is hereby granted to use, reproduce, prepare derivative works, and
> to redistribute to others.  This software was authored by:
>
> Mathematics and Computer Science Division
> Argonne National Laboratory, Argonne IL 60439
>
> (and)
>
> Department of Computer Science
> University of Illinois at Urbana-Champaign
>
>
> 			      GOVERNMENT LICENSE
>
> Portions of this material resulted from work developed under a U.S.
> Government Contract and are subject to the following license: the Government
> is granted for itself and others acting on its behalf a paid-up, nonexclusive,
> irrevocable worldwide license in this computer software to reproduce, prepare
> derivative works, and perform publicly and display publicly.
>
> 				  DISCLAIMER
>
> This computer code material was prepared, in part, as an account of work
> sponsored by an agency of the United States Government.  Neither the United
> States, nor the University of Chicago, nor any of their employees, makes any
> warranty express or implied, or assumes any legal liability or responsibility
> for the accuracy, completeness, or usefulness of any information, apparatus,
> product, or process disclosed, or represents that its use would not infringe
> privately owned rights.
> --8<---------------cut here---------------end--------------->8---
>
>
> diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
> index 5f84fb6777..d7c3586606 100644
> --- a/gnu/packages/parallel.scm
> +++ b/gnu/packages/parallel.scm
> @@ -182,19 +182,20 @@ (define-public slurm
>                     ;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00534.html>
>                     ;; there are non-free bits under contribs/, though it's not
>                     ;; clear which ones.  libpmi is clearly free (it used to be
> -                  ;; under src/api/), so remove all of contribs/ except
> -                  ;; contribs/pmi/.
> +                  ;; under src/api/) and so is pmi2 (lax non-copyleft
> +                  ;; license), so remove all of contribs/ except pmi and pmi2.
>                     (substitute* "configure.ac"
>                       (("^[[:space:]]+contribs/(.*)$" all directory)
> -                     (if (and (string-prefix? "pmi" directory)
> -                              (not (string-prefix? "pmi2" directory)))
> +                     (if (string-prefix? "pmi" directory)
>                            all
>                            "")))
>   
>                     (rename-file "contribs/pmi" "tmp-pmi")
> +                  (rename-file "contribs/pmi2" "tmp-pmi2")
>                     (delete-file-recursively "contribs")
>                     (mkdir "contribs")
> -                  (rename-file "tmp-pmi" "contribs/pmi")))))
> +                  (rename-file "tmp-pmi" "contribs/pmi")
> +                  (rename-file "tmp-pmi2" "contribs/pmi2")))))
>       ;; FIXME: More optional inputs could be added,
>       ;; in particular mysql and gtk+.
>       (inputs (list freeipmi
> @@ -231,7 +232,10 @@ (define-public slurm
>                  (add-after 'install 'install-libpmi
>                    (lambda _
>                      ;; Open MPI expects libpmi to be provided by Slurm so install it.
> -                   (invoke "make" "install" "-C" "contribs/pmi"))))))
> +                   (invoke "make" "install" "-C" "contribs/pmi")
> +
> +                   ;; Others expect pmi2.
> +                   (invoke "make" "install" "-C" "contribs/pmi2"))))))
>       (home-page "https://slurm.schedmd.com/")
>       (synopsis "Workload manager for cluster computing")
>       (description
> @@ -246,6 +250,8 @@ (define-public slurm
>                      license:isc        ; src/common/strlcpy.c
>                      license:lgpl2.1+   ; hilbert.[ch], src/common/slurm_time.h
>                      license:zlib       ; src/common/strnatcmp.c
> +                   (license:non-copyleft    ;contribs/pmi2, Argonne Natl. Lab.
> +                    "https://github.com/SchedMD/slurm/blob/master/contribs/pmi2/COPYRIGHT")
>                      license:gpl2+))))   ; the rest, often with OpenSSL exception
>   
>   ;; The SLURM client/daemon protocol and file format changes from time to time


Tested, and works as expected: slurm/pmi2.h is detected by other 
packages which require it.
Ludovic Courtès March 29, 2022, 10:07 a.m. UTC | #2
Hi,

Philippe SWARTVAGHER <philippe.swartvagher@inria.fr> skribis:

> Tested, and works as expected: slurm/pmi2.h is detected by other
> packages which require it.

Pushed as 2ae2a15b075dd3c8d34f0c2e3af279e192931f45, thanks for checking!

Ludo’.
Simon Tournier March 29, 2022, 11:33 a.m. UTC | #3
Hi,

On Thu, 24 Mar 2022 at 16:33, Ludovic Courtès <ludo@gnu.org> wrote:

> Objections?

No. :-)

LGTM.

Cheers,
simon
diff mbox series

Patch

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 5f84fb6777..d7c3586606 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -182,19 +182,20 @@  (define-public slurm
                   ;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00534.html>
                   ;; there are non-free bits under contribs/, though it's not
                   ;; clear which ones.  libpmi is clearly free (it used to be
-                  ;; under src/api/), so remove all of contribs/ except
-                  ;; contribs/pmi/.
+                  ;; under src/api/) and so is pmi2 (lax non-copyleft
+                  ;; license), so remove all of contribs/ except pmi and pmi2.
                   (substitute* "configure.ac"
                     (("^[[:space:]]+contribs/(.*)$" all directory)
-                     (if (and (string-prefix? "pmi" directory)
-                              (not (string-prefix? "pmi2" directory)))
+                     (if (string-prefix? "pmi" directory)
                          all
                          "")))
 
                   (rename-file "contribs/pmi" "tmp-pmi")
+                  (rename-file "contribs/pmi2" "tmp-pmi2")
                   (delete-file-recursively "contribs")
                   (mkdir "contribs")
-                  (rename-file "tmp-pmi" "contribs/pmi")))))
+                  (rename-file "tmp-pmi" "contribs/pmi")
+                  (rename-file "tmp-pmi2" "contribs/pmi2")))))
     ;; FIXME: More optional inputs could be added,
     ;; in particular mysql and gtk+.
     (inputs (list freeipmi
@@ -231,7 +232,10 @@  (define-public slurm
                (add-after 'install 'install-libpmi
                  (lambda _
                    ;; Open MPI expects libpmi to be provided by Slurm so install it.
-                   (invoke "make" "install" "-C" "contribs/pmi"))))))
+                   (invoke "make" "install" "-C" "contribs/pmi")
+
+                   ;; Others expect pmi2.
+                   (invoke "make" "install" "-C" "contribs/pmi2"))))))
     (home-page "https://slurm.schedmd.com/")
     (synopsis "Workload manager for cluster computing")
     (description
@@ -246,6 +250,8 @@  (define-public slurm
                    license:isc        ; src/common/strlcpy.c
                    license:lgpl2.1+   ; hilbert.[ch], src/common/slurm_time.h
                    license:zlib       ; src/common/strnatcmp.c
+                   (license:non-copyleft    ;contribs/pmi2, Argonne Natl. Lab.
+                    "https://github.com/SchedMD/slurm/blob/master/contribs/pmi2/COPYRIGHT")
                    license:gpl2+))))   ; the rest, often with OpenSSL exception
 
 ;; The SLURM client/daemon protocol and file format changes from time to time