diff mbox series

[bug#47613] add parmetis

Message ID YGyd353ZxjBzLw29@jasmine.lan
State Accepted
Headers show
Series [bug#47613] add parmetis | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Leo Famulari April 6, 2021, 5:43 p.m. UTC
Subject: [PATCH] [PATCH] Add parmetis

Thanks!


+    (build-system cmake-build-system)
+    (native-inputs `(("gcc" ,gcc)
+                     ("openmpi" ,openmpi)))

GCC is made available via the cmake-build-system, so I think we could
leave it out of native-inputs. Or am I missing something?

+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:configure-flags `("-DSHARED=ON"
+                           ,"-DCMAKE_C_COMPILER=mpicc"
+                           ,"-DCMAKE_CXX_COMPILER=mpic++"
+                           ,"-DCMAKE_VERBOSE_MAKEFILE=1"
+                           ,(string-append "-DGKLIB_PATH=../parmetis-4.0.3/metis/GKlib")
+                           ,(string-append "-DMETIS_PATH=../parmetis-4.0.3/metis" ))))

We can avoid hard-coding the version string here, like this:

------
------

+    (license license:asl2.0)))

There is a problem with the licensing, however. In the source code,
LICENSE.txt contains this:

------
Copyright & License Notice
--------------------------

The ParMETIS package is copyrighted by the Regents of the 
University of Minnesota. It can be freely used for educational and 
research purposes by non-profit institutions and US government 
agencies only. Other organizations are allowed to use ParMETIS 
only for evaluation purposes, and any further uses will require prior 
approval. The software may not be sold or redistributed without prior 
approval. One may make copies of the software for their use provided 
that the copies, are not sold or distributed, are used under the same 
terms and conditions.

As unestablished research software, this code is provided on an  
``as is'' basis without warranty of any kind, either expressed or
implied. The downloading, or executing any part of this software
constitutes an implicit agreement to these terms. These terms and 
conditions are subject to change at any time without prior notice.
------

I saw in 'metis/Changelog' that a relicensing to Apache 2 was done for
the "metis" program in version 5.0.3. But, this is "parmetis", version
4.0.3.

If the copyright owners intend to release this as free software, they
need to change the 'LICENSE.txt' file.

Comments

Franck Pérignon April 7, 2021, 2:02 p.m. UTC | #1
Thanks for the review (of this and of scotch-shared)

Yes, you’re right, gcc native-inputs can be removed and yes, it’s probably better to avoid hard-coding version string
A new patch is attached that works for me.

Regarding the license, I missed this. Is it possible to directly attached the LICENSE.txt in the guix recipe ? If so, what’s the proper syntax ?

Thanks
> Le 6 avr. 2021 à 19:43, Leo Famulari <leo@famulari.name> a écrit :
> 
> Subject: [PATCH] [PATCH] Add parmetis
> 
> Thanks!
> 
> 
> +    (build-system cmake-build-system)
> +    (native-inputs `(("gcc" ,gcc)
> +                     ("openmpi" ,openmpi)))
> 
> GCC is made available via the cmake-build-system, so I think we could
> leave it out of native-inputs. Or am I missing something?
> 

> +    (arguments
> +     `(#:tests? #f                      ;no tests
> +       #:configure-flags `("-DSHARED=ON"
> +                           ,"-DCMAKE_C_COMPILER=mpicc"
> +                           ,"-DCMAKE_CXX_COMPILER=mpic++"
> +                           ,"-DCMAKE_VERBOSE_MAKEFILE=1"
> +                           ,(string-append "-DGKLIB_PATH=../parmetis-4.0.3/metis/GKlib")
> +                           ,(string-append "-DMETIS_PATH=../parmetis-4.0.3/metis" ))))
> 
> We can avoid hard-coding the version string here, like this:
> 
> ------
> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index bdfa051db1..f0ebdd6009 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -3348,8 +3348,10 @@ schemes.")
>                            ,"-DCMAKE_C_COMPILER=mpicc"
>                            ,"-DCMAKE_CXX_COMPILER=mpic++"
>                            ,"-DCMAKE_VERBOSE_MAKEFILE=1"
> -                           ,(string-append "-DGKLIB_PATH=../parmetis-4.0.3/metis/GKlib")
> -                           ,(string-append "-DMETIS_PATH=../parmetis-4.0.3/metis" ))))
> +                           ,(string-append "-DGKLIB_PATH=../parmetis-"
> +                                           ,(package-version this-version) "/metis/GKlib"))
> +                           ,(string-append "-DMETIS_PATH=../parmetis-"
> +                                           ,(package-version this-version) "/metis"))))
>     (home-page "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview")
>     (synopsis "Parallel Graph Partitioning and Fill-reducing Matrix Ordering")
>     (description
> ------
> 
> +    (license license:asl2.0)))
> 
> There is a problem with the licensing, however. In the source code,
> LICENSE.txt contains this:
> 
> ------
> Copyright & License Notice
> --------------------------
> 
> The ParMETIS package is copyrighted by the Regents of the 
> University of Minnesota. It can be freely used for educational and 
> research purposes by non-profit institutions and US government 
> agencies only. Other organizations are allowed to use ParMETIS 
> only for evaluation purposes, and any further uses will require prior 
> approval. The software may not be sold or redistributed without prior 
> approval. One may make copies of the software for their use provided 
> that the copies, are not sold or distributed, are used under the same 
> terms and conditions.
> 
> As unestablished research software, this code is provided on an  
> ``as is'' basis without warranty of any kind, either expressed or
> implied. The downloading, or executing any part of this software
> constitutes an implicit agreement to these terms. These terms and 
> conditions are subject to change at any time without prior notice.
> ------
> 
> I saw in 'metis/Changelog' that a relicensing to Apache 2 was done for
> the "metis" program in version 5.0.3. But, this is "parmetis", version
> 4.0.3.
> 
> If the copyright owners intend to release this as free software, they
> need to change the 'LICENSE.txt' file.
Ludovic Courtès April 8, 2021, 7:16 a.m. UTC | #2
Hi Franck,

Franck Pérignon <Franck.Perignon@univ-grenoble-alpes.fr> skribis:

> Regarding the license, I missed this. Is it possible to directly attached the LICENSE.txt in the guix recipe ? If so, what’s the proper syntax ?

Guix proper only includes free software:

  https://guix.gnu.org/manual/en/html_node/Software-Freedom.html

So I’m afraid we cannot get Parmetis in Guix until it’s free (it would
be interesting to discuss this with the authors).  :-/

Thanks,
Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index bdfa051db1..f0ebdd6009 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3348,8 +3348,10 @@  schemes.")
                            ,"-DCMAKE_C_COMPILER=mpicc"
                            ,"-DCMAKE_CXX_COMPILER=mpic++"
                            ,"-DCMAKE_VERBOSE_MAKEFILE=1"
-                           ,(string-append "-DGKLIB_PATH=../parmetis-4.0.3/metis/GKlib")
-                           ,(string-append "-DMETIS_PATH=../parmetis-4.0.3/metis" ))))
+                           ,(string-append "-DGKLIB_PATH=../parmetis-"
+                                           ,(package-version this-version) "/metis/GKlib"))
+                           ,(string-append "-DMETIS_PATH=../parmetis-"
+                                           ,(package-version this-version) "/metis"))))
     (home-page "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview")
     (synopsis "Parallel Graph Partitioning and Fill-reducing Matrix Ordering")
     (description