[OE-core] [PATCHv2] insane.bbclass: avoid false positives on library location
Bill Randle
william.c.randle at intel.com
Fri Apr 1 16:49:12 UTC 2016
package_qa_check_libdir() reports that the file libsoletta.so.0.0.1-gdb.py
in /usr/share/gdb/auto-load is in the wrong location. Before generating
a warning for files in non-standard locations, check that the file is an
actual elf file (and hence a real library file).
[YOCTO #9215]
Signed-off-by: Bill Randle <william.c.randle at intel.com>
---
meta/classes/insane.bbclass | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 7ac945d..c57b217 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -318,6 +318,9 @@ def package_qa_check_libdir(d):
messages = []
+ # The re's are purposely fuzzy, as some there are some .so.x.y.z files
+ # that don't follow the standard naming convention. It checks later
+ # that they are actual ELF files
lib_re = re.compile("^/lib.+\.so(\..+)?$")
exec_re = re.compile("^%s.*/lib.+\.so(\..+)?$" % exec_prefix)
@@ -342,10 +345,22 @@ def package_qa_check_libdir(d):
rel_path = os.sep + rel_path
if lib_re.match(rel_path):
if base_libdir not in rel_path:
- messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ # make sure it's an actual ELF file
+ elf = oe.qa.ELFFile(full_path)
+ try:
+ elf.open()
+ messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ except (oe.qa.NotELFFileError):
+ pass
if exec_re.match(rel_path):
if libdir not in rel_path and libexecdir not in rel_path:
- messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ # make sure it's an actual ELF file
+ elf = oe.qa.ELFFile(full_path)
+ try:
+ elf.open()
+ messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ except (oe.qa.NotELFFileError):
+ pass
if messages:
package_qa_handle_error("libdir", "\n".join(messages), d)
--
2.5.0
More information about the Openembedded-core
mailing list