diff options
Diffstat (limited to 'package/utils/busybox/config/shell/Config.in')
-rw-r--r-- | package/utils/busybox/config/shell/Config.in | 271 |
1 files changed, 169 insertions, 102 deletions
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in index 4193c18806..e455d3832d 100644 --- a/package/utils/busybox/config/shell/Config.in +++ b/package/utils/busybox/config/shell/Config.in @@ -18,9 +18,19 @@ choice config BUSYBOX_CONFIG_SH_IS_ASH depends on !BUSYBOX_CONFIG_NOMMU bool "ash" + help + Choose ash to be the shell executed by 'sh' name. + The ash code will be built into busybox. If you don't select + "ash" choice (CONFIG_ASH), this shell may only be invoked by + the name 'sh' (and not 'ash'). config BUSYBOX_CONFIG_SH_IS_HUSH bool "hush" + help + Choose hush to be the shell executed by 'sh' name. + The hush code will be built into busybox. If you don't select + "hush" choice (CONFIG_HUSH), this shell may only be invoked by + the name 'sh' (and not 'hush'). config BUSYBOX_CONFIG_SH_IS_NONE bool "none" @@ -32,7 +42,8 @@ choice default BUSYBOX_CONFIG_BASH_IS_NONE help Choose which shell you want to be executed by 'bash' alias. - The ash shell is the most bash compatible and full featured one. + The ash shell is the most bash compatible and full featured one, + although compatibility is far from being complete. Note that selecting this option does not switch on any bash compatibility code. It merely makes it possible to install @@ -47,9 +58,19 @@ choice config BUSYBOX_CONFIG_BASH_IS_ASH depends on !BUSYBOX_CONFIG_NOMMU bool "ash" + help + Choose ash to be the shell executed by 'bash' name. + The ash code will be built into busybox. If you don't select + "ash" choice (CONFIG_ASH), this shell may only be invoked by + the name 'bash' (and not 'ash'). config BUSYBOX_CONFIG_BASH_IS_HUSH bool "hush" + help + Choose hush to be the shell executed by 'bash' name. + The hush code will be built into busybox. If you don't select + "hush" choice (CONFIG_HUSH), this shell may only be invoked by + the name 'bash' (and not 'hush'). config BUSYBOX_CONFIG_BASH_IS_NONE bool "none" @@ -68,12 +89,15 @@ config BUSYBOX_CONFIG_ASH shell (by Herbert Xu), which was created by porting the 'ash' shell (written by Kenneth Almquist) from NetBSD. +# ash options +# note: Don't remove !NOMMU part in the next line; it would break +# menuconfig's indenting. +if !NOMMU && (BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH) + config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE bool "Optimize for size instead of speed" default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Compile ash for reduced size at the price of speed. config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB bool "Use internal glob() implementation" @@ -83,6 +107,23 @@ config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB Do not use glob() function from libc, use internal implementation. Use this if you are getting "glob.h: No such file or directory" or similar build errors. + Note that as of now (2017-01), uclibc and musl glob() both have bugs + which would break ash if you select N here. + +config BUSYBOX_CONFIG_ASH_BASH_COMPAT + bool "bash-compatible extensions" + default BUSYBOX_DEFAULT_ASH_BASH_COMPAT + depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH + +config BUSYBOX_CONFIG_ASH_JOB_CONTROL + bool "Job control" + default BUSYBOX_DEFAULT_ASH_JOB_CONTROL + depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH + +config BUSYBOX_CONFIG_ASH_ALIAS + bool "Alias support" + default BUSYBOX_DEFAULT_ASH_ALIAS + depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT bool "Pseudorandom generator and $RANDOM variable" @@ -100,88 +141,62 @@ config BUSYBOX_CONFIG_ASH_EXPAND_PRMT default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH help - "PS#" may contain volatile content, such as backquote commands. + $PS# may contain volatile content, such as backquote commands. This option recreates the prompt string from the environment variable each time it is displayed. -config BUSYBOX_CONFIG_ASH_BASH_COMPAT - bool "bash-compatible extensions" - default BUSYBOX_DEFAULT_ASH_BASH_COMPAT - depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable bash-compatible extensions. - config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT - bool "Idle timeout variable" + bool "Idle timeout variable $TMOUT" default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH help - Enables bash-like auto-logout after $TMOUT seconds of idle time. + Enable bash-like auto-logout after $TMOUT seconds of idle time. -config BUSYBOX_CONFIG_ASH_JOB_CONTROL - bool "Job control" - default BUSYBOX_DEFAULT_ASH_JOB_CONTROL - depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable job control in the ash shell. - -config BUSYBOX_CONFIG_ASH_ALIAS - bool "Alias support" - default BUSYBOX_DEFAULT_ASH_ALIAS - depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable alias support in the ash shell. - -config BUSYBOX_CONFIG_ASH_GETOPTS - bool "Builtin getopt to parse positional parameters" - default BUSYBOX_DEFAULT_ASH_GETOPTS +config BUSYBOX_CONFIG_ASH_MAIL + bool "Check for new mail in interactive shell" + default BUSYBOX_DEFAULT_ASH_MAIL depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH help - Enable support for getopts builtin in ash. + Enable "check for new mail" function: + if set, $MAIL file and $MAILPATH list of files + are checked for mtime changes, and "you have mail" + message is printed if change is detected. -config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO - bool "Builtin version of 'echo'" - default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO +config BUSYBOX_CONFIG_ASH_ECHO + bool "echo builtin" + default BUSYBOX_DEFAULT_ASH_ECHO depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable support for echo builtin in ash. -config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF - bool "Builtin version of 'printf'" - default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF +config BUSYBOX_CONFIG_ASH_PRINTF + bool "printf builtin" + default BUSYBOX_DEFAULT_ASH_PRINTF depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable support for printf builtin in ash. -config BUSYBOX_CONFIG_ASH_BUILTIN_TEST - bool "Builtin version of 'test'" - default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST +config BUSYBOX_CONFIG_ASH_TEST + bool "test builtin" + default BUSYBOX_DEFAULT_ASH_TEST depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable support for test builtin in ash. config BUSYBOX_CONFIG_ASH_HELP bool "help builtin" default BUSYBOX_DEFAULT_ASH_HELP depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable help builtin in ash. + +config BUSYBOX_CONFIG_ASH_GETOPTS + bool "getopts builtin" + default BUSYBOX_DEFAULT_ASH_GETOPTS + depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH config BUSYBOX_CONFIG_ASH_CMDCMD - bool "'command' command to override shell builtins" + bool "command builtin" default BUSYBOX_DEFAULT_ASH_CMDCMD depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH help - Enable support for the ash 'command' builtin, which allows - you to run the specified command with the specified arguments, - even when there is an ash builtin command with the same name. + Enable support for the 'command' builtin, which allows + you to run the specified command or builtin, + even when there is a function with the same name. -config BUSYBOX_CONFIG_ASH_MAIL - bool "Check for new mail on interactive shells" - default BUSYBOX_DEFAULT_ASH_MAIL - depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH - help - Enable "check for new mail" function in the ash shell. +endif # ash options config BUSYBOX_CONFIG_CTTYHACK bool "cttyhack" default BUSYBOX_DEFAULT_CTTYHACK @@ -243,8 +258,6 @@ config BUSYBOX_CONFIG_HUSH_BASH_COMPAT bool "bash-compatible extensions" default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH - help - Enable bash-compatible extensions. config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION bool "Brace expansion" @@ -253,13 +266,6 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION help Enable {abc,def} extension. -config BUSYBOX_CONFIG_HUSH_HELP - bool "help builtin" - default BUSYBOX_DEFAULT_HUSH_HELP - depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH - help - Enable help builtin in hush. Code size + ~1 kbyte. - config BUSYBOX_CONFIG_HUSH_INTERACTIVE bool "Interactive mode" default BUSYBOX_DEFAULT_HUSH_INTERACTIVE @@ -274,8 +280,6 @@ config BUSYBOX_CONFIG_HUSH_SAVEHISTORY bool "Save command history to .hush_history" default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY - help - Enable history saving in hush. config BUSYBOX_CONFIG_HUSH_JOB bool "Job control" @@ -289,42 +293,38 @@ config BUSYBOX_CONFIG_HUSH_JOB but no separate process group is formed. config BUSYBOX_CONFIG_HUSH_TICK - bool "Process substitution" + bool "Support process substitution" default BUSYBOX_DEFAULT_HUSH_TICK depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH help - Enable process substitution `command` and $(command) in hush. + Enable `command` and $(command). config BUSYBOX_CONFIG_HUSH_IF bool "Support if/then/elif/else/fi" default BUSYBOX_DEFAULT_HUSH_IF depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH - help - Enable if/then/elif/else/fi in hush. config BUSYBOX_CONFIG_HUSH_LOOPS bool "Support for, while and until loops" default BUSYBOX_DEFAULT_HUSH_LOOPS depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH - help - Enable for, while and until loops in hush. config BUSYBOX_CONFIG_HUSH_CASE bool "Support case ... esac statement" default BUSYBOX_DEFAULT_HUSH_CASE depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH help - Enable case ... esac statement in hush. +400 bytes. + Enable case ... esac statement. +400 bytes. config BUSYBOX_CONFIG_HUSH_FUNCTIONS bool "Support funcname() { commands; } syntax" default BUSYBOX_DEFAULT_HUSH_FUNCTIONS depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH help - Enable support for shell functions in hush. +800 bytes. + Enable support for shell functions. +800 bytes. config BUSYBOX_CONFIG_HUSH_LOCAL - bool "Support local builtin" + bool "local builtin" default BUSYBOX_DEFAULT_HUSH_LOCAL depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS help @@ -338,13 +338,6 @@ config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT Enable pseudorandom generator and dynamic variable "$RANDOM". Each read of "$RANDOM" will generate a new pseudorandom value. -config BUSYBOX_CONFIG_HUSH_EXPORT_N - bool "Support 'export -n' option" - default BUSYBOX_DEFAULT_HUSH_EXPORT_N - depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH - help - export -n unexports variables. It is a bash extension. - config BUSYBOX_CONFIG_HUSH_MODE_X bool "Support 'hush -x' option and 'set -x' command" default BUSYBOX_DEFAULT_HUSH_MODE_X @@ -353,6 +346,88 @@ config BUSYBOX_CONFIG_HUSH_MODE_X This instructs hush to print commands before execution. Adds ~300 bytes. +config BUSYBOX_CONFIG_HUSH_ECHO + bool "echo builtin" + default BUSYBOX_DEFAULT_HUSH_ECHO + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_PRINTF + bool "printf builtin" + default BUSYBOX_DEFAULT_HUSH_PRINTF + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_TEST + bool "test builtin" + default BUSYBOX_DEFAULT_HUSH_TEST + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_HELP + bool "help builtin" + default BUSYBOX_DEFAULT_HUSH_HELP + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_EXPORT + bool "export builtin" + default BUSYBOX_DEFAULT_HUSH_EXPORT + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_EXPORT_N + bool "Support 'export -n' option" + default BUSYBOX_DEFAULT_HUSH_EXPORT_N + depends on BUSYBOX_CONFIG_HUSH_EXPORT + help + export -n unexports variables. It is a bash extension. + +config BUSYBOX_CONFIG_HUSH_KILL + bool "kill builtin (supports kill %jobspec)" + default BUSYBOX_DEFAULT_HUSH_KILL + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_WAIT + bool "wait builtin" + default BUSYBOX_DEFAULT_HUSH_WAIT + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_TRAP + bool "trap builtin" + default BUSYBOX_DEFAULT_HUSH_TRAP + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_TYPE + bool "type builtin" + default BUSYBOX_DEFAULT_HUSH_TYPE + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_READ + bool "read builtin" + default BUSYBOX_DEFAULT_HUSH_READ + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_SET + bool "set builtin" + default BUSYBOX_DEFAULT_HUSH_SET + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_UNSET + bool "unset builtin" + default BUSYBOX_DEFAULT_HUSH_UNSET + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_ULIMIT + bool "ulimit builtin" + default BUSYBOX_DEFAULT_HUSH_ULIMIT + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_UMASK + bool "umask builtin" + default BUSYBOX_DEFAULT_HUSH_UMASK + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + +config BUSYBOX_CONFIG_HUSH_MEMLEAK + bool "memleak builtin (debugging)" + default BUSYBOX_DEFAULT_HUSH_MEMLEAK + depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + config BUSYBOX_CONFIG_MSH bool "msh (deprecated: aliased to hush)" default BUSYBOX_DEFAULT_MSH @@ -361,6 +436,9 @@ config BUSYBOX_CONFIG_MSH msh is deprecated and will be removed, please migrate to hush. +comment "Options common to all shells" +if ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH + config BUSYBOX_CONFIG_FEATURE_SH_MATH bool "POSIX math support" default BUSYBOX_DEFAULT_FEATURE_SH_MATH @@ -399,23 +477,11 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE for use as a rescue shell, in the event that you screw up your system. This is implemented by re-execing /proc/self/exe (typically) - with right parameters. Some selected applets ("NOFORK" applets) - can even be executed without creating new process. - Instead, busybox will call <applet>_main() internally. - - However, this causes problems in chroot jails without mounted /proc - and with ps/top (command name can be shown as 'exe' for applets - started this way). -# untrue? -# Note that this will *also* cause applets to take precedence -# over shell builtins of the same name. So turning this on will -# eliminate any performance gained by turning on the builtin "echo" -# and "test" commands in ash. -# untrue? -# Note that when using this option, the shell will attempt to directly -# run '/bin/busybox'. If you do not have the busybox binary sitting in -# that exact location with that exact name, this option will not work at -# all. + with right parameters. + + However, there are drawbacks: it is problematic in chroot jails + without mounted /proc, and ps/top may show command name as 'exe' + for applets started this way. config BUSYBOX_CONFIG_FEATURE_SH_NOFORK bool "Run 'nofork' applets directly" @@ -444,5 +510,6 @@ config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE to set shell history size. Note that its max value is capped by "History size" setting in library tuning section. +endif # Options common to all shells endmenu |