busybox: update to 1.26.2
[openwrt/openwrt.git] / package / utils / busybox / config / shell / Config.in
1 # DO NOT EDIT. This file is generated from Config.src
2 #
3 # For a description of the syntax of this configuration file,
4 # see scripts/kbuild/config-language.txt.
5 #
6
7 menu "Shells"
8
9
10 choice
11 prompt "Choose which shell is aliased to 'sh' name"
12 default BUSYBOX_CONFIG_SH_IS_ASH
13 help
14 Choose which shell you want to be executed by 'sh' alias.
15 The ash shell is the most bash compatible and full featured one.
16
17 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
18 config BUSYBOX_CONFIG_SH_IS_ASH
19 depends on !BUSYBOX_CONFIG_NOMMU
20 bool "ash"
21
22 config BUSYBOX_CONFIG_SH_IS_HUSH
23 bool "hush"
24
25 config BUSYBOX_CONFIG_SH_IS_NONE
26 bool "none"
27
28 endchoice
29
30 choice
31 prompt "Choose which shell is aliased to 'bash' name"
32 default BUSYBOX_CONFIG_BASH_IS_NONE
33 help
34 Choose which shell you want to be executed by 'bash' alias.
35 The ash shell is the most bash compatible and full featured one.
36
37 Note that selecting this option does not switch on any bash
38 compatibility code. It merely makes it possible to install
39 /bin/bash (sym)link and run scripts which start with
40 #!/bin/bash line.
41
42 Many systems use it in scripts which use bash-specific features,
43 even simple ones like $RANDOM. Without this option, busybox
44 can't be used for running them because it won't recongnize
45 "bash" as a supported applet name.
46
47 config BUSYBOX_CONFIG_BASH_IS_ASH
48 depends on !BUSYBOX_CONFIG_NOMMU
49 bool "ash"
50
51 config BUSYBOX_CONFIG_BASH_IS_HUSH
52 bool "hush"
53
54 config BUSYBOX_CONFIG_BASH_IS_NONE
55 bool "none"
56
57 endchoice
58
59
60 config BUSYBOX_CONFIG_ASH
61 bool "ash"
62 default BUSYBOX_DEFAULT_ASH
63 depends on !BUSYBOX_CONFIG_NOMMU
64 help
65 Tha 'ash' shell adds about 60k in the default configuration and is
66 the most complete and most pedantically correct shell included with
67 busybox. This shell is actually a derivative of the Debian 'dash'
68 shell (by Herbert Xu), which was created by porting the 'ash' shell
69 (written by Kenneth Almquist) from NetBSD.
70
71 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
72 bool "Optimize for size instead of speed"
73 default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
74 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
75 help
76 Compile ash for reduced size at the price of speed.
77
78 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
79 bool "Use internal glob() implementation"
80 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
81 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
82 help
83 Do not use glob() function from libc, use internal implementation.
84 Use this if you are getting "glob.h: No such file or directory"
85 or similar build errors.
86
87 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
88 bool "Pseudorandom generator and $RANDOM variable"
89 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
90 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
91 help
92 Enable pseudorandom generator and dynamic variable "$RANDOM".
93 Each read of "$RANDOM" will generate a new pseudorandom value.
94 You can reset the generator by using a specified start value.
95 After "unset RANDOM" the generator will switch off and this
96 variable will no longer have special treatment.
97
98 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
99 bool "Expand prompt string"
100 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
101 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
102 help
103 "PS#" may contain volatile content, such as backquote commands.
104 This option recreates the prompt string from the environment
105 variable each time it is displayed.
106
107 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
108 bool "bash-compatible extensions"
109 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
110 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
111 help
112 Enable bash-compatible extensions.
113
114 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
115 bool "Idle timeout variable"
116 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
117 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
118 help
119 Enables bash-like auto-logout after $TMOUT seconds of idle time.
120
121 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
122 bool "Job control"
123 default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
124 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
125 help
126 Enable job control in the ash shell.
127
128 config BUSYBOX_CONFIG_ASH_ALIAS
129 bool "Alias support"
130 default BUSYBOX_DEFAULT_ASH_ALIAS
131 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
132 help
133 Enable alias support in the ash shell.
134
135 config BUSYBOX_CONFIG_ASH_GETOPTS
136 bool "Builtin getopt to parse positional parameters"
137 default BUSYBOX_DEFAULT_ASH_GETOPTS
138 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
139 help
140 Enable support for getopts builtin in ash.
141
142 config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
143 bool "Builtin version of 'echo'"
144 default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
145 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
146 help
147 Enable support for echo builtin in ash.
148
149 config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
150 bool "Builtin version of 'printf'"
151 default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
152 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
153 help
154 Enable support for printf builtin in ash.
155
156 config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
157 bool "Builtin version of 'test'"
158 default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
159 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
160 help
161 Enable support for test builtin in ash.
162
163 config BUSYBOX_CONFIG_ASH_HELP
164 bool "help builtin"
165 default BUSYBOX_DEFAULT_ASH_HELP
166 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
167 help
168 Enable help builtin in ash.
169
170 config BUSYBOX_CONFIG_ASH_CMDCMD
171 bool "'command' command to override shell builtins"
172 default BUSYBOX_DEFAULT_ASH_CMDCMD
173 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
174 help
175 Enable support for the ash 'command' builtin, which allows
176 you to run the specified command with the specified arguments,
177 even when there is an ash builtin command with the same name.
178
179 config BUSYBOX_CONFIG_ASH_MAIL
180 bool "Check for new mail on interactive shells"
181 default BUSYBOX_DEFAULT_ASH_MAIL
182 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
183 help
184 Enable "check for new mail" function in the ash shell.
185 config BUSYBOX_CONFIG_CTTYHACK
186 bool "cttyhack"
187 default BUSYBOX_DEFAULT_CTTYHACK
188 help
189 One common problem reported on the mailing list is the "can't
190 access tty; job control turned off" error message, which typically
191 appears when one tries to use a shell with stdin/stdout on
192 /dev/console.
193 This device is special - it cannot be a controlling tty.
194
195 The proper solution is to use the correct device instead of
196 /dev/console.
197
198 cttyhack provides a "quick and dirty" solution to this problem.
199 It analyzes stdin with various ioctls, trying to determine whether
200 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
201 On Linux it also checks sysfs for a pointer to the active console.
202 If cttyhack is able to find the real console device, it closes
203 stdin/out/err and reopens that device.
204 Then it executes the given program. Opening the device will make
205 that device a controlling tty. This may require cttyhack
206 to be a session leader.
207
208 Example for /etc/inittab (for busybox init):
209
210 ::respawn:/bin/cttyhack /bin/sh
211
212 Starting an interactive shell from boot shell script:
213
214 setsid cttyhack sh
215
216 Giving controlling tty to shell running with PID 1:
217
218 # exec cttyhack sh
219
220 Without cttyhack, you need to know exact tty name,
221 and do something like this:
222
223 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
224
225 Starting getty on a controlling tty from a shell script:
226
227 # getty 115200 $(cttyhack)
228 config BUSYBOX_CONFIG_HUSH
229 bool "hush"
230 default BUSYBOX_DEFAULT_HUSH
231 help
232 hush is a small shell (25k). It handles the normal flow control
233 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
234 case/esac. Redirections, here documents, $((arithmetic))
235 and functions are supported.
236
237 It will compile and work on no-mmu systems.
238
239 It does not handle select, aliases, tilde expansion,
240 &>file and >&file redirection of stdout+stderr.
241
242 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
243 bool "bash-compatible extensions"
244 default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
245 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
246 help
247 Enable bash-compatible extensions.
248
249 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
250 bool "Brace expansion"
251 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
252 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
253 help
254 Enable {abc,def} extension.
255
256 config BUSYBOX_CONFIG_HUSH_HELP
257 bool "help builtin"
258 default BUSYBOX_DEFAULT_HUSH_HELP
259 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
260 help
261 Enable help builtin in hush. Code size + ~1 kbyte.
262
263 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
264 bool "Interactive mode"
265 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
266 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
267 help
268 Enable interactive mode (prompt and command editing).
269 Without this, hush simply reads and executes commands
270 from stdin just like a shell script from a file.
271 No prompt, no PS1/PS2 magic shell variables.
272
273 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
274 bool "Save command history to .hush_history"
275 default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
276 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
277 help
278 Enable history saving in hush.
279
280 config BUSYBOX_CONFIG_HUSH_JOB
281 bool "Job control"
282 default BUSYBOX_DEFAULT_HUSH_JOB
283 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
284 help
285 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
286 command (not entire shell), fg/bg builtins work. Without this option,
287 "cmd &" still works by simply spawning a process and immediately
288 prompting for next command (or executing next command in a script),
289 but no separate process group is formed.
290
291 config BUSYBOX_CONFIG_HUSH_TICK
292 bool "Process substitution"
293 default BUSYBOX_DEFAULT_HUSH_TICK
294 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
295 help
296 Enable process substitution `command` and $(command) in hush.
297
298 config BUSYBOX_CONFIG_HUSH_IF
299 bool "Support if/then/elif/else/fi"
300 default BUSYBOX_DEFAULT_HUSH_IF
301 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
302 help
303 Enable if/then/elif/else/fi in hush.
304
305 config BUSYBOX_CONFIG_HUSH_LOOPS
306 bool "Support for, while and until loops"
307 default BUSYBOX_DEFAULT_HUSH_LOOPS
308 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
309 help
310 Enable for, while and until loops in hush.
311
312 config BUSYBOX_CONFIG_HUSH_CASE
313 bool "Support case ... esac statement"
314 default BUSYBOX_DEFAULT_HUSH_CASE
315 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
316 help
317 Enable case ... esac statement in hush. +400 bytes.
318
319 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
320 bool "Support funcname() { commands; } syntax"
321 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
322 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
323 help
324 Enable support for shell functions in hush. +800 bytes.
325
326 config BUSYBOX_CONFIG_HUSH_LOCAL
327 bool "Support local builtin"
328 default BUSYBOX_DEFAULT_HUSH_LOCAL
329 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
330 help
331 Enable support for local variables in functions.
332
333 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
334 bool "Pseudorandom generator and $RANDOM variable"
335 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
336 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
337 help
338 Enable pseudorandom generator and dynamic variable "$RANDOM".
339 Each read of "$RANDOM" will generate a new pseudorandom value.
340
341 config BUSYBOX_CONFIG_HUSH_EXPORT_N
342 bool "Support 'export -n' option"
343 default BUSYBOX_DEFAULT_HUSH_EXPORT_N
344 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
345 help
346 export -n unexports variables. It is a bash extension.
347
348 config BUSYBOX_CONFIG_HUSH_MODE_X
349 bool "Support 'hush -x' option and 'set -x' command"
350 default BUSYBOX_DEFAULT_HUSH_MODE_X
351 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
352 help
353 This instructs hush to print commands before execution.
354 Adds ~300 bytes.
355
356 config BUSYBOX_CONFIG_MSH
357 bool "msh (deprecated: aliased to hush)"
358 default BUSYBOX_DEFAULT_MSH
359 select BUSYBOX_CONFIG_HUSH
360 help
361 msh is deprecated and will be removed, please migrate to hush.
362
363
364 config BUSYBOX_CONFIG_FEATURE_SH_MATH
365 bool "POSIX math support"
366 default BUSYBOX_DEFAULT_FEATURE_SH_MATH
367 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
368 help
369 Enable math support in the shell via $((...)) syntax.
370
371 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
372 bool "Extend POSIX math support to 64 bit"
373 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
374 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
375 help
376 Enable 64-bit math support in the shell. This will make the shell
377 slightly larger, but will allow computation with very large numbers.
378 This is not in POSIX, so do not rely on this in portable code.
379
380 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
381 bool "Hide message on interactive shell startup"
382 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
383 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
384 help
385 Remove the busybox introduction when starting a shell.
386
387 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
388 bool "Standalone shell"
389 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
390 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
391 help
392 This option causes busybox shells to use busybox applets
393 in preference to executables in the PATH whenever possible. For
394 example, entering the command 'ifconfig' into the shell would cause
395 busybox to use the ifconfig busybox applet. Specifying the fully
396 qualified executable name, such as '/sbin/ifconfig' will still
397 execute the /sbin/ifconfig executable on the filesystem. This option
398 is generally used when creating a statically linked version of busybox
399 for use as a rescue shell, in the event that you screw up your system.
400
401 This is implemented by re-execing /proc/self/exe (typically)
402 with right parameters. Some selected applets ("NOFORK" applets)
403 can even be executed without creating new process.
404 Instead, busybox will call <applet>_main() internally.
405
406 However, this causes problems in chroot jails without mounted /proc
407 and with ps/top (command name can be shown as 'exe' for applets
408 started this way).
409 # untrue?
410 # Note that this will *also* cause applets to take precedence
411 # over shell builtins of the same name. So turning this on will
412 # eliminate any performance gained by turning on the builtin "echo"
413 # and "test" commands in ash.
414 # untrue?
415 # Note that when using this option, the shell will attempt to directly
416 # run '/bin/busybox'. If you do not have the busybox binary sitting in
417 # that exact location with that exact name, this option will not work at
418 # all.
419
420 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
421 bool "Run 'nofork' applets directly"
422 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
423 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
424 help
425 This option causes busybox shells to not execute typical
426 fork/exec/wait sequence, but call <applet>_main directly,
427 if possible. (Sometimes it is not possible: for example,
428 this is not possible in pipes).
429
430 This will be done only for some applets (those which are marked
431 NOFORK in include/applets.h).
432
433 This may significantly speed up some shell scripts.
434
435 This feature is relatively new. Use with care. Report bugs
436 to project mailing list.
437
438 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
439 bool "Use $HISTFILESIZE"
440 default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
441 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
442 help
443 This option makes busybox shells to use $HISTFILESIZE variable
444 to set shell history size. Note that its max value is capped
445 by "History size" setting in library tuning section.
446
447
448 endmenu