Bump to version 1.22.1
[platform/upstream/busybox.git] / Config.in
index d9c8231..2c4be2e 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -83,20 +83,21 @@ config FEATURE_BUFFERS_GO_IN_BSS
 endchoice
 
 config SHOW_USAGE
-       bool "Show terse applet usage messages"
+       bool "Show 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.
+         Enabling this option, BusyBox applets will show terse help messages
+         when invoked with wrong arguments.
+         If you do not want to show any (helpful) usage message when
+         issuing wrong command syntax, you can say 'N' here,
+         saving approximately 7k.
 
 config FEATURE_VERBOSE_USAGE
        bool "Show verbose applet usage messages"
        default y
        depends on SHOW_USAGE
        help
-         All BusyBox applets will show more verbose help messages when
+         All BusyBox applets will show 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.
@@ -106,8 +107,8 @@ config FEATURE_COMPRESS_USAGE
        default y
        depends on SHOW_USAGE
        help
-         Store usage messages in compressed form, uncompress them on-the-fly
-         when <applet> --help is called.
+         Store usage messages in .bz 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
@@ -126,10 +127,10 @@ config FEATURE_INSTALLER
 config INSTALL_NO_USR
        bool "Don't use /usr"
        default n
-       depends on FEATURE_INSTALLER
        help
-         Disable use of /usr. busybox --install will install applets
-         only to /bin and /sbin, never to /usr/bin or /usr/sbin.
+         Disable use of /usr. busybox --install and "make install"
+         will install applets only to /bin and /sbin,
+         never to /usr/bin or /usr/sbin.
 
 config LOCALE_SUPPORT
        bool "Enable locale support (system needs locale for this to work)"
@@ -160,12 +161,13 @@ config UNICODE_USING_LOCALE
          Internal implementation is smaller.
 
 config FEATURE_CHECK_UNICODE_IN_ENV
-       bool "Check $LANG environment variable"
+       bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
        default n
        depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
        help
          With this option on, Unicode support is activated
-         only if LANG variable has the value of the form "xxxx.utf8"
+         only if locale-related variables have the value of the form
+         "xxxx.utf8"
 
          Otherwise, Unicode support will be always enabled and active.
 
@@ -248,8 +250,9 @@ config UNICODE_PRESERVE_BROKEN
        default n
        depends on UNICODE_SUPPORT
        help
-         With this option on, invalid UTF-8 bytes are not substituted
-         with the selected substitution character.
+         With this option on, on line-editing input (such as used by shells)
+         invalid UTF-8 bytes are not substituted with the selected
+         substitution character.
          For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
          at shell prompt will list file named 0xff (single char name
          with char value 255), not file named '?'.
@@ -283,10 +286,19 @@ config FEATURE_CLEAN_UP
          Don't enable this unless you have a really good reason to clean
          things up manually.
 
+config FEATURE_UTMP
+       bool "Support utmp file"
+       default y
+       help
+         The file /var/run/utmp is used to track who is currently logged in.
+         With this option on, certain applets (getty, login, telnetd etc)
+         will create and delete entries there.
+         "who" applet requires this option.
+
 config FEATURE_WTMP
        bool "Support wtmp file"
        default y
-       select FEATURE_UTMP
+       depends on FEATURE_UTMP
        help
          The file /var/run/wtmp is used to track when users have logged into
          and logged out of the system.
@@ -294,21 +306,23 @@ config FEATURE_WTMP
          will append new entries there.
          "last" applet requires this option.
 
-config FEATURE_UTMP
-       bool "Support utmp file"
-       default y
-       help
-         The file /var/run/utmp is used to track who is currently logged in.
-         With this option on, certain applets (getty, login, telnetd etc)
-         will create and delete entries there.
-         "who" applet requires this option.
-
 config FEATURE_PIDFILE
        bool "Support writing pidfiles"
        default y
        help
          This option makes some applets (e.g. crond, syslogd, inetd) write
-         a pidfile in /var/run. Some applications rely on them.
+         a pidfile at the configured PID_FILE_PATH.  It has no effect
+         on applets which require pidfiles to run.
+
+config PID_FILE_PATH
+       string "Path to directory for pidfile"
+       default "/var/run"
+       depends on FEATURE_PIDFILE
+       help
+         This is the default path where pidfiles are created.  Applets which
+         allow you to set the pidfile path on the command line will override
+         this value.  The option has no effect on applets that require you to
+         specify a pidfile path.
 
 config FEATURE_SUID
        bool "Support for SUID/SGID handling"
@@ -319,7 +333,7 @@ config FEATURE_SUID
          root-level operations even when run by ordinary users
          (for example, mounting of user mounts in fstab needs this).
 
