diff options
authorRoss Burton <ross.burton@intel.com>2016-02-01 16:21:24 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-02 14:42:15 +0000
commit47d38d4d86ec6a8c143603ef4d0f056f5a5d9ceb (patch)
parent1c5fc03e1cb3241c7bfd5642c0fc8c1a7e0c1e36 (diff)
insane: add test for -dev packaging containing real libraries
PN-dev packages should generally contain the link-time symlinks from libfoo.so to the real libraries. If a recipe installs a real library named libfoo.so there's a very good chance that it's a loadable module and should be in another package. Signed-off-by: Ross Burton <ross.burton@intel.com>
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 500a37ca0f..c70e887d52 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -38,7 +38,7 @@ 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 expanded-d invalid-chars \
- license-checksum \
+ license-checksum dev-elf \
FAKEROOT_QA = "host-user-contaminated"
FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
@@ -275,6 +275,17 @@ def package_qa_check_dev(path, name, d, elf, messages):
package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package contains symlink .so: %s path '%s'" % \
(name, package_qa_clean_path(path,d)))
+QAPATHTEST[dev-elf] = "package_qa_check_dev_elf"
+def package_qa_check_dev_elf(path, name, d, elf, messages):
+ """
+ Check that -dev doesn't contain real shared libraries. The test has to
+ check that the file is not a link and is an ELF object as some recipes
+ install link-time .so files that are linker scripts.
+ """
+ if name.endswith("-dev") and path.endswith(".so") and not os.path.islink(path) and elf:
+ package_qa_add_message(messages, "dev-elf", "-dev package contains non-symlink .so: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d)))
QAPATHTEST[staticdev] = "package_qa_check_staticdev"
def package_qa_check_staticdev(path, name, d, elf, messages):