From 157d9d92a026db96eb7388a719aa800d2f5bbe2d Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 9 Feb 2017 16:42:29 +1300 Subject: [PATCH] bitbake: tinfoil: ensure PATH includes bitbake's bin directory The runqueue expects to be able to run 'bitbake-worker' from PATH, but for example in the OE extensible SDK, tinfoil is used within devtool where this isn't the case (we're not exposing bitbake to the user, thus bitbake's bin directory isn't in PATH). This fixes devtool modify usage within the extensible SDK which has apparently been broken since the tinfoil2 changes went in. Fixes [YOCTO #11034]. (Bitbake rev: 52d87e4a58a52174e8e0b6297abaac8fd93ffcc3) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/tinfoil.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py index 96275fde7f..940f9ab0d5 100644 --- a/bitbake/lib/bb/tinfoil.py +++ b/bitbake/lib/bb/tinfoil.py @@ -211,6 +211,19 @@ class Tinfoil: self.ui_module = ui_module + # Ensure the path to bitbake's bin directory is in PATH so that things like + # bitbake-worker can be run (usually this is the case, but it doesn't have to be) + path = os.getenv('PATH').split(':') + bitbakebinpath = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'bin')) + for entry in path: + if entry.endswith(os.sep): + entry = entry[:-1] + if os.path.abspath(entry) == bitbakebinpath: + break + else: + path.insert(0, bitbakebinpath) + os.environ['PATH'] = ':'.join(path) + if self.server_connection: _server_connections.append(self.server_connection) if config_only: