summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-09-22 17:21:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-22 18:12:56 +0100
commit58dc726808817210764eab963a4d453dc4ff49aa (patch)
tree45844ed53eb2d2f580d5aae718b01c14e1d880ae
parentff14d9e5b935b99b2efde479515e54c02ba58f6e (diff)
downloadopenembedded-core-contrib-58dc726808817210764eab963a4d453dc4ff49aa.tar.gz
openembedded-core-contrib-58dc726808817210764eab963a4d453dc4ff49aa.tar.bz2
openembedded-core-contrib-58dc726808817210764eab963a4d453dc4ff49aa.zip
recipetool: create: fix handling of URIs containing #
The # character in a URI denotes a fragment; we don't care about this since it is never supposed to be sent to the server, so remove it from the URI before actually trying to fetch it or use it in SRC_URI within the recipe. (This has come up because download links on pypi.python.org seem to have a fragment containing the md5sum of the download; without stripping this off the fetcher will choke on it.) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--scripts/lib/recipetool/create.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 99d9cc850e..409b255f5f 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -23,6 +23,7 @@ import fnmatch
import re
import logging
import scriptutils
+import urlparse
logger = logging.getLogger('recipetool')
@@ -102,7 +103,8 @@ def create_recipe(args):
srcrev = '${AUTOREV}'
if '://' in args.source:
# Fetch a URL
- srcuri = args.source
+ fetchuri = urlparse.urldefrag(args.source)[0]
+ srcuri = fetchuri
rev_re = re.compile(';rev=([^;]+)')
res = rev_re.search(srcuri)
if res:
@@ -111,7 +113,7 @@ def create_recipe(args):
tempsrc = tempfile.mkdtemp(prefix='recipetool-')
srctree = tempsrc
logger.info('Fetching %s...' % srcuri)
- checksums = scriptutils.fetch_uri(tinfoil.config_data, args.source, srctree, srcrev)
+ checksums = scriptutils.fetch_uri(tinfoil.config_data, fetchuri, srctree, srcrev)
dirlist = os.listdir(srctree)
if 'git.indirectionsymlink' in dirlist:
dirlist.remove('git.indirectionsymlink')