Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] insane.bbclass: Added QA test for unexpanded ${D}
Date: Wed, 3 Dec 2014 11:25:07 -0600	[thread overview]
Message-ID: <547F4773.9020006@windriver.com> (raw)
In-Reply-To: <8d53e3e985f526e6c845328dc6bfa9c27cc63413.1417623235.git.alejandro.hernandez@linux.intel.com>

On 12/3/14, 11:00 AM, Alejandro Hernandez wrote:
> Checks in FILES and pkg_* variables ,solves common mistake
> of using ${D} instead of $D and warns the user accordingly.
>
> [YOCTO #6642]
>
> Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
> ---
>   meta/classes/insane.bbclass | 34 +++++++++++++++++++++++++++++++++-
>   1 file changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index 0b45374..419c89b 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -906,6 +906,39 @@ def package_qa_check_deps(pkg, pkgdest, skip, d):
>
>       return sane
>
> +def package_qa_check_unexpanded_d(d):
> +    """
> +    Check for unexpanded D variable in pkg_* and FILES
> +    variables, warn the user to use it correctly.
> +    """
> +
> +    sane = True
> +
> +    # Get variables for current package
> +    pkg = d.getVar('PN', True)
> +    localdata = bb.data.createCopy(d)
> +    localdata.setVar('OVERRIDES', pkg)
> +    bb.data.update_data(localdata)
> +
> +    # Go through all variables and check if unexpanded D is found, warn the user accordingly
> +    for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm':
> +        bbvar = localdata.getVar(var, False)
> +        if bbvar:
> +            if "${D}" in bbvar:
> +                if var == 'FILES':
> +                    bb.error("FILES should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference")
> +                    sane = False
> +                else:
> +                    bb.error("%s in %s recipe contains ${D}, it should be replaced by $D instead" % (var, pkg))
> +                    sane = False
> +    return sane
> +
> +# Actual task to check for ${D
> +python do_qa_check_unexpanded_d(){
> +    package_qa_check_unexpanded_d(d)
> +}
> +addtask qa_check_unexpanded_d before do_compile
> +

would it make more sense to have a qa check -before- compile, then add this to 
that task.. and then have one (current place) after install?

That way we could add additional checks (as needed) for things that are 
setup/confgiured incorrectly.. and checks for the build/install stuff..

--Mark

>   # The PACKAGE FUNC to scan each package
>   python do_package_qa () {
>       import subprocess
> @@ -1000,7 +1033,6 @@ python do_package_qa () {
>           if not package_qa_check_deps(package, pkgdest, skip, d):
>               deps_sane = False
>
> -
>       if 'libdir' in d.getVar("ALL_QA", True).split():
>           package_qa_check_libdir(d)
>
>



  reply	other threads:[~2014-12-03 17:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1417623235.git.alejandro.hernandez@linux.intel.com>
2014-12-03 17:00 ` [PATCH 1/1] insane.bbclass: Added QA test for unexpanded ${D} Alejandro Hernandez
2014-12-03 17:25   ` Mark Hatle [this message]
2014-12-04  9:48   ` Richard Purdie
2014-12-05 15:58     ` Alejandro Hernandez

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=547F4773.9020006@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /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