X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Config.in;h=fa48ddd63346cb257b6675755c5de96689094db2;hb=599bbfbd9be0073c262319a120174fad5a60113e;hp=59d7d6731f1f0889a47f00a759f426520d77da4e;hpb=7e754f12d304704d44e10fd4d2fdb8710526656e;p=oweals%2Fbusybox.git diff --git a/Config.in b/Config.in index 59d7d6731..fa48ddd63 100644 --- a/Config.in +++ b/Config.in @@ -101,8 +101,7 @@ 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 LOCALE_SUPPORT bool "Enable locale support (system needs locale for this to work)" @@ -145,8 +144,8 @@ config FEATURE_PIDFILE bool "Support writing pidfiles" default n help - This option makes some applets (crond, syslogd and inetd) write - a pidfile in /var/run. Some applications rely on them + This option makes some applets (e.g. crond, syslogd, inetd) write + a pidfile in /var/run. Some applications rely on them. config FEATURE_SUID bool "Support for SUID/SGID handling" @@ -163,13 +162,6 @@ config FEATURE_SUID 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 FEATURE_SUID_CONFIG bool "Runtime SUID/SGID configuration via /etc/busybox.conf" default n if FEATURE_SUID @@ -194,10 +186,10 @@ 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: . @@ -210,14 +202,6 @@ config FEATURE_SUID_CONFIG_QUIET /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 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 @@ -238,14 +222,19 @@ config SELINUX Most people will leave this set to 'N'. -config FEATURE_EXEC_PREFER_APPLETS +config FEATURE_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 PATH. This may affect shell, find -exec, xargs and - similar programs. + 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_EXEC_PATH string "Path to BusyBox executable" @@ -257,6 +246,22 @@ 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 FEATURE_SYSLOG + bool "Support for logging to 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 FEATURE_HAVE_RPC + bool "RPC support" + default n + help + This is automatically selected if any of enabled applets need it. + You do not need to select it manually. + endmenu menu 'Build Options' @@ -278,41 +283,80 @@ config STATIC config BUILD_LIBBUSYBOX bool "Build shared libbusybox" default n + depends on !FEATURE_PREFER_APPLETS + 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 FEATURE_INDIVIDUAL + bool "Produce a binary for each applet, linked against libbusybox" + default y + depends on !STATIC && BUILD_LIBBUSYBOX help - Build a shared library libbusybox.so which contains all - libraries used inside busybox. - - 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" - default n if !FEATURE_SHARED_BUSYBOX - depends on 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 FEATURE_SHARED_BUSYBOX - bool "Use shared libbusybox for busybox" - default y if BUILD_LIBBUSYBOX + bool "Produce additional busybox binary linked against libbusybox" + default y 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. + 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 LFS bool "Build with Large File Support (for accessing files > 2 GB)" @@ -326,25 +370,6 @@ 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 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. - endmenu menu 'Debugging Options' @@ -460,12 +485,41 @@ config INSTALL_APPLET_HARDLINKS Install applets as hard-links to the busybox binary. This might count on a filesystem with few inodes. +config INSTALL_APPLET_SCRIPT_WRAPPERS + bool "as script wrappers" + help + Install applets as script wrappers that call the busybox binary. + config INSTALL_APPLET_DONT bool "not installed" - depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE_SHELL || FEATURE_EXEC_PREFER_APPLETS + depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS help Do not install applet links. Useful when using the -install feature - or a standalone shell for rescue pruposes. + or a standalone shell for rescue purposes. + +endchoice + +choice + prompt "/bin/sh applet link" + default INSTALL_SH_APPLET_SYMLINK + depends on INSTALL_APPLET_SCRIPT_WRAPPERS + help + Choose how you install /bin/sh applet link. + +config INSTALL_SH_APPLET_SYMLINK + bool "as soft-link" + help + Install /bin/sh applet as soft-link to the busybox binary. + +config INSTALL_SH_APPLET_HARDLINK + bool "as hard-link" + help + Install /bin/sh applet as hard-link to the busybox binary. + +config INSTALL_SH_APPLET_SCRIPT_WRAPPER + bool "as script wrapper" + help + Install /bin/sh applet as script wrapper that call the busybox binary. endchoice