diff mbox series

[meta-python] python3-pandas: fix stripping of build paths from generated sources

Message ID 20260814060922.2788021-2-khem.raj@oss.qualcomm.com
State New
Headers show
Series [meta-python] python3-pandas: fix stripping of build paths from generated sources | expand

Commit Message

Khem Raj Aug. 14, 2026, 6:09 a.m. UTC
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 <target>.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 <khem.raj@oss.qualcomm.com>
---
 .../recipes-devtools/python/python3-pandas_3.0.5.bb   | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
diff mbox series

Patch

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 "