[OE-core] [PATCH] utils.bbclass: skip empty paths when handling FILESEXTRAPATHS

Chris Larson clarson at kergoth.com
Fri Aug 19 22:11:08 UTC 2011


On Fri, Aug 19, 2011 at 5:16 AM,  <martin.jansa at gmail.com> wrote:
> From: Martin Jansa <Martin.Jansa at gmail.com>
>
> * if there is multiple .bbappend files with FILESEXTRAPATHS_prepend := "/:"
>  then the one parsed last is causing trailing ':' and that's causing empty element in
>  path = extrapaths.split(:) + path
> * it's hard to keep all .bbappends from foreign layers to follow this rule, so it's better
>  to be able to handle trailing ':'
>
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
>  meta/classes/utils.bbclass |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
> index 56abdd8..3c2e342 100644
> --- a/meta/classes/utils.bbclass
> +++ b/meta/classes/utils.bbclass
> @@ -338,8 +338,9 @@ def base_set_filespath(path, d):
>        # The ":" ensures we have an 'empty' override
>        overrides = (bb.data.getVar("OVERRIDES", d, 1) or "") + ":"
>        for p in path:
> -               for o in overrides.split(":"):
> -                       filespath.append(os.path.join(p, o))
> +               if p != "":
> +                       for o in overrides.split(":"):
> +                               filespath.append(os.path.join(p, o))

You shouldn't use 'p != "":'. Instead, use the fact that the empty
string is false in boolean context.  'if p:'.

Of course, you could also use filter. path = filter(None, path) --
filtering an iterable with a function of None results in it dropping
all false values. But then, there's a tendency nowadays to avoid
map/filter/etc, so that's probably not best :)
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics




More information about the Openembedded-core mailing list