Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/numpy/, dev-python/numpy/files/
Date: Fri, 31 Dec 2021 22:49:34
Message-Id: 1640990897.4060d4e419a67622448089fce86ba256ce3338ef.sam@gentoo
1 commit: 4060d4e419a67622448089fce86ba256ce3338ef
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Fri Dec 31 22:47:49 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Fri Dec 31 22:48:17 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4060d4e4
7
8 dev-python/numpy: add 1.22.0
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 dev-python/numpy/Manifest | 4 +
13 .../files/numpy-1.22.0-no-hardcode-blasv2.patch | 78 ++++++++++
14 dev-python/numpy/numpy-1.22.0.ebuild | 162 +++++++++++++++++++++
15 3 files changed, 244 insertions(+)
16
17 diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
18 index 9daedd30ee92..993f73add007 100644
19 --- a/dev-python/numpy/Manifest
20 +++ b/dev-python/numpy/Manifest
21 @@ -3,16 +3,20 @@ DIST numpy-1.21.2.zip 10264801 BLAKE2B 2d88506faa5bc767a16c000f201559917d800fd20
22 DIST numpy-1.21.3.zip 10269351 BLAKE2B 60fc96d91e2c4e0b1c6ee409e02640686fe257f5addbb17229568f591551ea3c415c4aac97b7cdb161b88ce436e42a766b161bd5a82f8cb66fff6771c0097bd3 SHA512 8fbe4e8543b72ad5203d5b122eb3d875e48965682945898e54f4ce82cf790713dfd9185b8b12439aefa86bf25209ea25d04ec3ca2aa2b8d2f32d69358421b792
23 DIST numpy-1.21.4.zip 10646392 BLAKE2B 6e2953c6ca8e35c99f5de5faaacfb2b76b351a5c9521ba27449fcdeca5614978ff7d71fc52ce3787d1c7506c4e8eb81b1a92d3bf6825de1cb1d304ea4de83820 SHA512 85575a009bf40a8e5acaaa949d2669545968825df34273e367c42af36fa882ebb0830ff7953b5617d34d3061b3877238524937c42470fac9464479dc33ae60ce
24 DIST numpy-1.21.5.zip 10652289 BLAKE2B c5bded91e5d06670ea3ace51560411c61985dd89ff0455b833838320f1714cf788a21a60aefd7a0ff30ad0abb93c9d296f60e637944000efa090b6c259c1f47c SHA512 03affa9d0bbf42a8d35f5454f1527df28539e306dc2b313fa775625201a5fe9eb7376f443bba5d50e08567546708811beb7201819eeb2af5a0653b7d91249f78
25 +DIST numpy-1.22.0.zip 11291139 BLAKE2B 91cd2188aaa59d7be18761b74865295f400e309e34bf79067493221c5f0eb875a5c726dd8e322db84fa9714800347954b6a9896aadf914e87872497f7e65527c SHA512 dcea1a6cd257f6353caccc30b2adb1cf2e9d52191ec9f968839c85b1f776ebf8c5ac8bbf0751c2c6f292ae671e4006d26eb06691ca1504e4d65baf4cec3f9803
26 +DIST numpy-html-1.21.0.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
27 DIST numpy-html-1.21.1.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
28 DIST numpy-html-1.21.2.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
29 DIST numpy-html-1.21.3.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
30 DIST numpy-html-1.21.4.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
31 DIST numpy-html-1.21.5.zip 24270531 BLAKE2B 8a7a531afa559aebeb7a7b7ef94b2248df60a60fdfc190ca002dda625003df8b432fed393d6dd0c0c00fafbeb5064a61e3d99bba1a6c41e1e6e34ce091a43c89 SHA512 a165b95729a13806a03464cf39c20a0e18cfcf7701f05cd7777cd115bfaf0972f7155d201c7bd8d4177c5761f8800c982b3e3c29729a5e9ed356059842a44dcc
32 +DIST numpy-ref-1.21.0.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
33 DIST numpy-ref-1.21.1.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
34 DIST numpy-ref-1.21.2.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
35 DIST numpy-ref-1.21.3.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
36 DIST numpy-ref-1.21.4.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
37 DIST numpy-ref-1.21.5.pdf 7326979 BLAKE2B 3c1130a576c46e0705ca1f12e7a3345beb1acdd23de2a81448e4e9755636dec313e277a0d3167dc3b211332b3fc415ac0d96e7c99e859b51a16a589426814182 SHA512 5dd37ca03f1f098fffce80aa6a1a6eb8ec66df4322da1c620bd1f507e89ee2ceb222de32c9b7974f085ddf146f0a789ea8eb27d792a13c1aa8a893c00f94f75f
38 +DIST numpy-user-1.21.0.pdf 5142404 BLAKE2B d670f1eb0f060599a640c52bdeba53b1758007fc2090a5b8fb6e135e71114149a0085811e4bc21396eabb1123ffb9edd39f8192d0165ab42dd066a9747eb3a3f SHA512 dde264abff1787efd50e913b6facf83522b3344ed88fd15d6fe73ecd44c6a3db1e4ce4251c9674bbcb122f72ab86c64142b2f4f992a6449405041f8e1f5f1ace
39 DIST numpy-user-1.21.1.pdf 5142404 BLAKE2B d670f1eb0f060599a640c52bdeba53b1758007fc2090a5b8fb6e135e71114149a0085811e4bc21396eabb1123ffb9edd39f8192d0165ab42dd066a9747eb3a3f SHA512 dde264abff1787efd50e913b6facf83522b3344ed88fd15d6fe73ecd44c6a3db1e4ce4251c9674bbcb122f72ab86c64142b2f4f992a6449405041f8e1f5f1ace
40 DIST numpy-user-1.21.2.pdf 5142404 BLAKE2B d670f1eb0f060599a640c52bdeba53b1758007fc2090a5b8fb6e135e71114149a0085811e4bc21396eabb1123ffb9edd39f8192d0165ab42dd066a9747eb3a3f SHA512 dde264abff1787efd50e913b6facf83522b3344ed88fd15d6fe73ecd44c6a3db1e4ce4251c9674bbcb122f72ab86c64142b2f4f992a6449405041f8e1f5f1ace
41 DIST numpy-user-1.21.3.pdf 5142404 BLAKE2B d670f1eb0f060599a640c52bdeba53b1758007fc2090a5b8fb6e135e71114149a0085811e4bc21396eabb1123ffb9edd39f8192d0165ab42dd066a9747eb3a3f SHA512 dde264abff1787efd50e913b6facf83522b3344ed88fd15d6fe73ecd44c6a3db1e4ce4251c9674bbcb122f72ab86c64142b2f4f992a6449405041f8e1f5f1ace
42
43 diff --git a/dev-python/numpy/files/numpy-1.22.0-no-hardcode-blasv2.patch b/dev-python/numpy/files/numpy-1.22.0-no-hardcode-blasv2.patch
44 new file mode 100644
45 index 000000000000..7c9d7768607f
46 --- /dev/null
47 +++ b/dev-python/numpy/files/numpy-1.22.0-no-hardcode-blasv2.patch
48 @@ -0,0 +1,78 @@
49 +Originally added in: https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-python/numpy/files?id=e5ce90a04e79f6413604e96e4803cb95ada7c859
50 +https://bugs.gentoo.org/567938
51 +--- a/numpy/distutils/system_info.py
52 ++++ b/numpy/distutils/system_info.py
53 +@@ -502,36 +502,7 @@ def get_info(name, notfound_action=0):
54 + 2 - raise error
55 + """
56 + cl = {'armpl': armpl_info,
57 +- 'blas_armpl': blas_armpl_info,
58 +- 'lapack_armpl': lapack_armpl_info,
59 + 'fftw3_armpl': fftw3_armpl_info,
60 +- 'atlas': atlas_info, # use lapack_opt or blas_opt instead
61 +- 'atlas_threads': atlas_threads_info, # ditto
62 +- 'atlas_blas': atlas_blas_info,
63 +- 'atlas_blas_threads': atlas_blas_threads_info,
64 +- 'lapack_atlas': lapack_atlas_info, # use lapack_opt instead
65 +- 'lapack_atlas_threads': lapack_atlas_threads_info, # ditto
66 +- 'atlas_3_10': atlas_3_10_info, # use lapack_opt or blas_opt instead
67 +- 'atlas_3_10_threads': atlas_3_10_threads_info, # ditto
68 +- 'atlas_3_10_blas': atlas_3_10_blas_info,
69 +- 'atlas_3_10_blas_threads': atlas_3_10_blas_threads_info,
70 +- 'lapack_atlas_3_10': lapack_atlas_3_10_info, # use lapack_opt instead
71 +- 'lapack_atlas_3_10_threads': lapack_atlas_3_10_threads_info, # ditto
72 +- 'flame': flame_info, # use lapack_opt instead
73 +- 'mkl': mkl_info,
74 +- # openblas which may or may not have embedded lapack
75 +- 'openblas': openblas_info, # use blas_opt instead
76 +- # openblas with embedded lapack
77 +- 'openblas_lapack': openblas_lapack_info, # use blas_opt instead
78 +- 'openblas_clapack': openblas_clapack_info, # use blas_opt instead
79 +- 'blis': blis_info, # use blas_opt instead
80 +- 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead
81 +- 'blas_mkl': blas_mkl_info, # use blas_opt instead
82 +- 'accelerate': accelerate_info, # use blas_opt instead
83 +- 'openblas64_': openblas64__info,
84 +- 'openblas64__lapack': openblas64__lapack_info,
85 +- 'openblas_ilp64': openblas_ilp64_info,
86 +- 'openblas_ilp64_lapack': openblas_ilp64_lapack_info,
87 + 'x11': x11_info,
88 + 'fft_opt': fft_opt_info,
89 + 'fftw': fftw_info,
90 +@@ -543,24 +514,12 @@ def get_info(name, notfound_action=0):
91 + 'dfftw_threads': dfftw_threads_info,
92 + 'sfftw_threads': sfftw_threads_info,
93 + 'djbfft': djbfft_info,
94 +- 'blas': blas_info, # use blas_opt instead
95 +- 'lapack': lapack_info, # use lapack_opt instead
96 +- 'lapack_src': lapack_src_info,
97 +- 'blas_src': blas_src_info,
98 + 'numpy': numpy_info,
99 + 'f2py': f2py_info,
100 + 'Numeric': Numeric_info,
101 + 'numeric': Numeric_info,
102 + 'numarray': numarray_info,
103 + 'numerix': numerix_info,
104 +- 'lapack_opt': lapack_opt_info,
105 +- 'lapack_ilp64_opt': lapack_ilp64_opt_info,
106 +- 'lapack_ilp64_plain_opt': lapack_ilp64_plain_opt_info,
107 +- 'lapack64__opt': lapack64__opt_info,
108 +- 'blas_opt': blas_opt_info,
109 +- 'blas_ilp64_opt': blas_ilp64_opt_info,
110 +- 'blas_ilp64_plain_opt': blas_ilp64_plain_opt_info,
111 +- 'blas64__opt': blas64__opt_info,
112 + 'boost_python': boost_python_info,
113 + 'agg2': agg2_info,
114 + 'wx': wx_info,
115 +@@ -951,10 +910,7 @@ class system_info:
116 + return [b for b in [a.strip() for a in libs.split(',')] if b]
117 +
118 + def get_libraries(self, key='libraries'):
119 +- if hasattr(self, '_lib_names'):
120 +- return self.get_libs(key, default=self._lib_names)
121 +- else:
122 +- return self.get_libs(key, '')
123 ++ return self.get_libs(key, '')
124 +
125 + def library_extensions(self):
126 + c = customized_ccompiler()
127
128 diff --git a/dev-python/numpy/numpy-1.22.0.ebuild b/dev-python/numpy/numpy-1.22.0.ebuild
129 new file mode 100644
130 index 000000000000..886b232fc2f1
131 --- /dev/null
132 +++ b/dev-python/numpy/numpy-1.22.0.ebuild
133 @@ -0,0 +1,162 @@
134 +# Copyright 1999-2021 Gentoo Authors
135 +# Distributed under the terms of the GNU General Public License v2
136 +
137 +EAPI=7
138 +
139 +PYTHON_COMPAT=( python3_{8..10} )
140 +PYTHON_REQ_USE="threads(+)"
141 +
142 +FORTRAN_NEEDED=lapack
143 +
144 +inherit distutils-r1 flag-o-matic fortran-2 toolchain-funcs
145 +
146 +# Not ready yet
147 +#DOC_PV=${PV}
148 +DOC_PV=1.21.0
149 +DESCRIPTION="Fast array and numerical python library"
150 +HOMEPAGE="https://numpy.org/"
151 +SRC_URI="
152 + mirror://pypi/${PN:0:1}/${PN}/${P}.zip
153 + doc? (
154 + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip
155 + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf
156 + https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf
157 + )"
158 +LICENSE="BSD"
159 +SLOT="0"
160 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
161 +IUSE="doc lapack"
162 +
163 +RDEPEND="
164 + lapack? (
165 + >=virtual/cblas-3.8
166 + >=virtual/lapack-3.8
167 + )
168 +"
169 +BDEPEND="
170 + ${RDEPEND}
171 + app-arch/unzip
172 + >=dev-python/cython-0.29.24[${PYTHON_USEDEP}]
173 + lapack? ( virtual/pkgconfig )
174 + test? (
175 + >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}]
176 + >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
177 + >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
178 + )
179 +"
180 +
181 +PATCHES=(
182 + "${FILESDIR}"/${PN}-1.22.0-no-hardcode-blasv2.patch
183 +)
184 +
185 +distutils_enable_tests pytest
186 +
187 +src_unpack() {
188 + default
189 + if use doc; then
190 + unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.zip -d html || die
191 + fi
192 +}
193 +
194 +python_prepare_all() {
195 + if use lapack; then
196 + local incdir="${EPREFIX}"/usr/include
197 + local libdir="${EPREFIX}"/usr/$(get_libdir)
198 + cat >> site.cfg <<-EOF || die
199 + [blas]
200 + include_dirs = ${incdir}
201 + library_dirs = ${libdir}
202 + blas_libs = cblas,blas
203 + [lapack]
204 + library_dirs = ${libdir}
205 + lapack_libs = lapack
206 + EOF
207 + else
208 + export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
209 + fi
210 +
211 + export CC="$(tc-getCC) ${CFLAGS}"
212 +
213 + append-flags -fno-strict-aliasing
214 +
215 + # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
216 + # with the subtle difference that we don't want to break Darwin where
217 + # -shared is not a valid linker argument
218 + if [[ ${CHOST} != *-darwin* ]]; then
219 + append-ldflags -shared
220 + fi
221 +
222 + # only one fortran to link with:
223 + # linking with cblas and lapack library will force
224 + # autodetecting and linking to all available fortran compilers
225 + append-fflags -fPIC
226 + if use lapack; then
227 + NUMPY_FCONFIG="config_fc --noopt --noarch"
228 + # workaround bug 335908
229 + [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
230 + fi
231 +
232 + # don't version f2py, we will handle it.
233 + sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die
234 +
235 + # disable fuzzed tests
236 + find numpy/*/tests -name '*.py' -exec sed -i \
237 + -e 's:def \(.*_fuzz\):def _\1:' {} + || die
238 + # very memory- and disk-hungry
239 + sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die
240 +
241 + distutils-r1_python_prepare_all
242 +}
243 +
244 +python_compile() {
245 + export MAKEOPTS=-j1 #660754
246 +
247 + distutils-r1_python_compile ${NUMPY_FCONFIG}
248 +}
249 +
250 +python_test() {
251 + local deselect=(
252 + numpy/typing/tests/test_typing.py::test_reveal[arrayterator.py]
253 + )
254 +
255 + if use arm && [[ $(uname -m || echo "unknown") == "armv8l" ]] ; then
256 + # Degenerate case. arm32 chroot on arm64.
257 + # bug #774108
258 + deselect+=(
259 + numpy/core/tests/test_cpu_features.py::Test_ARM_Features::test_features
260 + )
261 + fi
262 +
263 + if use x86 ; then
264 + deselect+=(
265 + # https://github.com/numpy/numpy/issues/18388
266 + numpy/core/tests/test_umath.py::TestRemainder::test_float_remainder_overflow
267 + # https://github.com/numpy/numpy/issues/18387
268 + numpy/random/tests/test_generator_mt19937.py::TestRandomDist::test_pareto
269 + )
270 + fi
271 +
272 + distutils_install_for_testing --single-version-externally-managed \
273 + --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG}
274 +
275 + cd "${TEST_DIR}/lib" || die
276 + epytest ${deselect[@]/#/--deselect }
277 +}
278 +
279 +python_install() {
280 + # https://github.com/numpy/numpy/issues/16005
281 + local mydistutilsargs=( build_src )
282 + distutils-r1_python_install ${NUMPY_FCONFIG}
283 + python_optimize
284 +}
285 +
286 +python_install_all() {
287 + local DOCS=( LICENSE.txt README.md THANKS.txt )
288 +
289 + if use doc; then
290 + local HTML_DOCS=( "${WORKDIR}"/html/. )
291 + DOCS+=( "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf )
292 + fi
293 +
294 + distutils-r1_python_install_all
295 +}