summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-17 14:02:06 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-30 16:16:11 +0000
commitdbcce81f661b167664c5d016bbfda7eb37224680 (patch)
tree1b30a68159b17926ed34a463e3d59b7761016250 /bitbake
parent46ac8684031c28399532905cdf4efed1b4584649 (diff)
downloadpoky-dbcce81f661b167664c5d016bbfda7eb37224680.tar.gz
siggen.py: Fix diffsigs output for filename comparisions
When comparing sig files, if the recipe locations had changed, the dependent tasks list would show as changed even if the actual hash had not changed. This updates the code to only compare the base part of the pathnames. It also tweaks some of the output to add newlines to aid comparing two lists of variables as it makes the location of the difference clearer. (Bitbake rev: 165a22ddcc647b945707fb5c483146bb336d5f66) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/siggen.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 12257914cd..611772a27f 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -235,6 +235,16 @@ def compare_sigfiles(a, b):
235 removed = sb - sa 235 removed = sb - sa
236 return changed, added, removed 236 return changed, added, removed
237 237
238 def clean_basepaths(a):
239 b = {}
240 for x in a:
241 if x.startswith("virtual:"):
242 y = x.rsplit(":", 1)[0] + x.rsplit("/", 1)[1]
243 else:
244 y = x.rsplit("/", 1)[1]
245 b[y] = a[x]
246 return b
247
238 if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']: 248 if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']:
239 print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist']) 249 print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist'])
240 250
@@ -242,7 +252,7 @@ def compare_sigfiles(a, b):
242 print "taskwhitelist changed from %s to %s" % (a_data['taskwhitelist'], b_data['taskwhitelist']) 252 print "taskwhitelist changed from %s to %s" % (a_data['taskwhitelist'], b_data['taskwhitelist'])
243 253
244 if a_data['taskdeps'] != b_data['taskdeps']: 254 if a_data['taskdeps'] != b_data['taskdeps']:
245 print "Task dependencies changed from %s to %s" % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps'])) 255 print "Task dependencies changed from:\n%s\nto:\n%s" % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))
246 256
247 if a_data['basehash'] != b_data['basehash']: 257 if a_data['basehash'] != b_data['basehash']:
248 print "basehash changed from %s to %s" % (a_data['basehash'], b_data['basehash']) 258 print "basehash changed from %s to %s" % (a_data['basehash'], b_data['basehash'])
@@ -265,7 +275,9 @@ def compare_sigfiles(a, b):
265 print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]) 275 print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
266 276
267 if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data: 277 if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
268 changed, added, removed = dict_diff(a_data['runtaskhashes'], b_data['runtaskhashes']) 278 a = clean_basepaths(a_data['runtaskhashes'])
279 b = clean_basepaths(b_data['runtaskhashes'])
280 changed, added, removed = dict_diff(a, b)
269 if added: 281 if added:
270 for dep in added: 282 for dep in added:
271 print "Dependency on task %s was added" % (dep) 283 print "Dependency on task %s was added" % (dep)
@@ -274,7 +286,7 @@ def compare_sigfiles(a, b):
274 print "Dependency on task %s was removed" % (dep) 286 print "Dependency on task %s was removed" % (dep)
275 if changed: 287 if changed:
276 for dep in changed: 288 for dep in changed:
277 print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep]) 289 print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep])
278 elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']): 290 elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
279 print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps'])) 291 print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
280 292