summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-07-13 16:05:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-16 15:09:26 +0100
commitd3809b77c418804a524b618b51c2af7661e22e93 (patch)
tree01423113e8a06d4d7e058bbf6dbd91297945a690
parent5261c5b5bde25a5e4b2e9268ee401071a187468b (diff)
downloadpoky-d3809b77c418804a524b618b51c2af7661e22e93.tar.gz
bitbake: lib/bb: provide mechanism to bypass UI log suppression
The recent change to connect through the shell logging functions had an unexpected side-effect - 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 places within the OpenEmbedded metadata called these shell logging functions under error situations where we still want to see the full log (i.e., the message we're sending doesn't include the full error). Thus, provide a mechanism to fatally exit with an error but unset the flag, utilising the built-in python logging functionality that allows extra values to be passed in the log record. (Bitbake rev: e561b997c55e8537d82aa1339adfff4505cc38b7) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/__init__.py8
-rw-r--r--bitbake/lib/bb/build.py7
2 files changed, 10 insertions, 5 deletions
diff --git a/bitbake/lib/bb/__init__.py b/bitbake/lib/bb/__init__.py
index 1a30fa11d7..1f7946e7b7 100644
--- a/bitbake/lib/bb/__init__.py
+++ b/bitbake/lib/bb/__init__.py
@@ -94,11 +94,11 @@ def note(*args):
94def warn(*args): 94def warn(*args):
95 logger.warn(''.join(args)) 95 logger.warn(''.join(args))
96 96
97def error(*args): 97def error(*args, **kwargs):
98 logger.error(''.join(args)) 98 logger.error(''.join(args), extra=kwargs)
99 99
100def fatal(*args): 100def fatal(*args, **kwargs):
101 logger.critical(''.join(args)) 101 logger.critical(''.join(args), extra=kwargs)
102 raise BBHandledException() 102 raise BBHandledException()
103 103
104def deprecated(func, name=None, advice=""): 104def deprecated(func, name=None, advice=""):
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index cce01feba2..34399640c0 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -350,6 +350,8 @@ exit $?
350 # The caller will call exit themselves, so bb.error() is 350 # The caller will call exit themselves, so bb.error() is
351 # what we want here rather than bb.fatal() 351 # what we want here rather than bb.fatal()
352 bb.error(value) 352 bb.error(value)
353 elif cmd == 'bbfatal_log':
354 bb.error(value, forcelog=True)
353 elif cmd == 'bbdebug': 355 elif cmd == 'bbdebug':
354 splitval = value.split(' ', 1) 356 splitval = value.split(' ', 1)
355 level = int(splitval[0]) 357 level = int(splitval[0])
@@ -446,7 +448,10 @@ def _exec_task(fn, task, d, quieterr):
446 self.triggered = False 448 self.triggered = False
447 logging.Handler.__init__(self, logging.ERROR) 449 logging.Handler.__init__(self, logging.ERROR)
448 def emit(self, record): 450 def emit(self, record):
449 self.triggered = True 451 if getattr(record, 'forcelog', False):
452 self.triggered = False
453 else:
454 self.triggered = True
450 455
451 # Handle logfiles 456 # Handle logfiles
452 si = open('/dev/null', 'r') 457 si = open('/dev/null', 'r')