mirror of
https://git.yoctoproject.org/poky
synced 2026-09-14 03:49:32 +02:00
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: 49d8b7b8c3b18da64583637db207f1f064a5bdb2) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0fd6a47ddf
commit
7a619c235f
@@ -4,7 +4,16 @@
|
|||||||
|
|
||||||
SANITY_REQUIRED_UTILITIES ?= "patch diffstat texi2html makeinfo svn bzip2 tar gzip gawk chrpath wget cpio"
|
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.
|
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).
|
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:
|
Following is the list of potential problems / advisories:
|
||||||
@@ -295,7 +304,7 @@ def check_sanity(sanity_data):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if 0 == os.getuid():
|
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 = ""
|
messages = ""
|
||||||
|
|
||||||
@@ -529,7 +538,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."
|
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 != "":
|
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
|
# 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
|
# overrides are set - the datastore has yet to be finalised at ConfigParsed
|
||||||
@@ -545,6 +554,7 @@ python check_sanity_eventhandler() {
|
|||||||
check_sanity(sanity_data)
|
check_sanity(sanity_data)
|
||||||
elif bb.event.getName(e) == "SanityCheck":
|
elif bb.event.getName(e) == "SanityCheck":
|
||||||
sanity_data = copy_data(e)
|
sanity_data = copy_data(e)
|
||||||
|
sanity_data.setVar("SANITY_USE_EVENTS", "1")
|
||||||
check_sanity(sanity_data)
|
check_sanity(sanity_data)
|
||||||
bb.event.fire(bb.event.SanityCheckPassed(), e.data)
|
bb.event.fire(bb.event.SanityCheckPassed(), e.data)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user