Files
poky/meta/recipes-devtools/python/python3-numpy_2.1.3.bb
Trevor Gamblin 0b62506411 python3-numpy: inherit pkgconfig
This was supposed to be added in oe-core commit fd656aaf7fbe
("python3-numpy: upgrade 1.26.4 -> 2.1.3"), but it somehow got missed in
the final version of that patch. Add it now to fix possible do_compile
errors on some systems, due to host paths sneaking into the meson build
options, e.g.:

| Build machine cpu family: x86_64
| Build machine cpu: x86_64
| Host machine cpu family: x86_64
| Host machine cpu: x86_64
| Target machine cpu family: x86_64
| Target machine cpu: x86_64
| Program python3 found: YES (/home/tgamblin/workspace/yocto/poky/build/tmp/work/core2-64-poky-linux-musl/python3-numpy/2.1.3/recipe-sysroot-native/usr/bin/nativepython3)
| Did not find pkg-config by name 'pkg-config'
| Found pkg-config: NO
| Run-time dependency python found: NO (tried pkgconfig, pkgconfig and sysconfig)
|
| ../numpy-2.1.3/meson.build:41:12: ERROR: Python dependency not found
|
| A full log can be found at /home/tgamblin/workspace/yocto/poky/build/tmp/work/core2-64-poky-linux-musl/python3-numpy/2.1.3/build/meson-logs/meson-log.txt

and notably (meson-log.txt snippet):

|x86_64-poky-linux-musl-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/media/build/poky/build/tmp/work/core2-64-poky-linux-musl/python3-numpy/2.1.3/recipe-sysroot -I/media/build/poky/build/tmp/work/core2-64-poky-linux-musl/python3-numpy/2.1.3/recipe-sysroot/usr/include/python3.13 -I/usr/include/python3.13

A bug has been filed about this and the related gcc issue: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15672

With pkgconfig on the inherit line, all include directives in
meson-log.txt end up looking something like:

|-I/home/tgamblin/workspace/yocto/poky/build/tmp/work/core2-64-poky-linux-musl/python3-numpy/2.1.3/recipe-sysroot/usr/include/python3.13

(From OE-Core rev: b8503a2c5000262a400375321de75161357111fb)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-11-28 00:07:30 +00:00

72 lines
2.6 KiB
BlitzBasic

SUMMARY = "A sophisticated Numeric Processing Package for Python"
HOMEPAGE = "https://numpy.org/"
DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python."
SECTION = "devel/python"
LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1de863c37a83e71b1e97b64d036ea78b"
SRCNAME = "numpy"
SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
file://0001-numpy-core-Define-RISCV-32-support.patch \
file://fix_reproducibility.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"
GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
inherit pkgconfig ptest python_mesonpy github-releases cython
S = "${WORKDIR}/numpy-${PV}"
# Remove references to buildpaths from numpy's __config__.py
do_install:append() {
sed -i \
-e 's|${S}=||g' \
-e 's|${B}=||g' \
-e 's|${RECIPE_SYSROOT_NATIVE}=||g' \
-e 's|${RECIPE_SYSROOT_NATIVE}||g' \
-e 's|${RECIPE_SYSROOT}=||g' \
-e 's|${RECIPE_SYSROOT}||g' ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/__config__.py
nativepython3 -mcompileall -s ${D} ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/__config__.py
}
FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/_core/lib/*.a \
${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a \
"
# install what is needed for numpy.test()
RDEPENDS:${PN} = "python3-unittest \
python3-difflib \
python3-pprint \
python3-pickle \
python3-shell \
python3-doctest \
python3-datetime \
python3-misc \
python3-mmap \
python3-netclient \
python3-numbers \
python3-pydoc \
python3-pkgutil \
python3-email \
python3-compression \
python3-ctypes \
python3-threading \
python3-multiprocessing \
python3-json \
"
RDEPENDS:${PN}-ptest += "python3-pytest \
python3-hypothesis \
python3-sortedcontainers \
python3-resource \
python3-typing-extensions \
ldd \
"
BBCLASSEXTEND = "native nativesdk"