diff options
| -rw-r--r-- | meta/classes/sstate.bbclass | 16 | ||||
| -rw-r--r-- | meta/lib/oe/sstatesig.py | 7 |
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): |
