aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-02-25 11:01:02 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-02-25 11:01:09 +0000
commit1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd (patch)
tree71424778e55563b3e7fdc1db667cd6d723ec9322
parent23ad05b98a2e1ced47aac3b1d7689c7146ff8c91 (diff)
downloadopenembedded-core-1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd.tar.gz
openembedded-core-1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd.tar.bz2
openembedded-core-1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd.zip
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/abi_version.conf8
-rw-r--r--meta/lib/oe/sstatesig.py3
2 files changed, 11 insertions, 0 deletions
diff --git a/meta/conf/abi_version.conf b/meta/conf/abi_version.conf
index 4964880108..2bdc55695b 100644
--- a/meta/conf/abi_version.conf
+++ b/meta/conf/abi_version.conf
@@ -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"
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 4325b66a9e..d24e3738ae 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -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