sstatesig: Log timestamps for hashequiv in reprodubile builds for do_package

Currently if a task generates the same output with different timestamps,
hasequiv won't detect it but reproducibile builds will fail tests due
to the different timestamps.

Add do_package timestamps to the hash when reproducibile builds are enabled
to avoid this.

(From OE-Core rev: 11e8200ccec765ff6a4263e06512e5751eca261a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-01-29 17:28:46 +00:00
parent b0f2ad4f6b
commit cc840dfc9d

View File

@@ -484,6 +484,9 @@ def OEOuthashBasic(path, sigfile, task, d):
include_owners = os.environ.get('PSEUDO_DISABLED') == '0'
if "package_write_" in task or task == "package_qa":
include_owners = False
include_timestamps = False
if task == "package":
include_timestamps = d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1'
extra_content = d.getVar('HASHEQUIV_HASH_VERSION')
try:
@@ -558,6 +561,9 @@ def OEOuthashBasic(path, sigfile, task, d):
bb.warn("KeyError in %s" % path)
raise
if include_timestamps:
update_hash(" %10d" % s.st_mtime)
update_hash(" ")
if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode):
update_hash("%9s" % ("%d.%d" % (os.major(s.st_rdev), os.minor(s.st_rdev))))