[oe-commits] [openembedded-core] 05/22: insane.bbclass: avoid false positives on library location

git at git.openembedded.org git at git.openembedded.org
Sun Apr 3 14:54:11 UTC 2016


rpurdie pushed a commit to branch master
in repository openembedded-core.

commit a3ad36b9a435e7c3d97f114809561198b8abe6cf
Author: Bill Randle <william.c.randle at intel.com>
AuthorDate: Fri Apr 1 09:49:12 2016 -0700

    insane.bbclass: avoid false positives on library location
    
    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>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 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)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list