Skip to contentSkip to conversation

Shell message function support (OE-Core side)

PATCH In review Paul Eggleton 2 participants 4 messages Jul 10, 2015 – Jul 14, 2015

lore
Share & tools
lore
#0 lore raw

cover Shell message function support (OE-Core side)

I'm finally sending out the patches to support the output of bbwarn, bberror etc. actually going to the console. This is the OE-Core side of the changes to implement it (changes are also required to BitBake, the patch for which has been sent to the bitbake-devel list).

The following changes since commit 18cc6d2ec4dc289bb0333dddc96df5a645ea53d0:

wic: Set default set of bitbake variables (2015-07-10 13:34:50 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/oecore-shell-logging
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/oecore-shell-logging

Paul Eggleton (1):
classes/logging: make shell message functions output to the console

 meta/classes/logging.bbclass | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)
Signature · 1 line
2.1.0
#1 lore raw

PATCH 1/1 classes/logging: make shell message functions output to the console

Use the FIFO that is now set up when executing tasks within BitBake to make bbdebug/bbnote/bbwarn/bbplain/bberror/bbfatal output to the console through BitBake's UI (as their python counterparts do) instead of only outputting to the task log.

Note that this requires the corresponding change in BitBake that creates the FIFO; without it such messages will end up in a file where the FIFO should have been (but won't cause any other ill effects).

Remainder of the fix for [YOCTO #5275].

---
 meta/classes/logging.bbclass | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)
meta/classes/logging.bbclass +12 -20
index f6648b2..f19eddd 100644
@@ -2,48 +2,41 @@
 # They are intended to map one to one in intention and output format with the
 # python recipe logging functions of a similar naming convention: bb.plain(),
 # bb.note(), etc.
-#
-# For the time being, all of these print only to the task logs. Future
-# enhancements may integrate these calls with the bitbake logging
-# infrastructure, allowing for printing to the console as appropriate. The
-# interface and intention statements reflect that future goal. Once it is
-# in place, no changes will be necessary to recipes using these logging
-# mechanisms.
+
+LOGFIFO = "${T}/fifo.${@os.getpid()}"
 
 # Print the output exactly as it is passed in. Typically used for output of
 # tasks that should be seen on the console. Use sparingly.
 # Output: logs console
-# NOTE: console output is not currently implemented.
 bbplain() {
-	echo "$*"
+	printf "%b\0" "bbplain $*" > ${LOGFIFO}
 }
 
 # Notify the user of a noteworthy condition. 
-# Output: logs console
-# NOTE: console output is not currently implemented.
+# Output: logs
 bbnote() {
-	echo "NOTE: $*"
+	printf "%b\0" "bbnote $*" > ${LOGFIFO}
 }
 
 # Print a warning to the log. Warnings are non-fatal, and do not
 # indicate a build failure.
-# Output: logs
+# Output: logs console
 bbwarn() {
-	echo "WARNING: $*"
+	printf "%b\0" "bbwarn $*" > ${LOGFIFO}
 }
 
 # Print an error to the log. Errors are non-fatal in that the build can
 # continue, but they do indicate a build failure.
-# Output: logs
+# Output: logs console
 bberror() {
-	echo "ERROR: $*"
+	printf "%b\0" "bberror $*" > ${LOGFIFO}
 }
 
 # Print a fatal error to the log. Fatal errors indicate build failure
 # and halt the build, exiting with an error code.
-# Output: logs
+# Output: logs console
 bbfatal() {
-	echo "ERROR: $*"
+	printf "%b\0" "bbfatal $*" > ${LOGFIFO}
 	exit 1
 }
 
@@ -53,7 +46,6 @@ bbfatal() {
 # Output: logs console
 # Usage: bbdebug 1 "first level debug message"
 #        bbdebug 2 "second level debug message"
-# NOTE: console output is not currently implemented.
 bbdebug() {
 	USAGE='Usage: bbdebug [123] "message"'
 	if [ $# -lt 2 ]; then
@@ -68,6 +60,6 @@ bbdebug() {
 	fi
 
 	# All debug output is printed to the logs
-	echo "DEBUG: $*"
+	printf "%b\0" "bbdebug $DBGLVL $*" > ${LOGFIFO}
 }
 
Signature · 1 line
2.1.0
#2 lore raw
In reply to Paul Eggleton

Hi Paul,

Quoted 4 lines · Paul Eggleton

I'm finally sending out the patches to support the output of bbwarn, bberror etc. actually going to the console. This is the OE-Core side of the changes to implement it (changes are also required to BitBake, the patch for which has been sent to the bitbake-devel list).

Now when I start a devshell and run "../temp/run.do_compile" warnings etc which previously went to the devshell console now end up in file "../temp/fido.XXX".

Would it be possible to fall back to the old behaviour if bitbake isn't listening at the other end of the fifo?

Quoted 23 lines

The following changes since commit 18cc6d2ec4dc289bb0333dddc96df5a645ea53d0:

wic: Set default set of bitbake variables (2015-07-10 13:34:50 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/oecore-shell-logging
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/oecore-shell-logging

Paul Eggleton (1):
classes/logging: make shell message functions output to the console

 meta/classes/logging.bbclass | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)

--
2.1.0

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#3 lore raw
Quoted 10 lines · On Tuesday 14 July 2015 00:10:13 Andre McCurdy wrote:

Hi Paul,

On Fri, Jul 10, 2015 at 6:56 AM, Paul Eggleton

Quoted 4 lines · <[email protected]> wrote:

I'm finally sending out the patches to support the output of bbwarn, bberror etc. actually going to the console. This is the OE-Core side of the changes to implement it (changes are also required to BitBake, the patch for which has been sent to the bitbake-devel list).

Quoted 6 lines

Now when I start a devshell and run "../temp/run.do_compile" warnings etc which previously went to the devshell console now end up in file "../temp/fido.XXX".

Would it be possible to fall back to the old behaviour if bitbake isn't listening at the other end of the fifo?

Hmm, yes - I hadn't considered this. I'll do that and send it out along with fixes for a couple of other minor regressions these changes have caused.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre