terminal.bbclass: Use BB_ORIGENV to restore user environmental variables

(From OE-Core rev: 131643695d7ba9d0c32bf8e192e7e3942f50f318)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-02-05 16:01:20 +00:00
parent bc2b60c021
commit fef84540e3
1 changed files with 12 additions and 1 deletions

View File

@ -4,7 +4,7 @@ OE_TERMINAL[choices] = 'auto none \
${@" ".join(o.name \
for o in oe.terminal.prioritized())}'
OE_TERMINAL_EXPORTS += 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE SCREENDIR'
OE_TERMINAL_EXPORTS += 'EXTRA_OEMAKE'
OE_TERMINAL_EXPORTS[type] = 'list'
XAUTHORITY ?= "${HOME}/.Xauthority"
@ -26,6 +26,17 @@ def oe_terminal(command, title, d):
os.environ[export] = str(value)
env[export] = str(value)
# Add in all variables from the user's original environment which
# haven't subsequntly been set/changed
origbbenv = d.getVar("BB_ORIGENV", False) or {}
for key in origbbenv:
if key in env:
continue
value = origbbenv.getVar(key, True)
if value is not None:
os.environ[key] = str(value)
env[key] = str(value)
terminal = oe.data.typed_value('OE_TERMINAL', d).lower()
if terminal == 'none':
bb.fatal('Devshell usage disabled with OE_TERMINAL')