[oe-commits] Paul Eggleton : classes/base: fix die() to print the full log

git at git.openembedded.org git at git.openembedded.org
Thu Jul 16 14:10:18 UTC 2015


Module: openembedded-core.git
Branch: master
Commit: beec1cf3d22d7dbe85f332a055c72649f4bd3e92
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=beec1cf3d22d7dbe85f332a055c72649f4bd3e92

Author: Paul Eggleton <paul.eggleton at linux.intel.com>
Date:   Mon Jul 13 16:30:09 2015 +0100

classes/base: fix die() to print the full log

The recent change to connect through the shell logging functions caused
a regression - bb.error() and bb.fatal() cause a flag to be set
internally such that BitBake's UI will not print the full task log on
failure; unfortunately we have in a lot of places called die() or
bbfatal() within shell functions with a very terse message as a means of
exiting out, where we still want to see the full log (and we were
previously). We do still want to have fatal errors with proper messages
that don't result in the full log being printed, however we can't ignore
the typical usage of die(). Having added a mechanism to BitBake to log an
error and reset the flag, create a bbfatal_log() function that uses this
and call it from die() to restore the previous behaviour.

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>

---

 meta/classes/base.bbclass    | 2 +-
 meta/classes/logging.bbclass | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index e541789..e0f1053 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -47,7 +47,7 @@ def lsb_distro_identifier(d):
     return oe.lsb.distro_identifier(adjust_func)
 
 die() {
-	bbfatal "$*"
+	bbfatal_log "$*"
 }
 
 oe_runmake_call() {
diff --git a/meta/classes/logging.bbclass b/meta/classes/logging.bbclass
index f19eddd..6b24839 100644
--- a/meta/classes/logging.bbclass
+++ b/meta/classes/logging.bbclass
@@ -40,6 +40,14 @@ bbfatal() {
 	exit 1
 }
 
+# Like bbfatal, except prevents the suppression of the error log by
+# bitbake's UI.
+# Output: logs console
+bbfatal_log() {
+	printf "%b\0" "bbfatal_log $*" > ${LOGFIFO}
+	exit 1
+}
+
 # Print debug messages. These are appropriate for progress checkpoint
 # messages to the logs. Depending on the debug log level, they may also
 # go to the console.



More information about the Openembedded-commits mailing list