summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorDavid Elsing <david.elsing@posteo.net>2023-10-05 21:34:52 +0000
committerLudovic Courtès <ludo@gnu.org>2023-10-06 12:26:45 +0200
commit9b5dbc46e6945fbb03cdf5918d93ba06de3deb2b (patch)
tree22eefc1faf91a078db61774eeb8f892be1638a8c /gnu
parent998a79355c2ad5ce6251d0b29896c3fbcc4b4973 (diff)
downloadguix-9b5dbc46e6945fbb03cdf5918d93ba06de3deb2b.tar.gz
gnu: Add metis-5.2.
* gnu/packages/maths.scm (metis-5.2): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/maths.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index cef899fc8a..76d770466f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4381,6 +4381,7 @@ bio-chemistry.")
 software from KarypisLab, such as METIS.")
       (license license:asl2.0))))
 
+;; XXX: Remove once the full SuiteSparse package is replaced.
 (define-public metis
   (package
     (name "metis")
@@ -4414,6 +4415,53 @@ recursive-bisection, multilevel k-way, and multi-constraint partitioning
 schemes.")
     (license license:asl2.0)))          ;As of version 5.0.3
 
+(define-public metis-5.2
+  (package
+    (name "metis")
+    (version "5.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/KarypisLab/METIS")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "19vi1wsi2gp2m5vb715yfnzd2g7brm4r40qxg65ysrzgl13lpmvr"))
+       (snippet
+        #~(delete-file "manual/manual.pdf"))))
+    (build-system cmake-build-system)
+    (inputs (list gklib openblas))
+    (arguments
+     (list
+      #:tests? #f ; Tests are not automatic
+      #:configure-flags
+      #~(list "-DSHARED=ON"
+              (string-append "-DGKLIB_PATH=" #$gklib))
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; The original Makefile copies some files and invokes CMake.
+          (add-before 'configure 'prepare-cmake
+              (lambda _
+                (substitute* "Makefile"
+                  (("config: distclean") "config:")
+                  (("BUILDDIR =.*")
+                   "BUILDDIR = .\n")
+                  ((".*cmake.*") ""))
+                (substitute* "CMakeLists.txt"
+                  (("build/") "../source/"))
+                (invoke "make" "config"))))))
+    (home-page "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview")
+    (synopsis "Graph partitioning and fill-reducing matrix ordering library")
+    (description
+     "METIS is a set of serial programs for partitioning graphs, partitioning
+finite element meshes, and producing fill-reducing orderings for sparse
+matrices.  The algorithms implemented in METIS are based on the multilevel
+recursive-bisection, multilevel k-way, and multi-constraint partitioning
+schemes.")
+    (license license:asl2.0)))
+
 (define-public p4est
   (package
     (name "p4est")