On Wed, 2023-05-31 at 15:08 -0400, Trevor Gamblin wrote: > In some cases, empty versioned directories are being left behind in > sysroots from previous versions of packages. This appears to be found > with recipes relying on hatchling, and causes errors at the do_compile > step: > > > File > > "/workspace/yocto/manual/openembedded-core/build/tmp-glibc/work/core2-64-oe-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/packaging/version.py", > > line 197, in __init__ > > match = self._regex.search(version) > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > TypeError: expected string or bytes-like object, got 'NoneType' > > To fix this error, add a do_prepare_recipe_sysroot postfunc in the > python_hatchling class that removes any nested empty directories from > the sysroots during build, so that dependent recipes don't get caught > on them. > > Signed-off-by: Trevor Gamblin <[email protected]> > --- > meta/classes-recipe/python_hatchling.bbclass | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/meta/classes-recipe/python_hatchling.bbclass > b/meta/classes-recipe/python_hatchling.bbclass > index b9e6582eb5..a20e243161 100644 > --- a/meta/classes-recipe/python_hatchling.bbclass > +++ b/meta/classes-recipe/python_hatchling.bbclass > @@ -7,3 +7,12 @@ > inherit python_pep517 python3native python3-dir setuptools3-base > > DEPENDS += "python3-hatchling-native" > + > +# delete nested, empty directories from the python site-packages path. We > don't use > +# ${PYTHON_SITEPACKAGES_DIR} in the path specification so that > python3-hatchling > +# still builds OK > +hatchling_rm_emptydirs () { > + find ${RECIPE_SYSROOT_NATIVE}/usr/lib/${PYTHON_DIR}/site-packages/* > -depth -type d -empty -delete > +} > + > +do_prepare_recipe_sysroot[postfuncs] += " hatchling_rm_emptydirs"
Looking at the patch, this is the right direction I'm not 100% convinced the details are quite right. Should we be clearing from RECIPE_SYSROOT or RECIPE_SYSROOT_NATIVE? Also, can we avoid hardcoding /usr/lib? That probably won't work for multilibs or some other combinations of settings some use. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#182036): https://lists.openembedded.org/g/openembedded-core/message/182036 Mute This Topic: https://lists.openembedded.org/mt/99249321/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
