bitbake: utils.py: Check for duplicate dependency entries

explode_dep_versions is not able to have duplicate entries.  Previously
duplicate entries ended up with the last item being the one returned to
the caller.

We now detect a collision.  We do allow an empty item to have a comparison
added to it, or a duplicate with the same comparison without error.

When a collision is detected a ValueError exception is thrown.

Allowed:
   foo foo (= 1.12) foo

Invalid:
   foo (= 1.12) foo (= 1.13)

(Bitbake rev: d40448f0483a2959e9dcaac9b6dd35839f396a6e)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle 2012-09-30 00:01:44 +00:00 committed by Richard Purdie
parent 5fdbda6922
commit e7ba10c1de
1 changed files with 4 additions and 1 deletions

View File

@ -157,9 +157,12 @@ def explode_dep_versions(s):
elif inversion and i.endswith(')'):
inversion = False
lastver = lastver + " " + (i[:-1] or "")
if lastdep in r and r[lastdep] and r[lastdep] != lastver:
raise ValueError("Error, item %s appeared in dependency string '%s' multiple times with different values. explode_dep_versions cannot cope with this." % (lastdep, s))
r[lastdep] = lastver
elif not inversion:
r[i] = None
if not (i in r and r[i]):
r[i] = None
lastdep = i
lastver = ""
elif inversion: