Add CONFIG_FEATURE_SYSLOG which controls whether
bb_xx_msg will ever try to send output to syslog.
Add "select CONFIG_FEATURE_SYSLOG" to relevant applets.
This allows to omit syslog code if we do not have
any syslog-capable applets in the build.
diff --git a/Config.in b/Config.in
index e6acf49..d8f77ad 100644
--- a/Config.in
+++ b/Config.in
@@ -150,6 +150,13 @@
are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
and vlock.
+config 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
bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
default n if CONFIG_FEATURE_SUID
diff --git a/init/Config.in b/init/Config.in
index 8b91791..2a39d50 100644
--- a/init/Config.in
+++ b/init/Config.in
@@ -8,6 +8,7 @@
config CONFIG_INIT
bool "init"
default n
+ select CONFIG_FEATURE_SYSLOG
help
init is the first program run when the system boots.
diff --git a/libbb/verror_msg.c b/libbb/verror_msg.c
index 237547d..be206e4 100644
--- a/libbb/verror_msg.c
+++ b/libbb/verror_msg.c
@@ -32,7 +32,7 @@
else
fprintf(stderr, ": %s\n", strerr);
}
- if (logmode & LOGMODE_SYSLOG) {
+ if (ENABLE_FEATURE_SYSLOG & (logmode & LOGMODE_SYSLOG)) {
if (!strerr)
vsyslog(LOG_ERR, s, p2);
else {
diff --git a/libbb/vinfo_msg.c b/libbb/vinfo_msg.c
index e8776e5..84825bc 100644
--- a/libbb/vinfo_msg.c
+++ b/libbb/vinfo_msg.c
@@ -24,7 +24,7 @@
vprintf(s, p);
putchar('\n');
}
- if (logmode & LOGMODE_SYSLOG)
+ if (ENABLE_FEATURE_SYSLOG & (logmode & LOGMODE_SYSLOG))
vsyslog(LOG_INFO, s, p2);
va_end(p2);
}
diff --git a/loginutils/Config.in b/loginutils/Config.in
index 9926551..71e0a3a 100644
--- a/loginutils/Config.in
+++ b/loginutils/Config.in
@@ -80,6 +80,7 @@
config CONFIG_GETTY
bool "getty"
default n
+ select CONFIG_FEATURE_SYSLOG
help
getty lets you log in on a tty, it is normally invoked by init.
@@ -103,6 +104,7 @@
bool "login"
default n
select CONFIG_FEATURE_SUID
+ select CONFIG_FEATURE_SYSLOG
help
login is used when signing onto a system.
@@ -122,6 +124,7 @@
bool "passwd"
default n
select CONFIG_FEATURE_SUID
+ select CONFIG_FEATURE_SYSLOG
help
passwd changes passwords for user and group accounts. A normal user
may only change the password for his/her own account, the super user
@@ -135,6 +138,7 @@
bool "su"
default n
select CONFIG_FEATURE_SUID
+ select CONFIG_FEATURE_SYSLOG
help
su is used to become another user during a login session.
Invoked without a username, su defaults to becoming the super user.
@@ -152,6 +156,7 @@
config CONFIG_SULOGIN
bool "sulogin"
default n
+ select CONFIG_FEATURE_SYSLOG
help
sulogin is invoked when the system goes into single user
mode (this is done through an entry in inittab).
diff --git a/miscutils/Config.in b/miscutils/Config.in
index 9ad3421..dc3da6f 100644
--- a/miscutils/Config.in
+++ b/miscutils/Config.in
@@ -23,6 +23,7 @@
bool "crond"
default n
select CONFIG_FEATURE_SUID
+ select CONFIG_FEATURE_SYSLOG
help
Crond is a background daemon that parses individual crontab
files and executes commands on behalf of the users in question.
@@ -66,6 +67,7 @@
config CONFIG_DEVFSD
bool "devfsd (obsolete)"
default n
+ select CONFIG_FEATURE_SYSLOG
help
This is deprecated, and will be removed at the end of 2008.
diff --git a/networking/Config.in b/networking/Config.in
index e5eb11c..2dff021 100644
--- a/networking/Config.in
+++ b/networking/Config.in
@@ -33,6 +33,7 @@
config CONFIG_FAKEIDENTD
bool "fakeidentd"
default n
+ select CONFIG_FEATURE_SYSLOG
help
fakeidentd listens on the ident port and returns a predefined
fake value on any query.
@@ -288,6 +289,7 @@
config CONFIG_INETD
bool "inetd"
default n
+ select CONFIG_FEATURE_SYSLOG
help
Internet superserver daemon
@@ -428,6 +430,7 @@
config CONFIG_NAMEIF
bool "nameif"
default n
+ select CONFIG_FEATURE_SYSLOG
help
nameif is used to rename network interface by its MAC address.
Renamed interfaces MUST be in the down state.
@@ -539,6 +542,7 @@
config CONFIG_TELNETD
bool "telnetd"
default n
+ select CONFIG_FEATURE_SYSLOG
help
A daemon for the TELNET protocol, allowing you to log onto the host
running the daemon. Please keep in mind that the TELNET protocol
@@ -701,6 +705,7 @@
config CONFIG_ZCIP
bool "zcip"
default n
+ select CONFIG_FEATURE_SYSLOG
help
ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
It's a daemon that allocates and defends a dynamically assigned
diff --git a/networking/udhcp/Config.in b/networking/udhcp/Config.in
index 01b2902..7732937 100644
--- a/networking/udhcp/Config.in
+++ b/networking/udhcp/Config.in
@@ -6,6 +6,7 @@
config CONFIG_APP_UDHCPD
bool "udhcp Server (udhcpd)"
default n
+ select CONFIG_FEATURE_SYSLOG
help
uDHCPd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
@@ -26,6 +27,7 @@
config CONFIG_APP_UDHCPC
bool "udhcp Client (udhcpc)"
default n
+ select CONFIG_FEATURE_SYSLOG
help
uDHCPc is a DHCP client geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
@@ -35,16 +37,6 @@
See http://udhcp.busybox.net for further details.
-config CONFIG_FEATURE_UDHCP_SYSLOG
- bool "Log udhcp messages to syslog (instead of stdout)"
- default n
- depends on CONFIG_APP_UDHCPD || CONFIG_APP_UDHCPC
- help
- If selected, udhcpd will log all its messages to syslog, otherwise,
- it will attempt to log them to stdout.
-
- See http://udhcp.busybox.net for further details.
-
config CONFIG_FEATURE_UDHCP_DEBUG
bool "Compile udhcp with noisy debugging messages"
default n
diff --git a/sysklogd/Config.in b/sysklogd/Config.in
index 05983b6..3993152 100644
--- a/sysklogd/Config.in
+++ b/sysklogd/Config.in
@@ -89,6 +89,7 @@
bool "klogd"
default n
depends on CONFIG_SYSLOGD
+ select CONFIG_FEATURE_SYSLOG
help
klogd is a utility which intercepts and logs all
messages from the Linux kernel and sends the messages
@@ -99,6 +100,7 @@
config CONFIG_LOGGER
bool "logger"
default n
+ select CONFIG_FEATURE_SYSLOG
help
The logger utility allows you to send arbitrary text
messages to the system log (i.e. the 'syslogd' utility) so