[PATCH v3 4/4] DpkgRootfs: Fix logcheck_error false-positive when use multilib

Matt Madison
2016-01-06T12:22:30Z

From: Aníbal Limón <anibal.limon@linux.intel.com>

Rootfs with dpkg was failing due to false-positive in logcheck_error
because current logic of DpkgPM handles missing dependencies failure
using apt-get -f install [1][2].

This support was broken due to addition of logcheck and don't take into
account dpkgpm cases, in order to fix add an attr for specify expected
errors regex'es by package manager.

[1] http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/lib/oe/rootfs.py#n659
[2] http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/lib/oe/package_manager.py#n2038

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Matt Madison <matt@madison.systems>
---
meta/lib/oe/rootfs.py | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index a2af332..f677d03 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -63,6 +63,15 @@ class Rootfs(object):
if 'log_check' in line:
continue

+ if hasattr(self, 'log_check_expected_errors_regexes'):
+ m = None
+ for ee in self.log_check_expected_errors_regexes:
+ m = re.search(ee, line)
+ if m:
+ break
+ if m:
+ continue
+
m = r.search(line)
if m:
found_error = 1
@@ -623,6 +632,10 @@ class DpkgRootfs(DpkgOpkgRootfs):
def __init__(self, d, manifest_dir):
super(DpkgRootfs, self).__init__(d)
self.log_check_regex = '^E:'
+ self.log_check_expected_errors_regexes = \
+ [
+ "^E: Unmet dependencies."
+ ]

bb.utils.remove(self.image_rootfs, True)
bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True)
--
2.5.0