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>
This commit is contained in:
parent
7a5a7551eb
commit
43713b9e17
|
@ -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")
|
||||
}
|
||||
|
|
|
@ -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 \
|
||||
|
|
Loading…
Reference in New Issue