From 7421a71ec8bec02e3a7ac29eef485e8ab73e80a5d8583edfdfe6bf8fab07f795 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Mon, 6 Jun 2016 14:11:07 +0000 Subject: [PATCH] Accepting request 399550 from home:mathletic:branches:devel:libraries:c_c++ update to version 5.2.1 include improvements from the mailinglist OBS-URL: https://build.opensuse.org/request/show/399550 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/superlu?expand=0&rev=12 --- README.SUSE | 3 +- baselibs.conf | 2 +- superlu-4.3-disable-hsl.patch | 48 -------------------- superlu-5.2-remove-mc64ad.patch | 50 +++++++++++++++++++++ superlu.changes | 8 ++++ superlu.spec | 77 +++++++++++++++++---------------- superlu_4.3-bsd.tar.bz2 | 3 -- superlu_5.2.1-bsd.tar.gz | 3 ++ superlu_ug.pdf | 4 +- 9 files changed, 106 insertions(+), 92 deletions(-) delete mode 100644 superlu-4.3-disable-hsl.patch create mode 100644 superlu-5.2-remove-mc64ad.patch delete mode 100644 superlu_4.3-bsd.tar.bz2 create mode 100644 superlu_5.2.1-bsd.tar.gz diff --git a/README.SUSE b/README.SUSE index 23a2f3b..0fbce77 100644 --- a/README.SUSE +++ b/README.SUSE @@ -1,7 +1,8 @@ This version of SuperLU is slightly different form the original SuperLU available on http://crd.lbl.gov/~xiaoye/SuperLU/. For legal reasons the routine mc64ad from the Harwell Subroutine Library cannot be redistributed -by openSUSE and have been removed form the sources. +by openSUSE and have been removed form the sources. Only SRC/mc64ad.c was +removed from the tarball. However the SuperLU library provided by openSUSE is fully functionnal except that the mc64ad routine is not used. diff --git a/baselibs.conf b/baselibs.conf index 40389c5..5ac370e 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1 +1 @@ -libsuperlu4 +libsuperlu5 diff --git a/superlu-4.3-disable-hsl.patch b/superlu-4.3-disable-hsl.patch deleted file mode 100644 index fbdd754..0000000 --- a/superlu-4.3-disable-hsl.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -aruN SuperLU_4.3.orig/SRC/Makefile SuperLU_4.3/SRC/Makefile ---- SuperLU_4.3.orig/SRC/Makefile 2011-10-27 21:49:47.000000000 +0200 -+++ SuperLU_4.3/SRC/Makefile 2013-01-08 21:59:19.495919213 +0100 -@@ -51,7 +51,7 @@ - sp_coletree.o sp_preorder.o sp_ienv.o relax_snode.o \ - heap_relax_snode.o colamd.o \ - ilu_relax_snode.o ilu_heap_relax_snode.o mark_relax.o \ -- mc64ad.o qselect.o -+ qselect.o - - SLUSRC = \ - sgssv.o sgssvx.o \ -@@ -63,7 +63,7 @@ - sreadhb.o sreadrb.o sreadtriple.o \ - scolumn_dfs.o scolumn_bmod.o spivotL.o spruneL.o \ - smemory.o sutil.o smyblas2.o \ -- sgsisx.o sgsitrf.o sldperm.o \ -+ sgsitrf.o \ - ilu_sdrop_row.o ilu_ssnode_dfs.o \ - ilu_scolumn_dfs.o ilu_spanel_dfs.o ilu_scopy_to_ucol.o \ - ilu_spivotL.o sdiagonal.o -@@ -77,7 +77,7 @@ - dreadhb.o dreadrb.o dreadtriple.o \ - dcolumn_dfs.o dcolumn_bmod.o dpivotL.o dpruneL.o \ - dmemory.o dutil.o dmyblas2.o \ -- dgsisx.o dgsitrf.o dldperm.o \ -+ dgsitrf.o \ - ilu_ddrop_row.o ilu_dsnode_dfs.o \ - ilu_dcolumn_dfs.o ilu_dpanel_dfs.o ilu_dcopy_to_ucol.o \ - ilu_dpivotL.o ddiagonal.o -@@ -92,7 +92,7 @@ - creadhb.o creadrb.o creadtriple.o \ - ccolumn_dfs.o ccolumn_bmod.o cpivotL.o cpruneL.o \ - cmemory.o cutil.o cmyblas2.o \ -- cgsisx.o cgsitrf.o cldperm.o \ -+ cgsitrf.o \ - ilu_cdrop_row.o ilu_csnode_dfs.o \ - ilu_ccolumn_dfs.o ilu_cpanel_dfs.o ilu_ccopy_to_ucol.o \ - ilu_cpivotL.o cdiagonal.o -@@ -106,7 +106,7 @@ - zreadhb.o zreadrb.o zreadtriple.o \ - zcolumn_dfs.o zcolumn_bmod.o zpivotL.o zpruneL.o \ - zmemory.o zutil.o zmyblas2.o \ -- zgsisx.o zgsitrf.o zldperm.o \ -+ zgsitrf.o \ - ilu_zdrop_row.o ilu_zsnode_dfs.o \ - ilu_zcolumn_dfs.o ilu_zpanel_dfs.o ilu_zcopy_to_ucol.o \ - ilu_zpivotL.o zdiagonal.o diff --git a/superlu-5.2-remove-mc64ad.patch b/superlu-5.2-remove-mc64ad.patch new file mode 100644 index 0000000..64bbd68 --- /dev/null +++ b/superlu-5.2-remove-mc64ad.patch @@ -0,0 +1,50 @@ +--- a/SRC/CMakeLists.txt 2016-05-29 13:57:44.683251096 +0200 ++++ b/SRC/CMakeLists.txt 2016-05-29 13:57:31.570987497 +0200 +@@ -22,7 +22,6 @@ + ilu_relax_snode.c + ilu_heap_relax_snode.c + mark_relax.c +- mc64ad.c + qselect.c + input_error.c + ) +@@ -63,9 +62,7 @@ + smemory.c + sutil.c + smyblas2.c +- sgsisx.c + sgsitrf.c +- sldperm.c + ilu_sdrop_row.c + ilu_ssnode_dfs.c + ilu_scolumn_dfs.c +@@ -112,9 +109,7 @@ + dmemory.c + dutil.c + dmyblas2.c +- dgsisx.c + dgsitrf.c +- dldperm.c + ilu_ddrop_row.c + ilu_dsnode_dfs.c + ilu_dcolumn_dfs.c +@@ -163,9 +158,7 @@ + cmemory.c + cutil.c + cmyblas2.c +- cgsisx.c + cgsitrf.c +- cldperm.c + ilu_cdrop_row.c + ilu_csnode_dfs.c + ilu_ccolumn_dfs.c +@@ -213,9 +206,7 @@ + zmemory.c + zutil.c + zmyblas2.c +- zgsisx.c + zgsitrf.c +- zldperm.c + ilu_zdrop_row.c + ilu_zsnode_dfs.c + ilu_zcolumn_dfs.c diff --git a/superlu.changes b/superlu.changes index 2d8744d..1d61f79 100644 --- a/superlu.changes +++ b/superlu.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sun May 29 16:30:52 UTC 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 + ------------------------------------------------------------------- Wed Jul 29 09:34:51 UTC 2015 - dimstar@opensuse.org diff --git a/superlu.spec b/superlu.spec index 259e1aa..a57c91c 100644 --- a/superlu.spec +++ b/superlu.spec @@ -1,7 +1,8 @@ # # spec file for package superlu # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 Christoph GrĂ¼ninger foss@grueninger.de # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,29 +18,29 @@ Name: superlu -Summary: A general purpose library for the direct solution of linear equations +Summary: A general purpose library for the direct solution of sparse systems of linear equations License: BSD-3-Clause Group: Development/Libraries/C and C++ -Version: 4.3 +Version: 5.2.1 Release: 0 -#Source: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.3.tar.gz -Source: superlu_%{version}-bsd.tar.bz2 +%define soname lib%{name}5 +#Source: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz +Source: %{name}_%{version}-bsd.tar.gz Source1: superlu_ug.pdf Source2: README.SUSE Source3: baselibs.conf -# PATCH-FEATURE-OPENSUSE superlu-4.3.diff : add compiler and build flags in make.inc -Patch: superlu-4.3.diff # PATCH-FIX-UPSTREAM superlu-4.3-include.patch : avoid implicit declaration warnings Patch1: superlu-4.3-include.patch # PATCH-FIX-UPSTREAM superlu-4.3-dont-opt-away.diff Patch2: superlu-4.3-dont-opt-away.diff -# PATCH-FIX-OPENSUSE superlu-4.3-remove-hsl.patch [bnc#796236] -# The Harwell Subroutine Library (HSL) routine m64ad.c have been removed +# PATCH-FIX-OPENSUSE superlu-5.2-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 functionnal -Patch3: superlu-4.3-disable-hsl.patch +Patch3: superlu-5.2-remove-mc64ad.patch Url: http://crd.lbl.gov/~xiaoye/SuperLU/ BuildRequires: blas +BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc-fortran BuildRequires: tcsh @@ -47,28 +48,25 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %description SuperLU is an algorithm that uses group theory to optimize LU -decomposition of sparse matrices. It's the fastest direct solver for -linear systems that the author is aware of. +decomposition of sparse matrices. -Docu can be found on http://www.netlib.org. - -%package -n libsuperlu4 +%package -n %soname Summary: SuperLU matrix solver Group: System/Libraries -%description -n libsuperlu4 +%description -n %soname SuperLU is an algorithm that uses group theory to optimize LU -decomposition of sparse matrices. It's the fastest direct solver for -linear systems that the author is aware of. - -Docu can be found on http://www.netlib.org. +decomposition of sparse matrices. %package devel Summary: Development files for %{name} Group: Development/Libraries/C and C++ +Requires: %soname = %{version} +# The standalone superlu RPM has been eliminated, and the relevant +# files are now in superlu-devel +# The last standalone superlu RPM was was v3.0 Provides: superlu = %{version} -Obsoletes: superlu < %{version} -Requires: libsuperlu4 = %{version} +Obsoletes: superlu <= 3.0 %description devel The %{name}-devel package contains libraries and header files for @@ -76,7 +74,6 @@ developing applications that use %{name}. %prep %setup -q -n SuperLU_%{version} -%patch -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -84,19 +81,25 @@ developing applications that use %{name}. cp %SOURCE1 %SOURCE2 ./ %build -make lib - -mkdir tmp -(cd tmp; ar -x ../lib/libsuperlu_%{version}.a) -gfortran -shared -Wl,-soname,libsuperlu.so.4 -o lib/libsuperlu.so tmp/*.o +mkdir build +cd build +cmake \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS_RELEASE=\ + "-O3 -fPIC -fschedule-insns2 \ + -funroll-loops -fstrict-aliasing \ + -ftree-vectorize -funit-at-a-time \ + -frerun-loop-opt" \ + .. +make %{?_smp_mflags} +cd .. %install -mkdir -p %{buildroot}%{_libdir} -mkdir -p %{buildroot}%{_includedir} -install -m644 SRC/*.h %{buildroot}%{_includedir} -install -m755 lib/libsuperlu.so %{buildroot}%{_libdir}/libsuperlu.so.%{version} -ln -s %{_libdir}/libsuperlu.so.%{version} %{buildroot}%{_libdir}/libsuperlu.so.4 -ln -s %{_libdir}/libsuperlu.so.4 %{buildroot}%{_libdir}/libsuperlu.so +cd build +make DESTDIR=%{buildroot} install +cd .. #fix permissions chmod 644 MATLAB/* @@ -119,11 +122,11 @@ for i in stest dtest ctest ztest; do cat TESTING/$i.out done -%post -n libsuperlu4 -p /sbin/ldconfig +%post -n %soname -p /sbin/ldconfig -%postun -n libsuperlu4 -p /sbin/ldconfig +%postun -n %soname -p /sbin/ldconfig -%files -n libsuperlu4 +%files -n %soname %defattr(-,root,root,-) %doc README MATLAB README.SUSE %{_libdir}/*.so.* diff --git a/superlu_4.3-bsd.tar.bz2 b/superlu_4.3-bsd.tar.bz2 deleted file mode 100644 index 0aa6aa2..0000000 --- a/superlu_4.3-bsd.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7147d51d0218ada61ef190397595f77df7de42ff4f84087b81918ec6a2564039 -size 2159982 diff --git a/superlu_5.2.1-bsd.tar.gz b/superlu_5.2.1-bsd.tar.gz new file mode 100644 index 0000000..8ccd60d --- /dev/null +++ b/superlu_5.2.1-bsd.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a69513a061432baaac93bfd60a258ad492b894a2f4025276e742d88251b8a82f +size 2540521 diff --git a/superlu_ug.pdf b/superlu_ug.pdf index 959c765..6f6615d 100644 --- a/superlu_ug.pdf +++ b/superlu_ug.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb9b6dca641582b8346fdb58f22bc0b1284b5cbf99a322f8094f824059be8e6a -size 382387 +oid sha256:f66438fe62cbc455855813b914095a11fe7b96a700926b59bce8a1d8a4dbcdba +size 687318