Re: devtool modify issues with ubuntu 20 and fedora core 32


Alexander Kanavin
 

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 <geissonator@...> 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


Join yocto@lists.yoctoproject.org to automatically receive all group messages.