summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-13 12:00:45 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-20 09:24:23 +0100
commit2f009e5b1e4e0a4148ab7d5c60bf0e7a193faa2e (patch)
treedbf344deff3ef34e6e3df97f2e4e79a8596504b2 /bitbake
parentd993f172e806b095fa8bf799f11f975f6a5c238b (diff)
downloadpoky-2f009e5b1e4e0a4148ab7d5c60bf0e7a193faa2e.tar.gz
bitbake/fetch2: Improve visibility of checksum warnings when fetching from mirrors
When fetching from mirrors, checksum errors would get buried in the logs. This raises their profile so a warning is logged on the console when fetcher checksum issues are encountered, even if other attempts are made to get the file (which may or may not have the same issue). (Bitbake rev: d43fafd7f01b5534499b45213197d8ccececdbc4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index ba6849e09d..9b5ba5a395 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -63,6 +63,9 @@ class FetchError(BBFetchException):
63 BBFetchException.__init__(self, msg) 63 BBFetchException.__init__(self, msg)
64 self.args = (message, url) 64 self.args = (message, url)
65 65
66class ChecksumError(FetchError):
67 """Exception when mismatched checksum encountered"""
68
66class UnpackError(BBFetchException): 69class UnpackError(BBFetchException):
67 """General fetcher exception when something happens incorrectly when unpacking""" 70 """General fetcher exception when something happens incorrectly when unpacking"""
68 def __init__(self, message, url): 71 def __init__(self, message, url):
@@ -312,7 +315,7 @@ def verify_checksum(u, ud, d):
312 msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected) 315 msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected)
313 316
314 if len(msg): 317 if len(msg):
315 raise FetchError('Checksum mismatch!%s' % msg, u) 318 raise ChecksumError('Checksum mismatch!%s' % msg, u)
316 319
317 320
318def update_stamp(u, ud, d): 321def update_stamp(u, ud, d):
@@ -504,8 +507,12 @@ def try_mirrors(d, origud, mirrors, check = False):
504 raise 507 raise
505 508
506 except bb.fetch2.BBFetchException as e: 509 except bb.fetch2.BBFetchException as e:
507 logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url)) 510 if isinstance(e, ChecksumError):
508 logger.debug(1, str(e)) 511 logger.warn("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (newuri, origud.url))
512 logger.warn(str(e))
513 else:
514 logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
515 logger.debug(1, str(e))
509 try: 516 try:
510 ud.method.clean(ud, ld) 517 ud.method.clean(ud, ld)
511 except UnboundLocalError: 518 except UnboundLocalError:
@@ -979,8 +986,11 @@ class Fetch(object):
979 raise 986 raise
980 987
981 except BBFetchException as e: 988 except BBFetchException as e:
982 logger.warn('Failed to fetch URL %s' % u) 989 if isinstance(e, ChecksumError):
983 logger.debug(1, str(e)) 990 logger.warn("Checksum error encountered with download (will attempt other sources): %s" % str(e))
991 else:
992 logger.warn('Failed to fetch URL %s, attempting MIRRORS if available' % u)
993 logger.debug(1, str(e))
984 firsterr = e 994 firsterr = e
985 # Remove any incomplete fetch 995 # Remove any incomplete fetch
986 m.clean(ud, self.d) 996 m.clean(ud, self.d)