From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Darren Hart <dvhart@linux.intel.com>
Cc: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] utils.bbclass: make FILESEXTRAPATHS colon delimited
Date: Fri, 27 May 2011 16:45:18 +0100 [thread overview]
Message-ID: <1306511118.27470.276.camel@rex> (raw)
In-Reply-To: <4DDF17A7.4010807@linux.intel.com>
On Thu, 2011-05-26 at 20:16 -0700, Darren Hart wrote:
>
> On 05/26/2011 04:46 PM, Richard Purdie wrote:
> > On Wed, 2011-05-25 at 16:05 -0700, Darren Hart wrote:
> >> Fixes [YOCTO 1102]
> >>
> >> Path variables are typically : delimited. White space is allowed in paths, so
> >> is not a good choice for separating paths. Currently utils.bbclass performs the
> >> following:
> >>
> >> extrapaths = (bb.data.getVar("FILESEXTRAPATHS", d, True) or "").split()
> >>
> >> This splits FILESEXTRAPATHS on whitespace. It later splits overrides on : and
> >> reassembles them all together as : delimited.
> >>
> >> There is only one user of FILESEXTRAPATHS in oe-core (qt4-tools-native, which
> >> uses : anyway) and none in oe.
> >>
> >> Change the split() in utils.bbclass to split on : instead of whitespace. When
> >> splitting on a defined string (":") we must be careful to handle the empty
> >> string case which returns [''] instead of [].
> >>
> >> Tested building qt4-tools-native and core-image-minimal for surgarbay from
> >> meta-intel with a couple extra layers with FILESEXTRAPATHS modifications added.
> >>
> >> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> >> Cc: Phil Blundell <pb@pbcl.net>
> >> ---
> >> meta/classes/utils.bbclass | 6 ++++--
> >> 1 files changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
> >> index e103351..9930a24 100644
> >> --- a/meta/classes/utils.bbclass
> >> +++ b/meta/classes/utils.bbclass
> >> @@ -331,8 +331,10 @@ def explode_deps(s):
> >>
> >> def base_set_filespath(path, d):
> >> filespath = []
> >> - extrapaths = (bb.data.getVar("FILESEXTRAPATHS", d, True) or "").split()
> >> - path = extrapaths + path
> >> + extrapaths = (bb.data.getVar("FILESEXTRAPATHS", d, True) or "")
> >> + # Don't prepend empty strings to the path list
> >> + if extrapaths != "":
> >> + path = extrapaths.split(":") + path
> >> # The ":" ensures we have an 'empty' override
> >> overrides = (bb.data.getVar("OVERRIDES", d, 1) or "") + ":"
> >> for p in path:
> >
> > This is being a little picky but I find the above hard to read and can't
> > we just do:
> >
> > - extrapaths = (bb.data.getVar("FILESEXTRAPATHS", d, True) or "").split()
> > + extrapaths = (bb.data.getVar("FILESEXTRAPATHS", d, True) or "").split(":")
>
> Unfortunately not (this is what I tried initially), python split() has a
> rather annoying "feature", see:
> http://docs.python.org/library/string.html
>
> Where it states:
> "
> The behavior of split on an empty string depends on the value of sep. If
> sep is not specified, or specified as None, the result will be an empty
> list. If sep is specified as any string, the result will be a list
> containing one element which is an empty string.
> "
>
> ie:
> "".split() -> []
> "".split(":") -> [""]
>
> So by changing from split() to split(":") we change the behavior of
> split when operating on empty strings, requiring us to special case the
> output. Rather obnoxious wouldn't you say?
Horrible but merged to master ;-).
Cheers,
Richard
prev parent reply other threads:[~2011-05-27 15:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-25 23:05 [PATCH 0/1] utils.bbclass: make FILESEXTRAPATHS colon delimited Darren Hart
2011-05-25 23:05 ` [PATCH 1/1] " Darren Hart
2011-05-26 23:46 ` Richard Purdie
2011-05-27 3:16 ` Darren Hart
2011-05-27 9:37 ` Phil Blundell
2011-05-27 15:45 ` 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=1306511118.27470.276.camel@rex \
--to=richard.purdie@linuxfoundation.org \
--cc=dvhart@linux.intel.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