accidentally applied wrong (old) patch, fixing up...
[oweals/busybox.git] / Config.in
index 0afc34a943d011ad26ca8712689172a3e1d6db19..499233bc162157ad5d11b85a8da75b4feb3ef8a7 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -9,11 +9,38 @@ config HAVE_DOT_CONFIG
        bool
        default y
 
        bool
        default y
 
+menu "Busybox Settings"
+
 menu "General Configuration"
 
 menu "General Configuration"
 
+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.
+
+config DESKTOP
+       bool "Enable options for full-blown desktop systems"
+       default n
+       help
+         Enable options and features which are not essential.
+         Select this only if you plan to use busybox on full-blown
+         desktop machine with common Linux distro, not on an embedded box.
+
 choice
        prompt "Buffer allocation policy"
 choice
        prompt "Buffer allocation policy"
-       default CONFIG_FEATURE_BUFFERS_USE_MALLOC
+       default FEATURE_BUFFERS_USE_MALLOC
+       depends on NITPICK
        help
          There are 3 ways BusyBox can handle buffer allocations:
          - Use malloc. This costs code size for the call to xmalloc.
        help
          There are 3 ways BusyBox can handle buffer allocations:
          - Use malloc. This costs code size for the call to xmalloc.
@@ -24,27 +51,51 @@ choice
            behavior was the only one available for BusyBox versions 0.48 and
            earlier.
 
            behavior was the only one available for BusyBox versions 0.48 and
            earlier.
 
-config CONFIG_FEATURE_BUFFERS_USE_MALLOC
+config FEATURE_BUFFERS_USE_MALLOC
        bool "Allocate with Malloc"
 
        bool "Allocate with Malloc"
 
-config CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+config FEATURE_BUFFERS_GO_ON_STACK
        bool "Allocate on the Stack"
 
        bool "Allocate on the Stack"
 
-config CONFIG_FEATURE_BUFFERS_GO_IN_BSS
+config FEATURE_BUFFERS_GO_IN_BSS
        bool "Allocate in the .bss section"
 
 endchoice
 
        bool "Allocate in the .bss section"
 
 endchoice
 
-config CONFIG_FEATURE_VERBOSE_USAGE
+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 FEATURE_VERBOSE_USAGE
        bool "Show verbose applet usage messages"
        default n
        bool "Show verbose applet usage messages"
        default n
+       select 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.
 
        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_INSTALLER
+config FEATURE_COMPRESS_USAGE
+       bool "Store applet usage messages in compressed form"
+       default y
+       depends on SHOW_USAGE
+       help
+         Store usage messages in compressed form, uncompress them on-the-fly
+         when <applet> --help is called.
+
+         If you have a really tiny busybox with few applets enabled (and
+         bunzip2 isn't one of them), the overhead of the decompressor might
+         be noticeable.  Also, if you run executables directly from ROM
+         and have very little memory, this might not be a win.  Otherwise,
+         you probably want this.
+
+config FEATURE_INSTALLER
        bool "Support --install [-s] to install applet links at runtime"
        default n
        help
        bool "Support --install [-s] to install applet links at runtime"
        default n
        help
@@ -53,52 +104,73 @@ config CONFIG_FEATURE_INSTALLER
          applets that are compiled into busybox.  This feature requires the
          /proc filesystem.
 
          applets that are compiled into busybox.  This feature requires the
          /proc filesystem.
 
-config CONFIG_LOCALE_SUPPORT
+config LOCALE_SUPPORT
        bool "Enable locale support (system needs locale for this to work)"
        default n
        help
          Enable this if your system has locale support and you would like
          busybox to support locale settings.
 
        bool "Enable locale support (system needs locale for this to work)"
        default n
        help
          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"
-       default n
+config GETOPT_LONG
+       bool "Enable support for --long-options"
+       default y
        help
        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
+config FEATURE_DEVPTS
        bool "Use the devpts filesystem for Unix98 PTYs"
        bool "Use the devpts filesystem for Unix98 PTYs"
-       default y if CONFIG_FEATURE_DEVFS
+       default y
        help
          Enable if you want BusyBox to use Unix98 PTY support. If enabled,
          busybox will use /dev/ptmx for the master side of the pseudoterminal
          and /dev/pts/<number> for the slave side.  Otherwise, BSD style
          /dev/ttyp<number> will be used. To use this option, you should have
        help
          Enable if you want BusyBox to use Unix98 PTY support. If enabled,
          busybox will use /dev/ptmx for the master side of the pseudoterminal
          and /dev/pts/<number> for the slave side.  Otherwise, BSD style
          /dev/ttyp<number> will be used. To use this option, you should have
-         devpts or devfs mounted.
+         devpts mounted.
 
 
-config CONFIG_FEATURE_CLEAN_UP
+config FEATURE_CLEAN_UP
        bool "Clean up all memory before exiting (usually not needed)"
        default n
        bool "Clean up all memory before exiting (usually not needed)"
        default n
+       depends on NITPICK
        help
        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.
 
          things up manually.
 
-config CONFIG_FEATURE_SUID
+config FEATURE_SUID
        bool "Support for SUID/SGID handling"
        default n
        help
        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 FEATURE_SYSLOG
+       bool "Support for syslog"
+       default n
+       help
+         This option is auto-selected when you select any applet which may
+         send its output to syslog. You do not need to select it manually.
 
 
-config CONFIG_FEATURE_SUID_CONFIG
+config FEATURE_SUID_CONFIG
        bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
        bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
-       default n if CONFIG_FEATURE_SUID
-       depends on CONFIG_FEATURE_SUID
+       default n if FEATURE_SUID
+       depends on FEATURE_SUID
        help
        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:
 
          <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
 
 
          <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
 
@@ -123,34 +195,65 @@ config CONFIG_FEATURE_SUID_CONFIG
          Robert 'sandman' Griebl has more information here:
          <url: http://www.softforge.de/bb/suid.html >.
 
          Robert 'sandman' Griebl has more information here:
          <url: http://www.softforge.de/bb/suid.html >.
 
-config CONFIG_FEATURE_SUID_CONFIG_QUIET
+config FEATURE_SUID_CONFIG_QUIET
        bool "Suppress warning message if /etc/busybox.conf is not readable"
        bool "Suppress warning message if /etc/busybox.conf is not readable"
-       default n
-       depends on CONFIG_FEATURE_SUID_CONFIG
+       default y
+       depends on FEATURE_SUID_CONFIG
        help
          /etc/busybox.conf should be readable by the user needing the SUID, check
          this option to avoid users to be notified about missing permissions.
 
        help
          /etc/busybox.conf should be readable by the user needing the SUID, check
          this option to avoid users to be notified about missing permissions.
 
-config CONFIG_SELINUX
+config FEATURE_HAVE_RPC
+       bool "RPC support"
+       default y
+       help
+         Select this if you have rpc support.
+         This automatically turns off all configuration options that rely
+         on RPC.
+
+config SELINUX
        bool "Support NSA Security Enhanced Linux"
        default n
        help
        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
                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<libselinux-include-path> \
+               LDFLAGS=-L<libselinux-lib-path> \
+               make
 
          Most people will leave this set to 'N'.
 
 
          Most people will leave this set to 'N'.
 
+config FEATURE_EXEC_PREFER_APPLETS
+       bool "exec prefers applets"
+       default n
+       help
+         This is an experimental option which directs applets about to
+         call 'exec' to try and find an applicable busybox applet before
+         searching the executable path for a binary or symlink to execute.
+
+config BUSYBOX_EXEC_PATH
+       string "Path to BusyBox executable"
+       default "/proc/self/exe"
+       help
+         When Busybox applets need to run other busybox applets, BusyBox
+         sometimes needs to exec() itself.  When the /proc filesystem is
+         mounted, /proc/self/exe always points to the currently running
+         executable.  If you haven't got /proc, set this to wherever you
+         want to run BusyBox from.
+
 endmenu
 
 menu 'Build Options'
 
 endmenu
 
 menu 'Build Options'
 
-config CONFIG_STATIC
+config STATIC
        bool "Build BusyBox as a static binary (no shared libs)"
        default n
        help
        bool "Build BusyBox as a static binary (no shared libs)"
        default n
        help
@@ -164,17 +267,22 @@ config CONFIG_STATIC
 
          Most people will leave this set to 'N'.
 
 
          Most people will leave this set to 'N'.
 
-config CONFIG_BUILD_LIBBUSYBOX
+config BUILD_LIBBUSYBOX
        bool "Build shared libbusybox"
        bool "Build shared libbusybox"
-       default y
+       default n
        help
          Build a shared library libbusybox.so which contains all
          libraries used inside busybox.
 
        help
          Build a shared library libbusybox.so which contains all
          libraries used inside busybox.
 
-config CONFIG_FEATURE_FULL_LIBBUSYBOX
+         This is an experimental feature intended to support the upcoming
+         "make standalone" mode.  Enabling it against the one big busybox
+         binary serves no purpose (and increases the size).  You should
+         almost certainly say "no" to this right now.
+
+config FEATURE_FULL_LIBBUSYBOX
        bool "Feature-complete libbusybox"
        bool "Feature-complete libbusybox"
-       default n if !CONFIG_FEATURE_SHARED_BUSYBOX
-       depends on CONFIG_BUILD_LIBBUSYBOX
+       default n if !FEATURE_SHARED_BUSYBOX
+       depends on BUILD_LIBBUSYBOX
        help
          Build a libbusybox with the complete feature-set, disregarding
          the actually selected config.
        help
          Build a libbusybox with the complete feature-set, disregarding
          the actually selected config.
@@ -190,15 +298,15 @@ config CONFIG_FEATURE_FULL_LIBBUSYBOX
 
          Say 'N' if in doubt.
 
 
          Say 'N' if in doubt.
 
-config CONFIG_FEATURE_SHARED_BUSYBOX
+config FEATURE_SHARED_BUSYBOX
        bool "Use shared libbusybox for busybox"
        bool "Use shared libbusybox for busybox"
-       default y if CONFIG_BUILD_LIBBUSYBOX
-       depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX
+       default y if BUILD_LIBBUSYBOX
+       depends on !STATIC && BUILD_LIBBUSYBOX
        help
          Use libbusybox.so also for busybox itself.
          You need to have a working dynamic linker to use this variant.
 
        help
          Use libbusybox.so also for busybox itself.
          You need to have a working dynamic linker to use this variant.
 
-config CONFIG_LFS
+config LFS
        bool "Build with Large File Support (for accessing files > 2 GB)"
        default n
        select FDISK_SUPPORT_LARGE_DISKS
        bool "Build with Large File Support (for accessing files > 2 GB)"
        default n
        select FDISK_SUPPORT_LARGE_DISKS
@@ -210,34 +318,7 @@ config CONFIG_LFS
          cp, mount, tar, and many others.  If you want to access files larger
          than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
 
          cp, mount, tar, and many others.  If you want to access files larger
          than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
 
-config USING_CROSS_COMPILER
-       bool "Do you want to build BusyBox with a Cross Compiler?"
-       default n
-       help
-         Do you want to build BusyBox with a Cross Compiler?  If so,
-         then enable this option.  Otherwise leave it set to 'N'.
-
-config CROSS_COMPILER_PREFIX
-       string "Cross Compiler prefix"
-       default "/usr/i386-linux-uclibc/bin/i386-uclibc-"
-       depends on USING_CROSS_COMPILER
-       help
-         If you want to build BusyBox with a cross compiler, then you
-         will need to set this to the cross-compiler prefix.  For example,
-         if my cross-compiler is /usr/i386-linux-uclibc/bin/i386-uclibc-gcc
-         then I would enter '/usr/i386-linux-uclibc/bin/i386-uclibc-' here,
-         which will ensure the correct compiler is used.
-
-config EXTRA_CFLAGS_OPTIONS
-       string "Any extra CFLAGS options for the compiler?"
-       default ""
-       help
-         Do you want to pass any extra CFLAGS options to the compiler as
-         you build BusyBox? If so, this is the option for you...  For example,
-         if you want to add some simple compiler switches (like -march=i686),
-         or check for warnings using -Werror, just those options here.
-
-config CONFIG_BUILD_AT_ONCE
+config BUILD_AT_ONCE
        bool "Compile all sources at once"
        default n
        help
        bool "Compile all sources at once"
        default n
        help
@@ -258,87 +339,34 @@ config CONFIG_BUILD_AT_ONCE
 
 endmenu
 
 
 endmenu
 
-menu 'Installation Options'
+menu 'Debugging Options'
 
 
-config CONFIG_INSTALL_NO_USR
-       bool "Don't use /usr"
+config DEBUG
+       bool "Build BusyBox with extra Debugging symbols"
        default n
        help
        default n
        help
-         Disable use of /usr. Don't activate this option if you don't know
-         that you really want this behaviour.
-
-choice
-       prompt "Applets links"
-       default CONFIG_INSTALL_APPLET_SYMLINKS
-       help
-         Choose how you install applets links.
-
-config CONFIG_INSTALL_APPLET_SYMLINKS
-       bool "as soft-links"
-       help
-         Install applets as soft-links to the busybox binary. This needs some
-         free inodes on the filesystem, but might help with filesystem
-         generators that can't cope with hard-links.
-
-config CONFIG_INSTALL_APPLET_HARDLINKS
-       bool "as hard-links"
-       help
-         Install applets as hard-links to the busybox binary. This might count
-         on a filesystem with few inodes.
-
-config CONFIG_INSTALL_APPLET_DONT
-       bool
-       prompt "not installed"
-       depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL
-       help
-         Do not install applets links. Usefull when using the -install feature
-         or a standalone shell for rescue pruposes.
-
-endchoice
-
-config PREFIX
-       string "BusyBox installation prefix"
-       default "./_install"
-       help
-         Define your directory to install BusyBox files/subdirs in.
-
-endmenu
+         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.
 
 
-source archival/Config.in
-source coreutils/Config.in
-source console-tools/Config.in
-source debianutils/Config.in
-source editors/Config.in
-source findutils/Config.in
-source init/Config.in
-source loginutils/Config.in
-source e2fsprogs/Config.in
-source modutils/Config.in
-source util-linux/Config.in
-source miscutils/Config.in
-source networking/Config.in
-source procps/Config.in
-source shell/Config.in
-source sysklogd/Config.in
-
-menu 'Debugging Options'
+         Most people should answer N.
 
 
-config CONFIG_DEBUG
-       bool "Build BusyBox with Debugging symbols"
+config DEBUG_PESSIMIZE
+       bool "Disable compiler optimizations."
        default n
        default n
+       depends on DEBUG
        help
        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.
+         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"
 
 choice
        prompt "Additional debugging library"
-       default CONFIG_NO_DEBUG_LIB
-       depends on CONFIG_DEBUG
+       default NO_DEBUG_LIB
+       depends on DEBUG
        help
          Using an additional debugging library will make BusyBox become
          considerable larger and will cause it to run more slowly.  You
        help
          Using an additional debugging library will make BusyBox become
          considerable larger and will cause it to run more slowly.  You
@@ -366,24 +394,93 @@ choice
          you are hunting a hard to find memory problem.
 
 
          you are hunting a hard to find memory problem.
 
 
-config CONFIG_NO_DEBUG_LIB
+config NO_DEBUG_LIB
        bool "None"
 
        bool "None"
 
-config CONFIG_DMALLOC
+config DMALLOC
        bool "Dmalloc"
 
        bool "Dmalloc"
 
-config CONFIG_EFENCE
+config EFENCE
        bool "Electric-fence"
 
 endchoice
 
        bool "Electric-fence"
 
 endchoice
 
-config CONFIG_DEBUG_YANK_SUSv2
-       bool "Disable obsolete features removed before SUSv3?"
+config INCLUDE_SUSv2
+       bool "Enable obsolete features removed before SUSv3?"
        default y
        help
        default y
        help
-         This option will disable backwards compatability with SuSv2,
+         This option will enable backwards compatibility with SuSv2,
          specifically, old-style numeric options ('command -1 <file>')
          specifically, old-style numeric options ('command -1 <file>')
-         will not be supported in head, tail, and fold.  (Note: should
-         yank from renice too.)
+         will be supported in head, tail, and fold.  (Note: should
+         affect renice too.)
+
+endmenu
+
+menu 'Installation Options'
+
+config INSTALL_NO_USR
+       bool "Don't use /usr"
+       default n
+       help
+         Disable use of /usr. Don't activate this option if you don't know
+         that you really want this behaviour.
+
+choice
+       prompt "Applets links"
+       default INSTALL_APPLET_SYMLINKS
+       help
+         Choose how you install applets links.
+
+config INSTALL_APPLET_SYMLINKS
+       bool "as soft-links"
+       help
+         Install applets as soft-links to the busybox binary. This needs some
+         free inodes on the filesystem, but might help with filesystem
+         generators that can't cope with hard-links.
+
+config INSTALL_APPLET_HARDLINKS
+       bool "as hard-links"
+       help
+         Install applets as hard-links to the busybox binary. This might count
+         on a filesystem with few inodes.
+
+config INSTALL_APPLET_DONT
+       bool "not installed"
+       depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE_SHELL || FEATURE_EXEC_PREFER_APPLETS
+       help
+         Do not install applet links. Useful when using the -install feature
+         or a standalone shell for rescue pruposes.
+
+endchoice
+
+config PREFIX
+       string "BusyBox installation prefix"
+       default "./_install"
+       help
+         Define your directory to install BusyBox files/subdirs in.
+
+endmenu
+
+source libbb/Config.in
 
 endmenu
 
 endmenu
+
+comment "Applets"
+
+source archival/Config.in
+source coreutils/Config.in
+source console-tools/Config.in
+source debianutils/Config.in
+source editors/Config.in
+source findutils/Config.in
+source init/Config.in
+source loginutils/Config.in
+source e2fsprogs/Config.in
+source modutils/Config.in
+source util-linux/Config.in
+source miscutils/Config.in
+source networking/Config.in
+source procps/Config.in
+source shell/Config.in
+source sysklogd/Config.in
+source runit/Config.in