Subject: Re: [bug#47613] [PATCH] addparmetis

From: Leo Famulari <[email-masked]>
Date: Tue, 6 Apr 2021 13:43:59 -0400

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.