]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: tinfoil: ensure PATH includes bitbake's bin directory
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Thu, 9 Feb 2017 03:42:29 +0000 (16:42 +1300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 19 Feb 2017 14:28:47 +0000 (06:28 -0800)
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 <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/tinfoil.py

index 96275fde7f9b1d493867c768019f6695cce67fee..940f9ab0d517ff6c1303b2c89e5e62e494c905e4 100644 (file)
@@ -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: