From 6b680c8da02017bdb17a4826f1819fe0e5f68652 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 7 Sep 2011 18:39:54 +0100 Subject: 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 --- meta/classes/terminal.bbclass | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'meta/classes/terminal.bbclass') diff --git a/meta/classes/terminal.bbclass b/meta/classes/terminal.bbclass index f29aeb0e12..ca28bd24f2 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: -- cgit v1.2.3