[bitbake-devel] [PATCH] process: stop bb.process.communicate mixing bytes and str return types

Mike Crowe mac at mcrowe.com
Fri Feb 24 16:20:04 UTC 2017

Python3 regards b"" as False so it is not being converted to a string by
d0f904d407f57998419bd9c305ce53e5eaa36b24. This confusingly causes three
different potential types for each member of the returned tuple.

Let's just assume that everything that's not None is a bytes object and
convert it to a string.

Signed-off-by: Mike Crowe <mac at mcrowe.com>
 lib/bb/process.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/bb/process.py b/lib/bb/process.py
index c62d7bc..a4a5599 100644
--- a/lib/bb/process.py
+++ b/lib/bb/process.py
@@ -162,9 +162,9 @@ def run(cmd, input=None, log=None, extrafiles=None, **options):
         stdout, stderr = _logged_communicate(pipe, log, input, extrafiles)
         stdout, stderr = pipe.communicate(input)
-        if stdout:
+        if not stdout is None:
             stdout = stdout.decode("utf-8")
-        if stderr:
+        if not stderr is None:
             stderr = stderr.decode("utf-8")
     if pipe.returncode != 0:

More information about the bitbake-devel mailing list