diff options
author | Olof Johansson <olof.johansson@axis.com> | 2014-01-20 12:03:20 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-24 10:13:25 +0000 |
commit | 4d502578f022bcf772780550c047b8c09ba01443 (patch) | |
tree | abda8c57f0609cb82da243168513f4f7197d0578 /lib | |
parent | fa9f4eb8784553deb782bff34c5e04012c2c52c9 (diff) | |
download | bitbake-4d502578f022bcf772780550c047b8c09ba01443.tar.gz |
fetch2.URI: Coerce urlparse to use netloc for all schemes
Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/fetch2/__init__.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index f1f2ee602..5c6180bbb 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -33,9 +33,6 @@ import glob import logging import urllib import urlparse -if 'git' not in urlparse.uses_netloc: - urlparse.uses_netloc.append('git') -from urlparse import urlparse import operator import bb.persist_data, bb.utils import bb.checksum @@ -209,13 +206,25 @@ class URI(object): if not uri: return - urlp = urlparse(uri) + urlp = urlparse.urlparse(uri) self.scheme = urlp.scheme - # Convert URI to be relative + reparse = 0 + + # Coerce urlparse to make URI scheme use netloc + if not self.scheme in urlparse.uses_netloc: + urlparse.uses_params.append(self.scheme) + reparse = 1 + + # Make urlparse happy(/ier) by converting local resources + # to RFC compliant URL format. E.g.: + # file://foo.diff -> file:foo.diff if urlp.scheme in self._netloc_forbidden: uri = re.sub("(?<=:)//(?!/)", "", uri, 1) - urlp = urlparse(uri) + reparse = 1 + + if reparse: + urlp = urlparse.urlparse(uri) # Identify if the URI is relative or not if urlp.scheme in self._relative_schemes and \ |