From e748ba9741f6540f4675c23e3e37b73e822c13a4 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 31 May 2021 20:59:14 +0100 Subject: gentoo resync : 31.05.2021 --- dev-python/numpy/Manifest | 5 +- .../files/numpy-1.20.2-fix-popcnt-detection.patch | 103 +++++++++++++++ dev-python/numpy/numpy-1.20.2-r1.ebuild | 144 +++++++++++++++++++++ dev-python/numpy/numpy-1.20.2.ebuild | 143 -------------------- dev-python/numpy/numpy-1.20.3-r1.ebuild | 142 ++++++++++++++++++++ dev-python/numpy/numpy-1.20.3.ebuild | 141 -------------------- 6 files changed, 392 insertions(+), 286 deletions(-) create mode 100644 dev-python/numpy/files/numpy-1.20.2-fix-popcnt-detection.patch create mode 100644 dev-python/numpy/numpy-1.20.2-r1.ebuild delete mode 100644 dev-python/numpy/numpy-1.20.2.ebuild create mode 100644 dev-python/numpy/numpy-1.20.3-r1.ebuild delete mode 100644 dev-python/numpy/numpy-1.20.3.ebuild (limited to 'dev-python/numpy') diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest index d4c5625d88de..1c8c3c127e4f 100644 --- a/dev-python/numpy/Manifest +++ b/dev-python/numpy/Manifest @@ -1,5 +1,6 @@ AUX numpy-1.20.1-no-hardcode-blasv2.patch 2582 BLAKE2B 5057f925a12e6703ab5d9d4c342db80f7f5a7f02a5b5884bd9fac574dcadb9234901b08b1b2ca5bc5ba0345a58e896a241e3a48b4b050b2f5a1063324359d84c SHA512 4418b9c5ed3842848bc06a56ebbd7cd9261657e407775374f2f060944522128d8a5178888def6e4cf42ff6d81082d9cc1425d9553c5334ad4e728d0df9b86bc8 AUX numpy-1.20.2-fix-ccompiler-tests.patch 1616 BLAKE2B 3e2796029854207187322b1061201e7f014472c64d8c66a2dd3f82ec2eed7311f5cc3351d98aeb4b8b75d95608853066a30394e5316bb91e443744f33d66966b SHA512 5ed01b466a0da96b5d7c56b78e420d6c589c48c20053b9da66344384fa93048f90e281d3ed5caa9325f6afe00ff48841b24abc926c75aacb8a6bd5418ed32117 +AUX numpy-1.20.2-fix-popcnt-detection.patch 2852 BLAKE2B c7b97d54649e33fecfa9cdd7e79fbd6a0f599648edd9a923a4d8ff428f774813d81f045e82905e236828608f4c969e56d681a828ed0190f86f8731a2c22401d8 SHA512 cb0e461b4ec788812fcdb528be18dcc04222c1aedb9ecef96d8f0ccefd407640dfb7d10b2bd392e0e40054b016a0d023f4a397432904496b793c8a2f1fba8f74 AUX numpy-1.20.3-float-hashing-py310.patch 4677 BLAKE2B 410438f8b9ba7bc346cd9fbb4d3087d60af6cc54b7ba4a839a1d9559d5b09db623932089ca8c34a70d30622d6260f3bff13fd2d97c94f6af437502f2e5b3c27d SHA512 a7605bf4db0886f4e7d4edd65c7b46d6b47ccb43140555cc86b35c2f003cdf29e8704593d77f7cc551f3be1550af209e7910a95e1421fe45b5d0ea5716d62588 DIST numpy-1.20.2.zip 7756879 BLAKE2B 8b76942e04701e164029b145fed1747de72142ea4f5a8aa7472a01caeeed5e0b5b6d9e543106f9786e231df5a8afe3b7ad9256e69873e4f8876c659114bc494e SHA512 337a66d68c965da06f757a89b58d30b83ec0b2f3c7a3bb39496e5031e50fee6c4f2ec090202c3da9a20613864ea46d032ae75af1de5c33eebe515133ef37d40c DIST numpy-1.20.3.zip 7761912 BLAKE2B a4da49f7c1aadca299acb1b6d92deb4f50b1881c4b131cd389524a88ffc70179b2acdc88235dccd1ffd09879893db45b16bf2f54ced9b9639b806e85f7346285 SHA512 897be1cd6f3880711149dcedd838357e2d937a3c5f36b2a0db6ceed341654acf96b8b775610e1b43bdb6eacb987bbc51aaa8906244ca02cc8c2eae359ccef405 @@ -9,6 +10,6 @@ DIST numpy-ref-1.16.4.pdf 5176571 BLAKE2B 9a875ebd1473b241d463d810a6d191581aef96 DIST numpy-ref-1.20.3.pdf 7362241 BLAKE2B bf17564d7aea0db25ca9ef6b24dbbd25093c09e2a93bb60b69220d4e666024c50f3373fdb65aac510c06420dc415102d552fb0435e1986330ffdc41e9e356098 SHA512 316e645402125ca41d1e8b4da33374703f4379c31cf572c8ad429e0e89b6968776f480f9159bce53b9fdec918f03b82e5bb6446f127f43f138d6c0990191af5a DIST numpy-user-1.16.4.pdf 596203 BLAKE2B da3ad1f0ec1c965d20656f73a970911cbb58efa73a5df89e2e6485e0dd763f483e35eea1395ac919bf35d496fb216cee954fc5d31edebc1796a24a2a7a2d12b9 SHA512 3083008547213bfa98ffa5cd8e2cea13f6947f42d83aef61502a2a852b0d5f27d727c76b42d281d7a2f4f76c78e88b12ee3d9b164b39fe1f0213ace7097357d6 DIST numpy-user-1.20.3.pdf 4977046 BLAKE2B 3548463cc878645bb169255d3332681685d0f05e02abf4cfcdd03773826d34f5a25c020240652839867a76258b25ca601ed292462f80bdf18b92ecfb46710487 SHA512 f6c37152228eac1fb69ddfc3a37454066ed678d57f12a587e0edcfe0adb390cc0b470384c2751033f7407bac44df9f69b0da4f3da1c300e6fc02231035ff634c -EBUILD numpy-1.20.2.ebuild 3734 BLAKE2B 2a4dd063c94eb074c8ce3f60039710d4426f1f8e0be2be1419af23a791bdee32cb52aaf03084741fdb4d6a849b9e6c4f08aea3d642178361e5d1dd8329ca9f3d SHA512 541e3a324ef2f06236c78b5578a338b0084e1067b2fdd214f95bb579f706e6db91fe00513999deaffd5e7bb4736e49326c8f919e4c1b3b7b8c1dd473364032b9 -EBUILD numpy-1.20.3.ebuild 3675 BLAKE2B ca4e67e97798cd46444cb49587a6e9549fe8bb67e4ff8f8d1da400ad3b8b03823e767cd936b58ae6abc307e1a2c49857c58e2d2d428fe102e0959f72ca37197a SHA512 cb0a52a6c41db0097413117363d1e243e3b56b13f0d731939f556795f9c68ecd2e274b89ec675e0b6f72100c775e4d92137547527b32e27dc6ecaf0b941495fc +EBUILD numpy-1.20.2-r1.ebuild 3789 BLAKE2B 04b13cd33ea2805716faf5c2d286e3f0928eeda592c0c6217501a1adbea30e614d940732041cb4236a89966db1cebae33b437ab55a309ff6be62e81bb6be5010 SHA512 9a2bb8e998e317e540b7a0fa70979a872db8b0a99cc1e6f72d1fa0ab1c11f26551be22eff1a84b2c25e9d39934246b955ea54fc72c25b2d89badc430bf048f38 +EBUILD numpy-1.20.3-r1.ebuild 3730 BLAKE2B 7099a2b62a5d366b9a5b099fe7a8b675d1488659e48810d2e014526338ff67eec04b68577db68ce9f97b301de52dd58bd9a1df903b1b7492c6c157a34f61f274 SHA512 97c9046f0d2548cb7ff6f91c8f0d000f0e90caf9d748e9c723b957f28bdad3faad66d44b5bada93577f40cebd37fa2ad213069bec86eb925ae7c4d0b79e88cbf MISC metadata.xml 934 BLAKE2B 948b9a948cddc46d20d672992bf73ddb1e59ba18f470acf805c78f561249e7bce2cec1cb1affe63aad447f2f0ad627147cf05ca04ac3c321781255357de92d63 SHA512 404bc31423a1093c19dd535aa3cd5a6b925f4ef1699f9991ae19b46495c46ac4ab3b0b1995f62ea8bc5de15889b975dfcdc416360978508b837d4d5d518dfeeb diff --git a/dev-python/numpy/files/numpy-1.20.2-fix-popcnt-detection.patch b/dev-python/numpy/files/numpy-1.20.2-fix-popcnt-detection.patch new file mode 100644 index 000000000000..85f4bb11b768 --- /dev/null +++ b/dev-python/numpy/files/numpy-1.20.2-fix-popcnt-detection.patch @@ -0,0 +1,103 @@ +https://github.com/numpy/numpy/pull/19074 +https://bugs.gentoo.org/788184 + +From 8dc768964b5578a8aa9db1ef2c55134a00731e10 Mon Sep 17 00:00:00 2001 +From: Carl Michal +Date: Sat, 22 May 2021 20:43:10 -0700 +Subject: [PATCH 1/2] Fix compile-time test of POPCNT + +The compile-time test of POPCNT, cpu_popcnt.c produced code that would +execute without error even if the machine didn't support the popcnt +instruction. This patch attempts to use popcnt on random numbers so the +compiler can't substitute the answer at compile time. +--- + numpy/distutils/checks/cpu_popcnt.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/numpy/distutils/checks/cpu_popcnt.c b/numpy/distutils/checks/cpu_popcnt.c +index e6a80fb40be4..f6c785dd2a97 100644 +--- a/numpy/distutils/checks/cpu_popcnt.c ++++ b/numpy/distutils/checks/cpu_popcnt.c +@@ -4,20 +4,26 @@ + #include + #endif + ++#include ++ + int main(void) + { + long long a = 0; + int b; ++ ++ a = random(); ++ b = random(); ++ + #ifdef _MSC_VER + #ifdef _M_X64 +- a = _mm_popcnt_u64(1); ++ a = _mm_popcnt_u64(a); + #endif +- b = _mm_popcnt_u32(1); ++ b = _mm_popcnt_u32(b); + #else + #ifdef __x86_64__ +- a = __builtin_popcountll(1); ++ a = __builtin_popcountll(a); + #endif +- b = __builtin_popcount(1); ++ b = __builtin_popcount(b); + #endif + return (int)a + b; + } + +From 52d5fe1ede45083d0783c3e2bbaee5c44df9d553 Mon Sep 17 00:00:00 2001 +From: Carl Michal +Date: Sun, 23 May 2021 08:24:52 -0700 +Subject: [PATCH 2/2] Change fix of cpu_popcnt.c to use + _mm_popcnt_u64/_mm_popcnt_u32 on GCC + +_builtin_popcount is always available, so the compile-time check always +succeeds. +--- + numpy/distutils/checks/cpu_popcnt.c | 26 ++++++++------------------ + 1 file changed, 8 insertions(+), 18 deletions(-) + +diff --git a/numpy/distutils/checks/cpu_popcnt.c b/numpy/distutils/checks/cpu_popcnt.c +index f6c785dd2a97..540c98dab05d 100644 +--- a/numpy/distutils/checks/cpu_popcnt.c ++++ b/numpy/distutils/checks/cpu_popcnt.c +@@ -4,26 +4,16 @@ + #include + #endif + +-#include +- +-int main(void) ++int main(int argc, char **argv) + { +- long long a = 0; +- int b; +- +- a = random(); +- b = random(); +- +-#ifdef _MSC_VER +- #ifdef _M_X64 ++ // To make sure popcnt instructions are generated ++ // and been tested against the assembler ++ unsigned long long a = *((unsigned long long*)argv[argc-1]); ++ unsigned int b = *((unsigned int*)argv[argc-2]); ++ ++#if defined(_M_X64) || defined(__x86_64__) + a = _mm_popcnt_u64(a); +- #endif +- b = _mm_popcnt_u32(b); +-#else +- #ifdef __x86_64__ +- a = __builtin_popcountll(a); +- #endif +- b = __builtin_popcount(b); + #endif ++ b = _mm_popcnt_u32(b); + return (int)a + b; + } diff --git a/dev-python/numpy/numpy-1.20.2-r1.ebuild b/dev-python/numpy/numpy-1.20.2-r1.ebuild new file mode 100644 index 000000000000..2e16936ea190 --- /dev/null +++ b/dev-python/numpy/numpy-1.20.2-r1.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_REQ_USE="threads(+)" + +FORTRAN_NEEDED=lapack + +DISTUTILS_USE_SETUPTOOLS=rdepend + +inherit distutils-r1 flag-o-matic fortran-2 multiprocessing toolchain-funcs + +DOC_PV="1.16.4" +DESCRIPTION="Fast array and numerical python library" +HOMEPAGE="https://numpy.org/" +SRC_URI=" + mirror://pypi/${PN:0:1}/${PN}/${P}.zip + doc? ( + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf + )" +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="doc lapack" + +RDEPEND=" + lapack? ( + >=virtual/cblas-3.8 + >=virtual/lapack-3.8 + ) +" +BDEPEND=" + ${RDEPEND} + app-arch/unzip + >=dev-python/cython-0.29.21[${PYTHON_USEDEP}] + lapack? ( virtual/pkgconfig ) + test? ( + >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}] + >=dev-python/pytz-2019.3[${PYTHON_USEDEP}] + >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}"/numpy-1.20.1-no-hardcode-blasv2.patch + "${FILESDIR}"/numpy-1.20.2-fix-ccompiler-tests.patch + "${FILESDIR}"/numpy-1.20.2-fix-popcnt-detection.patch +) + +distutils_enable_tests pytest + +src_unpack() { + default + if use doc; then + unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.zip -d html || die + fi +} + +python_prepare_all() { + if use lapack; then + local incdir="${EPREFIX}"/usr/include + local libdir="${EPREFIX}"/usr/$(get_libdir) + cat >> site.cfg <<-EOF || die + [blas] + include_dirs = ${incdir} + library_dirs = ${libdir} + blas_libs = cblas,blas + [lapack] + library_dirs = ${libdir} + lapack_libs = lapack + EOF + else + export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None + fi + + export CC="$(tc-getCC) ${CFLAGS}" + + append-flags -fno-strict-aliasing + + # See progress in http://projects.scipy.org/scipy/numpy/ticket/573 + # with the subtle difference that we don't want to break Darwin where + # -shared is not a valid linker argument + if [[ ${CHOST} != *-darwin* ]]; then + append-ldflags -shared + fi + + # only one fortran to link with: + # linking with cblas and lapack library will force + # autodetecting and linking to all available fortran compilers + append-fflags -fPIC + if use lapack; then + NUMPY_FCONFIG="config_fc --noopt --noarch" + # workaround bug 335908 + [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95" + fi + + # don't version f2py, we will handle it. + sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die + + # disable fuzzed tests + find numpy/*/tests -name '*.py' -exec sed -i \ + -e 's:def \(.*_fuzz\):def _\1:' {} + || die + # very memory- and disk-hungry + sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + export MAKEOPTS=-j1 #660754 + + distutils-r1_python_compile ${NUMPY_FCONFIG} +} + +python_test() { + distutils_install_for_testing --single-version-externally-managed \ + --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG} + + cd "${TEST_DIR}/lib" || die + epytest \ + --deselect 'numpy/typing/tests/test_typing.py::test_fail[array_constructors.py]' +} + +python_install() { + # https://github.com/numpy/numpy/issues/16005 + local mydistutilsargs=( build_src ) + distutils-r1_python_install ${NUMPY_FCONFIG} + python_optimize +} + +python_install_all() { + local DOCS=( LICENSE.txt README.md THANKS.txt ) + + if use doc; then + local HTML_DOCS=( "${WORKDIR}"/html/. ) + DOCS+=( "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf ) + fi + + distutils-r1_python_install_all +} diff --git a/dev-python/numpy/numpy-1.20.2.ebuild b/dev-python/numpy/numpy-1.20.2.ebuild deleted file mode 100644 index 234a0932bb97..000000000000 --- a/dev-python/numpy/numpy-1.20.2.ebuild +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) -PYTHON_REQ_USE="threads(+)" - -FORTRAN_NEEDED=lapack - -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit distutils-r1 flag-o-matic fortran-2 multiprocessing toolchain-funcs - -DOC_PV="1.16.4" -DESCRIPTION="Fast array and numerical python library" -HOMEPAGE="https://numpy.org/" -SRC_URI=" - mirror://pypi/${PN:0:1}/${PN}/${P}.zip - doc? ( - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf - )" -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" -IUSE="doc lapack" - -RDEPEND=" - lapack? ( - >=virtual/cblas-3.8 - >=virtual/lapack-3.8 - ) -" -BDEPEND=" - ${RDEPEND} - app-arch/unzip - >=dev-python/cython-0.29.21[${PYTHON_USEDEP}] - lapack? ( virtual/pkgconfig ) - test? ( - >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}] - >=dev-python/pytz-2019.3[${PYTHON_USEDEP}] - >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}"/numpy-1.20.1-no-hardcode-blasv2.patch - "${FILESDIR}"/numpy-1.20.2-fix-ccompiler-tests.patch -) - -distutils_enable_tests pytest - -src_unpack() { - default - if use doc; then - unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.zip -d html || die - fi -} - -python_prepare_all() { - if use lapack; then - local incdir="${EPREFIX}"/usr/include - local libdir="${EPREFIX}"/usr/$(get_libdir) - cat >> site.cfg <<-EOF || die - [blas] - include_dirs = ${incdir} - library_dirs = ${libdir} - blas_libs = cblas,blas - [lapack] - library_dirs = ${libdir} - lapack_libs = lapack - EOF - else - export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None - fi - - export CC="$(tc-getCC) ${CFLAGS}" - - append-flags -fno-strict-aliasing - - # See progress in http://projects.scipy.org/scipy/numpy/ticket/573 - # with the subtle difference that we don't want to break Darwin where - # -shared is not a valid linker argument - if [[ ${CHOST} != *-darwin* ]]; then - append-ldflags -shared - fi - - # only one fortran to link with: - # linking with cblas and lapack library will force - # autodetecting and linking to all available fortran compilers - append-fflags -fPIC - if use lapack; then - NUMPY_FCONFIG="config_fc --noopt --noarch" - # workaround bug 335908 - [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95" - fi - - # don't version f2py, we will handle it. - sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die - - # disable fuzzed tests - find numpy/*/tests -name '*.py' -exec sed -i \ - -e 's:def \(.*_fuzz\):def _\1:' {} + || die - # very memory- and disk-hungry - sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - export MAKEOPTS=-j1 #660754 - - distutils-r1_python_compile ${NUMPY_FCONFIG} -} - -python_test() { - distutils_install_for_testing --single-version-externally-managed \ - --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG} - - cd "${TEST_DIR}/lib" || die - epytest \ - --deselect 'numpy/typing/tests/test_typing.py::test_fail[array_constructors.py]' -} - -python_install() { - # https://github.com/numpy/numpy/issues/16005 - local mydistutilsargs=( build_src ) - distutils-r1_python_install ${NUMPY_FCONFIG} - python_optimize -} - -python_install_all() { - local DOCS=( LICENSE.txt README.md THANKS.txt ) - - if use doc; then - local HTML_DOCS=( "${WORKDIR}"/html/. ) - DOCS+=( "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf ) - fi - - distutils-r1_python_install_all -} diff --git a/dev-python/numpy/numpy-1.20.3-r1.ebuild b/dev-python/numpy/numpy-1.20.3-r1.ebuild new file mode 100644 index 000000000000..6604eb23a4e6 --- /dev/null +++ b/dev-python/numpy/numpy-1.20.3-r1.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_REQ_USE="threads(+)" + +FORTRAN_NEEDED=lapack + +inherit distutils-r1 flag-o-matic fortran-2 multiprocessing toolchain-funcs + +DOC_PV=${PV} +DESCRIPTION="Fast array and numerical python library" +HOMEPAGE="https://numpy.org/" +SRC_URI=" + mirror://pypi/${PN:0:1}/${PN}/${P}.zip + doc? ( + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf + )" +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="doc lapack" + +RDEPEND=" + lapack? ( + >=virtual/cblas-3.8 + >=virtual/lapack-3.8 + ) +" +BDEPEND=" + ${RDEPEND} + app-arch/unzip + >=dev-python/cython-0.29.21[${PYTHON_USEDEP}] + lapack? ( virtual/pkgconfig ) + test? ( + >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}] + >=dev-python/pytz-2019.3[${PYTHON_USEDEP}] + >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}"/numpy-1.20.1-no-hardcode-blasv2.patch + "${FILESDIR}"/numpy-1.20.2-fix-ccompiler-tests.patch + "${FILESDIR}"/numpy-1.20.2-fix-popcnt-detection.patch + "${FILESDIR}"/numpy-1.20.3-float-hashing-py310.patch +) + +distutils_enable_tests pytest + +src_unpack() { + default + if use doc; then + unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.zip -d html || die + fi +} + +python_prepare_all() { + if use lapack; then + local incdir="${EPREFIX}"/usr/include + local libdir="${EPREFIX}"/usr/$(get_libdir) + cat >> site.cfg <<-EOF || die + [blas] + include_dirs = ${incdir} + library_dirs = ${libdir} + blas_libs = cblas,blas + [lapack] + library_dirs = ${libdir} + lapack_libs = lapack + EOF + else + export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None + fi + + export CC="$(tc-getCC) ${CFLAGS}" + + append-flags -fno-strict-aliasing + + # See progress in http://projects.scipy.org/scipy/numpy/ticket/573 + # with the subtle difference that we don't want to break Darwin where + # -shared is not a valid linker argument + if [[ ${CHOST} != *-darwin* ]]; then + append-ldflags -shared + fi + + # only one fortran to link with: + # linking with cblas and lapack library will force + # autodetecting and linking to all available fortran compilers + append-fflags -fPIC + if use lapack; then + NUMPY_FCONFIG="config_fc --noopt --noarch" + # workaround bug 335908 + [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95" + fi + + # don't version f2py, we will handle it. + sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die + + # disable fuzzed tests + find numpy/*/tests -name '*.py' -exec sed -i \ + -e 's:def \(.*_fuzz\):def _\1:' {} + || die + # very memory- and disk-hungry + sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + export MAKEOPTS=-j1 #660754 + + distutils-r1_python_compile ${NUMPY_FCONFIG} +} + +python_test() { + distutils_install_for_testing --single-version-externally-managed \ + --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG} + + cd "${TEST_DIR}/lib" || die + epytest +} + +python_install() { + # https://github.com/numpy/numpy/issues/16005 + local mydistutilsargs=( build_src ) + distutils-r1_python_install ${NUMPY_FCONFIG} + python_optimize +} + +python_install_all() { + local DOCS=( LICENSE.txt README.md THANKS.txt ) + + if use doc; then + local HTML_DOCS=( "${WORKDIR}"/html/. ) + DOCS+=( "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf ) + fi + + distutils-r1_python_install_all +} diff --git a/dev-python/numpy/numpy-1.20.3.ebuild b/dev-python/numpy/numpy-1.20.3.ebuild deleted file mode 100644 index 5b772a58a6f9..000000000000 --- a/dev-python/numpy/numpy-1.20.3.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..10} ) -PYTHON_REQ_USE="threads(+)" - -FORTRAN_NEEDED=lapack - -inherit distutils-r1 flag-o-matic fortran-2 multiprocessing toolchain-funcs - -DOC_PV=${PV} -DESCRIPTION="Fast array and numerical python library" -HOMEPAGE="https://numpy.org/" -SRC_URI=" - mirror://pypi/${PN:0:1}/${PN}/${P}.zip - doc? ( - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf - https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf - )" -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" -IUSE="doc lapack" - -RDEPEND=" - lapack? ( - >=virtual/cblas-3.8 - >=virtual/lapack-3.8 - ) -" -BDEPEND=" - ${RDEPEND} - app-arch/unzip - >=dev-python/cython-0.29.21[${PYTHON_USEDEP}] - lapack? ( virtual/pkgconfig ) - test? ( - >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}] - >=dev-python/pytz-2019.3[${PYTHON_USEDEP}] - >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}"/numpy-1.20.1-no-hardcode-blasv2.patch - "${FILESDIR}"/numpy-1.20.2-fix-ccompiler-tests.patch - "${FILESDIR}"/numpy-1.20.3-float-hashing-py310.patch -) - -distutils_enable_tests pytest - -src_unpack() { - default - if use doc; then - unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.zip -d html || die - fi -} - -python_prepare_all() { - if use lapack; then - local incdir="${EPREFIX}"/usr/include - local libdir="${EPREFIX}"/usr/$(get_libdir) - cat >> site.cfg <<-EOF || die - [blas] - include_dirs = ${incdir} - library_dirs = ${libdir} - blas_libs = cblas,blas - [lapack] - library_dirs = ${libdir} - lapack_libs = lapack - EOF - else - export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None - fi - - export CC="$(tc-getCC) ${CFLAGS}" - - append-flags -fno-strict-aliasing - - # See progress in http://projects.scipy.org/scipy/numpy/ticket/573 - # with the subtle difference that we don't want to break Darwin where - # -shared is not a valid linker argument - if [[ ${CHOST} != *-darwin* ]]; then - append-ldflags -shared - fi - - # only one fortran to link with: - # linking with cblas and lapack library will force - # autodetecting and linking to all available fortran compilers - append-fflags -fPIC - if use lapack; then - NUMPY_FCONFIG="config_fc --noopt --noarch" - # workaround bug 335908 - [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95" - fi - - # don't version f2py, we will handle it. - sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die - - # disable fuzzed tests - find numpy/*/tests -name '*.py' -exec sed -i \ - -e 's:def \(.*_fuzz\):def _\1:' {} + || die - # very memory- and disk-hungry - sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - export MAKEOPTS=-j1 #660754 - - distutils-r1_python_compile ${NUMPY_FCONFIG} -} - -python_test() { - distutils_install_for_testing --single-version-externally-managed \ - --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG} - - cd "${TEST_DIR}/lib" || die - epytest -} - -python_install() { - # https://github.com/numpy/numpy/issues/16005 - local mydistutilsargs=( build_src ) - distutils-r1_python_install ${NUMPY_FCONFIG} - python_optimize -} - -python_install_all() { - local DOCS=( LICENSE.txt README.md THANKS.txt ) - - if use doc; then - local HTML_DOCS=( "${WORKDIR}"/html/. ) - DOCS+=( "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf ) - fi - - distutils-r1_python_install_all -} -- cgit v1.2.3