From 2e4ce0db2f92805297e288f9e189eb563de1ac16 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 13 Aug 2026 23:07:47 -0700 Subject: [PATCH] python3-pandas: fix stripping of build paths from generated sources do_install failed because the glob in do_install:prepend did not match anything, leaving sed with a literal path to a non-existent file: sed: can't read .../build/pandas/_libs/sparse.cpython-*/pandas/_libs/sparse.pyx.c: No such file or directory meson names the per-target private directory .so.p and puts the generated sources directly in it, so the actual file is ${B}/pandas/_libs/sparse.cpython-314-x86_64-linux-gnu.so.p/sparse.pyx.c The do_compile:append hunk was meant to do the same job for every generated source, but it searched for ${WORKDIR}/pandas-${PV}, which no longer exists now that sources are unpacked under ${WORKDIR}/sources, so it silently matched nothing. Fix the remaining pass to look for ${S} and drop the redundant (and fragile) per-file sed in do_install:prepend. Also parenthesise the -o expression so the name filter applies to both alternatives, and use -print0/-0. Signed-off-by: Khem Raj --- .../recipes-devtools/python/python3-pandas_3.0.5.bb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/meta-python/recipes-devtools/python/python3-pandas_3.0.5.bb b/meta-python/recipes-devtools/python/python3-pandas_3.0.5.bb index a9bae34f72..c159113a21 100644 --- a/meta-python/recipes-devtools/python/python3-pandas_3.0.5.bb +++ b/meta-python/recipes-devtools/python/python3-pandas_3.0.5.bb @@ -35,13 +35,10 @@ PYTHONPATH:prepend:class-target = "${RECIPE_SYSROOT}${PYTHON_SITEPACKAGES_DIR}:" export PYTHONPATH do_compile:append() { - # Fix absolute paths in generated files - find ${B} -name "*.c" -o -name "*.cpp" | xargs -r \ - sed -i 's|${WORKDIR}/pandas-${PV}/|${TARGET_DBGSRC_DIR}/|g' -} - -do_install:prepend() { - sed -i -e 's;${S};;g' ${B}/pandas/_libs/sparse.cpython-*/pandas/_libs/sparse.pyx.c + # Cython embeds the path of the .pyx it was generated from into the + # generated C sources, which are shipped in the -dbg package + find ${B} \( -name "*.c" -o -name "*.cpp" \) -print0 | xargs -0 -r \ + sed -i 's|${S}/|${TARGET_DBGSRC_DIR}/|g' } EXTRA_OEMESON:append:class-target = " -Dnumpy_inc_dir=${RECIPE_SYSROOT}${PYTHON_SITEPACKAGES_DIR}/numpy/_core/include "