diff options
Diffstat (limited to 'poky/meta/classes-global/sstate.bbclass')
-rw-r--r-- | poky/meta/classes-global/sstate.bbclass | 33 |
1 files changed, 7 insertions, 26 deletions
diff --git a/poky/meta/classes-global/sstate.bbclass b/poky/meta/classes-global/sstate.bbclass index beb22f424e..8e0391c666 100644 --- a/poky/meta/classes-global/sstate.bbclass +++ b/poky/meta/classes-global/sstate.bbclass @@ -4,7 +4,7 @@ # SPDX-License-Identifier: MIT # -SSTATE_VERSION = "12" +SSTATE_VERSION = "14" SSTATE_ZSTD_CLEVEL ??= "8" @@ -103,7 +103,6 @@ SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES" SSTATEPOSTCREATEFUNCS = "" SSTATEPREINSTFUNCS = "" SSTATEPOSTUNPACKFUNCS = "sstate_hardcode_path_unpack" -SSTATEPOSTINSTFUNCS = "" EXTRA_STAGING_FIXMES ?= "HOSTTOOLS_DIR" # Check whether sstate exists for tasks that support sstate and are in the @@ -161,7 +160,10 @@ python () { d.setVar('SSTATETASKS', " ".join(unique_tasks)) for task in unique_tasks: d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ") - d.appendVarFlag(task, 'postfuncs', " sstate_task_postfunc") + # Generally sstate should be last, execpt for buildhistory functions + postfuncs = (d.getVarFlag(task, 'postfuncs') or "").split() + newpostfuncs = [p for p in postfuncs if "buildhistory" not in p] + ["sstate_task_postfunc"] + [p for p in postfuncs if "buildhistory" in p] + d.setVarFlag(task, 'postfuncs', " ".join(newpostfuncs)) d.setVarFlag(task, 'network', '1') d.setVarFlag(task + "_setscene", 'network', '1') } @@ -349,15 +351,10 @@ def sstate_install(ss, d): prepdir(dest) bb.utils.rename(src, dest) - for postinst in (d.getVar('SSTATEPOSTINSTFUNCS') or '').split(): - # All hooks should run in the SSTATE_INSTDIR - bb.build.exec_func(postinst, d, (sstateinst,)) - for lock in locks: bb.utils.unlockfile(lock) -sstate_install[vardepsexclude] += "SSTATE_ALLOW_OVERLAP_FILES SSTATE_MANMACH SSTATE_MANFILEPREFIX" -sstate_install[vardeps] += "${SSTATEPOSTINSTFUNCS}" +sstate_install[vardepsexclude] += "SSTATE_ALLOW_OVERLAP_FILES SSTATE_MANMACH SSTATE_MANFILEPREFIX STAMP" def sstate_installpkg(ss, d): from oe.gpg_sign import get_signer @@ -644,15 +641,6 @@ def sstate_package(ss, d): tmpdir = d.getVar('TMPDIR') - fixtime = False - if ss['task'] == "package": - fixtime = True - - def fixtimestamp(root, path): - f = os.path.join(root, path) - if os.lstat(f).st_mtime > sde: - os.utime(f, (sde, sde), follow_symlinks=False) - sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task']) sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time()) d.setVar("SSTATE_CURRTASK", ss['task']) @@ -667,8 +655,6 @@ def sstate_package(ss, d): # to sstate tasks but there aren't many of these so better just avoid them entirely. for walkroot, dirs, files in os.walk(state[1]): for file in files + dirs: - if fixtime: - fixtimestamp(walkroot, file) srcpath = os.path.join(walkroot, file) if not os.path.islink(srcpath): continue @@ -690,11 +676,6 @@ def sstate_package(ss, d): bb.utils.mkdirhier(plain) bb.utils.mkdirhier(pdir) bb.utils.rename(plain, pdir) - if fixtime: - fixtimestamp(pdir, "") - for walkroot, dirs, files in os.walk(pdir): - for file in files + dirs: - fixtimestamp(walkroot, file) d.setVar('SSTATE_BUILDDIR', sstatebuild) d.setVar('SSTATE_INSTDIR', sstatebuild) @@ -727,7 +708,7 @@ def sstate_package(ss, d): return -sstate_package[vardepsexclude] += "SSTATE_SIG_KEY" +sstate_package[vardepsexclude] += "SSTATE_SIG_KEY SSTATE_PKG" def pstaging_fetch(sstatefetch, d): import bb.fetch2 |