diff options
Diffstat (limited to 'classes')
-rw-r--r-- | classes/icecc.bbclass | 2 | ||||
-rw-r--r-- | classes/insane.bbclass | 51 |
2 files changed, 46 insertions, 7 deletions
diff --git a/classes/icecc.bbclass b/classes/icecc.bbclass index 66a5bf79e3..2f34d408d2 100644 --- a/classes/icecc.bbclass +++ b/classes/icecc.bbclass @@ -10,7 +10,7 @@ def icc_determine_gcc_version(gcc): 'i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5363)' """ - return os.popen("%s --version" % gcc ).readline()[2] + return os.popen("%s --version" % gcc ).readline().split()[2] def create_env(bb,d): """ 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)) } |