From f80ba20e90f3746f7faee3e0ff7f249025fec8ee Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 2 Apr 2016 23:15:06 +0100 Subject: [PATCH] siggen: Fix nostamp taint handling The taint values need to be passed from the server to the workers to ensure they see the same stamp values. Also ensure that the "nostamp:" prefix isn't included in the checksum value to match the server calculation. This ensures the checksums are all consistent. Signed-off-by: Richard Purdie --- lib/bb/siggen.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py index 2f0fb71c785..1fa7b09272c 100644 --- a/lib/bb/siggen.py +++ b/lib/bb/siggen.py @@ -38,6 +38,7 @@ class SignatureGenerator(object): self.taskhash = {} self.runtaskdeps = {} self.file_checksum_values = {} + self.taints = {} def finalise(self, fn, d, varient): return @@ -65,10 +66,10 @@ class SignatureGenerator(object): return def get_taskdata(self): - return (self.runtaskdeps, self.taskhash, self.file_checksum_values) + return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints) def set_taskdata(self, data): - self.runtaskdeps, self.taskhash, self.file_checksum_values = data + self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints = data class SignatureGeneratorBasic(SignatureGenerator): @@ -543,7 +544,10 @@ def calc_taskhash(sigdata): data = data + c[1] if 'taint' in sigdata: - data = data + sigdata['taint'] + if 'nostamp:' in sigdata['taint']: + data = data + sigdata['taint'][8:] + else: + data = data + sigdata['taint'] return hashlib.md5(data).hexdigest() -- 2.47.3