From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Radu Moisan <radu.moisan@intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH v3] insane.bbclass: add library dir sanity check
Date: Fri, 14 Sep 2012 12:40:40 +0100 [thread overview]
Message-ID: <1347622840.9456.25.camel@ted> (raw)
In-Reply-To: <1347616211-3039-1-git-send-email-radu.moisan@intel.com>
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.moisan@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
prev parent reply other threads:[~2012-09-14 11:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-14 9:50 [PATCH v3] insane.bbclass: add library dir sanity check Radu Moisan
2012-09-14 10:39 ` Radu Moisan
2012-09-14 11:40 ` Richard Purdie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1347622840.9456.25.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=radu.moisan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox