diff options
author | Greg Hogan <code@greghogan.com> | 2025-04-18 14:06:25 +0000 |
---|---|---|
committer | Greg Hogan <code@greghogan.com> | 2025-05-13 16:35:40 +0000 |
commit | c6aaffba1c766d67cac28c47682952fb3ec095e5 (patch) | |
tree | a35bc289fa2387aff30964a1a28ac882a55029a0 | |
parent | 9a41a54da2b53a0d1fa256dda8633b94e6160228 (diff) | |
download | guix-c6aaffba1c766d67cac28c47682952fb3ec095e5.tar.gz guix-c6aaffba1c766d67cac28c47682952fb3ec095e5.zip |
gnu: Add %suitesparse-package-versions.
* gnu/packages/maths.scm (%suitesparse-package-versions): New variable.
(suitesparse-version): Update to 7.10.2.
(suitesparse-source)[origin]: Update deletion list.
(suitesparse-amd, suitesparse-btf, suitesparse-camd, suitesparse-colamd,
suitesparse-ccolamd, suitesparse-cholmod, suitesparse-cxsparse,
suitesparse-klu, suitesparse-ldl, suitesparse-rbio,
suitesparse-mongoose, suitesparse-spex, suitesparse-spqr,
suitesparse-umfpack)[version]: Use %suitesparse-package-versions.
[arguments]<#:configure-flags>: Preserve include path.
(suitesparse-cholmod)[arguments]<#:phases>('install-license-files):
Update paths.
(suitesparse-cholmod)[arguments]<#:phases>('build-doc): Update paths.
(suitesparse-spex)[native-inputs]: Add texlive-fncychap.
(suitesparse-spqr)[native-inputs]: Add texlive-etoolbox.
* gnu/packages/patches/gklib-suitesparse.patch: Update version.
Change-Id: I14a9bfeddb37330c88a2e94b0992c2f1afbc5310
-rw-r--r-- | gnu/packages/maths.scm | 77 | ||||
-rw-r--r-- | gnu/packages/patches/gklib-suitesparse.patch | 4 |
2 files changed, 55 insertions, 26 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 67fe7c8d26..43cae0ad75 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -6155,9 +6155,25 @@ Fresnel integrals, and similar related functions as well.") ;; public domain software. (license (list license:expat license:public-domain)))) +(define %suitesparse-package-versions + '(("AMD" . "3.3.3") + ("BTF" . "2.3.2") + ("CAMD" . "3.3.3") + ("CCOLAMD" . "3.3.4") + ("CHOLMOD" . "5.3.2") + ("COLAMD" . "3.3.4") + ("CXSparse" . "4.4.1") + ("KLU" . "2.3.5") + ("LDL" . "3.3.2") + ("SuiteSparse_Mongoose" . "3.3.4") + ("RBio" . "4.3.4") + ("SPEX" . "3.2.3") + ("SPQR" . "4.3.4") + ("UMFPACK" . "6.3.5"))) + ;; Source for the modular SuiteSparse packages. When updating, also update the ;; (different) versions of the subpackages. -(define suitesparse-version "7.2.0") +(define suitesparse-version "7.10.2") (define suitesparse-source (origin (method git-fetch) @@ -6167,10 +6183,12 @@ Fresnel integrals, and similar related functions as well.") (file-name (git-file-name "suitesparse" suitesparse-version)) (sha256 (base32 - "1draljn8i46862drc6008cnb2zjpklf74j8c34jirjazzpf53kaa")) + "1ndwx2cp5zxrikq4xdrzjrxk1b5ps7lyi6qw34m8jpfpa0ba01ln")) (modules '((guix build utils))) (snippet #~(begin + ;; Empty except for a .gitignore. + (delete-file-recursively "build") ;; Delete autogenerated and bundled files (for-each delete-file (find-files "." "\\.pdf$")) ;; ssget @@ -6181,19 +6199,13 @@ Fresnel integrals, and similar related functions as well.") (delete-file-recursively "CHOLMOD/SuiteSparse_metis") ; GraphBLAS (delete-file "GraphBLAS/README.md") - (delete-file "GraphBLAS/Config/GB_config.h") (delete-file "GraphBLAS/Config/GB_prejit.c") (delete-file-recursively "GraphBLAS/cpu_features") - (delete-file "GraphBLAS/CUDA/GB_cuda_common_jitFactory.hpp") - (delete-file "GraphBLAS/JITpackage/GB_JITpackage.c") (delete-file-recursively "GraphBLAS/lz4/lz4.c") (delete-file-recursively "GraphBLAS/lz4/lz4.h") (delete-file-recursively "GraphBLAS/lz4/lz4hc.c") (delete-file-recursively "GraphBLAS/lz4/lz4hc.h") - (delete-file "GraphBLAS/GraphBLAS/Config/GB_config.h") (delete-file "GraphBLAS/Tcov/PreJIT/GB_prejit.c") - (delete-file-recursively "GraphBLAS/Source/FactoryKernels") - (delete-file "GraphBLAS/Source/GB_AxB__include1.h") (delete-file "GraphBLAS/xxHash/xxhash.h") (delete-file-recursively "GraphBLAS/zstd/zstd_subset") ;; KLU @@ -6223,6 +6235,7 @@ Fresnel integrals, and similar related functions as well.") (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6239,12 +6252,13 @@ package contains a library with common configuration options.") (define-public suitesparse-amd (package (name "suitesparse-amd") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "AMD")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6289,12 +6303,13 @@ to Cholesky factorization (or for LU factorization with diagonal pivoting).") (define-public suitesparse-btf (package (name "suitesparse-btf") - (version "2.2.0") + (version (assoc-ref %suitesparse-package-versions "BTF")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6322,12 +6337,13 @@ matrix into block upper triangular form.") (define-public suitesparse-camd (package (name "suitesparse-camd") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "CAMD")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6369,12 +6385,13 @@ ordering.") (define-public suitesparse-colamd (package (name "suitesparse-colamd") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "COLAMD")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6402,12 +6419,13 @@ matrix with which the LU factorization becomes sparser.") (define-public suitesparse-ccolamd (package (name "suitesparse-ccolamd") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "CCOLAMD")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6485,12 +6503,13 @@ COLAMD which has the the option to apply constraints to the ordering.") (define-public suitesparse-cholmod (package (name "suitesparse-cholmod") - (version "4.2.0") + (version (assoc-ref %suitesparse-package-versions "CHOLMOD")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6548,7 +6567,7 @@ target_link_libraries(CHOLMOD_static PRIVATE ${METIS_LIBRARY} ${GKLIB_LIBRARY})" (let ((out (string-append #$output "/share/doc/" #$name "-" #$version))) (install-file "../CHOLMOD/Doc/License.txt" out) - (install-file "../CHOLMOD/Core/lesser.txt" out) + (install-file "../CHOLMOD/Check/lesser.txt" out) (install-file "../CHOLMOD/MatrixOps/gpl.txt" out))))))) (inputs (list gklib-suitesparse @@ -6571,12 +6590,13 @@ and other related operations.") (define-public suitesparse-cxsparse (package (name "suitesparse-cxsparse") - (version "4.2.0") + (version (assoc-ref %suitesparse-package-versions "CXSparse")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6605,12 +6625,13 @@ direct methods on both real and complex matrices.") (define-public suitesparse-klu (package (name "suitesparse-klu") - (version "2.2.0") + (version (assoc-ref %suitesparse-package-versions "KLU")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6670,12 +6691,13 @@ for real and complex matrices.") (define-public suitesparse-ldl (package (name "suitesparse-ldl") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "LDL")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6724,12 +6746,13 @@ code.") (define-public suitesparse-rbio (package (name "suitesparse-rbio") - (version "4.2.0") + (version (assoc-ref %suitesparse-package-versions "RBio")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6762,12 +6785,13 @@ for reading and writing sparse matrices in the Rutherford/Boeing format.") (define-public suitesparse-mongoose (package (name "suitesparse-mongoose") - (version "3.2.0") + (version (assoc-ref %suitesparse-package-versions "SuiteSparse_Mongoose")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6839,12 +6863,13 @@ edge cuts using a coarsening and refinement framework.") (define-public suitesparse-spex (package (name "suitesparse-spex") - (version "2.2.0") + (version (assoc-ref %suitesparse-package-versions "SPEX")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6883,6 +6908,7 @@ edge cuts using a coarsening and refinement framework.") texlive-soul texlive-multirow texlive-algorithms + texlive-fncychap texlive-float texlive-algorithmicx texlive-cprotect @@ -6906,12 +6932,13 @@ LU factorization for solving unsymmetric sparse linear systems.") (define-public suitesparse-spqr (package (name "suitesparse-spqr") - (version "4.2.0") + (version (assoc-ref %suitesparse-package-versions "SPQR")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -6957,7 +6984,8 @@ LU factorization for solving unsymmetric sparse linear systems.") (propagated-inputs (list suitesparse-cholmod)) (native-inputs (list (texlive-local-tree - (list texlive-epsf)))) + (list texlive-epsf + texlive-etoolbox)))) (home-page "https://people.engr.tamu.edu/davis/suitesparse.html") (synopsis "Sparse QR factorization method") (description "The SPQR (SuiteSparseQR) package provides sparse QR @@ -6968,12 +6996,13 @@ matrices.") (define-public suitesparse-umfpack (package (name "suitesparse-umfpack") - (version "6.2.0") + (version (assoc-ref %suitesparse-package-versions "UMFPACK")) (source suitesparse-source) (build-system cmake-build-system) (arguments (list #:tests? #f + #:configure-flags #~(list "-DSUITESPARSE_INCLUDEDIR_POSTFIX=") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir diff --git a/gnu/packages/patches/gklib-suitesparse.patch b/gnu/packages/patches/gklib-suitesparse.patch index 8b6c708b6a..757354f9ba 100644 --- a/gnu/packages/patches/gklib-suitesparse.patch +++ b/gnu/packages/patches/gklib-suitesparse.patch @@ -1,5 +1,5 @@ This patch contains the relevant changes to GKlib made in SuiteSparse -(CHOLMOD) for the version 7.2.0 +(CHOLMOD) for the version 7.10.2 (https://github.com/DrTimothyAldenDavis/SuiteSparse/commit/8a7641cdb4809533c681417e94f98058c07c5da2). The disabling of signal handling when MATLAB_MEX_FILE is defined is omitted. @@ -10,7 +10,7 @@ diff -ur a/CMakeLists.txt b/CMakeLists.txt option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF) -+find_package ( SuiteSparse_config 7.1.0 REQUIRED ) ++find_package ( SuiteSparse_config 7.10.2 REQUIRED ) + get_filename_component(abs "." ABSOLUTE) set(GKLIB_PATH ${abs}) |