summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2013-05-12 06:46:10 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-06-07 16:48:26 +0100
commit43713b9e17707992569d807cdd61aaaf969ec6fc (patch)
treecb9bb614ac90762280db1560c3ad21eff4069f16
parent7a5a7551eb3ea1d4485e697f60e94cab4ed40946 (diff)
downloadpoky-43713b9e17707992569d807cdd61aaaf969ec6fc.tar.gz
insane/package: let package.bbclass inherit insane.bbclass
RP's comment: "What we're trying to do is move everything to use a standard mechanism for reporting issues of this type (do_package). With insane.bbclass, you can elect whether a given type of error is a warning or error and fails the task." * The package.bbclass had used package_qa_handle_error() which is from insane.bbclass, and we will use it for handling other warnings and errors, so let package.bbclass inherit insane.bbclass, this change will make the insane as a requirement (always included). * Change the "PACKAGEFUNCS ?=" to "+=", otherwise there would be an error like: Exception: variable SUMMARY references itself! This is because we let package.bbclass inherit insane.bbclass, and PACKAGEFUNCS has been set in insane.bbclass, so the "PACKAGEFUNCS ?=" will set nothing, then the "emit_pkgdata" doesn't run which will cause this error. * Add a QA_SANE variable in insane.bbclass, once the error type is ERROR_QA, it will fail the task and stop the build. [YOCTO #3190] [YOCTO #4396] (From OE-Core rev: 852dead71387c66ec0cba7c71e3814a74e409560) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/insane.bbclass6
-rw-r--r--meta/classes/package.bbclass5
2 files changed, 8 insertions, 3 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 3ed5581949..ee57721634 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -17,7 +17,6 @@
17# files under exec_prefix 17# files under exec_prefix
18 18
19 19
20inherit package
21PACKAGE_DEPENDS += "${QADEPENDS}" 20PACKAGE_DEPENDS += "${QADEPENDS}"
22PACKAGEFUNCS += " do_package_qa " 21PACKAGEFUNCS += " do_package_qa "
23 22
@@ -26,6 +25,7 @@ PACKAGEFUNCS += " do_package_qa "
26QADEPENDS = "prelink-native" 25QADEPENDS = "prelink-native"
27QADEPENDS_class-native = "" 26QADEPENDS_class-native = ""
28QADEPENDS_class-nativesdk = "" 27QADEPENDS_class-nativesdk = ""
28QA_SANE = "True"
29 29
30# 30#
31# dictionary for elf headers 31# dictionary for elf headers
@@ -133,6 +133,7 @@ def package_qa_handle_error(error_class, error_msg, d):
133 package_qa_write_error(error_msg, d) 133 package_qa_write_error(error_msg, d)
134 if error_class in (d.getVar("ERROR_QA", True) or "").split(): 134 if error_class in (d.getVar("ERROR_QA", True) or "").split():
135 bb.error("QA Issue: %s" % error_msg) 135 bb.error("QA Issue: %s" % error_msg)
136 d.setVar("QA_SANE", False)
136 return False 137 return False
137 else: 138 else:
138 bb.warn("QA Issue: %s" % error_msg) 139 bb.warn("QA Issue: %s" % error_msg)
@@ -820,7 +821,8 @@ python do_package_qa () {
820 if 'libdir' in d.getVar("ALL_QA", True).split(): 821 if 'libdir' in d.getVar("ALL_QA", True).split():
821 package_qa_check_libdir(d) 822 package_qa_check_libdir(d)
822 823
823 if not walk_sane or not rdepends_sane or not deps_sane: 824 qa_sane = d.getVar("QA_SANE", True)
825 if not walk_sane or not rdepends_sane or not deps_sane or not qa_sane:
824 bb.fatal("QA run found fatal errors. Please consider fixing them.") 826 bb.fatal("QA run found fatal errors. Please consider fixing them.")
825 bb.note("DONE with PACKAGE QA") 827 bb.note("DONE with PACKAGE QA")
826} 828}
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 02a1460624..f72c0e23b4 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -42,6 +42,9 @@ inherit packagedata
42inherit prserv 42inherit prserv
43inherit chrpath 43inherit chrpath
44 44
45# Need the package_qa_handle_error() in insane.bbclass
46inherit insane
47
45PKGD = "${WORKDIR}/package" 48PKGD = "${WORKDIR}/package"
46PKGDEST = "${WORKDIR}/packages-split" 49PKGDEST = "${WORKDIR}/packages-split"
47 50
@@ -1813,7 +1816,7 @@ PACKAGESPLITFUNCS ?= " \
1813 package_do_split_locales \ 1816 package_do_split_locales \
1814 populate_packages" 1817 populate_packages"
1815# Functions which process metadata based on split packages 1818# Functions which process metadata based on split packages
1816PACKAGEFUNCS ?= " \ 1819PACKAGEFUNCS += " \
1817 package_fixsymlinks \ 1820 package_fixsymlinks \
1818 package_name_hook \ 1821 package_name_hook \
1819 package_do_filedeps \ 1822 package_do_filedeps \