]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake/fetch: Only checksum downloads when they're first downloaded and a checksum...
authorRichard Purdie <rpurdie@linux.intel.com>
Tue, 21 Dec 2010 00:52:10 +0000 (00:52 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 21 Dec 2010 00:52:10 +0000 (00:52 +0000)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/fetch/__init__.py

index 88212ffa33606b1a8094a530658c0d3ce5485150..8c10df4ffe0cd835ec6dd6547cb62b7b4de25d54 100644 (file)
@@ -247,9 +247,6 @@ def verify_checksum(u, ud, d):
     if not ud.type in ["http", "https", "ftp", "ftps"]:
         return
 
-    md5data = bb.utils.md5_file(ud.localpath)
-    sha256data = bb.utils.sha256_file(ud.localpath)
-
     if (ud.md5_expected == None or ud.sha256_expected == None):
         bb.warn("Missing SRC_URI checksum for %s, consider to add\n" \
                 "SRC_URI[%s] = \"%s\"\nSRC_URI[%s] = \"%s\"" \
@@ -258,6 +255,9 @@ def verify_checksum(u, ud, d):
             raise FetchError("No checksum specified for %s." % u)
         return
 
+    md5data = bb.utils.md5_file(ud.localpath)
+    sha256data = bb.utils.sha256_file(ud.localpath)
+
     if (ud.md5_expected != md5data or ud.sha256_expected != sha256data):
         bb.error("The checksums for '%s' did not match." % ud.localpath)
         bb.error("Expected MD5: '%s' and Got: '%s'" % (ud.md5_expected, md5data))
@@ -307,8 +307,6 @@ def go(d, urls = None):
 
         ud.localpath = localpath
 
-        verify_checksum(u, ud, d)
-
         if os.path.exists(ud.md5):
             # Touch the md5 file to show active use of the download
             try:
@@ -317,6 +315,8 @@ def go(d, urls = None):
                 # Errors aren't fatal here
                 pass
         else:
+            # Only check the checksums if we've not seen this item before
+            verify_checksum(u, ud, d)
             Fetch.write_md5sum(u, ud, d)
 
         bb.utils.unlockfile(lf)