[oe] [PATCH] base.bbclass: not use bb.fetch.urldata in do_unpack() for traversing SRC_URIs

Khem Raj raj.khem at gmail.com
Mon Sep 27 18:32:16 UTC 2010


On Mon, Sep 27, 2010 at 11:21 AM, Denys Dmytriyenko <denis at denix.org> wrote:
> bb.fetch.urldata contains cached SRC_URIs, but in case SRC_URI is altered by
> amend.inc or machine override, the original SRC_URI is not removed from the
> cache, leading to calling do_unpack() multiple times on original and modified
> versions of the file. Don't rely on bb.fetch.urldata and traverse SRC_URIs
> directly.
>
> Some background and details:
> http://thread.gmane.org/gmane.comp.handhelds.openembedded/36703
>
> Signed-off-by: Denys Dmytriyenko <denis at denix.org>

looks good

Acked-by: Khem Raj <raj.khem at gmail.com>

> ---
>  classes/base.bbclass |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/classes/base.bbclass b/classes/base.bbclass
> index b19eb32..964fe1c 100644
> --- a/classes/base.bbclass
> +++ b/classes/base.bbclass
> @@ -202,10 +202,14 @@ do_unpack[dirs] = "${WORKDIR}"
>  python base_do_unpack() {
>     from glob import glob
>
> -    srcurldata = bb.fetch.init(d.getVar("SRC_URI", True).split(), d, True)
> +    src_uri = d.getVar("SRC_URI", True)
> +    if not src_uri:
> +        return
> +    srcurldata = bb.fetch.init(src_uri.split(), d, True)
>     filespath = d.getVar("FILESPATH", True).split(":")
>
> -    for url, urldata in srcurldata.iteritems():
> +    for url in src_uri.split():
> +        urldata = srcurldata[url]
>         if urldata.type == "file" and "*" in urldata.path:
>             # The fetch code doesn't know how to handle globs, so
>             # we need to handle the local bits ourselves
> --
> 1.6.3.3
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>




More information about the Openembedded-devel mailing list