- 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. - 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. - 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 OBS-URL: https://build.opensuse.org/request/show/1145600 OBS-URL: https://build.opensuse.org/package/show/science/suitesparse?expand=0&rev=54
884 lines
31 KiB
RPMSpec
884 lines
31 KiB
RPMSpec
#
|
|
# spec file for package suitesparse
|
|
#
|
|
# 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
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%ifarch %{arm} aarch64
|
|
%define _lto_cflags %{nil}
|
|
%endif
|
|
|
|
%ifarch m68k
|
|
%bcond_with openblas
|
|
%else
|
|
%bcond_without openblas
|
|
%endif
|
|
|
|
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
|
|
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
|
|
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
|
|
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 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
|
|
matrices.
|
|
|
|
%package devel
|
|
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++
|
|
Requires: %{amdlib} = %{version}
|
|
Requires: %{btflib} = %{version}
|
|
Requires: %{camdlib} = %{version}
|
|
Requires: %{ccolamdlib} = %{version}
|
|
Requires: %{cholmodlib} = %{version}
|
|
Requires: %{colamdlib} = %{version}
|
|
Requires: %{configlib} = %{version}
|
|
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: blas-devel
|
|
%endif
|
|
Requires: tbb-devel
|
|
|
|
%description devel
|
|
suitesparse is a collection of libraries for computations involving
|
|
sparse matrices.
|
|
|
|
The suitesparse-devel package contains files needed for developing
|
|
applications which use the suitesparse libraries.
|
|
|
|
%package -n %{amdlib}
|
|
Summary: Symmetric Approximate Minimum Degree
|
|
License: BSD-3-Clause
|
|
Group: System/Libraries
|
|
|
|
%description -n %{amdlib}
|
|
AMD is a set of routines for ordering a sparse matrix prior to
|
|
Cholesky factorization (or for LU factorization with diagonal
|
|
pivoting). There are versions in both C and Fortran. A MATLAB
|
|
interface is provided.
|
|
|
|
Note that this software has nothing to do with AMD the company.
|
|
|
|
AMD is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n libamd-doc
|
|
Summary: Documentation for libamd
|
|
License: BSD-3-Clause
|
|
Group: Documentation/Other
|
|
BuildArch: noarch
|
|
|
|
%description -n libamd-doc
|
|
Documentation for libamd.
|
|
|
|
%package -n %{btflib}
|
|
Summary: Permutation to Block Triangular Form
|
|
License: LGPL-2.1-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{btflib}
|
|
BTF permutes an unsymmetric matrix (square or rectangular) into its
|
|
block upper triangular form (more precisely, it computes a Dulmage-
|
|
Mendelsohn decomposition).
|
|
|
|
BTF is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{camdlib}
|
|
Summary: Symmetric Approximate Minimum Degree
|
|
License: BSD-3-Clause
|
|
Group: System/Libraries
|
|
|
|
%description -n %{camdlib}
|
|
CAMD is a set of routines for ordering a sparse matrix prior to
|
|
Cholesky factorization (or for LU factorization with diagonal
|
|
pivoting). There are versions in both C and Fortran. A MATLAB
|
|
interface is provided.
|
|
|
|
CAMD is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n libcamd-doc
|
|
Summary: Documentation for libcamd
|
|
License: BSD-3-Clause
|
|
Group: Documentation/Other
|
|
BuildArch: noarch
|
|
|
|
%description -n libcamd-doc
|
|
Documentation for libcam.
|
|
|
|
%package -n %{ccolamdlib}
|
|
Summary: Constrained Column Approximate Minimum Degree
|
|
License: BSD-3-Clause
|
|
Group: System/Libraries
|
|
|
|
%description -n %{ccolamdlib}
|
|
CCOLAMD computes an column approximate minimum degree ordering
|
|
algorithm, (like COLAMD), but it can also be given a set of ordering
|
|
constraints. CCOLAMD is required by the CHOLMOD package.
|
|
|
|
CCOLAMD is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{cholmodlib}
|
|
Summary: Supernodal Sparse Cholesky Factorization and Update/Downdate
|
|
License: GPL-2.0-only AND LGPL-2.1-only
|
|
Group: System/Libraries
|
|
#bnc746867 cholmod from suitesparse should be GPL-2.0 and/or LGPL-2.0 licensed
|
|
|
|
%description -n %{cholmodlib}
|
|
CHOLMOD is a set of ANSI C routines for sparse Cholesky factorization
|
|
and update/downdate. A MATLAB interface is provided.
|
|
|
|
The performance of CHOLMOD was compared with 10 other codes in a
|
|
paper by Nick Gould, Yifan Hu, and Jennifer Scott. see also their raw
|
|
data. Comparing BCSLIB-EXT, CHOLMOD, MA57, MUMPS, Oblio, PARDISO,
|
|
SPOOLES, SPRSBLKLLT, TAUCS, UMFPACK, and WSMP, on 87 large symmetric
|
|
positive definite matrices, they found CHOLMOD to be fastest for 42
|
|
of the 87 matrices. Its run time is either fastest or within 10%% of
|
|
the fastest for 73 out of 87 matrices. Considering just the larger
|
|
matrices, it is either the fastest or within 10%% of the fastest for
|
|
40 out of 42 matrices. It uses the least amount of memory (or within
|
|
10%% of the least) for 35 of the 42 larger matrices. Jennifer Scott
|
|
and Yifan Hu also discuss the design considerations for a sparse
|
|
direct code.
|
|
|
|
CHOLMOD is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{colamdlib}
|
|
Summary: Column Approximate Minimum Degree
|
|
License: BSD-3-Clause
|
|
Group: System/Libraries
|
|
|
|
%description -n %{colamdlib}
|
|
The COLAMD column approximate minimum degree ordering algorithm
|
|
computes a permutation vector P such that the LU factorization of
|
|
A (:,P) tends to be sparser than that of A. The Cholesky
|
|
factorization of (A (:,P))'*(A (:,P)) will also tend to be sparser
|
|
than that of A'*A. SYMAMD is a symmetric minimum degree ordering
|
|
method based on COLAMD, available as a MATLAB-callable function. It
|
|
constructs a matrix M such that M'*M has the same pattern as A, and
|
|
then uses COLAMD to compute a column ordering of M. Colamd and symamd
|
|
tend to be faster and generate better orderings than their MATLAB
|
|
counterparts, colmmd and symmmd.
|
|
|
|
COLAMD is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{cxsparselib}
|
|
Summary: An extended version of CSparse
|
|
License: LGPL-2.1-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{cxsparselib}
|
|
CXSparse is an extended version of CSparse, with support for double
|
|
or complex matrices, with int or long integers.
|
|
|
|
CXSparse is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{graphblaslib}
|
|
Summary: An implementation of the GraphBLAS standard
|
|
License: Apache-2.0
|
|
Group: System/Libraries
|
|
|
|
%description -n %{graphblaslib}
|
|
GraphBLAS is an full implementation of the GraphBLAS standard,
|
|
which defines a set of sparse matrix operations on an extended algebra of
|
|
semirings using an almost unlimited variety of operators and types. When
|
|
applied to sparse adjacency matrices, these algebraic operations are equivalent
|
|
to computations on graphs. GraphBLAS provides a powerful and expressive
|
|
framework for creating graph algorithms based on the elegant mathematics of
|
|
sparse matrix operations on a semiring.
|
|
|
|
GraphBLAS is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{klulib}
|
|
Summary: Sparse LU Factorization, for Circuit Simulation
|
|
License: LGPL-2.1-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{klulib}
|
|
KLU is a sparse LU factorization algorithm well-suited for use in
|
|
circuit simulation. It was highlighted in the May 2007 issue of SIAM
|
|
News, Sparse Matrix Algorithm Drives SPICE Performance Gains. It is
|
|
the "fast sparse-matrix solver" mentioned in the article.
|
|
|
|
KLU is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n libklu-doc
|
|
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}
|
|
Summary: A Simple LDL^T Factorization
|
|
License: LGPL-2.1-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{ldllib}
|
|
LDL is a set of concise routines for factorizing symmetric positive-
|
|
definite sparse matrices, with some applicability to symmetric
|
|
indefinite matrices. Its primary purpose is to illustrate much of the
|
|
basic theory of sparse matrix algorithms in as concise a code as
|
|
possible, including an elegant new method of sparse symmetric
|
|
factorization that computes the factorization row-by-row but stores
|
|
it column-by-column. The entire symbolic and numeric factorization
|
|
consists of a total of only 49 lines of code. The package is written
|
|
in C, and includes a MATLAB interface.
|
|
|
|
LDL is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n libldl-doc
|
|
Summary: Documentation for libldl
|
|
License: LGPL-2.1-or-later
|
|
Group: Documentation/Other
|
|
BuildArch: noarch
|
|
|
|
%description -n libldl-doc
|
|
Documentation for libldl.
|
|
|
|
%package -n %{rbiolib}
|
|
Summary: MATLAB Toolbox for Reading/Writing Sparse Matrices
|
|
License: GPL-2.0-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{rbiolib}
|
|
RBio is a MATLAB toolbox for reading/writing sparse matrices in the
|
|
Rutherford/Boeing format, and for reading/writing problems in the UF
|
|
Sparse Matrix Collection from/to a set of files in a directory.
|
|
Version 2.0+ is written in C.
|
|
|
|
RBio is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%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
|
|
|
|
%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.
|
|
|
|
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}
|
|
Summary: Multifrontal Sparse QR
|
|
License: GPL-2.0-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{spqrlib}
|
|
SuiteSparseQR is an implementation of the multifrontal sparse QR
|
|
factorization method. Parallelism is exploited both in the BLAS and
|
|
across different frontal matrices using Intel's Threading Building
|
|
Blocks, a shared-memory programming model for modern multicore
|
|
architectures. It can obtain a substantial fraction of the
|
|
theoretical peak performance of a multicore computer. The package is
|
|
written in C++ with user interfaces for MATLAB, C, and C++.
|
|
|
|
SuiteSparseQR is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%package -n %{umfpacklib}
|
|
Summary: Sparse Multifrontal LU Factorization
|
|
License: GPL-2.0-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{umfpacklib}
|
|
UMFPACK is a set of routines for solving unsymmetric sparse linear
|
|
systems, Ax=b, using the Unsymmetric MultiFrontal method. Written in
|
|
ANSI/ISO C, with a MATLAB (Version 6.0 and later) interface. Appears
|
|
as a built-in routine (for lu, backslash, and forward slash) in M
|
|
ATLAB. Includes a MATLAB interface, a C-callable interface, and a
|
|
Fortran-callable interface. Note that "UMFPACK" is pronounced in two
|
|
syllables, "Umph Pack". It is not "You Em Ef Pack".
|
|
|
|
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}
|
|
Summary: Common configurations for all packages in SuiteSparse
|
|
License: GPL-2.0-or-later
|
|
Group: System/Libraries
|
|
|
|
%description -n %{configlib}
|
|
SuiteSparse_config is required by a number of sparse matrix packages,
|
|
including SuiteSparseQR, AMD, COLAMD, CCOLAMD, CHOLMOD, KLU, BTF,
|
|
LDL, CXSparse, RBio, and UMFPACK. It is not required by CSparse,
|
|
which is a stand-alone packages. Mongoose uses SuiteSparse_config,
|
|
if available but works also without it.
|
|
|
|
SuiteSparse_config contains a configuration file for "make"
|
|
(SuiteSparse_config.mk) and an include file (SuiteSparse_config.h).
|
|
Also included in SuiteSparse_config is a replacement for the
|
|
BLAS/LAPACK xerbla routine that does not print a warning message
|
|
(helpful if you don't want to link the entire Fortran I/O library
|
|
into a C application).
|
|
|
|
SuiteSparse_config is part of the SuiteSparse sparse matrix suite.
|
|
|
|
%prep
|
|
%autosetup -p1 -n SuiteSparse-%{version}
|
|
|
|
mv SPQR/Doc/README.txt SPQR/Doc/README_2.txt
|
|
|
|
# bnc#751746
|
|
rm CHOLMOD/Doc/IA3_2014_Workshop_Rennich_Stosic_Davis_preprint.pdf
|
|
rm KLU/Doc/palamadai_e.pdf
|
|
rm MATLAB_Tools/Factorize/Doc/factorize_article.pdf
|
|
rm SPQR/Doc/algo_spqr.pdf
|
|
rm SPQR/Doc/qrgpu_paper.pdf
|
|
rm SPQR/Doc/spqr.pdf
|
|
|
|
cp %{SOURCE1} Mongoose/Tests/
|
|
|
|
%(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)
|
|
|
|
%build
|
|
%limit_build -m 1500
|
|
|
|
%if %{with openblas}
|
|
export BLAS=-lopenblas
|
|
%else
|
|
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'
|
|
|
|
export JOBS="%(echo %{?_smp_mflags} | cut -c 3-)"
|
|
%make_build library
|
|
|
|
%install
|
|
%make_install
|
|
|
|
%fdupes %{buildroot}%{_datadir}
|
|
%fdupes %{buildroot}%{_libdir}
|
|
|
|
%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
|
|
|
|
%post -n %{btflib} -p /sbin/ldconfig
|
|
%postun -n %{btflib} -p /sbin/ldconfig
|
|
|
|
%post -n %{camdlib} -p /sbin/ldconfig
|
|
%postun -n %{camdlib} -p /sbin/ldconfig
|
|
|
|
%post -n %{ccolamdlib} -p /sbin/ldconfig
|
|
%postun -n %{ccolamdlib} -p /sbin/ldconfig
|
|
|
|
%post -n %{cholmodlib} -p /sbin/ldconfig
|
|
%postun -n %{cholmodlib} -p /sbin/ldconfig
|
|
|
|
%post -n %{colamdlib} -p /sbin/ldconfig
|
|
%postun -n %{colamdlib} -p /sbin/ldconfig
|
|
|
|
%post -n %{cxsparselib} -p /sbin/ldconfig
|
|
%postun -n %{cxsparselib} -p /sbin/ldconfig
|
|
|
|
%post -n %{graphblaslib} -p /sbin/ldconfig
|
|
%postun -n %{graphblaslib} -p /sbin/ldconfig
|
|
|
|
%post -n %{klulib} -p /sbin/ldconfig
|
|
%postun -n %{klulib} -p /sbin/ldconfig
|
|
|
|
%post -n %{ldllib} -p /sbin/ldconfig
|
|
%postun -n %{ldllib} -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 %{spexlib} -p /sbin/ldconfig
|
|
%postun -n %{spexlib} -p /sbin/ldconfig
|
|
|
|
%post -n %{spqrlib} -p /sbin/ldconfig
|
|
%postun -n %{spqrlib} -p /sbin/ldconfig
|
|
|
|
%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
|
|
%{_includedir}/*
|
|
%{_libdir}/pkgconfig/*.pc
|
|
%{_libdir}/*.so
|
|
%{_libdir}/cmake/*
|
|
|
|
%files -n %{amdlib}
|
|
%doc AMD/README.txt
|
|
%doc AMD/Doc/ChangeLog
|
|
%license AMD/Doc/License.txt
|
|
%{_libdir}/libamd.so.*
|
|
|
|
%files -n libamd-doc
|
|
%doc AMD/Doc/AMD_UserGuide.pdf
|
|
|
|
%files -n %{btflib}
|
|
%doc BTF/README.txt
|
|
%doc BTF/Doc/ChangeLog
|
|
%license BTF/Doc/License.txt BTF/Doc/lesser.txt
|
|
%{_libdir}/libbtf.so.*
|
|
|
|
%files -n %{camdlib}
|
|
%doc CAMD/README.txt
|
|
%doc CAMD/Doc/ChangeLog
|
|
%license CAMD/Doc/License.txt
|
|
%{_libdir}/libcamd.so.*
|
|
|
|
%files -n libcamd-doc
|
|
%doc CAMD/Doc/CAMD_UserGuide.pdf
|
|
|
|
%files -n %{ccolamdlib}
|
|
%doc CCOLAMD/README.txt
|
|
%doc CCOLAMD/Doc/ChangeLog
|
|
%license CCOLAMD/Doc/License.txt
|
|
%{_libdir}/libccolamd.so.*
|
|
|
|
%files -n %{cholmodlib}
|
|
%doc CHOLMOD/README.txt
|
|
%doc CHOLMOD/Doc/CHOLMOD_UserGuide.pdf
|
|
%license CHOLMOD/Doc/ChangeLog CHOLMOD/Doc/License.txt
|
|
%license CHOLMOD/Cholesky/lesser.txt
|
|
%license CHOLMOD/MatrixOps/gpl.txt
|
|
%{_libdir}/libcholmod.so.*
|
|
|
|
%files -n %{colamdlib}
|
|
%doc COLAMD/README.txt
|
|
%doc COLAMD/Doc/ChangeLog
|
|
%license COLAMD/Doc/License.txt
|
|
%{_libdir}/libcolamd.so.*
|
|
|
|
%files -n %{cxsparselib}
|
|
%doc CXSparse/README.txt
|
|
%doc CXSparse/Doc/ChangeLog
|
|
%license CXSparse/Doc/License.txt CXSparse/Doc/lesser.txt
|
|
%{_libdir}/libcxsparse.so.*
|
|
|
|
%files -n %{graphblaslib}
|
|
%doc GraphBLAS/README.md
|
|
%doc GraphBLAS/Doc/GraphBLAS_UserGuide.pdf
|
|
%license GraphBLAS/Doc/ChangeLog GraphBLAS/LICENSE
|
|
%{_libdir}/libgraphblas.so.*
|
|
|
|
%files -n %{klulib}
|
|
%doc KLU/README.txt
|
|
%doc KLU/Doc/ChangeLog
|
|
%license KLU/Doc/License.txt KLU/Doc/lesser.txt
|
|
%{_libdir}/libklu.so.*
|
|
|
|
%files -n libklu-doc
|
|
%doc KLU/Doc/KLU_UserGuide.pdf
|
|
|
|
%files -n %{ldllib}
|
|
%doc LDL/README.txt
|
|
%doc LDL/Doc/ChangeLog
|
|
%license LDL/Doc/License.txt LDL/Doc/lesser.txt
|
|
%{_libdir}/libldl.so.*
|
|
|
|
%files -n libldl-doc
|
|
%doc LDL/Doc/ldl_userguide.pdf
|
|
|
|
%files -n %{suitesparse_mongooselib}
|
|
%doc Mongoose/README.md
|
|
%license Mongoose/Doc/License.txt
|
|
%{_libdir}/libsuitesparse_mongoose.so.*
|
|
|
|
%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 %{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
|
|
%doc SPQR/Doc/spqr_user_guide.pdf SPQR/Doc/ChangeLog SPQR/Doc/README_2.txt
|
|
%license SPQR/Doc/License.txt SPQR/Doc/gpl.txt
|
|
%{_libdir}/libspqr.so.*
|
|
|
|
%files -n %{umfpacklib}
|
|
%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 SuiteSparse_config/README.txt
|
|
%license LICENSE.txt
|
|
%{_libdir}/libsuitesparseconfig.so.*
|
|
|
|
%changelog
|