update busybox menuconfig for the latest version
[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_NITPICK
16         bool "See lots more (probably unnecessary) configuration options."
17         default n
18         help
19           Some BusyBox applets have more configuration options than anyone
20           will ever care about.  To avoid drowining people in complexity, most
21           of the applet features that can be set to a sane default value are
22           hidden, unless you hit the above switch.
23
24           This is better than to telling people to edit the busybox source
25           code, but not by much.
26
27           See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
28
29           You have been warned.
30
31 config BUSYBOX_CONFIG_DESKTOP
32         bool "Enable options for full-blown desktop systems"
33         default n
34         help
35           Enable options and features which are not essential.
36           Select this only if you plan to use busybox on full-blown
37           desktop machine with common Linux distro, not on an embedded box.
38
39 choice
40         prompt "Buffer allocation policy"
41         default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
42         depends on BUSYBOX_CONFIG_NITPICK
43         help
44           There are 3 ways BusyBox can handle buffer allocations:
45           - Use malloc. This costs code size for the call to xmalloc.
46           - Put them on stack. For some very small machines with limited stack
47             space, this can be deadly.  For most folks, this works just fine.
48           - Put them in BSS. This works beautifully for computers with a real
49             MMU (and OS support), but wastes runtime RAM for uCLinux. This
50             behavior was the only one available for BusyBox versions 0.48 and
51             earlier.
52
53 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
54         bool "Allocate with Malloc"
55
56 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
57         bool "Allocate on the Stack"
58
59 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
60         bool "Allocate in the .bss section"
61
62 endchoice
63
64 config BUSYBOX_CONFIG_SHOW_USAGE
65         bool "Show terse applet usage messages"
66         default y
67         help
68           All BusyBox applets will show help messages when invoked with
69           wrong arguments. You can turn off printing these terse usage
70           messages if you say no here.
71           This will save you up to 7k.
72
73 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
74         bool "Show verbose applet usage messages"
75         default y
76         select BUSYBOX_CONFIG_SHOW_USAGE
77         help
78           All BusyBox applets will show more verbose help messages when
79           busybox is invoked with --help.  This will add a lot of text to the
80           busybox binary.  In the default configuration, this will add about
81           13k, but it can add much more depending on your configuration.
82
83 config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
84         bool "Store applet usage messages in compressed form"
85         default y
86         depends on BUSYBOX_CONFIG_SHOW_USAGE
87         help
88           Store usage messages in compressed form, uncompress them on-the-fly
89           when <applet> --help is called.
90
91           If you have a really tiny busybox with few applets enabled (and
92           bunzip2 isn't one of them), the overhead of the decompressor might
93           be noticeable.  Also, if you run executables directly from ROM
94           and have very little memory, this might not be a win.  Otherwise,
95           you probably want this.
96
97 config BUSYBOX_CONFIG_FEATURE_INSTALLER
98         bool "Support --install [-s] to install applet links at runtime"
99         default n
100         help
101           Enable 'busybox --install [-s]' support.  This will allow you to use
102           busybox at runtime to create hard links or symlinks for all the
103           applets that are compiled into busybox.  This feature requires the
104           /proc filesystem.
105
106 config BUSYBOX_CONFIG_LOCALE_SUPPORT
107         bool "Enable locale support (system needs locale for this to work)"
108         default n
109         help
110           Enable this if your system has locale support and you would like
111           busybox to support locale settings.
112
113 config BUSYBOX_CONFIG_GETOPT_LONG
114         bool "Enable support for --long-options"
115         default y
116         help
117           Enable this if you want busybox applets to use the gnu --long-option
118           style, in addition to single character -a -b -c style options.
119
120 config BUSYBOX_CONFIG_FEATURE_DEVPTS
121         bool "Use the devpts filesystem for Unix98 PTYs"
122         default y
123         help
124           Enable if you want BusyBox to use Unix98 PTY support. If enabled,
125           busybox will use /dev/ptmx for the master side of the pseudoterminal
126           and /dev/pts/<number> for the slave side.  Otherwise, BSD style
127           /dev/ttyp<number> will be used. To use this option, you should have
128           devpts mounted.
129
130 config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
131         bool "Clean up all memory before exiting (usually not needed)"
132         default n
133         depends on BUSYBOX_CONFIG_NITPICK
134         help
135           As a size optimization, busybox normally exits without explicitly
136           freeing dynamically allocated memory or closing files.  This saves
137           space since the OS will clean up for us, but it can confuse debuggers
138           like valgrind, which report tons of memory and resource leaks.
139
140           Don't enable this unless you have a really good reason to clean
141           things up manually.
142
143 config BUSYBOX_CONFIG_FEATURE_SUID
144         bool "Support for SUID/SGID handling"
145         default y
146         help
147           With this option you can install the busybox binary belonging
148           to root with the suid bit set, and it'll and it'll automatically drop
149           priviledges for applets that don't need root access.
150
151           If you're really paranoid and don't want to do this, build two
152           busybox binaries with different applets in them (and the appropriate
153           symlinks pointing to each binary), and only set the suid bit on the
154           one that needs it.  The applets currently marked to need the suid bit
155           are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
156           and vlock.
157
158 config BUSYBOX_CONFIG_FEATURE_SYSLOG
159         bool "Support for syslog"
160         default y
161         help
162           This option is auto-selected when you select any applet which may
163           send its output to syslog. You do not need to select it manually.
164
165 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
166         bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
167         default n if BUSYBOX_CONFIG_FEATURE_SUID
168         depends on BUSYBOX_CONFIG_FEATURE_SUID
169         help
170           Allow the SUID / SGID state of an applet to be determined at runtime
171           by checking /etc/busybox.conf.  (This is sort of a poor man's sudo.)
172           The format of this file is as follows:
173
174           <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
175
176           An example might help:
177
178           [SUID]
179           su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
180           su = ssx        # exactly the same
181
182           mount = sx- root.disk # applet mount can be run by root and members of group disk
183                                 # and runs with euid=0
184
185           cp = --- # disable applet cp for everyone
186
187           The file has to be owned by user root, group root and has to be
188           writeable only by root:
189                 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
190           The busybox executable has to be owned by user root, group
191           root and has to be setuid root for this to work:
192                 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
193
194           Robert 'sandman' Griebl has more information here:
195           <url: http://www.softforge.de/bb/suid.html >.
196
197 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
198         bool "Suppress warning message if /etc/busybox.conf is not readable"
199         default n
200         depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
201         help
202           /etc/busybox.conf should be readable by the user needing the SUID, check
203           this option to avoid users to be notified about missing permissions.
204
205 config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
206         bool "RPC support"
207         default y
208         help
209           Select this if you have rpc support.
210           This automatically turns off all configuration options that rely
211           on RPC.
212
213 config BUSYBOX_CONFIG_SELINUX
214         bool "Support NSA Security Enhanced Linux"
215         default n
216         help
217           Enable support for SELinux in applets ls, ps, and id.  Also provide
218           the option of compiling in SELinux applets.
219
220           If you do not have a complete SELinux userland installed, this stuff
221           will not compile. Go visit
222                 http://www.nsa.gov/selinux/index.html
223           to download the necessary stuff to allow busybox to compile with
224           this option enabled. Specifially, libselinux 1.28 or better is
225           directly required by busybox. If the installation is located in a
226           non-standard directory, provide it by invoking make as follows:
227                 CFLAGS=-I<libselinux-include-path> \
228                 LDFLAGS=-L<libselinux-lib-path> \
229                 make
230
231           Most people will leave this set to 'N'.
232
233 config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
234         string "Path to BusyBox executable"
235         default "/proc/self/exe"
236         help
237           When Busybox applets need to run other busybox applets, BusyBox
238           sometimes needs to exec() itself.  When the /proc filesystem is
239           mounted, /proc/self/exe always points to the currently running
240           executable.  If you haven't got /proc, set this to wherever you
241           want to run BusyBox from.
242
243 endmenu
244
245 menu 'Build Options'
246
247 config BUSYBOX_CONFIG_STATIC
248         bool "Build BusyBox as a static binary (no shared libs)"
249         default n
250         help
251           If you want to build a static BusyBox binary, which does not
252           use or require any shared libraries, then enable this option.
253           This can cause BusyBox to be considerably larger, so you should
254           leave this option false unless you have a good reason (i.e.
255           your target platform does not support shared libraries, or
256           you are building an initrd which doesn't need anything but
257           BusyBox, etc).
258
259           Most people will leave this set to 'N'.
260
261 config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
262         bool "Build shared libbusybox"
263         default n
264         help
265           Build a shared library libbusybox.so which contains all
266           libraries used inside busybox.
267
268           This is an experimental feature intended to support the upcoming
269           "make standalone" mode.  Enabling it against the one big busybox
270           binary serves no purpose (and increases the size).  You should
271           almost certainly say "no" to this right now.
272
273 config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX
274         bool "Feature-complete libbusybox"
275         default n if !BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
276         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
277         help
278           Build a libbusybox with the complete feature-set, disregarding
279           the actually selected config.
280
281           Normally, libbusybox will only contain the features which are
282           used by busybox itself. If you plan to write a separate
283           standalone application which uses libbusybox say 'Y'.
284
285           Note: libbusybox is GPL, not LGPL, and exports no stable API that
286           might act as a copyright barrier.  We can and will modify the
287           exported function set between releases (even minor version number
288           changes), and happily break out-of-tree features.
289
290           Say 'N' if in doubt.
291
292 config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
293         bool "Use shared libbusybox for busybox"
294         default n if BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
295         depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
296         help
297           Use libbusybox.so also for busybox itself.
298           You need to have a working dynamic linker to use this variant.
299
300 config BUSYBOX_CONFIG_LFS
301         bool
302         default y
303         select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
304         help
305           If you want to build BusyBox with large file support, then enable
306           this option.  This will have no effect if your kernel or your C
307           library lacks large file support for large files.  Some of the
308           programs that can benefit from large file support include dd, gzip,
309           cp, mount, tar, and many others.  If you want to access files larger
310           than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
311
312 config BUSYBOX_CONFIG_BUILD_AT_ONCE
313         bool "Compile all sources at once"
314         default n
315         help
316           Normally each source-file is compiled with one invocation of
317           the compiler.
318           If you set this option, all sources are compiled at once.
319           This gives the compiler more opportunities to optimize which can
320           result in smaller and/or faster binaries.
321
322           Setting this option will consume alot of memory, e.g. if you
323           enable all applets with all features, gcc uses more than 300MB
324           RAM during compilation of busybox.
325
326           This option is most likely only beneficial for newer compilers
327           such as gcc-4.1 and above.
328
329           Say 'N' unless you know what you are doing.
330
331 endmenu
332
333 menu 'Debugging Options'
334
335 config BUSYBOX_CONFIG_DEBUG
336         bool "Build BusyBox with extra Debugging symbols"
337         default n
338         help
339           Say Y here if you wish to examine BusyBox internals while applets are
340           running.  This increases the size of the binary considerably, and
341           should only be used when doing development.  If you are doing
342           development and want to debug BusyBox, answer Y.
343
344           Most people should answer N.
345
346 config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
347         bool "Disable compiler optimizations."
348         default n
349         depends on BUSYBOX_CONFIG_DEBUG
350         help
351           The compiler's optimization of source code can eliminate and reorder
352           code, resulting in an executable that's hard to understand when
353           stepping through it with a debugger.  This switches it off, resulting
354           in a much bigger executable that more closely matches the source
355           code.
356
357 choice
358         prompt "Additional debugging library"
359         default BUSYBOX_CONFIG_NO_DEBUG_LIB
360         depends on BUSYBOX_CONFIG_DEBUG
361         help
362           Using an additional debugging library will make BusyBox become
363           considerable larger and will cause it to run more slowly.  You
364           should always leave this option disabled for production use.
365
366           dmalloc support:
367           ----------------
368           This enables compiling with dmalloc ( http://dmalloc.com/ )
369           which is an excellent public domain mem leak and malloc problem
370           detector.  To enable dmalloc, before running busybox you will
371           want to properly set your environment, for example:
372             export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
373           The 'debug=' value is generated using the following command
374             dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
375                -p check-fence -p check-heap -p check-lists -p check-blank \
376                -p check-funcs -p realloc-copy -p allow-free-null
377
378           Electric-fence support:
379           -----------------------
380           This enables compiling with Electric-fence support.  Electric
381           fence is another very useful malloc debugging library which uses
382           your computer's virtual memory hardware to detect illegal memory
383           accesses.  This support will make BusyBox be considerable larger
384           and run slower, so you should leave this option disabled unless
385           you are hunting a hard to find memory problem.
386
387
388 config BUSYBOX_CONFIG_NO_DEBUG_LIB
389         bool "None"
390
391 config BUSYBOX_CONFIG_DMALLOC
392         bool "Dmalloc"
393
394 config BUSYBOX_CONFIG_EFENCE
395         bool "Electric-fence"
396
397 endchoice
398
399 config BUSYBOX_CONFIG_DEBUG_YANK_SUSv2
400         bool "Disable obsolete features removed before SUSv3?"
401         default y
402         help
403           This option will disable backwards compatibility with SuSv2,
404           specifically, old-style numeric options ('command -1 <file>')
405           will not be supported in head, tail, and fold.  (Note: should
406           yank from renice too.)
407
408 endmenu
409
410 menu 'Installation Options'
411
412 config BUSYBOX_CONFIG_INSTALL_NO_USR
413         bool "Don't use /usr"
414         default n
415         help
416           Disable use of /usr. Don't activate this option if you don't know
417           that you really want this behaviour.
418
419 choice
420        prompt "Applets links"
421        default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
422        help
423          Choose how you install applets links.
424
425 config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
426        bool "as soft-links"
427        help
428          Install applets as soft-links to the busybox binary. This needs some
429          free inodes on the filesystem, but might help with filesystem
430          generators that can't cope with hard-links.
431
432 config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
433        bool "as hard-links"
434        help
435          Install applets as hard-links to the busybox binary. This might count
436          on a filesystem with few inodes.
437
438 config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
439        bool
440        prompt "not installed"
441        depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL
442        help
443          Do not install applets links. Usefull when using the -install feature
444          or a standalone shell for rescue pruposes.
445
446 endchoice
447
448 config BUSYBOX_CONFIG_PREFIX
449         string "BusyBox installation prefix"
450         default "./_install"
451         help
452           Define your directory to install BusyBox files/subdirs in.
453
454 endmenu
455
456 source package/busybox/config/libbb/Config.in
457
458 endmenu
459
460 comment "Applets"
461
462 source package/busybox/config/archival/Config.in
463 source package/busybox/config/coreutils/Config.in
464 source package/busybox/config/console-tools/Config.in
465 source package/busybox/config/debianutils/Config.in
466 source package/busybox/config/editors/Config.in
467 source package/busybox/config/findutils/Config.in
468 source package/busybox/config/init/Config.in
469 source package/busybox/config/loginutils/Config.in
470 source package/busybox/config/e2fsprogs/Config.in
471 source package/busybox/config/modutils/Config.in
472 source package/busybox/config/util-linux/Config.in
473 source package/busybox/config/miscutils/Config.in
474 source package/busybox/config/networking/Config.in
475 source package/busybox/config/procps/Config.in
476 source package/busybox/config/shell/Config.in
477 source package/busybox/config/sysklogd/Config.in
478 source package/busybox/config/runit/Config.in