diff mbox series

[meta-oe] python3-matplotlib: add native RSS to -fmacro-prefix-map to fix buildpaths QA

Message ID 20240902162710.1284914-1-martin.jansa@gmail.com
State Under Review
Headers show
Series [meta-oe] python3-matplotlib: add native RSS to -fmacro-prefix-map to fix buildpaths QA | expand

Commit Message

Martin Jansa Sept. 2, 2024, 4:27 p.m. UTC
* fixes:
  ERROR: lib32-python3-matplotlib-3.7.2-r0 do_package_qa: QA Issue: File /usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so in package lib32-python3-matplotlib contains reference to TMPDIR [buildpaths]

* there is native RSS already but only in -fdebug-prefix-map

* it fails only with multilib where target RSS isn't substring of native RSS

* comparing _tri.cpython-312-*-linux-gnu.so cmdline for regular x86-64 and lib32-python3-matplotlib i586 build shows:

--fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
--fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
--fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
--fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
--fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
--fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
--fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot-native= \
+-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
+-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
+-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
+-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
+-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
+-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
+-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native= \

* the buildpaths are header files from native pybind11 (Pybind11Extension)
  https://github.com/pybind/pybind11/blob/master/pybind11/setup_helpers.py#L89

$ strings package/usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so | grep oemllib32
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/common.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h

* I'm not familiar enough with pybind11 to find a way how to configure it to
  use correct include dir, the issue already exists in regular x86-64 dir, but
  not caught by buildpaths, because, the:
  -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
  is enought to mangle the hardcoded paths (leaving only '-native') like this:

strings ../3.7.2-x86-64/package/usr/lib64/python3.12/site-packages/matplotlib/_tri.cpython-312-x86_64-linux-gnu.so | grep pybind11/include/pybind11
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pytypes.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/type_caster_base.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h

* there is also:
  WARNING: lib32-python3-matplotlib-3.7.2-r0 do_check_backend: QA Issue: inherits setuptools3 but has pyproject.toml with setuptools.build_meta, use the correct class [pep517-backend]
  but just changing the inherit doesn't work in this case, I'll leave that
  to someone actually using python3-matplotlib

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
---
 .../recipes-devtools/python/python3-matplotlib_3.7.2.bb      | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Martin Jansa Sept. 2, 2024, 4:29 p.m. UTC | #1
This is related RFC patch just sent to oe-core ML:
https://lists.openembedded.org/g/openembedded-core/message/204110

On Mon, Sep 2, 2024 at 6:27 PM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> * fixes:
>   ERROR: lib32-python3-matplotlib-3.7.2-r0 do_package_qa: QA Issue: File /usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so in package lib32-python3-matplotlib contains reference to TMPDIR [buildpaths]
>
> * there is native RSS already but only in -fdebug-prefix-map
>
> * it fails only with multilib where target RSS isn't substring of native RSS
>
> * comparing _tri.cpython-312-*-linux-gnu.so cmdline for regular x86-64 and lib32-python3-matplotlib i586 build shows:
>
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot-native= \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native= \
>
> * the buildpaths are header files from native pybind11 (Pybind11Extension)
>   https://github.com/pybind/pybind11/blob/master/pybind11/setup_helpers.py#L89
>
> $ strings package/usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so | grep oemllib32
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/common.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
>
> * I'm not familiar enough with pybind11 to find a way how to configure it to
>   use correct include dir, the issue already exists in regular x86-64 dir, but
>   not caught by buildpaths, because, the:
>   -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
>   is enought to mangle the hardcoded paths (leaving only '-native') like this:
>
> strings ../3.7.2-x86-64/package/usr/lib64/python3.12/site-packages/matplotlib/_tri.cpython-312-x86_64-linux-gnu.so | grep pybind11/include/pybind11
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pytypes.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/type_caster_base.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
>
> * there is also:
>   WARNING: lib32-python3-matplotlib-3.7.2-r0 do_check_backend: QA Issue: inherits setuptools3 but has pyproject.toml with setuptools.build_meta, use the correct class [pep517-backend]
>   but just changing the inherit doesn't work in this case, I'll leave that
>   to someone actually using python3-matplotlib
>
> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> ---
>  .../recipes-devtools/python/python3-matplotlib_3.7.2.bb      | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> index 72c369100a..2886060a9e 100644
> --- a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> +++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> @@ -68,3 +68,8 @@ do_compile:prepend() {
>  }
>
>  BBCLASSEXTEND = "native"
> +
> +# otherwise pybind11 paths from STAGING_DIR_NATIVE end in _tri.cpython-312-i386-linux-gnu.so
> +# when STAGING_DIR_NATIVE doesn't start with STAGING_DIR_HOST (e.g. for lib32-python3-matplotlib)
> +# http://errors.yoctoproject.org/Errors/Details/801217/
> +DEBUG_PREFIX_MAP:append = " -fmacro-prefix-map=${STAGING_DIR_NATIVE}="
> --
> 2.46.0
>
Martin Jansa Sept. 8, 2024, 7:35 a.m. UTC | #2
Khem: please drop this one from master-next

It was added in the default DEBUG_PREFIX_MAP in oe-core now.

On Mon, Sep 2, 2024 at 6:30 PM Martin Jansa via lists.openembedded.org
<martin.jansa=gmail.com@lists.openembedded.org> wrote:
>
> This is related RFC patch just sent to oe-core ML:
> https://lists.openembedded.org/g/openembedded-core/message/204110
>
> On Mon, Sep 2, 2024 at 6:27 PM Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > * fixes:
> >   ERROR: lib32-python3-matplotlib-3.7.2-r0 do_package_qa: QA Issue: File /usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so in package lib32-python3-matplotlib contains reference to TMPDIR [buildpaths]
> >
> > * there is native RSS already but only in -fdebug-prefix-map
> >
> > * it fails only with multilib where target RSS isn't substring of native RSS
> >
> > * comparing _tri.cpython-312-*-linux-gnu.so cmdline for regular x86-64 and lib32-python3-matplotlib i586 build shows:
> >
> > --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> > --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> > --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> > --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2 \
> > --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
> > --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot= \
> > --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot-native= \
> > +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> > +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> > +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> > +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2 \
> > +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
> > +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot= \
> > +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native= \
> >
> > * the buildpaths are header files from native pybind11 (Pybind11Extension)
> >   https://github.com/pybind/pybind11/blob/master/pybind11/setup_helpers.py#L89
> >
> > $ strings package/usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so | grep oemllib32
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/common.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> > /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
> >
> > * I'm not familiar enough with pybind11 to find a way how to configure it to
> >   use correct include dir, the issue already exists in regular x86-64 dir, but
> >   not caught by buildpaths, because, the:
> >   -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
> >   is enought to mangle the hardcoded paths (leaving only '-native') like this:
> >
> > strings ../3.7.2-x86-64/package/usr/lib64/python3.12/site-packages/matplotlib/_tri.cpython-312-x86_64-linux-gnu.so | grep pybind11/include/pybind11
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pytypes.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/type_caster_base.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> > -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
> >
> > * there is also:
> >   WARNING: lib32-python3-matplotlib-3.7.2-r0 do_check_backend: QA Issue: inherits setuptools3 but has pyproject.toml with setuptools.build_meta, use the correct class [pep517-backend]
> >   but just changing the inherit doesn't work in this case, I'll leave that
> >   to someone actually using python3-matplotlib
> >
> > Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> > ---
> >  .../recipes-devtools/python/python3-matplotlib_3.7.2.bb      | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> > index 72c369100a..2886060a9e 100644
> > --- a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> > +++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> > @@ -68,3 +68,8 @@ do_compile:prepend() {
> >  }
> >
> >  BBCLASSEXTEND = "native"
> > +
> > +# otherwise pybind11 paths from STAGING_DIR_NATIVE end in _tri.cpython-312-i386-linux-gnu.so
> > +# when STAGING_DIR_NATIVE doesn't start with STAGING_DIR_HOST (e.g. for lib32-python3-matplotlib)
> > +# http://errors.yoctoproject.org/Errors/Details/801217/
> > +DEBUG_PREFIX_MAP:append = " -fmacro-prefix-map=${STAGING_DIR_NATIVE}="
> > --
> > 2.46.0
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#112075): https://lists.openembedded.org/g/openembedded-devel/message/112075
> Mute This Topic: https://lists.openembedded.org/mt/108229723/3617156
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Sept. 8, 2024, 2:23 p.m. UTC | #3
On Sun, Sep 8, 2024 at 12:35 AM Martin Jansa via lists.openembedded.org
<martin.jansa=gmail.com@lists.openembedded.org> wrote:

> Khem: please drop this one from master-next
>
> It was added in the default DEBUG_PREFIX_MAP in oe-core now.


Yes thanks I was adding it for testing a local issue I was seeing with
clang. Thanks for letting me know regardless


>
> On Mon, Sep 2, 2024 at 6:30 PM Martin Jansa via lists.openembedded.org
> <martin.jansa=gmail.com@lists.openembedded.org> wrote:
> >
> > This is related RFC patch just sent to oe-core ML:
> > https://lists.openembedded.org/g/openembedded-core/message/204110
> >
> > On Mon, Sep 2, 2024 at 6:27 PM Martin Jansa <martin.jansa@gmail.com>
> wrote:
> > >
> > > * fixes:
> > >   ERROR: lib32-python3-matplotlib-3.7.2-r0 do_package_qa: QA Issue:
> File /usr/lib/python3.12/site-packages/matplotlib/_
> tri.cpython-312-i386-linux-gnu.so in package lib32-python3-matplotlib
> contains reference to TMPDIR [buildpaths]
> > >
> > > * there is native RSS already but only in -fdebug-prefix-map
> > >
> > > * it fails only with multilib where target RSS isn't substring of
> native RSS
> > >
> > > * comparing _tri.cpython-312-*-linux-gnu.so cmdline for regular x86-64
> and lib32-python3-matplotlib i586 build shows:
> > >
> > >
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
> \
> > >
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
> \
> > >
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
> \
> > >
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
> \
> > >
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
> \
> > >
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
> \
> > >
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot-native=
> \
> > >
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
> \
> > >
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
> \
> > >
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
> \
> > >
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
> \
> > >
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot=
> \
> > >
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot=
> \
> > >
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native=
> \
> > >
> > > * the buildpaths are header files from native pybind11
> (Pybind11Extension)
> > >
> https://github.com/pybind/pybind11/blob/master/pybind11/setup_helpers.py#L89
> > >
> > > $ strings package/usr/lib/python3.12/site-packages/matplotlib/_
> tri.cpython-312-i386-linux-gnu.so | grep oemllib32
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/common.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> > >
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
> > >
> > > * I'm not familiar enough with pybind11 to find a way how to configure
> it to
> > >   use correct include dir, the issue already exists in regular x86-64
> dir, but
> > >   not caught by buildpaths, because, the:
> > >
>  -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
> > >   is enought to mangle the hardcoded paths (leaving only '-native')
> like this:
> > >
> > > strings
> ../3.7.2-x86-64/package/usr/lib64/python3.12/site-packages/matplotlib/_
> tri.cpython-312-x86_64-linux-gnu.so | grep pybind11/include/pybind11
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pytypes.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/type_caster_base.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> > >
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
> > >
> > > * there is also:
> > >   WARNING: lib32-python3-matplotlib-3.7.2-r0 do_check_backend: QA
> Issue: inherits setuptools3 but has pyproject.toml with
> setuptools.build_meta, use the correct class [pep517-backend]
> > >   but just changing the inherit doesn't work in this case, I'll leave
> that
> > >   to someone actually using python3-matplotlib
> > >
> > > Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> > > ---
> > >  .../recipes-devtools/python/python3-matplotlib_3.7.2.bb      | 5
> +++++
> > >  1 file changed, 5 insertions(+)
> > >
> > > diff --git a/meta-python/recipes-devtools/python/
> python3-matplotlib_3.7.2.bb b/meta-python/recipes-devtools/python/
> python3-matplotlib_3.7.2.bb
> > > index 72c369100a..2886060a9e 100644
> > > --- a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> > > +++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> > > @@ -68,3 +68,8 @@ do_compile:prepend() {
> > >  }
> > >
> > >  BBCLASSEXTEND = "native"
> > > +
> > > +# otherwise pybind11 paths from STAGING_DIR_NATIVE end in _
> tri.cpython-312-i386-linux-gnu.so
> > > +# when STAGING_DIR_NATIVE doesn't start with STAGING_DIR_HOST (e.g.
> for lib32-python3-matplotlib)
> > > +# http://errors.yoctoproject.org/Errors/Details/801217/
> > > +DEBUG_PREFIX_MAP:append = " -fmacro-prefix-map=${STAGING_DIR_NATIVE}="
> > > --
> > > 2.46.0
> > >
> >
> >
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#112124):
> https://lists.openembedded.org/g/openembedded-devel/message/112124
> Mute This Topic: https://lists.openembedded.org/mt/108229723/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
index 72c369100a..2886060a9e 100644
--- a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
+++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
@@ -68,3 +68,8 @@  do_compile:prepend() {
 }
 
 BBCLASSEXTEND = "native"
+
+# otherwise pybind11 paths from STAGING_DIR_NATIVE end in _tri.cpython-312-i386-linux-gnu.so
+# when STAGING_DIR_NATIVE doesn't start with STAGING_DIR_HOST (e.g. for lib32-python3-matplotlib)
+# http://errors.yoctoproject.org/Errors/Details/801217/
+DEBUG_PREFIX_MAP:append = " -fmacro-prefix-map=${STAGING_DIR_NATIVE}="