abi_version/sstatesig: Introduce HASHEQUIV_HASH_VERSION

We've found we need a way to cause a change in signatures and move
to a new hash 'namespace' with hashequiv. This introduces a variable
which allows us to do this.

(From OE-Core rev: 1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-02-25 11:01:02 +00:00
parent 21f43cf89e
commit fee9be0f65
2 changed files with 11 additions and 0 deletions

View File

@@ -5,3 +5,11 @@
# with general agreement from the core team.
#
OELAYOUT_ABI = "12"
#
# HASHEQUIV_HASH_VERSION is injected into the output hash calculation used by
# hashequiv. Changing this means previous hashes will no longer match, allowing
# a reset of the equivalence, for example when reproducibility issues break the
# existing match data. Distros can also append to this value for the same effect.
#
HASHEQUIV_HASH_VERSION = "1"

View File

@@ -477,11 +477,14 @@ def OEOuthashBasic(path, sigfile, task, d):
h = hashlib.sha256()
prev_dir = os.getcwd()
include_owners = os.environ.get('PSEUDO_DISABLED') == '0'
extra_content = d.getVar('HASHEQUIV_HASH_VERSION')
try:
os.chdir(path)
update_hash("OEOuthashBasic\n")
if extra_content:
update_hash(extra_content + "\n")
# It is only currently useful to get equivalent hashes for things that
# can be restored from sstate. Since the sstate object is named using