From 78a5471a29fca1c61d1fbfe164e0ad3b34f5e8d2 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 28 May 2012 18:10:50 +0100 Subject: classes/sanity: send sanity check failure as a separate event for Hob In order to show a friendlier error message within Hob 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 BitBake, however it has a check to ensure that it does not fail with older versions that do not include that change. Fixes [YOCTO #2336]. (From OE-Core rev: 3788f9bcb36cca90ca8cf650c9d33f5485e3087b) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/classes/sanity.bbclass | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'meta/classes') diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 0c2fa04bcc..97556949e8 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass @@ -4,7 +4,16 @@ SANITY_REQUIRED_UTILITIES ?= "patch diffstat texi2html makeinfo svn bzip2 tar gzip gawk chrpath wget cpio" -def raise_sanity_error(msg): +def raise_sanity_error(msg, d): + if d.getVar("SANITY_USE_EVENTS", True) == "1": + # FIXME: handle when BitBake version is too old to support bb.event.SanityCheckFailed + # We can just fire the event directly once the minimum version is bumped beyond 1.15.1 + try: + bb.event.fire(bb.event.SanityCheckFailed(msg), d) + return + except AttributeError: + pass + bb.fatal(""" OE-core's config sanity checker detected a potential misconfiguration. Either fix the cause of this error or at your own risk disable the checker (see sanity.conf). Following is the list of potential problems / advisories: @@ -219,7 +228,7 @@ def check_sanity(sanity_data): return if 0 == os.getuid(): - raise_sanity_error("Do not use Bitbake as root.") + raise_sanity_error("Do not use Bitbake as root.", sanity_data) messages = "" @@ -449,7 +458,7 @@ def check_sanity(sanity_data): messages = messages + "Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space." if messages != "": - raise_sanity_error(messages) + raise_sanity_error(messages, sanity_data) # Create a copy of the datastore and finalise it to ensure appends and # overrides are set - the datastore has yet to be finalised at ConfigParsed @@ -465,6 +474,7 @@ python check_sanity_eventhandler() { check_sanity(sanity_data) elif bb.event.getName(e) == "SanityCheck": sanity_data = copy_data(e) + sanity_data.setVar("SANITY_USE_EVENTS", "1") check_sanity(sanity_data) bb.event.fire(bb.event.SanityCheckPassed(), e.data) -- cgit v1.2.3-54-g00ecf