Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: [PATCH] packagedata: Fix to ensure variables expand correctly
Date: Thu, 11 Jun 2015 23:06:56 +0100	[thread overview]
Message-ID: <1434060416.28975.245.camel@linuxfoundation.org> (raw)

If we set unsuffixed variables here there is a chance they could clobber
override versions of that variable, e.g. DESCRIPTION could clobber
DESCRIPTION_<pkgname>. We therefore don't clobber for the unsuffixed
variable versions by using the parsing flag to setVar.

This becomes a problem with the modifications to bitbake to 
have continual expansion of the datastore, its about the one place this 
turns out to be problematic.

The parameter to setVar works with current bitbake even though
we don't have the new API since it gets swallowed by the logging code.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass
index d1aedf2..3397f1e 100644
--- a/meta/classes/packagedata.bbclass
+++ b/meta/classes/packagedata.bbclass
@@ -22,5 +22,13 @@ python read_subpackage_metadata () {
                         bb.fatal("Recipe %s is trying to create package %s which was already written by recipe %s. This will cause corruption, please resolve this and only provide the package from one recipe or the other or only build one of the recipes." % (vars[key], pkg, sdata[key]))
                     bb.fatal("Recipe %s is trying to change %s from '%s' to '%s'. This will cause do_package_write_* failures since the incorrect data will be used and they will be unable to find the right workdir." % (vars["PN"], key, vars[key], sdata[key]))
                 continue
-            d.setVar(key, sdata[key])
+            #
+            # If we set unsuffixed variables here there is a chance they could clobber override versions
+            # of that variable, e.g. DESCRIPTION could clobber DESCRIPTION_<pkgname>
+            # We therefore don't clobber for the unsuffixed variable versions
+            #
+            if key.endswith("_" + pkg):
+                d.setVar(key, sdata[key])
+            else:
+                d.setVar(key, sdata[key], parsing=True)
 }




                 reply	other threads:[~2015-06-11 22:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=1434060416.28975.245.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --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