diff options
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 40 |
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 | ||