diff --git a/baselibs.conf b/baselibs.conf index ee59c1b..dc36aca 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,6 +1,7 @@ liblapack3 libblas3 liblapacke3 +libcblas3 lapack-devel requires -lapack- requires "liblapack3- = " @@ -10,3 +11,6 @@ blas-devel lapacke-devel requires -lapacke- requires "liblapacke3- = " +cblas-devel + requires -cblas- + requires "libcblas3- = " diff --git a/lapack-3.2.2.patch b/lapack-3.2.2.patch deleted file mode 100644 index dbf429c..0000000 --- a/lapack-3.2.2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- BLAS/SRC/Makefile.orig 2010-01-13 13:06:19.000000000 +0100 -+++ BLAS/SRC/Makefile 2010-01-13 13:07:13.000000000 +0100 -@@ -167,5 +167,8 @@ - clean: - rm -f *.o - -+dcabs1.o: dcabs1.f -+ $(FORTRAN) $(NOOPT) -c $< -o $@ -+ - .f.o: - $(FORTRAN) $(OPTS) -c $< -o $@ diff --git a/lapack-3.5.0.tgz b/lapack-3.5.0.tgz deleted file mode 100644 index 1ada2a0..0000000 --- a/lapack-3.5.0.tgz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e405fd54fb457f5a382511b79dff347a90870edbffe42602b8d9c25970bb4177 -size 6312876 diff --git a/lapack-3.8.0.tgz b/lapack-3.8.0.tgz new file mode 100644 index 0000000..c296732 --- /dev/null +++ b/lapack-3.8.0.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:deb22cc4a6120bff72621155a9917f485f96ef8319ac074a7afbc68aab88bcf6 +size 7426094 diff --git a/lapack-man.spec b/lapack-man.spec index fdc9360..27388cd 100644 --- a/lapack-man.spec +++ b/lapack-man.spec @@ -1,7 +1,7 @@ # # spec file for package lapack-man # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/lapack.changes b/lapack.changes index 43dd18b..df1a916 100644 --- a/lapack.changes +++ b/lapack.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Jan 12 11:05:33 UTC 2018 - rguenther@suse.com + +- Upate to lapack 3.8.0. [bnc#956223] + * Many enhancements and additions +- Remove lapack-3.2.2.patch. +- Package CBLAS, adjust baselibs.conf for it. +- Change the interpreter for python_testing.py to python3 and BuildRequire + python3-base instead of python. [bnc#1075766] + ------------------------------------------------------------------- Wed May 31 21:39:51 UTC 2017 - jengelh@inai.de diff --git a/lapack.spec b/lapack.spec index 94e7263..601d280 100644 --- a/lapack.spec +++ b/lapack.spec @@ -1,7 +1,7 @@ # # spec file for package lapack # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: lapack -Version: 3.5.0 +Version: 3.8.0 Release: 0 Summary: Linear Algebra Package License: BSD-3-Clause @@ -25,9 +25,8 @@ Group: Development/Libraries/Parallel Url: http://www.netlib.org/lapack/ Source0: http://www.netlib.org/lapack/%{name}-%{version}.tgz Source99: baselibs.conf -Patch1: lapack-3.2.2.patch BuildRequires: gcc-fortran -BuildRequires: python +BuildRequires: python3-base BuildRequires: update-alternatives Requires(pre): update-alternatives BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -169,9 +168,35 @@ Requires: lapacke-devel = %{version} %description -n lapacke-devel-static LAPACKE development files - static libraries. +%package -n libcblas3 +Summary: CBLAS library +Group: Development/Libraries/C and C++ + +%description -n libcblas3 +This library provides a native C interface to BLAS routines +to facilitate usage of LAPACK functionality for C programmers. + +%package -n cblas-devel +Summary: CBLAS development files +Group: Development/Libraries/C and C++ +Requires: libcblas3 = %{version} +Provides: cblas = %{version} +Provides: cblas-devel-static = %{version} + +%description -n cblas-devel +CBLAS headers and development files. + +%package -n cblas-devel-static +Summary: CBLAS development files - static libraries +Group: Development/Libraries/C and C++ +Requires: cblas-devel = %{version} + +%description -n cblas-devel-static +CBLAS development files - static libraries. + + %prep %setup -q -%patch1 %build case "$RPM_ARCH" in @@ -180,17 +205,18 @@ case "$RPM_ARCH" in esac export PRECFLAGS cp make.inc.example make.inc -make cleanlib %{?_smp_mflags} +## BLAS make %{?_smp_mflags} blaslib \ OPTS="%{optflags} -fPIC" \ NOOPT="%{optflags} -O0 -fPIC" -mv librefblas.a libblas_pic.a +mkdir pic +mv librefblas.a pic/libblas_pic.a mkdir tmp -( cd tmp; ar x ../libblas_pic.a ) +( cd tmp; ar x ../pic/libblas_pic.a ) gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.%{version} tmp/*.o ln -s libblas.so.%{version} libblas.so rm -rf tmp -make cleanlib %{?_smp_mflags} +make -C BLAS clean make %{?_smp_mflags} blaslib \ OPTS="%{optflags}" \ NOOPT="%{optflags} -O0" @@ -205,39 +231,69 @@ if grep -B15 -A15 FAIL BLAS/*.out; then else true # No failures fi -mv librefblas.a libblas.a -make cleanlib %{?_smp_mflags} +cp librefblas.a libblas.a +## CBLAS +make %{?_smp_mflags} cblaslib \ + OPTS="%{optflags} -fPIC" \ + CFLAGS="%{optflags} -fPIC" \ + NOOPT="%{optflags} -O0 -fPIC" +mv libcblas.a pic/libcblas_pic.a +mkdir tmp +( cd tmp; ar x ../pic/libcblas_pic.a ) +gfortran -shared -Wl,-soname=libcblas.so.3 -o libcblas.so.%{version} tmp/*.o +ln -s libcblas.so.%{version} libcblas.so +rm -rf tmp +make -C CBLAS clean +make %{?_smp_mflags} cblaslib \ + OPTS="%{optflags}" \ + CFLAGS="%{optflags}" \ + NOOPT="%{optflags} -O0" +make cblas_testing \ + OPTS="%{optflags} $PRECFLAGS" \ + CFLAGS="%{optflags} $PRECFLAGS" \ + NOOPT="%{optflags} $PRECFLAGS -O0" +if grep -B15 -A15 FAIL CBLAS/*.out; then + echo + echo "cblas_testing FAILED" + echo + false +else + true # No failures +fi +## LAPACK make %{?_smp_mflags} lapacklib \ OPTS="%{optflags} -fPIC" \ NOOPT="%{optflags} -O0 -fPIC" -mv liblapack.a liblapack_pic.a +mv liblapack.a pic/liblapack_pic.a mkdir tmp -( cd tmp; ar x ../liblapack_pic.a ) +( cd tmp; ar x ../pic/liblapack_pic.a ) gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.%{version} tmp/*.o -L. -lblas ln -s liblapack.so.%{version} liblapack.so rm -rf tmp -make cleanlib %{?_smp_mflags} +make -C SRC clean make %{?_smp_mflags} lapacklib \ OPTS="%{optflags}" \ NOOPT="%{optflags} -O0" -ln -s libblas.a librefblas.a -cd lapacke +## LAPACKE +cd LAPACKE make %{?_smp_mflags} lapacke \ CFLAGS="%{optflags} -fPIC -DADD_ -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE" \ LINKER=gfortran -mv ../liblapacke.a liblapacke_pic.a +mkdir pic +mv ../liblapacke.a pic/liblapacke_pic.a mkdir tmp -( cd tmp; ar x ../liblapacke_pic.a ) +( cd tmp; ar x ../pic/liblapacke_pic.a ) gfortran -shared -Wl,-soname=liblapacke.so.3 -o liblapacke.so.%{version} tmp/*.o ln -s liblapacke.so.%{version} liblapacke.so rm -rf tmp -make cleanlib %{?_smp_mflags} +make clean make %{?_smp_mflags} lapacke \ CFLAGS="%{optflags} -DADD_ -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE" -mv ../liblapacke.a liblapacke.a # fix wrong end of line sed -i 's/\r//' LICENSE +mv ../liblapacke.a liblapacke.a cd .. +sed -i -e "1s|#!.*|#!/usr/bin/python3|" lapack_testing.py make lapack_testing \ OPTS="%{optflags} $PRECFLAGS" \ NOOPT="%{optflags} $PRECFLAGS -O0" @@ -252,21 +308,29 @@ fi %install install -d %{buildroot}/%{_libdir} +install -d %{buildroot}/%{_includedir} install -d %{buildroot}/%{_sysconfdir}/alternatives ## BLAS install -d %{buildroot}/%{_libdir}/blas install -m 644 libblas.a %{buildroot}/%{_libdir} -install -m 644 libblas_pic.a %{buildroot}/%{_libdir} +install -m 644 pic/libblas_pic.a %{buildroot}/%{_libdir} install -m 755 libblas.so.%{version} %{buildroot}/%{_libdir}/blas ln -s libblas.so.%{version} %{buildroot}/%{_libdir}/blas/libblas.so.3 ln -s blas/libblas.so.%{version} %{buildroot}/%{_libdir}/libblas.so # dummy target for update-alternatives ln -s blas/libblas.so.%{version} %{buildroot}/%{_libdir}/libblas.so.3 ln -s libblas.so.%{version} %{buildroot}/%{_sysconfdir}/alternatives/libblas.so.3 +## CBLAS +install -m 644 CBLAS/include/*.h %{buildroot}/%{_includedir} +install -m 644 libcblas.a %{buildroot}/%{_libdir} +install -m 644 pic/libcblas_pic.a %{buildroot}/%{_libdir} +install -m 755 libcblas.so.%{version} %{buildroot}/%{_libdir} +ln -s libcblas.so.%{version} %{buildroot}/%{_libdir}/libcblas.so.3 +ln -s libcblas.so.%{version} %{buildroot}/%{_libdir}/libcblas.so ## LAPACK install -d %{buildroot}/%{_libdir}/lapack install -m 644 liblapack.a %{buildroot}/%{_libdir} -install -m 644 liblapack_pic.a %{buildroot}/%{_libdir} +install -m 644 pic/liblapack_pic.a %{buildroot}/%{_libdir} install -m 755 liblapack.so.%{version} %{buildroot}/%{_libdir}/lapack ln -s liblapack.so.%{version} %{buildroot}/%{_libdir}/lapack/liblapack.so.3 ln -s lapack/liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so @@ -274,11 +338,10 @@ ln -s lapack/liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so ln -s lapack/liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so.3 ln -s liblapack.so.%{version} %{buildroot}/%{_sysconfdir}/alternatives/liblapack.so.3 ## LAPACKE -install -d %{buildroot}/%{_includedir} -cd lapacke +cd LAPACKE install -m 644 include/*.h %{buildroot}/%{_includedir} install -m 644 liblapacke.a %{buildroot}/%{_libdir} -install -m 644 liblapacke_pic.a %{buildroot}/%{_libdir} +install -m 644 pic/liblapacke_pic.a %{buildroot}/%{_libdir} install -m 755 liblapacke.so.%{version} %{buildroot}/%{_libdir} ln -s liblapacke.so.%{version} %{buildroot}/%{_libdir}/liblapacke.so.3 ln -s liblapacke.so.%{version} %{buildroot}/%{_libdir}/liblapacke.so @@ -326,9 +389,13 @@ fi %postun -n liblapacke3 -p /sbin/ldconfig +%post -n libcblas3 -p /sbin/ldconfig + +%postun -n libcblas3 -p /sbin/ldconfig + %files -n liblapack3 %defattr(-,root,root) -%doc LICENSE README +%doc LICENSE README.md %dir %{_libdir}/lapack %{_libdir}/lapack/liblapack.so.%{version} %{_libdir}/lapack/liblapack.so.3 @@ -342,7 +409,7 @@ fi %files -n libblas3 %defattr(-,root,root) -%doc LICENSE README +%doc LICENSE README.md %dir %{_libdir}/blas %{_libdir}/blas/libblas.so.%{version} %{_libdir}/blas/libblas.so.3 @@ -379,13 +446,35 @@ fi %files -n lapacke-devel %defattr(-,root,root,-) -%doc lapacke/LICENSE lapacke/README +%doc LAPACKE/LICENSE LAPACKE/README DOCS/lapacke.pdf %{_libdir}/liblapacke.so -%{_includedir}/*.h +%{_includedir}/lapacke.h +%{_includedir}/lapacke_config.h +%{_includedir}/lapacke_mangling.h +%{_includedir}/lapacke_utils.h %files -n lapacke-devel-static %defattr(-,root,root,-) %{_libdir}/liblapacke.a %{_libdir}/liblapacke_pic.a +%files -n libcblas3 +%defattr(-,root,root,-) +%{_libdir}/libcblas.so.%{version} +%{_libdir}/libcblas.so.3 + +%files -n cblas-devel +%defattr(-,root,root,-) +%doc LICENSE CBLAS/README +%{_libdir}/libcblas.so +%{_includedir}/cblas.h +%{_includedir}/cblas_f77.h +%{_includedir}/cblas_mangling.h +%{_includedir}/cblas_test.h + +%files -n cblas-devel-static +%defattr(-,root,root,-) +%{_libdir}/libcblas.a +%{_libdir}/libcblas_pic.a + %changelog