]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
lib/bb/build.py: decode the command as UTF-8
authorRoss Burton <ross.burton@intel.com>
Fri, 15 Jul 2016 10:25:42 +0000 (11:25 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 19 Jul 2016 07:46:46 +0000 (08:46 +0100)
The messaging FIFO is UTF-8, so decode the command as UTF-8 as well as the value
as otherwise "bberror" != b("bberror") and none of the messages from shell
functions are ever displayed.

Also add an else to the command parser so unhandled commands are noticed.

[ YOCTO #9947 ]

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/build.py

index 4fb2a77cfd15a50d1e4fc88fa173e8792331eec5..04979acbd3cfdf3d324d838d2735fb8794482152 100644 (file)
@@ -377,8 +377,11 @@ exit $ret
     def readfifo(data):
         lines = data.split(b'\0')
         for line in lines:
+            # Just skip empty commands
+            if not line:
+                continue
             splitval = line.split(b' ', 1)
-            cmd = splitval[0]
+            cmd = splitval[0].decode("utf-8")
             if len(splitval) > 1:
                 value = splitval[1].decode("utf-8")
             else:
@@ -402,7 +405,8 @@ exit $ret
                 level = int(splitval[0])
                 value = splitval[1]
                 bb.debug(level, value)
-
+            else:
+                bb.warn("Unrecognised command '%s' on FIFO" % cmd)
     tempdir = d.getVar('T', True)
     fifopath = os.path.join(tempdir, 'fifo.%s' % os.getpid())
     if os.path.exists(fifopath):