aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/siggen.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-02 17:10:48 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-02 17:14:35 +0100
commit046c1be7594fae2eec3d1f242ba3e9a85f1a1880 (patch)
tree87bb94f9132140af78371a72ded9722694b2f2a8 /lib/bb/siggen.py
parenta896f263300f069400eae533be0daf5dedf41c95 (diff)
downloadbitbake-046c1be7594fae2eec3d1f242ba3e9a85f1a1880.tar.gz
siggen: Fix check calculation problem with file_checksums
When I enabled debugging of the checksum code, I found the value calculated from siginfo/sigdata files for do_fetch tasks never matched. This was due to an error in the way the data was being stored for these, it wasn't ordered correctly. This patch fixes things so the checksums calculated from siginfo/sigdata files is correct when file checksums are present. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/siggen.py')
-rw-r--r--lib/bb/siggen.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py
index 114851c49..d8ba1d47a 100644
--- a/lib/bb/siggen.py
+++ b/lib/bb/siggen.py
@@ -186,8 +186,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
k = fn + "." + task
data = dataCache.basetaskhash[k]
self.runtaskdeps[k] = []
- self.file_checksum_values[k] = {}
+ self.file_checksum_values[k] = []
recipename = dataCache.pkg_fn[fn]
+
for dep in sorted(deps, key=clean_basepath):
depname = dataCache.pkg_fn[self.pkgnameextract.search(dep).group('fn')]
if not self.rundep_check(fn, recipename, task, dep, depname, dataCache):
@@ -203,7 +204,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
else:
checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename)
for (f,cs) in checksums:
- self.file_checksum_values[k][f] = cs
+ self.file_checksum_values[k].append((f,cs))
if cs:
data = data + cs
@@ -262,7 +263,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
if runtime and k in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[k]
- data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[k].items()]
+ data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[k]]
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.taskhash[dep]