summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r--bitbake/lib/bb/cooker.py40
1 files changed, 14 insertions, 26 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index f77c6c0532..0bbbc09c33 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1096,42 +1096,30 @@ class BBCooker:
1096 # Check dependencies and store information for priority calculation 1096 # Check dependencies and store information for priority calculation
1097 deps = self.data.getVar("LAYERDEPENDS_%s" % c, True) 1097 deps = self.data.getVar("LAYERDEPENDS_%s" % c, True)
1098 if deps: 1098 if deps:
1099 depnamelist = [] 1099 try:
1100 deplist = deps.split() 1100 deplist = bb.utils.explode_dep_versions2(deps)
1101 for dep in deplist: 1101 except bb.utils.VersionStringException as vse:
1102 depsplit = dep.split(':') 1102 bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (c, str(vse)))
1103 if len(depsplit) > 1: 1103 for dep, oplist in deplist.iteritems():
1104 try:
1105 depver = int(depsplit[1])
1106 except ValueError:
1107 parselog.error("invalid version value in LAYERDEPENDS_%s: \"%s\"", c, dep)
1108 errors = True
1109 continue
1110 else:
1111 depver = None
1112 dep = depsplit[0]
1113 depnamelist.append(dep)
1114
1115 if dep in collection_list: 1104 if dep in collection_list:
1116 if depver: 1105 for opstr in oplist:
1117 layerver = self.data.getVar("LAYERVERSION_%s" % dep, True) 1106 layerver = self.data.getVar("LAYERVERSION_%s" % dep, True)
1107 (op, depver) = opstr.split()
1118 if layerver: 1108 if layerver:
1119 try: 1109 try:
1120 lver = int(layerver) 1110 res = bb.utils.vercmp_string_op(layerver, depver, op)
1121 except ValueError: 1111 except bb.utils.VersionStringException as vse:
1122 parselog.error("invalid value for LAYERVERSION_%s: \"%s\"", c, layerver) 1112 bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (c, str(vse)))
1123 errors = True 1113 if not res:
1124 continue 1114 parselog.error("Layer '%s' depends on version %s of layer '%s', but version %s is currently enabled in your configuration. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, dep, layerver)
1125 if lver != depver:
1126 parselog.error("Layer '%s' depends on version %d of layer '%s', but version %d is enabled in your configuration", c, depver, dep, lver)
1127 errors = True 1115 errors = True
1128 else: 1116 else:
1129 parselog.error("Layer '%s' depends on version %d of layer '%s', which exists in your configuration but does not specify a version", c, depver, dep) 1117 parselog.error("Layer '%s' depends on version %s of layer '%s', which exists in your configuration but does not specify a version. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, dep)
1130 errors = True 1118 errors = True
1131 else: 1119 else:
1132 parselog.error("Layer '%s' depends on layer '%s', but this layer is not enabled in your configuration", c, dep) 1120 parselog.error("Layer '%s' depends on layer '%s', but this layer is not enabled in your configuration", c, dep)
1133 errors = True 1121 errors = True
1134 collection_depends[c] = depnamelist 1122 collection_depends[c] = deplist.keys()
1135 else: 1123 else:
1136 collection_depends[c] = [] 1124 collection_depends[c] = []
1137 1125