-         Busybox will automatically drop priviledges for applets
+         Busybox will automatically drop privileges for applets
          that don't need root access.
 
          If you are really paranoid and don't want to do this, build two
@@ -327,21 +341,39 @@ config FEATURE_SUID
          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:
+         The applets which require root rights (need suid bit or
+         to be run by root) and will refuse to execute otherwise:
+         crontab, login, passwd, su, vlock, wall.
 
-         crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
-         traceroute, vlock.
+         The applets which will use root rights if they have them
+         (via suid bit, or because run by root), but would try to work
+         without root right nevertheless:
+         findfs, ping[6], traceroute[6], mount.
+
+         Note that if you DONT select this option, but DO make busybox
+         suid root, ALL applets will run under root, which is a huge
+         security hole (think "cp /some/file /etc/passwd").
 
 config FEATURE_SUID_CONFIG
        bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
-       default y if FEATURE_SUID
+       default y
        depends on FEATURE_SUID
        help
          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-] [USER.GROUP]
+
+         s: USER or GROUP is allowed to execute APPLET.
+            APPLET will run under USER or GROUP
+            (reagardless of who's running it).
+         S: USER or GROUP is NOT allowed to execute APPLET.
+            APPLET will run under USER or GROUP.
+            This option is not very sensical.
+         x: USER/GROUP/others are allowed to execute APPLET.
+            No UID/GID change will be done when it is run.
+         -: USER/GROUP/others are not allowed to execute APPLET.
 
          An example might help:
 
@@ -351,7 +383,8 @@ config FEATURE_SUID_CONFIG
          su = ssx        # exactly the same
 
          mount = sx- root.disk # applet mount can be run by root and members
-                               # of group disk and runs with euid=0
+                               # of group disk (but not anyone else)
+                               # and runs with euid=0 (egid is not changed)
 
          cp = --- # disable applet cp for everyone
 
@@ -377,7 +410,7 @@ config FEATURE_SUID_CONFIG_QUIET
 config SELINUX
        bool "Support NSA Security Enhanced Linux"
        default n
-       depends on PLATFORM_LINUX
+       select PLATFORM_LINUX
        help
          Enable support for SELinux in applets ls, ps, and id. Also provide
          the option of compiling in SELinux applets.
@@ -458,7 +491,10 @@ config PIE
        default n
        depends on !STATIC
        help
-         (TODO: what is it and why/when is it useful?)
+         Hardened code option. PIE binaries are loaded at a different
+         address at each invocation. This has some overhead,
+         particularly on x86-32 which is short on registers.
+
          Most people will leave this set to 'N'.
 
 config NOMMU
@@ -555,7 +591,6 @@ config FEATURE_SHARED_BUSYBOX
 config LFS
        bool "Build with Large File Support (for accessing files > 2 GB)"
        default y
-       select FDISK_SUPPORT_LARGE_DISKS
        help
          If you want to build BusyBox with large file support, then enable
          this option. This will have no effect if your kernel or your C
@@ -577,12 +612,39 @@ config CROSS_COMPILER_PREFIX
 
          Native builds leave this empty.
 
+config SYSROOT
+       string "Path to sysroot"
+       default ""
+       help
+         If you want to build BusyBox with a cross compiler, then you
+         might also need to specify where /usr/include and /usr/lib
+         will be found.
+
+         For example, BusyBox can be built against an installed
+         Android NDK, platform version 9, for ARM ABI with
+
+         CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
+
+         Native builds leave this empty.
+
 config EXTRA_CFLAGS
        string "Additional CFLAGS"
        default ""
        help
          Additional CFLAGS to pass to the compiler verbatim.
 
+config EXTRA_LDFLAGS
+       string "Additional LDFLAGS"
+       default ""
+       help
+         Additional LDFLAGS to pass to the linker verbatim.
+
+config EXTRA_LDLIBS
+       string "Additional LDLIBS"
+       default ""
+       help
+         Additional LDLIBS to pass to the linker with -l.
+
 endmenu
 
 menu 'Debugging Options'
@@ -659,9 +721,6 @@ config EFENCE
 
 endchoice
 
-### config PARSE
-###    bool "Uniform config file parser debugging applet: parse"
-
 endmenu
 
 menu 'Installation Options ("make install" behavior)'
@@ -692,7 +751,6 @@ config INSTALL_APPLET_SCRIPT_WRAPPERS
 
 config INSTALL_APPLET_DONT
        bool "not installed"
-       depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS
        help
          Do not install applet links. Useful when you plan to use
          busybox --install for installing links, or plan to use