Subject: Re: [bug#47613] [PATCH] add parmetis

From: Franck Pérignon <[email-masked]>
Date: Wed, 7 Apr 2021 16:02:03 +0200

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 <[email-masked]> 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.