fetch2: don't mandate path element in encodeurl()
cover fetch2: don't mandate path element in encodeurl()
The following changes since commit 27ca94c33234f0ef9753f8285213dde2871a3fcf:
bitbake: ui: Sort 'Dependent tasks' in taskexp (2017-08-23 12:07:38 +0100)
are available in the git repository at:
git://git.openembedded.org/bitbake-contrib paule/fetch2-encodeurl-fix
http://cgit.openembedded.org/bitbake-contrib/log/?h=paule/fetch2-encodeurl-fix
Paul Eggleton (1):
fetch2: don't mandate path element in encodeurl()
lib/bb/fetch2/__init__.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
Signature · 1 line
2.9.5
PATCH 1/1 fetch2: don't mandate path element in encodeurl()
URLs do not have to have a path; currently our npm URLs don't, so encodeurl() needs to handle if the path element isn't specified. This fixes errors using OpenEmbedded's devtool add / recipetool create on an npm URL after OE-Core revision ecca596b75cfda2f798a0bdde75f4f774e23a95b that uses decodeurl() and encodeurl() to change URL parameter values.
--- lib/bb/fetch2/__init__.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
lib/bb/fetch2/__init__.py +5 -6
@@ -411,8 +411,6 @@ def encodeurl(decoded): type, host, path, user, pswd, p = decoded - if not path: - raise MissingParameterError('path', "encoded from the data %s" % str(decoded)) if not type: raise MissingParameterError('type', "encoded from the data %s" % str(decoded)) url = '%s://' % type
@@ -423,10 +421,11 @@ def encodeurl(decoded): url += "@" if host and type != "file": url += "%s" % host - # Standardise path to ensure comparisons work - while '//' in path: - path = path.replace("//", "/") - url += "%s" % urllib.parse.quote(path) + if path: + # Standardise path to ensure comparisons work + while '//' in path: + path = path.replace("//", "/") + url += "%s" % urllib.parse.quote(path) if p: for parm in p: url += ";%s=%s" % (parm, p[parm])
Signature · 1 line
2.9.5