1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

insane/package: refactor packaging sanity tests

Refactor packaging sanity tests from package.bbclass to insane.bbclass
so that the message can respect WARN_QA (print the warning message and
go on the task) and ERROR_QA (print the error message and fail the
task).

- For the bb.warn(), give it a message name and add it to WARN_QA, then
  use package_qa_handle_error() to handle it.

- For the bb.error(), give it a message name and add it to ERROR_QA,
  then use package_qa_handle_error() to handle it.

- All the bb.warn() and bb.error() have been replaced in
  package.bbclass.

- A few bb.warn() and bb.error() in insane.bbclass have been kept since
  they can not be replaced or doesn't have to, for example the
  bb.error() in package_qa_check_license(), it will print the error
  message and then invoke bb.fatal() to fail the task, I think that we
  don't have to replace it with package_qa_handle_error().

- Put all the WARN_QA and ERROR_QA in one line, so that they can be
  redefined by the user easily.

[YOCTO #3190]
[YOCTO #4396]

(From OE-Core rev: 2f117ee615b703db07d3274ac592e2bd653743dd)

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:
Robert Yang
2013-05-12 06:46:10 +08:00
committed by Richard Purdie
parent b4371dd0e4
commit 829d6bf005
2 changed files with 45 additions and 24 deletions
+22 -11
View File
@@ -27,6 +27,20 @@ QADEPENDS_class-native = ""
QADEPENDS_class-nativesdk = ""
QA_SANE = "True"
# Elect whether a given type of error is a warning or error, they may
# have been set by other files.
WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
textrel already-stripped incompatible-license files-invalid \
installed-vs-shipped compile-host-path install-host-path \
pn-overrides \
"
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch la2 pkgconfig la \
perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
split-strip packages-list pkgv-undefined var-undefined \
"
ALL_QA = "${WARN_QA} ${ERROR_QA}"
#
# dictionary for elf headers
#
@@ -111,12 +125,6 @@ def package_qa_get_machine_dict():
}
# Currently not being used by default "desktop"
WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel"
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch la2 pkgconfig la perms dep-cmp pkgvarcheck"
ALL_QA = "${WARN_QA} ${ERROR_QA}"
def package_qa_clean_path(path,d):
""" Remove the common prefix from the path. In this case it is the TMPDIR"""
return path.replace(d.getVar('TMPDIR',True),"")
@@ -757,8 +765,9 @@ python do_package_qa () {
if os.path.exists(compilelog):
statement = "grep -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s > /dev/null" % compilelog
if subprocess.call(statement, shell=True) == 0:
bb.warn("%s: The compile log indicates that host include and/or library paths were used.\n \
Please check the log '%s' for more information." % (pkg, compilelog))
msg = "%s: The compile log indicates that host include and/or library paths were used.\n \
Please check the log '%s' for more information." % (pkg, compilelog)
package_qa_handle_error("compile-host-path", msg, d)
# Check the install log for host contamination
installlog = os.path.join(logdir,"log.do_install")
@@ -766,8 +775,9 @@ python do_package_qa () {
if os.path.exists(installlog):
statement = "grep -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s > /dev/null" % installlog
if subprocess.call(statement, shell=True) == 0:
bb.warn("%s: The install log indicates that host include and/or library paths were used.\n \
Please check the log '%s' for more information." % (pkg, installlog))
msg = "%s: The install log indicates that host include and/or library paths were used.\n \
Please check the log '%s' for more information." % (pkg, installlog)
package_qa_handle_error("install-host-path", msg, d)
# Scan the packages...
pkgdest = d.getVar('PKGDEST', True)
@@ -911,7 +921,8 @@ python () {
overrides = d.getVar('OVERRIDES', True).split(':')
pn = d.getVar('PN', True)
if pn in overrides:
bb.warn('Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE", True), pn))
msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE", True), pn)
package_qa_handle_error("pn-overrides", msg, d)
issues = []
if (d.getVar('PACKAGES', True) or "").split():