diff --git a/SuperLU-5.2.1-set_soname.patch b/SuperLU-5.2.1-set_soname.patch deleted file mode 100644 index d362e87bc9840c559905f498893eb1845d8f57ec..0000000000000000000000000000000000000000 --- a/SuperLU-5.2.1-set_soname.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/SRC/CMakeLists.orig.txt 2018-04-25 15:17:39.786715000 +0200 -+++ b/SRC/CMakeLists.txt 2018-04-25 15:25:00.253317607 +0200 -@@ -230,7 +230,7 @@ - - target_link_libraries(superlu ${BLAS_LIB} m) - set_target_properties(superlu PROPERTIES -- VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR} -+ VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR}.${VERSION_MINOR} - ) - - include(GNUInstallDirs) diff --git a/SuperLU.spec b/SuperLU.spec index 64a27a52d0e44dd77ea5a03ed0be253429c91f21..3bee328bb757a68aa08a0f2fb3da39ec7d100716 100644 --- a/SuperLU.spec +++ b/SuperLU.spec @@ -1,17 +1,12 @@ Name: SuperLU -Version: 5.2.1 -Release: 7 +Version: 6.0.1 +Release: 1 Summary: Library for the direct solution of large, sparse, nonsymmetric systems of linear equations License: BSD and GPLv2+ URL: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ -Source0: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_%{version}.tar.gz +Source0: https://github.com/xiaoyeli/superlu/archive/v%{version}/superlu-%{version}.tar.gz BuildRequires: openblas-devel openblas-srpm-macros cmake3 gcc-gfortran csh -# Fixed include path for building -Patch0000: superlu-cmake-includedir.patch -# Remove MC64 functionality Patch0001: superlu-removemc64.patch -# Add minor version for target properties -Patch0002: SuperLU-5.2.1-set_soname.patch %description The library is written in C and is callable from either C or Fortran program. It uses MPI, OpenMP and @@ -36,7 +31,7 @@ Requires: SuperLU = %{version}-%{release} The package contains all the help documentation along with C and FORTRAN examples. %prep -%autosetup -n SuperLU_%{version} -p1 +%autosetup -n superlu-%{version} -p1 rm -fr SRC/mc64ad.f.bak find . -type f | sed -e "/TESTING/d" | xargs chmod a-x find EXAMPLE -type f | while read file; do [ "$(file $file | awk '{print $2}')" = ELF ] && rm $file || : ; done @@ -61,16 +56,21 @@ cd - %files %doc License.txt -%{_libdir}/libsuperlu.so.5* +%{_libdir}/libsuperlu.so.6* %files devel -%{_includedir}/SuperLU/ +%{_includedir}/* %{_libdir}/libsuperlu.so +%{_libdir}/cmake/superlu/ +%{_libdir}/pkgconfig/superlu.pc %files help %doc DOC EXAMPLE FORTRAN %changelog +* Tue Sep 26 2023 xu_ping <707078654@qq.com> - 6.0.1-1 +- Upgrade version to 6.0.1 + * Thu Mar 5 2020 Ling Yang - 5.2.1-6 - Package Init diff --git a/SuperLU.yaml b/SuperLU.yaml new file mode 100644 index 0000000000000000000000000000000000000000..81180378ef78e975759896dfee4c6dddf79e0ec1 --- /dev/null +++ b/SuperLU.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://github.com/xiaoyeli/superlu +tag_prefix: ^v +separator: . diff --git a/superlu-6.0.1.tar.gz b/superlu-6.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bc61531950e30b7cce55f3bda60d336f00da65b4 Binary files /dev/null and b/superlu-6.0.1.tar.gz differ diff --git a/superlu-cmake-includedir.patch b/superlu-cmake-includedir.patch deleted file mode 100644 index c9558795fd02ed5e664f84a7a374e5737fb4c0de..0000000000000000000000000000000000000000 --- a/superlu-cmake-includedir.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- SuperLU_5.2.1/SRC/CMakeLists.txt 2018-04-13 17:01:44.007761121 +0200 -+++ CMakeLists.txt 2018-04-13 17:01:30.573718261 +0200 -@@ -242,5 +242,5 @@ - - install(FILES ${headers} - # DESTINATION ${CMAKE_INSTALL_PREFIX}/include -- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SuperLU - ) diff --git a/superlu-removemc64.patch b/superlu-removemc64.patch index 58596b8643dd34dce23243e6b8428de3b687035a..71c935014186487d1b99d09d44aac893a0dd3a00 100644 --- a/superlu-removemc64.patch +++ b/superlu-removemc64.patch @@ -1,5 +1,7 @@ ---- SuperLU_5.2.1/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200 -+++ mc64ad.c 2018-04-13 17:13:23.571981656 +0200 +diff --git a/SRC/mc64ad.c b/SRC/mc64ad.c +index 97fa736..3f6b884 100644 +--- a/SRC/mc64ad.c ++++ b/SRC/mc64ad.c @@ -1,2645 +1,16 @@ -/* mc64ad.f -- translated by f2c (version 20100827). - You must link the resulting object file with libf2c: @@ -119,7 +121,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64ad_(int_t *job, int_t *n, int_t *ne, int_t * -- ip, int_t *irn, double *a, int_t *num, int_t *cperm, +- ip, int_t *irn, double *a, int_t *num, int *cperm, - int_t *liw, int_t *iw, int_t *ldw, double *dw, int_t * - icntl, int_t *info) -{ @@ -135,16 +137,17 @@ - double fact, rinf; - - extern /* Subroutine */ int_t mc21ad_(int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *), mc64bd_( -- int_t *, int_t *, int_t *, int_t *, double *, int_t -- *, int_t *, int_t *, int_t *, int_t *, int_t *, -- double *), mc64rd_(int_t *, int_t *, int_t *, int_t *, -- double *), mc64sd_(int_t *, int_t *, int_t *, int_t * -- , double *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *), mc64wd_( -- int_t *, int_t *, int_t *, int_t *, double *, int_t -- *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t -- *, double *, double *); +- int_t *, int_t *, int_t *, int_t *, int_t *), +- mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *num, int_t *jperm, +- int_t *pr, int_t *q, int_t *l, double *d__), +- mc64rd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a), +- mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *numx, int_t *w, int_t *len, int_t *lenl, +- int_t *lenh, int_t *fc, int_t *iw, int_t *iw4), +- mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *num, int_t *jperm, int_t *out, +- int_t *pr, int_t *q, int_t *l, double *u, double *d__); - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* Research Councils *** */ @@ -346,7 +349,7 @@ - info[2] = *job; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because JOB = %d\n", info[1], *job); +- " because JOB = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -356,7 +359,7 @@ - info[2] = *n; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because N = %d\n", info[1], *job); +- " because N = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -366,7 +369,7 @@ - info[2] = *ne; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because NE = %d\n", info[1], *job); +- " because NE = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -391,7 +394,7 @@ - info[2] = k; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " LIW too small, must be at least %8d\n", info[1], k); +- " LIW too small, must be at least %8d\n", (int) info[1], (int) k); - } - goto L99; - } @@ -415,7 +418,7 @@ - info[2] = k; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " LDW too small, must be at least %8d\n", info[1], k); +- " LDW too small, must be at least %8d\n", (int) info[1], (int) k); - } - goto L99; - } @@ -439,7 +442,7 @@ - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d Column %8d" - " contains an entry with invalid row index %8d\n", -- info[1], j, i__); +- (int) info[1], (int) j, (int) i__); - } - goto L99; - } @@ -451,7 +454,7 @@ - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - " Column %8d" - " contains two or more entries with row index %8d\n", -- info[1], j, i__); +- (int) info[1], (int) j, (int) i__); - } - goto L99; - } else { @@ -465,15 +468,15 @@ -/* Print diagnostics on input */ - if (icntl[3] >= 0) { - printf(" ****** Input parameters for MC64A/AD: JOB = %8d," -- " N = %d, NE = %8d\n", *job, *n, *ne); +- " N = %d, NE = %8d\n", (int) *job, (int) *n, (int) *ne); - printf(" IP(1:N+1) = "); - for (j=1; j<=(*n+1); ++j) { -- printf("%8d", ip[j]); +- printf("%8d", (int) ip[j]); - if (j%8 == 0) printf("\n"); - } - printf("\n IRN(1:NE) = "); - for (j=1; j<=(*ne); ++j) { -- printf("%8d", irn[j]); +- printf("%8d", (int) irn[j]); - if (j%8 == 0) printf("\n"); - } - printf("\n"); @@ -621,24 +624,24 @@ - info[1] = 1; - if (icntl[2] >= 0) { - printf(" ****** Warning from MC64A/AD. INFO(1) = %2d" -- " The matrix is structurally singular.\n", info[1]); +- " The matrix is structurally singular.\n", (int)info[1]); - } - } - if (info[1] == 2) { -/* Scaling factors are large, return with warning */ - if (icntl[2] >= 0) { - printf(" ****** Warning from MC64A/AD. INFO(1) = %2d\n" -- " Some scaling factors may be too large.\n", info[1]); +- " Some scaling factors may be too large.\n", (int) info[1]); - } - } -/* Print diagnostics on output */ - if (icntl[3] >= 0) { - printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n", -- info[1], info[2]); -- printf(" NUM = %8d", *num); +- (int) info[1], (int) info[2]); +- printf(" NUM = %8d", (int) *num); - printf(" CPERM(1:N) = "); - for (j=1; j<=*n; ++j) { -- printf("%8d", cperm[j]); +- printf("%8d", (int) cperm[j]); - if (j%8 == 0) printf("\n"); - } - if (*job == 5) { @@ -662,7 +665,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *num, int_t *jperm, +- irn, double *a, int *iperm, int_t *num, int_t *jperm, - int_t *pr, int_t *q, int_t *l, double *d__) -{ - /* System generated locals */ @@ -685,10 +688,10 @@ - double dnew; - int_t jord, qlen, idum, jdum; - double rinf; -- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, -- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, -- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * -- , int_t *, int_t *, int_t *, double *, int_t *, int_t *); +- extern /* Subroutine */ int_t +- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *); - - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ @@ -1094,7 +1097,6 @@ -{ - /* System generated locals */ - int_t i__1; -- int_t c__1 = 1; - - /* Local variables */ - double di; @@ -1550,7 +1552,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *numx, int_t *w, +- irn, double *a, int *iperm, int_t *numx, int_t *w, - int_t *len, int_t *lenl, int_t *lenh, int_t *fc, int_t *iw, - int_t *iw4) +void mc64id_(int *a) @@ -1562,11 +1564,12 @@ - int_t i__, j, k, l, ii, mod, cnt, num; - double bval, bmin, bmax, rinf; - int_t nval, wlen, idum1, idum2, idum3; -- extern /* Subroutine */ int_t mc64qd_(int_t *, int_t *, int_t *, -- int_t *, int_t *, double *, int_t *, double *), -- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *); +- extern /* Subroutine */ int_t +- mc64qd_(int_t *, int_t *, int_t *, int_t *, int_t *, double *, +- int_t *, double *), +- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *, +- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, +- int_t *, int_t *, int_t *, int_t *); - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* Research Councils *** */ @@ -1576,7 +1579,10 @@ -/* *** any of the subroutines. *** */ -/* *** Any problems? Contact ... */ -/* Iain Duff (I.Duff@rl.ac.uk) or Jacko Koster (jak@ii.uib.no) *** */ -- ++ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); ++ abort(); ++} + -/* N, NE, IP, IRN, are described in MC64A/AD. */ -/* A is a REAL (DOUBLE PRECISION in the D-version) array of length NE. */ -/* A(K), K=1..NE, must be set to the value of the entry that */ @@ -1869,7 +1875,10 @@ -/* Subroutine */ int_t mc64qd_(int_t *ip, int_t *lenl, int_t *lenh, - int_t *w, int_t *wlen, double *a, int_t *nval, double * - val) --{ ++void mc64ad_(int *a, int *b, int *c, int d[], int e[], double f[], ++ int *g, int h[], int *i, int j[], int *k, double l[], ++ int m[], int n[]) + { - /* System generated locals */ - int_t i__1, i__2, i__3; - @@ -2165,7 +2174,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *num, int_t *jperm, +- irn, double *a, int *iperm, int_t *num, int_t *jperm, - int_t *out, int_t *pr, int_t *q, int_t *l, double *u, - double *d__) -{ @@ -2185,11 +2194,10 @@ - double dmin__, dnew; - int_t jord, qlen, jdum; - double rinf; -- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, -- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, -- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * -- , int_t *, int_t *, int_t *, double *, int_t *, -- int_t *); +- extern /* Subroutine */ int_t +- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *); - - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ @@ -2652,11 +2660,3 @@ + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); + abort(); +} -+ -+void mc64ad_(int *a, int *b, int *c, int d[], int e[], double f[], -+ int *g, int h[], int *i, int j[], int *k, double l[], -+ int m[], int n[]) -+{ -+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); -+ abort(); -+} diff --git a/superlu_5.2.1.tar.gz b/superlu_5.2.1.tar.gz deleted file mode 100644 index 7c1f7d2204d57d8991de9f1f047486ed14f9a7a1..0000000000000000000000000000000000000000 Binary files a/superlu_5.2.1.tar.gz and /dev/null differ