aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Lock <joshua.g.lock@intel.com>2017-06-14 20:30:22 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-27 13:45:17 +0100
commitcc52b9b12c60810142252b9cb5d4268e42371b8e (patch)
tree9589d6efeccb40d4ff0f58420ae658ce0839bf8e
parent21d963149b5d97452420230a252101115b708d85 (diff)
downloadbitbake-cc52b9b12c60810142252b9cb5d4268e42371b8e.zip
bitbake-cc52b9b12c60810142252b9cb5d4268e42371b8e.tar.gz
bitbake-cc52b9b12c60810142252b9cb5d4268e42371b8e.tar.bz2
fetch: fix handling of files with incorrect checksums from a premirror
Ensure that when an item fetched from a premirror has an invalid checksum the fetcher falls back to the usual logic of trying the upstream and any configured mirrors. Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/__init__.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 136fc29..b853da3 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1619,6 +1619,15 @@ class Fetch(object):
logger.debug(1, "Trying PREMIRRORS")
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
localpath = try_mirrors(self, self.d, ud, mirrors, False)
+ if localpath:
+ try:
+ # early checksum verification so that if the checksum of the premirror
+ # contents mismatch the fetcher can still try upstream and mirrors
+ update_stamp(ud, self.d)
+ except ChecksumError as e:
+ logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u)
+ logger.debug(1, str(e))
+ localpath = ""
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")