[oe-commits] Richard Purdie : terminal.bbclass: Improve environment handling

git version control git at git.openembedded.org
Fri Sep 9 17:42:34 UTC 2011


Module: openembedded-core.git
Branch: master
Commit: 6b680c8da02017bdb17a4826f1819fe0e5f68652
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=6b680c8da02017bdb17a4826f1819fe0e5f68652

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Wed Sep  7 18:39:54 2011 +0100

terminal.bbclass: Improve environment handling

Currently the environment handling for terminals is inconsistent. There
are two fixes here:

a) Ensure the environment is setup before all oe.terminal call

b) Actually set the environment before the spawn calls since we need
variables like DISPLAY when the commands are being executed, not just
within the terminal environment. If this doesn't happen, DISPLAY can end
up not set with the errors that brings with it when trying to run X
commands.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/terminal.bbclass |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/meta/classes/terminal.bbclass b/meta/classes/terminal.bbclass
index f29aeb0..ca28bd2 100644
--- a/meta/classes/terminal.bbclass
+++ b/meta/classes/terminal.bbclass
@@ -15,6 +15,11 @@ def oe_terminal(command, title, d):
     import oe.data
     import oe.terminal
 
+    for export in oe.data.typed_value('OE_TERMINAL_EXPORTS', d):
+        value = d.getVar(export, True)
+        if value is not None:
+            os.environ[export] = str(value)
+
     terminal = oe.data.typed_value('OE_TERMINAL', d).lower()
     if terminal == 'none':
         bb.fatal('Devshell usage disabled with OE_TERMINAL')
@@ -28,14 +33,8 @@ def oe_terminal(command, title, d):
         except oe.terminal.ExecutionError as exc:
             bb.fatal('Unable to spawn terminal %s: %s' % (terminal, exc))
 
-    env = dict(os.environ)
-    for export in oe.data.typed_value('OE_TERMINAL_EXPORTS', d):
-        value = d.getVar(export, True)
-        if value is not None:
-            env[export] = str(value)
-
     try:
-        oe.terminal.spawn_preferred(command, title, env)
+        oe.terminal.spawn_preferred(command, title)
     except oe.terminal.NoSupportedTerminals:
         bb.fatal('No valid terminal found, unable to open devshell')
     except oe.terminal.ExecutionError as exc:





More information about the Openembedded-commits mailing list