]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/terminal.py: use an absolute path to execute oe-gnome-terminal-phonehome
authorMing Liu <liu.ming50@gmail.com>
Fri, 13 Oct 2017 11:26:16 +0000 (13:26 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 7 Nov 2017 14:53:52 +0000 (14:53 +0000)
A flaw was found on my Ubuntu 14.04.5 LTS, on which that gnome-terminal is
the default terminal, when I run any of the tasks:
bitbake busybox -c menuconfig/devshell/devpyshell
bitbake virtual/kernel -c menuconfig/devshell/devpyshell

I got a error as follows:
"Failed to execute child process "oe-gnome-terminal-phonehome" (No such file or directory)"

Seems the environment of the process calling Popen is not passed to the
child process, this behaviour is a known issue in Python bug tracker:
http://bugs.python.org/issue8557

It could be fixed by using an absolute path instead per test.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oe/terminal.py

index 9eb19a261997c94c14da4839d0204d4a5c09fa8d..94afe394ed165f7259842851b7a47a819c0a70d7 100644 (file)
@@ -224,7 +224,7 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
     import time
     pidfile = tempfile.NamedTemporaryFile(delete = False).name
     try:
-        sh_cmd = "oe-gnome-terminal-phonehome " + pidfile + " " + sh_cmd
+        sh_cmd = bb.utils.which(os.getenv('PATH'), "oe-gnome-terminal-phonehome") + " " + pidfile + " " + sh_cmd
         pipe = terminal(sh_cmd, title, env, d)
         output = pipe.communicate()[0]
         if output: