summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/utils.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index a537338326..cef0fdd5b8 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -138,7 +138,7 @@ def explode_deps(s):
138 #r[-1] += ' ' + ' '.join(j) 138 #r[-1] += ' ' + ' '.join(j)
139 return r 139 return r
140 140
141def explode_dep_versions(s): 141def explode_dep_versions2(s):
142 """ 142 """
143 Take an RDEPENDS style string of format: 143 Take an RDEPENDS style string of format:
144 "DEPEND1 (optional version) DEPEND2 (optional version) ..." 144 "DEPEND1 (optional version) DEPEND2 (optional version) ..."
@@ -188,9 +188,9 @@ def explode_dep_versions(s):
188 lastver += " " 188 lastver += " "
189 if i: 189 if i:
190 lastver += i 190 lastver += i
191 if lastdep in r and r[lastdep] and r[lastdep] != lastver: 191 if lastdep not in r:
192 raise ValueError("Error, item %s appeared in dependency string '%s' multiple times with different values. explode_dep_versions cannot cope with this." % (lastdep, s)) 192 r[lastdep] = []
193 r[lastdep] = lastcmp + " " + lastver 193 r[lastdep].append(lastcmp + " " + lastver)
194 continue 194 continue
195 195
196 #if not inversion: 196 #if not inversion:
@@ -198,8 +198,19 @@ def explode_dep_versions(s):
198 lastver = "" 198 lastver = ""
199 lastcmp = "" 199 lastcmp = ""
200 if not (i in r and r[i]): 200 if not (i in r and r[i]):
201 r[lastdep] = None 201 r[lastdep] = []
202
203 return r
202 204
205def explode_dep_versions(s):
206 r = explode_dep_versions2(s)
207 for d in r:
208 if not r[d]:
209 r[d] = None
210 continue
211 if len(r[d]) > 1:
212 bb.warn("explode_dep_versions(): Item %s appeared in dependency string '%s' multiple times with different values. explode_dep_versions cannot cope with this." % (d, s))
213 r[d] = r[d][0]
203 return r 214 return r
204 215
205def join_deps(deps, commasep=True): 216def join_deps(deps, commasep=True):
@@ -209,7 +220,11 @@ def join_deps(deps, commasep=True):
209 result = [] 220 result = []
210 for dep in deps: 221 for dep in deps:
211 if deps[dep]: 222 if deps[dep]:
212 result.append(dep + " (" + deps[dep] + ")") 223 if isinstance(deps[dep], list):
224 for v in deps[dep]:
225 result.append(dep + " (" + v + ")")
226 else:
227 result.append(dep + " (" + deps[dep] + ")")
213 else: 228 else:
214 result.append(dep) 229 result.append(dep)
215 if commasep: 230 if commasep: