From 5b556f58a171e3d45107bb56a1f780e5c1abba37 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Wed, 4 May 2016 16:06:25 +0300 Subject: wic: decode output of subprocess.communicate stdeout and stderr content returned by communicate API has different types in Python 3(bytes) and Python 2(string). Decoding it to 'utf-8' makes it unicode on both pythons. Decoded stdout and stderr output to utf-8 to make the code working under both Python 2 and Python 3. Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- scripts/lib/wic/utils/runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts/lib/wic/utils') diff --git a/scripts/lib/wic/utils/runner.py b/scripts/lib/wic/utils/runner.py index 737751bd73..db536ba588 100644 --- a/scripts/lib/wic/utils/runner.py +++ b/scripts/lib/wic/utils/runner.py @@ -65,8 +65,8 @@ def runtool(cmdln_or_args, catch=1): process = subprocess.Popen(cmdln_or_args, stdout=sout, stderr=serr, shell=shell) (sout, serr) = process.communicate() - # combine stdout and stderr, filter None out - out = ''.join(filter(None, [sout, serr])) + # combine stdout and stderr, filter None out and decode + out = ''.join([out.decode('utf-8') for out in [sout, serr] if out]) except OSError as err: if err.errno == 2: # [Errno 2] No such file or directory -- cgit v1.2.3