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

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Mon Sep 27 19:03:41 UTC 2010


2010/9/27 Khem Raj <raj.khem at gmail.com>:
> 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>

Tested, this also resolves my SRC_URI problem.
Acked-by: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>

& thanks for fixing this!

Frans
>
>> ---
>>  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
>>
>
> _______________________________________________
> 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