I'm not sure if this is distro specific. _PYTHON_SYSCONFIGDATA_NAME is set from python3native.bbclass so that native python can pick up target configuration, and if the target configuration is not there (it comes with target python3 build), then there will be a failure like the above. How does your recipe look like? Do you get the same failure if you try devtool modify in a plain yocto environment (not the SDK)?
Alex
toggle quoted messageShow quoted text
I see meta-poky/conf/distro/poky.conf lists both Ubuntu 20 and FC32 as supported but a couple of us have seen issues with running devtool modify using these distros.
Anyone else seeing this or know of the issue?
Seems like something with _PYTHON_SYSCONFIGDATA_NAME and sysconfig.py.
A quick hack was to modify sysconfig.py _get_sysconfigdata_name() function and change _PYTHON_SYSCONFIGDATA_NAME to _PYTHON_SYSCONFIGDATA_NAME_INVALID so the python function will use the alternative _sysconfigdata_{abi}_{platform}_{multiarch}'.format
We see this building OpenBMC code using upstream master open-embedded.
Here's the full error:
devtool modify phosphor-state-manager NOTE: Starting bitbake server... NOTE: Reconnecting to bitbake server... NOTE: Retrying server connection (#1)... NOTE: Reconnecting to bitbake server... NOTE: Previous bitbake instance shutting down?, waiting to retry... NOTE: Retrying server connection (#2)... Loading cache: 100% |##############################################################################################################| Time: 0:00:00 Loaded 3614 entries from dependency cache. Parsing recipes: 100% |############################################################################################################| Time: 0:00:00 Parsing of 2406 .bb files complete (2404 cached, 2 parsed). 3615 targets, 362 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies
Build Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "ubuntu-20.04" TARGET_SYS = "arm-openbmc-linux-gnueabi" MACHINE = "witherspoon" DISTRO = "openbmc-witherspoon" DISTRO_VERSION = "0.1.0" TUNE_FEATURES = "arm thumb arm1176jzs" TARGET_FPU = "soft" meta meta-oe meta-networking meta-perl meta-python meta-phosphor meta-aspeed meta-openpower meta-ibm workspace = "master:1ba73b9e60779e905f483b419fc2a801e0d17873"
Initialising tasks: 100% |#########################################################################################################| Time: 0:00:00 Sstate summary: Wanted 0 Found 0 Missed 0 Current 10 (0% match, 100% complete) NOTE: Executing Tasks ERROR: Error executing a python function in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:devtool_post_unpack(d) 0003: File: '/home/andrewg/Code/openbmc/meta/classes/devtool-source.bbclass', lineno: 68, function: devtool_post_unpack 0064:} 0065: 0066: 0067:python devtool_post_unpack() { *** 0068: import oe.recipeutils 0069: import shutil 0070: sys.path.insert(0, os.path.join(d.getVar('COREBASE'), 'scripts', 'lib')) 0071: import scriptutils 0072: from devtool import setup_git_repo File: '/home/andrewg/Code/openbmc/meta/lib/oe/recipeutils.py', lineno: 21, function: <module> 0017:import shutil 0018:import re 0019:import fnmatch 0020:import glob *** 0021:import bb.tinfoil 0022: 0023:from collections import OrderedDict, defaultdict 0024:from bb.utils import vercmp_string 0025: File: '/home/andrewg/Code/openbmc/poky/bitbake/lib/bb/tinfoil.py', lineno: 19, function: <module> 0015:from collections import OrderedDict, defaultdict 0016:from functools import partial 0017: 0018:import bb.cache *** 0019:import bb.cooker 0020:import bb.providers 0021:import bb.taskdata 0022:import bb.utils 0023:import bb.command File: '/home/andrewg/Code/openbmc/poky/bitbake/lib/bb/cooker.py', lineno: 25, function: <module> 0021:import bb, bb.exceptions, bb.command 0022:from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build 0023:import queue 0024:import signal *** 0025:import prserv.serv 0026:import pyinotify 0027:import json 0028:import pickle 0029:import codecs File: '/home/andrewg/Code/openbmc/poky/bitbake/lib/prserv/serv.py', lineno: 7, function: <module> 0003:# 0004: 0005:import os,sys,logging 0006:import signal, time *** 0007:from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler 0008:import threading 0009:import queue 0010:import socket 0011:import io File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/xmlrpc/server.py', lineno: 117, function: <module> 0113:import socketserver 0114:import sys 0115:import os 0116:import re *** 0117:import pydoc 0118:import traceback 0119:try: 0120: import fcntl 0121:except ImportError: File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/pydoc.py', lineno: 366, function: <module> 0362: return module 0363: 0364:# ---------------------------------------------------- formatter base class 0365: *** 0366:class Doc: 0367: 0368: PYTHONDOCS = os.environ.get("PYTHONDOCS", 0369: "https://docs.python.org/%d.%d/library" 0370: % sys.version_info[:2]) File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/pydoc.py', lineno: 396, function: Doc 0392: raise TypeError(message) 0393: 0394: docmodule = docclass = docroutine = docother = docproperty = docdata = fail 0395: *** 0396: def getdocloc(self, object, basedir=sysconfig.get_path('stdlib')): 0397: """Return the location of module docs or None""" 0398: 0399: try: 0400: file = inspect.getabsfile(object) File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/sysconfig.py', lineno: 514, function: get_path 0510: """Return a path corresponding to the scheme. 0511: 0512: ``scheme`` is the install scheme name. 0513: """ *** 0514: return get_paths(scheme, vars, expand)[name] 0515: 0516: 0517:def get_config_vars(*args): 0518: """With no arguments, return a dictionary of all configuration File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/sysconfig.py', lineno: 504, function: get_paths 0500: ``scheme`` is the install scheme name. If not provided, it will 0501: return the default scheme for the current platform. 0502: """ 0503: if expand: *** 0504: return _expand_vars(scheme, vars) 0505: else: 0506: return _INSTALL_SCHEMES[scheme] 0507: 0508: File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/sysconfig.py', lineno: 172, function: _expand_vars 0168:def _expand_vars(scheme, vars): 0169: res = {} 0170: if vars is None: 0171: vars = {} *** 0172: _extend_dict(vars, get_config_vars()) 0173: 0174: for key, value in _INSTALL_SCHEMES[scheme].items(): 0175: if os.name in ('posix', 'nt'): 0176: value = os.path.expanduser(value) File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/sysconfig.py', lineno: 552, function: get_config_vars 0548: 0549: if os.name == 'nt': 0550: _init_non_posix(_CONFIG_VARS) 0551: if os.name == 'posix': *** 0552: _init_posix(_CONFIG_VARS) 0553: # For backward compatibility, see issue19555 0554: SO = _CONFIG_VARS.get('EXT_SUFFIX') 0555: if SO is not None: 0556: _CONFIG_VARS['SO'] = SO File: '/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/python3.8/sysconfig.py', lineno: 423, function: _init_posix 0419:def _init_posix(vars): 0420: """Initialize the module as appropriate for POSIX systems.""" 0421: # _sysconfigdata is generated at build time, see _generate_posix_vars() 0422: name = _get_sysconfigdata_name() *** 0423: _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) 0424: build_time_vars = _temp.build_time_vars 0425: vars.update(build_time_vars) 0426: 0427:def _init_non_posix(vars): Exception: ModuleNotFoundError: No module named '_sysconfigdata'
ERROR: Logfile of failure stored in: /home/andrewg/Code/openbmc/build/tmp/work/arm1176jzs-openbmc-linux-gnueabi/phosphor-state-manager/1.0+gitAUTOINC+42f2898d18-r1/devtooltmp-5k9pa8p_/temp/log.do_unpack.3596808
|