summaryrefslogtreecommitdiffstats
path: root/meta/classes/insane.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-07-09 21:15:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-07-10 17:38:31 +0100
commit09898d607423a8feb7810d262796819d24300491 (patch)
tree8497343088ebd386ea9920c712a71f5218a7c79d /meta/classes/insane.bbclass
parent3ead62a57833e2a3fd25e592a754c3ecfcd77b3a (diff)
downloadpoky-09898d607423a8feb7810d262796819d24300491.tar.gz
insane: Split do_package_qa into a separate task (from do_package)
Its possible to run the package QA checks as a separate task rather than as part of the do_package task. This offers more parallelism but the fact that made me propose this is that ideally we'd like to access pkgdata to help add new tests and to do that, we need to run later in the task list. We also need to add in RDEPENDS to the task which apply to do_package_write_* but not do_package. See the subsequent patches for why this is desireable. If we split into a separate task, we need to add in calls to read the sub package data, build the cache structure used by do_package and cover the task with sstate (which is empty and just acts as a stamp saying it passed package QA). We also need to handle our own dependencies. (From OE-Core rev: d31f75a72cb2322f753d945da86d5f3287eef06b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/insane.bbclass')
-rw-r--r--meta/classes/insane.bbclass25
1 files changed, 22 insertions, 3 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index c8fa7116b3..9ffe6751d8 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -17,9 +17,6 @@
17# files under exec_prefix 17# files under exec_prefix
18 18
19 19
20PACKAGE_DEPENDS += "${QADEPENDS}"
21PACKAGEFUNCS += " do_package_qa "
22
23# unsafe-references-in-binaries requires prelink-rtld from 20# unsafe-references-in-binaries requires prelink-rtld from
24# prelink-native, but we don't want this DEPENDS for -native builds 21# prelink-native, but we don't want this DEPENDS for -native builds
25QADEPENDS = "prelink-native" 22QADEPENDS = "prelink-native"
@@ -828,6 +825,8 @@ python do_package_qa () {
828 825
829 bb.note("DO PACKAGE QA") 826 bb.note("DO PACKAGE QA")
830 827
828 bb.build.exec_func("read_subpackage_metadata", d)
829
831 logdir = d.getVar('T', True) 830 logdir = d.getVar('T', True)
832 pkg = d.getVar('PN', True) 831 pkg = d.getVar('PN', True)
833 832
@@ -855,6 +854,15 @@ python do_package_qa () {
855 pkgdest = d.getVar('PKGDEST', True) 854 pkgdest = d.getVar('PKGDEST', True)
856 packages = d.getVar('PACKAGES', True) 855 packages = d.getVar('PACKAGES', True)
857 856
857 cpath = oe.cachedpath.CachedPath()
858 global pkgfiles
859 pkgfiles = {}
860 for pkg in (packages or "").split():
861 pkgfiles[pkg] = []
862 for walkroot, dirs, files in cpath.walk(pkgdest + "/" + pkg):
863 for file in files:
864 pkgfiles[pkg].append(walkroot + os.sep + file)
865
858 # no packages should be scanned 866 # no packages should be scanned
859 if not packages: 867 if not packages:
860 return 868 return
@@ -909,6 +917,15 @@ python do_package_qa () {
909 bb.note("DONE with PACKAGE QA") 917 bb.note("DONE with PACKAGE QA")
910} 918}
911 919
920addtask do_package_qa after do_package before do_build
921
922SSTATETASKS += "do_package_qa"
923do_package_qa[sstate-inputdirs] = ""
924do_package_qa[sstate-outputdirs] = ""
925python do_package_qa_setscene () {
926 sstate_setscene(d)
927}
928addtask do_package_qa_setscene
912 929
913python do_qa_staging() { 930python do_qa_staging() {
914 bb.note("QA checking staging") 931 bb.note("QA checking staging")
@@ -1018,6 +1035,8 @@ python () {
1018 1035
1019 issues = [] 1036 issues = []
1020 if (d.getVar('PACKAGES', True) or "").split(): 1037 if (d.getVar('PACKAGES', True) or "").split():
1038 for dep in (d.getVar('QADEPENDS', True) or "").split():
1039 d.appendVarFlag('do_package_qa', 'depends', " %s:do_populate_sysroot" % dep)
1021 for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY': 1040 for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY':
1022 if d.getVar(var): 1041 if d.getVar(var):
1023 issues.append(var) 1042 issues.append(var)