From e7ba10c1de29277113ad47e9c3686823aa43e845 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Sun, 30 Sep 2012 00:01:44 +0000 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 82dab6b542..d032ab299e 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -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: -- cgit v1.2.3-54-g00ecf