summaryrefslogtreecommitdiffstats
path: root/meta/classes/terminal.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* terminal.bbclass: Generate do_terminal as bitbake wouldNathan Rossi2019-04-031-2/+2
| | | | | | | | | | | | | | | | | | This changes the runfile that is generated to have the same behaviour as bitbake with regards to emitting the shebang and trap code. The existing implementation used 'env' with the current var-SHELL. This means that if the user has configured there system/environment with a alternate shell (e.g. csh, zsh, fish, etc.) the do_terminal function would attempt to execute with the wrong/incompatible shell and fail silently. With this change devshell and other classes that rely on terminal can now run when the var-SHELL is not set to a sh compatible shell. For devshell, it will launch the devshell with the users configured shell. (From OE-Core rev: 53724281eb486847bc3be824aa4513a8688ec296) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: use var-SHELL as the shebang of wrapper scriptHongxu Jia2018-08-281-1/+2
| | | | | | | | | | | | | | The devshell.bbclass set var-SHELL to var-DEVSHELL, and terminal.bbclass initial var-SHELL with `bash'. Keep sync with it, use var-SHELL rather than hardcoded `/bin/sh' as the shebang of wrapper script. On Ubuntu host, default shell is dash (/bin/sh -> dash), even though we assign var-SHELL with `/bin/bash', the wrapper script is still dashism. (From OE-Core rev: 27e2ede65f1193e49f9483b08a55495d88740a65) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: Use original PATH for terminalsRichard Purdie2017-03-131-0/+5
| | | | | | | | | | | | | | | | Now that we filter out PATH to only the utilities we rely upon, the devshel terminal was broken since it can no longer find the terminals. Even if we fix that, the user couldn't access any of their commands within devshell which somewhat defeats its purpose. Add the original PATH back to the environment to restore that behaviour since this is more in line with user expectations and it wouldn't be possible (or desireable) to whitelist all the commands a user might want to use from the shell. (From OE-Core rev: 67d7ea2db8bce766daf3419feae3cd8045af5114) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: export configure varsRobert Yang2017-02-231-1/+1
| | | | | | | | | | | | | | So that we can easily reproduce configure by: $ $CACHED_CONFIGUREVARS ./configure $CONFIGUREOPTS $EXTRA_OECONF [YOCTO #9423] (From OE-Core rev: a851f57de63fe527e04f2296245e9720c40f9c2e) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-4/+4
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devshell: list commands when throwing NoSupportedTerminalsStephano Cetola2016-11-231-2/+6
| | | | | | | | | | | | | | | When attempting to run devshell, if no terminal is available, the error being thrown was not very specific. This adds a list of commands that failed, informing the user of what they can install to fix the error. [ YOCTO #10472] (From OE-Core rev: c077f4aab2fc956408d4ad45c4e2e2ea6e480624) Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Convert to use python3 octal syntaxRichard Purdie2016-06-021-1/+1
| | | | | | | | The syntax for octal values changed in python3, adapt to it. (From OE-Core rev: 737a095fcde773a36e0fee1f27b74aaa88062386) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: import oe.terminal for oe.terminal.prioritized()Robert Yang2016-02-211-2/+4
| | | | | | | | | | | | | Fixed: INHERIT += "typecheck" $ bitbake -p ERROR: Failure expanding expression auto none ${@" ".join(o.name for o in oe.terminal.prioritized())} which triggered exception AttributeError: 'module' object has no attribute 'terminal' (From OE-Core rev: 74bc2a65ec18c749d9343d9a33eccae93726846c) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Ensure pass setVar/setVarFlag strings, not integersRichard Purdie2015-11-241-4/+4
| | | | | | | | | | | This doesn't cause any issues right now but it make sense to standardise on consistently using strings in the data store. (From OE-Core rev: 99203fbe5ad470ef65cff93cec9d7f332883b5ee) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: do not export PS1Anders Darander2014-01-101-0/+4
| | | | | | | | | | | | | | With a complex PS1 setup, PS1 might not have all characters correctly escaped when terminal.bbclass writes the export. This caused the run.do_terminal.PID to terminate, making it impossible to use the devshell. As the spawned shell will parse e.g. .bashrc (or whatever rc-file is being used), PS1 will be reset in the devshell. (From OE-Core rev: a5e6926cd409140d16391c72316da00ffbfe5429) Signed-off-by: Anders Darander <anders@chargestorm.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: Exclude BB_ORIGENV from the signaturesRichard Purdie2013-12-201-0/+2
| | | | | | | | | | | | | devshell was printing a traceback when exiting due to the use of dump_sigs() being called on the task. This is turn was since this function referenced BB_ORIGENV. We might as well globally exclude this for now since its a data store object and cannot be pickled, not would it make sense to do so. [YOCTO #5683] (From OE-Core rev: 84b549afb46fce7b5cdaa977286aeb2e90d3bfdb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Don't use deprecated bitbake APIRichard Purdie2013-09-011-1/+1
| | | | | | | | | | These have been deprecated for a long time, convert the remaining references to the correct modules and prepare for removal of the compatibility support from bitbake. (From OE-Core rev: 6a39835af2b2b3c7797fe05479341d71a3f3aaf6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: Fix BB_RUNFMT processingMark Hatle2013-07-181-1/+3
| | | | | | | | | | | | | BB_RUNFMT can include task and taskfunc, as well as func and pid. Add the two missing items toe the runfmt processing. Also BB_RUNFMT can include arbitrary directory structure. (From OE-Core rev: 95f6e9a3d8fa24acc3bab392719e2d92be25d806) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: Run command using a wrapper scriptTyler Hall2013-07-021-9/+32
| | | | | | | | | | | | | | | | | | | | | | | 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 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>
* devshell.bbclass: Allow running devshell and fakeroot togetherRichard Purdie2013-02-191-0/+5
| | | | | | | | | | | | | | | | | | | 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] (From OE-Core rev: 0a2662a48eaf0487db043c348e2834bb9cdd0466) 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>
* terminal.bbclass: Use BB_ORIGENV to restore user environmental variablesRichard Purdie2013-02-061-1/+12
| | | | | | (From OE-Core rev: 131643695d7ba9d0c32bf8e192e7e3942f50f318) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: Ensure existing environment exports are preserved in devshellRichard Purdie2012-11-021-0/+3
| | | | | | | | | | 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. (From OE-Core rev: f2dfc50bdf403719d40d04488245fd37655b5480) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: Ensure parent environment is setRichard Purdie2012-11-011-0/+1
| | | | | | | | | | | 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 (From OE-Core rev: 424d2339b462081010af6e7525a71f64d97ff05e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: Add support for running custom terminals.Morten Minde Neergaard2012-10-241-4/+6
| | | | | | | | | | | | Example config: OE_TERMINAL = "custom" OE_TERMINAL_CUSTOMCMD = "mysuperterm" (From OE-Core rev: c76da87511d2668479745c2f18b8a9b8116c7489) Signed-off-by: Morten Minde Neergaard <mneergaa@cisco.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: pass data store all the way through to terminal classJason Wessel2012-09-241-2/+2
| | | | | | | | | | Passing the data store will be needed for firing a custom event for the screen class. (From OE-Core rev: 5ccff8d44626bfd3d1af2a7f81f0567997277809) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variableJason Wessel2012-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 5568a8f5a1c65bae021b2e36d735d3153acc6d72) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal.bbclass: Improve environment handlingRichard Purdie2011-09-091-7/+6
| | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 6b680c8da02017bdb17a4826f1819fe0e5f68652) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* terminal: fix issue with unset exportable env varsChris Larson2011-08-241-1/+3
| | | | | | | | | This should resolve the devshell issue people are seeing. (From OE-Core rev: 332f2a9febfc3697ed4a20fca3016e0399ae90eb) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Rework how the devshell functionsChris Larson2011-08-101-0/+40
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 (From OE-Core rev: 69f77f80965fa06a057837f8f49eda06855c4086) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>