tweaks to build system, mainly making menuconfig text and order clearer

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-10-12 04:18:05 +02:00
parent b1993380ba
commit d4d289acf5
6 changed files with 46 additions and 38 deletions

View File

@ -123,6 +123,14 @@ config FEATURE_INSTALLER
busybox at runtime to create hard links or symlinks for all the busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox. applets that are compiled into busybox.
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.
config LOCALE_SUPPORT config LOCALE_SUPPORT
bool "Enable locale support (system needs locale for this to work)" bool "Enable locale support (system needs locale for this to work)"
default n default n
@ -275,15 +283,6 @@ config FEATURE_CLEAN_UP
Don't enable this unless you have a really good reason to clean Don't enable this unless you have a really good reason to clean
things up manually. 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 config FEATURE_WTMP
bool "Support wtmp file" bool "Support wtmp file"
default y default y
@ -295,6 +294,15 @@ config FEATURE_WTMP
will append new entries there. will append new entries there.
"last" applet requires this option. "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 config FEATURE_PIDFILE
bool "Support writing pidfiles" bool "Support writing pidfiles"
default y default y
@ -307,14 +315,19 @@ config FEATURE_SUID
default y default y
help help
With this option you can install the busybox binary belonging With this option you can install the busybox binary belonging
to root with the suid bit set, and it will automatically drop to root with the suid bit set, enabling some applets to perform
priviledges for applets that don't need root access. 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
that don't need root access.
If you are really paranoid and don't want to do this, build two If you are really paranoid and don't want to do this, build two
busybox binaries with different applets in them (and the appropriate busybox binaries with different applets in them (and the appropriate
symlinks pointing to each binary), and only set the suid bit on the 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 one that needs it.
are:
The applets currently marked to need the suid bit are:
crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su, crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
traceroute, vlock. traceroute, vlock.
@ -651,20 +664,13 @@ endchoice
endmenu endmenu
menu 'Installation Options' menu 'Installation Options ("make install" behavior)'
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 choice
prompt "Applets links" prompt "What kind of applet links to install"
default INSTALL_APPLET_SYMLINKS default INSTALL_APPLET_SYMLINKS
help help
Choose how you install applets links. Choose what kind of links to applets are created by "make install".
config INSTALL_APPLET_SYMLINKS config INSTALL_APPLET_SYMLINKS
bool "as soft-links" bool "as soft-links"
@ -688,8 +694,9 @@ config INSTALL_APPLET_DONT
bool "not installed" bool "not installed"
depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS
help help
Do not install applet links. Useful when using the -install feature Do not install applet links. Useful when you plan to use
or a standalone shell for rescue purposes. busybox --install for installing links, or plan to use
a standalone shell and thus don't need applet links.
endchoice endchoice
@ -713,8 +720,8 @@ config INSTALL_SH_APPLET_HARDLINK
config INSTALL_SH_APPLET_SCRIPT_WRAPPER config INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper" bool "as script wrapper"
help help
Install /bin/sh applet as script wrapper that call the busybox Install /bin/sh applet as script wrapper that calls
binary. the busybox binary.
endchoice endchoice

View File

@ -56,11 +56,6 @@ s - suid type:
# define APPLET_NOFORK(name,main,l,s,name2) { #name, #main, l, s, 1, 1 }, # define APPLET_NOFORK(name,main,l,s,name2) { #name, #main, l, s, 1, 1 },
#endif #endif
#if ENABLE_INSTALL_NO_USR
# define _BB_DIR_USR_BIN _BB_DIR_BIN
# define _BB_DIR_USR_SBIN _BB_DIR_SBIN
#endif
INSERT INSERT
IF_TEST(APPLET_NOFORK([, test, _BB_DIR_USR_BIN, _BB_SUID_DROP, test)) IF_TEST(APPLET_NOFORK([, test, _BB_DIR_USR_BIN, _BB_SUID_DROP, test))

View File

@ -16,8 +16,13 @@ typedef enum bb_install_loc_t {
_BB_DIR_ROOT = 0, _BB_DIR_ROOT = 0,
_BB_DIR_BIN, _BB_DIR_BIN,
_BB_DIR_SBIN, _BB_DIR_SBIN,
#if ENABLE_INSTALL_NO_USR
_BB_DIR_USR_BIN = _BB_DIR_BIN,
_BB_DIR_USR_SBIN = _BB_DIR_SBIN,
#else
_BB_DIR_USR_BIN, _BB_DIR_USR_BIN,
_BB_DIR_USR_SBIN _BB_DIR_USR_SBIN,
#endif
} bb_install_loc_t; } bb_install_loc_t;
typedef enum bb_suid_t { typedef enum bb_suid_t {

View File

@ -592,9 +592,11 @@ static const char usr_sbin[] ALIGN1 = "/usr/sbin/";
static const char *const install_dir[] = { static const char *const install_dir[] = {
&usr_bin [8], /* "/" */ &usr_bin [8], /* "/" */
&usr_bin [4], /* "/bin/" */ &usr_bin [4], /* "/bin/" */
&usr_sbin[4], /* "/sbin/" */ &usr_sbin[4] /* "/sbin/" */
usr_bin, # if !ENABLE_INSTALL_NO_USR
usr_sbin ,usr_bin
,usr_sbin
# endif
}; };

View File

@ -136,7 +136,6 @@ config CHRT
config CROND config CROND
bool "crond" bool "crond"
default y default y
select FEATURE_SUID
select FEATURE_SYSLOG select FEATURE_SYSLOG
help help
Crond is a background daemon that parses individual crontab Crond is a background daemon that parses individual crontab

View File

@ -804,7 +804,7 @@ config TELNETD
mount -t devpts devpts /dev/pts mount -t devpts devpts /dev/pts
You need to be sure that Busybox has LOGIN and You need to be sure that busybox has LOGIN and
FEATURE_SUID enabled. And finally, you should make FEATURE_SUID enabled. And finally, you should make
certain that Busybox has been installed setuid root: certain that Busybox has been installed setuid root: