Hi Trevor,

I thought this issue might be something you might be able to spot the
solution with quickly.

I had a failing python3-iniconfig build in a TMPDIR I've reused
heavily:

ERROR: python3-iniconfig-2.0.0-r0 do_compile: 
ExecutionError('/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/temp/run.do_compile.2391637',
 1, None, None)
ERROR: Logfile of failure stored in: 
/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/temp/log.do_compile.2391637
Log data follows:
| DEBUG: Executing shell function do_compile
| * Getting build dependencies for wheel...
| 
| Traceback (most recent call last):
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 375, in main
|     built = build_call(
|             ^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 208, in build_package
|     out = _build(isolation, builder, outdir, distribution, config_settings, 
skip_dependency_check)
|           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 147, in _build
|     return _build_in_current_env(builder, outdir, distribution, 
config_settings, skip_dependency_check)
|            
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 127, in _build_in_current_env
|     missing = builder.check_dependencies(distribution)
|               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 369, in check_dependencies
|     return {u for d in dependencies for u in check_dependency(d)}
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 369, in <setcomp>
|     return {u for d in dependencies for u in check_dependency(d)}
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 185, in check_dependency
|     yield from check_dependency(other_req_string, ancestral_req_strings + 
(normalised_req_string,), req.extras)
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 179, in check_dependency
|     if req.specifier and not req.specifier.contains(dist.version, 
prereleases=True):
|                              
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/packaging/specifiers.py",
 line 905, in contains
|     item = Version(item)
|            ^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/packaging/version.py",
 line 196, in __init__
|     match = self._regex.search(version)
|             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
| TypeError: expected string or bytes-like object, got 'NoneType'
| 
| ERROR expected string or bytes-like object, got 'NoneType'
| WARNING: exit code 1 from a shell command.
ERROR: Task 
(/media/build/poky/meta/recipes-devtools/python/python3-iniconfig_2.0.0.bb:do_compile)
 failed with exit code '1'

I wondered why and I isolated it down to this:

richard@jet:/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages$
 find -type d -empty
./hatchling-1.13.0.dist-info/licenses
./pathspec-0.11.0.dist-info
./importlib_metadata-6.0.0.dist-info
./setuptools-67.4.0.dist-info
./wheel-0.38.4.dist-info
./installer-0.6.0.dist-info
./setuptools-67.6.0.dist-info
./packaging-23.0.dist-info
richard@jet:/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages$
 find -type d -empty -delete

After which the compile succeeds. These empty dist-info directories
really upset the build. They're left behind by the sstate cleanup code
from when I have older versions of these python modules in play since
the sstate code can race over directory removal. Is there a way to make
python ignore them? Otherwise should we remove them somewhere?

I suspect you can recreate by adding these empty directories and
running a -c compile -f. I've seen it with plenty of other python
modules too.

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182010): 
https://lists.openembedded.org/g/openembedded-core/message/182010
Mute This Topic: https://lists.openembedded.org/mt/99241972/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to