The following QA checks are not mentioned in the classes reference section on insane.bbclass: already-stripped compile-host-path dep-cmp files-invalid incompatible-license installed-vs-shipped install-host-path libdir packages-list perm-config perm-line perm-link pkgname pkgv-undefined pn-overrides split-strip unsafe-references-in-binaries unsafe-references-in-scripts var-undefined arch buildpaths perms (I can provide background for these)
Paul, Here is the link to the existing section on insane.bbclass - http://www.yoctoproject.org/docs/1.5/ref-manual/ref-manual.html#ref-classes-insane. Can you look at this to see the level of information we provide for checks. Then, provides some detail for the missing checks for this bug? I will then add them to the section. Thanks, Scott
Here's some explanatory text for the missing items: already-stripped: checks that produced binaries have not already been stripped prior to the build system extracting debug symbols. It is common for upstream software projects to default to stripping debug symbols for output binaries; in order for debugging on the target using -dbg packages to work, this stripping must be disabled. split-strip: report when splitting/stripping debug symbols from binaries fails. arch: checks to ensure the architecture, bit size and endianness of all output binaries matches that of the target. This can detect when the wrong compiler or compiler options have been used. installed-vs-shipped: report when files have been installed within do_install but haven't been included in any package (via FILES). Files that don't appear in any package will not be able to be present in an image later on. Ideally all installed files should be packaged, or not be installed at all (or deleted at the end of do_install if this is easier). dep-cmp: checks for invalid version comparison statements in runtime dependency relationships between packages (in RDEPENDS, RRECOMMENDS, RSUGGESTS, RPROVIDES, RREPLACES and RCONFLICTS variable values). Any invalid comparisons may trigger failures or undesirable behaviour when passed to the package manager. files-invalid: checks for FILES variable values containing '//', which is invalid. incompatible-license: report when packages are excluded from being created because they are marked with a license that is in INCOMPATIBLE_LICENSE. compile-host-path: checks the do_compile log for indications that paths to locations on the build host were used, which may result in host contamination of the build output. install-host-path: checks the do_install log for indications that paths to locations on the build host were used, which may result in host contamination of the build output. libdir: checks for libraries being installed into incorrect (possibly hardcoded) installation paths. For instance, this will catch recipes installing /lib/bar.so when ${base_libdir} is "lib32", or installing /usr/lib64/foo.so when ${libdir} is "/usr/lib". packages-list: checks for the same package being listed multiple times in the PACKAGES variable value, which can cause errors during packaging. perm-config: reports lines in fs-perms.txt with an invalid format. perm-line: reports lines in fs-perms.txt with an invalid format. perm-link: reports lines in fs-perms.txt specifying 'link' where the specified target already exists. pkgname: checks that all packages in PACKAGES have names that do not contain invalid characters (i.e. characters other than 0-9, a-z, ., +, and -) pn-overrides: checks that a recipe does not have a name (PN) value that appears in OVERRIDES. If a recipe is named such that its PN value matches something already in OVERRIDES (such as when PN happens to be the same as MACHINE or DISTRO), it can have unexpected consequences. For example, assignments such as FILES_${PN} = "xyz" will effectively turn into FILES = "xyz". unsafe-references-in-binaries: report when a binary installed in ${base_libdir}, ${base_bindir}, or ${base_sbindir} (/lib, /bin and /sbin respectively by default) depends on another binary installed under ${exec_prefix} (/usr by default). This is a concern if you wish the system to remain basically operable if /usr is mounted separately and is not mounted. unsafe-references-in-scripts: report when a script file installed in ${base_libdir}, ${base_bindir}, or ${base_sbindir} (/lib, /bin and /sbin respectively by default) depends on files installed under ${exec_prefix} (/usr by default). This is a concern if you wish the system to remain basically operable if /usr is mounted separately and is not mounted. var-undefined: reports when variables fundamental to packaging (such as WORKDIR, DEPLOY_DIR, D, PN and PKGD) are undefined during do_package. pkgv-undefined: checks for the PKGV variable being undefined during do_package. buildpaths: checks for paths to locations on the build host inside output files. (In practice this currently triggers too many false positives and thus is not normally enabled.) perms: Not currently used, but reserved.
See the http://www.yoctoproject.org/docs/1.5/ref-manual/ref-manual.html#ref-classes-insane section for the additional check documentation. Send me feedback for any changes. Scott
No comments on the fix put in place last August so I am marking this bug RESOLVED. Scott
Switching to resolved.