diff --git a/README.SUSE b/README.SUSE new file mode 100644 index 0000000..23a2f3b --- /dev/null +++ b/README.SUSE @@ -0,0 +1,7 @@ +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. + +However the SuperLU library provided by openSUSE is fully functionnal +except that the mc64ad routine is not used. diff --git a/superlu-4.3-disable-hsl.patch b/superlu-4.3-disable-hsl.patch new file mode 100644 index 0000000..fbdd754 --- /dev/null +++ b/superlu-4.3-disable-hsl.patch @@ -0,0 +1,48 @@ +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-4.3.diff b/superlu-4.3.diff index 5d11225..e6580ec 100644 --- a/superlu-4.3.diff +++ b/superlu-4.3.diff @@ -1,7 +1,7 @@ diff -aruN SuperLU_4.3.orig/make.inc SuperLU_4.3/make.inc --- SuperLU_4.3.orig/make.inc 2011-10-27 21:49:47.000000000 +0200 -+++ SuperLU_4.3/make.inc 2012-12-20 22:21:26.422475039 +0100 -@@ -21,14 +21,14 @@ ++++ SuperLU_4.3/make.inc 2013-01-08 21:28:11.755985160 +0100 +@@ -21,14 +21,15 @@ # # The name of the libraries to be created/linked to # @@ -9,6 +9,7 @@ diff -aruN SuperLU_4.3.orig/make.inc SuperLU_4.3/make.inc -SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_4.2.a +SuperLUroot = ../ +SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_4.3.a ++SUPERLUSLIB = -L../lib -lsuperlu TMGLIB = libtmglib.a ## BLASLIB = $(SuperLUroot)/lib/libblas.a @@ -19,7 +20,7 @@ diff -aruN SuperLU_4.3.orig/make.inc SuperLU_4.3/make.inc ## ATLAS BLAS causes single-precision to fail #BLASLIB = -L/usr/lib/atlas -lblas -@@ -46,12 +46,19 @@ +@@ -46,12 +47,19 @@ RANLIB = ranlib CC = gcc @@ -45,10 +46,49 @@ diff -aruN SuperLU_4.3.orig/make.inc SuperLU_4.3/make.inc # # C preprocessor defs for compilation for the Fortran interface -@@ -61,5 +68,5 @@ +@@ -61,5 +69,5 @@ # # The directory in which Matlab is installed # -MATLAB = /usr/sww/matlab +#MATLAB = /usr/sww/matlab +diff -aruN SuperLU_4.3.orig/TESTING/Makefile SuperLU_4.3/TESTING/Makefile +--- SuperLU_4.3.orig/TESTING/Makefile 2011-10-27 21:49:47.000000000 +0200 ++++ SuperLU_4.3/TESTING/Makefile 2013-01-08 21:12:51.444017656 +0100 +@@ -54,7 +54,7 @@ + + ./stest: $(SLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB) + $(LOADER) $(LOADOPTS) $(SLINTST) $(ALINTST) \ +- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@ ++ $(TMGLIB) $(SUPERLUSLIB) $(BLASLIB) -lm -o $@ + + stest.out: stest stest.csh + @echo Testing SINGLE PRECISION linear equation routines +@@ -64,7 +64,7 @@ + + ./dtest: $(DLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB) + $(LOADER) $(LOADOPTS) $(DLINTST) $(ALINTST) \ +- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@ ++ $(TMGLIB) $(SUPERLUSLIB) $(BLASLIB) -lm -o $@ + + dtest.out: dtest dtest.csh + @echo Testing DOUBLE PRECISION linear equation routines +@@ -74,7 +74,7 @@ + + ./ctest: $(CLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB) + $(LOADER) $(LOADOPTS) $(CLINTST) $(ALINTST) \ +- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@ ++ $(TMGLIB) $(SUPERLUSLIB) $(BLASLIB) -lm -o $@ + + ctest.out: ctest ctest.csh + @echo Testing SINGLE COMPLEX linear equation routines +@@ -84,7 +84,7 @@ + + ./ztest: $(ZLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB) + $(LOADER) $(LOADOPTS) $(ZLINTST) $(ALINTST) \ +- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@ ++ $(TMGLIB) $(SUPERLUSLIB) $(BLASLIB) -lm -o $@ + + ztest.out: ztest ztest.csh + @echo Testing DOUBLE COMPLEX linear equation routines diff --git a/superlu.changes b/superlu.changes index de941e0..86074df 100644 --- a/superlu.changes +++ b/superlu.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Tue Jan 15 21:14:51 UTC 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 20:47:13 UTC 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 22:21:27 UTC 2012 - scorot@free.fr diff --git a/superlu.spec b/superlu.spec index e02c781..e1e7ca9 100644 --- a/superlu.spec +++ b/superlu.spec @@ -1,7 +1,7 @@ # # spec file for package superlu # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,14 +22,20 @@ License: BSD-3-Clause Group: Development/Libraries/C and C++ Version: 4.3 Release: 0 -Source: ftp://ftp.netlib.org/scalapack/prototype/superlu_%{version}.tar.bz2 +Source: ftp://ftp.netlib.org/scalapack/prototype/superlu_%{version}-bsd.tar.bz2 Source1: superlu_ug.pdf +Source2: README.SUSE # 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 +# 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 Url: http://crd.lbl.gov/~xiaoye/SuperLU/ BuildRequires: blas BuildRequires: fdupes @@ -71,21 +77,22 @@ developing applications that use %{name}. %patch -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 # superlu_ug.pdf in %%doc -cp %SOURCE1 ./ +cp %SOURCE1 %SOURCE2 ./ %build -make +make lib mkdir tmp (cd tmp; ar -x ../lib/libsuperlu_%{version}.a) -gfortran -shared -Wl,-soname,libsuperlu.so.4 -o libsuperlu.so.%{version} tmp/*.o +gfortran -shared -Wl,-soname,libsuperlu.so.4 -o lib/libsuperlu.so tmp/*.o %install mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_includedir} install -m644 SRC/*.h %{buildroot}%{_includedir} -install -m755 *.so.* %{buildroot}%{_libdir} +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 @@ -102,10 +109,13 @@ cp FORTRAN/README README.fortran %fdupes -s examples %check -cd TESTING -./stest -./ztest -cd .. +ln -s examples/ EXAMPLE +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} +make testing +echo -ne "\nTest results\n" +for i in stest dtest ctest ztest; do + cat TESTING/$i.out +done %post -n libsuperlu4 -p /sbin/ldconfig @@ -113,7 +123,7 @@ cd .. %files -n libsuperlu4 %defattr(-,root,root,-) -%doc README MATLAB +%doc README MATLAB README.SUSE %{_libdir}/*.so.* %files devel diff --git a/superlu_4.3-bsd.tar.bz2 b/superlu_4.3-bsd.tar.bz2 new file mode 100644 index 0000000..0aa6aa2 --- /dev/null +++ b/superlu_4.3-bsd.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7147d51d0218ada61ef190397595f77df7de42ff4f84087b81918ec6a2564039 +size 2159982 diff --git a/superlu_4.3.tar.bz2 b/superlu_4.3.tar.bz2 deleted file mode 100644 index 34069ea..0000000 --- a/superlu_4.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f6df0c9dd5025c6ff695cc274c76eedceb90b0feddabafc6ce6379145e00681 -size 2227499