[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4684/8267] bitbake: tinfoil: ensure PATH includes bitbake's bin directory



commit 157d9d92a026db96eb7388a719aa800d2f5bbe2d
Author: Paul Eggleton <paul eggleton linux intel com>
Date:   Thu Feb 9 16:42:29 2017 +1300

    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 <paul eggleton linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/tinfoil.py |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 96275fd..940f9ab 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:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]