From: Darren Hart <dvhart@linux.intel.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
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: Thu, 26 May 2011 20:16:55 -0700 [thread overview]
Message-ID: <4DDF17A7.4010807@linux.intel.com> (raw)
In-Reply-To: <1306453593.27470.226.camel@rex>
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?
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
next prev parent reply other threads:[~2011-05-27 3:20 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 [this message]
2011-05-27 9:37 ` Phil Blundell
2011-05-27 15:45 ` Richard Purdie
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=4DDF17A7.4010807@linux.intel.com \
--to=dvhart@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.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