[OE-core] [PATCH] insane.bbclass: Enhance file-rdeps QA check
Alejandro Hernandez
alejandro.hernandez at linux.intel.com
Mon Feb 23 19:04:41 UTC 2015
Adds symlink-to-sysroot check to the QA_WARN, Changes filerdepends
from set() to dict(), hence methodsfor adding or deleting items had
to change, keeps track of the key:value relationship, flags the
issue along with the offending file accordingly.
Signed-off-by: Alejandro Hernandez <alejandro.hernandez at linux.intel.com>
---
meta/classes/insane.bbclass | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 143ec46..542346a 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -34,7 +34,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
split-strip packages-list pkgv-undefined var-undefined \
- version-going-backwards \
+ version-going-backwards symlink-to-sysroot\
"
ALL_QA = "${WARN_QA} ${ERROR_QA}"
@@ -604,7 +604,6 @@ def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
if target.startswith(tmpdir):
trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "")
messages["symlink-to-sysroot"] = "Symlink %s in %s points to TMPDIR" % (trimmed, name)
-
def package_qa_check_license(workdir, d):
"""
Check for changes in the license files
@@ -803,13 +802,14 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
if bb.data.inherits_class('nativesdk', d):
ignored_file_rdeps |= set(['/bin/bash', '/usr/bin/perl'])
# For Saving the FILERDEPENDS
- filerdepends = set()
+ filerdepends = {}
rdep_data = oe.packagedata.read_subpkgdata(pkg, d)
for key in rdep_data:
if key.startswith("FILERDEPENDS_"):
for subkey in rdep_data[key].split():
- filerdepends.add(subkey)
- filerdepends -= ignored_file_rdeps
+ if subkey not in ignored_file_rdeps:
+ # We already know it starts with FILERDEPENDS_
+ filerdepends[subkey] = key[13:]
if filerdepends:
next = rdepends
@@ -841,31 +841,27 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
# case there is a RDEPENDS_pkg = "python" in the recipe.
for py in [ d.getVar('MLPREFIX', True) + "python", "python" ]:
if py in done:
- filerdepends.discard("/usr/bin/python")
+ filerdepends.pop("/usr/bin/python",None)
done.remove(py)
for rdep in done:
# For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO
- rdep_rprovides = set()
rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
for key in rdep_data:
if key.startswith("FILERPROVIDES_") or key.startswith("RPROVIDES_"):
for subkey in rdep_data[key].split():
- rdep_rprovides.add(subkey)
+ filerdepends.pop(subkey,None)
# Add the files list to the rprovides
if key == "FILES_INFO":
# Use eval() to make it as a dict
for subkey in eval(rdep_data[key]):
- rdep_rprovides.add(subkey)
- filerdepends -= rdep_rprovides
+ filerdepends.pop(subkey,None)
if not filerdepends:
# Break if all the file rdepends are met
break
- else:
- # Clear it for the next loop
- rdep_rprovides.clear()
if filerdepends:
- error_msg = "%s requires %s, but no providers in its RDEPENDS" % \
- (pkg, ', '.join(str(e) for e in filerdepends))
+ for key in filerdepends:
+ error_msg = "%s contained in package %s requires %s, but no providers found in its RDEPENDS" % \
+ (filerdepends[key],pkg, key)
sane = package_qa_handle_error("file-rdeps", error_msg, d)
return sane
--
1.9.1
More information about the Openembedded-core
mailing list