summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch/__init__.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py
index ccb60de59c..5f4c8300ef 100644
--- a/bitbake/lib/bb/fetch/__init__.py
+++ b/bitbake/lib/bb/fetch/__init__.py
@@ -188,14 +188,19 @@ def go(d, urls = None):
188 188
189 # First try fetching uri, u, from PREMIRRORS 189 # First try fetching uri, u, from PREMIRRORS
190 mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ] 190 mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ]
191 if not try_mirrors(d, u, mirrors): 191 localpath = try_mirrors(d, u, mirrors)
192 if not localpath:
192 # Next try fetching from the original uri, u 193 # Next try fetching from the original uri, u
193 try: 194 try:
194 m.go(u, ud, d) 195 m.go(u, ud, d)
196 localpath = ud.localpath
195 except: 197 except:
196 # Finally, try fetching uri, u, from MIRRORS 198 # Finally, try fetching uri, u, from MIRRORS
197 mirrors = [ i.split() for i in (bb.data.getVar('MIRRORS', d, 1) or "").split('\n') if i ] 199 mirrors = [ i.split() for i in (bb.data.getVar('MIRRORS', d, 1) or "").split('\n') if i ]
198 try_mirrors (d, u, mirrors) 200 localpath = try_mirrors (d, u, mirrors)
201
202 if localpath:
203 ud.localpath = localpath
199 204
200 if ud.localfile: 205 if ud.localfile:
201 if not m.forcefetch(u, ud, d): 206 if not m.forcefetch(u, ud, d):
@@ -355,7 +360,7 @@ def try_mirrors(d, uri, mirrors):
355 fpath = os.path.join(data.getVar("DL_DIR", d, 1), os.path.basename(uri)) 360 fpath = os.path.join(data.getVar("DL_DIR", d, 1), os.path.basename(uri))
356 if os.access(fpath, os.R_OK): 361 if os.access(fpath, os.R_OK):
357 bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % fpath) 362 bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % fpath)
358 return True 363 return fpath
359 364
360 ld = d.createCopy() 365 ld = d.createCopy()
361 for (find, replace) in mirrors: 366 for (find, replace) in mirrors:
@@ -371,14 +376,14 @@ def try_mirrors(d, uri, mirrors):
371 376
372 try: 377 try:
373 ud.method.go(newuri, ud, ld) 378 ud.method.go(newuri, ud, ld)
374 return True 379 return ud.localpath
375 except (bb.fetch.MissingParameterError, 380 except (bb.fetch.MissingParameterError,
376 bb.fetch.FetchError, 381 bb.fetch.FetchError,
377 bb.fetch.MD5SumError): 382 bb.fetch.MD5SumError):
378 import sys 383 import sys
379 (type, value, traceback) = sys.exc_info() 384 (type, value, traceback) = sys.exc_info()
380 bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value) 385 bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
381 return False 386 return ""
382 387
383 388
384class FetchData(object): 389class FetchData(object):
@@ -415,8 +420,11 @@ class FetchData(object):
415 # We have to clear data's internal caches since the cached value of SRCREV is now wrong. 420 # We have to clear data's internal caches since the cached value of SRCREV is now wrong.
416 # Horrible... 421 # Horrible...
417 bb.data.delVar("ISHOULDNEVEREXIST", d) 422 bb.data.delVar("ISHOULDNEVEREXIST", d)
418 self.md5 = self.localpath + '.md5' 423
419 self.lockfile = self.localpath + '.lock' 424 # Note: These files should always be in DL_DIR whereas localpath may not be.
425 basepath = bb.data.expand("${DL_DIR}/%s" % os.path.basename(self.localpath), d)
426 self.md5 = basepath + '.md5'
427 self.lockfile = basepath + '.lock'
420 428
421 429
422class Fetch(object): 430class Fetch(object):