diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2013-05-12 06:46:10 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-06-07 16:41:02 +0100 |
commit | 852dead71387c66ec0cba7c71e3814a74e409560 (patch) | |
tree | 041759af90bfb904b97575b4738ae6a357314f08 /meta/classes | |
parent | b1cd1c692d7b13e6865353c9bb2f7cf331c9f774 (diff) | |
download | openembedded-core-852dead71387c66ec0cba7c71e3814a74e409560.tar.gz openembedded-core-852dead71387c66ec0cba7c71e3814a74e409560.tar.bz2 openembedded-core-852dead71387c66ec0cba7c71e3814a74e409560.zip |
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]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/insane.bbclass | 6 | ||||
-rw-r--r-- | meta/classes/package.bbclass | 5 |
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 @@ # files under exec_prefix -inherit package PACKAGE_DEPENDS += "${QADEPENDS}" PACKAGEFUNCS += " do_package_qa " @@ -26,6 +25,7 @@ PACKAGEFUNCS += " do_package_qa " QADEPENDS = "prelink-native" QADEPENDS_class-native = "" QADEPENDS_class-nativesdk = "" +QA_SANE = "True" # # dictionary for elf headers @@ -133,6 +133,7 @@ def package_qa_handle_error(error_class, error_msg, d): package_qa_write_error(error_msg, d) if error_class in (d.getVar("ERROR_QA", True) or "").split(): bb.error("QA Issue: %s" % error_msg) + d.setVar("QA_SANE", False) return False else: bb.warn("QA Issue: %s" % error_msg) @@ -820,7 +821,8 @@ python do_package_qa () { if 'libdir' in d.getVar("ALL_QA", True).split(): package_qa_check_libdir(d) - if not walk_sane or not rdepends_sane or not deps_sane: + qa_sane = d.getVar("QA_SANE", True) + if not walk_sane or not rdepends_sane or not deps_sane or not qa_sane: bb.fatal("QA run found fatal errors. Please consider fixing them.") bb.note("DONE with PACKAGE QA") } 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 inherit prserv inherit chrpath +# Need the package_qa_handle_error() in insane.bbclass +inherit insane + PKGD = "${WORKDIR}/package" PKGDEST = "${WORKDIR}/packages-split" @@ -1813,7 +1816,7 @@ PACKAGESPLITFUNCS ?= " \ package_do_split_locales \ populate_packages" # Functions which process metadata based on split packages -PACKAGEFUNCS ?= " \ +PACKAGEFUNCS += " \ package_fixsymlinks \ package_name_hook \ package_do_filedeps \ |