summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-05 14:48:39 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-06 23:54:39 +0000
commit443654351b0e54c76715dd9e5076f32fa6d34592 (patch)
treeae0fac55d8c4b4a4956f0d69df33ee037b7157bf
parentf3010f76943fc2bcfe73d97e67f211187cf3551a (diff)
downloadpoky-443654351b0e54c76715dd9e5076f32fa6d34592.tar.gz
sstate: Merge file name generation into single function
Move the task handling and extension handling into one common filename construction function. (From OE-Core rev: c0c158d38583648a801e959d91371f7b43a98da5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/sstate.bbclass22
1 files changed, 12 insertions, 10 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 5bd4031e53..71ae090077 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -3,15 +3,20 @@ SSTATE_VERSION = "3"
3SSTATE_MANIFESTS ?= "${TMPDIR}/sstate-control" 3SSTATE_MANIFESTS ?= "${TMPDIR}/sstate-control"
4SSTATE_MANFILEPREFIX = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-${PN}" 4SSTATE_MANFILEPREFIX = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-${PN}"
5 5
6def generate_sstatefn(spec, hash, d): 6def generate_sstatefn(spec, hash, taskname, siginfo, d):
7 if taskname is None:
8 return ""
9 extension = ".tgz"
10 if siginfo:
11 extension = ".tgz.siginfo"
7 if not hash: 12 if not hash:
8 hash = "INVALID" 13 hash = "INVALID"
9 return hash[:2] + "/" + hash[2:4] + "/" + spec + hash 14 return hash[:2] + "/" + hash[2:4] + "/" + spec + hash + "_" + taskname + extension
10 15
11SSTATE_PKGARCH = "${PACKAGE_ARCH}" 16SSTATE_PKGARCH = "${PACKAGE_ARCH}"
12SSTATE_PKGSPEC = "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:" 17SSTATE_PKGSPEC = "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:"
13SSTATE_SWSPEC = "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:" 18SSTATE_SWSPEC = "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:"
14SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d)}_${SSTATE_CURRTASK}.tgz" 19SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d.getVar('SSTATE_CURRTASK'), False, d)}"
15SSTATE_PKG = "${SSTATE_DIR}/${SSTATE_PKGNAME}" 20SSTATE_PKG = "${SSTATE_DIR}/${SSTATE_PKGNAME}"
16SSTATE_EXTRAPATH = "" 21SSTATE_EXTRAPATH = ""
17SSTATE_EXTRAPATHWILDCARD = "" 22SSTATE_EXTRAPATHWILDCARD = ""
@@ -822,9 +827,6 @@ BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
822def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs): 827def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs):
823 found = set() 828 found = set()
824 missed = set() 829 missed = set()
825 extension = ".tgz"
826 if siginfo:
827 extension = extension + ".siginfo"
828 830
829 def gethash(task): 831 def gethash(task):
830 return sq_data['unihash'][task] 832 return sq_data['unihash'][task]
@@ -851,7 +853,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
851 853
852 spec, extrapath, tname = getpathcomponents(tid, d) 854 spec, extrapath, tname = getpathcomponents(tid, d)
853 855
854 sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension) 856 sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
855 857
856 if os.path.exists(sstatefile): 858 if os.path.exists(sstatefile):
857 bb.debug(2, "SState: Found valid sstate file %s" % sstatefile) 859 bb.debug(2, "SState: Found valid sstate file %s" % sstatefile)
@@ -914,7 +916,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
914 if tid in found: 916 if tid in found:
915 continue 917 continue
916 spec, extrapath, tname = getpathcomponents(tid, d) 918 spec, extrapath, tname = getpathcomponents(tid, d)
917 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension) 919 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
918 tasklist.append((tid, sstatefile)) 920 tasklist.append((tid, sstatefile))
919 921
920 if tasklist: 922 if tasklist:
@@ -944,11 +946,11 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
944 evdata = {'missed': [], 'found': []}; 946 evdata = {'missed': [], 'found': []};
945 for tid in missed: 947 for tid in missed:
946 spec, extrapath, tname = getpathcomponents(tid, d) 948 spec, extrapath, tname = getpathcomponents(tid, d)
947 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz") 949 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
948 evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) ) 950 evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
949 for tid in found: 951 for tid in found:
950 spec, extrapath, tname = getpathcomponents(tid, d) 952 spec, extrapath, tname = getpathcomponents(tid, d)
951 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz") 953 sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
952 evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) ) 954 evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
953 bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d) 955 bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)
954 956