diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-11 12:06:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-06 23:54:39 +0000 |
commit | f3010f76943fc2bcfe73d97e67f211187cf3551a (patch) | |
tree | b095aba516b3c5cc43dc673b64818389bcb3112d | |
parent | 4cb1b4b409c4067c669fedef4a02be27689e3d26 (diff) | |
download | poky-f3010f76943fc2bcfe73d97e67f211187cf3551a.tar.gz |
sstate: Improve SSTATE_PKG handling
Move the task handling code into the SSTATE_PKGNAME variable using a temporary variable.
This makes the code more understandable as as well as allowing the length of the
final sstate filename to be more easily accesses for following patches.
(From OE-Core rev: be603dad6817948cfa09621d2311046631ec4ab2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/sstate.bbclass | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 7d2cb9eb84..5bd4031e53 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
@@ -11,11 +11,11 @@ def generate_sstatefn(spec, hash, d): | |||
11 | SSTATE_PKGARCH = "${PACKAGE_ARCH}" | 11 | SSTATE_PKGARCH = "${PACKAGE_ARCH}" |
12 | SSTATE_PKGSPEC = "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:" | 12 | SSTATE_PKGSPEC = "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:" |
13 | SSTATE_SWSPEC = "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:" | 13 | SSTATE_SWSPEC = "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:" |
14 | SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d)}" | 14 | SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d)}_${SSTATE_CURRTASK}.tgz" |
15 | SSTATE_PKG = "${SSTATE_DIR}/${SSTATE_PKGNAME}" | 15 | SSTATE_PKG = "${SSTATE_DIR}/${SSTATE_PKGNAME}" |
16 | SSTATE_EXTRAPATH = "" | 16 | SSTATE_EXTRAPATH = "" |
17 | SSTATE_EXTRAPATHWILDCARD = "" | 17 | SSTATE_EXTRAPATHWILDCARD = "" |
18 | SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/*/${SSTATE_PKGSPEC}" | 18 | SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/*/${SSTATE_PKGSPEC}*_${SSTATE_PATH_CURRTASK}.tgz*" |
19 | 19 | ||
20 | # explicitly make PV to depend on evaluated value of PV variable | 20 | # explicitly make PV to depend on evaluated value of PV variable |
21 | PV[vardepvalue] = "${PV}" | 21 | PV[vardepvalue] = "${PV}" |
@@ -317,8 +317,8 @@ def sstate_installpkg(ss, d): | |||
317 | from oe.gpg_sign import get_signer | 317 | from oe.gpg_sign import get_signer |
318 | 318 | ||
319 | sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['task']) | 319 | sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['task']) |
320 | sstatefetch = d.getVar('SSTATE_PKGNAME') + '_' + ss['task'] + ".tgz" | 320 | d.setVar("SSTATE_CURRTASK", ss['task']) |
321 | d.appendVar('SSTATE_PKG', '_'+ ss['task'] + ".tgz") | 321 | sstatefetch = d.getVar('SSTATE_PKGNAME') |
322 | sstatepkg = d.getVar('SSTATE_PKG') | 322 | sstatepkg = d.getVar('SSTATE_PKG') |
323 | 323 | ||
324 | if not os.path.exists(sstatepkg): | 324 | if not os.path.exists(sstatepkg): |
@@ -440,8 +440,9 @@ python sstate_hardcode_path_unpack () { | |||
440 | def sstate_clean_cachefile(ss, d): | 440 | def sstate_clean_cachefile(ss, d): |
441 | import oe.path | 441 | import oe.path |
442 | 442 | ||
443 | sstatepkgfile = d.getVar('SSTATE_PATHSPEC') + "*_" + ss['task'] + ".tgz*" | ||
444 | if d.getVarFlag('do_%s' % ss['task'], 'task'): | 443 | if d.getVarFlag('do_%s' % ss['task'], 'task'): |
444 | d.setVar("SSTATE_PATH_CURRTASK", ss['task']) | ||
445 | sstatepkgfile = d.getVar('SSTATE_PATHSPEC') | ||
445 | bb.note("Removing %s" % sstatepkgfile) | 446 | bb.note("Removing %s" % sstatepkgfile) |
446 | oe.path.remove(sstatepkgfile) | 447 | oe.path.remove(sstatepkgfile) |
447 | 448 | ||
@@ -612,7 +613,7 @@ def sstate_package(ss, d): | |||
612 | tmpdir = d.getVar('TMPDIR') | 613 | tmpdir = d.getVar('TMPDIR') |
613 | 614 | ||
614 | sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task']) | 615 | sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task']) |
615 | d.appendVar('SSTATE_PKG', '_'+ ss['task'] + ".tgz") | 616 | d.setVar("SSTATE_CURRTASK", ss['task']) |
616 | bb.utils.remove(sstatebuild, recurse=True) | 617 | bb.utils.remove(sstatebuild, recurse=True) |
617 | bb.utils.mkdirhier(sstatebuild) | 618 | bb.utils.mkdirhier(sstatebuild) |
618 | for state in ss['dirs']: | 619 | for state in ss['dirs']: |
@@ -1081,17 +1082,17 @@ addhandler sstate_eventhandler | |||
1081 | sstate_eventhandler[eventmask] = "bb.build.TaskSucceeded" | 1082 | sstate_eventhandler[eventmask] = "bb.build.TaskSucceeded" |
1082 | python sstate_eventhandler() { | 1083 | python sstate_eventhandler() { |
1083 | d = e.data | 1084 | d = e.data |
1084 | # When we write an sstate package we rewrite the SSTATE_PKG | 1085 | writtensstate = d.getVar('SSTATE_CURRTASK') |
1085 | spkg = d.getVar('SSTATE_PKG') | 1086 | if not writtensstate: |
1086 | if not spkg.endswith(".tgz"): | ||
1087 | taskname = d.getVar("BB_RUNTASK")[3:] | 1087 | taskname = d.getVar("BB_RUNTASK")[3:] |
1088 | spec = d.getVar('SSTATE_PKGSPEC') | 1088 | spec = d.getVar('SSTATE_PKGSPEC') |
1089 | swspec = d.getVar('SSTATE_SWSPEC') | 1089 | swspec = d.getVar('SSTATE_SWSPEC') |
1090 | if taskname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and swspec: | 1090 | if taskname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and swspec: |
1091 | d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}") | 1091 | d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}") |
1092 | d.setVar("SSTATE_EXTRAPATH", "") | 1092 | d.setVar("SSTATE_EXTRAPATH", "") |
1093 | d.setVar("SSTATE_CURRTASK", taskname) | ||
1093 | sstatepkg = d.getVar('SSTATE_PKG') | 1094 | sstatepkg = d.getVar('SSTATE_PKG') |
1094 | bb.siggen.dump_this_task(sstatepkg + '_' + taskname + ".tgz" ".siginfo", d) | 1095 | bb.siggen.dump_this_task(sstatepkg + ".siginfo", d) |
1095 | } | 1096 | } |
1096 | 1097 | ||
1097 | SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1" | 1098 | SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1" |