Commit Graph

19 Commits

Author SHA1 Message Date
Trevor Gamblin
0cb7199a8d python3-numpy: fix ptests
Fix the numpy ptests by doing the following:

- Add meson to ptest RDEPENDS in the recipe;
- Add python3-unittest-automake-output as a ptest RDEPENDS;
- Convert run-ptest to a shell script that sets PYTEST_DEBUG_TEMPROOT to
  a directory inside the same path that contains the script, create that
  directory, and then invoke the tests with `pytest --automake` pointed
  at the numpy path in site-packages (copying the tests into the normal
  PTEST_DIRECTORY seems to cause module import breakages in some tests).
  This also includes skipping two problematic tests which require a C
  compiler and use up a lot of space, respectively;
- Set 'IMAGE_ROOTFS_EXTRA_SPACE = "3048576"' for python3-numpy in
  core-image-ptest.bb;
- Also set 'QB_MEM:virtclass-mcextend-python3-numpy = "-m 4096"' in
  core-image-ptest.bb;
- Move python3-numpy from the PTESTS_PROBLEMS list to the PTESTS_SLOW
  one.

Results on qemux86-64:

Testsuite summary
DURATION: 87
END: /usr/lib/python3-numpy/ptest
2025-04-29T17:35
STOP: ptest-runner
TOTAL: 1 FAIL: 0

Note that many of the skipped tests are due to the absence of
python3-mypy (which is currently in meta-python) and of a Fortran
compiler.

(From OE-Core rev: 7f0b5e8faa1b246531ac425c99a629eb344b21e2)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-01 14:22:53 +01:00
Richard Purdie
db821be37e python3-numpy: upgrade 2.2.3 -> 2.2.4
(From OE-Core rev: 878b560bc8994cbf6cd310db7fd548df9ef2912e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-04-03 11:06:20 +01:00
Trevor Gamblin
e0e5dd1e43 python3-numpy: upgrade 2.2.1 -> 2.2.2
Changelog: https://github.com/numpy/numpy/releases/tag/v2.2.2

Reproducibility looks OK:

|2025-01-20 16:40:52,428 - oe-selftest - INFO - Ran 1 test in 2125.833s
|2025-01-20 16:40:52,428 - oe-selftest - INFO - OK
|2025-01-20 16:40:57,146 - oe-selftest - INFO - RESULTS:
|2025-01-20 16:40:57,146 - oe-selftest - INFO - RESULTS - reproducible.ReproducibleTests.test_reproducible_builds: PASSED (2065.94s)
|2025-01-20 16:40:57,147 - oe-selftest - INFO - SUMMARY:
|2025-01-20 16:40:57,147 - oe-selftest - INFO - oe-selftest () - Ran 1 test in 2125.834s
|2025-01-20 16:40:57,147 - oe-selftest - INFO - oe-selftest - OK - All required tests passed (successes=1, skipped=0, failures=0, errors=0)

(From OE-Core rev: 8ba751635a333ba0ccdeaff7b135131de99292a9)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2025-01-23 11:56:47 +00:00
Alexander Kanavin
991cbf2336 python3-numpy: upgrade 2.1.3 -> 2.2.1
Add a svml option, disabled by default
(it's avx-512 only, and uses randomly generated
intermediate .o file names, which makes the installed
library non-reproducible).

(From OE-Core rev: a3ce94f1fa79502d8b41de93f9a27d8af2cdc787)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-01-10 11:10:00 +00:00
Richard Purdie
e16e725fb5 Revert "python3-numpy: upgrade 2.1.3 -> 2.2.0"
This reverts commit ff93068be3dd1993675dd016fd6b5e98ccb262bf.

Sadly this upgrade does pass reproducible build tests:
http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20241217-q6urkm0e/packages/diff-html/

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-12-17 11:53:15 +00:00
Trevor Gamblin
48b0c58b34 python3-numpy: upgrade 2.1.3 -> 2.2.0
Patch '0001-numpy-core-Define-RISCV-32-support.patch' is included in
v2.2.0, so remove it from the SRC_URI list:

|tgamblin@megalith ~/workspace/git/pythonsrc/numpy (main)$ git tag --contains 0e2b652a0eff85798584116c905a2d6ad8f25d5f
|v2.2.0

Changelog: https://github.com/numpy/numpy/releases/tag/v2.2.0

Build log:

|BUILDALL-QEMU LOG FOR python3-numpy
|START TIME: 2024-12-13_16:55:19
|HOSTNAME: megalith
|HOST OS: Debian GNU/Linux 12 (bookworm)
|HOST KERNEL: 6.1.0-28-amd64
|===============
|BUILD RESULTS:
|[glibc]
|FAIL: qemuloongarch64
|PASS: qemuriscv32
|PASS: qemuarmv5
|PASS: qemuppc
|PASS: qemumips64
|PASS: qemuriscv64
|PASS: qemuarm64
|PASS: qemuarm
|PASS: qemux86-64
|PASS: qemuppc64
|PASS: qemux86
|PASS: qemumips
|[musl]
|FAIL: qemuloongarch64
|FAIL: qemuriscv32
|PASS: qemuarmv5
|PASS: qemuppc
|PASS: qemumips64
|PASS: qemuriscv64
|PASS: qemuarm64
|PASS: qemuarm
|PASS: qemux86-64
|PASS: qemuppc64
|PASS: qemux86
|PASS: qemumips
|===============
|PASSED: 21
|FAILED: 3

(From OE-Core rev: ff93068be3dd1993675dd016fd6b5e98ccb262bf)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-12-17 11:41:53 +00:00
Trevor Gamblin
ea8594d4a0 python3-numpy: upgrade 1.26.4 -> 2.1.3
- This release contains numerous API changes and bug fixes.
  Changelog: https://github.com/numpy/numpy/releases

- Notably, the build backend has switched to mesonpy since 1.26.4.

- Patch 0001-numpy-core-Define-RISCV-32-support.patch had to be updated
  to change the paths for the target files. It has now been merged
  upstream, but isn't included in any release yet. PR for reference:

  https://github.com/numpy/numpy/pull/17780

- Builds OK and seems to be compatible with current piglit and pandas
  (meta-python), which was not the case for the previous upgrade attempt
  to numpy 2.0.1.

- For numpy, add 'pkgconfig' to inherit to avoid errors like this at
  do_compile:

  | Found Pkg-config: NO
  | Run-time dependency python found: YES 3.12
  | Has header "Python.h" with dependency python: NO
  |
  | ../numpy-2.0.0/meson.build:44:2: ERROR: Problem encountered: Cannot compile `Python.h`. Perhaps you need to install python-dev|python-devel
  |
  | A full log can be found at /home/tgamblin/workspace/yocto/poky/build/tmp/work/core2-64-poky-linux/python3-numpy/2.0.0/build/meson-logs/meson-log.txt

- Mmodify the FILES:${PN}-staticdev line to fix a QA issue.

- This is now reproducible as of oe-core commit: 917df5ed022f

License-Update: Change copyright year to 2024

buildall-qemu log:

BUILDALL-QEMU LOG FOR python3-numpy
START TIME: 2024-11-20_14:02:08
HOSTNAME: megalith
HOST OS: Debian GNU/Linux 12 (bookworm)
HOST KERNEL: 6.1.0-27-amd64
===============
BUILD RESULTS:
[glibc]
FAIL: qemuloongarch64
PASS: qemuriscv32
PASS: qemuarmv5
PASS: qemuppc
PASS: qemumips64
PASS: qemuriscv64
PASS: qemuarm64
PASS: qemuarm
PASS: qemux86-64
PASS: qemuppc64
PASS: qemux86
PASS: qemumips
[musl]
FAIL: qemuloongarch64
FAIL: qemuriscv32
PASS: qemuarmv5
PASS: qemuppc
PASS: qemumips64
PASS: qemuriscv64
PASS: qemuarm64
PASS: qemuarm
PASS: qemux86-64
PASS: qemuppc64
PASS: qemux86
PASS: qemumips
===============
PASSED: 21
FAILED: 3

(From OE-Core rev: fd656aaf7fbed3115e3b4251ff76257ee8f19c82)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-11-22 16:58:40 +00:00
Trevor Gamblin
3296f9a13d python3-numpy: upgrade 1.26.3 -> 1.26.4
Changelog: https://github.com/numpy/numpy/releases/tag/v1.26.4

Upgrade to pull in a variety of bug fixes.

The same number of ptests (6) fail as in 1.26.3, so no regression there.

(From OE-Core rev: 0314d2b43701984b5648bce9ca9aaeba5f768b78)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-09 13:55:06 +00:00
Ola x Nilsson
fd0980f74f python3-numpy: Use Large File Support version of fallocate
This was supposed to always be the case from upstream but was exposed
by the 64-bit-time QA checker when file function scanning was enabled.

(From OE-Core rev: 3d556e59f658ac29615fb7a14b6ea48533122ff6)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-01-27 08:20:02 +00:00
Wang Mingyu
b682671cfb python3-numpy: upgrade 1.26.2 -> 1.26.3
0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
refreshed for 1.26.3

Changelog:
 https://github.com/numpy/numpy/releases/tag/v1.26.3

(From OE-Core rev: 04d1c142274702726f8fc7afed7420d9e6f07ddd)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-01-19 12:21:23 +00:00
Richard Purdie
98ecb27d23 python3-numpy: Fix reproducibility issue
Add a patch to fix the reproducibility issue being seen during testing. The issue
is from a poor choice of regex against the compiler flags, being triggered by
different path names.

Drop the previous attempt at fixing this as it wasn't that.

(From OE-Core rev: c4d1dc5e33734b94835e7f5e0e1746d4a6542b55)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-01 08:12:59 +01:00
Richard Purdie
7dcf79b8f8 python3-numpy: Attempt to fix reproducibility issue
We've seen reproducibility failures where it appears an extra -O3 compiler flag ends
up in the multiarray library compilation. This can only really have come through
extra_info for BLASS support since it only affects just this library. Rather than
try and track down exactly where this came from in a rabbit warren of code, just
disable this since we don't have any of the dependencies anyway.

(From OE-Core rev: 1d07be514ccacedb4d1ac48e0fdd3a36ae098698)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-05 08:09:13 +01:00
Martin Jansa
34c454c99a python3-numpy: upgrade to 1.24.2
* remove patch applied upstream

* FWIW: this version still fails to build with DEBUG_BUILD AND gcc-13 as
  shown in:
  http://errors.yoctoproject.org/Errors/Details/689841/

In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/immintrin.h:57,
                 from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:14:
In function '_mm512_mask_prefetch_i64scatter_pd',
    inlined from 'main' at TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:23:5:
TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512pfintrin.h:180:3: error: 'base' may be used uninitialized [-Werror=maybe-uninitialized]
  180 |   __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  181 |                                __hint);
      |                                ~~~~~~~
