X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/f52d66ff00b24111f87c274d3d7085ef2e1d27b1..8db97c0089bb54abe422c2b8b7739a670044a915:/package/busybox/config/Config.in diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in index 6a5d6a74d..62b80d6e3 100644 --- a/package/busybox/config/Config.in +++ b/package/busybox/config/Config.in @@ -4,7 +4,7 @@ # -config BUSYBOX_HAVE_DOT_CONFIG +config BUSYBOX_CONFIG_HAVE_DOT_CONFIG bool default y @@ -12,26 +12,29 @@ menu "Busybox Settings" menu "General Configuration" -config BUSYBOX_CONFIG_NITPICK - bool "See lots more (probably unnecessary) configuration options." +config BUSYBOX_CONFIG_DESKTOP + bool "Enable options for full-blown desktop systems" 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. + 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. - 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 +config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE + bool "Assume that 1:1 char/glyph correspondence is not true" + default n + help + This makes various applets aware that one byte is not + one character on screen. - You have been warned. + Busybox aims to eventually work correctly with Unicode displays. + Any older encodings are not guaranteed to work. + Probably by the time when busybox will be fully Unicode-clean, + other encodings will be mainly of historic interest. choice prompt "Buffer allocation policy" default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK - depends on BUSYBOX_CONFIG_NITPICK help There are 3 ways BusyBox can handle buffer allocations: - Use malloc. This costs code size for the call to xmalloc. @@ -74,8 +77,8 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE bool "Store applet usage messages in compressed form" - default n - depends on BUSYBOX_CONFIG_SHOW_USAGE && BUSYBOX_CONFIG_NITPICK + default y + depends on BUSYBOX_CONFIG_SHOW_USAGE help Store usage messages in compressed form, uncompress them on-the-fly when --help is called. @@ -92,8 +95,7 @@ config BUSYBOX_CONFIG_FEATURE_INSTALLER help Enable 'busybox --install [-s]' support. This will allow you to use busybox at runtime to create hard links or symlinks for all the - applets that are compiled into busybox. This feature requires the - /proc filesystem. + applets that are compiled into busybox. config BUSYBOX_CONFIG_LOCALE_SUPPORT bool "Enable locale support (system needs locale for this to work)" @@ -103,13 +105,11 @@ config BUSYBOX_CONFIG_LOCALE_SUPPORT busybox to support locale settings. config BUSYBOX_CONFIG_GETOPT_LONG - bool + bool "Support for --long-options" default y -# bool "Enable support for --long-options" -# default n -# help -# Enable this if you want busybox applets to use the gnu --long-option -# style, in addition to single character -a -b -c style options. + help + 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 BUSYBOX_CONFIG_FEATURE_DEVPTS bool "Use the devpts filesystem for Unix98 PTYs" @@ -124,7 +124,6 @@ config BUSYBOX_CONFIG_FEATURE_DEVPTS config BUSYBOX_CONFIG_FEATURE_CLEAN_UP bool "Clean up all memory before exiting (usually not needed)" default n - depends on BUSYBOX_CONFIG_NITPICK help As a size optimization, busybox normally exits without explicitly freeing dynamically allocated memory or closing files. This saves @@ -134,6 +133,13 @@ config BUSYBOX_CONFIG_FEATURE_CLEAN_UP Don't enable this unless you have a really good reason to clean things up manually. +config BUSYBOX_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. + config BUSYBOX_CONFIG_FEATURE_SUID bool "Support for SUID/SGID handling" default y @@ -173,10 +179,10 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG The file has to be owned by user root, group root and has to be writeable only by root: - (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) + (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) The busybox executable has to be owned by user root, group root and has to be setuid root for this to work: - (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) + (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) Robert 'sandman' Griebl has more information here: . @@ -209,6 +215,20 @@ config BUSYBOX_CONFIG_SELINUX Most people will leave this set to 'N'. +config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS + bool "exec prefers applets" + default y + help + This is an experimental option which directs applets about to + call 'exec' to try and find an applicable busybox applet before + searching the PATH. This is typically done by exec'ing + /proc/self/exe. + This may affect shell, find -exec, xargs and similar applets. + They will use applets even if /bin/ -> busybox link + is missing (or is not a link to busybox). However, this causes + problems in chroot jails without mounted /proc and with ps/top + (command name can be shown as 'exe' for applets started this way). + config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH string "Path to BusyBox executable" default "/proc/self/exe" @@ -219,6 +239,22 @@ config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH executable. If you haven't got /proc, set this to wherever you want to run BusyBox from. +# These are auto-selected by other options + +config BUSYBOX_CONFIG_FEATURE_SYSLOG + bool "Support for logging to syslog" + default y + 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 BUSYBOX_CONFIG_FEATURE_HAVE_RPC + bool "RPC support" + default y + help + This is automatically selected if any of enabled applets need it. + You do not need to select it manually. + endmenu menu 'Build Options' @@ -237,49 +273,109 @@ config BUSYBOX_CONFIG_STATIC Most people will leave this set to 'N'. -config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX - bool "Build shared libbusybox" +config BUSYBOX_CONFIG_PIE + bool "Build BusyBox as a position independent executable" + default n + depends on !BUSYBOX_CONFIG_STATIC + help + (TODO: what is it and why/when is it useful?) + Most people will leave this set to 'N'. + +config BUSYBOX_CONFIG_NOMMU + bool "Force NOMMU build" default n help - Build a shared library libbusybox.so which contains all - libraries used inside busybox. + Busybox tries to detect whether architecture it is being + built against supports MMU or not. If this detection fails, + or if you want to build NOMMU version of busybox for testing, + you may force NOMMU build here. - 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. + Most people will leave this set to 'N'. -config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX - bool "Feature-complete libbusybox" - default n if !CONFIG_FEATURE_SHARED_BUSYBOX - depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX +# PIE can be made to work with BUILD_LIBBUSYBOX, but currently +# build system does not support that +config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + bool "Build shared libbusybox" + default n + depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC + help + Build a shared library libbusybox.so.N.N.N which contains all + busybox code. + + This feature allows every applet to be built as a tiny + separate executable. Enabling it for "one big busybox binary" + approach serves no purpose and increases code size. + You should almost certainly say "no" to this. + +### config FEATURE_FULL_LIBBUSYBOX +### bool "Feature-complete 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. +### +### Normally, libbusybox will only contain the features which are +### 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 BUSYBOX_CONFIG_FEATURE_INDIVIDUAL + bool "Produce a binary for each applet, linked against libbusybox" + default n + depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX help - Build a libbusybox with the complete feature-set, disregarding - the actually selected config. + If your CPU architecture doesn't allow for sharing text/rodata + sections of running binaries, but allows for runtime dynamic + libraries, this option will allow you to reduce memory footprint + when you have many different applets running at once. - Normally, libbusybox will only contain the features which are - used by busybox itself. If you plan to write a separate - standalone application which uses libbusybox say 'Y'. + If your CPU architecture allows for sharing text/rodata, + having single binary is more optimal. - 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. + Each applet will be a tiny program, dynamically linked + against libbusybox.so.N.N.N. - Say 'N' if in doubt. + You need to have a working dynamic linker. config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX - bool "Use shared libbusybox for busybox" - default n if BUSYBOX_CONFIG_BUILD_LIBBUSYBOX - depends on !CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + bool "Produce additional busybox binary linked against libbusybox" + default n + depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX help - Use libbusybox.so also for busybox itself. - You need to have a working dynamic linker to use this variant. + Build busybox, dynamically linked against libbusybox.so.N.N.N. + + You need to have a working dynamic linker. + +### config BUILD_AT_ONCE +### bool "Compile all sources at once" +### default n +### help +### Normally each source-file is compiled with one invocation of +### the compiler. +### If you set this option, all sources are compiled at once. +### This gives the compiler more opportunities to optimize which can +### result in smaller and/or faster binaries. +### +### Setting this option will consume alot of memory, e.g. if you +### enable all applets with all features, gcc uses more than 300MB +### RAM during compilation of busybox. +### +### This option is most likely only beneficial for newer compilers +### such as gcc-4.1 and above. +### +### Say 'N' unless you know what you are doing. config BUSYBOX_CONFIG_LFS bool default y - select BUSYBOX_FDISK_SUPPORT_LARGE_DISKS + select BUSYBOX_CONFIG_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 @@ -288,42 +384,15 @@ config BUSYBOX_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'. -config BUSYBOX_USING_CROSS_COMPILER - bool - default y - help - Do you want to build BusyBox with a Cross Compiler? If so, - then enable this option. Otherwise leave it set to 'N'. - -config BUSYBOX_CROSS_COMPILER_PREFIX - string - default "mipsel-uclibc-" - depends on BUSYBOX_USING_CROSS_COMPILER +config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX + string "Cross Compiler prefix" + default "" 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 BUSYBOX_CONFIG_BUILD_AT_ONCE - bool "Compile all sources at once" - default n - help - Normally each source-file is compiled with one invocation of - the compiler. - If you set this option, all sources are compiled at once. - This gives the compiler more opportunities to optimize which can - result in smaller and/or faster binaries. - - Setting this option will consume alot of memory, e.g. if you - enable all applets with all features, gcc uses more than 300MB - RAM during compilation of busybox. - - This option is most likely only beneficial for newer compilers - such as gcc-4.1 and above. - - Say 'N' unless you know what you are doing. + will need to set this to the cross-compiler prefix, for example, + "i386-uclibc-". Note that CROSS_COMPILE environment variable + or "make CROSS_COMPILE=xxx ..." will override this selection. + For native build leave it empty. endmenu @@ -351,10 +420,17 @@ config BUSYBOX_CONFIG_DEBUG_PESSIMIZE in a much bigger executable that more closely matches the source code. +config BUSYBOX_CONFIG_WERROR + bool "Abort compilation on any warning" + default n + help + Selecting this will add -Werror to gcc command line. + + Most people should answer N. + choice prompt "Additional debugging library" default BUSYBOX_CONFIG_NO_DEBUG_LIB - depends on BUSYBOX_CONFIG_DEBUG help Using an additional debugging library will make BusyBox become considerable larger and will cause it to run more slowly. You @@ -393,14 +469,14 @@ config BUSYBOX_CONFIG_EFENCE endchoice -config BUSYBOX_CONFIG_DEBUG_YANK_SUSv2 - bool "Disable obsolete features removed before SUSv3?" +config BUSYBOX_CONFIG_INCLUDE_SUSv2 + bool "Enable obsolete features removed before SUSv3?" default y help - This option will disable backwards compatibility with SuSv2, + This option will enable 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.) + will be supported in head, tail, and fold. (Note: should + affect renice too.) endmenu @@ -414,36 +490,64 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR that you really want this behaviour. choice - prompt "Applets links" - default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS - help - Choose how you install applets links. + prompt "Applets links" + default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS + help + Choose how you install applets links. config BUSYBOX_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. + 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 BUSYBOX_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. + bool "as hard-links" + help + Install applets as hard-links to the busybox binary. This might count + on a filesystem with few inodes. + +config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS + bool "as script wrappers" + help + Install applets as script wrappers that call the busybox binary. config BUSYBOX_CONFIG_INSTALL_APPLET_DONT - bool - prompt "not installed" - depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL - help - Do not install applets links. Usefull when using the -install feature - or a standalone shell for rescue pruposes. + bool "not installed" + depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS + help + Do not install applet links. Useful when using the -install feature + or a standalone shell for rescue purposes. + +endchoice + +choice + prompt "/bin/sh applet link" + default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK + depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS + help + Choose how you install /bin/sh applet link. + +config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK + bool "as soft-link" + help + Install /bin/sh applet as soft-link to the busybox binary. + +config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK + bool "as hard-link" + help + Install /bin/sh applet as hard-link to the busybox binary. + +config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER + bool "as script wrapper" + help + Install /bin/sh applet as script wrapper that call the busybox binary. endchoice -config BUSYBOX_PREFIX - string +config BUSYBOX_CONFIG_PREFIX + string "BusyBox installation prefix" default "./_install" help Define your directory to install BusyBox files/subdirs in. @@ -472,3 +576,6 @@ source package/busybox/config/networking/Config.in source package/busybox/config/procps/Config.in source package/busybox/config/shell/Config.in source package/busybox/config/sysklogd/Config.in +source package/busybox/config/runit/Config.in +source package/busybox/config/selinux/Config.in +source package/busybox/config/printutils/Config.in