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

On Tue, 2 Jun 2020 at 23:28, Andrew Geissler <[email protected]> wrote:

> 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
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#49567): https://lists.yoctoproject.org/g/yocto/message/49567
Mute This Topic: https://lists.yoctoproject.org/mt/74637733/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to