aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/terminal.bbclass
AgeCommit message (Collapse)Author
2013-08-16classes/terminal: fix pseudo exiting when launching devshellPaul Eggleton
In dylan, since the entire bitbake process is run under pseudo, LD_PRELOAD is set when we collect BB_ORIGENV and thus when we construct the devshell environment from the latter, LD_PRELOAD is included. However, for a fakeroot task we explicitly run the devshell under pseudo (e.g. "pseudo /bin/bash"), and if LD_PRELOAD is set to preload libpseudo.so when pseudo is run, it seems to exit immediately without error. Since LD_PRELOAD shouldn't be exported anyway, exclude this from the environment so it doesn't prevent running the shell. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-08-07terminal: Run command using a wrapper scriptTyler Hall
Some terminals may not pass the environment into the child process. This is true when using "tmux split-window." If tmux is already running, it will start the command with the tmux session environment, ignoring the environment where the command was issued. This could possibly be worked around when launching tmux by injecting variables into the user's session environment or adding the variables to the "update-environment" tmux setting. However, both methods would permanently alter the user's session, which is undesirable. By using a wrapper script, we have full control over the final environment. Replace the env dictionary with an empty data smart that will contain the exported variables and a wrapper function that execs the original command. (From OE-Core master rev: 3bb96671e987ce8110ce98b9f6d9efc093f8d20e) Signed-off-by: Tyler Hall <tylerwhall@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19devshell.bbclass: Allow running devshell and fakeroot togetherRichard Purdie
Currently its hard to run a devshell complete with fakeroot context. This patch allows the fakeroot flag on the task to do this, as with any other task. Since we may need to start X terminal applications, we need to only start the fakeroot session on the final command, hence the hoops this code jumps through. As always with fakeroot, you can break out and run a command without the fake permissions with syntax like "PSEUDO_UNLOAD=1 <command>" [YOCTO #3374] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06terminal.bbclass: Use BB_ORIGENV to restore user environmental variablesRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-02terminal: Ensure existing environment exports are preserved in devshellRichard Purdie
After recent changes to terminal.bbclass, variables like PATH were no longer preserved within the devshell. This change ensures they are inherited into the environment of devshell and PATH for example has the correct values. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-01terminal.bbclass: Ensure parent environment is setRichard Purdie
If this isn't done, various terminals fail to launch correctly with "No such file or directory" errors. This adds back the environment manipulation removed in the addition of "custom" terminal command support but shouldn't regress that additional functionality Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-24terminal: Add support for running custom terminals.Morten Minde Neergaard
Example config: OE_TERMINAL = "custom" OE_TERMINAL_CUSTOMCMD = "mysuperterm" Signed-off-by: Morten Minde Neergaard <mneergaa@cisco.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-24terminal: pass data store all the way through to terminal classJason Wessel
Passing the data store will be needed for firing a custom event for the screen class. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variableJason Wessel
Some versions of the screen utility provided from the host OS vendor write the socket directory to $HOME/.screen. When using a shared home directory across many servers, one sets the SCREENDIR environment variable to avoid collisions in the shared home directory. This results in problems launching a devshell where it is not entirely obvious what happened because the SCREENDIR environment variable got stripped from the environment prior to setting up the screen in detached mode. Example: % bitbake -c devshell busybox # ...Please connect in another terminal with "screen -r devshell" % screen -r devshell There is no screen to be resumed matching devshell. The temporary work around was to do something like: sh -c "unset SCREENDIR; screen -r devshell" This patch adds SCREENDIR to the white list to ensure screen works properly on systems where a developer needs to use the SCREENDIR with shared home directories. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-09terminal.bbclass: Improve environment handlingRichard Purdie
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@linuxfoundation.org>
2011-08-24terminal: fix issue with unset exportable env varsChris Larson
This should resolve the devshell issue people are seeing. Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-10Rework how the devshell functionsChris Larson
In the new implementation, each known terminal is defined as a class in oe.terminal, as a subclass of bb.process.Popen. terminal.bbclass wraps this functionality, providing the metadata pieces. It obeys the OE_TERMINAL variable, which is a 'choice' typed variable. This variable may be 'auto', 'none', or any of the names of the defined terminals. When using 'auto', or requesting an unsupported terminal, we attempt to spawn them in priority order until we get one that's available on this system (and in the case of the X terminals, has DISPLAY defined). The 'none' value is used when we're doing things like automated builds, and want to ensure that no terminal is *ever* spawned, under any circumstances. Current available terminals: gnome konsole xterm rxvt screen Signed-off-by: Chris Larson <chris_larson@mentor.com>