[package] update busybox to 1.15.2 (#5926)
[openwrt.git] / package / busybox / config / Config.in
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6
7 config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
8         bool
9         default y
10
11 menu "Busybox Settings"
12
13 menu "General Configuration"
14
15 config BUSYBOX_CONFIG_DESKTOP
16         bool "Enable options for full-blown desktop systems"
17         default n
18         help
19           Enable options and features which are not essential.
20           Select this only if you plan to use busybox on full-blown
21           desktop machine with common Linux distro, not on an embedded box.
22
23 config BUSYBOX_CONFIG_EXTRA_COMPAT
24         bool "Provide compatible behavior for rare corner cases (bigger code)"
25         default n
26         help
27           This option makes grep, sed etc handle rare corner cases
28           (embedded NUL bytes and such). This makes code bigger and uses
29           some GNU extensions in libc. You probably only need this option
30           if you plan to run busybox on desktop.
31
32 choice
33         prompt "Buffer allocation policy"
34         default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
35         help
36           There are 3 ways BusyBox can handle buffer allocations:
37           - Use malloc. This costs code size for the call to xmalloc.
38           - Put them on stack. For some very small machines with limited stack
39             space, this can be deadly. For most folks, this works just fine.
40           - Put them in BSS. This works beautifully for computers with a real
41             MMU (and OS support), but wastes runtime RAM for uCLinux. This
42             behavior was the only one available for BusyBox versions 0.48 and
43             earlier.
44
45 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
46         bool "Allocate with Malloc"
47
48 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
49         bool "Allocate on the Stack"
50
51 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
52         bool "Allocate in the .bss section"
53
54 endchoice
55
56 config BUSYBOX_CONFIG_SHOW_USAGE
57         bool "Show terse applet usage messages"
58         default y
59         help
60           All BusyBox applets will show help messages when invoked with
61           wrong arguments. You can turn off printing these terse usage
62           messages if you say no here.
63           This will save you up to 7k.
64
65 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
66         bool "Show verbose applet usage messages"
67         default y
68         select BUSYBOX_CONFIG_SHOW_USAGE
69         help
70           All BusyBox applets will show more verbose help messages when
71           busybox is invoked with --help. This will add a lot of text to the
72           busybox binary. In the default configuration, this will add about
73           13k, but it can add much more depending on your configuration.
74
75 config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
76         bool "Store applet usage messages in compressed form"
77         default y
78         depends on BUSYBOX_CONFIG_SHOW_USAGE
79         help
80           Store usage messages in compressed form, uncompress them on-the-fly
81           when <applet> --help is called.
82
83           If you have a really tiny busybox with few applets enabled (and
84           bunzip2 isn't one of them), the overhead of the decompressor might
85           be noticeable. Also, if you run executables directly from ROM
86           and have very little memory, this might not be a win. Otherwise,
87           you probably want this.
88
89 config BUSYBOX_CONFIG_FEATURE_INSTALLER
90         bool "Support --install [-s] to install applet links at runtime"
91         default n
92         help
93           Enable 'busybox --install [-s]' support. This will allow you to use
94           busybox at runtime to create hard links or symlinks for all the
95           applets that are compiled into busybox.
96
97 config BUSYBOX_CONFIG_LOCALE_SUPPORT
98         bool "Enable locale support (system needs locale for this to work)"
99         default n
100         help
101           Enable this if your system has locale support and you would like
102           busybox to support locale settings.
103
104 config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
105         bool "Support Unicode"
106         default n
107         help
108           This makes various applets aware that one byte is not
109           one character on screen.
110
111           Busybox aims to eventually work correctly with Unicode displays.
112           Any older encodings are not guaranteed to work.
113           Probably by the time when busybox will be fully Unicode-clean,
114           other encodings will be mainly of historic interest.
115
116 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
117         bool "Check $LANG environment variable"
118         default n
119         depends on BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE && !BUSYBOX_CONFIG_LOCALE_SUPPORT
120         help
121           With this option on, Unicode support is activated
122           only if LANG variable has the value of the form "xxxx.utf8"
123
124           Otherwise, Unicode support will be always enabled and active.
125
126 config BUSYBOX_CONFIG_LONG_OPTS
127         bool "Support for --long-options"
128         default y
129         help
130           Enable this if you want busybox applets to use the gnu --long-option
131           style, in addition to single character -a -b -c style options.
132
133 config BUSYBOX_CONFIG_FEATURE_DEVPTS
134         bool "Use the devpts filesystem for Unix98 PTYs"
135         default y
136         help
137           Enable if you want BusyBox to use Unix98 PTY support. If enabled,
138           busybox will use /dev/ptmx for the master side of the pseudoterminal
139           and /dev/pts/<number> for the slave side. Otherwise, BSD style
140           /dev/ttyp<number> will be used. To use this option, you should have
141           devpts mounted.
142
143 config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
144         bool "Clean up all memory before exiting (usually not needed)"
145         default n
146         help
147           As a size optimization, busybox normally exits without explicitly
148           freeing dynamically allocated memory or closing files. This saves
149           space since the OS will clean up for us, but it can confuse debuggers
150           like valgrind, which report tons of memory and resource leaks.
151
152           Don't enable this unless you have a really good reason to clean
153           things up manually.
154
155 config BUSYBOX_CONFIG_FEATURE_PIDFILE
156         bool "Support writing pidfiles"
157         default y
158         help
159           This option makes some applets (e.g. crond, syslogd, inetd) write
160           a pidfile in /var/run. Some applications rely on them.
161
162 config BUSYBOX_CONFIG_FEATURE_SUID
163         bool "Support for SUID/SGID handling"
164         default y
165         help
166           With this option you can install the busybox binary belonging
167           to root with the suid bit set, and it will automatically drop
168           priviledges for applets that don't need root access.
169
170           If you are really paranoid and don't want to do this, build two
171           busybox binaries with different applets in them (and the appropriate
172           symlinks pointing to each binary), and only set the suid bit on the
173           one that needs it. The applets currently marked to need the suid bit
174           are:
175
176           crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
177           traceroute, vlock.
178
179 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
180         bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
181         default n if BUSYBOX_CONFIG_FEATURE_SUID
182         depends on BUSYBOX_CONFIG_FEATURE_SUID
183         help
184           Allow the SUID / SGID state of an applet to be determined at runtime
185           by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
186           The format of this file is as follows:
187
188           <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
189
190           An example might help:
191
192           [SUID]
193           su = ssx root.0 # applet su can be run by anyone and runs with
194                           # euid=0/egid=0
195           su = ssx        # exactly the same
196
197           mount = sx- root.disk # applet mount can be run by root and members
198                                 # of group disk and runs with euid=0
199
200           cp = --- # disable applet cp for everyone
201
202           The file has to be owned by user root, group root and has to be
203           writeable only by root:
204                 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
205           The busybox executable has to be owned by user root, group
206           root and has to be setuid root for this to work:
207                 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
208
209           Robert 'sandman' Griebl has more information here:
210           <url: http://www.softforge.de/bb/suid.html >.
211
212 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
213         bool "Suppress warning message if /etc/busybox.conf is not readable"
214         default n
215         depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
216         help
217           /etc/busybox.conf should be readable by the user needing the SUID,
218           check this option to avoid users to be notified about missing
219           permissions.
220
221 config BUSYBOX_CONFIG_SELINUX
222         bool "Support NSA Security Enhanced Linux"
223         default n
224         help
225           Enable support for SELinux in applets ls, ps, and id. Also provide
226           the option of compiling in SELinux applets.
227
228           If you do not have a complete SELinux userland installed, this stuff
229           will not compile. Go visit
230                 http://www.nsa.gov/selinux/index.html
231           to download the necessary stuff to allow busybox to compile with
232           this option enabled. Specifially, libselinux 1.28 or better is
233           directly required by busybox. If the installation is located in a
234           non-standard directory, provide it by invoking make as follows:
235                 CFLAGS=-I<libselinux-include-path> \
236                 LDFLAGS=-L<libselinux-lib-path> \
237                 make
238
239           Most people will leave this set to 'N'.
240
241 config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
242         bool "exec prefers applets"
243         default y
244         help
245           This is an experimental option which directs applets about to
246           call 'exec' to try and find an applicable busybox applet before
247           searching the PATH. This is typically done by exec'ing
248           /proc/self/exe.
249           This may affect shell, find -exec, xargs and similar applets.
250           They will use applets even if /bin/<applet> -> busybox link
251           is missing (or is not a link to busybox). However, this causes
252           problems in chroot jails without mounted /proc and with ps/top
253           (command name can be shown as 'exe' for applets started this way).
254
255 config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
256         string "Path to BusyBox executable"
257         default "/proc/self/exe"
258         help
259           When Busybox applets need to run other busybox applets, BusyBox
260           sometimes needs to exec() itself. When the /proc filesystem is
261           mounted, /proc/self/exe always points to the currently running
262           executable. If you haven't got /proc, set this to wherever you
263           want to run BusyBox from.
264
265 # These are auto-selected by other options
266
267 config BUSYBOX_CONFIG_FEATURE_SYSLOG
268         bool #No description makes it a hidden option
269         default y
270         #help
271         #  This option is auto-selected when you select any applet which may
272         #  send its output to syslog. You do not need to select it manually.
273
274 config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
275         bool #No description makes it a hidden option
276         default y
277         #help
278         #  This is automatically selected if any of enabled applets need it.
279         #  You do not need to select it manually.
280
281 endmenu
282
283 menu 'Build Options'
284
285 config BUSYBOX_CONFIG_STATIC
286         bool "Build BusyBox as a static binary (no shared libs)"
287         default n
288         help
289           If you want to build a static BusyBox binary, which does not
290           use or require any shared libraries, then enable this option.
291           This can cause BusyBox to be considerably larger, so you should
292           leave this option false unless you have a good reason (i.e.
293           your target platform does not support shared libraries, or
294           you are building an initrd which doesn't need anything but
295           BusyBox, etc).
296
297           Most people will leave this set to 'N'.
298
299 config BUSYBOX_CONFIG_PIE
300         bool "Build BusyBox as a position independent executable"
301         default n
302         depends on !BUSYBOX_CONFIG_STATIC
303         help
304           (TODO: what is it and why/when is it useful?)
305           Most people will leave this set to 'N'.
306
307 config BUSYBOX_CONFIG_NOMMU
308         bool "Force NOMMU build"
309         default n
310         help
311           Busybox tries to detect whether architecture it is being
312           built against supports MMU or not. If this detection fails,
313           or if you want to build NOMMU version of busybox for testing,
314           you may force NOMMU build here.
315
316           Most people will leave this set to 'N'.
317
318 # PIE can be made to work with BUILD_LIBBUSYBOX, but currently
319 # build system does not support that
320 config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
321         bool "Build shared libbusybox"
322         default n
323         depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC
324         help
325           Build a shared library libbusybox.so.N.N.N which contains all
326           busybox code.
327
328           This feature allows every applet to be built as a tiny
329           separate executable. Enabling it for "one big busybox binary"
330           approach serves no purpose and increases code size.
331           You should almost certainly say "no" to this.
332
333 ### config FEATURE_FULL_LIBBUSYBOX
334 ###     bool "Feature-complete libbusybox"
335 ###     default n if !FEATURE_SHARED_BUSYBOX
336 ###     depends on BUILD_LIBBUSYBOX
337 ###     help
338 ###       Build a libbusybox with the complete feature-set, disregarding
339 ###       the actually selected config.
340 ###
341 ###       Normally, libbusybox will only contain the features which are
342 ###       used by busybox itself. If you plan to write a separate
343 ###       standalone application which uses libbusybox say 'Y'.
344 ###
345 ###       Note: libbusybox is GPL, not LGPL, and exports no stable API that
346 ###       might act as a copyright barrier. We can and will modify the
347 ###       exported function set between releases (even minor version number
348 ###       changes), and happily break out-of-tree features.
349 ###
350 ###       Say 'N' if in doubt.
351
352 config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
353         bool "Produce a binary for each applet, linked against libbusybox"
354         default n
355         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
356         help
357           If your CPU architecture doesn't allow for sharing text/rodata
358           sections of running binaries, but allows for runtime dynamic
359           libraries, this option will allow you to reduce memory footprint
360           when you have many different applets running at once.
361
362           If your CPU architecture allows for sharing text/rodata,
363           having single binary is more optimal.
364
365           Each applet will be a tiny program, dynamically linked
366           against libbusybox.so.N.N.N.
367
368           You need to have a working dynamic linker.
369
370 config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
371         bool "Produce additional busybox binary linked against libbusybox"
372         default n
373         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
374         help
375           Build busybox, dynamically linked against libbusybox.so.N.N.N.
376
377           You need to have a working dynamic linker.
378
379 ### config BUILD_AT_ONCE
380 ###     bool "Compile all sources at once"
381 ###     default n
382 ###     help
383 ###       Normally each source-file is compiled with one invocation of
384 ###       the compiler.
385 ###       If you set this option, all sources are compiled at once.
386 ###       This gives the compiler more opportunities to optimize which can
387 ###       result in smaller and/or faster binaries.
388 ###
389 ###       Setting this option will consume alot of memory, e.g. if you
390 ###       enable all applets with all features, gcc uses more than 300MB
391 ###       RAM during compilation of busybox.
392 ###
393 ###       This option is most likely only beneficial for newer compilers
394 ###       such as gcc-4.1 and above.
395 ###
396 ###       Say 'N' unless you know what you are doing.
397
398 config BUSYBOX_CONFIG_LFS
399         bool
400         default y
401         select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
402         help
403           If you want to build BusyBox with large file support, then enable
404           this option. This will have no effect if your kernel or your C
405           library lacks large file support for large files. Some of the
406           programs that can benefit from large file support include dd, gzip,
407           cp, mount, tar, and many others. If you want to access files larger
408           than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
409
410 config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
411         string "Cross Compiler prefix"
412         default ""
413         help
414           If you want to build BusyBox with a cross compiler, then you
415           will need to set this to the cross-compiler prefix, for example,
416           "i386-uclibc-".
417
418           Note that CROSS_COMPILE environment variable or
419           "make CROSS_COMPILE=xxx ..." will override this selection.
420
421           Native builds leave this empty.
422
423 config BUSYBOX_CONFIG_EXTRA_CFLAGS
424         string "Additional CFLAGS"
425         default ""
426         help
427           Additional CFLAGS to pass to the compiler verbatim.
428
429 endmenu
430
431 menu 'Debugging Options'
432
433 config BUSYBOX_CONFIG_DEBUG
434         bool "Build BusyBox with extra Debugging symbols"
435         default n
436         help
437           Say Y here if you wish to examine BusyBox internals while applets are
438           running. This increases the size of the binary considerably, and
439           should only be used when doing development. If you are doing
440           development and want to debug BusyBox, answer Y.
441
442           Most people should answer N.
443
444 config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
445         bool "Disable compiler optimizations"
446         default n
447         depends on BUSYBOX_CONFIG_DEBUG
448         help
449           The compiler's optimization of source code can eliminate and reorder
450           code, resulting in an executable that's hard to understand when
451           stepping through it with a debugger. This switches it off, resulting
452           in a much bigger executable that more closely matches the source
453           code.
454
455 config BUSYBOX_CONFIG_WERROR
456         bool "Abort compilation on any warning"
457         default n
458         help
459           Selecting this will add -Werror to gcc command line.
460
461           Most people should answer N.
462
463 choice
464         prompt "Additional debugging library"
465         default BUSYBOX_CONFIG_NO_DEBUG_LIB
466         help
467           Using an additional debugging library will make BusyBox become
468           considerable larger and will cause it to run more slowly. You
469           should always leave this option disabled for production use.
470
471           dmalloc support:
472           ----------------
473           This enables compiling with dmalloc ( http://dmalloc.com/ )
474           which is an excellent public domain mem leak and malloc problem
475           detector. To enable dmalloc, before running busybox you will
476           want to properly set your environment, for example:
477             export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
478           The 'debug=' value is generated using the following command
479             dmalloc -p log-stats -p log-non-free -p log-bad-space \
480                -p log-elapsed-time -p check-fence -p check-heap \
481                -p check-lists -p check-blank -p check-funcs -p realloc-copy \
482                -p allow-free-null
483
484           Electric-fence support:
485           -----------------------
486           This enables compiling with Electric-fence support. Electric
487           fence is another very useful malloc debugging library which uses
488           your computer's virtual memory hardware to detect illegal memory
489           accesses. This support will make BusyBox be considerable larger
490           and run slower, so you should leave this option disabled unless
491           you are hunting a hard to find memory problem.
492
493
494 config BUSYBOX_CONFIG_NO_DEBUG_LIB
495         bool "None"
496
497 config BUSYBOX_CONFIG_DMALLOC
498         bool "Dmalloc"
499
500 config BUSYBOX_CONFIG_EFENCE
501         bool "Electric-fence"
502
503 endchoice
504
505 config BUSYBOX_CONFIG_INCLUDE_SUSv2
506         bool "Enable obsolete features removed before SUSv3?"
507         default y
508         help
509           This option will enable backwards compatibility with SuSv2,
510           specifically, old-style numeric options ('command -1 <file>')
511           will be supported in head, tail, and fold. (Note: should
512           affect renice too.)
513
514 ### config PARSE
515 ###     bool "Uniform config file parser debugging applet: parse"
516
517 endmenu
518
519 menu 'Installation Options'
520
521 config BUSYBOX_CONFIG_INSTALL_NO_USR
522         bool "Don't use /usr"
523         default n
524         help
525           Disable use of /usr. Don't activate this option if you don't know
526           that you really want this behaviour.
527
528 choice
529         prompt "Applets links"
530         default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
531         help
532           Choose how you install applets links.
533
534 config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
535         bool "as soft-links"
536         help
537           Install applets as soft-links to the busybox binary. This needs some
538           free inodes on the filesystem, but might help with filesystem
539           generators that can't cope with hard-links.
540
541 config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
542         bool "as hard-links"
543         help
544           Install applets as hard-links to the busybox binary. This might
545           count on a filesystem with few inodes.
546
547 config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
548         bool "as script wrappers"
549         help
550           Install applets as script wrappers that call the busybox binary.
551
552 config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
553         bool "not installed"
554         depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
555         help
556           Do not install applet links. Useful when using the -install feature
557           or a standalone shell for rescue purposes.
558
559 endchoice
560
561 choice
562         prompt "/bin/sh applet link"
563         default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
564         depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
565         help
566           Choose how you install /bin/sh applet link.
567
568 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
569         bool "as soft-link"
570         help
571           Install /bin/sh applet as soft-link to the busybox binary.
572
573 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
574         bool "as hard-link"
575         help
576           Install /bin/sh applet as hard-link to the busybox binary.
577
578 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
579         bool "as script wrapper"
580         help
581           Install /bin/sh applet as script wrapper that call the busybox
582           binary.
583
584 endchoice
585
586 config BUSYBOX_CONFIG_PREFIX
587         string "BusyBox installation prefix"
588         default "./_install"
589         help
590           Define your directory to install BusyBox files/subdirs in.
591
592 endmenu
593
594 source package/busybox/config/libbb/Config.in
595
596 endmenu
597
598 comment "Applets"
599
600 source package/busybox/config/archival/Config.in
601 source package/busybox/config/coreutils/Config.in
602 source package/busybox/config/console-tools/Config.in
603 source package/busybox/config/debianutils/Config.in
604 source package/busybox/config/editors/Config.in
605 source package/busybox/config/findutils/Config.in
606 source package/busybox/config/init/Config.in
607 source package/busybox/config/loginutils/Config.in
608 source package/busybox/config/e2fsprogs/Config.in
609 source package/busybox/config/modutils/Config.in
610 source package/busybox/config/util-linux/Config.in
611 source package/busybox/config/miscutils/Config.in
612 source package/busybox/config/networking/Config.in
613 source package/busybox/config/printutils/Config.in
614 source package/busybox/config/mailutils/Config.in
615 source package/busybox/config/procps/Config.in
616 source package/busybox/config/runit/Config.in
617 source package/busybox/config/selinux/Config.in
618 source package/busybox/config/shell/Config.in
619 source package/busybox/config/sysklogd/Config.in