Advertisement
Guest User

Untitled

a guest
Jul 9th, 2015
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.23 KB | None | 0 0
  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/data_smart.py", 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 bb.data.inherits_class(\'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: https://wiki.yoctoproject.org/wiki/PR_Service." % (princ, d.getVar("FILE", True)))\n pr = d.getVar(\'PR\', True)\n pr_prefix = re.search("\\D+",pr)\n prval = re.search("\\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(prval.group(0)) + int(princ)\n pr = pr_prefix.group(0) + 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 bb.data.inherits_class(\'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 bb.data.inherits_class(\'native\', d) and not bb.data.inherits_class(\'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 rpm2cpio.sh\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/data_smart.py", 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/data_smart.py", 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/data_smart.py", 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
  19.  
  20. File "/data/mehrtens/edison-src/poky/bitbake/lib/bb/data_smart.py", 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)
  23.  
  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'
  25.  
  26. mehrtens@LantiqStudent:/data/mehrtens/edison-src/build$ ls -al
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement