diff options
Diffstat (limited to 'bitbake/lib/bb/fetch')
-rw-r--r-- | bitbake/lib/bb/fetch/__init__.py | 17 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch/local.py | 4 |
2 files changed, 18 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py index f739245bd1..229b28c19d 100644 --- a/bitbake/lib/bb/fetch/__init__.py +++ b/bitbake/lib/bb/fetch/__init__.py @@ -182,8 +182,21 @@ def get_srcrev(d): if len(scms) == 1: return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d) - bb.msg.error(bb.msg.domain.Fetcher, "Sorry, support for SRCREV_FORMAT still needs to be written") - raise ParameterError + # + # Mutiple SCMs are in SRC_URI so we resort to SRCREV_FORMAT + # + format = bb.data.getVar('SRCREV_FORMAT', d, 1) + if not format: + bb.msg.error(bb.msg.domain.Fetcher, "The SRCREV_FORMAT variable must be set when multiple SCMs are used.") + raise ParameterError + + for scm in scms: + if 'name' in urldata[scm].parm: + name = urldata[scm].parm["name"] + rev = urldata[scm].method.sortable_revision(scm, urldata[scm], d) + format = format.replace(name, rev) + + return format def localpath(url, d, cache = True): """ diff --git a/bitbake/lib/bb/fetch/local.py b/bitbake/lib/bb/fetch/local.py index 9be8f1ce4b..5e480a208e 100644 --- a/bitbake/lib/bb/fetch/local.py +++ b/bitbake/lib/bb/fetch/local.py @@ -38,9 +38,11 @@ class Local(Fetch): return urldata.type in ['file','patch'] def localpath(self, url, urldata, d): - """Return the local filename of a given url assuming a successful fetch. + """ + Return the local filename of a given url assuming a successful fetch. """ path = url.split("://")[1] + path = path.split(";")[0] newpath = path if path[0] != "/": filespath = data.getVar('FILESPATH', d, 1) |