On Fri, 2012-09-14 at 12:50 +0300, Radu Moisan wrote: > Check in ${PKGD} for libraries in other locations > then ${libdir}. Trigger a warning if so. > > [Yocto #2038] > > Signed-off-by: Radu Moisan <radu.moi...@intel.com> > --- > meta/classes/insane.bbclass | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass > index e74eb3f..d748c26 100644 > --- a/meta/classes/insane.bbclass > +++ b/meta/classes/insane.bbclass > @@ -212,6 +212,18 @@ def package_qa_check_staticdev(path, name, d, elf, > messages): > messages.append("non -staticdev package contains static .a library: > %s path '%s'" % \ > (name, package_qa_clean_path(path,d))) > > +def package_qa_check_libdir(path,libdir): > + """ > + Check in path for libraries in other locations then libdir. Trigger a > warning if so. > + """ > + import re > + lib_re = re.compile("^.*\.(so)") > + for root, dirs, files in os.walk(path): > + if libdir not in root: > + for file in files: > + if lib_re.match(file): > + bb.warn("Found library in wrong location: %s" % > os.path.join(root,file))
This is heading in the right direction but this needs to be something like: messages = [] for ...: ... messages.append("Found library in wrong location: %s" % os.path.join(root,file)) if messages: package_qa_handle_error("libdir", "\n".join(messages), d) so that it checks ERROR_QA for libdir and is either a warning or is fatal. Pattern wise, this needs to look for \lib.*\.so or ${exec_prefix}\lib.* \.so and then check it doesn't start with ${base_libdir}/ or ${libdir}/ respectively. > """ > @@ -688,6 +700,12 @@ python do_package_qa () { > rdepends_sane = False > > > + ml = d.getVar("MLPREFIX", True) or "" > + if ml: > + pkgd = d.getVar('PKGD', True) > + libdir = d.getVar("libdir", True) > + package_qa_check_libdir(pkgd,libdir) > + With the above changes, this doesn't need to be multilib specific. It will likely show more warnings on multilib builds at least. I'd also appreciate a list of failures on a world mulitlib build (you should be able to set that away in the background and generate it) to see how widespread any problems might be. Cheers, Richard _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core