From 7b75bf85059f0d4fc873b27d31ff17eb97815db9 Mon Sep 17 00:00:00 2001 From: Mike Crowe Date: Fri, 24 Feb 2017 16:20:04 +0000 Subject: [PATCH] bitbake: process: stop bb.process.communicate mixing bytes and str return types 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. (Bitbake rev: 0cf5589b7fb3582a6caca5014c4d8152347df545) Signed-off-by: Mike Crowe Signed-off-by: Richard Purdie --- bitbake/lib/bb/process.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bitbake/lib/bb/process.py b/bitbake/lib/bb/process.py index c62d7bca4f..a4a559982c 100644 --- a/bitbake/lib/bb/process.py +++ b/bitbake/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) else: 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: