]> code.ossystems Code Review - openembedded-core.git/commitdiff
terminal.py: Pass string instead of bytes to ExecutionError to avoid exception
authorMartin Vuille <jpmv27@yahoo.com>
Sun, 27 Nov 2016 20:02:37 +0000 (15:02 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 11 Jan 2017 11:46:45 +0000 (11:46 +0000)
Based on run() in bitbake/lib/bb/process.py, ExecutionError() expects strings
not bytes. Passing bytes results in a "TypeError: Can't convert 'bytes' object
to str implicitly" exception.

Fixes Bug 10729

(From OE-Core rev: 063b63d4d324c23322ac1b6b7c7928e725d7b968)

Signed-off-by: Martin Vuille <jpmv27@yahoo.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/lib/oe/terminal.py

index 3901ad3f26b3dcbdae1921278e4ef033b23df34b..3c8ef59a45a63d616d8206dfb60748ba0b7b41d3 100644 (file)
@@ -227,6 +227,8 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
 
     pipe = terminal(sh_cmd, title, env, d)
     output = pipe.communicate()[0]
+    if output:
+        output = output.decode("utf-8")
     if pipe.returncode != 0:
         raise ExecutionError(sh_cmd, pipe.returncode, output)