summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/sstate.bbclass16
-rw-r--r--meta/lib/oe/sstatesig.py7
2 files changed, 6 insertions, 17 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 91d42665c1..6bfccbb907 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -660,15 +660,6 @@ def sstate_package(ss, d):
660 660
661 tmpdir = d.getVar('TMPDIR') 661 tmpdir = d.getVar('TMPDIR')
662 662
663 fixtime = False
664 if ss['task'] == "package":
665 fixtime = True
666
667 def fixtimestamp(root, path):
668 f = os.path.join(root, path)
669 if os.lstat(f).st_mtime > sde:
670 os.utime(f, (sde, sde), follow_symlinks=False)
671
672 sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task']) 663 sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task'])
673 sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time()) 664 sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time())
674 d.setVar("SSTATE_CURRTASK", ss['task']) 665 d.setVar("SSTATE_CURRTASK", ss['task'])
@@ -683,8 +674,6 @@ def sstate_package(ss, d):
683 # to sstate tasks but there aren't many of these so better just avoid them entirely. 674 # to sstate tasks but there aren't many of these so better just avoid them entirely.
684 for walkroot, dirs, files in os.walk(state[1]): 675 for walkroot, dirs, files in os.walk(state[1]):
685 for file in files + dirs: 676 for file in files + dirs:
686 if fixtime:
687 fixtimestamp(walkroot, file)
688 srcpath = os.path.join(walkroot, file) 677 srcpath = os.path.join(walkroot, file)
689 if not os.path.islink(srcpath): 678 if not os.path.islink(srcpath):
690 continue 679 continue
@@ -706,11 +695,6 @@ def sstate_package(ss, d):
706 bb.utils.mkdirhier(plain) 695 bb.utils.mkdirhier(plain)
707 bb.utils.mkdirhier(pdir) 696 bb.utils.mkdirhier(pdir)
708 bb.utils.rename(plain, pdir) 697 bb.utils.rename(plain, pdir)
709 if fixtime:
710 fixtimestamp(pdir, "")
711 for walkroot, dirs, files in os.walk(pdir):
712 for file in files + dirs:
713 fixtimestamp(walkroot, file)
714 698
715 d.setVar('SSTATE_BUILDDIR', sstatebuild) 699 d.setVar('SSTATE_BUILDDIR', sstatebuild)
716 d.setVar('SSTATE_INSTDIR', sstatebuild) 700 d.setVar('SSTATE_INSTDIR', sstatebuild)
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 30f27b0f4f..331b67c6e4 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -510,6 +510,7 @@ def OEOuthashBasic(path, sigfile, task, d):
510 if task == "package": 510 if task == "package":
511 include_timestamps = True 511 include_timestamps = True
512 include_root = False 512 include_root = False
513 source_date_epoch = float(d.getVar("SOURCE_DATE_EPOCH"))
513 hash_version = d.getVar('HASHEQUIV_HASH_VERSION') 514 hash_version = d.getVar('HASHEQUIV_HASH_VERSION')
514 extra_sigdata = d.getVar("HASHEQUIV_EXTRA_SIGDATA") 515 extra_sigdata = d.getVar("HASHEQUIV_EXTRA_SIGDATA")
515 516
@@ -601,7 +602,11 @@ def OEOuthashBasic(path, sigfile, task, d):
601 raise Exception(msg).with_traceback(e.__traceback__) 602 raise Exception(msg).with_traceback(e.__traceback__)
602 603
603 if include_timestamps: 604 if include_timestamps:
604 update_hash(" %10d" % s.st_mtime) 605 # Need to clamp to SOURCE_DATE_EPOCH
606 if s.st_mtime > source_date_epoch:
607 update_hash(" %10d" % source_date_epoch)
608 else:
609 update_hash(" %10d" % s.st_mtime)
605 610
606 update_hash(" ") 611 update_hash(" ")
607 if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode): 612 if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode):