From 2f8b6f197101850d3c53b260b09b4e18d1fdcb64 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Mon, 11 Sep 2006 13:23:58 +0000 Subject: classes/insane.bbclass: Run the first test of the insanity.bbclass --- classes/insane.bbclass | 51 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 395f124572..c74601aadd 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -1,4 +1,3 @@ -# # BB Class inspired by ebuild.sh # # This class will test files after installation for certain @@ -23,18 +22,58 @@ inherit package PACKAGE_DEPENDS += "pax-utils-native" PACKAGEFUNCS += " do_package_qa " -def package_qa_check_rpath(path): +def package_qa_check_rpath(file,name): + """ + Check for dangerous RPATHs + """ pass def package_qa_check_devdbg(path, name): + """ + Check for debug remains inside the binary or + non dev packages containing + """ + if not "-dev" in name: + if path[-3:] == ".so": + bb.error("QA Issue: non dev package contains .so") + + if not "-dbg" in name: + if path[-4:] == ".dbg": + bb.error("QA Issue: non debug package contains .dbg file") + +def package_qa_check_perm(path,name): + """ + Check the permission of files + """ pass -def package_qa_check_perm(path): +def package_qa_check_arch(path,name): + """ + Check if archs are compatible + """ pass +def package_qa_check_pcla(path,name): + """ + .pc and .la files should not point + """ + def package_qa_check_staged(path): + """ + Check staged la and pc files for sanity + -e.g. installed being false + """ pass +# Walk over all files in a directory and call func +def package_qa_walk(path, funcs, package): + import os + for root, dirs, files in os.walk(path): + for file in files: + path = os.path.join(root,file) + for func in funcs: + func(path, package) + # The PACKAGE FUNC to scan each package python do_package_qa () { @@ -49,9 +88,7 @@ python do_package_qa () { for package in packages.split(): bb.note("Package: %s" % package) path = "%s/install/%s" % (workdir, package) - package_qa_check_rpath(path) - package_qa_check_devdbg(path,package) - package_qa_check_perm(path) + package_qa_walk(path, [package_qa_check_rpath, package_qa_check_devdbg, package_qa_check_perm, package_qa_check_arch], package) } @@ -59,4 +96,6 @@ python do_package_qa () { addtask qa_staging after do_populate_staging before do_build python do_qa_staging() { bb.note("Staged!") + + package_qa_check_staged(bb.data.getVar('STAGING_DIR',d,True)) } -- cgit v1.2.3