From f84f382f340d6db15b9e5afb8c7c93969249a958 Mon Sep 17 00:00:00 2001 From: Ryan Phillips Date: Tue, 8 Jun 2010 14:20:55 -0500 Subject: Change wget fetcher to use the runfetchcmd * Fixes proxy support to honor standard proxy environment variables. * Quote environment variables Signed-off-by: Chris Larson --- lib/bb/fetch/__init__.py | 3 ++- lib/bb/fetch/wget.py | 28 ++++------------------------ 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/lib/bb/fetch/__init__.py b/lib/bb/fetch/__init__.py index cf26dc158..d91ecae15 100644 --- a/lib/bb/fetch/__init__.py +++ b/lib/bb/fetch/__init__.py @@ -204,6 +204,7 @@ def fetcher_compare_revisons(d): def init(urls, d, setup = True): urldata = {} + fn = bb.data.getVar('FILE', d, 1) if fn in urldata_cache: urldata = urldata_cache[fn] @@ -400,7 +401,7 @@ def runfetchcmd(cmd, d, quiet = False): for var in exportvars: val = data.getVar(var, d, True) if val: - cmd = 'export ' + var + '=%s; %s' % (val, cmd) + cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd) bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cmd) diff --git a/lib/bb/fetch/wget.py b/lib/bb/fetch/wget.py index 581362038..dcc58c75e 100644 --- a/lib/bb/fetch/wget.py +++ b/lib/bb/fetch/wget.py @@ -31,6 +31,7 @@ from bb import data from bb.fetch import Fetch from bb.fetch import FetchError from bb.fetch import encodeurl, decodeurl +from bb.fetch import runfetchcmd class Wget(Fetch): """Class to fetch urls via 'wget'""" @@ -65,33 +66,12 @@ class Wget(Fetch): uri_type = uri_decoded[0] uri_host = uri_decoded[1] - bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri) fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0]) fetchcmd = fetchcmd.replace("${FILE}", ud.basename) - httpproxy = None - ftpproxy = None - if uri_type == 'http': - httpproxy = data.getVar("HTTP_PROXY", d, True) - httpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split() - for p in httpproxy_ignore: - if uri_host.endswith(p): - httpproxy = None - break - if uri_type == 'ftp': - ftpproxy = data.getVar("FTP_PROXY", d, True) - ftpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split() - for p in ftpproxy_ignore: - if uri_host.endswith(p): - ftpproxy = None - break - if httpproxy: - fetchcmd = "http_proxy=" + httpproxy + " " + fetchcmd - if ftpproxy: - fetchcmd = "ftp_proxy=" + ftpproxy + " " + fetchcmd + + bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri) bb.msg.debug(2, bb.msg.domain.Fetcher, "executing " + fetchcmd) - ret = os.system(fetchcmd) - if ret != 0: - return False + runfetchcmd(fetchcmd, d) # Sanity check since wget can pretend it succeed when it didn't # Also, this used to happen if sourceforge sent us to the mirror page -- cgit 1.2.3-korg