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: 291353b711670ce2da3d45617fc96520bdf09d3f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
0a4a6d6956
commit
589f08aa85
|
@ -283,6 +283,15 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
||||||
if 'nostamp:' in self.taints[k]:
|
if 'nostamp:' in self.taints[k]:
|
||||||
data['taint'] = 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.")
|
fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.")
|
||||||
try:
|
try:
|
||||||
with os.fdopen(fd, "wb") as stream:
|
with os.fdopen(fd, "wb") as stream:
|
||||||
|
@ -297,15 +306,6 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
||||||
pass
|
pass
|
||||||
raise err
|
raise err
|
||||||
|
|
||||||
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))
|
|
||||||
|
|
||||||
|
|
||||||
def dump_sigs(self, dataCaches, options):
|
def dump_sigs(self, dataCaches, options):
|
||||||
for fn in self.taskdeps:
|
for fn in self.taskdeps:
|
||||||
for task in self.taskdeps[fn]:
|
for task in self.taskdeps[fn]:
|
||||||
|
|
Loading…
Reference in New Issue