aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorOlof Johansson <olof.johansson@axis.com>2014-01-20 12:03:20 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-24 10:13:25 +0000
commit4d502578f022bcf772780550c047b8c09ba01443 (patch)
treeabda8c57f0609cb82da243168513f4f7197d0578 /lib
parentfa9f4eb8784553deb782bff34c5e04012c2c52c9 (diff)
downloadbitbake-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__.py21
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 \