[OE-core] [PATCH] insane.bbclass: skip opening invalid symlinks in package_qa_check_libdir
Yi Zhao
yi.zhao at windriver.com
Tue Mar 6 01:11:40 UTC 2018
If the library is installed in a non-standard location and don't set
INSANE_SKIP, e.g. libfoo.so is installed in /usr/local/lib. The
package_qa_check_libdir will cause a traceback because it will try to
open the .so link in package-dev to check if it's an ELF:
The stack trace of python calls that resulted in this exception/failure
was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:do_package_qa(d)
[snip]
0048: def open(self):
*** 0049: with open(self.name, "rb") as f:
0050: try:
0051: self.data = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
0052: except ValueError:
0053: # This means the file is empty
Exception: FileNotFoundError: [Errno 2] No such file or directory:
'/buildarea1/build/tmp/work/i586-poky-linux/foo/1.0-r0/packages-split/foo-dev/usr/local/lib/libfoo.so'
Add checking before open file to skip the invalid sysmlinks.
[YOCTO #11862]
Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
---
meta/classes/insane.bbclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 7407b29..28c9eee 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -357,7 +357,7 @@ def package_qa_check_libdir(d):
package, rel_path = rel_path.split(os.sep, 1)
rel_path = os.sep + rel_path
if lib_re.match(rel_path):
- if base_libdir not in rel_path:
+ if base_libdir not in rel_path and os.path.exists(full_path):
# make sure it's an actual ELF file
elf = oe.qa.ELFFile(full_path)
try:
@@ -366,7 +366,7 @@ def package_qa_check_libdir(d):
except (oe.qa.NotELFFileError):
pass
if exec_re.match(rel_path):
- if libdir not in rel_path and libexecdir not in rel_path:
+ if libdir not in rel_path and libexecdir not in rel_path and os.path.exists(full_path):
# make sure it's an actual ELF file
elf = oe.qa.ELFFile(full_path)
try:
--
2.7.4
More information about the Openembedded-core
mailing list