X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Config.in;h=85d61652c4419df6c7aecc3cee58ebc7dc7bc754;hb=5929edc1fac4340f99ed84e92bf3a2bedd4177c2;hp=1b87c12511c6e8f19209d4305471131ba34ef40a;hpb=2aba3953d46b66927506c96571207ffaee941534;p=oweals%2Fbusybox.git diff --git a/Config.in b/Config.in index 1b87c1251..85d61652c 100644 --- a/Config.in +++ b/Config.in @@ -9,8 +9,26 @@ config HAVE_DOT_CONFIG bool default y +menu "Busybox Settings" + menu "General Configuration" +config CONFIG_NITPICK + bool "See lots more (probably unnecessary) configuration options." + default n + help + Some BusyBox applets have more configuration options than anyone + will ever care about. To avoid drowining people in complexity, most + of the applet features that can be set to a sane default value are + hidden, unless you hit the above switch. + + This is better than to telling people to edit the busybox source + code, but not by much. + + See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet + + You have been warned. + choice prompt "Buffer allocation policy" default CONFIG_FEATURE_BUFFERS_USE_MALLOC @@ -35,15 +53,33 @@ config CONFIG_FEATURE_BUFFERS_GO_IN_BSS endchoice +config CONFIG_SHOW_USAGE + bool "Show terse applet usage messages" + default y + help + All BusyBox applets will show help messages when invoked with + wrong arguments. You can turn off printing these terse usage + messages if you say no here. + This will save you up to 7k. + config CONFIG_FEATURE_VERBOSE_USAGE bool "Show verbose applet usage messages" default n + select CONFIG_SHOW_USAGE help All BusyBox applets will show more verbose help messages when busybox is invoked with --help. This will add a lot of text to the busybox binary. In the default configuration, this will add about 13k, but it can add much more depending on your configuration. +config CONFIG_FEATURE_COMPRESS_USAGE + bool "Store applet usage messages in compressed form" + default y + depends on CONFIG_SHOW_USAGE + help + Store usage messages in compressed form, uncompress them on-the-fly + when --help is called. + config CONFIG_FEATURE_INSTALLER bool "Support --install [-s] to install applet links at runtime" default n @@ -60,11 +96,13 @@ config CONFIG_LOCALE_SUPPORT Enable this if your system has locale support and you would like busybox to support locale settings. -config CONFIG_FEATURE_DEVFS - bool "Support for devfs" +config CONFIG_GETOPT_LONG + bool "Enable support for --long-options" default n + depends on !CONFIG_NO_GETOPT_LONG help - Enable if you want BusyBox to work with devfs. + Enable this if you want busybox applets to use the gnu --long-option + style, in addition to single character -a -b -c style options. config CONFIG_FEATURE_DEVPTS bool "Use the devpts filesystem for Unix98 PTYs" @@ -74,31 +112,43 @@ config CONFIG_FEATURE_DEVPTS busybox will use /dev/ptmx for the master side of the pseudoterminal and /dev/pts/ for the slave side. Otherwise, BSD style /dev/ttyp will be used. To use this option, you should have - devpts or devfs mounted. + devpts mounted. config CONFIG_FEATURE_CLEAN_UP bool "Clean up all memory before exiting (usually not needed)" default n help - As a size optimization, busybox by default does not cleanup memory - that is dynamically allocated or close files before exiting. This - saves space and is usually not needed since the OS will clean up for - us. Don't enable this unless you have a really good reason to clean + As a size optimization, busybox normally exits without explicitly + freeing dynamically allocated memory or closing files. This saves + space since the OS will clean up for us, but it can confuse debuggers + like valgrind, which report tons of memory and resource leaks. + + Don't enable this unless you have a really good reason to clean things up manually. config CONFIG_FEATURE_SUID bool "Support for SUID/SGID handling" default n help - Support SUID and SGID binaries. + With this option you can install the busybox binary belonging + to root with the suid bit set, and it'll and it'll automatically drop + priviledges for applets that don't need root access. + + If you're really paranoid and don't want to do this, build two + busybox binaries with different applets in them (and the appropriate + symlinks pointing to each binary), and only set the suid bit on the + one that needs it. The applets currently marked to need the suid bit + are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs, + and vlock. config CONFIG_FEATURE_SUID_CONFIG bool "Runtime SUID/SGID configuration via /etc/busybox.conf" default n if CONFIG_FEATURE_SUID depends on CONFIG_FEATURE_SUID help - Allow the SUID / SGID state of an applet to be determined runtime by - checking /etc/busybox.conf. The format of this file is as follows: + Allow the SUID / SGID state of an applet to be determined at runtime + by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) + The format of this file is as follows: = [Ssx-][Ssx-][x-] (|).(|) @@ -125,7 +175,7 @@ config CONFIG_FEATURE_SUID_CONFIG config CONFIG_FEATURE_SUID_CONFIG_QUIET bool "Suppress warning message if /etc/busybox.conf is not readable" - default n + default y depends on CONFIG_FEATURE_SUID_CONFIG help /etc/busybox.conf should be readable by the user needing the SUID, check @@ -135,14 +185,19 @@ config CONFIG_SELINUX bool "Support NSA Security Enhanced Linux" default n help - Enable support for SE Linux in applets ls, ps, and id. Also provide - the option of compiling in SE Linux applets. + Enable support for SELinux in applets ls, ps, and id. Also provide + the option of compiling in SELinux applets. - If you do not have a complete SE Linux Full Userland installed, this - stuff will not compile. Go visit + If you do not have a complete SELinux userland installed, this stuff + will not compile. Go visit http://www.nsa.gov/selinux/index.html - to download the necessary stuff to allow busybox to compile with this - option enabled. + to download the necessary stuff to allow busybox to compile with + this option enabled. Specifially, libselinux 1.28 or better is + directly required by busybox. If the installation is located in a + non-standard directory, provide it by invoking make as follows: + CFLAGS=-I \ + LDFLAGS=-L \ + make Most people will leave this set to 'N'. @@ -183,6 +238,11 @@ config CONFIG_FEATURE_FULL_LIBBUSYBOX used by busybox itself. If you plan to write a separate standalone application which uses libbusybox say 'Y'. + Note: libbusybox is GPL, not LGPL, and exports no stable API that + might act as a copyright barrier. We can and will modify the + exported function set between releases (even minor version number + changes), and happily break out-of-tree features. + Say 'N' if in doubt. config CONFIG_FEATURE_SHARED_BUSYBOX @@ -251,22 +311,82 @@ config CONFIG_BUILD_AT_ONCE Say 'N' unless you know what you are doing. -config CONFIG_FEATURE_SUSv2 - bool "Enable features that are in SuSv2 but not SuSv3?" - default y +endmenu + +menu 'Debugging Options' + +config CONFIG_DEBUG + bool "Build BusyBox with extra Debugging symbols" + default n help - This option will enable backwards compatability with SuSv2, - specifically, numeric options such as 'head -1 ' will be - supported. + Say Y here if you wish to examine BusyBox internals while applets are + running. This increases the size of the binary considerably, and + should only be used when doing development. If you are doing + development and want to debug BusyBox, answer Y. + + Most people should answer N. + +config CONFIG_DEBUG_PESSIMIZE + bool "Disable compiler optimizations." + default n + depends on CONFIG_DEBUG + help + The compiler's optimization of source code can eliminate and reorder + code, resulting in an executable that's hard to understand when + stepping through it with a debugger. This switches it off, resulting + in a much bigger executable that more closely matches the source + code. + +choice + prompt "Additional debugging library" + default CONFIG_NO_DEBUG_LIB + depends on CONFIG_DEBUG + help + Using an additional debugging library will make BusyBox become + considerable larger and will cause it to run more slowly. You + should always leave this option disabled for production use. + + dmalloc support: + ---------------- + This enables compiling with dmalloc ( http://dmalloc.com/ ) + which is an excellent public domain mem leak and malloc problem + detector. To enable dmalloc, before running busybox you will + want to properly set your environment, for example: + export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile + The 'debug=' value is generated using the following command + dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ + -p check-fence -p check-heap -p check-lists -p check-blank \ + -p check-funcs -p realloc-copy -p allow-free-null + + Electric-fence support: + ----------------------- + This enables compiling with Electric-fence support. Electric + fence is another very useful malloc debugging library which uses + your computer's virtual memory hardware to detect illegal memory + accesses. This support will make BusyBox be considerable larger + and run slower, so you should leave this option disabled unless + you are hunting a hard to find memory problem. + + +config CONFIG_NO_DEBUG_LIB + bool "None" -config CONFIG_FEATURE_SUSv2_OBSOLETE - bool "Enable features that are obsolete in SuSv2" - depends on CONFIG_FEATURE_SUSv2 +config CONFIG_DMALLOC + bool "Dmalloc" + +config CONFIG_EFENCE + bool "Electric-fence" + +endchoice + +config CONFIG_DEBUG_YANK_SUSv2 + bool "Disable obsolete features removed before SUSv3?" default y help - Enable pre- SuSv2 features which are deprecated in SuSv2 and - above. - Disables support for e.g. numeric arguments in fold. + This option will disable backwards compatibility with SuSv2, + specifically, old-style numeric options ('command -1 ') + will not be supported in head, tail, and fold. (Note: should + yank from renice too.) endmenu @@ -316,6 +436,12 @@ config PREFIX endmenu +source libbb/Config.in + +endmenu + +comment "Applets" + source archival/Config.in source coreutils/Config.in source console-tools/Config.in @@ -332,62 +458,3 @@ source networking/Config.in source procps/Config.in source shell/Config.in source sysklogd/Config.in - -menu 'Debugging Options' - -config CONFIG_DEBUG - bool "Build BusyBox with Debugging symbols" - default n - help - Say Y here if you wish to compile BusyBox with debugging symbols. - This will allow you to use a debugger to examine BusyBox internals - while applets are running. This increases the size of the binary - considerably and should only be used when doing development. - If you are doing development and want to debug BusyBox, answer Y. - - Most people should answer N. - -choice - prompt "Additional debugging library" - default CONFIG_NO_DEBUG_LIB - depends on CONFIG_DEBUG - help - Using an additional debugging library will make BusyBox become - considerable larger and will cause it to run more slowly. You - should always leave this option disabled for production use. - - dmalloc support: - ---------------- - This enables compiling with dmalloc ( http://dmalloc.com/ ) - which is an excellent public domain mem leak and malloc problem - detector. To enable dmalloc, before running busybox you will - want to properly set your environment, for example: - export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile - The 'debug=' value is generated using the following command - dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ - -p check-fence -p check-heap -p check-lists -p check-blank \ - -p check-funcs -p realloc-copy -p allow-free-null - - Electric-fence support: - ----------------------- - This enables compiling with Electric-fence support. Electric - fence is another very useful malloc debugging library which uses - your computer's virtual memory hardware to detect illegal memory - accesses. This support will make BusyBox be considerable larger - and run slower, so you should leave this option disabled unless - you are hunting a hard to find memory problem. - - -config CONFIG_NO_DEBUG_LIB - bool "None" - -config CONFIG_DMALLOC - bool "Dmalloc" - -config CONFIG_EFENCE - bool "Electric-fence" - -endchoice - - -endmenu