diff options
author | Denys Dmytriyenko <denis@denix.org> | 2010-09-27 08:21:04 +0000 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2010-09-27 15:33:17 -0400 |
commit | 661658f62bf4c76b328d67e1aa252a57841b312d (patch) | |
tree | 6a6fd630d5160af661b68988d36cbcbf8da12fca /classes | |
parent | 31fbeac34133fe4d1baad4464ba165db037b7f84 (diff) | |
download | openembedded-661658f62bf4c76b328d67e1aa252a57841b312d.tar.gz |
base.bbclass: not use bb.fetch.urldata in do_unpack() for traversing SRC_URIs
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@denix.org>
Acked-by: Chris Larson <chris_larson@mentor.com>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'classes')
-rw-r--r-- | classes/base.bbclass | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index b19eb32751..964fe1cc10 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 |