From 681412c77f8c1d58962f8159eb0cd0f648888d70 Mon Sep 17 00:00:00 2001 From: efferre79 Date: Mon, 18 Jan 2021 11:48:46 +0100 Subject: sci-libs/lapack: add deprecated functions also to 3.9.0 Closes: https://bugs.gentoo.org/702254 Signed-off-by: efferre79 Signed-off-by: Sam James --- .../files/lapack-3.9.0-deprecated-headers.patch | 138 +++++++++++++++++++++ sci-libs/lapack/lapack-3.8.0-r1.ebuild | 4 +- sci-libs/lapack/lapack-3.8.0.ebuild | 4 +- sci-libs/lapack/lapack-3.9.0-r1.ebuild | 103 +++++++++++++++ sci-libs/lapack/lapack-3.9.0.ebuild | 2 +- 5 files changed, 246 insertions(+), 5 deletions(-) create mode 100644 sci-libs/lapack/files/lapack-3.9.0-deprecated-headers.patch create mode 100644 sci-libs/lapack/lapack-3.9.0-r1.ebuild diff --git a/sci-libs/lapack/files/lapack-3.9.0-deprecated-headers.patch b/sci-libs/lapack/files/lapack-3.9.0-deprecated-headers.patch new file mode 100644 index 000000000000..9c0fb4e56e55 --- /dev/null +++ b/sci-libs/lapack/files/lapack-3.9.0-deprecated-headers.patch @@ -0,0 +1,138 @@ +From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= +Date: Sat, 23 Nov 2019 12:22:20 +0100 +Subject: [PATCH] Restore missing prototypes for deprecated LAPACK functions + +Some LAPACK functions prototypes were inadvertedly dropped in 3.9.0. As a +consequence, LAPACKE has several unresolved symbols. + +Closes #365 +--- + LAPACKE/include/lapack.h | 100 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 100 insertions(+) + +diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h +index 3f425325f..5c131d844 100644 +--- a/LAPACKE/include/lapack.h ++++ b/LAPACKE/include/lapack.h +@@ -1842,6 +1842,28 @@ void LAPACK_zgeqlf( + lapack_complex_double* work, lapack_int const* lwork, + lapack_int* info ); + ++#define LAPACK_sgeqpf LAPACK_GLOBAL(sgeqpf,SGEQPF) ++void LAPACK_sgeqpf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda, ++ lapack_int* jpvt, float* tau, float* work, ++ lapack_int *info ); ++ ++#define LAPACK_dgeqpf LAPACK_GLOBAL(dgeqpf,DGEQPF) ++void LAPACK_dgeqpf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda, ++ lapack_int* jpvt, double* tau, double* work, ++ lapack_int *info ); ++ ++#define LAPACK_cgeqpf LAPACK_GLOBAL(cgeqpf,CGEQPF) ++void LAPACK_cgeqpf( lapack_int* m, lapack_int* n, lapack_complex_float* a, ++ lapack_int* lda, lapack_int* jpvt, ++ lapack_complex_float* tau, lapack_complex_float* work, ++ float* rwork, lapack_int *info ); ++ ++#define LAPACK_zgeqpf LAPACK_GLOBAL(zgeqpf,ZGEQPF) ++void LAPACK_zgeqpf( lapack_int* m, lapack_int* n, lapack_complex_double* a, ++ lapack_int* lda, lapack_int* jpvt, ++ lapack_complex_double* tau, lapack_complex_double* work, ++ double* rwork, lapack_int *info ); ++ + #define LAPACK_cgeqp3 LAPACK_GLOBAL(cgeqp3,CGEQP3) + void LAPACK_cgeqp3( + lapack_int const* m, lapack_int const* n, +@@ -3617,6 +3639,47 @@ void LAPACK_zggrqf( + lapack_complex_double* work, lapack_int const* lwork, + lapack_int* info ); + ++#define LAPACK_sggsvd LAPACK_GLOBAL(sggsvd,SGGSVD) ++lapack_int LAPACKE_sggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, float* a, ++ lapack_int lda, float* b, lapack_int ldb, ++ float* alpha, float* beta, float* u, lapack_int ldu, ++ float* v, lapack_int ldv, float* q, lapack_int ldq, ++ lapack_int* iwork ); ++ ++#define LAPACK_dggsvd LAPACK_GLOBAL(dggsvd,DGGSVD) ++lapack_int LAPACKE_dggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, double* a, ++ lapack_int lda, double* b, lapack_int ldb, ++ double* alpha, double* beta, double* u, ++ lapack_int ldu, double* v, lapack_int ldv, double* q, ++ lapack_int ldq, lapack_int* iwork ); ++ ++#define LAPACK_cggsvd LAPACK_GLOBAL(cggsvd,CGGSVD) ++lapack_int LAPACKE_cggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, ++ lapack_complex_float* a, lapack_int lda, ++ lapack_complex_float* b, lapack_int ldb, ++ float* alpha, float* beta, lapack_complex_float* u, ++ lapack_int ldu, lapack_complex_float* v, ++ lapack_int ldv, lapack_complex_float* q, ++ lapack_int ldq, lapack_int* iwork ); ++ ++#define LAPACK_zggsvd LAPACK_GLOBAL(zggsvd,ZGGSVD) ++lapack_int LAPACKE_zggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, ++ lapack_complex_double* a, lapack_int lda, ++ lapack_complex_double* b, lapack_int ldb, ++ double* alpha, double* beta, ++ lapack_complex_double* u, lapack_int ldu, ++ lapack_complex_double* v, lapack_int ldv, ++ lapack_complex_double* q, lapack_int ldq, ++ lapack_int* iwork ); ++ + #define LAPACK_cggsvd3 LAPACK_GLOBAL(cggsvd3,CGGSVD3) + void LAPACK_cggsvd3( + char const* jobu, char const* jobv, char const* jobq, +@@ -3679,6 +3742,43 @@ void LAPACK_zggsvd3( + lapack_int* iwork, + lapack_int* info ); + ++#define LAPACK_sggsvp LAPACK_GLOBAL(sggsvp,SGGSVP) ++lapack_int LAPACKE_sggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, float* a, ++ lapack_int lda, float* b, lapack_int ldb, float tola, ++ float tolb, lapack_int* k, lapack_int* l, float* u, ++ lapack_int ldu, float* v, lapack_int ldv, float* q, ++ lapack_int ldq ); ++ ++#define LAPACK_dggsvp LAPACK_GLOBAL(dggsvp,DGGSVP) ++lapack_int LAPACKE_dggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, double* a, ++ lapack_int lda, double* b, lapack_int ldb, ++ double tola, double tolb, lapack_int* k, ++ lapack_int* l, double* u, lapack_int ldu, double* v, ++ lapack_int ldv, double* q, lapack_int ldq ); ++ ++#define LAPACK_cggsvp LAPACK_GLOBAL(cggsvp,CGGSVP) ++lapack_int LAPACKE_cggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, ++ lapack_complex_float* a, lapack_int lda, ++ lapack_complex_float* b, lapack_int ldb, float tola, ++ float tolb, lapack_int* k, lapack_int* l, ++ lapack_complex_float* u, lapack_int ldu, ++ lapack_complex_float* v, lapack_int ldv, ++ lapack_complex_float* q, lapack_int ldq ); ++ ++#define LAPACK_zggsvp LAPACK_GLOBAL(zggsvp,ZGGSVP) ++lapack_int LAPACKE_zggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, ++ lapack_complex_double* a, lapack_int lda, ++ lapack_complex_double* b, lapack_int ldb, ++ double tola, double tolb, lapack_int* k, ++ lapack_int* l, lapack_complex_double* u, ++ lapack_int ldu, lapack_complex_double* v, ++ lapack_int ldv, lapack_complex_double* q, ++ lapack_int ldq ); ++ + #define LAPACK_cggsvp3 LAPACK_GLOBAL(cggsvp3,CGGSVP3) + void LAPACK_cggsvp3( + char const* jobu, char const* jobv, char const* jobq, diff --git a/sci-libs/lapack/lapack-3.8.0-r1.ebuild b/sci-libs/lapack/lapack-3.8.0-r1.ebuild index a64e00ff8933..d97667a141d8 100644 --- a/sci-libs/lapack/lapack-3.8.0-r1.ebuild +++ b/sci-libs/lapack/lapack-3.8.0-r1.ebuild @@ -6,8 +6,8 @@ CMAKE_MAKEFILE_GENERATOR=emake inherit cmake-utils DESCRIPTION="BLAS,CBLAS,LAPACK,LAPACKE reference implementations" -HOMEPAGE="http://www.netlib.org/lapack/" -SRC_URI="http://www.netlib.org/${PN}/${P}.tar.gz" +HOMEPAGE="https://www.netlib.org/lapack/" +SRC_URI="https://www.netlib.org/${PN}/${P}.tar.gz" LICENSE="BSD" SLOT="0" diff --git a/sci-libs/lapack/lapack-3.8.0.ebuild b/sci-libs/lapack/lapack-3.8.0.ebuild index 1abb3b17f3e5..72b89dba3ea2 100644 --- a/sci-libs/lapack/lapack-3.8.0.ebuild +++ b/sci-libs/lapack/lapack-3.8.0.ebuild @@ -6,8 +6,8 @@ CMAKE_MAKEFILE_GENERATOR=emake inherit cmake-utils DESCRIPTION="BLAS,CBLAS,LAPACK,LAPACKE reference implementations" -HOMEPAGE="http://www.netlib.org/lapack/" -SRC_URI="http://www.netlib.org/${PN}/${P}.tar.gz" +HOMEPAGE="https://www.netlib.org/lapack/" +SRC_URI="https://www.netlib.org/${PN}/${P}.tar.gz" LICENSE="BSD" SLOT="0" diff --git a/sci-libs/lapack/lapack-3.9.0-r1.ebuild b/sci-libs/lapack/lapack-3.9.0-r1.ebuild new file mode 100644 index 000000000000..01d9add8fb4b --- /dev/null +++ b/sci-libs/lapack/lapack-3.9.0-r1.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake + +DESCRIPTION="BLAS,CBLAS,LAPACK,LAPACKE reference implementations" +HOMEPAGE="https://www.netlib.org/lapack/" +SRC_URI="https://github.com/Reference-LAPACK/lapack/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +# TODO: static-libs 64bit-index +IUSE="lapacke deprecated doc eselect-ldso test" +RESTRICT="!test? ( test )" + +BDEPEND="virtual/pkgconfig" +RDEPEND=" + !app-eselect/eselect-cblas + virtual/fortran + eselect-ldso? ( + >=app-eselect/eselect-blas-0.2 + >=app-eselect/eselect-lapack-0.2 + ) + doc? ( app-doc/blas-docs )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${PN}-3.9.0-build-tests.patch" +) + +src_prepare() { + use deprecated && eapply "${FILESDIR}/${P}-deprecated-headers.patch" + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCBLAS=ON + -DLAPACKE=$(usex lapacke) + -DBUILD_DEPRECATED=$(usex deprecated) + -DBUILD_SHARED_LIBS=ON + -DBUILD_TESTING=$(usex test) + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + use eselect-ldso || return + # Create private lib directory for eselect::blas (ld.so.conf) + dodir /usr/$(get_libdir)/blas/reference + dosym ../../libblas.so usr/$(get_libdir)/blas/reference/libblas.so + dosym ../../libblas.so.3 usr/$(get_libdir)/blas/reference/libblas.so.3 + dosym ../../libcblas.so usr/$(get_libdir)/blas/reference/libcblas.so + dosym ../../libcblas.so.3 usr/$(get_libdir)/blas/reference/libcblas.so.3 + + # Create private lib directory for eselect::lapack (ld.so.conf) + dodir /usr/$(get_libdir)/lapack/reference + dosym ../../liblapack.so usr/$(get_libdir)/lapack/reference/liblapack.so + dosym ../../liblapack.so.3 usr/$(get_libdir)/lapack/reference/liblapack.so.3 +} + +pkg_postinst() { + use eselect-ldso || return + + local me=reference libdir=$(get_libdir) + # check eselect-blas + eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me} + local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2) + if [[ ${current_blas} == ${me} || -z ${current_blas} ]]; then + eselect blas set ${libdir} ${me} + elog "Current eselect: BLAS ($libdir) -> [${current_blas}]." + else + elog "Current eselect: BLAS ($libdir) -> [${current_blas}]." + elog "To use blas [${me}] implementation, you have to issue (as root):" + elog "\t eselect blas set ${libdir} ${me}" + fi + + # check eselect-lapack + eselect lapack add ${libdir} "${EROOT}"/usr/${libdir}/lapack/${me} ${me} + local current_lapack=$(eselect lapack show ${libdir} | cut -d' ' -f2) + if [[ ${current_lapack} == ${me} || -z ${current_lapack} ]]; then + eselect lapack set ${libdir} ${me} + elog "Current eselect: LAPACK ($libdir) -> [${current_lapack}]." + else + elog "Current eselect: LAPACK ($libdir) -> [${current_lapack}]." + elog "To use lapack [${me}] implementation, you have to issue (as root):" + elog "\t eselect lapack set ${libdir} ${me}" + fi +} + +pkg_postrm() { + use eselect-ldso || return + + eselect blas validate + eselect lapack validate +} diff --git a/sci-libs/lapack/lapack-3.9.0.ebuild b/sci-libs/lapack/lapack-3.9.0.ebuild index 2d1c181e05db..bf8674a2fab8 100644 --- a/sci-libs/lapack/lapack-3.9.0.ebuild +++ b/sci-libs/lapack/lapack-3.9.0.ebuild @@ -6,7 +6,7 @@ EAPI=7 inherit cmake DESCRIPTION="BLAS,CBLAS,LAPACK,LAPACKE reference implementations" -HOMEPAGE="http://www.netlib.org/lapack/" +HOMEPAGE="https://www.netlib.org/lapack/" SRC_URI="https://github.com/Reference-LAPACK/lapack/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="BSD" -- cgit v1.2.3-65-gdbad