summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2012-10-03 13:37:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-03 17:18:29 +0100
commit3b664d0cfc413c3b4968e328c4111b8fb61ad880 (patch)
treec484e1c6559d8fca15fa8eabb9b20a2ec4a56058 /meta/lib
parentef5dcad3e3e3c004112cfc00843727a7fda75cd2 (diff)
downloadpoky-3b664d0cfc413c3b4968e328c4111b8fb61ad880.tar.gz
buildhistory_analysis: update to use explode_dep_versions2()
Handle where multiple version specifications are present for the same dependency. (From OE-Core rev: 1600c916ae410c57a783a5aa35abe07a3f673311) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/buildhistory_analysis.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/meta/lib/oe/buildhistory_analysis.py b/meta/lib/oe/buildhistory_analysis.py
index a5a607e30b..ad57f00289 100644
--- a/meta/lib/oe/buildhistory_analysis.py
+++ b/meta/lib/oe/buildhistory_analysis.py
@@ -262,8 +262,8 @@ def compare_lists(alines, blines):
262 262
263 263
264def compare_pkg_lists(astr, bstr): 264def compare_pkg_lists(astr, bstr):
265 depvera = bb.utils.explode_dep_versions(astr) 265 depvera = bb.utils.explode_dep_versions2(astr)
266 depverb = bb.utils.explode_dep_versions(bstr) 266 depverb = bb.utils.explode_dep_versions2(bstr)
267 267
268 # Strip out changes where the version has increased 268 # Strip out changes where the version has increased
269 remove = [] 269 remove = []
@@ -271,8 +271,23 @@ def compare_pkg_lists(astr, bstr):
271 if k in depverb: 271 if k in depverb:
272 dva = depvera[k] 272 dva = depvera[k]
273 dvb = depverb[k] 273 dvb = depverb[k]
274 if dva and dvb and dva != dvb: 274 if dva and dvb and len(dva) == len(dvb):
275 if bb.utils.vercmp(bb.utils.split_version(dva), bb.utils.split_version(dvb)) < 0: 275 # Since length is the same, sort so that prefixes (e.g. >=) will line up
276 dva.sort()
277 dvb.sort()
278 removeit = True
279 for dvai, dvbi in zip(dva, dvb):
280 if dvai != dvbi:
281 aiprefix = dvai.split(' ')[0]
282 biprefix = dvbi.split(' ')[0]
283 if aiprefix == biprefix and aiprefix in ['>=', '=']:
284 if bb.utils.vercmp(bb.utils.split_version(dvai), bb.utils.split_version(dvbi)) > 0:
285 removeit = False
286 break
287 else:
288 removeit = False
289 break
290 if removeit:
276 remove.append(k) 291 remove.append(k)
277 292
278 for k in remove: 293 for k in remove: