X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=shell%2FConfig.src;h=81c4ec87450d474d2e971daf761d59985060f23f;hb=419db0391e47444dd12fb052613fd415694d04f0;hp=6389d943ae71ee87159298637dedaeebeea0d31c;hpb=771f1995a99e63600a513f97ce35cbb9f6865138;p=oweals%2Fbusybox.git diff --git a/shell/Config.src b/shell/Config.src index 6389d943a..81c4ec874 100644 --- a/shell/Config.src +++ b/shell/Config.src @@ -5,193 +5,162 @@ menu "Shells" -INSERT - choice prompt "Choose which shell is aliased to 'sh' name" - default FEATURE_SH_IS_ASH + default SH_IS_ASH help - Choose which shell you want to be executed by 'sh' alias. - The ash shell is the most bash compatible and full featured one. + Choose which shell you want to be executed by 'sh' alias. + The ash shell is the most bash compatible and full featured one. # note: cannot use "select ASH" here, it breaks "make allnoconfig" -config FEATURE_SH_IS_ASH - depends on ASH - bool "ash" +config SH_IS_ASH depends on !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 FEATURE_SH_IS_HUSH - depends on HUSH +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 FEATURE_SH_IS_NONE +config SH_IS_NONE bool "none" endchoice choice prompt "Choose which shell is aliased to 'bash' name" - default FEATURE_BASH_IS_NONE + default 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. + Choose which shell you want to be executed by 'bash' alias. + 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 - /bin/bash (sym)link and run scripts which start with - #!/bin/bash line. + Note that selecting this option does not switch on any bash + compatibility code. It merely makes it possible to install + /bin/bash (sym)link and run scripts which start with + #!/bin/bash line. - Many systems use it in scripts which use bash-specific features, - even simple ones like $RANDOM. Without this option, busybox - can't be used for running them because it won't recongnize - "bash" as a supported applet name. + Many systems use it in scripts which use bash-specific features, + even simple ones like $RANDOM. Without this option, busybox + can't be used for running them because it won't recongnize + "bash" as a supported applet name. -config FEATURE_BASH_IS_ASH - depends on ASH - bool "ash" +config BASH_IS_ASH depends on !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 FEATURE_BASH_IS_HUSH - depends on HUSH +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 FEATURE_BASH_IS_NONE +config BASH_IS_NONE bool "none" endchoice -config LASH - bool "lash (deprecated: aliased to hush)" - default n - select HUSH - help - lash is deprecated and will be removed, please migrate to hush. - -config MSH - bool "msh (deprecated: please use hush)" - default n - select HUSH - help - msh is deprecated and will be removed, please migrate to hush. - If there is a feature msh has but hush does not, please let us know. +INSERT -# The minix shell (adds just 30k) is quite complete and handles things -# like for/do/done, case/esac and all the things you expect a Bourne -# shell to do. It is not always pedantically correct about Bourne -# shell grammar (try running the shell testscript "tests/sh.testcases" -# on it and compare vs bash) but for most things it works quite well. -# It uses only vfork, so it can be used on uClinux systems. +comment "Options common to all shells" +if ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH -config SH_MATH_SUPPORT +config FEATURE_SH_MATH bool "POSIX math support" default y - depends on ASH || HUSH + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH help - Enable math support in the shell via $((...)) syntax. + Enable math support in the shell via $((...)) syntax. -config SH_MATH_SUPPORT_64 +config FEATURE_SH_MATH_64 bool "Extend POSIX math support to 64 bit" default y - depends on SH_MATH_SUPPORT + depends on FEATURE_SH_MATH help - Enable 64-bit math support in the shell. This will make the shell - slightly larger, but will allow computation with very large numbers. - This is not in POSIX, so do not rely on this in portable code. + Enable 64-bit math support in the shell. This will make the shell + slightly larger, but will allow computation with very large numbers. + This is not in POSIX, so do not rely on this in portable code. config FEATURE_SH_EXTRA_QUIET bool "Hide message on interactive shell startup" default y - depends on HUSH || ASH + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH help - Remove the busybox introduction when starting a shell. + Remove the busybox introduction when starting a shell. config FEATURE_SH_STANDALONE bool "Standalone shell" default n - depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH help - This option causes busybox shells to use busybox applets - in preference to executables in the PATH whenever possible. For - example, entering the command 'ifconfig' into the shell would cause - busybox to use the ifconfig busybox applet. Specifying the fully - qualified executable name, such as '/sbin/ifconfig' will still - execute the /sbin/ifconfig executable on the filesystem. This option - is generally used when creating a statically linked version of busybox - 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 _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. + This option causes busybox shells to use busybox applets + in preference to executables in the PATH whenever possible. For + example, entering the command 'ifconfig' into the shell would cause + busybox to use the ifconfig busybox applet. Specifying the fully + qualified executable name, such as '/sbin/ifconfig' will still + execute the /sbin/ifconfig executable on the filesystem. This option + is generally used when creating a statically linked version of busybox + 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. + + 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 FEATURE_SH_NOFORK bool "Run 'nofork' applets directly" default n - depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH help - This option causes busybox shells [currently only ash] - to not execute typical fork/exec/wait sequence, but call _main - directly, if possible. (Sometimes it is not possible: for example, - this is not possible in pipes). + This option causes busybox shells to not execute typical + fork/exec/wait sequence, but call _main directly, + if possible. (Sometimes it is not possible: for example, + this is not possible in pipes). - This will be done only for some applets (those which are marked - NOFORK in include/applets.h). + This will be done only for some applets (those which are marked + NOFORK in include/applets.h). - This may significantly speed up some shell scripts. + This may significantly speed up some shell scripts. - This feature is relatively new. Use with care. + This feature is relatively new. Use with care. Report bugs + to project mailing list. -config CTTYHACK - bool "cttyhack" +config FEATURE_SH_READ_FRAC + bool "read -t N.NNN support (+110 bytes)" default y + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH help - One common problem reported on the mailing list is "can't access tty; - job control turned off" error message which typically appears when - one tries to use shell with stdin/stdout opened to /dev/console. - This device is special - it cannot be a controlling tty. - - Proper solution is to use correct device instead of /dev/console. - - cttyhack provides "quick and dirty" solution to this problem. - It analyzes stdin with various ioctls, trying to determine whether - it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). - If it detects one, it closes stdin/out/err and reopens that device. - Then it executes given program. Opening the device will make - that device a controlling tty. This may require cttyhack - to be a session leader. - - Example for /etc/inittab (for busybox init): - - ::respawn:/bin/cttyhack /bin/sh + Enable support for fractional second timeout in read builtin. - Starting an interactive shell from boot shell script: - - setsid cttyhack sh - - Giving controlling tty to shell running with PID 1: - - # exec cttyhack sh - - Without cttyhack, you need to know exact tty name, - and do something like this: +config FEATURE_SH_HISTFILESIZE + bool "Use $HISTFILESIZE" + default y + depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH + help + This option makes busybox shells to use $HISTFILESIZE variable + to set shell history size. Note that its max value is capped + by "History size" setting in library tuning section. - # exec setsid sh -c 'exec sh /dev/tty1 2>&1' +endif # Options common to all shells endmenu