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