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:48:26 +0100 |
commit | 43713b9e17707992569d807cdd61aaaf969ec6fc (patch) | |
tree | cb9bb614ac90762280db1560c3ad21eff4069f16 | |
parent | 7a5a7551eb3ea1d4485e697f60e94cab4ed40946 (diff) | |
download | poky-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.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 @@ | |||
17 | # files under exec_prefix | 17 | # files under exec_prefix |
18 | 18 | ||
19 | 19 | ||
20 | inherit package | ||
21 | PACKAGE_DEPENDS += "${QADEPENDS}" | 20 | PACKAGE_DEPENDS += "${QADEPENDS}" |
22 | PACKAGEFUNCS += " do_package_qa " | 21 | PACKAGEFUNCS += " do_package_qa " |
23 | 22 | ||
@@ -26,6 +25,7 @@ PACKAGEFUNCS += " do_package_qa " | |||
26 | QADEPENDS = "prelink-native" | 25 | QADEPENDS = "prelink-native" |
27 | QADEPENDS_class-native = "" | 26 | QADEPENDS_class-native = "" |
28 | QADEPENDS_class-nativesdk = "" | 27 | QADEPENDS_class-nativesdk = "" |
28 | QA_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 | |||
42 | inherit prserv | 42 | inherit prserv |
43 | inherit chrpath | 43 | inherit chrpath |
44 | 44 | ||
45 | # Need the package_qa_handle_error() in insane.bbclass | ||
46 | inherit insane | ||
47 | |||
45 | PKGD = "${WORKDIR}/package" | 48 | PKGD = "${WORKDIR}/package" |
46 | PKGDEST = "${WORKDIR}/packages-split" | 49 | PKGDEST = "${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 |
1816 | PACKAGEFUNCS ?= " \ | 1819 | PACKAGEFUNCS += " \ |
1817 | package_fixsymlinks \ | 1820 | package_fixsymlinks \ |
1818 | package_name_hook \ | 1821 | package_name_hook \ |
1819 | package_do_filedeps \ | 1822 | package_do_filedeps \ |