]> code.ossystems Code Review - openembedded-core.git/commitdiff
ptest.bblass: Fix package QA issues when disabled
authorNathan Rossi <nathan.rossi@xilinx.com>
Fri, 10 Jan 2014 08:01:33 +0000 (18:01 +1000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 14 Jan 2014 11:33:16 +0000 (11:33 +0000)
When the ptest distro feature is disabled, a ptest directory is still
created in the install phase, This directory is not cleaned up or
consumed by any package and will throw a QA error, e.g.

ERROR: QA Issue: glib-2.0: Files/directories were installed but not
shipped
  /usr/lib/glib-2.0/ptest
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa

This is caused by the do_install_ptest_base[cleandirs] attribute which
is not setup to be conditional on ptest being enabled.

This patch refactors the use of PTEST_ENABLED in the *ptest_base tasks,
replacing the conditional execution with the removal of the tasks from
the build, this prevents any part (including cleandirs) of the ptest
tasks from executing when disabled.

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/classes/ptest.bbclass

index ec10f80e68f0d36ff4744528c2de4af4e94373d8..e5bbb89ade2734cfbaa00591f6f6d187c8513e5c 100644 (file)
@@ -18,9 +18,7 @@ do_configure_ptest() {
 }
 
 do_configure_ptest_base() {
-    if [ ${PTEST_ENABLED} = 1 ]; then
-        do_configure_ptest
-    fi
+    do_configure_ptest
 }
 
 do_compile_ptest() {
@@ -28,9 +26,7 @@ do_compile_ptest() {
 }
 
 do_compile_ptest_base() {
-    if [ ${PTEST_ENABLED} = 1 ]; then
-        do_compile_ptest
-    fi
+    do_compile_ptest
 }
 
 do_install_ptest() {
@@ -38,14 +34,12 @@ do_install_ptest() {
 }
 
 do_install_ptest_base() {
-    if [ ${PTEST_ENABLED} = 1 ]; then
-        if [ -f ${WORKDIR}/run-ptest ]; then
-            install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
-            if grep -q install-ptest: Makefile; then
-                oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
-            fi
-            do_install_ptest
+    if [ -f ${WORKDIR}/run-ptest ]; then
+        install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
+        if grep -q install-ptest: Makefile; then
+            oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
         fi
+        do_install_ptest
     fi
 }
 
@@ -58,4 +52,9 @@ addtask install_ptest_base   after do_install   before do_package do_populate_sy
 python () {
     if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
         d.setVarFlag('do_install_ptest_base', 'fakeroot', 1)
+
+    # Remove all '*ptest_base' tasks when ptest is not enabled
+    if not(d.getVar('PTEST_ENABLED', True) == "1"):
+        for i in filter(lambda k: d.getVarFlag(k, "task") and k.endswith("ptest_base"), d.keys()):
+            bb.build.deltask(i, d)
 }