From 5a975239eabe1f1e5f03d3fb10fd7d31929f35aa Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 28 May 2012 18:10:39 +0100 Subject: hob: handle sanity check failures as a separate event In order to show a friendlier error message that does not bury the actual sanity error in our typical preamble about disabling sanity checks, use a separate event to indicate that sanity checks failed. This change is intended to work together with the related change to sanity.bbclass in OE-Core. Fixes [YOCTO #2336]. (Bitbake rev: 24b631acdaa143a4de39c6e1328849660c66f219) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/event.py | 8 ++++++++ bitbake/lib/bb/ui/crumbs/builder.py | 7 ++++++- bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 6 ++++++ 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index f3fb521..1116c0a 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py @@ -527,3 +527,11 @@ class SanityCheckPassed(Event): """ Event to indicate sanity check is passed """ + +class SanityCheckFailed(Event): + """ + Event to indicate sanity check has failed + """ + def __init__(self, msg): + Event.__init__(self) + self._msg = msg diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 80a8d01..8d35ea9 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py @@ -424,6 +424,7 @@ class Builder(gtk.Window): self.handler.connect("data-generated", self.handler_data_generated_cb) self.handler.connect("command-succeeded", self.handler_command_succeeded_cb) self.handler.connect("command-failed", self.handler_command_failed_cb) + self.handler.connect("sanity-failed", self.handler_sanity_failed_cb) self.handler.connect("recipe-populated", self.handler_recipe_populated_cb) self.handler.connect("package-populated", self.handler_package_populated_cb) @@ -727,10 +728,14 @@ class Builder(gtk.Window): def handler_command_failed_cb(self, handler, msg): if msg: - msg = msg.replace("your local.conf", "Settings") self.show_error_dialog(msg) self.reset() + def handler_sanity_failed_cb(self, handler, msg): + msg = msg.replace("your local.conf", "Settings") + self.show_error_dialog(msg) + self.reset() + def window_sensitive(self, sensitive): self.image_configuration_page.machine_combo.set_sensitive(sensitive) self.image_configuration_page.image_combo.set_sensitive(sensitive) diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index b34bdbe..1db9c44 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py @@ -42,6 +42,9 @@ class HobHandler(gobject.GObject): "command-failed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)), + "sanity-failed" : (gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_STRING,)), "generating-data" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()), @@ -170,6 +173,9 @@ class HobHandler(gobject.GObject): elif isinstance(event, bb.event.SanityCheckPassed): self.run_next_command() + elif isinstance(event, bb.event.SanityCheckFailed): + self.emit("sanity-failed", event._msg) + elif isinstance(event, logging.LogRecord): if event.levelno >= logging.ERROR: self.error_msg += event.msg + '\n' -- cgit v1.1