summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rwxr-xr-xbitbake/bin/bitbake-diffsigs4
-rw-r--r--bitbake/lib/bb/siggen.py12
2 files changed, 14 insertions, 2 deletions
diff --git a/bitbake/bin/bitbake-diffsigs b/bitbake/bin/bitbake-diffsigs
index 5400e5b92b..4ca085f073 100755
--- a/bitbake/bin/bitbake-diffsigs
+++ b/bitbake/bin/bitbake-diffsigs
@@ -67,7 +67,9 @@ def find_compare_task(bbhandler, pn, taskname):
67 recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2)) 67 recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
68 else: 68 else:
69 out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb) 69 out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb)
70 recout.extend(list(' ' + l for l in out2)) 70 for change in out2:
71 for line in change.splitlines():
72 recout.append(' ' + line)
71 73
72 return recout 74 return recout
73 75
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index f47af6ded8..f497fb9caf 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -5,6 +5,7 @@ import re
5import tempfile 5import tempfile
6import pickle 6import pickle
7import bb.data 7import bb.data
8import difflib
8from bb.checksum import FileChecksumCache 9from bb.checksum import FileChecksumCache
9 10
10logger = logging.getLogger('BitBake.SigGen') 11logger = logging.getLogger('BitBake.SigGen')
@@ -462,7 +463,16 @@ def compare_sigfiles(a, b, recursecb = None):
462 changed, added, removed = dict_diff(a_data['varvals'], b_data['varvals']) 463 changed, added, removed = dict_diff(a_data['varvals'], b_data['varvals'])
463 if changed: 464 if changed:
464 for dep in changed: 465 for dep in changed:
465 output.append("Variable %s value changed from '%s' to '%s'" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])) 466 oldval = a_data['varvals'][dep]
467 newval = b_data['varvals'][dep]
468 if newval and oldval and ('\n' in oldval or '\n' in newval):
469 diff = difflib.unified_diff(oldval.splitlines(), newval.splitlines(), lineterm='')
470 # Cut off the first two lines, since we aren't interested in
471 # the old/new filename (they are blank anyway in this case)
472 difflines = list(diff)[2:]
473 output.append("Variable %s value changed:\n%s" % (dep, '\n'.join(difflines)))
474 else:
475 output.append("Variable %s value changed from '%s' to '%s'" % (dep, oldval, newval))
466 476
467 if not 'file_checksum_values' in a_data: 477 if not 'file_checksum_values' in a_data:
468 a_data['file_checksum_values'] = {} 478 a_data['file_checksum_values'] = {}