diff options
| -rw-r--r-- | meta/lib/oe/rootfs.py | 61 |
1 files changed, 44 insertions, 17 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 7e06d5635f..4e4e6ebe39 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py | |||
| @@ -40,6 +40,43 @@ class Rootfs(object): | |||
| 40 | def _log_check(self): | 40 | def _log_check(self): |
| 41 | pass | 41 | pass |
| 42 | 42 | ||
| 43 | def _log_check_warn(self): | ||
| 44 | r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)') | ||
| 45 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
| 46 | with open(log_path, 'r') as log: | ||
| 47 | for line in log.read().split('\n'): | ||
| 48 | if 'log_check' in line or 'NOTE:' in line: | ||
| 49 | continue | ||
| 50 | |||
| 51 | m = r.search(line) | ||
| 52 | if m: | ||
| 53 | bb.warn('log_check: There is a warn message in the logfile') | ||
| 54 | bb.warn('log_check: Matched keyword: [%s]' % m.group()) | ||
| 55 | bb.warn('log_check: %s\n' % line) | ||
| 56 | |||
| 57 | def _log_check_error(self): | ||
| 58 | r = re.compile(self.log_check_regex) | ||
| 59 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
| 60 | with open(log_path, 'r') as log: | ||
| 61 | found_error = 0 | ||
| 62 | message = "\n" | ||
| 63 | for line in log.read().split('\n'): | ||
| 64 | if 'log_check' in line: | ||
| 65 | continue | ||
| 66 | |||
| 67 | m = r.search(line) | ||
| 68 | if m: | ||
| 69 | found_error = 1 | ||
| 70 | bb.warn('log_check: There were error messages in the logfile') | ||
| 71 | bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group()) | ||
| 72 | |||
| 73 | if found_error >= 1 and found_error <= 5: | ||
| 74 | message += line + '\n' | ||
| 75 | found_error += 1 | ||
| 76 | |||
| 77 | if found_error == 6: | ||
| 78 | bb.fatal(message) | ||
| 79 | |||
| 43 | def _insert_feed_uris(self): | 80 | def _insert_feed_uris(self): |
| 44 | if bb.utils.contains("IMAGE_FEATURES", "package-management", | 81 | if bb.utils.contains("IMAGE_FEATURES", "package-management", |
| 45 | True, False, self.d): | 82 | True, False, self.d): |
| @@ -256,7 +293,7 @@ class Rootfs(object): | |||
| 256 | class RpmRootfs(Rootfs): | 293 | class RpmRootfs(Rootfs): |
| 257 | def __init__(self, d, manifest_dir): | 294 | def __init__(self, d, manifest_dir): |
| 258 | super(RpmRootfs, self).__init__(d) | 295 | super(RpmRootfs, self).__init__(d) |
| 259 | 296 | self.log_check_regex = '(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)' | |
| 260 | self.manifest = RpmManifest(d, manifest_dir) | 297 | self.manifest = RpmManifest(d, manifest_dir) |
| 261 | 298 | ||
| 262 | self.pm = RpmPM(d, | 299 | self.pm = RpmPM(d, |
| @@ -353,20 +390,6 @@ class RpmRootfs(Rootfs): | |||
| 353 | # already saved in /etc/rpm-postinsts | 390 | # already saved in /etc/rpm-postinsts |
| 354 | pass | 391 | pass |
| 355 | 392 | ||
| 356 | def _log_check_warn(self): | ||
| 357 | r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)') | ||
| 358 | log_path = self.d.expand("${T}/log.do_rootfs") | ||
| 359 | with open(log_path, 'r') as log: | ||
| 360 | for line in log.read().split('\n'): | ||
| 361 | if 'log_check' in line or 'NOTE:' in line: | ||
| 362 | continue | ||
| 363 | |||
| 364 | m = r.search(line) | ||
| 365 | if m: | ||
| 366 | bb.warn('log_check: There is a warn message in the logfile') | ||
| 367 | bb.warn('log_check: Matched keyword: [%s]' % m.group()) | ||
| 368 | bb.warn('log_check: %s\n' % line) | ||
| 369 | |||
| 370 | def _log_check_error(self): | 393 | def _log_check_error(self): |
| 371 | r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)') | 394 | r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)') |
| 372 | log_path = self.d.expand("${T}/log.do_rootfs") | 395 | log_path = self.d.expand("${T}/log.do_rootfs") |
| @@ -417,6 +440,7 @@ class RpmRootfs(Rootfs): | |||
| 417 | class DpkgRootfs(Rootfs): | 440 | class DpkgRootfs(Rootfs): |
| 418 | def __init__(self, d, manifest_dir): | 441 | def __init__(self, d, manifest_dir): |
| 419 | super(DpkgRootfs, self).__init__(d) | 442 | super(DpkgRootfs, self).__init__(d) |
| 443 | self.log_check_regex = '^E:' | ||
| 420 | 444 | ||
| 421 | bb.utils.remove(self.image_rootfs, True) | 445 | bb.utils.remove(self.image_rootfs, True) |
| 422 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True) | 446 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True) |
| @@ -488,7 +512,8 @@ class DpkgRootfs(Rootfs): | |||
| 488 | self.pm.mark_packages("unpacked", registered_pkgs.split()) | 512 | self.pm.mark_packages("unpacked", registered_pkgs.split()) |
| 489 | 513 | ||
| 490 | def _log_check(self): | 514 | def _log_check(self): |
| 491 | pass | 515 | self._log_check_warn() |
| 516 | self._log_check_error() | ||
| 492 | 517 | ||
| 493 | def _cleanup(self): | 518 | def _cleanup(self): |
| 494 | pass | 519 | pass |
| @@ -497,6 +522,7 @@ class DpkgRootfs(Rootfs): | |||
| 497 | class OpkgRootfs(Rootfs): | 522 | class OpkgRootfs(Rootfs): |
| 498 | def __init__(self, d, manifest_dir): | 523 | def __init__(self, d, manifest_dir): |
| 499 | super(OpkgRootfs, self).__init__(d) | 524 | super(OpkgRootfs, self).__init__(d) |
| 525 | self.log_check_regex = '(exit 1|Collected errors)' | ||
| 500 | 526 | ||
| 501 | self.manifest = OpkgManifest(d, manifest_dir) | 527 | self.manifest = OpkgManifest(d, manifest_dir) |
| 502 | self.opkg_conf = self.d.getVar("IPKGCONF_TARGET", True) | 528 | self.opkg_conf = self.d.getVar("IPKGCONF_TARGET", True) |
| @@ -758,7 +784,8 @@ class OpkgRootfs(Rootfs): | |||
| 758 | self.pm.mark_packages("unpacked", registered_pkgs.split()) | 784 | self.pm.mark_packages("unpacked", registered_pkgs.split()) |
| 759 | 785 | ||
| 760 | def _log_check(self): | 786 | def _log_check(self): |
| 761 | pass | 787 | self._log_check_warn() |
| 788 | self._log_check_error() | ||
| 762 | 789 | ||
| 763 | def _cleanup(self): | 790 | def _cleanup(self): |
| 764 | pass | 791 | pass |
