a guest Jul 9th, 2015 7 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. mehrtens@LantiqStudent:/data/mehrtens/edison-src/build$ bitbake edison-image
  2. ERROR: Error parsing configuration files
  3. Traceback (most recent call last):
  4.   File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/", line 331, in DataSmart.expandWithRefs(s='def __anon_639__data_mehrtens_edison_src_poky_meta_classes_base_bbclass(d):\n    import string, re\n\n    # Handle PACKAGECONFIG\n    #\n    # These take the form:\n    #\n    # PACKAGECONFIG ??= "<default options>"\n    # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends"\n    pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}\n    if pkgconfigflags:\n        pkgconfig = (d.getVar(\'PACKAGECONFIG\', True) or "").split()\n        pn = d.getVar("PN", True)\n        mlprefix = d.getVar("MLPREFIX", True)\n\n        def expandFilter(appends, extension, prefix):\n            appends = bb.utils.explode_deps(d.expand(" ".join(appends)))\n            newappends = []\n            for a in appends:\n                if a.endswith("-native") or a.endswith("-cross"):\n                    newappends.append(a)\n                elif a.startswith("virtual/"):\n                    subs = a.split("/", 1)[1]\n                    newappends.append("virtual/" + prefix + subs + extension)\n                else:\n                    if a.startswith(prefix):\n                        newappends.append(a + extension)\n                    else:\n                        newappends.append(prefix + a + extension)\n            return newappends\n\n        def appendVar(varname, appends):\n            if not appends:\n                return\n            if varname.find("DEPENDS") != -1:\n                if pn.startswith("nativesdk-"):\n                    appends = expandFilter(appends, "", "nativesdk-")\n                if pn.endswith("-native"):\n                    appends = expandFilter(appends, "-native", "")\n                if mlprefix:\n                    appends = expandFilter(appends, "", mlprefix)\n            varname = d.expand(varname)\n            d.appendVar(varname, " " + " ".join(appends))\n\n        extradeps = []\n        extrardeps = []\n        extraconf = []\n        for flag, flagval in sorted(pkgconfigflags.items()):\n            if flag == "defaultval":\n                continue\n            items = flagval.split(",")\n            num = len(items)\n            if num > 4:\n                bb.error("Only enable,disable,depend,rdepend can be specified!")\n\n            if flag in pkgconfig:\n                if num >= 3 and items[2]:\n                    extradeps.append(items[2])\n                if num >= 4 and items[3]:\n                    extrardeps.append(items[3])\n                if num >= 1 and items[0]:\n                    extraconf.append(items[0])\n            elif num >= 2 and items[1]:\n                    extraconf.append(items[1])\n        appendVar(\'DEPENDS\', extradeps)\n        appendVar(\'RDEPENDS_${PN}\', extrardeps)\n        if\'cmake\', d):\n            appendVar(\'EXTRA_OECMAKE\', extraconf)\n        else:\n            appendVar(\'EXTRA_OECONF\', extraconf)\n\n    # If PRINC is set, try and increase the PR value by the amount specified\n    # The PR server is now the preferred way to handle PR changes based on\n    # the checksum of the recipe (including bbappend).  The PRINC is now\n    # obsolete.  Return a warning to the user.\n    princ = d.getVar(\'PRINC\', True)\n    if princ and princ != "0":\n        bb.warn("Use of PRINC %s was detected in the recipe %s (or one of its .bbappends)\\nUse of PRINC is deprecated.  The PR server should be used to automatically increment the PR.  See:" % (princ, d.getVar("FILE", True)))\n        pr = d.getVar(\'PR\', True)\n        pr_prefix ="\\D+",pr)\n        prval ="\\d+",pr)\n        if pr_prefix is None or prval is None:\n            bb.error("Unable to analyse format of PR variable: %s" % pr)\n        nval = int( + int(princ)\n        pr = + str(nval) + pr[prval.end():]\n        d.setVar(\'PR\', pr)\n\n    pn = d.getVar(\'PN\', True)\n    license = d.getVar(\'LICENSE\', True)\n    if license == "INVALID":\n        bb.fatal(\'This recipe does not have the LICENSE field set (%s)\' % pn)\n\n    if\'license\', d):\n        unmatched_license_flag = check_license_flags(d)\n        if unmatched_license_flag:\n            bb.debug(1, "Skipping %s because it has a restricted license not"\n                 " whitelisted in LICENSE_FLAGS_WHITELIST" % pn)\n            raise bb.parse.SkipPackage("because it has a restricted license not"\n                 " whitelisted in LICENSE_FLAGS_WHITELIST")\n\n    # If we\'re building a target package we need to use fakeroot (pseudo)\n    # in order to capture permissions, owners, groups and special files\n    if not\'native\', d) and not\'cross\', d):\n        d.setVarFlag(\'do_unpack\', \'umask\', \'022\')\n        d.setVarFlag(\'do_configure\', \'umask\', \'022\')\n        d.setVarFlag(\'do_compile\', \'umask\', \'022\')\n        d.appendVarFlag(\'do_install\', \'depends\', \' virtual/fakeroot-native:do_populate_sysroot\')\n        d.setVarFlag(\'do_install\', \'fakeroot\', 1)\n        d.setVarFlag(\'do_install\', \'umask\', \'022\')\n        d.appendVarFlag(\'do_package\', \'depends\', \' virtual/fakeroot-native:do_populate_sysroot\')\n        d.setVarFlag(\'do_package\', \'fakeroot\', 1)\n        d.setVarFlag(\'do_package\', \'umask\', \'022\')\n        d.setVarFlag(\'do_package_setscene\', \'fakeroot\', 1)\n        d.appendVarFlag(\'do_package_setscene\', \'depends\', \' virtual/fakeroot-native:do_populate_sysroot\')\n        d.setVarFlag(\'do_devshell\', \'fakeroot\', 1)\n        d.appendVarFlag(\'do_devshell\', \'depends\', \' virtual/fakeroot-native:do_populate_sysroot\')\n    source_mirror_fetch = d.getVar(\'SOURCE_MIRROR_FETCH\', 0)\n    if not source_mirror_fetch:\n        need_host = d.getVar(\'COMPATIBLE_HOST\', True)\n        if need_host:\n            import re\n            this_host = d.getVar(\'HOST_SYS\', True)\n            if not re.match(need_host, this_host):\n                raise bb.parse.SkipPackage("incompatible with host %s (not in COMPATIBLE_HOST)" % this_host)\n\n        need_machine = d.getVar(\'COMPATIBLE_MACHINE\', True)\n        if need_machine:\n            import re\n            compat_machines = (d.getVar(\'MACHINEOVERRIDES\', True) or "").split(":")\n            for m in compat_machines:\n                if re.match(need_machine, m):\n                    break\n            else:\n                raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar(\'MACHINE\', True))\n\n\n        bad_licenses = (d.getVar(\'INCOMPATIBLE_LICENSE\', True) or "").split()\n\n        check_license = False if pn.startswith("nativesdk-") else True\n        for t in ["-native", "-cross", "-cross-initial", "-cross-intermediate",\n              "-crosssdk-intermediate", "-crosssdk", "-crosssdk-initial",\n              "-cross-canadian-" + d.getVar(\'TRANSLATED_TARGET_ARCH\', True)]:\n            if pn.endswith(t):\n                check_license = False\n\n        if check_license and bad_licenses:\n            whitelist = []\n            for lic in bad_licenses:\n                for w in ["HOSTTOOLS_WHITELIST_", "LGPLv2_WHITELIST_", "WHITELIST_"]:\n                    whitelist.extend((d.getVar(w + lic, True) or "").split())\n                spdx_license = return_spdx(d, lic)\n                if spdx_license:\n                    whitelist.extend((d.getVar(\'HOSTTOOLS_WHITELIST_%s\' % spdx_license, True) or "").split())\n            if not pn in whitelist:\n                recipe_license = d.getVar(\'LICENSE\', True)\n                pkgs = d.getVar(\'PACKAGES\', True).split()\n                skipped_pkgs = []\n                unskipped_pkgs = []\n                for pkg in pkgs:\n                    if incompatible_license(d, bad_licenses, pkg):\n                        skipped_pkgs.append(pkg)\n                    else:\n                        unskipped_pkgs.append(pkg)\n                all_skipped = skipped_pkgs and not unskipped_pkgs\n                if unskipped_pkgs:\n                    for pkg in skipped_pkgs:\n                        bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it\'s " + recipe_license)\n                        d.setVar(\'LICENSE_EXCLUSION-\' + pkg, 1)\n                    for pkg in unskipped_pkgs:\n                        bb.debug(1, "INCLUDING the package " + pkg)\n                elif all_skipped or incompatible_license(d, bad_licenses):\n                    bb.debug(1, "SKIPPING recipe %s because it\'s %s" % (pn, recipe_license))\n                    raise bb.parse.SkipPackage("incompatible with license %s" % recipe_license)\n\n    srcuri = d.getVar(\'SRC_URI\', True)\n    # Svn packages should DEPEND on subversion-native\n    if "svn://" in srcuri:\n        d.appendVarFlag(\'do_fetch\', \'depends\', \' subversion-native:do_populate_sysroot\')\n\n    # Git packages should DEPEND on git-native\n    if "git://" in srcuri:\n        d.appendVarFlag(\'do_fetch\', \'depends\', \' git-native:do_populate_sysroot\')\n\n    # Mercurial packages should DEPEND on mercurial-native\n    elif "hg://" in srcuri:\n        d.appendVarFlag(\'do_fetch\', \'depends\', \' mercurial-native:do_populate_sysroot\')\n\n    # OSC packages should DEPEND on osc-native\n    elif "osc://" in srcuri:\n        d.appendVarFlag(\'do_fetch\', \'depends\', \' osc-native:do_populate_sysroot\')\n\n    # *.lz4 should depends on lz4-native for unpacking\n    # Not endswith because of "*.patch.lz4;patch=1". Need bb.fetch.decodeurl in future\n    if \'.lz4\' in srcuri:\n        d.appendVarFlag(\'do_unpack\', \'depends\', \' lz4-native:do_populate_sysroot\')\n\n    # *.xz should depends on xz-native for unpacking\n    # Not endswith because of "*.patch.xz;patch=1". Need bb.fetch.decodeurl in future\n    if \'.xz\' in srcuri:\n        d.appendVarFlag(\'do_unpack\', \'depends\', \' xz-native:do_populate_sysroot\')\n\n    # unzip-native should already be staged before unpacking ZIP recipes\n    if ".zip" in srcuri:\n        d.appendVarFlag(\'do_unpack\', \'depends\', \' unzip-native:do_populate_sysroot\')\n\n    # file is needed by\n    if ".src.rpm" in srcuri:\n        d.appendVarFlag(\'do_unpack\', \'depends\', \' file-native:do_populate_sysroot\')\n\n    set_packagetriplet(d)\n\n    # \'multimachine\' handling\n    mach_arch = d.getVar(\'MACHINE_ARCH\', True)\n    pkg_arch = d.getVar(\'PACKAGE_ARCH\', True)\n\n    if (pkg_arch == mach_arch):\n        # Already machine specific - nothing further to do\n        return\n\n    #\n    # We always try to scan SRC_URI for urls with machine overrides\n    # unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0\n    #\n    override = d.getVar(\'SRC_URI_OVERRIDES_PACKAGE_ARCH\', True)\n    if override != \'0\':\n        paths = []\n        fpaths = (d.getVar(\'FILESPATH\', True) or \'\').split(\':\')\n        machine = d.getVar(\'MACHINE\', True)\n        for p in fpaths:\n            if os.path.basename(p) == machine and os.path.isdir(p):\n                paths.append(p)\n\n        if len(paths) != 0:\n            for s in srcuri.split():\n                if not s.startswith("file://"):\n                    continue\n                fetcher = bb.fetch2.Fetch([s], d)\n                local = fetcher.localpath(s)\n                for mp in paths:\n                    if local.startswith(mp):\n                        #bb.note("overriding PACKAGE_ARCH from %s to %s for %s" % (pkg_arch, mach_arch, pn))\n                        d.setVar(\'PACKAGE_ARCH\', "${MACHINE_ARCH}")\n                        return\n\n    packages = d.getVar(\'PACKAGES\', True).split()\n    for pkg in packages:\n        pkgarch = d.getVar("PACKAGE_ARCH_%s" % pkg, True)\n\n        # We could look for != PACKAGE_ARCH here but how to choose\n        # if multiple differences are present?\n        # Look through PACKAGE_ARCHS for the priority order?\n        if pkgarch and pkgarch == mach_arch:\n            d.setVar(\'PACKAGE_ARCH\', "${MACHINE_ARCH}")\n            bb.warn("Recipe %s is marked as only being architecture specific but seems to have machine specific packages?! The recipe may as well mark itself as machine specific directly." % d.getVar("PN", True))\n', varname='__anon_639__data_mehrtens_edison_src_poky_meta_classes_base_bbclass'):
  5.                  try:
  6.     >                s = __expand_var_regexp__.sub(varparse.var_sub, s)
  7.                      s = __expand_python_regexp__.sub(varparse.python_sub, s)
  8.   File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/", line 102, in VariableParse.var_sub(match=<_sre.SRE_Match object at 0xb68d4250>):
  9.                  else:
  10.     >                var = self.d.getVarFlag(key, "_content", True)
  11.                  self.references.add(key)
  12.   File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/", line 612, in DataSmart.getVarFlag(var='MACHINE_ARCH', flag='_content', expand=True, noweakdefault=False):
  13.                      cachename = var + "[" + flag + "]"
  14.     >            value = self.expand(value, cachename)
  15.              if value and flag == "_content" and local_var is not None and "_removeactive" in local_var:
  16.   File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/", line 350, in DataSmart.expand(s="${@[d.getVar('TUNE_PKGARCH', True), d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')}", varname='MACHINE_ARCH'):
  17.          def expand(self, s, varname = None):
  18.     >        return self.expandWithRefs(s, varname).value
  20.   File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/", line 340, in DataSmart.expandWithRefs(s="${@[d.getVar('TUNE_PKGARCH', True), d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')}", varname='MACHINE_ARCH'):
  21.                  except Exception as exc:
  22.     >                raise ExpansionError(varname, s, exc)
  24. ExpansionError: Failure expanding variable MACHINE_ARCH, expression was ${@[d.getVar('TUNE_PKGARCH', True), d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')} which triggered exception AttributeError: 'NoneType' object has no attribute 'replace'
  26. mehrtens@LantiqStudent:/data/mehrtens/edison-src/build$ ls -al
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!