summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes-global/sstate.bbclass16
-rw-r--r--meta/lib/oe/sstatesig.py7
2 files changed, 6 insertions, 17 deletions
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 11bb892a42..8e0391c666 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -641,15 +641,6 @@ def sstate_package(ss, d):
641 641
642 tmpdir = d.getVar('TMPDIR') 642 tmpdir = d.getVar('TMPDIR')
643 643
644 fixtime = False
645 if ss['task'] == "package":
646 fixtime = True
647
648 def fixtimestamp(root, path):
649 f = os.path.join(root, path)
650 if os.lstat(f).st_mtime > sde:
651 os.utime(f, (sde, sde), follow_symlinks=False)
652
653 sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task']) 644 sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task'])
654 sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time()) 645 sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time())
655 d.setVar("SSTATE_CURRTASK", ss['task']) 646 d.setVar("SSTATE_CURRTASK", ss['task'])
@@ -664,8 +655,6 @@ def sstate_package(ss, d):
664 # to sstate tasks but there aren't many of these so better just avoid them entirely. 655 # to sstate tasks but there aren't many of these so better just avoid them entirely.
665 for walkroot, dirs, files in os.walk(state[1]): 656 for walkroot, dirs, files in os.walk(state[1]):
666 for file in files + dirs: 657 for file in files + dirs:
667 if fixtime:
668 fixtimestamp(walkroot, file)
669 srcpath = os.path.join(walkroot, file) 658 srcpath = os.path.join(walkroot, file)
670 if not os.path.islink(srcpath): 659 if not os.path.islink(srcpath):
671 continue 660 continue
@@ -687,11 +676,6 @@ def sstate_package(ss, d):
687 bb.utils.mkdirhier(plain) 676 bb.utils.mkdirhier(plain)
688 bb.utils.mkdirhier(pdir) 677 bb.utils.mkdirhier(pdir)
689 bb.utils.rename(plain, pdir) 678 bb.utils.rename(plain, pdir)
690 if fixtime:
691 fixtimestamp(pdir, "")
692 for walkroot, dirs, files in os.walk(pdir):
693 for file in files + dirs:
694 fixtimestamp(walkroot, file)
695 679
696 d.setVar('SSTATE_BUILDDIR', sstatebuild) 680 d.setVar('SSTATE_BUILDDIR', sstatebuild)
697 d.setVar('SSTATE_INSTDIR', sstatebuild) 681 d.setVar('SSTATE_INSTDIR', sstatebuild)
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index f883497292..1f97606763 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -564,6 +564,7 @@ def OEOuthashBasic(path, sigfile, task, d):
564 if task == "package": 564 if task == "package":
565 include_timestamps = True 565 include_timestamps = True
566 include_root = False 566 include_root = False
567 source_date_epoch = float(d.getVar("SOURCE_DATE_EPOCH"))
567 hash_version = d.getVar('HASHEQUIV_HASH_VERSION') 568 hash_version = d.getVar('HASHEQUIV_HASH_VERSION')
568 extra_sigdata = d.getVar("HASHEQUIV_EXTRA_SIGDATA") 569 extra_sigdata = d.getVar("HASHEQUIV_EXTRA_SIGDATA")
569 570
@@ -655,7 +656,11 @@ def OEOuthashBasic(path, sigfile, task, d):
655 raise Exception(msg).with_traceback(e.__traceback__) 656 raise Exception(msg).with_traceback(e.__traceback__)
656 657
657 if include_timestamps: 658 if include_timestamps:
658 update_hash(" %10d" % s.st_mtime) 659 # Need to clamp to SOURCE_DATE_EPOCH
660 if s.st_mtime > source_date_epoch:
661 update_hash(" %10d" % source_date_epoch)
662 else:
663 update_hash(" %10d" % s.st_mtime)
659 664
660 update_hash(" ") 665 update_hash(" ")
661 if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode): 666 if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode):