All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.