Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
lapack
lapack.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File lapack.spec of Package lapack
# # spec file for package lapack # # Copyright (c) 2022 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/ # Name: lapack Version: 3.5.0 Release: 0 Summary: Linear Algebra Package License: BSD-3-Clause Group: Development/Libraries/Parallel URL: http://www.netlib.org/lapack/ Source0: http://www.netlib.org/lapack/%{name}-%{version}.tgz Patch1: lapack-3.2.2.patch # PATCH-FIX-UPSTREAM -- https://github.com/Reference-LAPACK/lapack/commit/38f3eeee3108b18158409ca2a100e6fe03754781 Patch2: Fix-out-of-bounds-read.patch BuildRequires: doxygen >= 1.7 BuildRequires: gcc-fortran BuildRequires: python BuildRequires: update-alternatives PreReq: update-alternatives BuildRoot: %{_tmppath}/%{name}-%{version}-build %description LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. %package -n liblapack3 Summary: LAPACK Shared Library Group: Development/Libraries/Parallel %description -n liblapack3 LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. %package -n libblas3 Summary: BLAS Shared Library Group: Development/Libraries/Parallel %description -n libblas3 BLAS (Basic Linear Algebra Subprograms) is a standard library for numerical algebra. BLAS provides a number of basic algorithms for linear algebra. %package devel Summary: Linear Algebra Package Group: Development/Libraries/Parallel Requires: blas-devel = %{version} Requires: liblapack3 = %{version} Provides: lapack = %{version} Provides: lapack-devel-static = %{version} Obsoletes: lapack < %{version} %description devel LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. %package devel-static Summary: Linear Algebra Package - static libraries Group: Development/Libraries/Parallel Requires: lapack-devel = %{version} %description devel-static LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. %package -n blas-devel Summary: Basic Linear Algebra Subprograms Group: Development/Libraries/Parallel Requires: libblas3 = %{version} Provides: blas = %{version} Provides: blas-devel-static = %{version} Obsoletes: blas < %{version} %description -n blas-devel BLAS (Basic Linear Algebra Subprograms) is a standard library for numerical algebra. BLAS provides a number of basic algorithms for linear algebra. BLAS is fast and well-tested, was written in FORTRAN 77 and built with gfortran. BLAS manual pages are available in the blas-man package. %package -n blas-devel-static Summary: Basic Linear Algebra Subprograms Group: Development/Libraries/Parallel Requires: blas-devel = %{version} %description -n blas-devel-static BLAS (Basic Linear Algebra Subprograms) is a standard library for numerical algebra. BLAS provides a number of basic algorithms for linear algebra. BLAS is fast and well-tested, was written in FORTRAN 77 and built with gfortran. BLAS manual pages are available in the blas-man package. %package man Summary: Manpages for LAPACK Group: Development/Libraries/Parallel Provides: lapack-manpages = %{version} Obsoletes: lapack-manpages < %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description man Manpages for LAPACK %package -n blas-man Summary: Documentation for BLAS (Basic Linear Algebra Subprograms) Group: Development/Libraries/Parallel Provides: blasman = %{version} Obsoletes: blasman < %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description -n blas-man The blas-man package contains documentation for BLAS (Basic Linear Algebra subprograms) routines, in the form of man pages. %package -n liblapacke3 Summary: LAPACKE development files Group: Development/Libraries/C and C++ %description -n liblapacke3 This library provides a native C interface to LAPACK routines available at www.netlib.org/lapack to facilitate usage of LAPACK functionality for C programmers. This implementation introduces: - row-major and column-major matrix layout controlled by the first function parameter; - an implementation with working arrays (middle-level interface) as well as without working arrays (high-level interface); - input scalars passed by value; - error code as a return value instead of the INFO parameter. %package -n lapacke-devel Requires: liblapacke3 = %{version} Provides: lapacke = %{version} Provides: lapacke-devel-static = %{version} Summary: LAPACKE development files Group: Development/Libraries/C and C++ %description -n lapacke-devel LAPACKE headers and development files. %package -n lapacke-devel-static Requires: lapacke-devel = %{version} Summary: LAPACKE development files - static libraries Group: Development/Libraries/C and C++ %description -n lapacke-devel-static LAPACKE development files - static libraries. %prep %setup -q %patch1 %patch2 -p1 %build case "$RPM_ARCH" in i[0-9]86) PRECFLAGS="-ffloat-store" ;; *) PRECFLAGS="" ;; esac export PRECFLAGS cp make.inc.example make.inc make cleanlib make %{?_smp_mflags} blaslib \ OPTS="%{optflags} -fPIC" \ NOOPT="%{optflags} -O0 -fPIC" mv librefblas.a libblas_pic.a mkdir tmp ( cd tmp; ar x ../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 make %{?_smp_mflags} blaslib \ OPTS="%{optflags}" \ NOOPT="%{optflags} -O0" make blas_testing \ OPTS="%{optflags} $PRECFLAGS" \ NOOPT="%{optflags} $PRECFLAGS -O0" if grep -B15 -A15 FAIL BLAS/*.out; then echo echo "blas_testing FAILED" echo false else true # No failures fi mv librefblas.a libblas.a make cleanlib make %{?_smp_mflags} lapacklib tmglib \ OPTS="%{optflags} -fPIC" \ NOOPT="%{optflags} -O0 -fPIC" mv liblapack.a liblapack_pic.a mv libtmglib.a libtmglib_pic.a mkdir tmp ( cd tmp; ar x ../liblapack_pic.a; ar x ../libtmglib_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 make %{?_smp_mflags} lapacklib tmglib \ OPTS="%{optflags}" \ NOOPT="%{optflags} -O0" mkdir tmp ( cd tmp; ar x ../libtmglib.a ) ar qs liblapack.a tmp/*.o rm -rf tmp ln -s libblas.a librefblas.a 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 tmp ( cd tmp; ar x ../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 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 cd .. make lapack_testing \ OPTS="%{optflags} $PRECFLAGS" \ NOOPT="%{optflags} $PRECFLAGS -O0" if grep -B15 -A15 FAIL TESTING/*.out; then echo echo "lapack_testing FAILED" echo false else true # No failures fi # Create man pages - and do some cleanup make man rm -f DOCS/man/man3/*tst* rm -f DOCS/man/man3/TST* rm -f DOCS/man/man3/MYSUB.3 rm -f DOCS/man/man3/INSTALL_lsame.f.3 rm -f DOCS/man/man3/xerbla.f.3 rm -f DOCS/man/man3/xerbla_array.f.3 rm -f DOCS/man/man3/*_.3 rm -f DOCS/man/man3/dsecnd_*.3 rm -f DOCS/man/man3/DSECND.3 rm -f DOCS/man/man3/second_*3 rm -f DOCS/man/man3/SECOND.3 rm -f DOCS/man/man3/LAPACK_version.f.3 rm -f DOCS/man/man3/SRC_ilaver.f.3 rm -f DOCS/man/man3/SRC_xerbla.f.3 rm -f DOCS/man/man3/SRC_xerbla_array.f.3 rm -f DOCS/man/man3/SLAMC2.3.gz rm -f DOCS/man/man3/SLAMC3.3.gz rm -f DOCS/man/man3/SLAMC4.3.gz rm -f DOCS/man/man3/SLAMC5.3.gz rm -f DOCS/man/man3/DLAMC2.3.gz rm -f DOCS/man/man3/DLAMC3.3.gz rm -f DOCS/man/man3/DLAMC4.3.gz rm -f DOCS/man/man3/DLAMC5.3.gz rm -f DOCS/man/man3/SLADIV1.3.gz rm -f DOCS/man/man3/SLADIV2.3.gz rm -f DOCS/man/man3/DLADIV1.3.gz rm -f DOCS/man/man3/DLADIV2.3.gz mv DOCS/man/man3/BLAS_SRC_lsame.f.3 DOCS/man/man3/lsame.f.3 mv DOCS/man/man3/BLAS_SRC_xerbla.f.3 DOCS/man/man3/xerbla.f.3 mv DOCS/man/man3/BLAS_SRC_xerbla_array.f.3 DOCS/man/man3/xerbla_array.f.3 mv DOCS/man/man3/INSTALL_ilaver.f.3 DOCS/man/man3/ilaver.f.3 rm -f DOCS/psfig.tex # see bnc#757332 %install install -d %{buildroot}/%{_libdir} install -d %{buildroot}/%{_includedir} install -d %{buildroot}/%{_sysconfdir}/alternatives install -m 644 libblas.a %{buildroot}/%{_libdir} install -m 644 libblas_pic.a %{buildroot}/%{_libdir} install -m 644 liblapack.a %{buildroot}/%{_libdir} install -m 644 liblapack_pic.a %{buildroot}/%{_libdir} install -m 755 libblas.so.%{version} %{buildroot}/%{_libdir} ln -s libblas.so.%{version} %{buildroot}/%{_sysconfdir}/alternatives/libblas.so.3 ln -s libblas.so.%{version} %{buildroot}/%{_libdir}/libblas.so.3 ln -s libblas.so.%{version} %{buildroot}/%{_libdir}/libblas.so install -m 755 liblapack.so.%{version} %{buildroot}/%{_libdir} ln -s liblapack.so.%{version} %{buildroot}/%{_sysconfdir}/alternatives/liblapack.so.3 ln -s liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so.3 ln -s liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so 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 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 cd .. install -d %{buildroot}%{_mandir}/man3 install -m 0644 DOCS/man/man3/*.3 %{buildroot}%{_mandir}/man3/ find BLAS/SRC/ -name \*.f -type f -printf "%{_mandir}/man3/%f.3.gz\n" \ > blasmans find BLAS/SRC/ -name \*.f -type f -printf "%f\n" \ | tr 'a-z' 'A-Z' |sed -e 's#\(.*\).F#'%{_mandir}/man3/'\1.3.gz#' \ >> blasmans find SRC/ -name \*.f -type f -printf "%{_mandir}/man3/%f.3.gz\n" \ | grep -v -E 'lsame.f|sceil.f|xerbla.f|xerbla_array.f' \ | sort -u > lapackmans find SRC/ -name \*.f -type f -printf "%f\n" \ | grep -v -E 'sceil.f|xerbla.f|xerbla_array.f' \ | tr 'a-z' 'A-Z' |sed -e 's#\(.*\).F#'%{_mandir}/man3/'\1.3.gz#' \ | sort -u >> lapackmans echo %{_mandir}/man3/SLAMC1.3.gz >> lapackmans echo %{_mandir}/man3/SLAMC2.3.gz >> lapackmans echo %{_mandir}/man3/SLAMC3.3.gz >> lapackmans echo %{_mandir}/man3/SLAMC4.3.gz >> lapackmans echo %{_mandir}/man3/SLAMC5.3.gz >> lapackmans echo %{_mandir}/man3/SLAMCH.3.gz >> lapackmans echo %{_mandir}/man3/DLAMC1.3.gz >> lapackmans echo %{_mandir}/man3/DLAMC2.3.gz >> lapackmans echo %{_mandir}/man3/DLAMC3.3.gz >> lapackmans echo %{_mandir}/man3/DLAMC4.3.gz >> lapackmans echo %{_mandir}/man3/DLAMC5.3.gz >> lapackmans echo %{_mandir}/man3/DLAMCH.3.gz >> lapackmans echo %{_mandir}/man3/SLADIV1.3.gz >> lapackmans echo %{_mandir}/man3/SLADIV2.3.gz >> lapackmans echo %{_mandir}/man3/DLADIV1.3.gz >> lapackmans echo %{_mandir}/man3/DLADIV2.3.gz >> lapackmans echo %{_mandir}/man3/slamch.f.3.gz >> lapackmans echo %{_mandir}/man3/slamchf77.f.3.gz >> lapackmans echo %{_mandir}/man3/dlamch.f.3.gz >> lapackmans echo %{_mandir}/man3/dlamchf77.f.3.gz >> lapackmans ln -s SLAMC1.3.gz %{buildroot}/%{_mandir}/man3/SLAMC2.3.gz ln -s SLAMC1.3.gz %{buildroot}/%{_mandir}/man3/SLAMC4.3.gz ln -s SLAMC1.3.gz %{buildroot}/%{_mandir}/man3/SLAMC5.3.gz ln -s SLAMCH.3.gz %{buildroot}/%{_mandir}/man3/SLAMC3.3.gz ln -s DLAMC1.3.gz %{buildroot}/%{_mandir}/man3/DLAMC2.3.gz ln -s DLAMC1.3.gz %{buildroot}/%{_mandir}/man3/DLAMC4.3.gz ln -s DLAMC1.3.gz %{buildroot}/%{_mandir}/man3/DLAMC5.3.gz ln -s DLAMCH.3.gz %{buildroot}/%{_mandir}/man3/DLAMC3.3.gz ln -s SLADIV.3.gz %{buildroot}/%{_mandir}/man3/SLADIV1.3.gz ln -s SLADIV.3.gz %{buildroot}/%{_mandir}/man3/SLADIV2.3.gz ln -s DLADIV.3.gz %{buildroot}/%{_mandir}/man3/DLADIV1.3.gz ln -s DLADIV.3.gz %{buildroot}/%{_mandir}/man3/DLADIV2.3.gz %post -n libblas3 %_sbindir/update-alternatives --install \ %{_libdir}/libblas.so.3 libblas.so.3 %{_libdir}/libblas.so.%{version} 50 /sbin/ldconfig %preun -n libblas3 if [ "$1" = 0 ] ; then %_sbindir/update-alternatives --remove libblas.so.3 %{_libdir}/libblas.so.%{version} fi %postun -n libblas3 -p /sbin/ldconfig %post -n liblapack3 %_sbindir/update-alternatives --install \ %{_libdir}/liblapack.so.3 liblapack.so.3 %{_libdir}/liblapack.so.%{version} 50 /sbin/ldconfig %preun -n liblapack3 if [ "$1" = 0 ] ; then %_sbindir/update-alternatives --remove liblapack.so.3 %{_libdir}/liblapack.so.%{version} fi %postun -n liblapack3 -p /sbin/ldconfig %post -n liblapacke3 -p /sbin/ldconfig %postun -n liblapacke3 -p /sbin/ldconfig %files -n liblapack3 %defattr(-,root,root) %doc LICENSE README %{_libdir}/liblapack.so.%{version} %if 0%{?suse_version} >= 1120 %ghost %{_libdir}/liblapack.so.3 %ghost %{_sysconfdir}/alternatives/liblapack.so.3 %else %{_libdir}/liblapack.so.3 %{_sysconfdir}/alternatives/liblapack.so.3 %endif %files -n libblas3 %defattr(-,root,root) %doc LICENSE README %{_libdir}/libblas.so.%{version} %if 0%{?suse_version} >= 1120 %ghost %{_libdir}/libblas.so.3 %ghost %{_sysconfdir}/alternatives/libblas.so.3 %else %{_libdir}/libblas.so.3 %{_sysconfdir}/alternatives/libblas.so.3 %endif %files devel %defattr(-,root,root) %{_libdir}/liblapack.so %files devel-static %defattr(-,root,root) %{_libdir}/liblapack.a %{_libdir}/liblapack_pic.a %files -n blas-devel %defattr(-,root,root) %{_libdir}/libblas.so %files -n blas-devel-static %defattr(-,root,root) %{_libdir}/libblas.a %{_libdir}/libblas_pic.a %files man -f lapackmans %defattr(-,root,root) %files -n blas-man -f blasmans %defattr(-,root,root) %files -n liblapacke3 %defattr(-,root,root,-) %{_libdir}/liblapacke.so.%{version} %{_libdir}/liblapacke.so.3 %files -n lapacke-devel %defattr(-,root,root,-) %doc lapacke/LICENSE lapacke/README %{_libdir}/liblapacke.so %{_includedir}/*.h %files -n lapacke-devel-static %defattr(-,root,root,-) %{_libdir}/liblapacke.a %{_libdir}/liblapacke_pic.a %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor