diff options
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 22 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch2/ssh.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch2/wget.py | 3 |
4 files changed, 30 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index f629c01cdb..98645956fb 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -271,10 +271,13 @@ def verify_checksum(u, ud, d): | |||
271 | matched | 271 | matched |
272 | """ | 272 | """ |
273 | 273 | ||
274 | if not ud.method.supports_checksum(ud): | ||
275 | return | ||
276 | |||
274 | md5data = bb.utils.md5_file(ud.localpath) | 277 | md5data = bb.utils.md5_file(ud.localpath) |
275 | sha256data = bb.utils.sha256_file(ud.localpath) | 278 | sha256data = bb.utils.sha256_file(ud.localpath) |
276 | 279 | ||
277 | if ud.type in ["http", "https", "ftp", "ftps"]: | 280 | if ud.method.recommends_checksum(ud): |
278 | # If strict checking enabled and neither sum defined, raise error | 281 | # If strict checking enabled and neither sum defined, raise error |
279 | strict = d.getVar("BB_STRICT_CHECKSUM", True) or None | 282 | strict = d.getVar("BB_STRICT_CHECKSUM", True) or None |
280 | if (strict and ud.md5_expected == None and ud.sha256_expected == None): | 283 | if (strict and ud.md5_expected == None and ud.sha256_expected == None): |
@@ -578,10 +581,14 @@ class FetchData(object): | |||
578 | self.sha256_name = "sha256sum" | 581 | self.sha256_name = "sha256sum" |
579 | if self.md5_name in self.parm: | 582 | if self.md5_name in self.parm: |
580 | self.md5_expected = self.parm[self.md5_name] | 583 | self.md5_expected = self.parm[self.md5_name] |
584 | elif self.type not in ["http", "https", "ftp", "ftps"]: | ||
585 | self.md5_expected = None | ||
581 | else: | 586 | else: |
582 | self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name) | 587 | self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name) |
583 | if self.sha256_name in self.parm: | 588 | if self.sha256_name in self.parm: |
584 | self.sha256_expected = self.parm[self.sha256_name] | 589 | self.sha256_expected = self.parm[self.sha256_name] |
590 | elif self.type not in ["http", "https", "ftp", "ftps"]: | ||
591 | self.sha256_expected = None | ||
585 | else: | 592 | else: |
586 | self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name) | 593 | self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name) |
587 | 594 | ||
@@ -660,6 +667,19 @@ class FetchMethod(object): | |||
660 | """ | 667 | """ |
661 | return os.path.join(data.getVar("DL_DIR", d, True), urldata.localfile) | 668 | return os.path.join(data.getVar("DL_DIR", d, True), urldata.localfile) |
662 | 669 | ||
670 | def supports_checksum(self, urldata): | ||
671 | """ | ||
672 | Is localpath something that can be represented by a checksum? | ||
673 | """ | ||
674 | return True | ||
675 | |||
676 | def recommends_checksum(self, urldata): | ||
677 | """ | ||
678 | Is the backend on where checksumming is recommended (should warnings | ||
679 | by displayed if there is no checksum)? | ||
680 | """ | ||
681 | return False | ||
682 | |||
663 | def _strip_leading_slashes(self, relpath): | 683 | def _strip_leading_slashes(self, relpath): |
664 | """ | 684 | """ |
665 | Remove leading slash as os.path.join can't cope | 685 | Remove leading slash as os.path.join can't cope |
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 962cc0a484..ecc5e0ded8 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
@@ -82,6 +82,9 @@ class Git(FetchMethod): | |||
82 | """ | 82 | """ |
83 | return ud.type in ['git'] | 83 | return ud.type in ['git'] |
84 | 84 | ||
85 | def supports_checksum(self, urldata): | ||
86 | return False | ||
87 | |||
85 | def urldata_init(self, ud, d): | 88 | def urldata_init(self, ud, d): |
86 | """ | 89 | """ |
87 | init git specific variable within url data | 90 | init git specific variable within url data |
diff --git a/bitbake/lib/bb/fetch2/ssh.py b/bitbake/lib/bb/fetch2/ssh.py index 91ac15faae..8d6434a7eb 100644 --- a/bitbake/lib/bb/fetch2/ssh.py +++ b/bitbake/lib/bb/fetch2/ssh.py | |||
@@ -69,6 +69,9 @@ class SSH(FetchMethod): | |||
69 | def supports(self, url, urldata, d): | 69 | def supports(self, url, urldata, d): |
70 | return __pattern__.match(url) != None | 70 | return __pattern__.match(url) != None |
71 | 71 | ||
72 | def supports_checksum(self, urldata): | ||
73 | return False | ||
74 | |||
72 | def localpath(self, url, urldata, d): | 75 | def localpath(self, url, urldata, d): |
73 | m = __pattern__.match(urldata.url) | 76 | m = __pattern__.match(urldata.url) |
74 | path = m.group('path') | 77 | path = m.group('path') |
diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py index 98900ac42c..e223b21b96 100644 --- a/bitbake/lib/bb/fetch2/wget.py +++ b/bitbake/lib/bb/fetch2/wget.py | |||
@@ -45,6 +45,9 @@ class Wget(FetchMethod): | |||
45 | """ | 45 | """ |
46 | return ud.type in ['http', 'https', 'ftp'] | 46 | return ud.type in ['http', 'https', 'ftp'] |
47 | 47 | ||
48 | def recommends_checksum(self, urldata): | ||
49 | return True | ||
50 | |||
48 | def urldata_init(self, ud, d): | 51 | def urldata_init(self, ud, d): |
49 | 52 | ||
50 | ud.basename = os.path.basename(ud.path) | 53 | ud.basename = os.path.basename(ud.path) |