diff options
author | Chad Nelson <cnelson711@gmail.com> | 2014-09-12 15:42:21 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-09-23 20:19:40 +0100 |
commit | 3b5b1703b77490116dda895b29737cea51a3d6a0 (patch) | |
tree | 09cb6ead4101fd27b8a88eaccfe196cb99f7b7da | |
parent | 1c75cc4d0c8b606c1fe76e6bf60bf6a32298b105 (diff) | |
download | bitbake-3b5b1703b77490116dda895b29737cea51a3d6a0.tar.gz |
fetch2/perforce: Fix localfile name if labels are used
I could apply the label "release_1.0" to a super project that contains
many sub projects. If my recipes have SRC_URI's that use that label but
grab different sub-folders, than there's a bug where the cached localfile
(tar.gz) will not be unique and reused at the wrong times.
SRC_URI = "p4://perforce::1234@//depot/SuperProject/MiniProjectAAA/...;label=release_1.0 \
p4://perforce::1234@//depot/SuperProject/MiniProjectBBB/...;label=release_1.0"
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/fetch2/perforce.py | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/bb/fetch2/perforce.py b/lib/bb/fetch2/perforce.py index 9836bd726..47a4a5d3d 100644 --- a/lib/bb/fetch2/perforce.py +++ b/lib/bb/fetch2/perforce.py @@ -103,22 +103,19 @@ class Perforce(FetchMethod): def urldata_init(self, ud, d): (host, path, user, pswd, parm) = Perforce.doparse(ud.url, d) - # If a label is specified, we use that as our filename - - if "label" in parm: - ud.localfile = "%s.tar.gz" % (parm["label"]) - return - base = path which = path.find('/...') if which != -1: - base = path[:which-1] + base = path[:which] base = self._strip_leading_slashes(base) + + if "label" in parm: + version = parm["label"] + else: + version = Perforce.getcset(d, path, host, user, pswd, parm) - cset = Perforce.getcset(d, path, host, user, pswd, parm) - - ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host, base.replace('/', '.'), cset), d) + ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host, base.replace('/', '.'), version), d) def download(self, ud, d): """ |