From 6c398cb3aad33f5ec56234c137dc268a327b5291 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 2 Nov 2016 15:07:33 +0000 Subject: bitbake: siggen: Ensure taskhash mismatches don't override existing data We recalculate the taskhash to ensure the version we have matches what we think it should be. When we write out a sigdata file, use the calculated value so that we don't overwrite any existing file. This leaves any original taskhash sigdata file intact to allow a debugging comparison. (Bitbake rev: dac68af6f4add9c99cb7adcf23b2ae89b96ca075) Signed-off-by: Richard Purdie Minor fixup Signed-off-by: Armin Kuster Signed-off-by: Sona Sarmadi --- bitbake/lib/bb/siggen.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 7d72f0c3ba..6a903b2fa5 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py @@ -287,6 +287,15 @@ class SignatureGeneratorBasic(SignatureGenerator): if 'nostamp:' in self.taints[k]: data['taint'] = self.taints[k] + computed_basehash = calc_basehash(data) + if computed_basehash != self.basehash[k]: + bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[k], k)) + if runtime and k in self.taskhash: + computed_taskhash = calc_taskhash(data) + if computed_taskhash != self.taskhash[k]: + bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[k], k)) + sigfile = sigfile.replace(self.taskhash[k], computed_taskhash) + fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.") try: with os.fdopen(fd, "wb") as stream: @@ -301,15 +310,6 @@ class SignatureGeneratorBasic(SignatureGenerator): pass raise err - computed_basehash = calc_basehash(data) - if computed_basehash != self.basehash[k]: - bb.error("Basehash mismatch %s verses %s for %s" % (computed_basehash, self.basehash[k], k)) - if k in self.taskhash: - computed_taskhash = calc_taskhash(data) - if computed_taskhash != self.taskhash[k]: - bb.error("Taskhash mismatch %s verses %s for %s" % (computed_taskhash, self.taskhash[k], k)) - - def dump_sigs(self, dataCache, options): for fn in self.taskdeps: for task in self.taskdeps[fn]: -- cgit v1.2.3-54-g00ecf