shell: clarify help text of CONFIG_{SH,BASH}_IS_* options
[oweals/busybox.git] / libbb / Config.src
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6 menu "Busybox Library Tuning"
7
8 INSERT
9
10 choice
11         prompt "Buffer allocation policy"
12         default FEATURE_BUFFERS_USE_MALLOC
13         help
14           There are 3 ways BusyBox can handle buffer allocations:
15           - Use malloc. This costs code size for the call to xmalloc.
16           - Put them on stack. For some very small machines with limited stack
17             space, this can be deadly. For most folks, this works just fine.
18           - Put them in BSS. This works beautifully for computers with a real
19             MMU (and OS support), but wastes runtime RAM for uCLinux. This
20             behavior was the only one available for BusyBox versions 0.48 and
21             earlier.
22
23 config FEATURE_BUFFERS_USE_MALLOC
24         bool "Allocate with Malloc"
25
26 config FEATURE_BUFFERS_GO_ON_STACK
27         bool "Allocate on the Stack"
28
29 config FEATURE_BUFFERS_GO_IN_BSS
30         bool "Allocate in the .bss section"
31
32 endchoice
33
34 config PASSWORD_MINLEN
35         int "Minimum password length"
36         default 6
37         range 5 32
38         help
39           Minimum allowable password length.
40
41 config MD5_SMALL
42         int "MD5: Trade bytes for speed (0:fast, 3:slow)"
43         default 1  # all "fast or small" options default to small
44         range 0 3
45         help
46           Trade binary size versus speed for the md5sum algorithm.
47           Approximate values running uClibc and hashing
48           linux-2.4.4.tar.bz2 were:
49                             user times (sec)  text size (386)
50           0 (fastest)         1.1                6144
51           1                   1.4                5392
52           2                   3.0                5088
53           3 (smallest)        5.1                4912
54
55 config SHA3_SMALL
56         int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
57         default 1  # all "fast or small" options default to small
58         range 0 1
59         help
60           Trade binary size versus speed for the sha3sum algorithm.
61           SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
62           64-bit x86: +270 bytes of code, 45% faster
63           32-bit x86: +450 bytes of code, 75% faster
64
65 config FEATURE_FAST_TOP
66         bool "Faster /proc scanning code (+100 bytes)"
67         default n  # all "fast or small" options default to small
68         help
69           This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
70           but code size is slightly bigger.
71
72 config FEATURE_ETC_NETWORKS
73         bool "Support for /etc/networks"
74         default n
75         help
76           Enable support for network names in /etc/networks. This is
77           a rarely used feature which allows you to use names
78           instead of IP/mask pairs in route command.
79
80 config FEATURE_USE_TERMIOS
81         bool "Use termios to manipulate the screen"
82         default y
83         depends on MORE || TOP || POWERTOP
84         help
85           This option allows utilities such as 'more' and 'top' to determine
86           the size of the screen. If you leave this disabled, your utilities
87           that display things on the screen will be especially primitive and
88           will be unable to determine the current screen size, and will be
89           unable to move the cursor.
90
91 config FEATURE_EDITING
92         bool "Command line editing"
93         default y
94         help
95           Enable line editing (mainly for shell command line).
96
97 config FEATURE_EDITING_MAX_LEN
98         int "Maximum length of input"
99         range 128 8192
100         default 1024
101         depends on FEATURE_EDITING
102         help
103           Line editing code uses on-stack buffers for storage.
104           You may want to decrease this parameter if your target machine
105           benefits from smaller stack usage.
106
107 config FEATURE_EDITING_VI
108         bool "vi-style line editing commands"
109         default n
110         depends on FEATURE_EDITING
111         help
112           Enable vi-style line editing. In shells, this mode can be
113           turned on and off with "set -o vi" and "set +o vi".
114
115 config FEATURE_EDITING_HISTORY
116         int "History size"
117         # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
118         range 0 9999
119         default 255
120         depends on FEATURE_EDITING
121         help
122           Specify command history size (0 - disable).
123
124 config FEATURE_EDITING_SAVEHISTORY
125         bool "History saving"
126         default y
127         depends on FEATURE_EDITING
128         help
129           Enable history saving in shells.
130
131 config FEATURE_EDITING_SAVE_ON_EXIT
132         bool "Save history on shell exit, not after every command"
133         default n
134         depends on FEATURE_EDITING_SAVEHISTORY
135         help
136           Save history on shell exit, not after every command.
137
138 config FEATURE_REVERSE_SEARCH
139         bool "Reverse history search"
140         default y
141         depends on FEATURE_EDITING
142         help
143           Enable readline-like Ctrl-R combination for reverse history search.
144           Increases code by about 0.5k.
145
146 config FEATURE_TAB_COMPLETION
147         bool "Tab completion"
148         default y
149         depends on FEATURE_EDITING
150         help
151           Enable tab completion.
152
153 config FEATURE_USERNAME_COMPLETION
154         bool "Username completion"
155         default y
156         depends on FEATURE_TAB_COMPLETION
157         help
158           Enable username completion.
159
160 config FEATURE_EDITING_FANCY_PROMPT
161         bool "Fancy shell prompts"
162         default y
163         depends on FEATURE_EDITING
164         help
165           Setting this option allows for prompts to use things like \w and
166           \$ and escape codes.
167
168 config FEATURE_EDITING_ASK_TERMINAL
169         bool "Query cursor position from terminal"
170         default n
171         depends on FEATURE_EDITING
172         help
173           Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
174           current cursor position. This information is used to make line
175           editing more robust in some cases.
176           If you are not sure whether your terminals respond to this code
177           correctly, or want to save on code size (about 400 bytes),
178           then do not turn this option on.
179
180 config LOCALE_SUPPORT
181         bool "Enable locale support (system needs locale for this to work)"
182         default n
183         help
184           Enable this if your system has locale support and you would like
185           busybox to support locale settings.
186
187 config UNICODE_SUPPORT
188         bool "Support Unicode"
189         default y
190         help
191           This makes various applets aware that one byte is not
192           one character on screen.
193
194           Busybox aims to eventually work correctly with Unicode displays.
195           Any older encodings are not guaranteed to work.
196           Probably by the time when busybox will be fully Unicode-clean,
197           other encodings will be mainly of historic interest.
198
199 config UNICODE_USING_LOCALE
200         bool "Use libc routines for Unicode (else uses internal ones)"
201         default n
202         depends on UNICODE_SUPPORT && LOCALE_SUPPORT
203         help
204           With this option on, Unicode support is implemented using libc
205           routines. Otherwise, internal implementation is used.
206           Internal implementation is smaller.
207
208 config FEATURE_CHECK_UNICODE_IN_ENV
209         bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
210         default n
211         depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
212         help
213           With this option on, Unicode support is activated
214           only if locale-related variables have the value of the form
215           "xxxx.utf8"
216
217           Otherwise, Unicode support will be always enabled and active.
218
219 config SUBST_WCHAR
220         int "Character code to substitute unprintable characters with"
221         depends on UNICODE_SUPPORT
222         default 63
223         help
224           Typical values are 63 for '?' (works with any output device),
225           30 for ASCII substitute control code,
226           65533 (0xfffd) for Unicode replacement character.
227
228 config LAST_SUPPORTED_WCHAR
229         int "Range of supported Unicode characters"
230         depends on UNICODE_SUPPORT
231         default 767
232         help
233           Any character with Unicode value bigger than this is assumed
234           to be non-printable on output device. Many applets replace
235           such characters with substitution character.
236
237           The idea is that many valid printable Unicode chars
238           nevertheless are not displayed correctly. Think about
239           combining charachers, double-wide hieroglyphs, obscure
240           characters in dozens of ancient scripts...
241           Many terminals, terminal emulators, xterms etc will fail
242           to handle them correctly. Choose the smallest value
243           which suits your needs.
244
245           Typical values are:
246           126 - ASCII only
247           767 (0x2ff) - there are no combining chars in [0..767] range
248                         (the range includes Latin 1, Latin Ext. A and B),
249                         code is ~700 bytes smaller for this case.
250           4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
251                         code is ~300 bytes smaller for this case.
252           12799 (0x31ff) - nearly all non-ideographic characters are
253                         available in [0..12799] range, including
254                         East Asian scripts like katakana, hiragana, hangul,
255                         bopomofo...
256           0 - off, any valid printable Unicode character will be printed.
257
258 config UNICODE_COMBINING_WCHARS
259         bool "Allow zero-width Unicode characters on output"
260         default n
261         depends on UNICODE_SUPPORT
262         help
263           With this option off, any Unicode char with width of 0
264           is substituted on output.
265
266 config UNICODE_WIDE_WCHARS
267         bool "Allow wide Unicode characters on output"
268         default n
269         depends on UNICODE_SUPPORT
270         help
271           With this option off, any Unicode char with width > 1
272           is substituted on output.
273
274 config UNICODE_BIDI_SUPPORT
275         bool "Bidirectional character-aware line input"
276         default n
277         depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
278         help
279           With this option on, right-to-left Unicode characters
280           are treated differently on input (e.g. cursor movement).
281
282 config UNICODE_NEUTRAL_TABLE
283         bool "In bidi input, support non-ASCII neutral chars too"
284         default n
285         depends on UNICODE_BIDI_SUPPORT
286         help
287           In most cases it's enough to treat only ASCII non-letters
288           (i.e. punctuation, numbers and space) as characters
289           with neutral directionality.
290           With this option on, more extensive (and bigger) table
291           of neutral chars will be used.
292
293 config UNICODE_PRESERVE_BROKEN
294         bool "Make it possible to enter sequences of chars which are not Unicode"
295         default n
296         depends on UNICODE_SUPPORT
297         help
298           With this option on, on line-editing input (such as used by shells)
299           invalid UTF-8 bytes are not substituted with the selected
300           substitution character.
301           For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
302           at shell prompt will list file named 0xff (single char name
303           with char value 255), not file named '?'.
304
305 config FEATURE_NON_POSIX_CP
306         bool "Non-POSIX, but safer, copying to special nodes"
307         default y
308         help
309           With this option, "cp file symlink" will delete symlink
310           and create a regular file. This does not conform to POSIX,
311           but prevents a symlink attack.
312           Similarly, "cp file device" will not send file's data
313           to the device. (To do that, use "cat file >device")
314
315 config FEATURE_VERBOSE_CP_MESSAGE
316         bool "Give more precise messages when copy fails (cp, mv etc)"
317         default n
318         help
319           Error messages with this feature enabled:
320             $ cp file /does_not_exist/file
321             cp: cannot create '/does_not_exist/file': Path does not exist
322             $ cp file /vmlinuz/file
323             cp: cannot stat '/vmlinuz/file': Path has non-directory component
324           If this feature is not enabled, they will be, respectively:
325             cp: cannot create '/does_not_exist/file': No such file or directory
326             cp: cannot stat '/vmlinuz/file': Not a directory
327           This will cost you ~60 bytes.
328
329 config FEATURE_USE_SENDFILE
330         bool "Use sendfile system call"
331         default y
332         select PLATFORM_LINUX
333         help
334           When enabled, busybox will use the kernel sendfile() function
335           instead of read/write loops to copy data between file descriptors
336           (for example, cp command does this a lot).
337           If sendfile() doesn't work, copying code falls back to read/write
338           loop. sendfile() was originally implemented for faster I/O
339           from files to sockets, but since Linux 2.6.33 it was extended
340           to work for many more file types.
341
342 config FEATURE_COPYBUF_KB
343         int "Copy buffer size, in kilobytes"
344         range 1 1024
345         default 4
346         help
347           Size of buffer used by cp, mv, install, wget etc.
348           Buffers which are 4 kb or less will be allocated on stack.
349           Bigger buffers will be allocated with mmap, with fallback to 4 kb
350           stack buffer if mmap fails.
351
352 config FEATURE_SKIP_ROOTFS
353         bool "Skip rootfs in mount table"
354         default y
355         help
356           Ignore rootfs entry in mount table.
357
358           In Linux, kernel has a special filesystem, rootfs, which is initially
359           mounted on /. It contains initramfs data, if kernel is configured
360           to have one. Usually, another file system is mounted over / early
361           in boot process, and therefore most tools which manipulate
362           mount table, such as df, will skip rootfs entry.
363
364           However, some systems do not mount anything on /.
365           If you need to configure busybox for one of these systems,
366           you may find it useful to turn this option off to make df show
367           initramfs statistics.
368
369           Otherwise, choose Y.
370
371 config MONOTONIC_SYSCALL
372         bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
373         default y
374         select PLATFORM_LINUX
375         help
376           Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
377           time intervals (time, ping, traceroute etc need this).
378           Probably requires Linux 2.6+. If not selected, gettimeofday
379           will be used instead (which gives wrong results if date/time
380           is reset).
381
382 config IOCTL_HEX2STR_ERROR
383         bool "Use ioctl names rather than hex values in error messages"
384         default y
385         help
386           Use ioctl names rather than hex values in error messages
387           (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
388           saves about 1400 bytes.
389
390 config FEATURE_HWIB
391         bool "Support infiniband HW"
392         default y
393         help
394           Support for printing infiniband addresses in
395           network applets.
396
397 endmenu