SHA256
10
0
forked from pool/superlu

11 Commits

Author SHA256 Message Date
9a66e416ba Accepting request 1316636 from science
OBS-URL: https://build.opensuse.org/request/show/1316636
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/superlu?expand=0&rev=36
2025-11-11 18:18:34 +00:00
b2e02d1156 - Back-port fix to regression with compatibility to SuperLU 6 by
adding superlu-restore-compatibility-v6.patch

OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=54
2025-11-09 03:24:53 +00:00
4b2ae75704 - Update to version 7.0.1
* Matgen small C improvements
  * Wherever possible declared parameter as pointer to const
  * Add Fortran package manager (fpm) build system

OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=53
2025-11-08 04:52:39 +00:00
851c367c21 Accepting request 1266045 from science
OBS-URL: https://build.opensuse.org/request/show/1266045
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/superlu?expand=0&rev=35
2025-04-03 14:45:54 +00:00
Ana Guerrero
612191aa6f - Disable and remove support for gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=51
2025-04-01 08:41:20 +00:00
06e5ae9c61 Accepting request 1229425 from science
OBS-URL: https://build.opensuse.org/request/show/1229425
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/superlu?expand=0&rev=34
2024-12-10 22:43:08 +00:00
6e16d83b45 Add BuildRequires: libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc to fix use of %requires_eq.
OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=49
2024-12-09 15:29:49 +00:00
5c0279d15f Accepting request 1219257 from science
OBS-URL: https://build.opensuse.org/request/show/1219257
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/superlu?expand=0&rev=33
2024-10-31 15:08:53 +00:00
4acf4c9948 Move manual installation of files from %check section to install where they really belong (boo#1232550).
OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=47
2024-10-30 05:57:00 +00:00
0ecb5da8a5 Accepting request 1218514 from science
OBS-URL: https://build.opensuse.org/request/show/1218514
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/superlu?expand=0&rev=32
2024-10-28 14:17:38 +00:00
369b078d17 - Fix %check for gnu-hpc flavor by loading openblas module before
running ctest.
- Update to version 7.0.0
  * To avoid name clashes, use type "singlecomplex" instead of
    "complex".
  * Rank Deficient Matrices

OBS-URL: https://build.opensuse.org/package/show/science/superlu?expand=0&rev=45
2024-10-26 11:48:03 +00:00
8 changed files with 114 additions and 196 deletions

View File

@@ -1,4 +0,0 @@
<multibuild>
<package>gnu-hpc</package>
<package>serial</package>
</multibuild>

Binary file not shown.

3
superlu-7.0.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1bc4284b8909785edf1a6d548f76e8c91239deb61b0c313e17f67c85aec38478
size 2462820

View File

@@ -1,5 +1,4 @@
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
index 34c4aa4..7996af0 100644
--- a/SRC/CMakeLists.txt --- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt
@@ -23,7 +23,6 @@ set(sources @@ -23,7 +23,6 @@ set(sources
@@ -9,8 +8,8 @@ index 34c4aa4..7996af0 100644
- mc64ad.c - mc64ad.c
qselect.c qselect.c
input_error.c input_error.c
dmach.c )
@@ -68,9 +67,7 @@ if(enable_single) @@ -66,9 +65,7 @@ if(enable_single)
smemory.c smemory.c
sutil.c sutil.c
smyblas2.c smyblas2.c
@@ -20,7 +19,7 @@ index 34c4aa4..7996af0 100644
ilu_sdrop_row.c ilu_sdrop_row.c
ilu_ssnode_dfs.c ilu_ssnode_dfs.c
ilu_scolumn_dfs.c ilu_scolumn_dfs.c
@@ -118,9 +115,7 @@ if(enable_double) @@ -116,9 +113,7 @@ if(enable_double)
dmemory.c dmemory.c
dutil.c dutil.c
dmyblas2.c dmyblas2.c
@@ -30,7 +29,7 @@ index 34c4aa4..7996af0 100644
ilu_ddrop_row.c ilu_ddrop_row.c
ilu_dsnode_dfs.c ilu_dsnode_dfs.c
ilu_dcolumn_dfs.c ilu_dcolumn_dfs.c
@@ -171,9 +166,7 @@ if(enable_complex) @@ -169,9 +164,7 @@ if(enable_complex)
cmemory.c cmemory.c
cutil.c cutil.c
cmyblas2.c cmyblas2.c
@@ -40,7 +39,7 @@ index 34c4aa4..7996af0 100644
ilu_cdrop_row.c ilu_cdrop_row.c
ilu_csnode_dfs.c ilu_csnode_dfs.c
ilu_ccolumn_dfs.c ilu_ccolumn_dfs.c
@@ -222,9 +215,7 @@ if(enable_complex16) @@ -220,9 +213,7 @@ if(enable_complex16)
zmemory.c zmemory.c
zutil.c zutil.c
zmyblas2.c zmyblas2.c

View File

@@ -0,0 +1,26 @@
From 57a7dba4ddb8f3edc2dd2d8c529b2abd31977356 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <foss@grueninger.de>
Date: Sat, 8 Nov 2025 10:20:38 +0100
Subject: [PATCH] Restory compatibility with SuperLU < 7
Removed probably by accident in 0bbd6571bd839d866bff6a8ff1eaa812a8c31463
---
SRC/slu_scomplex.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/SRC/slu_scomplex.h b/SRC/slu_scomplex.h
index a9b728a6..96703912 100644
--- a/SRC/slu_scomplex.h
+++ b/SRC/slu_scomplex.h
@@ -30,6 +30,11 @@ at the top-level directory.
typedef struct { float r, i; } singlecomplex;
+#if defined(SUPERLU_TYPEDEF_COMPLEX) || DOXYGEN
+//! \brief backward compatibility with older versions of SuperLU
+//! Add -D enable_compatibility_complex=ON to your CMake call
+typedef singlecomplex complex;
+#endif
/* Macro definitions */

View File

@@ -1,3 +1,55 @@
-------------------------------------------------------------------
Sun Nov 9 00:25:50 UTC 2025 - Christoph G <foss@grueninger.de>
- Back-port fix to regression with compatibility to SuperLU 6 by
adding superlu-restore-compatibility-v6.patch
-------------------------------------------------------------------
Sat Nov 8 04:54:02 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Drop HPC specific rpmlintrc rules, since hpc flavours were
dropped [see commit on: Mon Mar 24 17:01:39 UTC 2025].
-------------------------------------------------------------------
Sat Nov 8 01:16:41 UTC 2025 - Christoph G <foss@grueninger.de>
- Update to version 7.0.1
* Matgen small C improvements
* Wherever possible declared parameter as pointer to const
* Add Fortran package manager (fpm) build system
-------------------------------------------------------------------
Mon Mar 24 17:01:39 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable and remove support for gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Mon Dec 9 15:13:46 UTC 2024 - Atri Bhattacharya <badshah400@gmail.com>
- Add BuildRequires:
libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc to fix
use of %requires_eq.
-------------------------------------------------------------------
Tue Oct 29 21:47:29 UTC 2024 - Atri Bhattacharya <badshah400@gmail.com>
- Move manual installation of files from %check section to
%install where they really belong (boo#1232550).
-------------------------------------------------------------------
Wed Oct 23 12:11:46 UTC 2024 - Atri Bhattacharya <badshah400@gmail.com>
- Fix %check for gnu-hpc flavor by loading openblas module before
running ctest.
-------------------------------------------------------------------
Sat Oct 12 21:07:32 UTC 2024 - Christoph G <foss@grueninger.de>
- Update to version 7.0.0
* To avoid name clashes, use type "singlecomplex" instead of
"complex".
* Rank Deficient Matrices
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Aug 6 08:39:35 UTC 2023 - Christoph G <foss@grueninger.de> Sun Aug 6 08:39:35 UTC 2023 - Christoph G <foss@grueninger.de>

View File

@@ -1,8 +1,2 @@
# In multibuild spec file names are expected to be different from source package names
addFilter(".*-hpc.*: E: invalid-spec-name")
# 'hidden' file names are standard for environment modules
addFilter(".*: W: hidden-file-or-dir /usr/share/lmod/.*/.version.*")
# Not a macro but the file magic for environment module files
addFilter(".*: W: macro-in-comment %Module1")
# Not a doc but an example package # Not a doc but an example package
addFilter(".*-examples.noarch: W: package-with-huge-docs .*") addFilter(".*-examples.noarch: W: package-with-huge-docs .*")

View File

@@ -1,7 +1,7 @@
# #
# spec file # spec file for package superlu
# #
# Copyright (c) 2023 SUSE LLC # Copyright (c) 2025 SUSE LLC and contributors
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,81 +16,17 @@
# #
%global flavor @BUILD_FLAVOR@%{nil} %define _sover 7
# Base package name
%define pname superlu
%define ver 6.0.1
%define _ver %(echo %{ver} | tr . _)
%if "%flavor" == ""
ExclusiveArch: do_not_build
%endif
%if "%{flavor}" == "serial"
%bcond_with hpc
%endif
%if "%{flavor}" == "gnu-hpc"
%bcond_without hpc
%global compiler_family gnu
%undefine c_f_ver
%endif
%if "%{flavor}" == "gnu7-hpc"
%bcond_without hpc
%global compiler_family gnu
%undefine c_f_ver 7
%endif
%if "%{flavor}" == "gnu8-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 8
%endif
%if "%{flavor}" == "gnu9-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 9
%endif
%if "%{flavor}" == "gnu10-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 10
%endif
%bcond_with ringdisabled
%if %{with hpc} && %{with ringdisabled}
ExclusiveArch: do_not_build
%endif
%define package_name %pname
%if %{without hpc}
%define p_prefix %_prefix
%define p_includedir %_includedir
%define p_libdir %_libdir
%define _sover 6
%define libname lib%{name}%{?_sover} %define libname lib%{name}%{?_sover}
%else
%{hpc_init -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} %{?ext:-e %{ext}}}
%define package_name %{hpc_package_name %_ver}
%define p_prefix %hpc_prefix
%define p_includedir %hpc_includedir
%define p_libdir %hpc_libdir
%define libname lib%{name}
%endif
Name: %{package_name} Name: superlu
Summary: A general purpose library for the direct solution of linear equations Summary: A general purpose library for the direct solution of linear equations
License: BSD-3-Clause License: BSD-3-Clause
Group: Productivity/Scientific/Math Group: Productivity/Scientific/Math
Version: %{ver} Version: 7.0.1
Release: 0 Release: 0
URL: https://portal.nersc.gov/project/sparse/superlu/ URL: https://portal.nersc.gov/project/sparse/superlu/
Source0: %{pname}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
# Tarball above is generated with the script below # Tarball above is generated with the script below
Source1: get-tarball.sh Source1: get-tarball.sh
Source2: README.SUSE Source2: README.SUSE
@@ -101,18 +37,13 @@ Source3: superlu.rpmlintrc
# this routine in the library which, however, remains fully functional # this routine in the library which, however, remains fully functional
Patch0: superlu-remove-mc64ad.patch Patch0: superlu-remove-mc64ad.patch
Patch1: superlu-make.linux.patch Patch1: superlu-make.linux.patch
# PATCH upstream from https://github.com/xiaoyeli/superlu/pull/169
Patch2: superlu-restore-compatibility-v6.patch
BuildRequires: blas-devel
BuildRequires: cmake >= 3.5 BuildRequires: cmake >= 3.5
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: tcsh
%if %{without hpc}
BuildRequires: blas-devel
BuildRequires: gcc-fortran BuildRequires: gcc-fortran
%else BuildRequires: tcsh
Requires: %{compiler_family}%{?c_f_ver}-compilers-hpc
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel
BuildRequires: suse-hpc >= 0.5.20230501
%endif
%description %description
SuperLU is an algorithm that uses group theory to optimize LU SuperLU is an algorithm that uses group theory to optimize LU
@@ -124,11 +55,6 @@ https://portal.nersc.gov/project/sparse/superlu/.
%package -n %libname %package -n %libname
Summary: SuperLU matrix solver Summary: SuperLU matrix solver
Group: System/Libraries Group: System/Libraries
%if %{with hpc}
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc}
Requires: lua-lmod >= 7.6.1
%hpc_requires
%endif
%description -n %libname %description -n %libname
SuperLU is an algorithm that uses group theory to optimize LU SuperLU is an algorithm that uses group theory to optimize LU
@@ -138,14 +64,10 @@ decomposition of sparse matrices.
Summary: Headers and development library for lib%{name}%{?_sover} Summary: Headers and development library for lib%{name}%{?_sover}
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %libname = %version Requires: %libname = %version
%if %{with hpc}
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel}
%hpc_requires_devel
%endif
Recommends: %name-doc Recommends: %name-doc
%description devel %description devel
SuperLU headers and libraries files needed for development %{with_hpc:(HPC variant)} SuperLU headers and libraries files needed for development
%package doc %package doc
Summary: Documentation for %name Summary: Documentation for %name
@@ -168,32 +90,17 @@ Example programs for SuperLU.
SuperLU is an algorithm that uses group theory to optimize LU SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices. decomposition of sparse matrices.
%if %{with hpc}
%{hpc_master_package -l -L}
%{hpc_master_package -L devel}
%{hpc_master_package doc}
%{hpc_master_package -L examples}
%endif
%prep %prep
%setup -q -n superlu-%{version} %setup -q -n superlu-%{version}
%autopatch -p1 %autopatch -p1
cp %SOURCE2 ./ cp %SOURCE2 ./
# Create baselibs.conf dynamically (non-HPC build only). # Create baselibs.conf dynamically
%if %{without hpc}
cat > %{_sourcedir}/baselibs.conf <<EOF cat > %{_sourcedir}/baselibs.conf <<EOF
lib%{name}%{?_sover} lib%{name}%{?_sover}
EOF EOF
%endif
%build %build
%{?hpc_setup}
%if %{without hpc}
%cmake \ %cmake \
%else
module load openblas
%hpc_cmake \
%endif
-DCMAKE_BUILD_TYPE=Release -DUSE_XSDK_DEFAULTS='TRUE' \ -DCMAKE_BUILD_TYPE=Release -DUSE_XSDK_DEFAULTS='TRUE' \
-Denable_tests=ON -Denable_examples=OFF -Denable_tests=ON -Denable_examples=OFF
make %{?_smp_mflags} make %{?_smp_mflags}
@@ -203,92 +110,36 @@ make %{?_smp_mflags}
#fix permissions #fix permissions
chmod 644 MATLAB/* EXAMPLE/* chmod 644 MATLAB/* EXAMPLE/*
# remove all build examples
cd EXAMPLE
make clean
rm -rf *itersol* .gitignore
cd ..
mv EXAMPLE examples
cp MAKE_INC/make.linux examples/make.inc
sed -i -e 's&@superlu_home@&%p_prefix&' -e 's&@superlu_lib@&%p_libdir&' examples/make.inc
rm -f examples/.gitignore
cp FORTRAN/README README.fortran cp FORTRAN/README README.fortran
cp -r EXAMPLE examples
cp MAKE_INC/make.linux examples/make.inc
sed -i -e 's&@superlu_home@&%_prefix&' -e 's&@superlu_lib@&%_libdir&' examples/make.inc
rm -f examples/.gitignore
%fdupes -s examples %fdupes -s examples
%check %check
%ctest %ctest
# remove all build examples
rm -fr EXAMPLE
%if %{with hpc}
%{hpc_write_pkgconfig}
# TODO: is there any path to add for Matlab files?
%hpc_write_modules_files
#%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the SuperLU library built with the %{compiler_family} compiler"
puts stderr "toolchain."
puts stderr " "
puts stderr "Note that this build of SuperLU leverages the OpenBLAS linear algebra libraries."
puts stderr "Consequently, openblas is loaded automatically with this module."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} compiler"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{SUMMARY}"
module-whatis "%{url}"
set version %{version}
depends-on openblas
if {[file isdirectory %{hpc_includedir}]} {
prepend-path INCLUDE %{hpc_includedir}
}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
setenv %{hpc_PNAME %pname}_DIR %{hpc_prefix}
if {[file isdirectory %{hpc_includedir}]} {
setenv %{hpc_PNAME %pname}_INC %{hpc_includedir}
%hpc_modulefile_add_pkgconfig_path
}
setenv %{hpc_PNAME %pname}_LIB %{hpc_libdir}
EOF
%endif
%if %{without hpc}
%post -n %libname -p /sbin/ldconfig %post -n %libname -p /sbin/ldconfig
%postun -n %libname -p /sbin/ldconfig %postun -n %libname -p /sbin/ldconfig
%else
%post -n %libname
/sbin/ldconfig -N %hpc_libdir
%postun -n %libname
/sbin/ldconfig -N %hpc_libdir
%hpc_module_delete_if_default
%endif
%files -n %libname %files -n %libname
%doc README MATLAB README.SUSE %doc README MATLAB README.SUSE
%{?with_hpc:%hpc_dirs} %{_libdir}/*.so.*
%{?with_hpc:%hpc_modules_files}
%{p_libdir}/*.so.*
%files devel %files devel
%doc README.fortran %doc README.fortran
%{?with_hpc:%{hpc_pkgconfig_file}} %{_includedir}/slu_*.h
%{p_includedir}/%{!?with_hpc:*} %{_includedir}/superlu_*.h
%{p_libdir}/*.so %{_includedir}/supermatrix.h
%dir %{p_libdir}/cmake/ %{_libdir}/*.so
%dir %{p_libdir}/cmake/superlu/ %dir %{_libdir}/cmake/
%{p_libdir}/cmake/superlu/*.cmake %dir %{_libdir}/cmake/superlu/
%{p_libdir}/pkgconfig/superlu.pc %{_libdir}/cmake/superlu/*.cmake
%{_libdir}/pkgconfig/superlu.pc
%files doc %files doc
%doc DOC/html DOC/ug.pdf %doc DOC/html DOC/ug.pdf