mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
bitbake: bitbake-diffsigs: make finding of changed signatures more robust
In `runtaskhashes`, the keys contain the absolute paths to the recipe. When working with shared sstate caches (where these absolute paths can be different) we see that compare_sigfiles does not identifiy a changed hash of a dependent task as "changed", but instead as "removed"&"added", preventing the function from recursing and continuing the comparison. By calling `clean_basepaths` before comparing the `runtaskhashes` dicts, we avoid this. (Bitbake rev: 7358378b90b68111779e6ae72948e5e7a3de00a9) Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
73fa855f6a
commit
33b929192e
|
@ -991,8 +991,8 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
|
||||||
|
|
||||||
|
|
||||||
if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
|
if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
|
||||||
a = a_data['runtaskhashes']
|
a = clean_basepaths(a_data['runtaskhashes'])
|
||||||
b = b_data['runtaskhashes']
|
b = clean_basepaths(b_data['runtaskhashes'])
|
||||||
changed, added, removed = dict_diff(a, b)
|
changed, added, removed = dict_diff(a, b)
|
||||||
if added:
|
if added:
|
||||||
for dep in sorted(added):
|
for dep in sorted(added):
|
||||||
|
@ -1003,7 +1003,7 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
|
||||||
#output.append("Dependency on task %s was replaced by %s with same hash" % (dep, bdep))
|
#output.append("Dependency on task %s was replaced by %s with same hash" % (dep, bdep))
|
||||||
bdep_found = True
|
bdep_found = True
|
||||||
if not bdep_found:
|
if not bdep_found:
|
||||||
output.append(color_format("{color_title}Dependency on task %s was added{color_default} with hash %s") % (clean_basepath(dep), b[dep]))
|
output.append(color_format("{color_title}Dependency on task %s was added{color_default} with hash %s") % (dep, b[dep]))
|
||||||
if removed:
|
if removed:
|
||||||
for dep in sorted(removed):
|
for dep in sorted(removed):
|
||||||
adep_found = False
|
adep_found = False
|
||||||
|
@ -1013,11 +1013,11 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
|
||||||
#output.append("Dependency on task %s was replaced by %s with same hash" % (adep, dep))
|
#output.append("Dependency on task %s was replaced by %s with same hash" % (adep, dep))
|
||||||
adep_found = True
|
adep_found = True
|
||||||
if not adep_found:
|
if not adep_found:
|
||||||
output.append(color_format("{color_title}Dependency on task %s was removed{color_default} with hash %s") % (clean_basepath(dep), a[dep]))
|
output.append(color_format("{color_title}Dependency on task %s was removed{color_default} with hash %s") % (dep, a[dep]))
|
||||||
if changed:
|
if changed:
|
||||||
for dep in sorted(changed):
|
for dep in sorted(changed):
|
||||||
if not collapsed:
|
if not collapsed:
|
||||||
output.append(color_format("{color_title}Hash for task dependency %s changed{color_default} from %s to %s") % (clean_basepath(dep), a[dep], b[dep]))
|
output.append(color_format("{color_title}Hash for task dependency %s changed{color_default} from %s to %s") % (dep, a[dep], b[dep]))
|
||||||
if callable(recursecb):
|
if callable(recursecb):
|
||||||
recout = recursecb(dep, a[dep], b[dep])
|
recout = recursecb(dep, a[dep], b[dep])
|
||||||
if recout:
|
if recout:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user