[packages/SuiteSparse] - updated to 6.0.1 (new sonames, now uses cmake); all libs have new versions, so release 1

qboosh qboosh at pld-linux.org
Sun Jun 29 21:38:24 CEST 2025


commit 8995edb4d04d2ad628458f572c7fe70d62a15c06
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Jun 29 21:39:48 2025 +0200

    - updated to 6.0.1 (new sonames, now uses cmake); all libs have new versions, so release 1

 SuiteSparse-amdf77.patch  |  92 ++++---
 SuiteSparse-config.patch  | 124 ----------
 SuiteSparse-externc.patch | 600 ++++++++++++++--------------------------------
 SuiteSparse-link.patch    |  25 ++
 SuiteSparse.spec          | 567 ++++++++++++++++++++++++++++++++-----------
 5 files changed, 696 insertions(+), 712 deletions(-)
---
diff --git a/SuiteSparse.spec b/SuiteSparse.spec
index 87b0e3a..3045c83 100644
--- a/SuiteSparse.spec
+++ b/SuiteSparse.spec
@@ -1,56 +1,60 @@
-# TODO: GPU_CONFIG (CUDA) support, TBB
+# TODO: finish CUDA support (ENABLE_CUDA=ON), TBB
 #
 # Conditional build:
-%bcond_without	metis		# partition support (using metis lib)
+%bcond_with	cuda		# CUDA support
+%bcond_without	metis		# partition support (using internal modified metis lib)
+%bcond_with	system_metis	# system metis library (not supported, requires modifications)
+%bcond_without	static_libs	# static libraries
 
 # main package version
-%define		suite_ver	5.13.0
-# see */Include/*.h /VER(SION)?_CODE, C*Sparse/Include/cs.h /CS_VER
-%define		amd_ver		2.4.6
-%define		btf_ver		1.2.6
-%define		camd_ver	2.4.6
-%define		ccolamd_ver	2.9.6
-%define		colamd_ver	2.9.6
-%define		cholmod_ver	3.0.14
-%define		csparse_ver	3.2.0
-%define		cxsparse_ver	3.2.0
-%define		klu_ver		1.3.9
-%define		ldl_ver		2.2.6
-%define		rbio_ver	2.2.6
-%define		sliplu_ver	1.0.2
-%define		spqr_ver	2.0.9
-%define		umfpack_ver	5.7.9
-%define		gpuruntime_ver	1.0.5
-%define		gpuqrengine_ver	1.0.5
-# GraphBLAS version 7.2.0, but disabled here, newer version is built from GraphBLAS.spec
-# Mongoose version 2.0.4, but disabled here, the same version is built from SuiteSparse-Mongoose.spec
+%define		suite_ver	6.0.1
+# see */Include/*.h /VER(SION)?_CODE, C*Sparse/Include/cs.h /CS_VER Mongoose/Include/Mongoose_Version.hpp /Mongoose_VERSION_
+%define		amd_ver		3.0.0
+%define		btf_ver		2.0.0
+%define		camd_ver	3.0.0
+%define		ccolamd_ver	3.0.0
+%define		colamd_ver	3.0.0
+%define		cholmod_ver	4.0.1
+%define		csparse_ver	4.0.0
+%define		cxsparse_ver	4.0.0
+%define		klu_ver		2.0.0
+%define		ldl_ver		3.0.0
+%define		rbio_ver	3.0.0
+%define		spex_ver	2.0.0
+%define		spqr_ver	3.0.1
+%define		umfpack_ver	6.0.1
+%define		gpuruntime_ver	2.0.0
+%define		gpuqrengine_ver	2.0.0
+%define		mongoose_ver	3.0.0
+# GraphBLAS version 7.3.2, but disabled here, newer version is built from GraphBLAS.spec
 
 Summary:	A Suite of Sparse matrix packages
 Summary(pl.UTF-8):	Zbiór pakietów do operacji na macierzach rzadkich
 Name:		SuiteSparse
 Version:	%{suite_ver}
-Release:	8
+Release:	1
 License:	LGPL v2.1+, GPL v2+
 Group:		Libraries
 #Source0Download: https://github.com/DrTimothyAldenDavis/SuiteSparse/releases
 Source0:	https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	e9e7bc594b77ae4b58d943cdc286d679
-Patch0:		%{name}-config.patch
+# Source0-md5:	3bb660ac217791c7e9fabac944c8ee07
+Patch0:		%{name}-link.patch
 Patch1:		%{name}-amdf77.patch
 Patch2:		%{name}-externc.patch
 Patch3:		%{name}-ILP32.patch
 URL:		http://suitesparse.com/
 BuildRequires:	blas-devel
+BuildRequires:	cmake >= 3.22
 BuildRequires:	gcc-fortran
 BuildRequires:	gmp-devel
 BuildRequires:	lapack-devel
 BuildRequires:	libgomp-devel
-BuildRequires:	libstdc++-devel
-BuildRequires:	libtool >= 2:1.5
-%if %{with metis}
+BuildRequires:	libstdc++-devel >= 6:7
+%if %{with system_metis}
 BuildRequires:	metis-devel >= 5
 %endif
 BuildRequires:	mpfr-devel
+BuildRequires:	rpmbuild(macros) >= 1.605
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -498,7 +502,7 @@ Requires:	%{name}-CHOLMOD = %{cholmod_ver}-%{release}
 Requires:	%{name}-COLAMD-devel = %{colamd_ver}-%{release}
 Requires:	blas-devel
 Requires:	lapack-devel
-%if %{with metis}
+%if %{with system_metis}
 Requires:	metis-devel >= 5
 %endif
 Provides:	CHOLMOD-devel = %{cholmod_ver}-%{release}
@@ -635,6 +639,52 @@ Static KLU library.
 %description KLU-static -l pl.UTF-8
 Statyczna biblioteka KLU.
 
+%package KLU_CHOLMOD
+Summary:	KLU interface to CHOLMOD
+Summary(pl.UTF-8):	Interfejs KLU do CHOLMOD
+Version:	%{klu_ver}
+License:	LGPL v2.1+
+Group:		Libraries
+Requires:	%{name}-KLU = %{klu_ver}-%{release}
+Requires:	%{name}-CHOLMOD = %{cholmod_ver}-%{release}
+
+%description KLU_CHOLMOD
+klu_cholmod is an user-defined ordering function to interface KLU to
+CHOLMOD.
+
+%description KLU_CHOLMOD -l pl.UTF-8
+klu_cholmod to zdefiniowana przez użytkownika funkcja porządkująca,
+służąca jako interfejs KLU do CHOLMOD.
+
+%package KLU_CHOLMOD-devel
+Summary:	Header files for KLU library
+Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki KLU
+Version:	%{klu_ver}
+License:	LGPL v2.1+
+Group:		Development/Libraries
+Requires:	%{name}-KLU-devel = %{klu_ver}-%{release}
+Requires:	%{name}-KLU_CHOLMOD = %{klu_ver}-%{release}
+
+%description KLU_CHOLMOD-devel
+Header files for KLU_CHOLMOD library.
+
+%description KLU_CHOLMOD-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki KLU_CHOLMOD.
+
+%package KLU_CHOLMOD-static
+Summary:	Static KLU_CHOLMOD library
+Summary(pl.UTF-8):	Statyczna biblioteka KLU_CHOLMOD
+Version:	%{klu_ver}
+License:	LGPL v2.1+
+Group:		Development/Libraries
+Requires:	%{name}-KLU_CHOLMOD-devel = %{klu_ver}-%{release}
+
+%description KLU_CHOLMOD-static
+Static KLU library.
+
+%description KLU_CHOLMOD-static -l pl.UTF-8
+Statyczna biblioteka KLU.
+
 %package LDL
 Summary:	LDL: a simple LDL^T factorization for sparse matrices
 Summary(pl.UTF-8):	LDL - prosty rozkład LDL^T dla macierzy rzadkich
@@ -755,56 +805,53 @@ Static RBio library.
 %description RBio-static -l pl.UTF-8
 Statyczna biblioteka RBio.
 
-%package SLIP_LU
-Summary:	SLIP_LU: Sparse Left-looking Integer-Preserving LU factorization
-Summary(pl.UTF-8):	SLIP_LU - lewostronny rozkład LU dla macierzy rzadkich zachowujący liczby całkowite
-Version:	%{sliplu_ver}
+%package SPEX
+Summary:	SPEX: SParse EXact algebra
+Summary(pl.UTF-8):	SPEX - dokładna algebra dla macierzy rzadkich
+Version:	%{spex_ver}
 License:	LGPL v3+ or GPL v2+
 Group:		Libraries
 Requires:	%{name}-AMD = %{amd_ver}-%{release}
 Requires:	%{name}-COLAMD = %{colamd_ver}-%{release}
 Requires:	%{name}-config-libs = %{suite_ver}-%{release}
 
-%description SLIP_LU
-SLIP_LU is software package used to solve a sparse systems of linear
-equations exactly using the Sparse Left-looking Integer-Preserving LU
-factorization.
+%description SPEX
+SPEX is software package for SParse EXact algebra.
 
-%description SLIP_LU -l pl.UTF-8
-SLIP_LU to pakiet służący do dokładnego rozwiązywania rzadkich układów
-równań liniowych przy użyciu lewostronnego rzadkiego rozkładu LU
-zachowującego liczby całkowite.
+%description SPEX -l pl.UTF-8
+SPEX (SParse EXact algebra) to pakiet służący do dokładnych obliczeń
+na macierzach rzadkich.
 
-%package SLIP_LU-devel
-Summary:	Header file for SLIP_LU library
-Summary(pl.UTF-8):	Plik nagłówkowy biblioteki SLIP_LU
-Version:	%{sliplu_ver}
+%package SPEX-devel
+Summary:	Header file for SPEX library
+Summary(pl.UTF-8):	Plik nagłówkowy biblioteki SPEX
+Version:	%{spex_ver}
 License:	LGPL v3+ or GPL v2+
 Group:		Development/Libraries
-Requires:	%{name}-SLIP_LU = %{sliplu_ver}-%{release}
+Requires:	%{name}-SPEX = %{spex_ver}-%{release}
 Requires:	%{name}-config-devel = %{suite_ver}-%{release}
 Requires:	gmp-devel
 Requires:	mpfr-devel
 
-%description SLIP_LU-devel
-Header file for SLIP_LU library.
+%description SPEX-devel
+Header file for SPEX library.
 
-%description SLIP_LU-devel -l pl.UTF-8
-Plik nagłówkowy biblioteki SLIP_LU.
+%description SPEX-devel -l pl.UTF-8
+Plik nagłówkowy biblioteki SPEX.
 
-%package SLIP_LU-static
-Summary:	Static SLIP_LU library
-Summary(pl.UTF-8):	Statyczna biblioteka SLIP_LU
-Version:	%{sliplu_ver}
+%package SPEX-static
+Summary:	Static SPEX library
+Summary(pl.UTF-8):	Statyczna biblioteka SPEX
+Version:	%{spex_ver}
 License:	LGPL v3+ or GPL v2+
 Group:		Development/Libraries
-Requires:	%{name}-SLIP_LU-devel = %{sliplu_ver}-%{release}
+Requires:	%{name}-SPEX-devel = %{spex_ver}-%{release}
 
-%description SLIP_LU-static
-Static SLIP_LU library.
+%description SPEX-static
+Static SPEX library.
 
-%description SLIP_LU-static -l pl.UTF-8
-Statyczna biblioteka SLIP_LU.
+%description SPEX-static -l pl.UTF-8
+Statyczna biblioteka SPEX.
 
 %package SPQR
 Summary:	SuiteSparseQR: multithreaded multifrontal sparse QR factorization
@@ -934,6 +981,142 @@ Static UMFPACK library.
 %description UMFPACK-static -l pl.UTF-8
 Statyczna biblioteka UMFPACK.
 
+%package GPURuntime
+Summary:	SuiteSparse GPURuntime library
+Summary(pl.UTF-8):	Biblioteka SuiteSparse GPURuntime
+Version:	%{gpuruntime_ver}
+License:	GPL v2+
+Group:		Libraries
+Requires:	%{name}-config-libs = %{suite_ver}-%{release}
+
+%description GPURuntime
+SuiteSparse_GPURuntime provides helper functions for the GPU.
+
+%description GPURuntime -l pl.UTF-8
+SuiteSparse_GPURuntime dostarcza funkcje pomocnicze dla GPU.
+
+%package GPURuntime-devel
+Summary:	Development files for SuiteSparse GPURuntime library
+Summary(pl.UTF-8):	Pliki programistyczne biblioteki SuiteSparse GPURuntime
+Version:	%{gpuruntime_ver}
+License:	GPL v2+
+Group:		Development/Libraries
+Requires:	%{name}-GPURuntime = %{gpuruntime_ver}-%{release}
+Requires:	%{name}-config-devel = %{suite_ver}-%{release}
+
+%description GPURuntime-devel
+Development files for SuiteSparse GPURuntime library.
+
+%description GPURuntime-devel -l pl.UTF-8
+Pliki programistyczne biblioteki SuiteSparse GPURuntime.
+
+%package GPURuntime-static
+Summary:	Static SuiteSparse GPURuntime library
+Summary(pl.UTF-8):	Biblioteka statyczna SuiteSparse GPURuntime
+Version:	%{gpuruntime_ver}
+License:	GPL v2+
+Group:		Development/Libraries
+Requires:	%{name}-GPURuntime-devel = %{gpuruntime_ver}-%{release}
+
+%description GPURuntime-static
+Static SuiteSparse GPURuntime library.
+
+%description GPURuntime-static -l pl.UTF-8
+Biblioteka statyczna SuiteSparse GPURuntime.
+
+%package GPUQREngine
+Summary:	GPUQREngine library
+Summary(pl.UTF-8):	Biblioteka GPUQREngine
+Version:	%{gpuqrengine_ver}
+License:	GPL v2+
+Group:		Libraries
+Requires:	%{name}-GPURuntime = %{gpuruntime_ver}-%{release}
+
+%description GPUQREngine
+GPUQREngine is a GPU-accelerated QR factorization engine supporting
+SuiteSparseQR.
+
+%description GPUQREngine -l pl.UTF-8
+GPUQREngine to akcelerowany GPU silnik rozkładu QR obsługujący
+SuiteSparseQR.
+
+%package GPUQREngine-devel
+Summary:	Development files for SuiteSparse GPUQREngine library
+Summary(pl.UTF-8):	Pliki programistyczne biblioteki SuiteSparse GPUQREngine
+Version:	%{gpuqrengine_ver}
+License:	GPL v2+
+Group:		Development/Libraries
+Requires:	%{name}-GPUQREngine = %{gpuqrengine_ver}-%{release}
+Requires:	%{name}-config-devel = %{suite_ver}-%{release}
+
+%description GPUQREngine-devel
+Development files for SuiteSparse GPUQREngine library.
+
+%description GPUQREngine-devel -l pl.UTF-8
+Pliki programistyczne biblioteki SuiteSparse GPUQREngine.
+
+%package GPUQREngine-static
+Summary:	Static SuiteSparse GPUQREngine library
+Summary(pl.UTF-8):	Biblioteka statyczna SuiteSparse GPUQREngine
+Version:	%{gpuqrengine_ver}
+License:	GPL v2+
+Group:		Development/Libraries
+Requires:	%{name}-GPUQREngine-devel = %{gpuqrengine_ver}-%{release}
+
+%description GPUQREngine-static
+Static SuiteSparse GPUQREngine library.
+
+%description GPUQREngine-static -l pl.UTF-8
+Biblioteka statyczna SuiteSparse GPUQREngine.
+
+%package Mongoose
+Summary:	Mongoose Graph Partitioning Library
+Summary(pl.UTF-8):	Biblioteka partycjonowania grafów Mongoose
+Version:	%{mongoose_ver}
+License:	GPL v3
+Group:		Libraries
+Requires:	%{name}-config-libs = %{suite_ver}-%{release}
+
+%description Mongoose
+Mongoose is a graph partitioning library. Currently, Mongoose only
+supports edge partitioning, but in the future a vertex separator
+extension will be added.
+
+%description Mongoose -l pl.UTF-8
+Mongoose to biblioteka partycjonowania grafów. Obecnie Mongoose
+obsługuje tylko partycjonowanie krawędzi, ale w przyszłości zostanie
+dodane rozszerzenie separujące wierzchołki.
+
+%package Mongoose-devel
+Summary:	Header files for Mongoose library
+Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki Mongoose
+Version:	%{mongoose_ver}
+License:	GPL v3
+Group:		Development/Libraries
+Requires:	%{name}-Mongoose = %{mongoose_ver}-%{release}
+Requires:	%{name}-config-devel = %{suite_ver}-%{release}
+Requires:	libstdc++-devel >= 6:4.7
+
+%description Mongoose-devel
+Header files for Mongoose library.
+
+%description Mongoose-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki Mongoose.
+
+%package Mongoose-static
+Summary:	Static Mongoose library
+Summary(pl.UTF-8):	Statyczna biblioteka Mongoose
+Version:	%{mongoose_ver}
+License:	GPL v3
+Group:		Development/Libraries
+Requires:	%{name}-Mongoose-devel = %{mongoose_ver}-%{release}
+
+%description Mongoose-static
+Static Mongoose library.
+
+%description Mongoose-static -l pl.UTF-8
+Statyczna biblioteka Mongoose.
+
 %prep
 %setup -q
 %patch -P0 -p1
@@ -944,43 +1127,27 @@ Statyczna biblioteka UMFPACK.
 %endif
 
 %build
-export LD_LIBRARY_PATH=$(pwd)/lib${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
-%{__make} -j1 \
-	CC="%{__cc}" \
-	CXX="%{__cxx}" \
-	CFLAGS="%{rpmcflags}" \
-	CXXFLAGS="%{rpmcxxflags}" \
-	F77=gfortran \
-	FFLAGS="%{rpmcflags}" \
-	LDFLAGS="%{rpmldflags} -L$(pwd)/lib" \
-	%{!?with_metis:CHOLMOD_CONFIG=-DNPARTITION} \
-	CUDA=no \
-	%{?with_metis:MY_METIS_LIB=-lmetis MY_METIS_INC=%{_includedir}}
+# TODO: GraphBLAS?
+%define modules SuiteSparse_config AMD BTF CAMD CCOLAMD COLAMD CHOLMOD CXSparse LDL KLU UMFPACK RBio %{?with_cuda:SuiteSparse_GPURuntime GPUQREngine} SPQR SPEX Mongoose
+
+for mod in %{modules} ; do
+%cmake -S ${mod} -B ${mod}/build \
+	-DBLA_PREFER_PKGCONFIG=ON \
+	-DCMAKE_INSTALL_INCLUDEDIR:PATH=include/suitesparse \
+	%{!?with_cuda:-DENABLE_CUDA=OFF} \
+	%{!?with_metis:-DNPARTITION=ON} \
+	%{!?with_static_libs:-DNSTATIC=ON}
+
+%{__make} -C ${mod}/build
+done
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/suitesparse,%{_datadir}/misc}
-
-%{__make} -j1 install \
-	CC="%{__cc}" \
-	CXX="%{__cxx}" \
-	CFLAGS="%{rpmcflags}" \
-	CXXFLAGS="%{rpmcxxflags}" \
-	F77=gfortran \
-	FFLAGS="%{rpmcflags}" \
-	LDFLAGS="%{rpmldflags} -L$RPM_BUILD_ROOT%{_libdir}" \
-	CUDA=no \
-	INSTALL=$RPM_BUILD_ROOT%{_prefix} \
-	INSTALL_INCLUDE=$RPM_BUILD_ROOT%{_includedir}/suitesparse \
-	INSTALL_LIB=$RPM_BUILD_ROOT%{_libdir} \
-	MY_METIS_LIB=-lmetis
-
-cp -p SuiteSparse_config/SuiteSparse_config.mk $RPM_BUILD_ROOT%{_datadir}/misc
-cp -p SuiteSparse_config/lib*.a */Lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
-# CXSparse is superset; don't package CSparse
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcsparse.a
-# packaged as %doc in individual subpackages
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/suitesparse-%{suite_ver}
+
+for mod in %{modules} ; do
+%{__make} -C ${mod}/build install \
+	DESTDIR=$RPM_BUILD_ROOT
+done
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -1015,14 +1182,17 @@ rm -rf $RPM_BUILD_ROOT
 %post	KLU -p /sbin/ldconfig
 %postun	KLU -p /sbin/ldconfig
 
+%post	KLU_CHOLMOD -p /sbin/ldconfig
+%postun	KLU_CHOLMOD -p /sbin/ldconfig
+
 %post	LDL -p /sbin/ldconfig
 %postun	LDL -p /sbin/ldconfig
 
 %post	RBio -p /sbin/ldconfig
 %postun	RBio -p /sbin/ldconfig
 
-%post	SLIP_LU -p /sbin/ldconfig
-%postun	SLIP_LU -p /sbin/ldconfig
+%post	SPEX -p /sbin/ldconfig
+%postun	SPEX -p /sbin/ldconfig
 
 %post	SPQR -p /sbin/ldconfig
 %postun	SPQR -p /sbin/ldconfig
@@ -1030,240 +1200,365 @@ rm -rf $RPM_BUILD_ROOT
 %post	UMFPACK -p /sbin/ldconfig
 %postun	UMFPACK -p /sbin/ldconfig
 
+%post	GPURuntime -p /sbin/ldconfig
+%postun	GPURuntime -p /sbin/ldconfig
+
+%post	GPUQREngine -p /sbin/ldconfig
+%postun	GPUQREngine -p /sbin/ldconfig
+
 %files config
 %defattr(644,root,root,755)
 %doc ChangeLog README.md
 %dir %{_includedir}/suitesparse
 %{_includedir}/suitesparse/SuiteSparse_config.h
-%{_datadir}/misc/SuiteSparse_config.mk
 
 %files config-libs
 %defattr(644,root,root,755)
 %doc SuiteSparse_config/README.txt
 %attr(755,root,root) %{_libdir}/libsuitesparseconfig.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libsuitesparseconfig.so.5
+%ghost %{_libdir}/libsuitesparseconfig.so.6
 
 %files config-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libsuitesparseconfig.so
+%{_libdir}/libsuitesparseconfig.so
+%dir %{_libdir}/cmake/SuiteSparse
+%{_libdir}/cmake/SuiteSparse/FindSuiteSparse_config.cmake
 
+%if %{with static_libs}
 %files config-static
 %defattr(644,root,root,755)
 %{_libdir}/libsuitesparseconfig.a
+%endif
 
 %files AMD
 %defattr(644,root,root,755)
 %doc AMD/README.txt AMD/Doc/{ChangeLog,License.txt}
 %attr(755,root,root) %{_libdir}/libamd.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libamd.so.2
+%ghost %{_libdir}/libamd.so.3
 
 %files AMD-devel
 %defattr(644,root,root,755)
 %doc AMD/Doc/AMD_UserGuide.pdf
-%attr(755,root,root) %{_libdir}/libamd.so
+%{_libdir}/libamd.so
 %{_includedir}/suitesparse/amd.h
+%{_libdir}/cmake/SuiteSparse/FindAMD.cmake
 
+%if %{with static_libs}
 %files AMD-static
 %defattr(644,root,root,755)
 %{_libdir}/libamd.a
+%endif
 
 %files AMD-fortran
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libamdf77.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libamdf77.so.2
+%ghost %{_libdir}/libamdf77.so.3
 
 %files AMD-fortran-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libamdf77.so
+%{_libdir}/libamdf77.so
 
+%if %{with static_libs}
 %files AMD-fortran-static
 %defattr(644,root,root,755)
 %{_libdir}/libamdf77.a
+%endif
 
 %files BTF
 %defattr(644,root,root,755)
 %doc BTF/README.txt BTF/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libbtf.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libbtf.so.1
+%ghost %{_libdir}/libbtf.so.2
 
 %files BTF-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libbtf.so
+%{_libdir}/libbtf.so
 %{_includedir}/suitesparse/btf.h
+%{_libdir}/cmake/SuiteSparse/FindBTF.cmake
 
+%if %{with static_libs}
 %files BTF-static
 %defattr(644,root,root,755)
 %{_libdir}/libbtf.a
+%endif
 
 %files CAMD
 %defattr(644,root,root,755)
 %doc CAMD/README.txt CAMD/Doc/{ChangeLog,License.txt}
 %attr(755,root,root) %{_libdir}/libcamd.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcamd.so.2
+%ghost %{_libdir}/libcamd.so.3
 
 %files CAMD-devel
 %defattr(644,root,root,755)
 %doc CAMD/Doc/CAMD_UserGuide.pdf
-%attr(755,root,root) %{_libdir}/libcamd.so
+%{_libdir}/libcamd.so
 %{_includedir}/suitesparse/camd.h
+%{_libdir}/cmake/SuiteSparse/FindCAMD.cmake
 
+%if %{with static_libs}
 %files CAMD-static
 %defattr(644,root,root,755)
 %{_libdir}/libcamd.a
+%endif
 
 %files CCOLAMD
 %defattr(644,root,root,755)
 %doc CCOLAMD/README.txt CCOLAMD/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libccolamd.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libccolamd.so.2
+%ghost %{_libdir}/libccolamd.so.3
 
 %files CCOLAMD-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libccolamd.so
+%{_libdir}/libccolamd.so
 %{_includedir}/suitesparse/ccolamd.h
+%{_libdir}/cmake/SuiteSparse/FindCCOLAMD.cmake
 
+%if %{with static_libs}
 %files CCOLAMD-static
 %defattr(644,root,root,755)
 %{_libdir}/libccolamd.a
+%endif
 
 %files COLAMD
 %defattr(644,root,root,755)
 %doc COLAMD/README.txt COLAMD/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libcolamd.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcolamd.so.2
+%ghost %{_libdir}/libcolamd.so.3
 
 %files COLAMD-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libcolamd.so
+%{_libdir}/libcolamd.so
 %{_includedir}/suitesparse/colamd.h
+%{_libdir}/cmake/SuiteSparse/FindCOLAMD.cmake
 
+%if %{with static_libs}
 %files COLAMD-static
 %defattr(644,root,root,755)
 %{_libdir}/libcolamd.a
+%endif
 
 %files CHOLMOD
 %defattr(644,root,root,755)
 %doc CHOLMOD/README.txt CHOLMOD/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libcholmod.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcholmod.so.3
+%ghost %{_libdir}/libcholmod.so.4
 
 %files CHOLMOD-devel
 %defattr(644,root,root,755)
 %doc CHOLMOD/Doc/CHOLMOD_UserGuide.pdf
-%attr(755,root,root) %{_libdir}/libcholmod.so
-%{_includedir}/suitesparse/cholmod*.h
+%{_libdir}/libcholmod.so
+%{_includedir}/suitesparse/cholmod.h
+%{_libdir}/cmake/SuiteSparse/FindCHOLMOD.cmake
+%{_libdir}/cmake/SuiteSparse/FindCHOLMOD_CUDA.cmake
 
+%if %{with static_libs}
 %files CHOLMOD-static
 %defattr(644,root,root,755)
 %{_libdir}/libcholmod.a
+%endif
 
 %files CXSparse
 %defattr(644,root,root,755)
 %doc CXSparse/README.txt CXSparse/Doc/{ChangeLog,License.txt}
 %attr(755,root,root) %{_libdir}/libcxsparse.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcxsparse.so.3
+%ghost %{_libdir}/libcxsparse.so.4
 
 %files CXSparse-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libcxsparse.so
+%{_libdir}/libcxsparse.so
 %{_includedir}/suitesparse/cs.h
+%{_libdir}/cmake/SuiteSparse/FindCXSparse.cmake
 
+%if %{with static_libs}
 %files CXSparse-static
 %defattr(644,root,root,755)
 %{_libdir}/libcxsparse.a
+%endif
 
 %files KLU
 %defattr(644,root,root,755)
 %doc KLU/README.txt KLU/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libklu.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libklu.so.1
+%ghost %{_libdir}/libklu.so.2
 
 %files KLU-devel
 %defattr(644,root,root,755)
 %doc KLU/Doc/{KLU_UserGuide,palamadai_e}.pdf
-%attr(755,root,root) %{_libdir}/libklu.so
+%{_libdir}/libklu.so
 %{_includedir}/suitesparse/klu.h
+%{_libdir}/cmake/SuiteSparse/FindKLU.cmake
 
+%if %{with static_libs}
 %files KLU-static
 %defattr(644,root,root,755)
 %{_libdir}/libklu.a
+%endif
+
+%files KLU_CHOLMOD
+%defattr(644,root,root,755)
+%doc KLU/User/README.txt
+%attr(755,root,root) %{_libdir}/libklu_cholmod.so.2.0.0
+%ghost %{_libdir}/libklu_cholmod.so.2
+
+%files KLU_CHOLMOD-devel
+%defattr(644,root,root,755)
+%{_libdir}/libklu_cholmod.so
+%{_includedir}/suitesparse/klu_cholmod.h
+%{_libdir}/cmake/SuiteSparse/FindKLU_CHOLMOD.cmake
+
+%if %{with static_libs}
+%files KLU_CHOLMOD-static
+%defattr(644,root,root,755)
+%{_libdir}/libklu_cholmod.a
+%endif
 
 %files LDL
 %defattr(644,root,root,755)
 %doc LDL/README.txt LDL/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libldl.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libldl.so.2
+%ghost %{_libdir}/libldl.so.3
 
 %files LDL-devel
 %defattr(644,root,root,755)
 %doc LDL/Doc/ldl_userguide.pdf
-%attr(755,root,root) %{_libdir}/libldl.so
+%{_libdir}/libldl.so
 %{_includedir}/suitesparse/ldl.h
+%{_libdir}/cmake/SuiteSparse/FindLDL.cmake
 
+%if %{with static_libs}
 %files LDL-static
 %defattr(644,root,root,755)
 %{_libdir}/libldl.a
+%endif
 
 %files RBio
 %defattr(644,root,root,755)
 %doc RBio/README.txt RBio/Doc/{ChangeLog,License.txt}
 %attr(755,root,root) %{_libdir}/librbio.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/librbio.so.2
+%ghost %{_libdir}/librbio.so.3
 
 %files RBio-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/librbio.so
+%{_libdir}/librbio.so
 %{_includedir}/suitesparse/RBio.h
+%{_libdir}/cmake/SuiteSparse/FindRBio.cmake
 
+%if %{with static_libs}
 %files RBio-static
 %defattr(644,root,root,755)
 %{_libdir}/librbio.a
+%endif
 
-%files SLIP_LU
+%files SPEX
 %defattr(644,root,root,755)
-%doc SLIP_LU/README.md SLIP_LU/License/license.txt
-%attr(755,root,root) %{_libdir}/libsliplu.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libsliplu.so.1
+%doc SPEX/README.md
+%attr(755,root,root) %{_libdir}/libspex.so.*.*.*
+%ghost %{_libdir}/libspex.so.2
 
-%files SLIP_LU-devel
+%files SPEX-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libsliplu.so
-%{_includedir}/suitesparse/SLIP_LU.h
+%{_libdir}/libspex.so
+%{_includedir}/suitesparse/SPEX.h
+%{_libdir}/cmake/SuiteSparse/FindSPEX.cmake
 
-%files SLIP_LU-static
+%if %{with static_libs}
+%files SPEX-static
 %defattr(644,root,root,755)
-%{_libdir}/libsliplu.a
+%{_libdir}/libspex.a
+%endif
 
 %files SPQR
 %defattr(644,root,root,755)
 %doc SPQR/README.txt SPQR/Doc/ChangeLog
 %attr(755,root,root) %{_libdir}/libspqr.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libspqr.so.2
+%ghost %{_libdir}/libspqr.so.3
 
 %files SPQR-devel
 %defattr(644,root,root,755)
 %doc SPQR/Doc/{algo_spqr,spqr,spqr_user_guide}.pdf
-%attr(755,root,root) %{_libdir}/libspqr.so
+%{_libdir}/libspqr.so
 %{_includedir}/suitesparse/SuiteSparseQR.hpp
 %{_includedir}/suitesparse/SuiteSparseQR*.h
-%{_includedir}/suitesparse/spqr.hpp
+%{_libdir}/cmake/SuiteSparse/FindSPQR.cmake
+%{_libdir}/cmake/SuiteSparse/FindSPQR_CUDA.cmake
 
+%if %{with static_libs}
 %files SPQR-static
 %defattr(644,root,root,755)
 %{_libdir}/libspqr.a
+%endif
 
 %files UMFPACK
 %defattr(644,root,root,755)
 %doc UMFPACK/README.txt UMFPACK/Doc/{ChangeLog,License.txt}
 %attr(755,root,root) %{_libdir}/libumfpack.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libumfpack.so.5
+%ghost %{_libdir}/libumfpack.so.6
 
 %files UMFPACK-devel
 %defattr(644,root,root,755)
 %doc UMFPACK/Doc/UMFPACK_{QuickStart,UserGuide}.pdf
-%attr(755,root,root) %{_libdir}/libumfpack.so
-%{_includedir}/suitesparse/umfpack*.h
+%{_libdir}/libumfpack.so
+%{_includedir}/suitesparse/umfpack.h
+%{_libdir}/cmake/SuiteSparse/FindUMFPACK.cmake
 
+%if %{with static_libs}
 %files UMFPACK-static
 %defattr(644,root,root,755)
 %{_libdir}/libumfpack.a
+%endif
+
+%if %{with cuda}
+%files GPURuntime
+%defattr(644,root,root,755)
+%doc SuiteSparse_GPURuntime/README.txt
+%attr(755,root,root) %{_libdir}/libsuitesparse_gpuruntime.so.2.0.0
+%ghost %{_libdir}/libsuitesparse_gpuruntime.so.2
+
+%files GPURuntime-devel
+%defattr(644,root,root,755)
+%{_libdir}/libsuitesparse_gpuruntime.so
+%{_libdir}/cmake/SuiteSparse/FindSuiteSparse_GPURuntime.cmake
+
+%if %{with static_libs}
+%files GPURuntime-static
+%defattr(644,root,root,755)
+%{_libdir}/libsuitesparse_gpuruntime_static.a
+%endif
+
+%files GPUQREngine
+%defattr(644,root,root,755)
+%doc GPUQREngine/README.txt
+%attr(755,root,root) %{_libdir}/libgpuqrengine.so.2.0.0
+%ghost %{_libdir}/libgpuqrengine.so.2
+
+%files GPUQREngine-devel
+%defattr(644,root,root,755)
+%{_libdir}/libgpuqrengine.so
+%{_libdir}/cmake/SuiteSparse/FindGPUQREngine.cmake
+
+%if %{with static_libs}
+%files GPUQREngine-static
+%defattr(644,root,root,755)
+%{_libdir}/libgpuqrengine_static.a
+%endif
+%endif
+
+%files Mongoose
+%defattr(644,root,root,755)
+%doc Mongoose/README.md
+%attr(755,root,root) %{_bindir}/mongoose
+%attr(755,root,root) %{_libdir}/libmongoose.so.*.*.*
+%ghost %{_libdir}/libmongoose.so.3
+
+%files Mongoose-devel
+%defattr(644,root,root,755)
+%doc Mongoose/Doc/Mongoose_UserGuide.pdf
+%{_libdir}/libmongoose.so
+%{_includedir}/suitesparse/Mongoose.hpp
+%{_libdir}/cmake/SuiteSparse/FindMongoose.cmake
+
+%if %{with static_libs}
+%files Mongoose-static
+%defattr(644,root,root,755)
+%{_libdir}/libmongoose.a
+%endif
diff --git a/SuiteSparse-amdf77.patch b/SuiteSparse-amdf77.patch
index 60be497..eb6da2f 100644
--- a/SuiteSparse-amdf77.patch
+++ b/SuiteSparse-amdf77.patch
@@ -1,39 +1,65 @@
---- SuiteSparse/AMD/Lib/Makefile.orig	2016-05-04 20:01:13.000000000 +0200
-+++ SuiteSparse/AMD/Lib/Makefile	2023-01-11 21:43:51.689203711 +0100
-@@ -52,7 +52,7 @@ amd_l_%.o: ../Source/amd_%.c $(INC)
- # Create the static library (C versions only)
+--- SuiteSparse-6.0.1/AMD/CMakeLists.txt.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/AMD/CMakeLists.txt	2025-06-29 11:32:12.364272842 +0200
+@@ -63,9 +63,11 @@ include_directories ( Source Include ${S
+ # dynamic amd library properties
  #-------------------------------------------------------------------------------
  
--static: $(AR_TARGET)
-+static: $(AR_TARGET) libamdf77.a
+-file ( GLOB AMD_SOURCES "Source/*.c" "Source/*.f" )
++file ( GLOB AMD_SOURCES "Source/*.c" )
++file ( GLOB AMDF77_SOURCES "Source/*.f" )
  
- $(AR_TARGET): $(OBJ)
- 	$(ARCHIVE) $@ $^
-@@ -81,7 +81,7 @@ libamdf77.a: $(AMDF77)
+ add_library ( amd SHARED ${AMD_SOURCES} )
++add_library ( amdf77 SHARED ${AMDF77_SOURCES} )
+ 
+ set_target_properties ( amd PROPERTIES
+     VERSION ${AMD_VERSION_MAJOR}.${AMD_VERSION_MINOR}.${AMD_VERSION_SUB}
+@@ -73,18 +75,29 @@ set_target_properties ( amd PROPERTIES
+     SOVERSION ${AMD_VERSION_MAJOR}
+     PUBLIC_HEADER "Include/amd.h" )
+ 
++set_target_properties ( amdf77 PROPERTIES
++    VERSION ${AMD_VERSION_MAJOR}.${AMD_VERSION_MINOR}.${AMD_VERSION_SUB}
++    SOVERSION ${AMD_VERSION_MAJOR}
++    )
++
+ #-------------------------------------------------------------------------------
+ # static amd library properties
  #-------------------------------------------------------------------------------
  
- # install AMD
--install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
-+install: $(AR_TARGET) libamdf77.a $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/libamdf77.so.$(VERSION)
- 
- $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
- 	@mkdir -p $(INSTALL_LIB)
-@@ -98,6 +98,18 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
- 	chmod 644 $(INSTALL_DOC)/AMD_UserGuide.pdf
- 	chmod 644 $(INSTALL_DOC)/AMD_README.txt
- 
-+$(INSTALL_LIB)/libamdf77.so.$(VERSION): $(AMD_F77)
-+	@mkdir -p $(INSTALL_LIB)
-+	@mkdir -p $(INSTALL_INCLUDE)
-+	@mkdir -p $(INSTALL_DOC)
-+	$(F77) $(SO_OPTS) $^ -o $@ -lm
-+	( cd $(INSTALL_LIB) ; ln -sf libamdf77.so.$(VERSION) libamdf77.so )
-+	( cd $(INSTALL_LIB) ; ln -sf libamdf77.so.$(VERSION) libamdf77.so.$(SO_VERSION) )
-+	$(CP) ../Include/amd.h $(INSTALL_INCLUDE)
-+	$(CP) ../Doc/AMD_UserGuide.pdf $(INSTALL_DOC)
-+	$(CP) ../README.txt $(INSTALL_DOC)/AMD_README.txt
-+	chmod 755 $(INSTALL_LIB)/libamdf77.so.$(VERSION)
+ if ( NOT NSTATIC )
+ add_library ( amd_static STATIC ${AMD_SOURCES} )
++add_library ( amdf77_static STATIC ${AMDF77_SOURCES} )
+ 
+ set_target_properties ( amd_static PROPERTIES
+     VERSION ${AMD_VERSION_MAJOR}.${AMD_VERSION_MINOR}.${AMD_VERSION_SUB}
+     C_STANDARD_REQUIRED 11
+     OUTPUT_NAME amd
+     SOVERSION ${AMD_VERSION_MAJOR} )
 +
- # uninstall AMD
- uninstall:
- 	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
++set_target_properties ( amdf77_static PROPERTIES
++    VERSION ${AMD_VERSION_MAJOR}.${AMD_VERSION_MINOR}.${AMD_VERSION_SUB}
++    OUTPUT_NAME amdf77
++    SOVERSION ${AMD_VERSION_MAJOR} )
+ endif ( )
+ 
+ #-------------------------------------------------------------------------------
+@@ -116,6 +129,8 @@ if ( GLOBAL_INSTALL )
+     install ( TARGETS amd
+         LIBRARY       DESTINATION ${CMAKE_INSTALL_LIBDIR}
+         PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
++    install ( TARGETS amdf77
++        LIBRARY       DESTINATION ${CMAKE_INSTALL_LIBDIR} )
+     install ( FILES ${CMAKE_SOURCE_DIR}/cmake_modules/FindAMD.cmake
+         DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SuiteSparse 
+         COMPONENT Development )
+@@ -123,6 +138,10 @@ if ( GLOBAL_INSTALL )
+     install ( TARGETS amd_static
+         ARCHIVE       DESTINATION ${CMAKE_INSTALL_LIBDIR} )
+     endif ( )
++    if ( NOT NSTATIC )
++    install ( TARGETS amdf77_static
++        ARCHIVE       DESTINATION ${CMAKE_INSTALL_LIBDIR} )
++    endif ( )
+ endif ( )
+ 
+ if ( INSIDE_SUITESPARSE )
diff --git a/SuiteSparse-config.patch b/SuiteSparse-config.patch
deleted file mode 100644
index 2a8d572..0000000
--- a/SuiteSparse-config.patch
+++ /dev/null
@@ -1,124 +0,0 @@
---- SuiteSparse-5.13.0/SuiteSparse_config/SuiteSparse_config.mk.orig	2022-08-31 18:14:11.000000000 +0200
-+++ SuiteSparse-5.13.0/SuiteSparse_config/SuiteSparse_config.mk	2023-09-09 18:37:07.316739831 +0200
-@@ -154,7 +154,7 @@ SUITESPARSE_VERSION = 5.13.0
- 
-     # The CF macro is used by SuiteSparse Makefiles as a combination of
-     # CFLAGS, CPPFLAGS, TARGET_ARCH, and system-dependent settings.
--    CF ?= $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) $(OPTIMIZATION) -fexceptions -fPIC
-+    CF ?= $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -fPIC
- 
-     #---------------------------------------------------------------------------
-     # code formatting (for Tcov on Linux only)
-@@ -217,7 +217,7 @@ SUITESPARSE_VERSION = 5.13.0
-     # A Fortran compiler is optional.  Only required for the optional Fortran
-     # interfaces to AMD and UMFPACK.  Not needed by 'make' or 'make install'
-     F77 ?= gfortran
--    F77FLAGS ?= $(FFLAGS) $(OPTIMIZATION)
-+    F77FLAGS ?= $(FFLAGS)
- 
-     #---------------------------------------------------------------------------
-     # NVIDIA CUDA configuration for CHOLMOD and SPQR
-@@ -349,7 +349,6 @@ SUITESPARSE_VERSION = 5.13.0
-     ifeq ($(UNAME),Linux)
-         # add the posix realtime extensions library: librt
-         LDLIBS += -lrt
--        LDFLAGS += -Wl,-rpath=$(INSTALL_LIB)
-     endif
- 
-     #---------------------------------------------------------------------------
-@@ -469,7 +468,7 @@ else
-         SO_MAIN   = $(LIBRARY).so.$(SO_VERSION)
-         SO_TARGET = $(LIBRARY).so.$(VERSION)
-         SO_OPTS  += -shared -Wl,-soname -Wl,$(SO_MAIN) -Wl,--no-undefined \
--                     -Wl,-rpath,'$$ORIGIN' -Wl,-z,origin
-+
-         # Use rpath ORIGIN so that Linux/Unix *.so files can be moved without modification:
-         SO_INSTALL_NAME = echo
-     endif
---- SuiteSparse/CSparse/Lib/Makefile.orig	2017-12-23 20:00:31.000000000 +0100
-+++ SuiteSparse/CSparse/Lib/Makefile	2023-01-13 16:42:59.747528205 +0100
-@@ -15,7 +15,7 @@
- # CSparse/Lib.  It does not install it for system-wide usage.
- 
- LIBRARY = libcsparse
--CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O
-+CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
- 
- I = -I../Include
- RANLIB = ranlib
---- SuiteSparse/CSparse/Demo/Makefile.orig	2017-12-23 20:05:19.000000000 +0100
-+++ SuiteSparse/CSparse/Demo/Makefile	2023-01-13 16:43:15.587442393 +0100
-@@ -1,4 +1,4 @@
--CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O
-+CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
- I = -I../Include
- 
- LDLIBS += -lm
---- SuiteSparse-5.13.0/Makefile.orig	2022-08-31 18:14:11.000000000 +0200
-+++ SuiteSparse-5.13.0/Makefile	2023-09-09 18:42:15.215071803 +0200
-@@ -16,7 +16,6 @@ include SuiteSparse_config/SuiteSparse_c
- # installs all libraries SuiteSparse/lib.
- go: metis
- 	( cd SuiteSparse_config && $(MAKE) )
--	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
- 	( cd AMD && $(MAKE) )
- 	( cd BTF && $(MAKE) )
- 	( cd CAMD && $(MAKE) )
-@@ -34,7 +33,6 @@ ifneq ($(GPU_CONFIG),)
- 	( cd GPUQREngine && $(MAKE) )
- endif
- 	( cd SPQR && $(MAKE) )
--	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
- 	( cd SLIP_LU && $(MAKE) )
- #	( cd PIRO_BAND && $(MAKE) )
- #	( cd SKYLINE_SVD && $(MAKE) )
-@@ -44,7 +42,7 @@ endif
- #       sudo make install INSTALL=/usr/local
- # See SuiteSparse/README.md for more details.
- # (note that CSparse is not installed; CXSparse is installed instead)
--install: metisinstall gbinstall moninstall
-+install: metisinstall
- 	( cd SuiteSparse_config && $(MAKE) install )
- 	# ( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' install )
- 	( cd AMD && $(MAKE) install )
-@@ -126,7 +124,6 @@ endif
- # the static library
- library: metis
- 	( cd SuiteSparse_config && $(MAKE) )
--	( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 	( cd AMD && $(MAKE) library )
- 	( cd BTF && $(MAKE) library )
- 	( cd CAMD && $(MAKE) library )
-@@ -144,7 +141,6 @@ ifneq (,$(GPU_CONFIG))
- 	( cd GPUQREngine && $(MAKE) library )
- endif
- 	( cd SPQR && $(MAKE) library )
--	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 	( cd SLIP_LU && $(MAKE) library )
- #	( cd PIRO_BAND && $(MAKE) library )
- #	( cd SKYLINE_SVD && $(MAKE) library )
-@@ -154,7 +150,6 @@ endif
- # both the dynamic and static libraries.
- static: metis
- 	( cd SuiteSparse_config && $(MAKE) static )
--	( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' static )
- 	( cd AMD && $(MAKE) static )
- 	( cd BTF && $(MAKE) static )
- 	( cd CAMD && $(MAKE) static )
-@@ -172,7 +167,6 @@ ifneq (,$(GPU_CONFIG))
- 	( cd GPUQREngine && $(MAKE) static )
- endif
- 	( cd SPQR && $(MAKE) static )
--	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' static )
- 	( cd SLIP_LU && $(MAKE) static )
- #	( cd PIRO_BAND && $(MAKE) static )
- #	( cd SKYLINE_SVD && $(MAKE) static )
-@@ -233,8 +227,6 @@ clean:
- 
- # Create the PDF documentation
- docs:
--	( cd GraphBLAS && $(MAKE) docs )
--	( cd Mongoose  && $(MAKE) docs )
- 	( cd AMD && $(MAKE) docs )
- 	( cd CAMD && $(MAKE) docs )
- 	( cd KLU && $(MAKE) docs )
diff --git a/SuiteSparse-externc.patch b/SuiteSparse-externc.patch
index 0f3442c..6c3df9b 100644
--- a/SuiteSparse-externc.patch
+++ b/SuiteSparse-externc.patch
@@ -1,31 +1,35 @@
---- SuiteSparse/SuiteSparse_config/SuiteSparse_config.h.orig	2023-01-08 20:43:25.056391141 +0100
-+++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.h	2023-01-08 20:44:40.592648593 +0100
-@@ -38,13 +38,13 @@
+--- SuiteSparse-6.0.1/SuiteSparse_config/SuiteSparse_config.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/SuiteSparse_config/SuiteSparse_config.h	2025-06-29 11:47:15.469380302 +0200
+@@ -19,11 +19,6 @@
  #ifndef SUITESPARSE_CONFIG_H
  #define SUITESPARSE_CONFIG_H
  
-+#include <limits.h>
-+#include <stdlib.h>
-+
- #ifdef __cplusplus
- extern "C" {
+-#ifdef __cplusplus
+-extern "C"
+-{
+-#endif
+-
+ //------------------------------------------------------------------------------
+ // SuiteSparse-wide ANSI C11 #include files
+ //------------------------------------------------------------------------------
+@@ -89,6 +84,11 @@ extern "C"
+ #include "matrix.h"
  #endif
  
--#include <limits.h>
--#include <stdlib.h>
--
- /* ========================================================================== */
- /* === SuiteSparse_long ===================================================== */
- /* ========================================================================== */
---- SuiteSparse/AMD/Include/amd.h.orig	2014-03-21 20:21:57.000000000 +0100
-+++ SuiteSparse/AMD/Include/amd.h	2023-01-04 20:58:16.230505798 +0100
-@@ -35,16 +35,16 @@
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
+ //------------------------------------------------------------------------------
+ // string and token handling macros
+ //------------------------------------------------------------------------------
+--- SuiteSparse-6.0.1/AMD/Include/amd.h.orig	2025-06-29 11:48:25.092336455 +0200
++++ SuiteSparse-6.0.1/AMD/Include/amd.h	2025-06-29 11:48:27.492323453 +0200
+@@ -35,13 +35,13 @@
  #ifndef AMD_H
  #define AMD_H
  
-+/* get the definition of size_t: */
-+#include <stddef.h>
-+
 +#include "SuiteSparse_config.h"
 +
  /* make it easy for C++ programs to include AMD */
@@ -33,17 +37,14 @@
  extern "C" {
  #endif
  
--/* get the definition of size_t: */
--#include <stddef.h>
--
 -#include "SuiteSparse_config.h"
 -
- int amd_order                  /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
-                                 * AMD_INVALID, or AMD_OUT_OF_MEMORY */
+ SUITESPARSE_PUBLIC int amd_order  /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
+                                     * AMD_INVALID, or AMD_OUT_OF_MEMORY */
  (
---- SuiteSparse/BTF/Include/btf.h.orig	2023-01-05 21:42:08.734841990 +0100
-+++ SuiteSparse/BTF/Include/btf.h	2023-01-05 21:42:11.574826604 +0100
-@@ -88,13 +88,13 @@
+--- SuiteSparse-6.0.1/BTF/Include/btf.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/BTF/Include/btf.h	2025-06-29 11:49:10.875421760 +0200
+@@ -90,13 +90,13 @@
  #ifndef _BTF_H
  #define _BTF_H
  
@@ -56,56 +57,48 @@
  
 -#include "SuiteSparse_config.h"
 -
- int btf_maxtrans    /* returns # of columns matched */
+ SUITESPARSE_PUBLIC
+ int32_t btf_maxtrans    /* returns # of columns matched */
  (
-     /* --- input, not modified: --- */
---- SuiteSparse/CAMD/Include/camd.h.orig	2014-03-21 20:21:51.000000000 +0100
-+++ SuiteSparse/CAMD/Include/camd.h	2023-01-07 11:34:30.942879513 +0100
-@@ -23,16 +23,16 @@
+--- SuiteSparse-6.0.1/CAMD/Include/camd.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CAMD/Include/camd.h	2025-06-29 11:50:04.145133173 +0200
+@@ -23,13 +23,13 @@
  #ifndef CAMD_H
  #define CAMD_H
  
--/* make it easy for C++ programs to include CAMD */
--#ifdef __cplusplus
--extern "C" {
--#endif
--
- /* get the definition of size_t: */
- #include <stddef.h>
- 
- #include "SuiteSparse_config.h"
- 
-+/* make it easy for C++ programs to include CAMD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
++#include "SuiteSparse_config.h"
 +
- int camd_order              /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
+ /* make it easy for C++ programs to include CAMD */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include "SuiteSparse_config.h"
+-
+ SUITESPARSE_PUBLIC int camd_order /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
                               * CAMD_INVALID, or CAMD_OUT_OF_MEMORY */
  (
---- SuiteSparse/CCOLAMD/Include/ccolamd.h.orig	2014-03-21 20:21:07.000000000 +0100
-+++ SuiteSparse/CCOLAMD/Include/ccolamd.h	2023-01-07 14:56:06.067354598 +0100
-@@ -16,14 +16,14 @@
+--- SuiteSparse-6.0.1/CCOLAMD/Include/ccolamd.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CCOLAMD/Include/ccolamd.h	2025-06-29 11:55:42.756632091 +0200
+@@ -16,13 +16,13 @@
  #ifndef CCOLAMD_H
  #define CCOLAMD_H
  
-+/* for size_t definition: */
-+#include <stdlib.h>
++#include "SuiteSparse_config.h"
 +
  /* make it easy for C++ programs to include CCOLAMD */
  #ifdef __cplusplus
  extern "C" {
  #endif
  
--/* for size_t definition: */
--#include <stdlib.h>
+-#include "SuiteSparse_config.h"
 -
  /* ========================================================================== */
  /* === CCOLAMD version ====================================================== */
  /* ========================================================================== */
---- SuiteSparse/COLAMD/Include/colamd.h.orig	2014-03-21 20:13:38.000000000 +0100
-+++ SuiteSparse/COLAMD/Include/colamd.h	2023-01-07 16:11:41.276118597 +0100
-@@ -44,17 +44,17 @@
+--- SuiteSparse-6.0.1/COLAMD/Include/colamd.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/COLAMD/Include/colamd.h	2025-06-29 11:56:15.536454507 +0200
+@@ -37,17 +37,17 @@
  #ifndef COLAMD_H
  #define COLAMD_H
  
@@ -118,7 +111,7 @@
  /* === Include files ======================================================== */
  /* ========================================================================== */
  
- #include <stdlib.h>
+ #include "SuiteSparse_config.h"
  
 +/* make it easy for C++ programs to include COLAMD */
 +#ifdef __cplusplus
@@ -128,103 +121,23 @@
  /* ========================================================================== */
  /* === COLAMD version ======================================================= */
  /* ========================================================================== */
---- SuiteSparse/CHOLMOD/Include/cholmod_blas.h.orig	2023-01-07 17:06:54.181504381 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_blas.h	2023-01-07 17:06:58.504814293 +0100
-@@ -15,6 +15,11 @@
- #ifndef CHOLMOD_BLAS_H
- #define CHOLMOD_BLAS_H
+--- SuiteSparse-6.0.1/CHOLMOD/Include/cholmod.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CHOLMOD/Include/cholmod.h	2025-06-29 11:57:34.549359791 +0200
+@@ -102,11 +102,6 @@
+ #define CHOLMOD_SUB_VERSION    0
+ #define CHOLMOD_SUBSUB_VERSION 1
  
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
+-/* make it easy for C++ programs to include CHOLMOD */
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
  /* ========================================================================== */
- /* === Architecture ========================================================= */
+ /* === Include/cholmod_io64 ================================================= */
  /* ========================================================================== */
-@@ -452,4 +457,8 @@ void BLAS_ZGER (BLAS_INT *m, BLAS_INT *n
-     } \
- }
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_camd.h.orig	2014-03-21 20:11:21.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_camd.h	2023-01-07 17:07:49.154539900 +0100
-@@ -31,6 +31,10 @@
- 
- #include "cholmod_core.h"
+@@ -147,6 +142,11 @@ extern "C" {
  
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* -------------------------------------------------------------------------- */
- /* cholmod_ccolamd */
- /* -------------------------------------------------------------------------- */
-@@ -99,4 +103,8 @@ int cholmod_camd
- int cholmod_l_camd (cholmod_sparse *, SuiteSparse_long *, size_t,
-     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_check.h.orig	2014-03-21 20:11:21.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_check.h	2023-01-07 17:08:22.791024342 +0100
-@@ -69,6 +69,11 @@
- #include "cholmod_core.h"
- #include <stdio.h>
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* -------------------------------------------------------------------------- */
- /* cholmod_check_common:  check the Common object */
- /* -------------------------------------------------------------------------- */
-@@ -424,4 +429,9 @@ int cholmod_write_dense
- 
- int cholmod_l_write_dense (FILE *, cholmod_dense *, const char *,
-     cholmod_common *) ;
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_cholesky.h.orig	2014-06-04 21:33:21.000000000 +0200
-+++ SuiteSparse/CHOLMOD/Include/cholmod_cholesky.h	2023-01-07 17:09:00.270821296 +0100
-@@ -67,6 +67,11 @@
- #include "cholmod_supernodal.h"
- #endif
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* -------------------------------------------------------------------------- */
- /* cholmod_analyze:  order and analyze (simplicial or supernodal) */
- /* -------------------------------------------------------------------------- */
-@@ -584,4 +589,8 @@ SuiteSparse_long cholmod_postorder	/* re
- SuiteSparse_long cholmod_l_postorder (SuiteSparse_long *, size_t,
-     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_core.h.orig	2015-07-15 05:18:18.000000000 +0200
-+++ SuiteSparse/CHOLMOD/Include/cholmod_core.h	2023-01-08 20:50:15.337501791 +0100
-@@ -289,6 +289,11 @@
- #define CHOLMOD_HOST_SUPERNODE_BUFFERS 8
- #define CHOLMOD_DEVICE_STREAMS 2
+ #include "SuiteSparse_config.h"
  
 +/* make it easy for C++ programs to include CHOLMOD */
 +#ifdef __cplusplus
@@ -232,43 +145,11 @@
 +#endif
 +
  /* ========================================================================== */
- /* === CHOLMOD objects ====================================================== */
+ /* === Include/cholmod_config.h ============================================= */
  /* ========================================================================== */
-@@ -2447,4 +2452,8 @@ int cholmod_l_version (int version [3])
- 
- #endif
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_gpu.h.orig	2018-12-23 03:18:58.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_gpu.h	2023-01-16 17:36:07.886049654 +0100
-@@ -23,6 +23,11 @@
- #endif
- #endif
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* CHOLMOD_GPU_PRINTF: for printing GPU debug error messages */
- /*
- #define CHOLMOD_GPU_PRINTF(args) printf args
-@@ -77,4 +82,8 @@ void cholmod_l_gpu_end ( cholmod_common
- int cholmod_gpu_allocate   ( cholmod_common *Common ) ;
- int cholmod_l_gpu_allocate ( cholmod_common *Common ) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_gpu_kernels.h.orig	2014-03-23 01:15:27.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_gpu_kernels.h	2023-01-07 17:14:19.432425583 +0100
-@@ -19,13 +19,13 @@
+--- SuiteSparse-6.0.1/CHOLMOD/GPU/cholmod_gpu_kernels.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CHOLMOD/GPU/cholmod_gpu_kernels.h	2025-06-29 12:00:00.441902756 +0200
+@@ -15,13 +15,13 @@
  #ifndef CHOLMODGPUKERNELS_H
  #define CHOLMODGPUKERNELS_H
  
@@ -281,138 +162,24 @@
  
 -#include "SuiteSparse_config.h"
 -
- int createMapOnDevice ( Int *d_Map, Int *d_Ls, Int psi, Int nsrow ); 
- 
- int createRelativeMapOnDevice ( Int *d_Map, Int *d_Ls, Int *d_RelativeMap,
---- SuiteSparse/CHOLMOD/Include/cholmod_matrixops.h.orig	2014-03-21 20:11:19.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_matrixops.h	2023-01-07 17:19:34.947382958 +0100
-@@ -37,6 +37,11 @@
- 
- #include "cholmod_core.h"
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* -------------------------------------------------------------------------- */
- /* cholmod_drop:  drop entries with small absolute value */
- /* -------------------------------------------------------------------------- */
-@@ -234,4 +239,8 @@ int cholmod_l_symmetry (cholmod_sparse *
-     SuiteSparse_long *, SuiteSparse_long *, SuiteSparse_long *,
-     cholmod_common *) ;
+ int createMapOnDevice ( int64_t *d_Map, int64_t *d_Ls, int64_t psi, int64_t nsrow ); 
  
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_modify.h.orig	2014-06-04 21:44:15.000000000 +0200
-+++ SuiteSparse/CHOLMOD/Include/cholmod_modify.h	2023-01-07 17:20:07.183874985 +0100
-@@ -47,6 +47,11 @@
- 
- #include "cholmod_core.h"
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* -------------------------------------------------------------------------- */
- /* cholmod_updown:  multiple rank update/downdate */
- /* -------------------------------------------------------------------------- */
-@@ -324,4 +329,8 @@ int cholmod_l_rowdel_mark (size_t, cholm
-     SuiteSparse_long *, cholmod_factor *, cholmod_dense *, cholmod_dense *,
-     cholmod_common *) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
+ int createRelativeMapOnDevice ( int64_t *d_Map, int64_t *d_Ls, 
+--- SuiteSparse-6.0.1/CSparse/Include/cs.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CSparse/Include/cs.h	2025-06-29 12:21:36.111550178 +0200
+@@ -12,6 +12,11 @@
+ #ifdef MATLAB_MEX_FILE
+ #include "mex.h"
  #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_partition.h.orig	2014-03-21 20:11:21.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_partition.h	2023-01-07 17:20:32.837069343 +0100
-@@ -40,6 +40,11 @@
- #include "cholmod_core.h"
- #include "cholmod_camd.h"
- 
-+/* make it easy for C++ programs to include CHOLMOD */
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
 +
- /* -------------------------------------------------------------------------- */
- /* cholmod_nested_dissection */
- /* -------------------------------------------------------------------------- */
-@@ -163,4 +168,8 @@ SuiteSparse_long cholmod_collapse_septre
- SuiteSparse_long cholmod_l_collapse_septree (size_t, size_t, double, size_t,
-     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod_supernodal.h.orig	2014-03-21 20:11:21.000000000 +0100
-+++ SuiteSparse/CHOLMOD/Include/cholmod_supernodal.h	2023-01-07 17:21:07.966879028 +0100
-@@ -49,6 +49,11 @@
- 
- #include "cholmod_core.h"
- 
-+/* make it easy for C++ programs to include CHOLMOD */
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
- /* -------------------------------------------------------------------------- */
- /* cholmod_super_symbolic */
- /* -------------------------------------------------------------------------- */
-@@ -169,4 +174,8 @@ int cholmod_super_ltsolve
- int cholmod_l_super_ltsolve (cholmod_factor *, cholmod_dense *, cholmod_dense *,
-     cholmod_common *) ;
- 
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif
---- SuiteSparse/CHOLMOD/Include/cholmod.h.orig	2014-09-16 22:27:35.000000000 +0200
-+++ SuiteSparse/CHOLMOD/Include/cholmod.h	2023-01-08 20:50:28.674096207 +0100
-@@ -75,11 +75,6 @@
- #ifndef CHOLMOD_H
- #define CHOLMOD_H
- 
--/* make it easy for C++ programs to include CHOLMOD */
--#ifdef __cplusplus
--extern "C" {
--#endif
--
- /* assume large file support.  If problems occur, compile with -DNLARGEFILE */
- #include "cholmod_io64.h"
- 
-@@ -123,8 +118,4 @@ extern "C" {
- #include "cholmod_gpu.h"
- #endif
- 
--#ifdef __cplusplus
--}
--#endif
--
- #endif
---- SuiteSparse/CSparse/Include/cs.h.orig	2017-09-12 18:46:19.000000000 +0200
-+++ SuiteSparse/CSparse/Include/cs.h	2023-01-12 18:45:36.412409364 +0100
-@@ -14,6 +14,10 @@
- #define CS_DATE "Sept 12, 2017"       /* CSparse release date */
- #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2016"
- 
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- #ifdef MATLAB_MEX_FILE
- #undef csi
- #define csi mwSignedIndex
-@@ -149,4 +153,9 @@ csn *cs_ndone (csn *N, cs *C, void *w, v
+ #define CS_VER 4  /* CSparse Version */
+ #define CS_SUBVER 0
+ #define CS_SUBSUB 0
+@@ -149,4 +154,9 @@ csn *cs_ndone (csn *N, cs *C, void *w, v
  #define CS_MARK(w,j) { w [j] = CS_FLIP (w [j]) ; }
  #define CS_CSC(A) (A && (A->nz == -1))
  #define CS_TRIPLET(A) (A && (A->nz >= 0))
@@ -422,30 +189,28 @@
 +#endif
 +
  #endif
---- SuiteSparse/CXSparse/Include/cs.h.orig	2014-03-25 15:57:05.000000000 +0100
-+++ SuiteSparse/CXSparse/Include/cs.h	2023-01-07 20:23:44.164190879 +0100
-@@ -14,7 +14,6 @@
- #include <complex>
- typedef std::complex<double> cs_complex_t ;
- #endif
--extern "C" {
- #else
- #ifndef NCOMPLEX
- #include <complex.h>
-@@ -34,6 +33,10 @@ extern "C" {
- #define cs_long_t_id    SuiteSparse_long_id
- #define cs_long_t_max   SuiteSparse_long_max
+--- SuiteSparse-6.0.1/CXSparse/Include/cs.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/CXSparse/Include/cs.h	2025-06-29 12:23:59.074109017 +0200
+@@ -26,6 +26,8 @@
+ #ifndef _CXS_H
+ #define _CXS_H
  
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
++#include "SuiteSparse_config.h"
 +
- /* -------------------------------------------------------------------------- */
- /* double/int version of CXSparse */
- /* -------------------------------------------------------------------------- */
---- SuiteSparse/KLU/Include/klu.h.orig	2014-03-21 20:21:26.000000000 +0100
-+++ SuiteSparse/KLU/Include/klu.h	2023-01-07 19:11:09.271116694 +0100
-@@ -7,15 +7,15 @@
+ #ifdef __cplusplus
+ #ifndef NCOMPLEX
+ #include <complex>
+@@ -46,7 +48,6 @@ extern "C" {
+ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2022"
+ #define CXSPARSE
+ 
+-#include "SuiteSparse_config.h"
+ #define cs_long_t       int64_t
+ #define cs_long_t_id    "%" PRId64
+ #define cs_long_t_max   INT64_MAX
+--- SuiteSparse-6.0.1/KLU/Include/klu.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/KLU/Include/klu.h	2025-06-29 12:24:26.447294057 +0200
+@@ -13,15 +13,15 @@
  #ifndef _KLU_H
  #define _KLU_H
  
@@ -465,72 +230,88 @@
  /* -------------------------------------------------------------------------- */
  /* Symbolic object - contains the pre-ordering computed by klu_analyze */
  /* -------------------------------------------------------------------------- */
---- SuiteSparse/LDL/Include/ldl.h.orig	2016-05-04 22:45:33.000000000 +0200
-+++ SuiteSparse/LDL/Include/ldl.h	2023-01-11 20:43:28.728830972 +0100
-@@ -38,6 +38,10 @@
+--- SuiteSparse-6.0.1/LDL/Include/ldl.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/LDL/Include/ldl.h	2025-06-29 12:25:09.873725462 +0200
+@@ -9,6 +9,10 @@
  
- #endif
+ #include "SuiteSparse_config.h"
  
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
- /* ========================================================================== */
- /* === int version ========================================================== */
- /* ========================================================================== */
-@@ -110,3 +114,6 @@ SuiteSparse_long ldl_l_valid_matrix ( Su
- #define LDL_SUBSUB_VERSION 6
+ #ifdef LDL_LONG
+ #define LDL_int int64_t
+ #define LDL_ID  "%" PRId64
+@@ -123,3 +127,6 @@ int64_t ldl_l_valid_matrix ( int64_t n,
+ #define LDL_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
  #define LDL_VERSION LDL_VERSION_CODE(LDL_MAIN_VERSION,LDL_SUB_VERSION)
  
 +#ifdef __cplusplus
 +}
 +#endif
---- SuiteSparse/RBio/Include/RBio.h.orig	2014-03-21 20:22:01.000000000 +0100
-+++ SuiteSparse/RBio/Include/RBio.h	2023-01-07 20:55:56.607055271 +0100
-@@ -46,10 +46,6 @@
+--- SuiteSparse-6.0.1/RBio/Include/RBio.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/RBio/Include/RBio.h	2025-06-29 12:26:00.230119325 +0200
+@@ -47,12 +47,12 @@
+ /* include files */
+ /* -------------------------------------------------------------------------- */
  
- #include "SuiteSparse_config.h"
++#include "SuiteSparse_config.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
  
--#ifdef __cplusplus
--extern "C" {
--#endif
+-#include "SuiteSparse_config.h"
 -
- #include <stddef.h>
- #include <string.h>
- #include <stdio.h>
-@@ -60,6 +56,10 @@ extern "C" {
- #include "mex.h"
- #endif
+ /* -------------------------------------------------------------------------- */
+ /* error codes */
+ /* -------------------------------------------------------------------------- */
+--- SuiteSparse-6.0.1/SPEX/Include/SPEX.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/SPEX/Include/SPEX.h	2025-06-29 12:29:05.822447218 +0200
+@@ -255,6 +255,10 @@
+ #include <assert.h>
+ #include "SuiteSparse_config.h"
  
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
- /* -------------------------------------------------------------------------- */
- /* error codes */
- /* -------------------------------------------------------------------------- */
---- SuiteSparse/SPQR/Include/SuiteSparseQR_C.h.orig	2012-05-28 01:00:20.000000000 +0200
-+++ SuiteSparse/SPQR/Include/SuiteSparseQR_C.h	2023-01-07 21:28:30.366470847 +0100
-@@ -11,7 +11,6 @@
+ //------------------------------------------------------------------------------
+ // Version
+ //------------------------------------------------------------------------------
+@@ -952,5 +956,9 @@ SPEX_info SPEX_Left_LU_solve         //
+     const SPEX_options* option
+ ) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+ 
+--- SuiteSparse-6.0.1/SPQR/Include/SuiteSparseQR_C.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/SPQR/Include/SuiteSparseQR_C.h	2025-06-29 12:31:45.671581241 +0200
+@@ -10,6 +10,8 @@
+ #ifndef SUITESPARSEQR_C_H
+ #define SUITESPARSEQR_C_H
+ 
++#include "cholmod.h"
++
+ #ifdef __cplusplus
  /* If included by a C++ program, the Complex type is std::complex<double> */
  #include <complex>
- #define Complex std::complex<double>
--extern "C" {
+@@ -17,7 +19,6 @@
+ extern "C" {
  #endif
  
- #include "cholmod.h"
-@@ -22,6 +21,8 @@ extern "C" {
-    size n, which the C code must then interpret as double array of size 2*n,
-    with real and imaginary parts interleaved. */
- #define Complex double
-+#else
-+extern "C" {
- #endif
+-#include "cholmod.h"
+ #include "SuiteSparseQR_definitions.h"
  
- /* ========================================================================== */
---- SuiteSparse/SPQR/Include/SuiteSparseQR.hpp.orig	2023-01-16 17:36:42.955859665 +0100
-+++ SuiteSparse/SPQR/Include/SuiteSparseQR.hpp	2023-01-16 17:37:05.512404132 +0100
-@@ -15,11 +15,8 @@
+ #ifndef __cplusplus
+--- SuiteSparse-6.0.1/SPQR/Include/SuiteSparseQR.hpp.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/SPQR/Include/SuiteSparseQR.hpp	2025-06-29 12:32:21.588053332 +0200
+@@ -18,11 +18,8 @@
  #include <cublas_v2.h>
  #endif
  #define SUITESPARSE_GPU_EXTERN_ON
@@ -542,52 +323,33 @@
  #undef SUITESPARSE_GPU_EXTERN_ON
  
  // =============================================================================
---- SuiteSparse/SPQR/Include/spqr.hpp.orig	2014-03-19 20:39:23.000000000 +0100
-+++ SuiteSparse/SPQR/Include/spqr.hpp	2023-01-07 21:29:30.076147372 +0100
-@@ -1015,9 +1015,7 @@ inline Long spqr_mult (Long a, Long b, i
- // To compile SuiteSparseQR with 64-bit BLAS, use -DBLAS64.  See also
- // CHOLMOD/Include/cholmod_blas.h
- 
--extern "C" {
- #include "cholmod_blas.h"
--}
+--- SuiteSparse-6.0.1/UMFPACK/Include/umfpack.h.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/UMFPACK/Include/umfpack.h	2025-06-29 12:52:00.021669209 +0200
+@@ -18,6 +18,13 @@
+ #ifndef UMFPACK_H
+ #define UMFPACK_H
  
- #undef CHECK_BLAS_INT
- #undef EQ
---- SuiteSparse/UMFPACK/Include/umfpack.h.orig	2014-03-21 20:16:08.000000000 +0100
-+++ SuiteSparse/UMFPACK/Include/umfpack.h	2023-01-07 21:59:54.662929404 +0100
-@@ -22,10 +22,6 @@
++//------------------------------------------------------------------------------
++// include files for other packages: SuiteSparse_config and AMD
++//------------------------------------------------------------------------------
++
++#include "SuiteSparse_config.h"
++#include "amd.h"
++
+ /* -------------------------------------------------------------------------- */
  /* Make it easy for C++ programs to include UMFPACK */
  /* -------------------------------------------------------------------------- */
+@@ -26,13 +33,6 @@
+ extern "C" {
+ #endif
  
--#ifdef __cplusplus
--extern "C" {
--#endif
+-//------------------------------------------------------------------------------
+-// include files for other packages: SuiteSparse_config and AMD
+-//------------------------------------------------------------------------------
 -
- #include "SuiteSparse_config.h"
- 
- /* -------------------------------------------------------------------------- */
-@@ -42,6 +38,13 @@ extern "C" {
- /* User-callable routines */
- /* -------------------------------------------------------------------------- */
- 
-+/* AMD */
-+#include "amd.h"
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /* Primary routines: */
- #include "umfpack_symbolic.h"
- #include "umfpack_numeric.h"
-@@ -85,9 +88,6 @@ extern "C" {
- #include "umfpack_timer.h"
- #include "umfpack_tictoc.h"
- 
--/* AMD */
+-#include "SuiteSparse_config.h"
 -#include "amd.h"
 -
- /* global function pointers */
- #include "umfpack_global.h"
- 
+ /* -------------------------------------------------------------------------- */
+ /* size of Info and Control arrays */
+ /* -------------------------------------------------------------------------- */
diff --git a/SuiteSparse-link.patch b/SuiteSparse-link.patch
new file mode 100644
index 0000000..1d47186
--- /dev/null
+++ b/SuiteSparse-link.patch
@@ -0,0 +1,25 @@
+--- SuiteSparse-6.0.1/SPQR/CMakeLists.txt.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/SPQR/CMakeLists.txt	2025-06-29 13:26:27.497135399 +0200
+@@ -193,9 +193,9 @@ endif ( )
+ # BLAS:
+ message ( STATUS "BLAS libraries:      ${BLAS_LIBRARIES} ")
+ message ( STATUS "BLAS linker flags:   ${BLAS_LINKER_FLAGS} ")
+-target_link_libraries ( spqr PUBLIC ${BLAS_LIBRARIES} )
++target_link_libraries ( spqr PUBLIC ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
+ if ( NOT NSTATIC )
+-target_link_libraries ( spqr_static PUBLIC ${BLAS_LIBRARIES} )
++target_link_libraries ( spqr_static PUBLIC ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
+ endif ( )
+ include_directories ( ${BLAS_INCLUDE_DIRS} )
+ 
+--- SuiteSparse-6.0.1/Mongoose/CMakeLists.txt.orig	2022-11-14 01:04:25.000000000 +0100
++++ SuiteSparse-6.0.1/Mongoose/CMakeLists.txt	2025-06-29 20:30:50.805855483 +0200
+@@ -175,7 +175,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMA
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+ 
+ # Build the Mongoose library
+-add_library(mongoose_lib ${MONGOOSE_LIB_FILES})
++add_library(mongoose_lib STATIC ${MONGOOSE_LIB_FILES})
+ set_property(TARGET mongoose_lib PROPERTY POSITION_INDEPENDENT_CODE ON)
+ set_target_properties(mongoose_lib
+         PROPERTIES OUTPUT_NAME mongoose)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/SuiteSparse.git/commitdiff/8995edb4d04d2ad628458f572c7fe70d62a15c06



More information about the pld-cvs-commit mailing list