<built-in>: In function 'main':
<built-in>: note: by argument 3 of type 'const void *' to '__builtin_ia32_scatterpfqpd' declared here
TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:18:9: note: 'base' declared here
   18 |     int base[128];
      |         ^~~~

In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/immintrin.h:53,
                 from numpy/core/src/umath/simd.inc.src:25:
TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512fintrin.h: In function 'AVX512F_square_CFLOAT':
TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512fintrin.h:314:1: error: inlining failed in call to 'always_inline' '_mm512_setzero_ps': target specific option mismatch
  314 | _mm512_setzero_ps (void)
      | ^~~~~~~~~~~~~~~~~
numpy/core/src/umath/simd.inc.src:977:20: note: called from here
  977 |     @vtype@ zeros = _mm512_setzero_@vsuffix@();
      |                    ^~~~~~~~~~~~~~~~~~~
numpy/core/src/umath/simd.inc.src:596:1: error: inlining failed in call to 'always_inline' 'avx512_get_full_load_mask_ps': target specific option mismatch
  596 | avx512_get_full_load_mask_ps(void)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

It will be probably resolved in next release from 1.25 as whole simd.inc.src was removed in:
640e85017a
but this PR https://github.com/numpy/numpy/pull/21056 wasn't backported
to maintenance/1.24.x and probably isn't worth backporting now as
neither DEBUG_BUILD is enabled by default nor gcc-13 merged in oe-core,
and the changes don't backport cleanly.

(From OE-Core rev: 8596678667797971559aed962b1c204266032186)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-19 07:47:53 +00:00
Khem Raj
7aadc3e227 python3-numpy: Define _ALIGN using _Alignof when using C11 or newer
(From OE-Core rev: ceb09d1def7d0f6daa5c2216e9876874ac8261dd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-20 16:40:47 +00:00
Alexander Kanavin
2144d70e3e python3-numpy: upgrade 1.23.4 -> 1.24.1
(From OE-Core rev: c28b9e57cae7bcc4e97b021f687051f0ecb7821e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-06 12:03:47 +00:00
Alexander Kanavin
32e2e1b411 python3-numpy: update 1.22.3 -> 1.22.4
(From OE-Core rev: 6d87caa86df3109b8f45d287094281b02c7c0ac0)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-22 22:40:28 +01:00
Alexander Kanavin
81cfa7d0e0 python3-numpy: update 1.22.1 -> 1.22.2
Replace an ad hoc fix via patch with an upstream one.

(From OE-Core rev: 991f8617b9ca9680b3f81cb215e3b39095260e7c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-08 14:20:18 +00:00
Alexander Kanavin
633b403b6d python3-numpy: update 1.21.4 -> 1.22.0
(From OE-Core rev: 6b9f2e078fb5653a1cedd64e90459e2f0780eb7e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-11 10:53:44 +00:00
Yi Zhao
a6757e4a52 python3-numpy: move recipe to python directory
This recipe had been moved out from python directory since 2016[1] in
order to share patches between python2 and python3. But now there is no
reason to keep it in its own directory as we only keep python3-nump.
Move it back to python directory.

[1] https://git.openembedded.org/openembedded-core/commit/?id=9bffe2f9fb4ce6c0b265f27e5b484fbe076c6349

(From OE-Core rev: e5702b8ebd16949c736b8c2f18bf35c0d64d80bd)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 12:55:27 +00:00