OpenWrt – Diff between revs 2 and 3

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 2 Rev 3
Line 1... Line 1...
1 # DO NOT EDIT. This file is generated from Config.src 1 # DO NOT EDIT. This file is generated from Config.src
2 # 2 #
3 # For a description of the syntax of this configuration file, 3 # For a description of the syntax of this configuration file,
4 # see docs/Kconfig-language.txt. 4 # see scripts/kbuild/config-language.txt.
5 # 5 #
Line 6... Line 6...
6   6  
Line 7... Line 7...
7 menu "Shells" 7 menu "Shells"
8   8  
9   9  
10 choice 10 choice
11 prompt "Choose which shell is aliased to 'sh' name" 11 prompt "Choose which shell is aliased to 'sh' name"
12 default BUSYBOX_CONFIG_SH_IS_ASH 12 default BUSYBOX_CONFIG_SH_IS_ASH
Line 13... Line 13...
13 help 13 help
14 Choose which shell you want to be executed by 'sh' alias. 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. 15 The ash shell is the most bash compatible and full featured one.
16   16  
17 # note: cannot use "select ASH" here, it breaks "make allnoconfig" 17 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
18 config BUSYBOX_CONFIG_SH_IS_ASH 18 config BUSYBOX_CONFIG_SH_IS_ASH
19 depends on !BUSYBOX_CONFIG_NOMMU 19 depends on !BUSYBOX_CONFIG_NOMMU
20 bool "ash" 20 bool "ash"
21 help 21 help
Line 22... Line 22...
22 Choose ash to be the shell executed by 'sh' name. 22 Choose ash to be the shell executed by 'sh' name.
23 The ash code will be built into busybox. If you don't select 23 The ash code will be built into busybox. If you don't select
24 "ash" choice (CONFIG_ASH), this shell may only be invoked by 24 "ash" choice (CONFIG_ASH), this shell may only be invoked by
25 the name 'sh' (and not 'ash'). 25 the name 'sh' (and not 'ash').
26   26  
27 config BUSYBOX_CONFIG_SH_IS_HUSH 27 config BUSYBOX_CONFIG_SH_IS_HUSH
28 bool "hush" 28 bool "hush"
Line 29... Line 29...
29 help 29 help
30 Choose hush to be the shell executed by 'sh' name. 30 Choose hush to be the shell executed by 'sh' name.
Line 31... Line 31...
31 The hush code will be built into busybox. If you don't select 31 The hush code will be built into busybox. If you don't select
Line 32... Line 32...
32 "hush" choice (CONFIG_HUSH), this shell may only be invoked by 32 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
33 the name 'sh' (and not 'hush'). 33 the name 'sh' (and not 'hush').
34   34  
35 config BUSYBOX_CONFIG_SH_IS_NONE 35 config BUSYBOX_CONFIG_SH_IS_NONE
36 bool "none" 36 bool "none"
37   37  
38 endchoice 38 endchoice
39   39  
40 choice 40 choice
41 prompt "Choose which shell is aliased to 'bash' name" 41 prompt "Choose which shell is aliased to 'bash' name"
42 default BUSYBOX_CONFIG_BASH_IS_NONE 42 default BUSYBOX_CONFIG_BASH_IS_NONE
43 help 43 help
44 Choose which shell you want to be executed by 'bash' alias. 44 Choose which shell you want to be executed by 'bash' alias.
45 The ash shell is the most bash compatible and full featured one, 45 The ash shell is the most bash compatible and full featured one,
46 although compatibility is far from being complete. 46 although compatibility is far from being complete.
47   47  
48 Note that selecting this option does not switch on any bash 48 Note that selecting this option does not switch on any bash
Line 49... Line 49...
49 compatibility code. It merely makes it possible to install 49 compatibility code. It merely makes it possible to install
50 /bin/bash (sym)link and run scripts which start with 50 /bin/bash (sym)link and run scripts which start with
51 #!/bin/bash line. 51 #!/bin/bash line.
52   52  
53 Many systems use it in scripts which use bash-specific features, 53 Many systems use it in scripts which use bash-specific features,
54 even simple ones like $RANDOM. Without this option, busybox 54 even simple ones like $RANDOM. Without this option, busybox
55 can't be used for running them because it won't recongnize 55 can't be used for running them because it won't recongnize
56 "bash" as a supported applet name. 56 "bash" as a supported applet name.
Line 57... Line 57...
57   57  
58 config BUSYBOX_CONFIG_BASH_IS_ASH 58 config BUSYBOX_CONFIG_BASH_IS_ASH
59 depends on !BUSYBOX_CONFIG_NOMMU 59 depends on !BUSYBOX_CONFIG_NOMMU
60 bool "ash" 60 bool "ash"
61 help 61 help
62 Choose ash to be the shell executed by 'bash' name. 62 Choose ash to be the shell executed by 'bash' name.
63 The ash code will be built into busybox. If you don't select 63 The ash code will be built into busybox. If you don't select
Line 64... Line 64...
64 "ash" choice (CONFIG_ASH), this shell may only be invoked by 64 "ash" choice (CONFIG_ASH), this shell may only be invoked by
65 the name 'bash' (and not 'ash'). 65 the name 'bash' (and not 'ash').
Line 66... Line 66...
66   66  
Line 67... Line 67...
67 config BUSYBOX_CONFIG_BASH_IS_HUSH 67 config BUSYBOX_CONFIG_BASH_IS_HUSH
68 bool "hush" 68 bool "hush"
69 help 69 help
70 Choose hush to be the shell executed by 'bash' name. 70 Choose hush to be the shell executed by 'bash' name.
71 The hush code will be built into busybox. If you don't select 71 The hush code will be built into busybox. If you don't select
-   72 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
72 "hush" choice (CONFIG_HUSH), this shell may only be invoked by 73 the name 'bash' (and not 'hush').
73 the name 'bash' (and not 'hush'). 74  
74   75 config BUSYBOX_CONFIG_BASH_IS_NONE
75 config BUSYBOX_CONFIG_BASH_IS_NONE 76 bool "none"
Line 76... Line 77...
76 bool "none" 77  
77   78 endchoice
78 endchoice 79  
79   80  
Line 101... Line 102...
101 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB 102 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
102 bool "Use internal glob() implementation" 103 bool "Use internal glob() implementation"
103 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now 104 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
104 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 105 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
105 help 106 help
106 Do not use glob() function from libc, use internal implementation. 107 Do not use glob() function from libc, use internal implementation.
107 Use this if you are getting "glob.h: No such file or directory" 108 Use this if you are getting "glob.h: No such file or directory"
108 or similar build errors. 109 or similar build errors.
109 Note that as of now (2017-01), uclibc and musl glob() both have bugs 110 Note that as of now (2017-01), uclibc and musl glob() both have bugs
110 which would break ash if you select N here. 111 which would break ash if you select N here.
Line 111... Line 112...
111   112  
112 config BUSYBOX_CONFIG_ASH_BASH_COMPAT 113 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
113 bool "bash-compatible extensions" 114 bool "bash-compatible extensions"
114 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT 115 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
Line 115... Line -...
115 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH -  
116   -  
117 config BUSYBOX_CONFIG_ASH_BASH_SOURCE_CURDIR -  
118 bool "'source' and '.' builtins search current directory after $PATH" -  
119 default BUSYBOX_DEFAULT_ASH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior -  
120 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT -  
121 help -  
122 This is not compliant with standards. Avoid if possible. -  
123   -  
124 config BUSYBOX_CONFIG_ASH_BASH_NOT_FOUND_HOOK -  
125 bool "command_not_found_handle hook support" -  
126 default BUSYBOX_DEFAULT_ASH_BASH_NOT_FOUND_HOOK -  
127 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT -  
128 help -  
129 Enable support for the 'command_not_found_handle' hook function, -  
130 from GNU bash, which allows for alternative command not found -  
131 handling. 116 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
132   117  
133 config BUSYBOX_CONFIG_ASH_JOB_CONTROL 118 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
134 bool "Job control" 119 bool "Job control"
Line 143... Line 128...
143 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT 128 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
144 bool "Pseudorandom generator and $RANDOM variable" 129 bool "Pseudorandom generator and $RANDOM variable"
145 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT 130 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
146 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 131 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
147 help 132 help
148 Enable pseudorandom generator and dynamic variable "$RANDOM". 133 Enable pseudorandom generator and dynamic variable "$RANDOM".
149 Each read of "$RANDOM" will generate a new pseudorandom value. 134 Each read of "$RANDOM" will generate a new pseudorandom value.
150 You can reset the generator by using a specified start value. 135 You can reset the generator by using a specified start value.
151 After "unset RANDOM" the generator will switch off and this 136 After "unset RANDOM" the generator will switch off and this
152 variable will no longer have special treatment. 137 variable will no longer have special treatment.
Line 153... Line 138...
153   138  
154 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT 139 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
155 bool "Expand prompt string" 140 bool "Expand prompt string"
156 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT 141 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
157 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 142 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
158 help 143 help
159 $PS# may contain volatile content, such as backquote commands. 144 $PS# may contain volatile content, such as backquote commands.
160 This option recreates the prompt string from the environment 145 This option recreates the prompt string from the environment
Line 161... Line 146...
161 variable each time it is displayed. 146 variable each time it is displayed.
162   147  
163 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT 148 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
164 bool "Idle timeout variable $TMOUT" 149 bool "Idle timeout variable $TMOUT"
165 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT 150 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
166 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 151 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
Line 167... Line 152...
167 help 152 help
168 Enable bash-like auto-logout after $TMOUT seconds of idle time. 153 Enable bash-like auto-logout after $TMOUT seconds of idle time.
169   154  
170 config BUSYBOX_CONFIG_ASH_MAIL 155 config BUSYBOX_CONFIG_ASH_MAIL
171 bool "Check for new mail in interactive shell" 156 bool "Check for new mail in interactive shell"
172 default BUSYBOX_DEFAULT_ASH_MAIL 157 default BUSYBOX_DEFAULT_ASH_MAIL
173 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 158 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
174 help 159 help
175 Enable "check for new mail" function: 160 Enable "check for new mail" function:
Line 176... Line 161...
176 if set, $MAIL file and $MAILPATH list of files 161 if set, $MAIL file and $MAILPATH list of files
177 are checked for mtime changes, and "you have mail" 162 are checked for mtime changes, and "you have mail"
178 message is printed if change is detected. 163 message is printed if change is detected.
179   164  
Line 205... Line 190...
205 config BUSYBOX_CONFIG_ASH_CMDCMD 190 config BUSYBOX_CONFIG_ASH_CMDCMD
206 bool "command builtin" 191 bool "command builtin"
207 default BUSYBOX_DEFAULT_ASH_CMDCMD 192 default BUSYBOX_DEFAULT_ASH_CMDCMD
208 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH 193 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
209 help 194 help
210 Enable support for the 'command' builtin, which allows 195 Enable support for the 'command' builtin, which allows
211 you to run the specified command or builtin, 196 you to run the specified command or builtin,
212 even when there is a function with the same name. 197 even when there is a function with the same name.
Line 213... Line 198...
213   198  
214 endif # ash options 199 endif # ash options
215 config BUSYBOX_CONFIG_CTTYHACK 200 config BUSYBOX_CONFIG_CTTYHACK
216 bool "cttyhack (2.4 kb)" 201 bool "cttyhack"
217 default BUSYBOX_DEFAULT_CTTYHACK 202 default BUSYBOX_DEFAULT_CTTYHACK
218 help 203 help
219 One common problem reported on the mailing list is the "can't 204 One common problem reported on the mailing list is the "can't
220 access tty; job control turned off" error message, which typically 205 access tty; job control turned off" error message, which typically
221 appears when one tries to use a shell with stdin/stdout on 206 appears when one tries to use a shell with stdin/stdout on
222 /dev/console. 207 /dev/console.
Line 223... Line 208...
223 This device is special - it cannot be a controlling tty. 208 This device is special - it cannot be a controlling tty.
224   209  
Line 225... Line 210...
225 The proper solution is to use the correct device instead of 210 The proper solution is to use the correct device instead of
226 /dev/console. 211 /dev/console.
227   212  
228 cttyhack provides a "quick and dirty" solution to this problem. 213 cttyhack provides a "quick and dirty" solution to this problem.
229 It analyzes stdin with various ioctls, trying to determine whether 214 It analyzes stdin with various ioctls, trying to determine whether
230 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). 215 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
231 On Linux it also checks sysfs for a pointer to the active console. 216 On Linux it also checks sysfs for a pointer to the active console.
232 If cttyhack is able to find the real console device, it closes 217 If cttyhack is able to find the real console device, it closes
233 stdin/out/err and reopens that device. 218 stdin/out/err and reopens that device.
Line 234... Line 219...
234 Then it executes the given program. Opening the device will make 219 Then it executes the given program. Opening the device will make
Line 235... Line 220...
235 that device a controlling tty. This may require cttyhack 220 that device a controlling tty. This may require cttyhack
Line 236... Line 221...
236 to be a session leader. 221 to be a session leader.
Line 237... Line 222...
237   222  
Line 238... Line 223...
238 Example for /etc/inittab (for busybox init): 223 Example for /etc/inittab (for busybox init):
Line 239... Line 224...
239   224  
Line 240... Line 225...
240 ::respawn:/bin/cttyhack /bin/sh 225 ::respawn:/bin/cttyhack /bin/sh
241   226  
Line 242... Line 227...
242 Starting an interactive shell from boot shell script: 227 Starting an interactive shell from boot shell script:
Line 243... Line 228...
243   228  
Line 244... Line 229...
244 setsid cttyhack sh 229 setsid cttyhack sh
245   230  
246 Giving controlling tty to shell running with PID 1: 231 Giving controlling tty to shell running with PID 1:
247   232  
248 # exec cttyhack sh 233 # exec cttyhack sh
249   234  
250 Without cttyhack, you need to know exact tty name, 235 Without cttyhack, you need to know exact tty name,
251 and do something like this: 236 and do something like this:
252   237  
Line 253... Line 238...
253 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1' 238 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
Line 254... Line 239...
254   239  
255 Starting getty on a controlling tty from a shell script: 240 Starting getty on a controlling tty from a shell script:
Line 256... Line 241...
256   241  
257 # getty 115200 $(cttyhack) 242 # getty 115200 $(cttyhack)
258 config BUSYBOX_CONFIG_HUSH 243 config BUSYBOX_CONFIG_HUSH
259 bool "hush (68 kb)" 244 bool "hush"
Line 277... Line 262...
277 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION 262 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
278 bool "Brace expansion" 263 bool "Brace expansion"
279 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION 264 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
280 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT 265 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
281 help 266 help
282 Enable {abc,def} extension. 267 Enable {abc,def} extension.
283   -  
284 config BUSYBOX_CONFIG_HUSH_LINENO_VAR -  
285 bool "$LINENO variable" -  
286 default BUSYBOX_DEFAULT_HUSH_LINENO_VAR -  
287 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT -  
288   -  
289 config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR -  
290 bool "'source' and '.' builtins search current directory after $PATH" -  
291 default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior -  
292 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT -  
293 help -  
294 This is not compliant with standards. Avoid if possible. -  
Line 295... Line 268...
295   268  
296 config BUSYBOX_CONFIG_HUSH_INTERACTIVE 269 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
297 bool "Interactive mode" 270 bool "Interactive mode"
298 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE 271 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
299 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 272 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
300 help 273 help
301 Enable interactive mode (prompt and command editing). 274 Enable interactive mode (prompt and command editing).
302 Without this, hush simply reads and executes commands 275 Without this, hush simply reads and executes commands
303 from stdin just like a shell script from a file. 276 from stdin just like a shell script from a file.
Line 304... Line 277...
304 No prompt, no PS1/PS2 magic shell variables. 277 No prompt, no PS1/PS2 magic shell variables.
305   278  
306 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY 279 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
307 bool "Save command history to .hush_history" 280 bool "Save command history to .hush_history"
Line 311... Line 284...
311 config BUSYBOX_CONFIG_HUSH_JOB 284 config BUSYBOX_CONFIG_HUSH_JOB
312 bool "Job control" 285 bool "Job control"
313 default BUSYBOX_DEFAULT_HUSH_JOB 286 default BUSYBOX_DEFAULT_HUSH_JOB
314 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE 287 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
315 help 288 help
316 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current 289 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
317 command (not entire shell), fg/bg builtins work. Without this option, 290 command (not entire shell), fg/bg builtins work. Without this option,
318 "cmd &" still works by simply spawning a process and immediately 291 "cmd &" still works by simply spawning a process and immediately
319 prompting for next command (or executing next command in a script), 292 prompting for next command (or executing next command in a script),
320 but no separate process group is formed. 293 but no separate process group is formed.
Line 321... Line 294...
321   294  
322 config BUSYBOX_CONFIG_HUSH_TICK 295 config BUSYBOX_CONFIG_HUSH_TICK
323 bool "Support command substitution" 296 bool "Support process substitution"
324 default BUSYBOX_DEFAULT_HUSH_TICK 297 default BUSYBOX_DEFAULT_HUSH_TICK
325 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 298 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
326 help 299 help
Line 327... Line 300...
327 Enable `command` and $(command). 300 Enable `command` and $(command).
328   301  
329 config BUSYBOX_CONFIG_HUSH_IF 302 config BUSYBOX_CONFIG_HUSH_IF
330 bool "Support if/then/elif/else/fi" 303 bool "Support if/then/elif/else/fi"
Line 339... Line 312...
339 config BUSYBOX_CONFIG_HUSH_CASE 312 config BUSYBOX_CONFIG_HUSH_CASE
340 bool "Support case ... esac statement" 313 bool "Support case ... esac statement"
341 default BUSYBOX_DEFAULT_HUSH_CASE 314 default BUSYBOX_DEFAULT_HUSH_CASE
342 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 315 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
343 help 316 help
344 Enable case ... esac statement. +400 bytes. 317 Enable case ... esac statement. +400 bytes.
Line 345... Line 318...
345   318  
346 config BUSYBOX_CONFIG_HUSH_FUNCTIONS 319 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
347 bool "Support funcname() { commands; } syntax" 320 bool "Support funcname() { commands; } syntax"
348 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS 321 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
349 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 322 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
350 help 323 help
Line 351... Line 324...
351 Enable support for shell functions. +800 bytes. 324 Enable support for shell functions. +800 bytes.
352   325  
353 config BUSYBOX_CONFIG_HUSH_LOCAL 326 config BUSYBOX_CONFIG_HUSH_LOCAL
354 bool "local builtin" 327 bool "local builtin"
355 default BUSYBOX_DEFAULT_HUSH_LOCAL 328 default BUSYBOX_DEFAULT_HUSH_LOCAL
356 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS 329 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
Line 357... Line 330...
357 help 330 help
358 Enable support for local variables in functions. 331 Enable support for local variables in functions.
359   332  
360 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT 333 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
361 bool "Pseudorandom generator and $RANDOM variable" 334 bool "Pseudorandom generator and $RANDOM variable"
362 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT 335 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
363 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 336 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
Line 364... Line 337...
364 help 337 help
365 Enable pseudorandom generator and dynamic variable "$RANDOM". 338 Enable pseudorandom generator and dynamic variable "$RANDOM".
366 Each read of "$RANDOM" will generate a new pseudorandom value. 339 Each read of "$RANDOM" will generate a new pseudorandom value.
367   340  
368 config BUSYBOX_CONFIG_HUSH_MODE_X 341 config BUSYBOX_CONFIG_HUSH_MODE_X
369 bool "Support 'hush -x' option and 'set -x' command" 342 bool "Support 'hush -x' option and 'set -x' command"
370 default BUSYBOX_DEFAULT_HUSH_MODE_X 343 default BUSYBOX_DEFAULT_HUSH_MODE_X
Line 371... Line 344...
371 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 344 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
372 help 345 help
373 This instructs hush to print commands before execution. 346 This instructs hush to print commands before execution.
374 Adds ~300 bytes. 347 Adds ~300 bytes.
Line 401... Line 374...
401 config BUSYBOX_CONFIG_HUSH_EXPORT_N 374 config BUSYBOX_CONFIG_HUSH_EXPORT_N
402 bool "Support 'export -n' option" 375 bool "Support 'export -n' option"
403 default BUSYBOX_DEFAULT_HUSH_EXPORT_N 376 default BUSYBOX_DEFAULT_HUSH_EXPORT_N
404 depends on BUSYBOX_CONFIG_HUSH_EXPORT 377 depends on BUSYBOX_CONFIG_HUSH_EXPORT
405 help 378 help
406 export -n unexports variables. It is a bash extension. 379 export -n unexports variables. It is a bash extension.
407   -  
408 config BUSYBOX_CONFIG_HUSH_READONLY -  
409 bool "readonly builtin" -  
410 default BUSYBOX_DEFAULT_HUSH_READONLY -  
411 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH -  
412 help -  
413 Enable support for read-only variables. -  
Line 414... Line 380...
414   380  
415 config BUSYBOX_CONFIG_HUSH_KILL 381 config BUSYBOX_CONFIG_HUSH_KILL
416 bool "kill builtin (supports kill %jobspec)" 382 bool "kill builtin (supports kill %jobspec)"
417 default BUSYBOX_DEFAULT_HUSH_KILL 383 default BUSYBOX_DEFAULT_HUSH_KILL
Line 420... Line 386...
420 config BUSYBOX_CONFIG_HUSH_WAIT 386 config BUSYBOX_CONFIG_HUSH_WAIT
421 bool "wait builtin" 387 bool "wait builtin"
422 default BUSYBOX_DEFAULT_HUSH_WAIT 388 default BUSYBOX_DEFAULT_HUSH_WAIT
423 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 389 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
Line 424... Line -...
424   -  
425 config BUSYBOX_CONFIG_HUSH_COMMAND -  
426 bool "command builtin" -  
427 default BUSYBOX_DEFAULT_HUSH_COMMAND -  
428 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH -  
429   390  
430 config BUSYBOX_CONFIG_HUSH_TRAP 391 config BUSYBOX_CONFIG_HUSH_TRAP
431 bool "trap builtin" 392 bool "trap builtin"
432 default BUSYBOX_DEFAULT_HUSH_TRAP 393 default BUSYBOX_DEFAULT_HUSH_TRAP
Line 433... Line 394...
433 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 394 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
434   395  
435 config BUSYBOX_CONFIG_HUSH_TYPE 396 config BUSYBOX_CONFIG_HUSH_TYPE
436 bool "type builtin" 397 bool "type builtin"
Line 437... Line -...
437 default BUSYBOX_DEFAULT_HUSH_TYPE -  
438 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH -  
439   -  
440 config BUSYBOX_CONFIG_HUSH_TIMES -  
441 bool "times builtin" -  
442 default BUSYBOX_DEFAULT_HUSH_TIMES 398 default BUSYBOX_DEFAULT_HUSH_TYPE
443 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 399 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
444   400  
445 config BUSYBOX_CONFIG_HUSH_READ 401 config BUSYBOX_CONFIG_HUSH_READ
Line 465... Line 421...
465 config BUSYBOX_CONFIG_HUSH_UMASK 421 config BUSYBOX_CONFIG_HUSH_UMASK
466 bool "umask builtin" 422 bool "umask builtin"
467 default BUSYBOX_DEFAULT_HUSH_UMASK 423 default BUSYBOX_DEFAULT_HUSH_UMASK
468 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 424 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
Line 469... Line -...
469   -  
470 config BUSYBOX_CONFIG_HUSH_GETOPTS -  
471 bool "getopts builtin" -  
472 default BUSYBOX_DEFAULT_HUSH_GETOPTS -  
473 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH -  
474   425  
475 config BUSYBOX_CONFIG_HUSH_MEMLEAK 426 config BUSYBOX_CONFIG_HUSH_MEMLEAK
476 bool "memleak builtin (debugging)" 427 bool "memleak builtin (debugging)"
477 default BUSYBOX_DEFAULT_HUSH_MEMLEAK 428 default BUSYBOX_DEFAULT_HUSH_MEMLEAK
Line -... Line 429...
-   429 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
-   430  
-   431 config BUSYBOX_CONFIG_MSH
-   432 bool "msh (deprecated: aliased to hush)"
-   433 default BUSYBOX_DEFAULT_MSH
-   434 select BUSYBOX_CONFIG_HUSH
-   435 help
Line 478... Line 436...
478 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH 436 msh is deprecated and will be removed, please migrate to hush.
479   437  
Line 480... Line 438...
480   438  
481 comment "Options common to all shells" 439 comment "Options common to all shells"
482 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 440 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
483   441  
484 config BUSYBOX_CONFIG_FEATURE_SH_MATH 442 config BUSYBOX_CONFIG_FEATURE_SH_MATH
485 bool "POSIX math support" 443 bool "POSIX math support"
Line 486... Line 444...
486 default BUSYBOX_DEFAULT_FEATURE_SH_MATH 444 default BUSYBOX_DEFAULT_FEATURE_SH_MATH
487 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 445 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
488 help 446 help
489 Enable math support in the shell via $((...)) syntax. 447 Enable math support in the shell via $((...)) syntax.
490   448  
491 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64 449 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
492 bool "Extend POSIX math support to 64 bit" 450 bool "Extend POSIX math support to 64 bit"
493 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64 451 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
Line 494... Line 452...
494 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH 452 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
495 help 453 help
496 Enable 64-bit math support in the shell. This will make the shell 454 Enable 64-bit math support in the shell. This will make the shell
497 slightly larger, but will allow computation with very large numbers. 455 slightly larger, but will allow computation with very large numbers.
498 This is not in POSIX, so do not rely on this in portable code. 456 This is not in POSIX, so do not rely on this in portable code.
499   457  
Line 500... Line 458...
500 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET 458 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
501 bool "Hide message on interactive shell startup" 459 bool "Hide message on interactive shell startup"
502 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET 460 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
503 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 461 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
504 help 462 help
505 Remove the busybox introduction when starting a shell. 463 Remove the busybox introduction when starting a shell.
506   464  
507 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE 465 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
508 bool "Standalone shell" 466 bool "Standalone shell"
509 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE 467 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
510 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 468 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
511 help 469 help
512 This option causes busybox shells to use busybox applets 470 This option causes busybox shells to use busybox applets
513 in preference to executables in the PATH whenever possible. For 471 in preference to executables in the PATH whenever possible. For
514 example, entering the command 'ifconfig' into the shell would cause 472 example, entering the command 'ifconfig' into the shell would cause
515 busybox to use the ifconfig busybox applet. Specifying the fully 473 busybox to use the ifconfig busybox applet. Specifying the fully
516 qualified executable name, such as '/sbin/ifconfig' will still 474 qualified executable name, such as '/sbin/ifconfig' will still
517 execute the /sbin/ifconfig executable on the filesystem. This option 475 execute the /sbin/ifconfig executable on the filesystem. This option
518 is generally used when creating a statically linked version of busybox 476 is generally used when creating a statically linked version of busybox
519 for use as a rescue shell, in the event that you screw up your system. 477 for use as a rescue shell, in the event that you screw up your system.
Line 520... Line 478...
520   478  
521 This is implemented by re-execing /proc/self/exe (typically) 479 This is implemented by re-execing /proc/self/exe (typically)
522 with right parameters. 480 with right parameters.
523   481  
524 However, there are drawbacks: it is problematic in chroot jails 482 However, there are drawbacks: it is problematic in chroot jails
525 without mounted /proc, and ps/top may show command name as 'exe' 483 without mounted /proc, and ps/top may show command name as 'exe'
526 for applets started this way. 484 for applets started this way.
527   485  
528 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK 486 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
529 bool "Run 'nofork' applets directly" 487 bool "Run 'nofork' applets directly"
530 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK 488 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
531 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 489 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
532 help 490 help
533 This option causes busybox shells to not execute typical 491 This option causes busybox shells to not execute typical
534 fork/exec/wait sequence, but call <applet>_main directly, 492 fork/exec/wait sequence, but call <applet>_main directly,
535 if possible. (Sometimes it is not possible: for example, 493 if possible. (Sometimes it is not possible: for example,
536 this is not possible in pipes). 494 this is not possible in pipes).
537   -  
538 This will be done only for some applets (those which are marked -  
539 NOFORK in include/applets.h). -  
540   -  
541 This may significantly speed up some shell scripts. -  
542   -  
543 This feature is relatively new. Use with care. Report bugs -  
Line 544... Line 495...
544 to project mailing list. 495  
545   496 This will be done only for some applets (those which are marked
546 config BUSYBOX_CONFIG_FEATURE_SH_READ_FRAC 497 NOFORK in include/applets.h).
547 bool "read -t N.NNN support (+110 bytes)" 498  
548 default BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC 499 This may significantly speed up some shell scripts.
549 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 500  
550 help 501 This feature is relatively new. Use with care. Report bugs
551 Enable support for fractional second timeout in read builtin. 502 to project mailing list.
552   -  
553 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE -  
554 bool "Use $HISTFILESIZE" -  
555 default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE -  
556 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 -  
557 help -  
558 This option makes busybox shells to use $HISTFILESIZE variable -  
559 to set shell history size. Note that its max value is capped -  
560 by "History size" setting in library tuning section. -  
561   -  
562 config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS -  
563 bool "Embed scripts in the binary" -  
564 default BUSYBOX_DEFAULT_FEATURE_SH_EMBEDDED_SCRIPTS -  
565 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 -  
Line 566... Line 503...
566 help 503  
Line 567... Line 504...
567 Allow scripts to be compressed and embedded in the busybox 504 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE