diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 2d28ecfc2d..a101ce8bb3 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py @@ -255,13 +255,20 @@ def compare_sigfiles(a, b): if changed: for dep in changed: print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]) - if 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']): - print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps'])) - if 'runtaskhashes' in a_data: - for dep in a_data['runtaskhashes']: - if a_data['runtaskhashes'][dep] != b_data['runtaskhashes'][dep]: + if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data: + changed, added, removed = dict_diff(a_data['runtaskhashes'], b_data['runtaskhashes']) + if added: + for dep in added: + print "Dependency on task %s was added" % (dep) + if removed: + for dep in removed: + print "Dependency on task %s was removed" % (dep) + if changed: + for dep in changed: print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep]) + elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']): + print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps'])) def dump_sigfile(a): p1 = pickle.Unpickler(file(a, "rb"))