Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package suitesparse for openSUSE:Factory checked in at 2024-02-15 20:58:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/suitesparse (Old) and /work/SRC/openSUSE:Factory/.suitesparse.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suitesparse" Thu Feb 15 20:58:50 2024 rev:46 rq:1146515 version:7.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/suitesparse/suitesparse.changes 2023-04-27 19:59:50.689541182 +0200 +++ /work/SRC/openSUSE:Factory/.suitesparse.new.1815/suitesparse.changes 2024-02-15 20:59:05.305196503 +0100 @@ -1,0 +2,140 @@ +Fri Feb 9 10:10:31 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildserv...@uncomfyhalomacro.pl> + +- Cleanup specfile + * Inform that keep-mongoose-test-sources.patch is not for upstream + * Inform that the python file is for convenience for fetching test + sources. See README-suse-maintenance.md. + +------------------------------------------------------------------- +Wed Jan 24 13:39:23 UTC 2024 - Atri Bhattacharya <badshah...@gmail.com> + +- Set up cmake options just once -- during %build alone. +- Drop usage of cmake internal macros when specifying install + paths. +- CMake >= 3.22 is now required for build; this automatically + drops support for openSUSE < 1650 (i.e. Leap 15.x). +- Drop conditionals for old unsupported distro versions, they + cannot support builds on account of the previous change anyway. +- Drop use of '-ffat-lto-objects' when building with LTO: this is + only needed for static libs, not built here. +- Only unset MALLOC_* when LTO is being used. +- Use once consistent version for all libraries, set to source + tarball. +- Drop more than five-year old Obsoletes/Provides; developers + should use pkgconfig based (Build)Requires or directly use + %{name}-devel. +- Drop suitesparse-rpmlintrc and make -doc packages noarch. + +------------------------------------------------------------------- +Tue Jan 16 11:25:21 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildserv...@uncomfyhalomacro.pl> + +- Update to version 7.5.1 (boo#1208165): + * SuiteSparse_config: bug fix to SUITESPARSE__VERCODE macro. + * Example 1.6.1: add tests for *__VERSION macros. +- Changes introduced since 7.5.0: + * Suitesparse_config: 7.5.0, to reflect the addition of + GraphBLAS 9.0.0. + * Minor updates to build system, including bug fixes when + specifying a specific BLAS/LAPACK library, and configuration + of *.pc files. + * GraphBLAS 9.0.0: supporting the v2.1 C API; see + https://github.com/GraphBLAS/graphblas-api-c + * Example 1.6.0: using GraphBLAS 9.0.0 and SuiteSparse_config + 7.5.0, + * Remove explicit dependencies on OpenMP, libm, GMP, and MPFR. + * Add programs to test the *Config.cmake of each package. + * All other packages (except CSparse): minor updates to build + system. + * Package versions in this release: + - SuiteSparse_config 7.5.0 + - AMD 3.3.1 + - BTF 2.3.1 + - CAMD 3.3.1 + - CCOLAMD 3.3.1 + - CHOLMOD 5.1.1 + - COLAMD 3.3.1 + - CSparse 4.3.0 (unchanged from SuiteSparse 7.4.0) + - CXSparse 4.3.1 + - Example 1.6.0 + - GraphBLAS 9.0.0 + - KLU 2.3.1 + - LDL 3.3.1 + - LAGraph 1.1.1 + - SuiteSparse_Mongoose 3.3.1 + - ParU 0.1.1 + - RBio 4.3.1 + - SPEX 2.3.1 + - SPQR 4.3.1 + - UMFPACK 6.3.1 +- Changes introduced since 7.4.0: + * Major change to build system: + - Includes a top-level CMakeLists.txt that builds all + packages. + - Support for pkg-config. + * LAGraph 1.1.0: new package: graph algorithms based on + GraphBLAS + * ParU 0.1.0: new package: parallel unsymmetric multifrontal + method. + * CHOLMOD 5.1.0: full support for sparse single precision + matrices, bug fixes in the GPU Module. + * AMD 3.3.0: minor change for CHOLMOD 5.1.0 tests + * CAMD 3.3.0: minor change for CHOLMOD 5.1.0 tests + * SuiteSparse_config 7.4.0: added wrappers for single-precision + BLAS/LAPACK, added SUITESPARSE_TIME macro. + * *_version: added methods to all package that didn't have them: + AMD, CAMD, COLAMD, CCOLAMD, BTF, CSparse, CXSparse, KLU, BTF, + RBio, SPEX, SPQR, and UMFPACK. +- Add new subpackage suitesparse_mongoose, an executable for + Mongoose. +- Specfile now runs patchelf for broken RPATHs. +- Add keep-mongoose-test-sources.patch. This avoids test sources + getting deleted. +- Remove not needed patchsets: + * build_csparse_shared.patch + * bnc775418-enable-SuiteSparse_time-symbol.patch +- Use BLAS environment variable when choosing over -lopenblas + and -lblas +- Add list-mongoose-test-sources.py: a helper script to list + matrix ids mentioned in the test step of the build of Mongoose's + CMakeLists.txt +- Add new test tarballs for mongoose from + list-mongoose-test-sources.py: + * 1138_bus.tar.gz + * 494_bus.tar.gz + * 662_bus.tar.gz + * 685_bus.tar.gz + * arc130.tar.gz + * ash292.tar.gz + * ash85.tar.gz + * bcspwr01.tar.gz + * bcspwr02.tar.gz + * bcspwr03.tar.gz + * bcspwr09.tar.gz + * bcsstk17.tar.gz + * bcsstm02.tar.gz + * jagmesh7.tar.gz + * lnsp3937.tar.gz + * lshp3466.tar.gz + * sherman1.tar.gz + * sstmodel.tar.gz + * crystm01.tar.gz + * msc04515.tar.gz + * G42.tar.gz + * nasa4704.tar.gz + * fxm3_6.tar.gz + * net25.tar.gz + * LF10000.tar.gz + * Erdos992.tar.gz + * USpowerGrid.tar.gz + * yeast.tar.gz + * c-38.tar.gz + * c-43.tar.gz + * minnesota.tar.gz + * netscience.tar.gz + * netz4504.tar.gz + * delaunay_n13.tar.gz + * tx2010.tar.gz +- _constraints: Increase disk size to 40G +- Add README-suse-maintenance.md + +------------------------------------------------------------------- Old: ---- SuiteSparse-5.13.0.tar.gz bnc775418-enable-SuiteSparse_time-symbol.patch build_csparse_shared.patch suitesparse-rpmlintrc New: ---- 1138_bus.tar.gz 494_bus.tar.gz 662_bus.tar.gz 685_bus.tar.gz Erdos992.tar.gz G42.tar.gz LF10000.tar.gz README-suse-maintenance.md SuiteSparse-7.5.1.tar.gz USpowerGrid.tar.gz arc130.tar.gz ash292.tar.gz ash85.tar.gz bcspwr01.tar.gz bcspwr02.tar.gz bcspwr03.tar.gz bcspwr09.tar.gz bcsstk17.tar.gz bcsstm02.tar.gz c-38.tar.gz c-43.tar.gz crystm01.tar.gz delaunay_n13.tar.gz fxm3_6.tar.gz jagmesh7.tar.gz keep-mongoose-test-sources.patch list-mongoose-test-sources.py lnsp3937.tar.gz lshp3466.tar.gz minnesota.tar.gz msc04515.tar.gz nasa4704.tar.gz net25.tar.gz netscience.tar.gz netz4504.tar.gz sherman1.tar.gz ssstats.csv sstmodel.tar.gz tx2010.tar.gz yeast.tar.gz BETA DEBUG BEGIN: Old: * build_csparse_shared.patch * bnc775418-enable-SuiteSparse_time-symbol.patch - Use BLAS environment variable when choosing over -lopenblas Old:- Remove not needed patchsets: * build_csparse_shared.patch * bnc775418-enable-SuiteSparse_time-symbol.patch BETA DEBUG END: BETA DEBUG BEGIN: New:- Cleanup specfile * Inform that keep-mongoose-test-sources.patch is not for upstream * Inform that the python file is for convenience for fetching test BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ suitesparse.spec ++++++ --- /var/tmp/diff_new_pack.C9v1WZ/_old 2024-02-15 20:59:08.513312355 +0100 +++ /var/tmp/diff_new_pack.C9v1WZ/_new 2024-02-15 20:59:08.513312355 +0100 @@ -1,7 +1,7 @@ # # spec file for package suitesparse # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%ifarch %{arm} +%ifarch %{arm} aarch64 %define _lto_cflags %{nil} %endif @@ -29,72 +29,125 @@ Name: suitesparse Summary: A collection of sparse matrix libraries License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later -Group: Development/Libraries/C and C++ -Version: 5.13.0 +Version: 7.5.1 Release: 0 +Group: Development/Libraries/C and C++ URL: https://people.engr.tamu.edu/davis/suitesparse.html Source0: https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v%{version}.tar.gz#/SuiteSparse-%{version}.tar.gz -Source2: %{name}-rpmlintrc -# PATCH-FIX-OPENSUSE build_csparse_shared.patch -- Build CSparse as a shared library -Patch1: build_csparse_shared.patch -Patch775418: bnc775418-enable-SuiteSparse_time-symbol.patch -%if 0%{?suse_version} < 1500 -BuildRequires: gcc7 -BuildRequires: gcc7-c++ -%else +Source1: https://sparse.tamu.edu/files/ssstats.csv + +# Add our manually written for-convenience python script that lists all other sources +# This script is basically a modification of the runTests script +# https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/dev/Mongoose/Tests/runTests +Source2: list-mongoose-test-sources.py +Source3: README-suse-maintenance.md +# Sources needed for tests, numbered starting from 100 +Source100: https://sparse.tamu.edu/MM/HB/1138_bus.tar.gz +Source101: https://sparse.tamu.edu/MM/HB/494_bus.tar.gz +Source102: https://sparse.tamu.edu/MM/HB/662_bus.tar.gz +Source103: https://sparse.tamu.edu/MM/HB/685_bus.tar.gz +Source104: https://sparse.tamu.edu/MM/HB/arc130.tar.gz +Source105: https://sparse.tamu.edu/MM/HB/ash292.tar.gz +Source106: https://sparse.tamu.edu/MM/HB/ash85.tar.gz +Source107: https://sparse.tamu.edu/MM/HB/bcspwr01.tar.gz +Source108: https://sparse.tamu.edu/MM/HB/bcspwr02.tar.gz +Source109: https://sparse.tamu.edu/MM/HB/bcspwr03.tar.gz +Source110: https://sparse.tamu.edu/MM/HB/bcspwr09.tar.gz +Source111: https://sparse.tamu.edu/MM/HB/bcsstk17.tar.gz +Source112: https://sparse.tamu.edu/MM/HB/bcsstm02.tar.gz +Source113: https://sparse.tamu.edu/MM/HB/jagmesh7.tar.gz +Source114: https://sparse.tamu.edu/MM/HB/lnsp3937.tar.gz +Source115: https://sparse.tamu.edu/MM/HB/lshp3466.tar.gz +Source116: https://sparse.tamu.edu/MM/HB/sherman1.tar.gz +Source117: https://sparse.tamu.edu/MM/HB/sstmodel.tar.gz +Source118: https://sparse.tamu.edu/MM/Boeing/crystm01.tar.gz +Source119: https://sparse.tamu.edu/MM/Boeing/msc04515.tar.gz +Source120: https://sparse.tamu.edu/MM/Gset/G42.tar.gz +Source121: https://sparse.tamu.edu/MM/Nasa/nasa4704.tar.gz +Source122: https://sparse.tamu.edu/MM/Andrianov/fxm3_6.tar.gz +Source123: https://sparse.tamu.edu/MM/Andrianov/net25.tar.gz +Source124: https://sparse.tamu.edu/MM/Oberwolfach/LF10000.tar.gz +Source125: https://sparse.tamu.edu/MM/Pajek/Erdos992.tar.gz +Source126: https://sparse.tamu.edu/MM/Pajek/USpowerGrid.tar.gz +Source127: https://sparse.tamu.edu/MM/Pajek/yeast.tar.gz +Source128: https://sparse.tamu.edu/MM/Schenk_IBMNA/c-38.tar.gz +Source129: https://sparse.tamu.edu/MM/Schenk_IBMNA/c-43.tar.gz +Source130: https://sparse.tamu.edu/MM/Gleich/minnesota.tar.gz +Source131: https://sparse.tamu.edu/MM/Newman/netscience.tar.gz +Source132: https://sparse.tamu.edu/MM/AG-Monien/netz4504.tar.gz +Source133: https://sparse.tamu.edu/MM/DIMACS10/delaunay_n13.tar.gz +Source134: https://sparse.tamu.edu/MM/DIMACS10/tx2010.tar.gz + +# This patch is to keep our test sources since upstream has to likely update +# their sources for tests. This is not a fix for upstream but to adapt with +# how open build service works since it disallows network connections during +# the build. +Patch1: keep-mongoose-test-sources.patch +BuildRequires: cmake >= 3.22 +BuildRequires: fdupes BuildRequires: gcc >= 4.9 BuildRequires: gcc-c++ >= 4.9 -%endif -BuildRequires: chrpath -BuildRequires: cmake >= 3.13 BuildRequires: gcc-fortran BuildRequires: gmp-devel BuildRequires: lapack-devel BuildRequires: m4 +BuildRequires: make BuildRequires: memory-constraints BuildRequires: metis-devel BuildRequires: mpfr-devel BuildRequires: tbb-devel +BuildRequires: valgrind %if %{with openblas} BuildRequires: openblas-devel +%else +BuildRequires: blas-devel %endif -%define amdver 2.4.6 -%define btfver 1.2.6 -%define camdver 2.4.6 -%define ccolamdver 2.9.6 -%define cholmodver 3.0.14 -%define colamdver 2.9.6 -%define csparsever 3.2.0 -%define cxsparsever 3.2.0 -%define graphblasver 7.2.0 -%define kluver 1.3.9 -%define ldlver 2.2.6 -%define mongoosever 2.0.4 -%define rbiover 2.2.6 -%define slipluver 1.0.2 -%define spqrver 2.1.0 -%define umfpackver 5.7.9 -# Your need define even it's just the same as main package -# or the %%build loop will override %%version with umfpack's version. -%define configver 5.13.0 -%define csparsemajor %(echo "%{csparsever}" | cut -d "." -f1) -%define amdlib %(echo "libamd%{amdver}" | cut -d "." -f1) -%define btflib %(echo "libbtf%{btfver}" | cut -d "." -f1) -%define camdlib %(echo "libcamd%{camdver}" | cut -d "." -f1) -%define ccolamdlib %(echo "libccolamd%{ccolamdver}" | cut -d "." -f1) -%define cholmodlib %(echo "libcholmod%{cholmodver}" | cut -d "." -f1) -%define colamdlib %(echo "libcolamd%{colamdver}" | cut -d "." -f1) -%define csparselib %(echo "libcsparse%{csparsever}" | cut -d "." -f1) -%define cxsparselib %(echo "libcxsparse%{cxsparsever}" | cut -d "." -f1) -%define graphblaslib %(echo "libgraphblas%{graphblasver}" | cut -d "." -f1) -%define klulib %(echo "libklu%{kluver}" | cut -d "." -f1) -%define ldllib %(echo "libldl%{ldlver}" | cut -d "." -f1) -%define mongooselib %(echo "libmongoose%{mongoosever}" | cut -d "." -f1) -%define rbiolib %(echo "librbio%{rbiover}" | cut -d "." -f1) -%define sliplulib %(echo "libsliplu%{slipluver}" | cut -d "." -f1) -%define spqrlib %(echo "libspqr%{spqrver}" | cut -d "." -f1) -%define umfpacklib %(echo "libumfpack%{umfpackver}" | cut -d "." -f1) -%define configlib %(echo "libsuitesparseconfig%{configver}" | cut -d "." -f1) +%define amd_sover 3 +%define btf_sover 2 +%define camd_sover 3 +%define ccolamd_sover 3 +%define cholmod_sover 5 +%define colamd_sover 3 +%define config_sover 7 +%define csparse_sover 4 +%define cxsparse_sover 4 +%define graphblas_sover 9 +%define klu_sover 2 +%define ldl_sover 3 +%define lagraph_sover 1 +%define lagraphx_sover 1 +%define paru_sover 0 +%define mongoose_sover 3 +%define suitesparse_mongoose_sover 3 +%define rbio_sover 4 +%define sliplu_sover 1 +%define spex_sover 2 +%define spqr_sover 4 +%define umfpack_sover 6 +%define klu_cholmod_sover 2 +%define amdlib libamd%{amd_sover} +%define btflib libbtf%{btf_sover} +%define camdlib libcamd%{camd_sover} +%define ccolamdlib libccolamd%{ccolamd_sover} +%define cholmodlib libcholmod%{cholmod_sover} +%define colamdlib libcolamd%{colamd_sover} +%define configlib libsuitesparseconfig%{config_sover} +%define csparselib libcsparse%{csparse_sover} +%define cxsparselib libcxsparse%{cxsparse_sover} +%define graphblaslib libgraphblas%{graphblas_sover} +%define suitesparse_mongooselib libsuitesparse_mongoose%{suitesparse_mongoose_sover} +%define parulib libparu%{paru_sover} +%define lagraphlib liblagraph%{lagraph_sover} +%define lagraphxlib liblagraphx%{lagraphx_sover} +%define klulib libklu%{klu_sover} +%define ldllib libldl%{ldl_sover} +%define mongooselib libmongoose%{mongoose_sover} +%define rbiolib librbio%{rbio_sover} +%define spexlib libspex%{spex_sover} +%define spqrlib libspqr%{spqr_sover} +%define umfpacklib libumfpack%{umfpack_sover} +%define klu_cholmodlib libklu_cholmod%{klu_cholmod_sover} +%{?suse_build_hwcaps_libs} %description suitesparse is a collection of libraries for computations involving sparse @@ -104,81 +157,36 @@ Summary: Development headers for SuiteSparse License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later Group: Development/Libraries/C and C++ -%if 0%{?suse_version} < 1500 -Requires: gcc7-c++ -%else -Requires: gcc-c++ >= 4.9 -%endif -Requires: %{amdlib} = %{amdver} -Requires: %{btflib} = %{btfver} -Requires: %{camdlib} = %{camdver} -Requires: %{ccolamdlib} = %{ccolamdver} -Requires: %{cholmodlib} = %{cholmodver} -Requires: %{colamdlib} = %{colamdver} -Requires: %{configlib} = %{configver} +Requires: %{amdlib} = %{version} +Requires: %{btflib} = %{version} +Requires: %{camdlib} = %{version} +Requires: %{ccolamdlib} = %{version} +Requires: %{cholmodlib} = %{version} +Requires: %{colamdlib} = %{version} Requires: %{configlib} = %{version} -Requires: %{csparselib} = %{csparsever} -Requires: %{cxsparselib} = %{cxsparsever} -Requires: %{graphblaslib} = %{graphblasver} -Requires: %{klulib} = %{kluver} -Requires: %{ldllib} = %{ldlver} -Requires: %{mongooselib} = %{mongoosever} -Requires: %{rbiolib} = %{rbiover} -Requires: %{sliplulib} = %{slipluver} -Requires: %{spqrlib} = %{spqrver} -Requires: %{umfpacklib} = %{umfpackver} +Requires: %{configlib} = %{version} +Requires: %{cxsparselib} = %{version} +Requires: %{graphblaslib} = %{version} +Requires: %{klu_cholmodlib} = %{version} +Requires: %{klu_cholmodlib} = %{version} +Requires: %{klulib} = %{version} +Requires: %{lagraphlib} = %{version} +Requires: %{lagraphxlib} = %{version} +Requires: %{ldllib} = %{version} +Requires: %{parulib} = %{version} +Requires: %{rbiolib} = %{version} +Requires: %{spexlib} = %{version} +Requires: %{spqrlib} = %{version} +Requires: %{suitesparse_mongooselib} = %{version} +Requires: %{umfpacklib} = %{version} +Requires: gcc-c++ >= 4.9 Requires: metis-devel %if %{with openblas} Requires: openblas-devel %else -Requires: lapack-devel +Requires: blas-devel %endif Requires: tbb-devel -# make sure developers can find these packages -Provides: SuiteSparse_config = %{version} -Obsoletes: SuiteSparse_config < %{version} -Provides: amd-devel = %{amdver} -Obsoletes: amd-devel < %{amdver} -Provides: suitesparse-common-devel = %{version} -Obsoletes: suitesparse-common-devel < %{version} -Provides: umfpack-devel = %{umfpackver} -Obsoletes: umfpack-devel < %{umfpackver} -Provides: libamd-devel = %{amdver} -Obsoletes: libamd-devel < %{amdver} -Provides: libbtf-devel = %{btfver} -Obsoletes: libbtf-devel < %{btfver} -Provides: libcamd-devel = %{camdver} -Obsoletes: libcamd-devel < %{camdver} -Provides: libccolamd-devel = %{ccolamdver} -Obsoletes: libccolamd-devel < %{ccolamdver} -Provides: libcholmod-devel = %{cholmodver} -Obsoletes: libcholmod-devel < %{cholmodver} -Provides: libcolamd-devel = %{colamdver} -Obsoletes: libcolamd-devel < %{colamdver} -Provides: libcsparse-devel = %{csparsever} -Obsoletes: libcsparse-devel < %{csparsever} -Provides: libcxsparse-devel = %{cxsparsever} -Obsoletes: libcxsparse-devel < %{cxsparsever} -Provides: libgraphblas-devel = %{graphblasver} -Obsoletes: libgraphblas-devel < %{graphblasver} -Provides: libklu-devel = %{kluver} -Obsoletes: libklu-devel < %{kluver} -Provides: libldl-devel = %{ldlver} -Obsoletes: libldl-devel < %{ldlver} -Provides: libmongoose-devel = %{mongoosever} -Obsoletes: libmongoose-devel < %{mongoosever} -Provides: librbio-devel = %{rbiover} -Obsoletes: librbio-devel < %{rbiover} -Provides: libsliplu-devel = %{slipluver} -Obsoletes: libsliplu-devel < %{slipluver} -Provides: libspqr-devel = %{spqrver} -Obsoletes: libspqr-devel < %{spqrver} -Provides: libumfpack-devel = %{umfpackver} -Obsoletes: libumfpack-devel < %{umfpackver} -Provides: libsuitesparseconfig-devel = %{configver} -Obsoletes: libsuitesparseconfig-devel < %{configver} -Provides: UFconfig-devel = %{configver} -Obsoletes: UFconfig-devel < %{configver} %description devel suitesparse is a collection of libraries for computations involving @@ -187,24 +195,10 @@ The suitesparse-devel package contains files needed for developing applications which use the suitesparse libraries. -%package devel-static -Summary: Static version of SuiteSparse libraries -License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later -Group: Development/Libraries/C and C++ -Requires: %{name}-devel = %{version} - -%description devel-static -The suitesparse-static package contains the statically linkable -version of the suitesparse libraries. - %package -n %{amdlib} -Version: %{amdver} -Release: 0 Summary: Symmetric Approximate Minimum Degree License: BSD-3-Clause Group: System/Libraries -Provides: %(echo "libamd-%{amdver}" | tr . _) = %{version} -Obsoletes: %(echo "libamd-%{amdver}" | tr . _) < %{version} %description -n %{amdlib} AMD is a set of routines for ordering a sparse matrix prior to @@ -220,18 +214,15 @@ Summary: Documentation for libamd License: BSD-3-Clause Group: Documentation/Other +BuildArch: noarch %description -n libamd-doc Documentation for libamd. %package -n %{btflib} -Version: %{btfver} -Release: 0 Summary: Permutation to Block Triangular Form License: LGPL-2.1-or-later Group: System/Libraries -Provides: %(echo "libbtf-%{btfver}" | tr . _) = %{version} -Obsoletes: %(echo "libbtf-%{btfver}" | tr . _) < %{version} %description -n %{btflib} BTF permutes an unsymmetric matrix (square or rectangular) into its @@ -241,13 +232,9 @@ BTF is part of the SuiteSparse sparse matrix suite. %package -n %{camdlib} -Version: %{camdver} -Release: 0 Summary: Symmetric Approximate Minimum Degree License: BSD-3-Clause Group: System/Libraries -Provides: %(echo "libcamd-%{camdver}" | tr . _) = %{version} -Obsoletes: %(echo "libcamd-%{camdver}" | tr . _) < %{version} %description -n %{camdlib} CAMD is a set of routines for ordering a sparse matrix prior to @@ -261,18 +248,15 @@ Summary: Documentation for libcamd License: BSD-3-Clause Group: Documentation/Other +BuildArch: noarch %description -n libcamd-doc Documentation for libcam. %package -n %{ccolamdlib} -Version: %{ccolamdver} -Release: 0 Summary: Constrained Column Approximate Minimum Degree License: BSD-3-Clause Group: System/Libraries -Provides: %(echo "libccolamd-%{ccolamdver}" | tr . _) = %{version} -Obsoletes: %(echo "libccolamd-%{ccolamdver}" | tr . _) < %{version} %description -n %{ccolamdlib} CCOLAMD computes an column approximate minimum degree ordering @@ -282,13 +266,9 @@ CCOLAMD is part of the SuiteSparse sparse matrix suite. %package -n %{cholmodlib} -Version: %{cholmodver} -Release: 0 Summary: Supernodal Sparse Cholesky Factorization and Update/Downdate License: GPL-2.0-only AND LGPL-2.1-only Group: System/Libraries -Provides: %(echo "libcholmod-%{cholmodver}" | tr . _) = %{version} -Obsoletes: %(echo "libcholmod-%{cholmodver}" | tr . _) < %{version} #bnc746867 cholmod from suitesparse should be GPL-2.0 and/or LGPL-2.0 licensed %description -n %{cholmodlib} @@ -311,13 +291,9 @@ CHOLMOD is part of the SuiteSparse sparse matrix suite. %package -n %{colamdlib} -Version: %{colamdver} -Release: 0 Summary: Column Approximate Minimum Degree License: BSD-3-Clause Group: System/Libraries -Provides: %(echo "libcolamd-%{colamdver}" | tr . _) = %{version} -Obsoletes: %(echo "libcolamd-%{colamdver}" | tr . _) < %{version} %description -n %{colamdlib} The COLAMD column approximate minimum degree ordering algorithm @@ -333,46 +309,10 @@ COLAMD is part of the SuiteSparse sparse matrix suite. -%package -n %{csparselib} -Version: %{csparsever} -Release: 0 -Summary: Instructional Sparse Matrix Package -License: LGPL-2.1-or-later -Group: System/Libraries -Provides: %(echo "libcsparse-%{csparsever}" | tr . _) = %{version} -Obsoletes: %(echo "libcsparse-%{csparsever}" | tr . _) < %{version} -# AT version 3.1.9, this package was accidentally called libcsparsever-3_1_9 -%if "%{csparsever}" == "3.1.9" -Obsoletes: libcsparsever-3_1_9 = 3.1.9 -%endif - -%description -n %{csparselib} -CSparse is a small yet feature-rich sparse matrix package written -specifically for a book. The purpose of the package is to demonstrate -a wide range of sparse matrix algorithms in as concise a code as -possible. CSparse is about 2,200 lines long (excluding its MATLAB -interface, demo codes, and test codes), yet it contains algorithms -(either asympotical optimal or fast in practice) for all of the -following functions described below. A MATLAB interface is included. - -Note that the LU and Cholesky factorization algorithms are not as -fast as UMFPACK or CHOLMOD. Other functions have comparable -performance as their MATLAB equivalents (some are faster). - -Documentation is very terse in the code; it is fully documented in -the book. Some indication of how to call the C functions in CSparse -is given by the CSparse/MATLAB/*.m help files. - -CSparse is part of the SuiteSparse sparse matrix suite. - %package -n %{cxsparselib} -Version: %{cxsparsever} -Release: 0 Summary: An extended version of CSparse License: LGPL-2.1-or-later Group: System/Libraries -Provides: %(echo "libcxsparse-%{cxsparsever}" | tr . _) = %{version} -Obsoletes: %(echo "libcxsparse-%{cxsparsever}" | tr . _) < %{version} %description -n %{cxsparselib} CXSparse is an extended version of CSparse, with support for double @@ -381,13 +321,9 @@ CXSparse is part of the SuiteSparse sparse matrix suite. %package -n %{graphblaslib} -Version: %{graphblasver} -Release: 0 Summary: An implementation of the GraphBLAS standard License: Apache-2.0 Group: System/Libraries -Provides: %(echo "libgraphblas-%{graphblasver}" | tr . _) = %{version} -Obsoletes: %(echo "libgraphblas-%{graphblasver}" | tr . _) < %{version} %description -n %{graphblaslib} GraphBLAS is an full implementation of the GraphBLAS standard, @@ -401,13 +337,9 @@ GraphBLAS is part of the SuiteSparse sparse matrix suite. %package -n %{klulib} -Version: %{kluver} -Release: 0 Summary: Sparse LU Factorization, for Circuit Simulation License: LGPL-2.1-or-later Group: System/Libraries -Provides: %(echo "libklu-%{kluver}" | tr . _) = %{version} -Obsoletes: %(echo "libklu-%{kluver}" | tr . _) < %{version} %description -n %{klulib} KLU is a sparse LU factorization algorithm well-suited for use in @@ -421,18 +353,15 @@ Summary: Documentation for libklu License: LGPL-2.1-or-later Group: Documentation/Other +BuildArch: noarch %description -n libklu-doc Documentation for libklu. %package -n %{ldllib} -Version: %{ldlver} -Release: 0 Summary: A Simple LDL^T Factorization License: LGPL-2.1-or-later Group: System/Libraries -Provides: %(echo "libldl-%{ldlver}" | tr . _) = %{version} -Obsoletes: %(echo "libldl-%{ldlver}" | tr . _) < %{version} %description -n %{ldllib} LDL is a set of concise routines for factorizing symmetric positive- @@ -451,41 +380,15 @@ Summary: Documentation for libldl License: LGPL-2.1-or-later Group: Documentation/Other +BuildArch: noarch %description -n libldl-doc Documentation for libldl. -%package -n %{mongooselib} -Version: %{mongoosever} -Release: 0 -Summary: Graph partitioning library -License: GPL-3.0-only -Group: System/Libraries -Provides: %(echo "libldl-%{mongoosever}" | tr . _) = %{version} -Obsoletes: %(echo "libldl-%{mongoosever}" | tr . _) < %{version} - -%description -n %{mongooselib} -Mongoose is a graph partitioning library. Currently, Mongoose only -supports edge partitioning. - -mongoose is part of the SuiteSparse sparse matrix suite. - -%package -n libmongoose-doc -Summary: Documentation for libmongoose -License: GPL-3.0-only -Group: Documentation/Other - -%description -n libmongoose-doc -Documentation for libmongoose. - %package -n %{rbiolib} -Version: %{rbiover} -Release: 0 Summary: MATLAB Toolbox for Reading/Writing Sparse Matrices License: GPL-2.0-or-later Group: System/Libraries -Provides: %(echo "librbio-%{rbiover}" | tr . _) = %{version} -Obsoletes: %(echo "librbio-%{rbiover}" | tr . _) < %{version} %description -n %{rbiolib} RBio is a MATLAB toolbox for reading/writing sparse matrices in the @@ -495,35 +398,47 @@ RBio is part of the SuiteSparse sparse matrix suite. -%package -n %{sliplulib} -Version: %{slipluver} -Release: 0 -Summary: SLIP LU, A Sparse Left-Looking Integer Preserving LU Factorization +%package -n %{spexlib} +Summary: SPEX, A SParse EXact Algebra Factorizations License: GPL-2.0-or-later AND LGPL-3.0-or-later Group: System/Libraries -Provides: %(echo "libsliplu-%{slipluver}" | tr . _) = %{version} -Obsoletes: %(echo "libsliplu-%{slipluver}" | tr . _) < %{version} -%description -n %{sliplulib} -SLIP LU is software package used to solve a sparse systems of linear equations -exactly using the Sparse Left-looking Integer-Preserving LU factorization. - -SLIP LU solves a sparse system of linear equations using a given input -matrix and right hand side vector file. This code can output the final -solution to a user specified output file in either double precision or -full precision rational numbers. If you intend to use SLIP LU within -another program, refer to examples for help with this. +%description -n %{spexlib} +SPEX is software package used to solve a sparse systems of linear equations +and replaces SLIP LU. + +SPEX Util is a software package containing utility and auxiliary functions for the +SPEX factorizations. Additionally, SPEX Util provides a wrapper class for the GNU +Multiple Precision Arithmetic (GMP) and GNU Multiple Precision Floating Point +Reliable (MPFR) libraries that prevent memory leaks and improve the overall +stability of these external libraries. SPEX Util is written in ANSI C. + +SPEX operates on matrices stored in any of the following 15 combinations of matrix formats and entry data-types + +SPEX and SPEX Utils are part of the SuiteSparse sparse matrix suite. + +%package -n libspex-doc +Summary: SPEX, A SParse EXact Algebra Factorizations +License: GPL-2.0-or-later AND LGPL-3.0-or-later +Group: Documentation/Other +BuildArch: noarch + +%description -n libspex-doc +Documentation for libspex. -SLIP LU is part of the SuiteSparse sparse matrix suite. +SPEX is software package used to solve a sparse systems of linear equations +and replaces SLIP LU. + +SPEX Util is a software package containing utility and auxiliary functions for the +SPEX factorizations. Additionally, SPEX Util provides a wrapper class for the GNU +Multiple Precision Arithmetic (GMP) and GNU Multiple Precision Floating Point +Reliable (MPFR) libraries that prevent memory leaks and improve the overall +stability of these external libraries. SPEX Util is written in ANSI C. %package -n %{spqrlib} -Version: %{spqrver} -Release: 0 Summary: Multifrontal Sparse QR License: GPL-2.0-or-later Group: System/Libraries -Provides: %(echo "libspqr-%{spqrver}" | tr . _) = %{version} -Obsoletes: %(echo "libspqr-%{spqrver}" | tr . _) < %{version} %description -n %{spqrlib} SuiteSparseQR is an implementation of the multifrontal sparse QR @@ -537,13 +452,9 @@ SuiteSparseQR is part of the SuiteSparse sparse matrix suite. %package -n %{umfpacklib} -Version: %{umfpackver} -Release: 0 Summary: Sparse Multifrontal LU Factorization License: GPL-2.0-or-later Group: System/Libraries -Provides: %(echo "libumfpack-%{umfpackver}" | tr . _) = %{version} -Obsoletes: %(echo "libumfpack-%{umfpackver}" | tr . _) < %{version} %description -n %{umfpacklib} UMFPACK is a set of routines for solving unsymmetric sparse linear @@ -556,18 +467,100 @@ UMFPACK is part of the SuiteSparse sparse matrix suite. +%package -n libumfpack-doc +Summary: Documentation for libumfpack +License: GPL-2.0-or-later +Group: Documentation/Other +BuildArch: noarch + +%description -n libumfpack-doc +Documentation for libumfpack. + +%package -n %{klu_cholmodlib} +Summary: Helpers for GPU accelerated runtimes +License: GPL-2.0-or-later +Group: System/Libraries + +%description -n %{klu_cholmodlib} +This package provides the helper functions for the GPU for +SuiteSparse.. + +KLU x CHOLMOD is part of the SuiteSparse sparse matrix suite. + +%package -n %{lagraphlib} +Summary: Community effort collection of algorithms on top of GraphBLAS +License: GPL-2.0-or-later +Group: System/Libraries + +%description -n %{lagraphlib} +This package provides a collection of graph algorithms built on top of GraphBLAS. + +LAGraph is part of the SuiteSparse sparse matrix suite. + +%package -n %{lagraphxlib} +Summary: Community effort collection of algorithms on top of GraphBLAS +License: GPL-2.0-or-later +Group: System/Libraries + +%description -n %{lagraphxlib} +This package provides an extended collection of graph algorithms built on top of GraphBLAS. + +LAGraphX is part of the SuiteSparse sparse matrix suite. + +%package -n %{suitesparse_mongooselib} +Summary: Graph partitioning library +License: GPL-3.0-only +Group: System/Libraries + +%description -n %{suitesparse_mongooselib} +Mongoose is a graph partitioning library. Currently, Mongoose only +supports edge partitioning. + +mongoose is part of the SuiteSparse sparse matrix suite. + +%package -n libsuitesparse_mongoose-doc +Summary: Documentation for libsuitesparse_mongoose +License: GPL-3.0-only +Group: Documentation/Other +BuildArch: noarch + +%description -n libsuitesparse_mongoose-doc +Documentation for libsuitesparse_mongoose. + +Mongoose is a graph partitioning library. Currently, Mongoose only +supports edge partitioning. + +mongoose is part of the SuiteSparse sparse matrix suite. + +%package -n suitesparse_mongoose +Summary: Binary executable for suitesparse mongoose +License: GPL-3.0-only + +%description -n suitesparse_mongoose +Binary executable for suitesparse_mongoose. + +Mongoose is a graph partitioning library. Currently, Mongoose only +supports edge partitioning. + +mongoose is part of the SuiteSparse sparse matrix suite. + +%package -n %{parulib} +Summary: Multifrontal sparse LU factorization methods +License: GPL-3.0-only +Group: System/Libraries + +%description -n %{parulib} +ParU is an implementation of the multifrontal sparse LU factorization method. +Parallelis is exploited both in the BLAS and across different frontal matrices +using OpenMP tasking and shared-memory programming model for modern multicore +architectures. + +ParU is part of the SuiteSparse sparse matrix suite. + %package -n %{configlib} -Version: %{configver} -Release: 0 Summary: Common configurations for all packages in SuiteSparse License: GPL-2.0-or-later Group: System/Libraries -Provides: libufconfig = %{configver} -Obsoletes: libufconfig < %{configver} -Provides: libUFconfig = %{configver} -Obsoletes: libUFconfig < %{configver} -Provides: %(echo "libsuitesparseconfig%{configver}" | tr . _) = %{version} -Obsoletes: %(echo "libsuitesparseconfig%{configver}" | tr . _) < %{version} %description -n %{configlib} SuiteSparse_config is required by a number of sparse matrix packages, @@ -586,17 +579,7 @@ SuiteSparse_config is part of the SuiteSparse sparse matrix suite. %prep -%setup -q -n SuiteSparse-%{version} -%patch1 -p1 -sed 's/^CHOLMOD_CONFIG =.*/CHOLMOD_CONFIG = -DNPARTITION/' -i SuiteSparse_config/SuiteSparse_config.mk -%if %{without openblas} -sed 's/-lopenblas/-lblas/' -i SuiteSparse_config/SuiteSparse_config.mk -%endif - -sed -i "s:^SO_VERSION = _:SO_VERSION = %{csparsemajor}:" CSparse/Lib/Makefile -sed -i "s:^VERSION = _:VERSION = %{csparsever}:" CSparse/Lib/Makefile - -cat CSparse/Lib/Makefile +%autosetup -p1 -n SuiteSparse-%{version} mv SPQR/Doc/README.txt SPQR/Doc/README_2.txt @@ -608,87 +591,85 @@ rm SPQR/Doc/qrgpu_paper.pdf rm SPQR/Doc/spqr.pdf -# bnc#775418 -%patch775418 -p1 +cp %{SOURCE1} Mongoose/Tests/ -%build -%define limitbuild 1500 -%limit_build -m %{limitbuild} +%(for src in "$(seq 100 134)"; do tar xvf %{SOURCE$src} --strip-components=1 -C Mongoose/Matrix; tar xvf %{SOURCE$src} --strip-components=1 -C Mongoose/Tests/Matrix; end) -%global _lto_cflags %{_lto_cflags} -ffat-lto-objects -%if 0%{?suse_version} < 1500 -export CC=gcc-7 -export CXX=g++-7 -%endif +%build +%limit_build -m 1500 %if %{with openblas} -blas_lib=-lopenblas +export BLAS=-lopenblas %else -blas_lib=-lblas +export BLAS=-lblas %endif +%ifarch %{arm} aarch64 +%define build_ldflags -latomic -lm +%else +%define build_ldflags -lm # Better performance with -flto unset MALLOC_CHECK_ unset MALLOC_PERTURB_ +%endif + +# GraphBlas demos: avoid writing to root dir +export GRAPHBLAS_CACHE_PATH=$(mktemp -d GraphBlas_JIT_cache_XXX) +# +export CMAKE_OPTIONS='-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ +%if %{with openblas} + -DBLA_VENDOR=OpenBLAS \ +%endif + -DCMAKE_INSTALL_BINDIR:PATH=%{_bindir} \ + -DCMAKE_INSTALL_SBINDIR:PATH=%{_sbindir} \ + -DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \ + -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \ + -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=%{_sharedstatedir} \ + -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \ + -DCMAKE_INSTALL_RUNSTATEDIR:PATH=%{_rundir} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ + -DCMAKE_INSTALL_DATAROOTDIR:PATH=%{_datadir} \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ + -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \ + -DLIB_INSTALL_DIR:PATH=%{_libdir} \ + -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \ + -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_FLAGS="${CFLAGS:-%optflags}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS:-%optflags}" \ + -DCMAKE_Fortran_FLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" \ + -DCMAKE_EXE_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed -Wl,-z,now" \ + -DCMAKE_MODULE_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed" \ + -DCMAKE_SHARED_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed -Wl,-z,now" \ +%if "%{?_lib}" == "lib64" + -DLIB_SUFFIX=64 \ +%endif + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DBUILD_STATIC_LIBS:BOOL=OFF \ + -DCMAKE_COLOR_MAKEFILE:BOOL=OFF \ + -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \ + -DCMAKE_MODULES_INSTALL_DIR=%{_libdir}/cmake/%{name} \ + -DSUITESPARSE_DEMOS=ON \ + -DBUILD_TESTING=ON' -%make_jobs MY_METIS_LIB="-lmetis" LAPACK="-llapack" BLAS="$blas_lib" TBB="-ltbb" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" go -chrpath -d lib/*.so.*.* -chrpath -d GraphBLAS/build/*.so -chrpath -d GraphBLAS/build/*.so.*.* -chrpath -d Mongoose/build/lib/*.so -chrpath -d Mongoose/build/lib/*.so.*.* +export JOBS="%(echo %{?_smp_mflags} | cut -c 3-)" +%make_build library %install -mkdir -p %{buildroot}%{_includedir}/%{name} -mkdir -p %{buildroot}%{_docdir} -mkdir -p %{buildroot}%{_libdir} - -cp -Pt %{buildroot}%{_libdir} */Lib/*.a -cp -Pt %{buildroot}%{_libdir} lib/* -cp -Pt %{buildroot}%{_libdir} GraphBLAS/build/*.so -cp -Pt %{buildroot}%{_libdir} GraphBLAS/build/*.so.* -cp -Pt %{buildroot}%{_libdir} Mongoose/build/lib/*.so -cp -Pt %{buildroot}%{_libdir} Mongoose/build/lib/*.so.* -cp -Pt %{buildroot}%{_includedir}/%{name} include/* -cp -Pt %{buildroot}%{_includedir}/%{name} GraphBLAS/Include/*.h -cp -Prt %{buildroot}%{_docdir} share/doc/* +%make_install -%check -amd_test_symbol="amd_postorder" -btf_test_symbol="btf_order" -camd_test_symbol="camd_postorder" -ccolamd_test_symbol="ccolamd" -colamd_test_symbol="colamd" -cholmod_test_symbol="cholmod_start" -csparse_test_symbol="cs_sqr" -cxsparse_test_symbol="cs_di_sqr" -klu_test_symbol="klu_solve" -ldl_test_symbol="ldl_symbolic" -rbio_test_symbol="RBread" -spqr_test_symbol="SuiteSparseQR_C_symbolic" -umfpack_test_symbol="umfpack_toc" - -mkdir -p linking_test -pushd linking_test - -cat > linking_test.c.in << 'EOF' -char @test_symbol@ (); -int main () -{ - return @test_symbol@ (); -} -EOF - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir} -for test_library in amd btf camd ccolamd colamd cholmod csparse cxsparse klu ldl rbio spqr umfpack; do - cp linking_test.c.in linking_test.c - test_symbol=${test_library}_test_symbol - sed -i "s|@test_symbol@|${!test_symbol}|" linking_test.c - cat linking_test.c - gcc -o linking_test linking_test.c -L%{buildroot}%{_libdir} -l${test_library} -done +%fdupes %{buildroot}%{_datadir} +%fdupes %{buildroot}%{_libdir} -popd +%check +# GraphBlas demos: avoid writing to root dir +export GRAPHBLAS_CACHE_PATH=$(mktemp -d GraphBlas_JIT_cache_XXX) +# +# Demos also include checks. These runs demos and their respective test suites. +export JOBS="%(echo %{?_smp_mflags} | cut -c 3-)" +%make_build demos %post -n %{amdlib} -p /sbin/ldconfig %postun -n %{amdlib} -p /sbin/ldconfig @@ -708,9 +689,6 @@ %post -n %{colamdlib} -p /sbin/ldconfig %postun -n %{colamdlib} -p /sbin/ldconfig -%post -n %{csparselib} -p /sbin/ldconfig -%postun -n %{csparselib} -p /sbin/ldconfig - %post -n %{cxsparselib} -p /sbin/ldconfig %postun -n %{cxsparselib} -p /sbin/ldconfig @@ -723,14 +701,14 @@ %post -n %{ldllib} -p /sbin/ldconfig %postun -n %{ldllib} -p /sbin/ldconfig -%post -n %{mongooselib} -p /sbin/ldconfig -%postun -n %{mongooselib} -p /sbin/ldconfig +%post -n %{suitesparse_mongooselib} -p /sbin/ldconfig +%postun -n %{suitesparse_mongooselib} -p /sbin/ldconfig %post -n %{rbiolib} -p /sbin/ldconfig %postun -n %{rbiolib} -p /sbin/ldconfig -%post -n %{sliplulib} -p /sbin/ldconfig -%postun -n %{sliplulib} -p /sbin/ldconfig +%post -n %{spexlib} -p /sbin/ldconfig +%postun -n %{spexlib} -p /sbin/ldconfig %post -n %{spqrlib} -p /sbin/ldconfig %postun -n %{spqrlib} -p /sbin/ldconfig @@ -738,25 +716,33 @@ %post -n %{umfpacklib} -p /sbin/ldconfig %postun -n %{umfpacklib} -p /sbin/ldconfig +%post -n %{lagraphlib} -p /sbin/ldconfig +%postun -n %{lagraphlib} -p /sbin/ldconfig + +%post -n %{lagraphxlib} -p /sbin/ldconfig +%postun -n %{lagraphxlib} -p /sbin/ldconfig + +%post -n %{parulib} -p /sbin/ldconfig +%postun -n %{parulib} -p /sbin/ldconfig + +%post -n %{klu_cholmodlib} -p /sbin/ldconfig +%postun -n %{klu_cholmodlib} -p /sbin/ldconfig + %post -n %{configlib} -p /sbin/ldconfig %postun -n %{configlib} -p /sbin/ldconfig %files devel %doc ChangeLog README.md %license LICENSE.txt -%{_docdir}/%{name}-%{version} +%{_includedir}/* +%{_libdir}/pkgconfig/*.pc %{_libdir}/*.so -%{_includedir}/%{name}/ - -%files devel-static -%doc ChangeLog README.md -%license LICENSE.txt -%{_libdir}/*.a +%{_libdir}/cmake/* %files -n %{amdlib} %doc AMD/README.txt %doc AMD/Doc/ChangeLog -%license AMD/Doc/License.txt AMD/Doc/lesser.txt +%license AMD/Doc/License.txt %{_libdir}/libamd.so.* %files -n libamd-doc @@ -771,7 +757,7 @@ %files -n %{camdlib} %doc CAMD/README.txt %doc CAMD/Doc/ChangeLog -%license CAMD/Doc/License.txt CAMD/Doc/lesser.txt +%license CAMD/Doc/License.txt %{_libdir}/libcamd.so.* %files -n libcamd-doc @@ -780,7 +766,7 @@ %files -n %{ccolamdlib} %doc CCOLAMD/README.txt %doc CCOLAMD/Doc/ChangeLog -%license CCOLAMD/Doc/License.txt CCOLAMD/Doc/lesser.txt +%license CCOLAMD/Doc/License.txt %{_libdir}/libccolamd.so.* %files -n %{cholmodlib} @@ -794,15 +780,9 @@ %files -n %{colamdlib} %doc COLAMD/README.txt %doc COLAMD/Doc/ChangeLog -%license COLAMD/Doc/License.txt COLAMD/Doc/lesser.txt +%license COLAMD/Doc/License.txt %{_libdir}/libcolamd.so.* -%files -n %{csparselib} -%doc CSparse/README.txt -%doc CSparse/Doc/ChangeLog -%license CSparse/Doc/License.txt CSparse/Doc/lesser.txt -%{_libdir}/libcsparse.so.* - %files -n %{cxsparselib} %doc CXSparse/README.txt %doc CXSparse/Doc/ChangeLog @@ -833,26 +813,32 @@ %files -n libldl-doc %doc LDL/Doc/ldl_userguide.pdf -%files -n %{mongooselib} +%files -n %{suitesparse_mongooselib} %doc Mongoose/README.md %license Mongoose/Doc/License.txt -%{_libdir}/libmongoose.so.* +%{_libdir}/libsuitesparse_mongoose.so.* -%files -n libmongoose-doc +%files -n libsuitesparse_mongoose-doc %doc Mongoose/Doc/Mongoose_UserGuide.pdf +%files -n suitesparse_mongoose +%{_bindir}/suitesparse_mongoose + %files -n %{rbiolib} %doc RBio/README.txt %doc RBio/Doc/ChangeLog %license RBio/Doc/License.txt RBio/Doc/gpl.txt %{_libdir}/librbio.so.* -%files -n %{sliplulib} -%doc SLIP_LU/README.md -%doc SLIP_LU/Doc/SLIP_LU_UserGuide.pdf -%license SLIP_LU/License/license.txt SLIP_LU/License/GPLv2.txt -%license SLIP_LU/License/lesserv3.txt SLIP_LU/License/CONTRIBUTOR-LICENSE.txt -%{_libdir}/libsliplu.so.* +%files -n %{spexlib} +%license SPEX/LICENSE.txt +%license SPEX/SPEX_Util/License/license.txt SPEX/SPEX_Util/License/GPLv2.txt +%license SPEX/SPEX_Util/License/lesserv3.txt SPEX/SPEX_Util/License/CONTRIBUTOR-LICENSE.txt +%{_libdir}/libspex.so.* + +%files -n libspex-doc +%doc SPEX/README.md +%doc SPEX/Doc/SPEX_UserGuide.pdf %files -n %{spqrlib} %doc SPQR/README.txt @@ -861,13 +847,36 @@ %{_libdir}/libspqr.so.* %files -n %{umfpacklib} -%doc UMFPACK/README.txt -%doc UMFPACK/Doc/UMFPACK_QuickStart.pdf UMFPACK/Doc/UMFPACK_UserGuide.pdf UMFPACK/Doc/ChangeLog %license UMFPACK/Doc/License.txt UMFPACK/Doc/gpl.txt %{_libdir}/libumfpack.so.* +%files -n libumfpack-doc +%doc UMFPACK/README.txt +%doc UMFPACK/Doc/UMFPACK_QuickStart.pdf UMFPACK/Doc/UMFPACK_UserGuide.pdf UMFPACK/Doc/ChangeLog + +%files -n %{lagraphlib} +%doc LAGraph/README.md LAGraph/Acknowledgments.txt +%license LAGraph/LICENSE +%{_libdir}/liblagraph.so.* + +%files -n %{lagraphxlib} +%doc LAGraph/README.md LAGraph/Acknowledgments.txt +%license LAGraph/LICENSE +%{_libdir}/liblagraphx.so.* + +%files -n %{parulib} +%doc ParU/README.md +%license ParU/LICENSE +%{_libdir}/libparu.so.* + +%files -n %{klu_cholmodlib} +%doc KLU/README.txt +%doc KLU/Doc/ChangeLog +%license KLU/Doc/License.txt KLU/Doc/lesser.txt +%{_libdir}/libklu_cholmod.so.* + %files -n %{configlib} -%doc share/doc/*/SUITESPARSECONFIG_README.txt +%doc SuiteSparse_config/README.txt %license LICENSE.txt %{_libdir}/libsuitesparseconfig.so.* ++++++ README-suse-maintenance.md ++++++ Before commiting content to devel project, you must first update the tests sources. The script `list-mongoose-test-sources.py` is a modified version of the `runTests` python script located at `Mongoose/Tests/`. Please read the script and modify it as needed e.g. change of min id default or max id default or reading the IDs indicated from the the tests section of Mongoose's CMakeLists.txt. Check if there are new sources and if there are, add it as new content sources for the RPM specfile. Check that the specfile has those new sources copied to `Mongoose/Tests/Matrix` and `Mongoose/Matrix`. As for `ssstats.csv`, that should be in `Mongoose/Tests/`. ++++++ SuiteSparse-5.13.0.tar.gz -> SuiteSparse-7.5.1.tar.gz ++++++ /work/SRC/openSUSE:Factory/suitesparse/SuiteSparse-5.13.0.tar.gz /work/SRC/openSUSE:Factory/.suitesparse.new.1815/SuiteSparse-7.5.1.tar.gz differ: char 12, line 1 ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.C9v1WZ/_old 2024-02-15 20:59:08.589315100 +0100 +++ /var/tmp/diff_new_pack.C9v1WZ/_new 2024-02-15 20:59:08.593315245 +0100 @@ -3,6 +3,9 @@ <physicalmemory> <size unit="G">7</size> </physicalmemory> + <disk> + <size unit="G">40</size> + </disk> </hardware> <overwrite> <conditions> @@ -26,3 +29,4 @@ </overwrite> </constraints> + ++++++ SuiteSparse-5.13.0.tar.gz -> arc130.tar.gz ++++++ /work/SRC/openSUSE:Factory/suitesparse/SuiteSparse-5.13.0.tar.gz /work/SRC/openSUSE:Factory/.suitesparse.new.1815/arc130.tar.gz differ: char 10, line 1 ++++++ SuiteSparse-5.13.0.tar.gz -> c-38.tar.gz ++++++ /work/SRC/openSUSE:Factory/suitesparse/SuiteSparse-5.13.0.tar.gz /work/SRC/openSUSE:Factory/.suitesparse.new.1815/c-38.tar.gz differ: char 10, line 1 ++++++ SuiteSparse-5.13.0.tar.gz -> c-43.tar.gz ++++++ /work/SRC/openSUSE:Factory/suitesparse/SuiteSparse-5.13.0.tar.gz /work/SRC/openSUSE:Factory/.suitesparse.new.1815/c-43.tar.gz differ: char 10, line 1 ++++++ keep-mongoose-test-sources.patch ++++++ diff -ruN SuiteSparse-7.5.0.orig/Mongoose/CMakeLists.txt SuiteSparse-7.5.0/Mongoose/CMakeLists.txt --- SuiteSparse-7.5.0.orig/Mongoose/CMakeLists.txt 2024-01-15 06:06:06.714855174 +0800 +++ SuiteSparse-7.5.0/Mongoose/CMakeLists.txt 2024-01-15 06:08:20.629179796 +0800 @@ -316,13 +316,13 @@ RUNTIME_OUTPUT_DIRECTORY ${TESTING_OUTPUT_PATH} ) add_test ( NAME Mongoose_Edge_Separator_Test - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t edgesep ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t edgesep -k ) add_test ( NAME Mongoose_Edge_Separator_Test_2 - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t edgesep -i 21 39 191 1557 1562 353 2468 1470 1380 505 182 201 2331 760 1389 2401 2420 242 250 1530 1533 360 1437 ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t edgesep -i 21 39 191 1557 1562 353 2468 1470 1380 505 182 201 2331 760 1389 2401 2420 242 250 1530 1533 360 1437 -k ) add_test ( NAME Mongoose_Weighted_Edge_Separator_Test - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t edgesep -i 2624 ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t edgesep -i 2624 -k ) add_test ( NAME Mongoose_Target_Split_Test - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t edgesep -s 0.3 ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t edgesep -s 0.3 -k ) # Memory Tests add_executable ( mongoose_test_memory @@ -338,7 +338,7 @@ RUNTIME_OUTPUT_DIRECTORY ${TESTING_OUTPUT_PATH} ) add_test ( NAME Mongoose_Memory_Test - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t memory ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t memory -k ) # Performance Test add_executable ( mongoose_test_performance @@ -354,9 +354,9 @@ RUNTIME_OUTPUT_DIRECTORY ${TESTING_OUTPUT_PATH} ) add_test ( NAME Mongoose_Performance_Test - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t performance -p ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -min 1 -max 15 -t performance -k ) add_test ( NAME Mongoose_Performance_Test_2 - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t performance -i 21 39 1557 1562 353 2468 1470 1380 505 182 201 2331 760 1389 2401 2420 242 250 1530 1533 -p ) + COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Tests/runTests -t performance -i 21 39 1557 1562 353 2468 1470 1380 505 182 201 2331 760 1389 2401 2420 242 250 1530 1533 -k ) if ( WIN32 AND BUILD_SHARED_LIBS ) set_tests_properties ( Mongoose_IO_Test ++++++ list-mongoose-test-sources.py ++++++ from subprocess import call, check_output import os # For filesystem access import sys # For sys.exit() import argparse # For parsing command-line arguments import urllib.request, urllib.parse, urllib.error # For downloading the ssget index import ssl import tarfile # For un-tar/unzipping matrix files import csv # For reading the ssget index import shutil # For using 'which' import platform # We only need the following matrix ids: MATRIX_IDs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 39, 57, 182, 191, 201, 242, 250, 353, 360, 505, 760, 1380, 1389, 1437, 1470, 1530, 1533, 1557, 1562, 2331, 2401, 2420, 2468, 2624] def getMatrixDirectory(): matrix_dir = "." if (not os.path.exists(matrix_dir)): os.makedirs(matrix_dir) return matrix_dir def downloadStatsFile(matrix_dir): stats_file = "ssstats.csv" url = "http://sparse.tamu.edu/files/ssstats.csv" with urllib.request.urlopen(url) as response, open(stats_file, 'wb') as out_file: shutil.copyfileobj(response, out_file) return stats_file def runTests(): # Create or locate matrix temporary storage directory matrix_dir = getMatrixDirectory() # Download the matrix stats csv file stats_file = downloadStatsFile(matrix_dir) with open(stats_file, 'r') as f: reader = csv.reader(f) # Matrix IDs are not listed in the stats file - we just have to keep count matrix_id = 0 sources_initial_num = 4 for row in reader: if len(row) == 13: # Only rows with 13 elements represent matrix data matrix_id += 1 # Check if the matrix ID is in the proper range and # that the matrix is real and symmetric isInBounds = ((matrix_id >= 1) and (matrix_id <= 2757)) isSquare = (row[2] == row[3]) isReal = (row[5] == '1') if (isInBounds and isSquare and isReal): if True: matrix_name = row[0] + '/' + row[1] + '.tar.gz' gzip_path = matrix_dir + row[0] + '_' + row[1] + '.tar.gz' matrix_path = matrix_dir + row[1] + '/' + row[1] + ".mtx" # print("matrix_name: " + matrix_name) # print("gzip_path: " + gzip_path) # print("matrix_path: " + matrix_path) matrix_exists = os.path.isfile(gzip_path) if False: print("matrix exists at gzip_path") tar = tarfile.open(gzip_path, mode='r:gz') matrix_files = tar.getnames() print(matrix_files) else: # Download matrix if it doesn't exist if matrix_id in MATRIX_IDs: sources_initial_num += 1 try: url = "https://sparse.tamu.edu/MM/" + matrix_name print("Source" + str(sources_initial_num) + ": " + url) except: url = "http://sparse.tamu.edu/MM/" + matrix_name print("Source" + str(sources_initial_num) + ": " + url) runTests() ++++++ ssstats.csv ++++++ ++++ 2907 lines (skipped)