bitbake/fetch: Respect forcefetch even when pulling from a mirror

When pulling from a premirror we would prefer a local tarball even when the
caller had specified the forcefetch parameter.
Add an extra parameter 'force' to try_mirrors, defaulting to False. If set
the mirrors will be tested even if the file exists locally.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
This commit is contained in:
Joshua Lock
2010-08-27 14:04:33 +01:00
parent 94f2946679
commit b54e95fd06

View File

@@ -258,7 +258,7 @@ def go(d, urls = None):
# First try fetching uri, u, from PREMIRRORS # First try fetching uri, u, from PREMIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ] mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ]
localpath = try_mirrors(d, u, mirrors) localpath = try_mirrors(d, u, mirrors, False, m.forcefetch(u, ud, d))
if not localpath: if not localpath:
# Next try fetching from the original uri, u # Next try fetching from the original uri, u
try: try:
@@ -430,7 +430,7 @@ def runfetchcmd(cmd, d, quiet = False):
return output return output
def try_mirrors(d, uri, mirrors, check = False): def try_mirrors(d, uri, mirrors, check = False, force = False):
""" """
Try to use a mirrored version of the sources. Try to use a mirrored version of the sources.
This method will be automatically called before the fetchers go. This method will be automatically called before the fetchers go.
@@ -440,7 +440,7 @@ def try_mirrors(d, uri, mirrors, check = False):
mirrors is the list of mirrors we're going to try mirrors is the list of mirrors we're going to try
""" """
fpath = os.path.join(data.getVar("DL_DIR", d, 1), os.path.basename(uri)) fpath = os.path.join(data.getVar("DL_DIR", d, 1), os.path.basename(uri))
if not check and os.access(fpath, os.R_OK): if not check and os.access(fpath, os.R_OK) and not force:
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % fpath) bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % fpath)
return fpath return fpath