Hi all, We've been upgrading our work to Dunfell and have encountered an issue with python3-native.
One of our python3-native scripts uses pydoc and that in turn eventually pulls in python's sysconfig. However, this is failing to import with the following stack trace: ``` import pydoc File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/pydoc.py", line 366, in <module> class Doc: File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/pydoc.py", line 396, in Doc def getdocloc(self, object, basedir=sysconfig.get_path('stdlib')): File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py", line 519, in get_path return get_paths(scheme, vars, expand)[name] File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py", line 509, in get_paths return _expand_vars(scheme, vars) File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py", line 172, in _expand_vars _extend_dict(vars, get_config_vars()) File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py", line 558, in get_config_vars _init_posix(_CONFIG_VARS) File "/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py", line 428, in _init_posix _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata' ``` I did a little digging and the following commit seems to reference related work: https://github.com/openembedded/openembedded-core/commit/02714c105426b0d687620913c1a7401b386428b6 I see that there is a patch added which adds the following to `sysconfig.py`: ``` if 'STAGING_LIBDIR' in os.environ: sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata') ``` However, STAGING_LIBDIR does not contain this path: ``` ls /home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot/usr/lib/python-sysconfigdata ls: cannot access '/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot/usr/lib/python-sysconfigdata': No such file or directory ``` It appears as if this should really be pointing to STAGING_LIBDIR_NATIVE which does exist: ``` ls /home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python-sysconfigdata _sysconfigdata.py ``` The referenced commit made efforts to combine the native and cross python3 bbclass files into one. However, I think this may be something that needs to be treated differently. Anyone have any thoughts on how to proceed? -Glenn
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#144484): https://lists.openembedded.org/g/openembedded-core/message/144484 Mute This Topic: https://lists.openembedded.org/mt/78197661/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-