summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-18 13:56:02 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-18 17:08:05 +0000
commit480bf037ae437689e16cbdcef0208c4298268fc4 (patch)
tree6fadc3a4dc65e592e15699e12cd48efc1635d831
parent7935ae2e805d935f0f7f38e06e5ef94482540041 (diff)
downloadpoky-480bf037ae437689e16cbdcef0208c4298268fc4.tar.gz
sstate: Get rid of crazy name mapping
When originally developed, it was thought a task may have more than one associated sstate archive. The way the code has grown that idea is now not possible or needed. We can therefore assume one sstate archive per task and drop the crazy name mapping code. Simpler is better in this case. The downside is that various sstate archives will change name so this forces a cache rebuild. Given the other sstate changes going in at this time, this isn't really a bad thing as things would rebuild anyway. (From OE-Core rev: 5afe86a6854b21692fd97c5fc7fab50dbc068acb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/archive-configured-source.bbclass2
-rw-r--r--meta/classes/archive-original-source.bbclass2
-rw-r--r--meta/classes/archive-patched-source.bbclass2
-rw-r--r--meta/classes/deploy.bbclass1
-rw-r--r--meta/classes/license.bbclass1
-rw-r--r--meta/classes/package.bbclass2
-rw-r--r--meta/classes/package_deb.bbclass1
-rw-r--r--meta/classes/package_ipk.bbclass1
-rw-r--r--meta/classes/package_rpm.bbclass1
-rw-r--r--meta/classes/sstate.bbclass26
-rw-r--r--meta/classes/staging.bbclass1
11 files changed, 6 insertions, 34 deletions
diff --git a/meta/classes/archive-configured-source.bbclass b/meta/classes/archive-configured-source.bbclass
index 54c234406a..961a53282a 100644
--- a/meta/classes/archive-configured-source.bbclass
+++ b/meta/classes/archive-configured-source.bbclass
@@ -45,7 +45,6 @@ ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR = "${WORKDIR}/script-logs/"
45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/" 45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/"
46 46
47SSTATETASKS += "do_archive_scripts_logs" 47SSTATETASKS += "do_archive_scripts_logs"
48do_archive_scripts_logs[sstate-name] = "archive_scripts_logs"
49do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}" 48do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}"
50do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 49do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
51 50
@@ -56,7 +55,6 @@ python do_archive_scripts_logs_setscene () {
56addtask do_archive_scripts_logs_setscene 55addtask do_archive_scripts_logs_setscene
57 56
58SSTATETASKS += "do_dumpdata_create_diff_gz" 57SSTATETASKS += "do_dumpdata_create_diff_gz"
59do_dumpdata_create_diff_gz[sstate-name] = "dumpdata_create_diff_gz"
60do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}" 58do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}"
61do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 59do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
62 60
diff --git a/meta/classes/archive-original-source.bbclass b/meta/classes/archive-original-source.bbclass
index 7e9ed6d111..e271a08146 100644
--- a/meta/classes/archive-original-source.bbclass
+++ b/meta/classes/archive-original-source.bbclass
@@ -45,7 +45,6 @@ ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR = "${WORKDIR}/script-logs/"
45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/" 45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/"
46 46
47SSTATETASKS += "do_archive_scripts_logs" 47SSTATETASKS += "do_archive_scripts_logs"
48do_archive_scripts_logs[sstate-name] = "archive_scripts_logs"
49do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}" 48do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}"
50do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 49do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
51 50
@@ -56,7 +55,6 @@ python do_archive_scripts_logs_setscene () {
56addtask do_archive_scripts_logs_setscene 55addtask do_archive_scripts_logs_setscene
57 56
58SSTATETASKS += "do_dumpdata_create_diff_gz" 57SSTATETASKS += "do_dumpdata_create_diff_gz"
59do_dumpdata_create_diff_gz[sstate-name] = "dumpdata_create_diff_gz"
60do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}" 58do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}"
61do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 59do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
62 60
diff --git a/meta/classes/archive-patched-source.bbclass b/meta/classes/archive-patched-source.bbclass
index d8d494a45d..c5f5cca382 100644
--- a/meta/classes/archive-patched-source.bbclass
+++ b/meta/classes/archive-patched-source.bbclass
@@ -45,7 +45,6 @@ ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR = "${WORKDIR}/script-logs/"
45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/" 45ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR = "${WORKDIR}/diffgz-envdata/"
46 46
47SSTATETASKS += "do_archive_scripts_logs" 47SSTATETASKS += "do_archive_scripts_logs"
48do_archive_scripts_logs[sstate-name] = "archive_scripts_logs"
49do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}" 48do_archive_scripts_logs[sstate-inputdirs] = "${ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR}"
50do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 49do_archive_scripts_logs[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
51 50
@@ -56,7 +55,6 @@ python do_archive_scripts_logs_setscene () {
56addtask do_archive_scripts_logs_setscene 55addtask do_archive_scripts_logs_setscene
57 56
58SSTATETASKS += "do_dumpdata_create_diff_gz" 57SSTATETASKS += "do_dumpdata_create_diff_gz"
59do_dumpdata_create_diff_gz[sstate-name] = "dumpdata_create_diff_gz"
60do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}" 58do_dumpdata_create_diff_gz[sstate-inputdirs] = "${ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR}"
61do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}" 59do_dumpdata_create_diff_gz[sstate-outputdirs] = "${ARCHIVE_SSTATE_OUTDIR}"
62 60
diff --git a/meta/classes/deploy.bbclass b/meta/classes/deploy.bbclass
index c3371421d8..78f5e4a7ba 100644
--- a/meta/classes/deploy.bbclass
+++ b/meta/classes/deploy.bbclass
@@ -1,6 +1,5 @@
1DEPLOYDIR = "${WORKDIR}/deploy-${PN}" 1DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
2SSTATETASKS += "do_deploy" 2SSTATETASKS += "do_deploy"
3do_deploy[sstate-name] = "deploy"
4do_deploy[sstate-inputdirs] = "${DEPLOYDIR}" 3do_deploy[sstate-inputdirs] = "${DEPLOYDIR}"
5do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" 4do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
6 5
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 8ad55f8031..f075f59340 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -351,7 +351,6 @@ def check_license_flags(d):
351 return None 351 return None
352 352
353SSTATETASKS += "do_populate_lic" 353SSTATETASKS += "do_populate_lic"
354do_populate_lic[sstate-name] = "populate-lic"
355do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}" 354do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
356do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/" 355do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/"
357 356
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 44a852f3f6..eb4cf44ef0 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1931,7 +1931,6 @@ addtask package before do_build after do_install
1931 1931
1932PACKAGELOCK = "${STAGING_DIR}/package-output.lock" 1932PACKAGELOCK = "${STAGING_DIR}/package-output.lock"
1933SSTATETASKS += "do_package" 1933SSTATETASKS += "do_package"
1934do_package[sstate-name] = "package"
1935do_package[cleandirs] = "${PKGDEST} ${PKGDESTWORK}" 1934do_package[cleandirs] = "${PKGDEST} ${PKGDESTWORK}"
1936do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST} ${PKGDESTWORK}" 1935do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST} ${PKGDESTWORK}"
1937do_package[sstate-lockfile-shared] = "${PACKAGELOCK}" 1936do_package[sstate-lockfile-shared] = "${PACKAGELOCK}"
@@ -1949,7 +1948,6 @@ do_packagedata () {
1949addtask packagedata before do_build after do_package 1948addtask packagedata before do_build after do_package
1950 1949
1951SSTATETASKS += "do_packagedata" 1950SSTATETASKS += "do_packagedata"
1952do_packagedata[sstate-name] = "packagedata"
1953do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}" 1951do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
1954do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}" 1952do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
1955do_packagedata[sstate-lockfile-shared] = "${PACKAGELOCK}" 1953do_packagedata[sstate-lockfile-shared] = "${PACKAGELOCK}"
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index d18c250ecc..82ff432f71 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -412,7 +412,6 @@ python do_package_deb () {
412} 412}
413 413
414SSTATETASKS += "do_package_write_deb" 414SSTATETASKS += "do_package_write_deb"
415do_package_write_deb[sstate-name] = "deploy-deb"
416do_package_write_deb[sstate-inputdirs] = "${PKGWRITEDIRDEB}" 415do_package_write_deb[sstate-inputdirs] = "${PKGWRITEDIRDEB}"
417do_package_write_deb[sstate-outputdirs] = "${DEPLOY_DIR_DEB}" 416do_package_write_deb[sstate-outputdirs] = "${DEPLOY_DIR_DEB}"
418 417
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index d0db9454d1..e7b275577a 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -415,7 +415,6 @@ python do_package_ipk () {
415} 415}
416 416
417SSTATETASKS += "do_package_write_ipk" 417SSTATETASKS += "do_package_write_ipk"
418do_package_write_ipk[sstate-name] = "deploy-ipk"
419do_package_write_ipk[sstate-inputdirs] = "${PKGWRITEDIRIPK}" 418do_package_write_ipk[sstate-inputdirs] = "${PKGWRITEDIRIPK}"
420do_package_write_ipk[sstate-outputdirs] = "${DEPLOY_DIR_IPK}" 419do_package_write_ipk[sstate-outputdirs] = "${DEPLOY_DIR_IPK}"
421 420
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 346b7abd53..fcde73ebe9 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -1172,7 +1172,6 @@ python () {
1172} 1172}
1173 1173
1174SSTATETASKS += "do_package_write_rpm" 1174SSTATETASKS += "do_package_write_rpm"
1175do_package_write_rpm[sstate-name] = "deploy-rpm"
1176do_package_write_rpm[sstate-inputdirs] = "${PKGWRITEDIRRPM}" 1175do_package_write_rpm[sstate-inputdirs] = "${PKGWRITEDIRRPM}"
1177do_package_write_rpm[sstate-outputdirs] = "${DEPLOY_DIR_RPM}" 1176do_package_write_rpm[sstate-outputdirs] = "${DEPLOY_DIR_RPM}"
1178# Take a shared lock, we can write multiple packages at the same time... 1177# Take a shared lock, we can write multiple packages at the same time...
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 9df9ac2429..199a5b3fc4 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -69,12 +69,9 @@ python () {
69 69
70 unique_tasks = set((d.getVar('SSTATETASKS', True) or "").split()) 70 unique_tasks = set((d.getVar('SSTATETASKS', True) or "").split())
71 d.setVar('SSTATETASKS', " ".join(unique_tasks)) 71 d.setVar('SSTATETASKS', " ".join(unique_tasks))
72 namemap = []
73 for task in unique_tasks: 72 for task in unique_tasks:
74 namemap.append(d.getVarFlag(task, 'sstate-name'))
75 d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ") 73 d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ")
76 d.appendVarFlag(task, 'postfuncs', " sstate_task_postfunc") 74 d.appendVarFlag(task, 'postfuncs', " sstate_task_postfunc")
77 d.setVar('SSTATETASKNAMES', " ".join(namemap))
78} 75}
79 76
80def sstate_init(name, task, d): 77def sstate_init(name, task, d):
@@ -94,7 +91,9 @@ def sstate_state_fromvars(d, task = None):
94 bb.fatal("sstate code running without task context?!") 91 bb.fatal("sstate code running without task context?!")
95 task = task.replace("_setscene", "") 92 task = task.replace("_setscene", "")
96 93
97 name = d.getVarFlag("do_" + task, 'sstate-name', True) 94 name = task
95 if task.startswith("do_"):
96 name = task[3:]
98 inputs = (d.getVarFlag("do_" + task, 'sstate-inputdirs', True) or "").split() 97 inputs = (d.getVarFlag("do_" + task, 'sstate-inputdirs', True) or "").split()
99 outputs = (d.getVarFlag("do_" + task, 'sstate-outputdirs', True) or "").split() 98 outputs = (d.getVarFlag("do_" + task, 'sstate-outputdirs', True) or "").split()
100 plaindirs = (d.getVarFlag("do_" + task, 'sstate-plaindirs', True) or "").split() 99 plaindirs = (d.getVarFlag("do_" + task, 'sstate-plaindirs', True) or "").split()
@@ -297,7 +296,7 @@ def sstate_clean_cachefile(ss, d):
297 296
298def sstate_clean_cachefiles(d): 297def sstate_clean_cachefiles(d):
299 for task in (d.getVar('SSTATETASKS', True) or "").split(): 298 for task in (d.getVar('SSTATETASKS', True) or "").split():
300 ss = sstate_state_fromvars(d, task[3:]) 299 ss = sstate_state_fromvars(d, task)
301 sstate_clean_cachefile(ss, d) 300 sstate_clean_cachefile(ss, d)
302 301
303def sstate_clean_manifest(manifest, d): 302def sstate_clean_manifest(manifest, d):
@@ -365,11 +364,9 @@ python sstate_cleanall() {
365 if not os.path.exists(manifest_dir): 364 if not os.path.exists(manifest_dir):
366 return 365 return
367 366
368 namemap = d.getVar('SSTATETASKNAMES', True).split()
369 tasks = d.getVar('SSTATETASKS', True).split() 367 tasks = d.getVar('SSTATETASKS', True).split()
370 for name in namemap: 368 for name in tasks:
371 taskname = tasks[namemap.index(name)] 369 shared_state = sstate_state_fromvars(d, name)
372 shared_state = sstate_state_fromvars(d, taskname[3:])
373 sstate_clean(shared_state, d) 370 sstate_clean(shared_state, d)
374} 371}
375 372
@@ -592,20 +589,11 @@ sstate_unpack_package () {
592 tar -xmvzf ${SSTATE_PKG} 589 tar -xmvzf ${SSTATE_PKG}
593} 590}
594 591
595# Need to inject information about classes not in the global configuration scope
596EXTRASSTATEMAPS += "do_deploy:deploy"
597
598BB_HASHCHECK_FUNCTION = "sstate_checkhashes" 592BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
599 593
600def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d): 594def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
601 595
602 ret = [] 596 ret = []
603 mapping = {}
604 for t in d.getVar("SSTATETASKS", True).split():
605 mapping[t] = d.getVarFlag(t, "sstate-name", True)
606 for extra in d.getVar("EXTRASSTATEMAPS", True).split():
607 e = extra.split(":")
608 mapping[e[0]] = e[1]
609 597
610 def getpathcomponents(task, d): 598 def getpathcomponents(task, d):
611 # Magic data from BB_HASHFILENAME 599 # Magic data from BB_HASHFILENAME
@@ -614,8 +602,6 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
614 extrapath = splithashfn[0] 602 extrapath = splithashfn[0]
615 603
616 tname = sq_task[task][3:] 604 tname = sq_task[task][3:]
617 if sq_task[task] in mapping:
618 tname = mapping[sq_task[task]]
619 605
620 if tname in ["fetch", "unpack", "patch"] and splithashfn[2]: 606 if tname in ["fetch", "unpack", "patch"] and splithashfn[2]:
621 spec = splithashfn[2] 607 spec = splithashfn[2]
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 3985763f4b..d17a53ebef 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -97,7 +97,6 @@ python do_populate_sysroot () {
97 97
98SSTATETASKS += "do_populate_sysroot" 98SSTATETASKS += "do_populate_sysroot"
99do_populate_sysroot[cleandirs] = "${SYSROOT_DESTDIR}" 99do_populate_sysroot[cleandirs] = "${SYSROOT_DESTDIR}"
100do_populate_sysroot[sstate-name] = "populate-sysroot"
101do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}" 100do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}"
102do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/" 101do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/"
103do_populate_sysroot[stamp-extra-info] = "${MACHINE}" 102do_populate_sysroot[stamp-extra-info] = "${MACHINE}"