# # spec file for package superlu # # Copyright (c) 2025 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/ # %define _sover 7 %define libname lib%{name}%{?_sover} Name: superlu Summary: A general purpose library for the direct solution of linear equations License: BSD-3-Clause Group: Productivity/Scientific/Math Version: 7.0.0 Release: 4.1 URL: https://portal.nersc.gov/project/sparse/superlu/ Source0: %{name}-%{version}.tar.gz # Tarball above is generated with the script below Source1: get-tarball.sh Source2: README.SUSE Source3: superlu.rpmlintrc # PATCH-FIX-OPENSUSE superlu-remove-mc64ad.patch [bnc#796236] # The Harwell Subroutine Library (HSL) routine mc64ad.c have been removed # from the original sources for legal reasons. This patch disables the inclusion of # this routine in the library which, however, remains fully functional Patch0: superlu-remove-mc64ad.patch Patch1: superlu-make.linux.patch BuildRequires: blas-devel BuildRequires: cmake >= 3.5 BuildRequires: fdupes BuildRequires: gcc-fortran BuildRequires: tcsh %description SuperLU is an algorithm that uses group theory to optimize LU decomposition of sparse matrices. Documentation can be found in the %{name}-doc package or on https://portal.nersc.gov/project/sparse/superlu/. %package -n %libname Summary: SuperLU matrix solver Group: System/Libraries %description -n %libname SuperLU is an algorithm that uses group theory to optimize LU decomposition of sparse matrices. %package devel Summary: Headers and development library for lib%{name}%{?_sover} Group: Development/Libraries/C and C++ Requires: %libname = %version Recommends: %name-doc %description devel SuperLU headers and libraries files needed for development %package doc Summary: Documentation for %name Group: Documentation/Other BuildArch: noarch %description doc Documentation (HTML/PDF) for SuperLU. SuperLU is an algorithm that uses group theory to optimize LU decomposition of sparse matrices. %package examples Summary: Examples for %name Group: Documentation/Other Recommends: %name-devel BuildArch: noarch %description examples Example programs for SuperLU. SuperLU is an algorithm that uses group theory to optimize LU decomposition of sparse matrices. %prep %setup -q -n superlu-%{version} %autopatch -p1 cp %SOURCE2 ./ # Create baselibs.conf dynamically cat > %{_sourcedir}/baselibs.conf < - Disable and remove support for gnu-hpc build flavours (bsc#1239982) * Mon Dec 9 2024 Atri Bhattacharya - Add BuildRequires: libopenblas%%{?hpc_ext}-%%{compiler_family}%%{?c_f_ver}-hpc to fix use of %%requires_eq. * Tue Oct 29 2024 Atri Bhattacharya - Move manual installation of files from %%check section to %%install where they really belong (boo#1232550). * Wed Oct 23 2024 Atri Bhattacharya - Fix %%check for gnu-hpc flavor by loading openblas module before running ctest. * Sat Oct 12 2024 Christoph G - Update to version 7.0.0 * To avoid name clashes, use type "singlecomplex" instead of "complex". * Rank Deficient Matrices * Sun Aug 6 2023 Christoph G - Update to version 6.0.1 * Doxygen cleanup * Fix memory leak in ILU routines * Clean up some f2c-ed files - Run regression tests with CTest - Disable building examples - Update patch superlu-remove-mc64ad.patch - Drop patch superlu-examples_Makefile_remove_itersol.patch as we use CMake and no longer the provided Makefiles. And examples are no longer built. * Mon May 1 2023 Egbert Eich - Fix broken magic in HPC module file. This has been broken since: Wed Apr 19 23:20:41 UTC 2023 - Christoph G - Fix two rpmlint warning. - Add rpmlintrc. * Wed Apr 19 2023 Christoph G - Fix two rpmlint warning. * Sun Apr 16 2023 Atri Bhattacharya - Make doc and example packages noarch. * Sun Apr 9 2023 Christoph G - update to version 6.0.0 * Add 64-bit indexing support, with mixed int and int64_t types. * Add METIS ordering option. * Add FORTRAN/CMakeLists.txt - Update and rename patch superlu-5.2-remove-mc64ad.patch to superlu-remove-mc64ad.patch - update superlu-examples_Makefile_remove_itersol.patch * Thu Sep 30 2021 Antoine Ginies - update to version 5.3.0 (JSC#SLE-22138) * Thu Jan 28 2021 Egbert Eich - Change 'Requires:' to other HPC packages to %%requires_eq to depend on the exact version. This should take care of HPC packages ignoring proper ABI versioning. * Mon Nov 16 2020 Ana Guerrero Lopez - Fix package name, re-add lines removed by mistake. This fix duplicate binary names. (boo#1178840) * Mon Oct 26 2020 Ana Guerrero Lopez - New version 5.2.2 (boo#1178112) - bugfixes, documentation and examples update. - Update URL and Source0 and Source1, use get_tarball.sh to remove non distributable files. - Install superlu_ug.pdf provided by the tarball. - Remove patch, merged upstream * superlu-4.3-include.patch * superlu-4.3-dont-opt-away.diff * superlu-5.2-make.patch - Refresh patch: * superlu-examples_Makefile_remove_itersol.patch * superlu-make.linux.patch * Fri Sep 11 2020 Egbert Eich - Add build support for gcc10 to HPC build (bsc#1174439). * Wed Feb 26 2020 Egbert Eich - Add support for gcc8/9 building (jsc#SLE-8604). * Thu Feb 14 2019 Jan Engelhardt - Fix the package group fix. * Sun Feb 10 2019 Egbert Eich - Fix dependencies. - Fix %%%%post and %%%%postun scripts for HPC. - Fix HPC modulefile. - Fix package groups. - Generate and add pkgconfig files. * Fri Feb 8 2019 eich@suse.com - Set default module version correctly when installing master package, unset when deinstalling the default library package. - make example make.inc work with non-HPC builds as well. * Fri Feb 8 2019 Antoine Ginies - Add superlu-examples_Makefile_remove_itersol.patch superlu-make.linux.patch: get a buildable examples test suite (bsc#1124765) fixing Makefile adding missing make.inc * Tue Jan 22 2019 eich@suse.com - Disable HPC builds for ring testing on Factory submissions. * Mon Jan 21 2019 eich@suse.com - Fix a word in a comment. - Remove some colloquialism from a package description. * Fri Jan 18 2019 eich@suse.com - Reenable ldconfig in %%post and %%postun for HPC but don't let it update the cache: this would be pointless for libraries in non-standard locations. * Thu Jan 10 2019 eich@suse.com - Moved HPC module from devel to library package. - Modified summary for devel package. * Fri Oct 26 2018 eich@suse.com - Add environment module support for HPC. * create baselib.conf on the fly. - Add superlu-5.2-make.patch: add compiler and build flags in make.inc. - Separate off documentation and examples to separate packages. * Tue Jun 14 2016 badshah400@gmail.com - Use system blas by passing the cmake option - DUSE_XSDK_DEFAULTS='TRUE'. - Disable building tests for now because they have linking issues. - Use cmake macros wherever appropriate. - A minimum of cmake >= 2.8.12 is required for building. * Sun May 29 2016 foss@grueninger.de - Update to SuperLU 5.2.1 - Switch to CMake as build-system - Drop superlu-4.3-disable-hsl.patch as CMake is now used - Update to latest SuperLU User Guide - superlu-4.3.diff, superlu-4.3-remove-hsl.patch: removed - superlu-5.2-remove-mc64ad.patch: new, routine was removed * Wed Jul 29 2015 dimstar@opensuse.org - Add baselibs.conf: build libsuperlu4-32bit, as needed by libarmadillo. * Tue Jan 15 2013 scorot@free.fr - repackage original source tarball in order to remove the HSL mc64ad routine that caonnt be redistributed bnc#796236 - add README.SUSE file in the %%%%doci in order to explain that change * Tue Jan 8 2013 scorot@free.fr - add patch superlu-4.3-disable-hsl.patch in order to disable HSL code from the library - update patch superlu-4.3.diff so that test routines are run against the shared library - build tests routines in %%%%check section * Tue Dec 18 2012 scorot@free.fr - Update to SuperLU 4.3: * Remove recursive DFS for postordering elimination tree in sp_coletree.c (The nonrecursive routine nr_etdfs() was contributed by Cedric Doucet, CEDRAT Group, Meylan, France.) * Make supermatrix.h the same for all three libraries * Include an on-line HTML documentation for the source code * Corrected backward error BERR formula when a component of the RHS and the residual are exactly zero * Change parameter "delta" to genmmd() from 1 to 0 in get_perm_c remove "static" declaration in EXAMPLE/xlinsolx*.c * Include threshold-based incomplete factorization (ILU) * Removed the static global variables so that it is thread-safe. * Make superlu_options_t{} structure and enum constants the same for both superlu & superlu_dist. * Replace qsort by "quick select" (qselect) in ILU's secondary dropping. * Replace mc64ad.f by mc64ad.c using f2c. * Bug fixes in ilu_sdrop_row.c. * Bug fixes in xgsisx.c, so that when mc64 permutation is used in ILU, the right-hand side is permuted properly. * Add parameter #7 in sp_ienv(), setting as the maxsuper for ILU code (smaller than parameter #3). * Update Users Guide. * Update doxygen code documentation. * Fix a bug in ILU driver routine dgsisx.c, so that on return, the initial row permutation is combined with perm_r[] from partial pivoting. * Modify 2 ILU examples: EXAMPLE/ditersol.c, EXAMPLE/ditersol1.c * Update superlu_timer.c - Remove unneeded patches + superlu-overflow.patch : Applied upstream + superlu-initialize.diff : Applied upstream + superlu-undef-code.diff : Applied upstream - Updated patches + superlu-4.3.diff + superlu-4.3-include.patch + superlu-4.3-dont-opt-away.diff - Build shared libraries - Put shared libs and devel files in separate packages - Use rpm macros instead of plain directory names - Add %%%%ckeck - Update documentation file %%%%source1 and put html and examples files in %%%%doc - Spec file reformating * Sun Jan 29 2012 jengelh@medozas.de - Remove redundant tags/sections per specfile guideline suggestions - Parallel building using %%_smp_mflags * Thu Jun 22 2006 ro@suse.de - remove selfprovides * Mon Mar 27 2006 garloff@suse.de - superlu-undef-code.diff: Fix undefined code (#160443). * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Thu Dec 22 2005 garloff@suse.de - Install header files into /usr/include/superlu/ - Update User Guide. * Wed Dec 21 2005 garloff@suse.de - Include EXAMPLE dir as documentation. - Build as non-root. - Nuke unused local vars referencing uninitialized vars. * Wed Dec 21 2005 garloff@suse.de - Update to SuperLU-3.0: [#133821] * Added "options" input argument and "stat" output argument for the driver routines * More Examples * Added a "symmetric mode" for (nearly) symmetric matrices * Better Fortran interface. * fixed a bug in the complex drivers sgssvx/zgssvx when the input matrix is stored in compressed row format. * prefixed the header files by "slu_". * Fixed a memory leak in get_perm_c() when bnz=0. * Changed "abs" to "fabs" in izmax1. * Upgraded COLAMD to the latest version (2.3).15 - Add various declarations and #include statements - Trick compiler into not optimizing away a loop in our timing measurement. * Fri Nov 25 2005 yxu@suse.de - add missing function prototypes * Tue Nov 15 2005 dmueller@suse.de - avoid an endless loop during building (#133820) * Mon May 9 2005 meissner@suse.de - fixed 1 byte buffer overflows. * Mon Dec 20 2004 garloff@suse.de - Pass $(RPM_OPT_FLAGS) -Os -fPIC for files that don't need to be optimized. * Sat Sep 6 2003 garloff@suse.de - Add -fPIC to allow inclusion in dynamic lib. * Sun Aug 10 2003 garloff@suse.de - -O3 leads to an endless loop in dlamanch test on x86. Probably some compiler of FPU weirdness. Remove -O3 on x86 again. * Thu Aug 7 2003 garloff@suse.de - Adapt chown syntax to owner:group. - Reenable -O3 (compiler bug fixed?), but limit automatical inlining. * Wed Jun 18 2003 ro@suse.de - added directory to filelist. * Wed Aug 28 2002 ro@suse.de - remove -O3 from cflags (results in endless loop). * Wed May 8 2002 garloff@suse.de - lib64 fix. * Wed May 8 2002 garloff@suse.de - Fix test scripts. - Use BuildRoot. * Wed May 8 2002 garloff@suse.de - Remove BLAS, Lapack. - Rename package into SuperLU. * Sat Apr 20 2002 garloff@suse.de - Disable -fast-math - In SuperLU, use CBLAS that ships with it * Fri Apr 19 2002 garloff@suse.de - Update to * CLAPACK-3.0 * SuperLU-2.0 - Added SuperLU user guide * Fri Apr 19 2002 garloff@suse.de - Fixed compilation with gcc-3.1: link with -lfrtbegin (which contains main formerly in g2c) * Tue Apr 9 2002 ro@suse.de - fix owner for README.SuperLU * Mon Aug 7 2000 garloff@suse.de - Use %%{_docdir} to put docu in the right place. * Mon Aug 7 2000 garloff@suse.de - Add -mcpu=pentiumpro for i386 * Mon Sep 13 1999 bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. * Tue Aug 31 1999 garloff@suse.de - First creation of package.