diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 405f07469b..13341a894a 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -449,6 +449,30 @@ def check_network_access(d, info = "", url = None): | |||
449 | else: | 449 | else: |
450 | logger.debug(1, "Fetcher accessed the network with the command %s" % info) | 450 | logger.debug(1, "Fetcher accessed the network with the command %s" % info) |
451 | 451 | ||
452 | def build_mirroruris(origud, mirrors, ld): | ||
453 | uris = [] | ||
454 | uds = [] | ||
455 | |||
456 | def adduri(uri, ud, uris, uds): | ||
457 | for line in mirrors: | ||
458 | try: | ||
459 | (find, replace) = line | ||
460 | except ValueError: | ||
461 | continue | ||
462 | newuri = uri_replace(ud, find, replace, ld) | ||
463 | if not newuri or newuri in uris or newuri == origud.url: | ||
464 | continue | ||
465 | uris.append(newuri) | ||
466 | newud = FetchData(newuri, ld) | ||
467 | newud.setup_localpath(ld) | ||
468 | uds.append(newud) | ||
469 | |||
470 | adduri(newuri, newud, uris, uds) | ||
471 | |||
472 | adduri(None, origud, uris, uds) | ||
473 | |||
474 | return uris, uds | ||
475 | |||
452 | def try_mirror_url(newuri, origud, ud, ld, check = False): | 476 | def try_mirror_url(newuri, origud, ud, ld, check = False): |
453 | # Return of None or a value means we're finished | 477 | # Return of None or a value means we're finished |
454 | # False means try another url | 478 | # False means try another url |
@@ -514,18 +538,11 @@ def try_mirrors(d, origud, mirrors, check = False): | |||
514 | mirrors is the list of mirrors we're going to try | 538 | mirrors is the list of mirrors we're going to try |
515 | """ | 539 | """ |
516 | ld = d.createCopy() | 540 | ld = d.createCopy() |
517 | for line in mirrors: | 541 | |
518 | try: | 542 | uris, uds = build_mirroruris(origud, mirrors, ld) |
519 | (find, replace) = line | 543 | |
520 | except ValueError: | 544 | for index, uri in enumerate(uris): |
521 | continue | 545 | ret = try_mirror_url(uri, origud, uds[index], ld, check) |
522 | newuri = uri_replace(origud, find, replace, ld) | ||
523 | if not newuri: | ||
524 | continue | ||
525 | ud = FetchData(newuri, ld) | ||
526 | ud.setup_localpath(ld) | ||
527 | |||
528 | ret = try_mirror_url(newuri, origud, ud, ld, check) | ||
529 | if ret != False: | 546 | if ret != False: |
530 | return ret | 547 | return ret |
531 | return None | 548 | return None |