busybox: update to 1.22.1

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 40852
This commit is contained in:
Felix Fietkau 2014-05-25 17:42:09 +00:00
parent a54791f2ba
commit f4f553efa7
61 changed files with 1075 additions and 3083 deletions

View file

@ -91,6 +91,9 @@ config BUSYBOX_DEFAULT_FEATURE_WTMP
config BUSYBOX_DEFAULT_FEATURE_PIDFILE config BUSYBOX_DEFAULT_FEATURE_PIDFILE
bool bool
default y default y
config BUSYBOX_DEFAULT_PID_FILE_PATH
string
default "/var/run"
config BUSYBOX_DEFAULT_FEATURE_SUID config BUSYBOX_DEFAULT_FEATURE_SUID
bool bool
default y default y
@ -139,9 +142,18 @@ config BUSYBOX_DEFAULT_LFS
config BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX config BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX
string string
default "" default ""
config BUSYBOX_DEFAULT_SYSROOT
string
default ""
config BUSYBOX_DEFAULT_EXTRA_CFLAGS config BUSYBOX_DEFAULT_EXTRA_CFLAGS
string string
default "" default ""
config BUSYBOX_DEFAULT_EXTRA_LDFLAGS
string
default ""
config BUSYBOX_DEFAULT_EXTRA_LDLIBS
string
default ""
config BUSYBOX_DEFAULT_DEBUG config BUSYBOX_DEFAULT_DEBUG
bool bool
default n default n
@ -193,9 +205,12 @@ config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
config BUSYBOX_DEFAULT_PASSWORD_MINLEN config BUSYBOX_DEFAULT_PASSWORD_MINLEN
int int
default 6 default 6
config BUSYBOX_DEFAULT_MD5_SIZE_VS_SPEED config BUSYBOX_DEFAULT_MD5_SMALL
int int
default 2 default 1
config BUSYBOX_DEFAULT_SHA3_SMALL
int
default 1
config BUSYBOX_DEFAULT_FEATURE_FAST_TOP config BUSYBOX_DEFAULT_FEATURE_FAST_TOP
bool bool
default y default y
@ -220,6 +235,9 @@ config BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
config BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY config BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
bool
default n
config BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH config BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
bool bool
default n default n
@ -280,9 +298,30 @@ config BUSYBOX_DEFAULT_FEATURE_AR_LONG_FILENAMES
config BUSYBOX_DEFAULT_FEATURE_AR_CREATE config BUSYBOX_DEFAULT_FEATURE_AR_CREATE
bool bool
default n default n
config BUSYBOX_DEFAULT_UNCOMPRESS
bool
default n
config BUSYBOX_DEFAULT_GUNZIP
bool
default y
config BUSYBOX_DEFAULT_BUNZIP2 config BUSYBOX_DEFAULT_BUNZIP2
bool bool
default y default y
config BUSYBOX_DEFAULT_UNLZMA
bool
default n
config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
bool
default n
config BUSYBOX_DEFAULT_LZMA
bool
default n
config BUSYBOX_DEFAULT_UNXZ
bool
default n
config BUSYBOX_DEFAULT_XZ
bool
default n
config BUSYBOX_DEFAULT_BZIP2 config BUSYBOX_DEFAULT_BZIP2
bool bool
default n default n
@ -304,25 +343,25 @@ config BUSYBOX_DEFAULT_DPKG_DEB
config BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY config BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY
bool bool
default n default n
config BUSYBOX_DEFAULT_GUNZIP
bool
default y
config BUSYBOX_DEFAULT_GZIP config BUSYBOX_DEFAULT_GZIP
bool bool
default y default y
config BUSYBOX_DEFAULT_FEATURE_GZIP_LONG_OPTIONS config BUSYBOX_DEFAULT_FEATURE_GZIP_LONG_OPTIONS
bool bool
default n default n
config BUSYBOX_DEFAULT_GZIP_FAST
int
default 0
config BUSYBOX_DEFAULT_LZOP config BUSYBOX_DEFAULT_LZOP
bool bool
default n default n
config BUSYBOX_DEFAULT_LZOP_COMPR_HIGH config BUSYBOX_DEFAULT_LZOP_COMPR_HIGH
bool bool
default n default n
config BUSYBOX_DEFAULT_RPM2CPIO config BUSYBOX_DEFAULT_RPM
bool bool
default n default n
config BUSYBOX_DEFAULT_RPM config BUSYBOX_DEFAULT_RPM2CPIO
bool bool
default n default n
config BUSYBOX_DEFAULT_TAR config BUSYBOX_DEFAULT_TAR
@ -361,24 +400,6 @@ config BUSYBOX_DEFAULT_FEATURE_TAR_NOPRESERVE_TIME
config BUSYBOX_DEFAULT_FEATURE_TAR_SELINUX config BUSYBOX_DEFAULT_FEATURE_TAR_SELINUX
bool bool
default n default n
config BUSYBOX_DEFAULT_UNCOMPRESS
bool
default n
config BUSYBOX_DEFAULT_UNLZMA
bool
default n
config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
bool
default n
config BUSYBOX_DEFAULT_LZMA
bool
default n
config BUSYBOX_DEFAULT_UNXZ
bool
default n
config BUSYBOX_DEFAULT_XZ
bool
default n
config BUSYBOX_DEFAULT_UNZIP config BUSYBOX_DEFAULT_UNZIP
bool bool
default n default n
@ -400,6 +421,9 @@ config BUSYBOX_DEFAULT_FEATURE_DATE_NANO
config BUSYBOX_DEFAULT_FEATURE_DATE_COMPAT config BUSYBOX_DEFAULT_FEATURE_DATE_COMPAT
bool bool
default n default n
config BUSYBOX_DEFAULT_HOSTID
bool
default y
config BUSYBOX_DEFAULT_ID config BUSYBOX_DEFAULT_ID
bool bool
default y default y
@ -415,6 +439,12 @@ config BUSYBOX_DEFAULT_FEATURE_TEST_64
config BUSYBOX_DEFAULT_TOUCH config BUSYBOX_DEFAULT_TOUCH
bool bool
default y default y
config BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
bool
default n
config BUSYBOX_DEFAULT_TR config BUSYBOX_DEFAULT_TR
bool bool
default y default y
@ -541,9 +571,6 @@ config BUSYBOX_DEFAULT_HEAD
config BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD config BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD
bool bool
default y default y
config BUSYBOX_DEFAULT_HOSTID
bool
default y
config BUSYBOX_DEFAULT_INSTALL config BUSYBOX_DEFAULT_INSTALL
bool bool
default n default n
@ -652,6 +679,9 @@ config BUSYBOX_DEFAULT_SHA256SUM
config BUSYBOX_DEFAULT_SHA512SUM config BUSYBOX_DEFAULT_SHA512SUM
bool bool
default n default n
config BUSYBOX_DEFAULT_SHA3SUM
bool
default n
config BUSYBOX_DEFAULT_SLEEP config BUSYBOX_DEFAULT_SLEEP
bool bool
default y default y
@ -847,9 +877,36 @@ config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
config BUSYBOX_DEFAULT_WHICH config BUSYBOX_DEFAULT_WHICH
bool bool
default y default y
config BUSYBOX_DEFAULT_AWK
bool
default y
config BUSYBOX_DEFAULT_FEATURE_AWK_LIBM
bool
default y
config BUSYBOX_DEFAULT_FEATURE_AWK_GNU_EXTENSIONS
bool
default y
config BUSYBOX_DEFAULT_CMP
bool
default y
config BUSYBOX_DEFAULT_DIFF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_DIFF_LONG_OPTIONS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_DIFF_DIR
bool
default n
config BUSYBOX_DEFAULT_ED
bool
default n
config BUSYBOX_DEFAULT_PATCH config BUSYBOX_DEFAULT_PATCH
bool bool
default n default n
config BUSYBOX_DEFAULT_SED
bool
default y
config BUSYBOX_DEFAULT_VI config BUSYBOX_DEFAULT_VI
bool bool
default y default y
@ -892,33 +949,6 @@ config BUSYBOX_DEFAULT_FEATURE_VI_WIN_RESIZE
config BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL config BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL
bool bool
default y default y
config BUSYBOX_DEFAULT_FEATURE_VI_OPTIMIZE_CURSOR
bool
default y
config BUSYBOX_DEFAULT_AWK
bool
default y
config BUSYBOX_DEFAULT_FEATURE_AWK_LIBM
bool
default y
config BUSYBOX_DEFAULT_CMP
bool
default y
config BUSYBOX_DEFAULT_DIFF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_DIFF_LONG_OPTIONS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_DIFF_DIR
bool
default n
config BUSYBOX_DEFAULT_ED
bool
default n
config BUSYBOX_DEFAULT_SED
bool
default y
config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
bool bool
default y default y
@ -1132,6 +1162,9 @@ config BUSYBOX_DEFAULT_GETTY
config BUSYBOX_DEFAULT_LOGIN config BUSYBOX_DEFAULT_LOGIN
bool bool
default n default n
config BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD
bool
default n
config BUSYBOX_DEFAULT_PAM config BUSYBOX_DEFAULT_PAM
bool bool
default n default n
@ -1156,6 +1189,9 @@ config BUSYBOX_DEFAULT_CRYPTPW
config BUSYBOX_DEFAULT_CHPASSWD config BUSYBOX_DEFAULT_CHPASSWD
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
string
default "md5"
config BUSYBOX_DEFAULT_SU config BUSYBOX_DEFAULT_SU
bool bool
default n default n
@ -1255,6 +1291,27 @@ config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
config BUSYBOX_DEFAULT_BLOCKDEV config BUSYBOX_DEFAULT_BLOCKDEV
bool bool
default n default n
config BUSYBOX_DEFAULT_FSTRIM
bool
default n
config BUSYBOX_DEFAULT_MDEV
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
bool
default n
config BUSYBOX_DEFAULT_REV config BUSYBOX_DEFAULT_REV
bool bool
default n default n
@ -1384,24 +1441,6 @@ config BUSYBOX_DEFAULT_LSPCI
config BUSYBOX_DEFAULT_LSUSB config BUSYBOX_DEFAULT_LSUSB
bool bool
default n default n
config BUSYBOX_DEFAULT_MDEV
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
bool
default n
config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
bool
default n
config BUSYBOX_DEFAULT_MKSWAP config BUSYBOX_DEFAULT_MKSWAP
bool bool
default y default y
@ -1489,13 +1528,19 @@ config BUSYBOX_DEFAULT_FEATURE_MTAB_SUPPORT
config BUSYBOX_DEFAULT_VOLUMEID config BUSYBOX_DEFAULT_VOLUMEID
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXT
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_REISERFS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_CRAMFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXFAT
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXT
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_F2FS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT
@ -1504,40 +1549,46 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_HFS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_HFS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NTFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ISO9660 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ISO9660
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXSWAP config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXSWAP
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_CRAMFS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ROMFS config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NILFS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NTFS
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_OCFS2 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_OCFS2
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_REISERFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ROMFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SQUASHFS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
bool bool
default n default n
config BUSYBOX_DEFAULT_CONSPY config BUSYBOX_DEFAULT_CONSPY
@ -1579,6 +1630,9 @@ config BUSYBOX_DEFAULT_NANDWRITE
config BUSYBOX_DEFAULT_NANDDUMP config BUSYBOX_DEFAULT_NANDDUMP
bool bool
default n default n
config BUSYBOX_DEFAULT_RFKILL
bool
default n
config BUSYBOX_DEFAULT_SETSERIAL config BUSYBOX_DEFAULT_SETSERIAL
bool bool
default n default n
@ -1600,6 +1654,9 @@ config BUSYBOX_DEFAULT_UBIRSVOL
config BUSYBOX_DEFAULT_UBIUPDATEVOL config BUSYBOX_DEFAULT_UBIUPDATEVOL
bool bool
default n default n
config BUSYBOX_DEFAULT_WALL
bool
default n
config BUSYBOX_DEFAULT_ADJTIMEX config BUSYBOX_DEFAULT_ADJTIMEX
bool bool
default n default n
@ -1656,7 +1713,7 @@ config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
default n default n
config BUSYBOX_DEFAULT_FEATURE_CROND_DIR config BUSYBOX_DEFAULT_FEATURE_CROND_DIR
string string
default "/etc" default "/var/spool/cron"
config BUSYBOX_DEFAULT_CRONTAB config BUSYBOX_DEFAULT_CRONTAB
bool bool
default y default y
@ -1771,9 +1828,6 @@ config BUSYBOX_DEFAULT_RAIDAUTORUN
config BUSYBOX_DEFAULT_READAHEAD config BUSYBOX_DEFAULT_READAHEAD
bool bool
default n default n
config BUSYBOX_DEFAULT_RFKILL
bool
default n
config BUSYBOX_DEFAULT_RUNLEVEL config BUSYBOX_DEFAULT_RUNLEVEL
bool bool
default n default n
@ -1804,9 +1858,6 @@ config BUSYBOX_DEFAULT_TTYSIZE
config BUSYBOX_DEFAULT_VOLNAME config BUSYBOX_DEFAULT_VOLNAME
bool bool
default n default n
config BUSYBOX_DEFAULT_WALL
bool
default n
config BUSYBOX_DEFAULT_WATCHDOG config BUSYBOX_DEFAULT_WATCHDOG
bool bool
default n default n
@ -2152,6 +2203,9 @@ config BUSYBOX_DEFAULT_TUNCTL
config BUSYBOX_DEFAULT_FEATURE_TUNCTL_UG config BUSYBOX_DEFAULT_FEATURE_TUNCTL_UG
bool bool
default n default n
config BUSYBOX_DEFAULT_UDHCPC6
bool
default n
config BUSYBOX_DEFAULT_UDHCPD config BUSYBOX_DEFAULT_UDHCPD
bool bool
default n default n
@ -2254,6 +2308,9 @@ config BUSYBOX_DEFAULT_SENDMAIL
config BUSYBOX_DEFAULT_IOSTAT config BUSYBOX_DEFAULT_IOSTAT
bool bool
default n default n
config BUSYBOX_DEFAULT_LSOF
bool
default n
config BUSYBOX_DEFAULT_MPSTAT config BUSYBOX_DEFAULT_MPSTAT
bool bool
default n default n
@ -2275,6 +2332,27 @@ config BUSYBOX_DEFAULT_PWDX
config BUSYBOX_DEFAULT_SMEMCAP config BUSYBOX_DEFAULT_SMEMCAP
bool bool
default n default n
config BUSYBOX_DEFAULT_TOP
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOPMEM
bool
default n
config BUSYBOX_DEFAULT_UPTIME config BUSYBOX_DEFAULT_UPTIME
bool bool
default y default y
@ -2317,6 +2395,9 @@ config BUSYBOX_DEFAULT_PS
config BUSYBOX_DEFAULT_FEATURE_PS_WIDE config BUSYBOX_DEFAULT_FEATURE_PS_WIDE
bool bool
default y default y
config BUSYBOX_DEFAULT_FEATURE_PS_LONG
bool
default n
config BUSYBOX_DEFAULT_FEATURE_PS_TIME config BUSYBOX_DEFAULT_FEATURE_PS_TIME
bool bool
default n default n
@ -2332,27 +2413,6 @@ config BUSYBOX_DEFAULT_RENICE
config BUSYBOX_DEFAULT_BB_SYSCTL config BUSYBOX_DEFAULT_BB_SYSCTL
bool bool
default y default y
config BUSYBOX_DEFAULT_TOP
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
bool
default y
config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TOPMEM
bool
default n
config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
bool bool
default n default n
@ -2599,6 +2659,9 @@ config BUSYBOX_DEFAULT_LOGREAD
config BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING config BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
bool bool
default n default n
config BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
bool
default n
config BUSYBOX_DEFAULT_KLOGD config BUSYBOX_DEFAULT_KLOGD
bool bool
default n default n

View file

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=busybox PKG_NAME:=busybox
PKG_VERSION:=1.19.4 PKG_VERSION:=1.22.1
PKG_RELEASE:=7 PKG_RELEASE:=1
PKG_FLAGS:=essential PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \ PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/ http://distfiles.gentoo.org/distfiles/
PKG_MD5SUM:=9c0cae5a0379228e7b55e5b29528df8e PKG_MD5SUM:=337d1a15ab1cb1d4ed423168b1eb7d7e
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1

View file

@ -82,20 +82,21 @@ config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
endchoice endchoice
config BUSYBOX_CONFIG_SHOW_USAGE config BUSYBOX_CONFIG_SHOW_USAGE
bool "Show terse applet usage messages" bool "Show applet usage messages"
default BUSYBOX_DEFAULT_SHOW_USAGE default BUSYBOX_DEFAULT_SHOW_USAGE
help help
All BusyBox applets will show help messages when invoked with Enabling this option, BusyBox applets will show terse help messages
wrong arguments. You can turn off printing these terse usage when invoked with wrong arguments.
messages if you say no here. If you do not want to show any (helpful) usage message when
This will save you up to 7k. issuing wrong command syntax, you can say 'N' here,
saving approximately 7k.
config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
bool "Show verbose applet usage messages" bool "Show verbose applet usage messages"
default BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE default BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE
depends on BUSYBOX_CONFIG_SHOW_USAGE depends on BUSYBOX_CONFIG_SHOW_USAGE
help 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 is invoked with --help. This will add a lot of text to the
busybox binary. In the default configuration, this will add about busybox binary. In the default configuration, this will add about
13k, but it can add much more depending on your configuration. 13k, but it can add much more depending on your configuration.
@ -105,8 +106,8 @@ config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
default BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE default BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE
depends on BUSYBOX_CONFIG_SHOW_USAGE depends on BUSYBOX_CONFIG_SHOW_USAGE
help help
Store usage messages in compressed form, uncompress them on-the-fly Store usage messages in .bz compressed form, uncompress them
when <applet> --help is called. on-the-fly when <applet> --help is called.
If you have a really tiny busybox with few applets enabled (and If you have a really tiny busybox with few applets enabled (and
bunzip2 isn't one of them), the overhead of the decompressor might bunzip2 isn't one of them), the overhead of the decompressor might
@ -159,12 +160,13 @@ config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
Internal implementation is smaller. Internal implementation is smaller.
config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
bool "Check $LANG environment variable" bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
help help
With this option on, Unicode support is activated 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. Otherwise, Unicode support will be always enabled and active.
@ -308,7 +310,18 @@ config BUSYBOX_CONFIG_FEATURE_PIDFILE
default BUSYBOX_DEFAULT_FEATURE_PIDFILE default BUSYBOX_DEFAULT_FEATURE_PIDFILE
help help
This option makes some applets (e.g. crond, syslogd, inetd) write 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 BUSYBOX_CONFIG_PID_FILE_PATH
string "Path to directory for pidfile"
default BUSYBOX_DEFAULT_PID_FILE_PATH
depends on BUSYBOX_CONFIG_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 BUSYBOX_CONFIG_FEATURE_SUID config BUSYBOX_CONFIG_FEATURE_SUID
bool "Support for SUID/SGID handling" bool "Support for SUID/SGID handling"
@ -319,7 +332,7 @@ config BUSYBOX_CONFIG_FEATURE_SUID
root-level operations even when run by ordinary users root-level operations even when run by ordinary users
(for example, mounting of user mounts in fstab needs this). (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. 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
@ -598,12 +611,39 @@ config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
Native builds leave this empty. Native builds leave this empty.
config BUSYBOX_CONFIG_SYSROOT
string "Path to sysroot"
default BUSYBOX_DEFAULT_SYSROOT
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 BUSYBOX_CONFIG_EXTRA_CFLAGS config BUSYBOX_CONFIG_EXTRA_CFLAGS
string "Additional CFLAGS" string "Additional CFLAGS"
default BUSYBOX_DEFAULT_EXTRA_CFLAGS default BUSYBOX_DEFAULT_EXTRA_CFLAGS
help help
Additional CFLAGS to pass to the compiler verbatim. Additional CFLAGS to pass to the compiler verbatim.
config BUSYBOX_CONFIG_EXTRA_LDFLAGS
string "Additional LDFLAGS"
default BUSYBOX_DEFAULT_EXTRA_LDFLAGS
help
Additional LDFLAGS to pass to the linker verbatim.
config BUSYBOX_CONFIG_EXTRA_LDLIBS
string "Additional LDLIBS"
default BUSYBOX_DEFAULT_EXTRA_LDLIBS
help
Additional LDLIBS to pass to the linker with -l.
endmenu endmenu
menu 'Debugging Options' menu 'Debugging Options'

View file

@ -6,8 +6,6 @@
menu "Archival Utilities" menu "Archival Utilities"
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ
bool "Make tar, rpm, modprobe etc understand .xz data" bool "Make tar, rpm, modprobe etc understand .xz data"
default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_XZ default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_XZ
@ -33,10 +31,10 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
Make tar, rpm, modprobe etc understand .gz data. Make tar, rpm, modprobe etc understand .gz data.
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
bool "Make tar and gunzip understand .Z data" bool "tar, rpm, modprobe etc understand .Z data"
default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z
help help
Make tar and gunzip understand .Z data. Make tar, rpm, modprobe etc understand .Z data.
config BUSYBOX_CONFIG_AR config BUSYBOX_CONFIG_AR
bool "ar" bool "ar"
@ -77,7 +75,19 @@ config BUSYBOX_CONFIG_FEATURE_AR_CREATE
depends on BUSYBOX_CONFIG_AR depends on BUSYBOX_CONFIG_AR
help help
This enables archive creation (-c and -r) with busybox ar. This enables archive creation (-c and -r) with busybox ar.
config BUSYBOX_CONFIG_UNCOMPRESS
bool "uncompress"
default BUSYBOX_DEFAULT_UNCOMPRESS
help
uncompress is used to decompress archives created by compress.
Not much used anymore, replaced by gzip/gunzip.
config BUSYBOX_CONFIG_GUNZIP
bool "gunzip"
default BUSYBOX_DEFAULT_GUNZIP
help
gunzip is used to decompress archives created by gzip.
You can use the `-t' option to test the integrity of
an archive, without decompressing it.
config BUSYBOX_CONFIG_BUNZIP2 config BUSYBOX_CONFIG_BUNZIP2
bool "bunzip2" bool "bunzip2"
default BUSYBOX_DEFAULT_BUNZIP2 default BUSYBOX_DEFAULT_BUNZIP2
@ -90,7 +100,46 @@ config BUSYBOX_CONFIG_BUNZIP2
Unless you have a specific application which requires bunzip2, you Unless you have a specific application which requires bunzip2, you
should probably say N here. should probably say N here.
config BUSYBOX_CONFIG_UNLZMA
bool "unlzma"
default BUSYBOX_DEFAULT_UNLZMA
help
unlzma is a compression utility using the Lempel-Ziv-Markov chain
compression algorithm, and range coding. Compression
is generally considerably better than that achieved by the bzip2
compressors.
The BusyBox unlzma applet is limited to decompression only.
On an x86 system, this applet adds about 4K.
config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
bool "Optimize unlzma for speed"
default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
depends on BUSYBOX_CONFIG_UNLZMA
help
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
config BUSYBOX_CONFIG_LZMA
bool "Provide lzma alias which supports only unpacking"
default BUSYBOX_DEFAULT_LZMA
depends on BUSYBOX_CONFIG_UNLZMA
help
Enable this option if you want commands like "lzma -d" to work.
IOW: you'll get lzma applet, but it will always require -d option.
config BUSYBOX_CONFIG_UNXZ
bool "unxz"
default BUSYBOX_DEFAULT_UNXZ
help
unxz is a unlzma successor.
config BUSYBOX_CONFIG_XZ
bool "Provide xz alias which supports only unpacking"
default BUSYBOX_DEFAULT_XZ
depends on BUSYBOX_CONFIG_UNXZ
help
Enable this option if you want commands like "xz -d" to work.
IOW: you'll get xz applet, but it will always require -d option.
config BUSYBOX_CONFIG_BZIP2 config BUSYBOX_CONFIG_BZIP2
bool "bzip2" bool "bzip2"
default BUSYBOX_DEFAULT_BZIP2 default BUSYBOX_DEFAULT_BZIP2
@ -103,7 +152,6 @@ config BUSYBOX_CONFIG_BZIP2
Unless you have a specific application which requires bzip2, you Unless you have a specific application which requires bzip2, you
should probably say N here. should probably say N here.
config BUSYBOX_CONFIG_CPIO config BUSYBOX_CONFIG_CPIO
bool "cpio" bool "cpio"
default BUSYBOX_DEFAULT_CPIO default BUSYBOX_DEFAULT_CPIO
@ -132,7 +180,6 @@ config BUSYBOX_CONFIG_FEATURE_CPIO_P
depends on BUSYBOX_CONFIG_FEATURE_CPIO_O depends on BUSYBOX_CONFIG_FEATURE_CPIO_O
help help
Passthrough mode. Rarely used. Passthrough mode. Rarely used.
config BUSYBOX_CONFIG_DPKG config BUSYBOX_CONFIG_DPKG
bool "dpkg" bool "dpkg"
default BUSYBOX_DEFAULT_DPKG default BUSYBOX_DEFAULT_DPKG
@ -143,7 +190,6 @@ config BUSYBOX_CONFIG_DPKG
This implementation of dpkg has a number of limitations, This implementation of dpkg has a number of limitations,
you should use the official dpkg if possible. you should use the official dpkg if possible.
config BUSYBOX_CONFIG_DPKG_DEB config BUSYBOX_CONFIG_DPKG_DEB
bool "dpkg_deb" bool "dpkg_deb"
default BUSYBOX_DEFAULT_DPKG_DEB default BUSYBOX_DEFAULT_DPKG_DEB
@ -165,15 +211,6 @@ config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
"ar -p <deb> data.tar.gz | tar -zx". However it saves space as none "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
of the extra dpkg-deb, ar or tar options are needed, they are linked of the extra dpkg-deb, ar or tar options are needed, they are linked
to internally. to internally.
config BUSYBOX_CONFIG_GUNZIP
bool "gunzip"
default BUSYBOX_DEFAULT_GUNZIP
help
gunzip is used to decompress archives created by gzip.
You can use the `-t' option to test the integrity of
an archive, without decompressing it.
config BUSYBOX_CONFIG_GZIP config BUSYBOX_CONFIG_GZIP
bool "gzip" bool "gzip"
default BUSYBOX_DEFAULT_GZIP default BUSYBOX_DEFAULT_GZIP
@ -188,6 +225,17 @@ config BUSYBOX_CONFIG_FEATURE_GZIP_LONG_OPTIONS
help help
Enable use of long options, increases size by about 106 Bytes Enable use of long options, increases size by about 106 Bytes
config BUSYBOX_CONFIG_GZIP_FAST
int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
default BUSYBOX_DEFAULT_GZIP_FAST
range 0 2
depends on BUSYBOX_CONFIG_GZIP
help
Enable big memory options for gzip.
0: small buffers, small hash-tables
1: larger buffers, larger hash-tables
2: larger buffers, largest hash-tables
Larger models may give slightly better compression
config BUSYBOX_CONFIG_LZOP config BUSYBOX_CONFIG_LZOP
bool "lzop" bool "lzop"
default BUSYBOX_DEFAULT_LZOP default BUSYBOX_DEFAULT_LZOP
@ -202,19 +250,16 @@ config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
High levels (7,8,9) of lzop compression. These levels High levels (7,8,9) of lzop compression. These levels
are actually slower than gzip at equivalent compression ratios are actually slower than gzip at equivalent compression ratios
and take up 3.2K of code. and take up 3.2K of code.
config BUSYBOX_CONFIG_RPM2CPIO
bool "rpm2cpio"
default BUSYBOX_DEFAULT_RPM2CPIO
help
Converts a RPM file into a CPIO archive.
config BUSYBOX_CONFIG_RPM config BUSYBOX_CONFIG_RPM
bool "rpm" bool "rpm"
default BUSYBOX_DEFAULT_RPM default BUSYBOX_DEFAULT_RPM
help help
Mini RPM applet - queries and extracts RPM packages. Mini RPM applet - queries and extracts RPM packages.
config BUSYBOX_CONFIG_RPM2CPIO
bool "rpm2cpio"
default BUSYBOX_DEFAULT_RPM2CPIO
help
Converts a RPM file into a CPIO archive.
config BUSYBOX_CONFIG_TAR config BUSYBOX_CONFIG_TAR
bool "tar" bool "tar"
default BUSYBOX_DEFAULT_TAR default BUSYBOX_DEFAULT_TAR
@ -314,59 +359,6 @@ config BUSYBOX_CONFIG_FEATURE_TAR_SELINUX
help help
With this option busybox supports restoring SELinux labels With this option busybox supports restoring SELinux labels
when extracting files from tar archives. when extracting files from tar archives.
config BUSYBOX_CONFIG_UNCOMPRESS
bool "uncompress"
default BUSYBOX_DEFAULT_UNCOMPRESS
help
uncompress is used to decompress archives created by compress.
Not much used anymore, replaced by gzip/gunzip.
config BUSYBOX_CONFIG_UNLZMA
bool "unlzma"
default BUSYBOX_DEFAULT_UNLZMA
help
unlzma is a compression utility using the Lempel-Ziv-Markov chain
compression algorithm, and range coding. Compression
is generally considerably better than that achieved by the bzip2
compressors.
The BusyBox unlzma applet is limited to de-compression only.
On an x86 system, this applet adds about 4K.
Unless you have a specific application which requires unlzma, you
should probably say N here.
config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
bool "Optimize unlzma for speed"
default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
depends on BUSYBOX_CONFIG_UNLZMA
help
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
config BUSYBOX_CONFIG_LZMA
bool "Provide lzma alias which supports only unpacking"
default BUSYBOX_DEFAULT_LZMA
depends on BUSYBOX_CONFIG_UNLZMA
help
Enable this option if you want commands like "lzma -d" to work.
IOW: you'll get lzma applet, but it will always require -d option.
config BUSYBOX_CONFIG_UNXZ
bool "unxz"
default BUSYBOX_DEFAULT_UNXZ
help
unxz is a unlzma successor.
config BUSYBOX_CONFIG_XZ
bool "Provide xz alias which supports only unpacking"
default BUSYBOX_DEFAULT_XZ
depends on BUSYBOX_CONFIG_UNXZ
help
Enable this option if you want commands like "xz -d" to work.
IOW: you'll get xz applet, but it will always require -d option.
config BUSYBOX_CONFIG_UNZIP config BUSYBOX_CONFIG_UNZIP
bool "unzip" bool "unzip"
default BUSYBOX_DEFAULT_UNZIP default BUSYBOX_DEFAULT_UNZIP

View file

@ -7,7 +7,6 @@
menu "Console Utilities" menu "Console Utilities"
config BUSYBOX_CONFIG_CHVT config BUSYBOX_CONFIG_CHVT
bool "chvt" bool "chvt"
default BUSYBOX_DEFAULT_CHVT default BUSYBOX_DEFAULT_CHVT

View file

@ -58,6 +58,12 @@ config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
With this option off, 'date DATE' is 'date -s DATE' support With this option off, 'date DATE' is 'date -s DATE' support
the same format. With it on, 'date DATE' additionally supports the same format. With it on, 'date DATE' additionally supports
MMDDhhmm[[YY]YY][.ss] format. MMDDhhmm[[YY]YY][.ss] format.
config BUSYBOX_CONFIG_HOSTID
bool "hostid"
default BUSYBOX_DEFAULT_HOSTID
help
hostid prints the numeric identifier (in hexadecimal) for
the current host.
config BUSYBOX_CONFIG_ID config BUSYBOX_CONFIG_ID
bool "id" bool "id"
default BUSYBOX_DEFAULT_ID default BUSYBOX_DEFAULT_ID
@ -88,6 +94,21 @@ config BUSYBOX_CONFIG_TOUCH
help help
touch is used to create or change the access and/or touch is used to create or change the access and/or
modification timestamp of specified files. modification timestamp of specified files.
config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
bool "Add support for -h"
default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
depends on BUSYBOX_CONFIG_TOUCH
help
Enable touch to have the -h option.
This requires libc support for lutimes() function.
config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
bool "Add support for SUSV3 features (-d -t -r)"
default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
depends on BUSYBOX_CONFIG_TOUCH
help
Enable touch to use a reference file or a given date/time argument.
config BUSYBOX_CONFIG_TR config BUSYBOX_CONFIG_TR
bool "tr" bool "tr"
default BUSYBOX_DEFAULT_TR default BUSYBOX_DEFAULT_TR
@ -393,13 +414,6 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_HEAD
help help
This enables the head options (-c, -q, and -v). This enables the head options (-c, -q, and -v).
config BUSYBOX_CONFIG_HOSTID
bool "hostid"
default BUSYBOX_DEFAULT_HOSTID
help
hostid prints the numeric identifier (in hexadecimal) for
the current host.
config BUSYBOX_CONFIG_INSTALL config BUSYBOX_CONFIG_INSTALL
bool "install" bool "install"
default BUSYBOX_DEFAULT_INSTALL default BUSYBOX_DEFAULT_INSTALL
@ -645,6 +659,12 @@ config BUSYBOX_CONFIG_SHA512SUM
help help
Compute and check SHA512 message digest Compute and check SHA512 message digest
config BUSYBOX_CONFIG_SHA3SUM
bool "sha3sum"
default BUSYBOX_DEFAULT_SHA3SUM
help
Compute and check SHA3 (512-bit) message digest
config BUSYBOX_CONFIG_SLEEP config BUSYBOX_CONFIG_SLEEP
bool "sleep" bool "sleep"
default BUSYBOX_DEFAULT_SLEEP default BUSYBOX_DEFAULT_SLEEP
@ -897,13 +917,13 @@ config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE
help help
Allow df, du, and ls to have human readable output. Allow df, du, and ls to have human readable output.
comment "Common options for md5sum, sha1sum, sha256sum, sha512sum" comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
bool "Enable -c, -s and -w options" bool "Enable -c, -s and -w options"
default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
help help
Enabling the -c options allows files to be checked Enabling the -c options allows files to be checked
against pre-calculated hash values. against pre-calculated hash values.

View file

@ -7,7 +7,6 @@
menu "Debian Utilities" menu "Debian Utilities"
config BUSYBOX_CONFIG_MKTEMP config BUSYBOX_CONFIG_MKTEMP
bool "mktemp" bool "mktemp"
default BUSYBOX_DEFAULT_MKTEMP default BUSYBOX_DEFAULT_MKTEMP

View file

@ -7,7 +7,6 @@
menu "Linux Ext2 FS Progs" menu "Linux Ext2 FS Progs"
config BUSYBOX_CONFIG_CHATTR config BUSYBOX_CONFIG_CHATTR
bool "chattr" bool "chattr"
default BUSYBOX_DEFAULT_CHATTR default BUSYBOX_DEFAULT_CHATTR

View file

@ -7,7 +7,6 @@
menu "Linux Ext2 FS Progs" menu "Linux Ext2 FS Progs"
config BUSYBOX_CONFIG_CHATTR config BUSYBOX_CONFIG_CHATTR
bool "chattr" bool "chattr"
default BUSYBOX_DEFAULT_CHATTR default BUSYBOX_DEFAULT_CHATTR

View file

@ -6,11 +6,77 @@
menu "Editors" menu "Editors"
config BUSYBOX_CONFIG_AWK
bool "awk"
default BUSYBOX_DEFAULT_AWK
help
Awk is used as a pattern scanning and processing language. This is
the BusyBox implementation of that programming language.
config BUSYBOX_CONFIG_FEATURE_AWK_LIBM
bool "Enable math functions (requires libm)"
default BUSYBOX_DEFAULT_FEATURE_AWK_LIBM
depends on BUSYBOX_CONFIG_AWK
help
Enable math functions of the Awk programming language.
NOTE: This will require libm to be present for linking.
config BUSYBOX_CONFIG_FEATURE_AWK_GNU_EXTENSIONS
bool "Enable a few GNU extensions"
default BUSYBOX_DEFAULT_FEATURE_AWK_GNU_EXTENSIONS
depends on BUSYBOX_CONFIG_AWK
help
Enable a few features from gawk:
* command line option -e AWK_PROGRAM
* simultaneous use of -f and -e on the command line.
This enables the use of awk library files.
Ex: awk -f mylib.awk -e '{print myfunction($1);}' ...
config BUSYBOX_CONFIG_CMP
bool "cmp"
default BUSYBOX_DEFAULT_CMP
help
cmp is used to compare two files and returns the result
to standard output.
config BUSYBOX_CONFIG_DIFF
bool "diff"
default BUSYBOX_DEFAULT_DIFF
help
diff compares two files or directories and outputs the
differences between them in a form that can be given to
the patch command.
config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_DIFF_LONG_OPTIONS
depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options.
config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
bool "Enable directory support"
default BUSYBOX_DEFAULT_FEATURE_DIFF_DIR
depends on BUSYBOX_CONFIG_DIFF
help
This option enables support for directory and subdirectory
comparison.
config BUSYBOX_CONFIG_ED
bool "ed"
default BUSYBOX_DEFAULT_ED
help
The original 1970's Unix text editor, from the days of teletypes.
Small, simple, evil. Part of SUSv3. If you're not already using
this, you don't need it.
config BUSYBOX_CONFIG_PATCH config BUSYBOX_CONFIG_PATCH
bool "patch" bool "patch"
default BUSYBOX_DEFAULT_PATCH default BUSYBOX_DEFAULT_PATCH
help help
Apply a unified diff formatted patch. Apply a unified diff formatted patch.
config BUSYBOX_CONFIG_SED
bool "sed"
default BUSYBOX_DEFAULT_SED
help
sed is used to perform text transformations on a file
or input from a pipeline.
config BUSYBOX_CONFIG_VI config BUSYBOX_CONFIG_VI
bool "vi" bool "vi"
default BUSYBOX_DEFAULT_VI default BUSYBOX_DEFAULT_VI
@ -127,74 +193,6 @@ config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
This is not clean but helps a lot on serial lines and such. This is not clean but helps a lot on serial lines and such.
config BUSYBOX_CONFIG_FEATURE_VI_OPTIMIZE_CURSOR
bool "Optimize cursor movement"
default BUSYBOX_DEFAULT_FEATURE_VI_OPTIMIZE_CURSOR
depends on BUSYBOX_CONFIG_VI
help
This will make the cursor movement faster, but requires more memory
and it makes the applet a tiny bit larger.
config BUSYBOX_CONFIG_AWK
bool "awk"
default BUSYBOX_DEFAULT_AWK
help
Awk is used as a pattern scanning and processing language. This is
the BusyBox implementation of that programming language.
config BUSYBOX_CONFIG_FEATURE_AWK_LIBM
bool "Enable math functions (requires libm)"
default BUSYBOX_DEFAULT_FEATURE_AWK_LIBM
depends on BUSYBOX_CONFIG_AWK
help
Enable math functions of the Awk programming language.
NOTE: This will require libm to be present for linking.
config BUSYBOX_CONFIG_CMP
bool "cmp"
default BUSYBOX_DEFAULT_CMP
help
cmp is used to compare two files and returns the result
to standard output.
config BUSYBOX_CONFIG_DIFF
bool "diff"
default BUSYBOX_DEFAULT_DIFF
help
diff compares two files or directories and outputs the
differences between them in a form that can be given to
the patch command.
config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_DIFF_LONG_OPTIONS
depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options.
config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
bool "Enable directory support"
default BUSYBOX_DEFAULT_FEATURE_DIFF_DIR
depends on BUSYBOX_CONFIG_DIFF
help
This option enables support for directory and subdirectory
comparison.
config BUSYBOX_CONFIG_ED
bool "ed"
default BUSYBOX_DEFAULT_ED
help
The original 1970's Unix text editor, from the days of teletypes.
Small, simple, evil. Part of SUSv3. If you're not already using
this, you don't need it.
config BUSYBOX_CONFIG_SED
bool "sed"
default BUSYBOX_DEFAULT_SED
help
sed is used to perform text transformations on a file
or input from a pipeline.
config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands" bool "Allow vi and awk to execute shell commands"
default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC

View file

@ -28,9 +28,9 @@ config BUSYBOX_CONFIG_PASSWORD_MINLEN
help help
Minimum allowable password length. Minimum allowable password length.
config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED config BUSYBOX_CONFIG_MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)" int "MD5: Trade bytes for speed (0:fast, 3:slow)"
default BUSYBOX_DEFAULT_MD5_SIZE_VS_SPEED default BUSYBOX_DEFAULT_MD5_SMALL
range 0 3 range 0 3
help help
Trade binary size versus speed for the md5sum algorithm. Trade binary size versus speed for the md5sum algorithm.
@ -42,6 +42,16 @@ config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED
2 3.0 5088 2 3.0 5088
3 (smallest) 5.1 4912 3 (smallest) 5.1 4912
config BUSYBOX_CONFIG_SHA3_SMALL
int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
default BUSYBOX_DEFAULT_SHA3_SMALL
range 0 1
help
Trade binary size versus speed for the sha3sum algorithm.
SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
config BUSYBOX_CONFIG_FEATURE_FAST_TOP config BUSYBOX_CONFIG_FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)" bool "Faster /proc scanning code (+100 bytes)"
default BUSYBOX_DEFAULT_FEATURE_FAST_TOP default BUSYBOX_DEFAULT_FEATURE_FAST_TOP
@ -108,6 +118,13 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
help help
Enable history saving in shells. Enable history saving in shells.
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
bool "Save history on shell exit, not after every command"
default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
help
Save history on shell exit, not after every command.
config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
bool "Reverse history search" bool "Reverse history search"
default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
@ -198,8 +215,8 @@ config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
However, some systems do not mount anything on /. However, some systems do not mount anything on /.
If you need to configure busybox for one of these systems, If you need to configure busybox for one of these systems,
you may find useful to turn this option off to make df show you may find it useful to turn this option off to make df show
initramfs statistic. initramfs statistics.
Otherwise, choose Y. Otherwise, choose Y.

View file

@ -216,6 +216,17 @@ config BUSYBOX_CONFIG_LOGIN
Note that Busybox binary must be setuid root for this applet to Note that Busybox binary must be setuid root for this applet to
work properly. work properly.
config BUSYBOX_CONFIG_LOGIN_SESSION_AS_CHILD
bool "Run logged in session in a child process"
default BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD if BUSYBOX_CONFIG_PAM
depends on BUSYBOX_CONFIG_LOGIN
help
Run the logged in session in a child process. This allows
login to clean up things such as utmp entries or PAM sessions
when the login session is complete. If you use PAM, you
almost always would want this to be set to Y, else PAM session
will not be cleaned up.
config BUSYBOX_CONFIG_PAM config BUSYBOX_CONFIG_PAM
bool "Support for PAM (Pluggable Authentication Modules)" bool "Support for PAM (Pluggable Authentication Modules)"
default BUSYBOX_DEFAULT_PAM default BUSYBOX_DEFAULT_PAM
@ -283,6 +294,13 @@ config BUSYBOX_CONFIG_CHPASSWD
Reads a file of user name and password pairs from standard input Reads a file of user name and password pairs from standard input
and uses this information to update a group of existing users. and uses this information to update a group of existing users.
config BUSYBOX_CONFIG_FEATURE_DEFAULT_PASSWD_ALGO
string "Default password encryption method (passwd -a, cryptpw -m parameter)"
default BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
depends on BUSYBOX_CONFIG_PASSWD || BUSYBOX_CONFIG_CRYPTPW
help
Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
config BUSYBOX_CONFIG_SU config BUSYBOX_CONFIG_SU
bool "su" bool "su"
default BUSYBOX_DEFAULT_SU default BUSYBOX_DEFAULT_SU

View file

@ -2,7 +2,6 @@
menu "Mail Utilities" menu "Mail Utilities"
config BUSYBOX_CONFIG_MAKEMIME config BUSYBOX_CONFIG_MAKEMIME
bool "makemime" bool "makemime"
default BUSYBOX_DEFAULT_MAKEMIME default BUSYBOX_DEFAULT_MAKEMIME

View file

@ -36,14 +36,11 @@ config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
brackets, facilitating programming. brackets, facilitating programming.
config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
bool "Enable extra flags" bool "Enable -m/-M"
default BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS default BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
depends on BUSYBOX_CONFIG_LESS depends on BUSYBOX_CONFIG_LESS
help help
The extra flags provided do the following: The -M/-m flag enables a more sophisticated status line.
The -M flag enables a more sophisticated status line.
The -m flag enables a simpler status line with a percentage.
config BUSYBOX_CONFIG_FEATURE_LESS_MARKS config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
bool "Enable marks" bool "Enable marks"
@ -106,6 +103,18 @@ config BUSYBOX_CONFIG_NANDDUMP
select BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_PLATFORM_LINUX
help help
Dump the content of raw NAND chip Dump the content of raw NAND chip
config BUSYBOX_CONFIG_RFKILL
bool "rfkill"
default BUSYBOX_DEFAULT_RFKILL # doesn't build on Ubuntu 9.04
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable/disable wireless devices.
rfkill list : list all wireless devices
rfkill list bluetooth : list all bluetooth devices
rfkill list 1 : list device corresponding to the given index
rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
config BUSYBOX_CONFIG_SETSERIAL config BUSYBOX_CONFIG_SETSERIAL
bool "setserial" bool "setserial"
default BUSYBOX_DEFAULT_SETSERIAL default BUSYBOX_DEFAULT_SETSERIAL
@ -153,6 +162,12 @@ config BUSYBOX_CONFIG_UBIUPDATEVOL
select BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_PLATFORM_LINUX
help help
Update a UBI volume. Update a UBI volume.
config BUSYBOX_CONFIG_WALL
bool "wall"
default BUSYBOX_DEFAULT_WALL
depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
Write a message to all users that are logged in.
config BUSYBOX_CONFIG_ADJTIMEX config BUSYBOX_CONFIG_ADJTIMEX
bool "adjtimex" bool "adjtimex"
@ -656,18 +671,6 @@ config BUSYBOX_CONFIG_READAHEAD
As readahead(2) blocks until each file has been read, it is best to As readahead(2) blocks until each file has been read, it is best to
run this applet as a background job. run this applet as a background job.
config BUSYBOX_CONFIG_RFKILL
bool "rfkill"
default BUSYBOX_DEFAULT_RFKILL # doesn't build on Ubuntu 9.04
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable/disable wireless devices.
rfkill list : list all wireless devices
rfkill list bluetooth : list all bluetooth devices
rfkill list 1 : list device corresponding to the given index
rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
config BUSYBOX_CONFIG_RUNLEVEL config BUSYBOX_CONFIG_RUNLEVEL
bool "runlevel" bool "runlevel"
default BUSYBOX_DEFAULT_RUNLEVEL default BUSYBOX_DEFAULT_RUNLEVEL
@ -744,13 +747,6 @@ config BUSYBOX_CONFIG_VOLNAME
help help
Prints a CD-ROM volume name. Prints a CD-ROM volume name.
config BUSYBOX_CONFIG_WALL
bool "wall"
default BUSYBOX_DEFAULT_WALL
depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
Write a message to all users that are logged in.
config BUSYBOX_CONFIG_WATCHDOG config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog" bool "watchdog"
default BUSYBOX_DEFAULT_WATCHDOG default BUSYBOX_DEFAULT_WATCHDOG

View file

@ -253,7 +253,7 @@ config BUSYBOX_CONFIG_FEATURE_MODUTILS_SYMBOLS
config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
string "Default directory containing modules" string "Default directory containing modules"
default BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR default BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR
depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO
help help
Directory that contains kernel modules. Directory that contains kernel modules.
Defaults to "/lib/modules" Defaults to "/lib/modules"

View file

@ -55,7 +55,7 @@ config BUSYBOX_CONFIG_NC_SERVER
Allow netcat to act as a server. Allow netcat to act as a server.
config BUSYBOX_CONFIG_NC_EXTRA config BUSYBOX_CONFIG_NC_EXTRA
bool "Netcat extensions (-eiw and filename)" bool "Netcat extensions (-eiw and -f FILE)"
default BUSYBOX_DEFAULT_NC_EXTRA default BUSYBOX_DEFAULT_NC_EXTRA
depends on BUSYBOX_CONFIG_NC depends on BUSYBOX_CONFIG_NC
help help
@ -71,7 +71,7 @@ config BUSYBOX_CONFIG_NC_110_COMPAT
This option makes nc closely follow original nc-1.10. This option makes nc closely follow original nc-1.10.
The code is about 2.5k bigger. It enables The code is about 2.5k bigger. It enables
-s ADDR, -n, -u, -v, -o FILE, -z options, but loses -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
busybox-specific extensions: -f FILE and -ll. busybox-specific extensions: -f FILE.
config BUSYBOX_CONFIG_PING config BUSYBOX_CONFIG_PING
bool "ping" bool "ping"
default BUSYBOX_DEFAULT_PING default BUSYBOX_DEFAULT_PING
@ -292,14 +292,22 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_BASIC_AUTH
help help
Utilizes password settings from /etc/httpd.conf for basic Utilizes password settings from /etc/httpd.conf for basic
authentication on a per url basis. authentication on a per url basis.
Example for httpd.conf file:
/adm:toor:PaSsWd
config BUSYBOX_CONFIG_FEATURE_HTTPD_AUTH_MD5 config BUSYBOX_CONFIG_FEATURE_HTTPD_AUTH_MD5
bool "Support MD5 crypted passwords for http Authentication" bool "Support MD5 crypted passwords for http Authentication"
default BUSYBOX_DEFAULT_FEATURE_HTTPD_AUTH_MD5 default BUSYBOX_DEFAULT_FEATURE_HTTPD_AUTH_MD5
depends on BUSYBOX_CONFIG_FEATURE_HTTPD_BASIC_AUTH depends on BUSYBOX_CONFIG_FEATURE_HTTPD_BASIC_AUTH
help help
Enables basic per URL authentication from /etc/httpd.conf Enables encrypted passwords, and wildcard user/passwords
using md5 passwords. in httpd.conf file.
User '*' means 'any system user name is ok',
password of '*' means 'use system password for this user'
Examples:
/adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
/adm:root:*
/wiki:*:*
config BUSYBOX_CONFIG_FEATURE_HTTPD_CGI config BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
bool "Support Common Gateway Interface (CGI)" bool "Support Common Gateway Interface (CGI)"
@ -316,8 +324,8 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
help help
This option enables support for running scripts through an This option enables support for running scripts through an
interpreter. Turn this on if you want PHP scripts to work interpreter. Turn this on if you want PHP scripts to work
properly. You need to supply an additional line in your httpd properly. You need to supply an additional line in your
config file: httpd.conf file:
*.php:/path/to/your/php *.php:/path/to/your/php
config BUSYBOX_CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV config BUSYBOX_CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
@ -1036,8 +1044,8 @@ config BUSYBOX_CONFIG_WGET
bool "wget" bool "wget"
default BUSYBOX_DEFAULT_WGET default BUSYBOX_DEFAULT_WGET
help help
wget is a utility for non-interactive download of files from HTTP, wget is a utility for non-interactive download of files from HTTP
HTTPS, and FTP servers. and FTP servers.
config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
bool "Enable a nifty process meter (+2k)" bool "Enable a nifty process meter (+2k)"
@ -1061,16 +1069,18 @@ config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
Support long options for the wget applet. Support long options for the wget applet.
config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
bool "Enable read timeout option -T SEC" bool "Enable timeout option -T SEC"
default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
depends on BUSYBOX_CONFIG_WGET depends on BUSYBOX_CONFIG_WGET
help help
Supports network read timeout for wget, so that wget will give Supports network read and connect timeouts for wget,
up and timeout when reading network data, through the -T command so that wget will give up and timeout, through the -T
line option. Currently only network data read timeout is command line option.
supported (i.e., timeout is not applied to the DNS nor TCP
connection initialization). When FEATURE_WGET_LONG_OPTIONS is Currently only connect and network data read timeout are
also enabled, the --timeout option will work in addition to -T. supported (i.e., timeout is not applied to the DNS query). When
FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
will work in addition to -T.
config BUSYBOX_CONFIG_ZCIP config BUSYBOX_CONFIG_ZCIP
bool "zcip" bool "zcip"

View file

@ -4,7 +4,12 @@
# see scripts/kbuild/config-language.txt. # see scripts/kbuild/config-language.txt.
# #
config BUSYBOX_CONFIG_UDHCPC6
bool "udhcp client for DHCPv6 (udhcpc6)"
default BUSYBOX_DEFAULT_UDHCPC6 # not yet ready
depends on BUSYBOX_CONFIG_FEATURE_IPV6
help
udhcpc6 is a DHCPv6 client
config BUSYBOX_CONFIG_UDHCPD config BUSYBOX_CONFIG_UDHCPD
bool "udhcp server (udhcpd)" bool "udhcp server (udhcpd)"

View file

@ -7,7 +7,6 @@
menu "Print Utilities" menu "Print Utilities"
config BUSYBOX_CONFIG_LPD config BUSYBOX_CONFIG_LPD
bool "lpd" bool "lpd"
default BUSYBOX_DEFAULT_LPD default BUSYBOX_DEFAULT_LPD

View file

@ -11,6 +11,12 @@ config BUSYBOX_CONFIG_IOSTAT
default BUSYBOX_DEFAULT_IOSTAT default BUSYBOX_DEFAULT_IOSTAT
help help
Report CPU and I/O statistics Report CPU and I/O statistics
config BUSYBOX_CONFIG_LSOF
bool "lsof"
default BUSYBOX_DEFAULT_LSOF
help
Show open files in the format of:
PID <TAB> /path/to/executable <TAB> /path/to/opened/file
config BUSYBOX_CONFIG_MPSTAT config BUSYBOX_CONFIG_MPSTAT
bool "mpstat" bool "mpstat"
default BUSYBOX_DEFAULT_MPSTAT default BUSYBOX_DEFAULT_MPSTAT
@ -47,6 +53,59 @@ config BUSYBOX_CONFIG_SMEMCAP
help help
smemcap is a tool for capturing process data for smem, smemcap is a tool for capturing process data for smem,
a memory usage statistic tool. a memory usage statistic tool.
config BUSYBOX_CONFIG_TOP
bool "top"
default BUSYBOX_DEFAULT_TOP
help
The top program provides a dynamic real-time view of a running
system.
config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
bool "Show CPU per-process usage percentage"
default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
depends on BUSYBOX_CONFIG_TOP
help
Make top display CPU usage for each process.
This adds about 2k.
config BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
bool "Show CPU global usage percentage"
default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
Makes top display "CPU: NN% usr NN% sys..." line.
This adds about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU
bool "SMP CPU usage display ('c' key)"
default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
help
Allow 'c' key to switch between individual/cumulative CPU stats
This adds about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS
bool "Show 1/10th of a percent in CPU/mem statistics"
default BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
Show 1/10th of a percent in CPU/mem statistics.
This adds about 0.3k.
config BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS
bool "Show CPU process runs on ('j' field)"
default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
depends on BUSYBOX_CONFIG_TOP
help
Show CPU where process was last found running on.
This is the 'j' field.
config BUSYBOX_CONFIG_FEATURE_TOPMEM
bool "Topmem command ('s' key)"
default BUSYBOX_DEFAULT_FEATURE_TOPMEM
depends on BUSYBOX_CONFIG_TOP
help
Enable 's' in top (gives lots of memory info).
config BUSYBOX_CONFIG_UPTIME config BUSYBOX_CONFIG_UPTIME
bool "uptime" bool "uptime"
default BUSYBOX_DEFAULT_UPTIME default BUSYBOX_DEFAULT_UPTIME
@ -146,12 +205,20 @@ config BUSYBOX_CONFIG_PS
config BUSYBOX_CONFIG_FEATURE_PS_WIDE config BUSYBOX_CONFIG_FEATURE_PS_WIDE
bool "Enable wide output option (-w)" bool "Enable wide output option (-w)"
default BUSYBOX_DEFAULT_FEATURE_PS_WIDE default BUSYBOX_DEFAULT_FEATURE_PS_WIDE
depends on BUSYBOX_CONFIG_PS depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help help
Support argument 'w' for wide output. Support argument 'w' for wide output.
If given once, 132 chars are printed, and if given more If given once, 132 chars are printed, and if given more
than once, the length is unlimited. than once, the length is unlimited.
config BUSYBOX_CONFIG_FEATURE_PS_LONG
bool "Enable long output option (-l)"
default BUSYBOX_DEFAULT_FEATURE_PS_LONG
depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help
Support argument 'l' for long output.
Adds fields PPID, RSS, START, TIME & TTY
config BUSYBOX_CONFIG_FEATURE_PS_TIME config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output" bool "Enable time and elapsed time output"
default BUSYBOX_DEFAULT_FEATURE_PS_TIME default BUSYBOX_DEFAULT_FEATURE_PS_TIME
@ -188,60 +255,6 @@ config BUSYBOX_CONFIG_BB_SYSCTL
help help
Configure kernel parameters at runtime. Configure kernel parameters at runtime.
config BUSYBOX_CONFIG_TOP
bool "top"
default BUSYBOX_DEFAULT_TOP
help
The top program provides a dynamic real-time view of a running
system.
config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
bool "Show CPU per-process usage percentage"
default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
depends on BUSYBOX_CONFIG_TOP
help
Make top display CPU usage for each process.
This adds about 2k.
config BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
bool "Show CPU global usage percentage"
default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
Makes top display "CPU: NN% usr NN% sys..." line.
This adds about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU
bool "SMP CPU usage display ('c' key)"
default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
help
Allow 'c' key to switch between individual/cumulative CPU stats
This adds about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS
bool "Show 1/10th of a percent in CPU/mem statistics"
default BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
Show 1/10th of a percent in CPU/mem statistics.
This adds about 0.3k.
config BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS
bool "Show CPU process runs on ('j' field)"
default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
depends on BUSYBOX_CONFIG_TOP
help
Show CPU where process was last found running on.
This is the 'j' field.
config BUSYBOX_CONFIG_FEATURE_TOPMEM
bool "Topmem command ('s' key)"
default BUSYBOX_DEFAULT_FEATURE_TOPMEM
depends on BUSYBOX_CONFIG_TOP
help
Enable 's' in top (gives lots of memory info).
config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
bool "Support for showing threads in ps/pstree/top" bool "Support for showing threads in ps/pstree/top"
default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS

View file

@ -7,7 +7,6 @@
menu "Runit Utilities" menu "Runit Utilities"
config BUSYBOX_CONFIG_RUNSV config BUSYBOX_CONFIG_RUNSV
bool "runsv" bool "runsv"
default BUSYBOX_DEFAULT_RUNSV default BUSYBOX_DEFAULT_RUNSV

View file

@ -8,7 +8,6 @@ menu "SELinux Utilities"
depends on BUSYBOX_CONFIG_SELINUX depends on BUSYBOX_CONFIG_SELINUX
config BUSYBOX_CONFIG_CHCON config BUSYBOX_CONFIG_CHCON
bool "chcon" bool "chcon"
default BUSYBOX_DEFAULT_CHCON default BUSYBOX_DEFAULT_CHCON

View file

@ -156,6 +156,9 @@ config BUSYBOX_CONFIG_CTTYHACK
# exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1' # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
Starting getty on a controlling tty from a shell script:
# getty 115200 $(cttyhack)
config BUSYBOX_CONFIG_HUSH config BUSYBOX_CONFIG_HUSH
bool "hush" bool "hush"
default BUSYBOX_DEFAULT_HUSH default BUSYBOX_DEFAULT_HUSH
@ -292,6 +295,7 @@ config BUSYBOX_CONFIG_MSH
msh is deprecated and will be removed, please migrate to hush. msh is deprecated and will be removed, please migrate to hush.
choice choice
prompt "Choose which shell is aliased to 'sh' name" prompt "Choose which shell is aliased to 'sh' name"
default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH

View file

@ -7,7 +7,6 @@
menu "System Logging Utilities" menu "System Logging Utilities"
config BUSYBOX_CONFIG_SYSLOGD config BUSYBOX_CONFIG_SYSLOGD
bool "syslogd" bool "syslogd"
default BUSYBOX_DEFAULT_SYSLOGD default BUSYBOX_DEFAULT_SYSLOGD
@ -114,6 +113,19 @@ config BUSYBOX_CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
from circular buffer, minimizing semaphore from circular buffer, minimizing semaphore
contention at some minor memory expense. contention at some minor memory expense.
config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
bool "Linux kernel printk buffer support"
default BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
depends on BUSYBOX_CONFIG_SYSLOGD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
When you enable this feature, the syslogd utility will
write system log message to the Linux kernel's printk buffer.
This can be used as a smaller alternative to the syslogd IPC
support, as klogd and logread aren't needed.
NOTICE: Syslog facilities in log entries needs kernel 3.5+.
config BUSYBOX_CONFIG_KLOGD config BUSYBOX_CONFIG_KLOGD
bool "klogd" bool "klogd"
default BUSYBOX_DEFAULT_KLOGD default BUSYBOX_DEFAULT_KLOGD
@ -124,6 +136,9 @@ config BUSYBOX_CONFIG_KLOGD
you wish to record the messages produced by the kernel, you wish to record the messages produced by the kernel,
you should enable this option. you should enable this option.
comment "klogd should not be used together with syslog to kernel printk buffer"
depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
bool "Use the klogctl() interface" bool "Use the klogctl() interface"
default BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL default BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL

View file

@ -11,6 +11,69 @@ config BUSYBOX_CONFIG_BLOCKDEV
default BUSYBOX_DEFAULT_BLOCKDEV default BUSYBOX_DEFAULT_BLOCKDEV
help help
Performs some ioctls with block devices. Performs some ioctls with block devices.
config BUSYBOX_CONFIG_FSTRIM
bool "fstrim"
default BUSYBOX_DEFAULT_FSTRIM
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Discard unused blocks on a mounted filesystem.
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default BUSYBOX_DEFAULT_MDEV
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
mdev is a mini-udev implementation for dynamically creating device
nodes in the /dev directory.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_CONF
bool "Support /etc/mdev.conf"
default BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
depends on BUSYBOX_CONFIG_MDEV
help
Add support for the mdev config file to control ownership and
permissions of the device nodes.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
bool "Support subdirs/symlinks"
default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
help
Add support for renaming devices and creating symlinks.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
bool "Support regular expressions substitutions when renaming device"
default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
help
Add support for regular expressions substitutions when renaming
device.
config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
bool "Support command execution at device addition/removal"
default BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
help
This adds support for an optional field to /etc/mdev.conf for
executing commands when devices are created/removed.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
bool "Support loading of firmwares"
default BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
depends on BUSYBOX_CONFIG_MDEV
help
Some devices need to load firmware before they can be usable.
These devices will request userspace look up the files in
/lib/firmware/ and if it exists, send it to the kernel for
loading into the hardware.
config BUSYBOX_CONFIG_REV config BUSYBOX_CONFIG_REV
bool "rev" bool "rev"
default BUSYBOX_DEFAULT_REV default BUSYBOX_DEFAULT_REV
@ -414,64 +477,6 @@ config BUSYBOX_CONFIG_LSUSB
This version uses sysfs (/sys/bus/usb/devices) only. This version uses sysfs (/sys/bus/usb/devices) only.
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default BUSYBOX_DEFAULT_MDEV
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
mdev is a mini-udev implementation for dynamically creating device
nodes in the /dev directory.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_CONF
bool "Support /etc/mdev.conf"
default BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
depends on BUSYBOX_CONFIG_MDEV
help
Add support for the mdev config file to control ownership and
permissions of the device nodes.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
bool "Support subdirs/symlinks"
default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
help
Add support for renaming devices and creating symlinks.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
bool "Support regular expressions substitutions when renaming device"
default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
help
Add support for regular expressions substitutions when renaming
device.
config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
bool "Support command execution at device addition/removal"
default BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
help
This adds support for an optional field to /etc/mdev.conf for
executing commands when devices are created/removed.
For more information, please see docs/mdev.txt
config BUSYBOX_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
bool "Support loading of firmwares"
default BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
depends on BUSYBOX_CONFIG_MDEV
help
Some devices need to load firmware before they can be usable.
These devices will request userspace look up the files in
/lib/firmware/ and if it exists, send it to the kernel for
loading into the hardware.
config BUSYBOX_CONFIG_MKSWAP config BUSYBOX_CONFIG_MKSWAP
bool "mkswap" bool "mkswap"
default BUSYBOX_DEFAULT_MKSWAP default BUSYBOX_DEFAULT_MKSWAP
@ -553,13 +558,18 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
This also enables label or uuid support for swapon. This also enables label or uuid support for swapon.
config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
bool "Support mounting NFS file systems" bool "Support mounting NFS file systems on Linux < 2.6.23"
default BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS default BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
depends on BUSYBOX_CONFIG_MOUNT depends on BUSYBOX_CONFIG_MOUNT
select BUSYBOX_CONFIG_FEATURE_HAVE_RPC select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
select BUSYBOX_CONFIG_FEATURE_SYSLOG select BUSYBOX_CONFIG_FEATURE_SYSLOG
help help
Enable mounting of NFS file systems. Enable mounting of NFS file systems on Linux kernels prior
to version 2.6.23. Note that in this case mounting of NFS
over IPv6 will not be possible.
Note that this option links in RPC support from libc,
which is rather large (~10 kbytes on uclibc).
config BUSYBOX_CONFIG_FEATURE_MOUNT_CIFS config BUSYBOX_CONFIG_FEATURE_MOUNT_CIFS
bool "Support mounting CIFS/SMB file systems" bool "Support mounting CIFS/SMB file systems"
@ -762,224 +772,6 @@ config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
About the only reason to use this is if you've removed /proc from About the only reason to use this is if you've removed /proc from
your kernel. your kernel.
config BUSYBOX_CONFIG_VOLUMEID source package/utils/busybox/config/util-linux/volume_id/Config.in
bool #No description makes it a hidden option
default BUSYBOX_DEFAULT_VOLUMEID
menu "Filesystem/Volume identification"
depends on BUSYBOX_CONFIG_VOLUMEID
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
bool "Ext filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXT
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
bool "btrfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
bool "Reiser filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_REISERFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
bool "fat filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
bool "hfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_HFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
bool "jfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_UFS
### bool "ufs filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
bool "xfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
bool "ntfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NTFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
bool "iso9660 filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ISO9660
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
bool "udf filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
bool "luks filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
bool "linux swap filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXSWAP
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_LVM
### bool "lvm"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
bool "cramfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_CRAMFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_HPFS
### bool "hpfs filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
bool "romfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ROMFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
bool "sysv filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_MINIX
### bool "minix filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### These only detect partition tables - not used (yet?)
### config FEATURE_VOLUMEID_MAC
### bool "mac filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
###
### config FEATURE_VOLUMEID_MSDOS
### bool "msdos filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
bool "ocfs2 filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_OCFS2
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_HIGHPOINTRAID
### bool "highpoint raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_ISWRAID
### bool "intel raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_LSIRAID
### bool "lsi raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_VIARAID
### bool "via raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_SILICONRAID
### bool "silicon raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_NVIDIARAID
### bool "nvidia raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_PROMISERAID
### bool "promise raid"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
bool "linuxraid"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
endmenu
endmenu endmenu

View file

@ -0,0 +1,304 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#
config BUSYBOX_CONFIG_VOLUMEID
bool #No description makes it a hidden option
default BUSYBOX_DEFAULT_VOLUMEID
menu "Filesystem/Volume identification"
depends on BUSYBOX_CONFIG_VOLUMEID
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
bool "btrfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
bool "cramfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_CRAMFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXFAT
bool "exFAT filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXFAT
depends on BUSYBOX_CONFIG_VOLUMEID
help
exFAT (extended FAT) is a proprietary file system designed especially
for flash drives. It has many features from NTFS, but with less
overhead. exFAT is used on most SDXC cards for consumer electronics.
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
bool "Ext filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXT
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_F2FS
bool "f2fs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_F2FS
depends on BUSYBOX_CONFIG_VOLUMEID
help
F2FS (aka Flash-Friendly File System) is a log-structured file system,
which is adapted to newer forms of storage. F2FS also remedies some
known issues of the older log structured file systems, such as high
cleaning overhead.
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
bool "fat filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
bool "hfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_HFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
bool "iso9660 filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ISO9660
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
bool "jfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
bool "linuxraid"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
bool "linux swap filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXSWAP
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
bool "luks filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NILFS
bool "nilfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NILFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
NILFS is a New Implementation of a Log-Structured File System (LFS)
that supports continuous snapshots. This provides features like
versioning of the entire filesystem, restoration of files that
were deleted a few minutes ago. NILFS keeps consistency like
conventional LFS, so it provides quick recovery after system crashes.
The possible use of NILFS includes versioning, tamper detection,
SOX compliance logging, and so forth. It can serve as an alternative
filesystem for Linux desktop environment, or as a basis of advanced
storage appliances.
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
bool "ntfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NTFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
bool "ocfs2 filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_OCFS2
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
bool "Reiser filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_REISERFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
bool "romfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_ROMFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SQUASHFS
bool "SquashFS filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SQUASHFS
depends on BUSYBOX_CONFIG_VOLUMEID && BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
help
Squashfs is a compressed read-only filesystem for Linux. Squashfs is
intended for general read-only filesystem use and in constrained block
device/memory systems (e.g. embedded systems) where low overhead is
needed.
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
bool "sysv filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
bool "udf filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
### config FEATURE_VOLUMEID_HIGHPOINTRAID
### bool "highpoint raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_HPFS
### bool "hpfs filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_ISWRAID
### bool "intel raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_LSIRAID
### bool "lsi raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_LVM
### bool "lvm"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_MAC
### bool "mac filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_MINIX
### bool "minix filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_MSDOS
### bool "msdos filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_NVIDIARAID
### bool "nvidia raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_PROMISERAID
### bool "promise raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_SILICONRAID
### bool "silicon raid"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_UFS
### bool "ufs filesystem"
### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_VIARAID
### bool "via raid"
### default y
### depends on VOLUMEID
### help
### TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
bool "xfs filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
endmenu

View file

@ -1,20 +0,0 @@
From eb80c2a5315ed08bd329448217695375d89732c9 Mon Sep 17 00:00:00 2001
From: Nicolas Thill <nico@openwrt.org>
Date: Wed, 9 Nov 2011 18:17:20 +0100
Subject: [PATCH] passwd: use MD5 hash by default (like it used to be)
---
loginutils/passwd.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--- a/loginutils/passwd.c
+++ b/loginutils/passwd.c
@@ -94,7 +94,7 @@ int passwd_main(int argc UNUSED_PARAM, c
};
unsigned opt;
int rc;
- const char *opt_a = "d"; /* des */
+ const char *opt_a = "m"; /* md5 */
const char *filename;
char *myname;
char *name;

View file

@ -0,0 +1,11 @@
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -13014,7 +13014,7 @@ init(void)
setvar2("PPID", utoa(getppid()));
#if ENABLE_ASH_BASH_COMPAT
p = lookupvar("SHLVL");
- setvar2("SHLVL", utoa(p ? atoi(p) + 1 : 1));
+ setvar("SHLVL", utoa((p ? atoi(p) : 0) + 1), VEXPORT);
#endif
p = lookupvar("PWD");
if (p) {

View file

@ -1,37 +0,0 @@
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -129,7 +129,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
"setageing\0" "setfd\0" "sethello\0" "setmaxage\0"
"setpathcost\0" "setportprio\0" "setbridgeprio\0"
)
- IF_FEATURE_BRCTL_SHOW("showmacs\0" "show\0");
+ IF_FEATURE_BRCTL_SHOW("show\0");
enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif
IF_FEATURE_BRCTL_FANCY(,
@@ -137,7 +137,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage,
ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio
)
- IF_FEATURE_BRCTL_SHOW(, ARG_showmacs, ARG_show)
+ IF_FEATURE_BRCTL_SHOW(, ARG_show)
};
int fd;
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -82,12 +82,12 @@ config FEATURE_BRCTL_FANCY
This adds about 600 bytes.
config FEATURE_BRCTL_SHOW
- bool "Support show, showmac and showstp"
+ bool "Support show"
default y
depends on BRCTL && FEATURE_BRCTL_FANCY
help
Add support for option which prints the current config:
- showmacs, showstp, show
+ show
config DNSD
bool "dnsd"

View file

@ -0,0 +1,30 @@
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -68,15 +68,23 @@ void FAST_FUNC parse_datestr(const char
/* else end != NUL and we error out */
}
} else
- /* yyyy-mm-dd HH */
- if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
+ if (strchr(date_str, '-')
+ /* Why strchr('-') check?
+ * sscanf below will trash ptm->tm_year, this breaks
+ * if parse_str is "10101010" (iow, "MMddhhmm" form)
+ * because we destroy year. Do these sscanf
+ * only if we saw a dash in parse_str.
+ */
+ /* yyyy-mm-dd HH */
+ && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
&ptm->tm_mon, &ptm->tm_mday,
&ptm->tm_hour,
&end) >= 4
- /* yyyy-mm-dd */
- || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
+ /* yyyy-mm-dd */
+ || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
&ptm->tm_mon, &ptm->tm_mday,
&end) >= 3
+ )
) {
ptm->tm_year -= 1900; /* Adjust years */
ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */

View file

@ -1,237 +0,0 @@
http://git.busybox.net/busybox/commit/?id=dd1061b6a79b0161597799e825bfefc27993ace5
From dd1061b6a79b0161597799e825bfefc27993ace5 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Sun, 11 Sep 2011 21:04:02 +0200
Subject: [PATCH] wget: URL-decode user:password before base64-encoding it into auth hdr. Closes 3625.
function old new delta
percent_decode_in_place - 152 +152
parse_url 304 317 +13
handle_incoming_and_exit 2795 2798 +3
httpd_main 763 760 -3
decodeString 152 - -152
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/1 up/down: 168/-155) Total: 13 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1570,6 +1570,15 @@ int starts_with_cpu(const char *str) FAS
unsigned get_cpu_count(void) FAST_FUNC;
+/* Use strict=1 if you process input from untrusted source:
+ * it will return NULL on invalid %xx (bad hex chars)
+ * and str + 1 if decoded char is / or NUL.
+ * In non-strict mode, it always succeeds (returns str),
+ * and also it additionally decoded '+' to space.
+ */
+char *percent_decode_in_place(char *str, int strict) FAST_FUNC;
+
+
extern const char bb_uuenc_tbl_base64[];
extern const char bb_uuenc_tbl_std[];
void bb_uuencode(char *store, const void *s, int length, const char *tbl) FAST_FUNC;
--- /dev/null
+++ b/libbb/percent_decode.c
@@ -0,0 +1,69 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+//kbuild:lib-y += percent_decode.o
+
+#include "libbb.h"
+
+static unsigned hex_to_bin(unsigned char c)
+{
+ unsigned v;
+
+ v = c - '0';
+ if (v <= 9)
+ return v;
+ /* c | 0x20: letters to lower case, non-letters
+ * to (potentially different) non-letters */
+ v = (unsigned)(c | 0x20) - 'a';
+ if (v <= 5)
+ return v + 10;
+ return ~0;
+/* For testing:
+void t(char c) { printf("'%c'(%u) %u\n", c, c, hex_to_bin(c)); }
+int main() { t(0x10); t(0x20); t('0'); t('9'); t('A'); t('F'); t('a'); t('f');
+t('0'-1); t('9'+1); t('A'-1); t('F'+1); t('a'-1); t('f'+1); return 0; }
+*/
+}
+
+char* FAST_FUNC percent_decode_in_place(char *str, int strict)
+{
+ /* note that decoded string is always shorter than original */
+ char *src = str;
+ char *dst = str;
+ char c;
+
+ while ((c = *src++) != '\0') {
+ unsigned v;
+
+ if (!strict && c == '+') {
+ *dst++ = ' ';
+ continue;
+ }
+ if (c != '%') {
+ *dst++ = c;
+ continue;
+ }
+ v = hex_to_bin(src[0]);
+ if (v > 15) {
+ bad_hex:
+ if (strict)
+ return NULL;
+ *dst++ = '%';
+ continue;
+ }
+ v = (v * 16) | hex_to_bin(src[1]);
+ if (v > 255)
+ goto bad_hex;
+ if (strict && (v == '/' || v == '\0')) {
+ /* caller takes it as indication of invalid
+ * (dangerous wrt exploits) chars */
+ return str + 1;
+ }
+ *dst++ = v;
+ src += 2;
+ }
+ *dst = '\0';
+ return str;
+}
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -820,78 +820,6 @@ static char *encodeString(const char *st
}
#endif
-/*
- * Given a URL encoded string, convert it to plain ascii.
- * Since decoding always makes strings smaller, the decode is done in-place.
- * Thus, callers should xstrdup() the argument if they do not want the
- * argument modified. The return is the original pointer, allowing this
- * function to be easily used as arguments to other functions.
- *
- * string The first string to decode.
- * option_d 1 if called for httpd -d
- *
- * Returns a pointer to the decoded string (same as input).
- */
-static unsigned hex_to_bin(unsigned char c)
-{
- unsigned v;
-
- v = c - '0';
- if (v <= 9)
- return v;
- /* c | 0x20: letters to lower case, non-letters
- * to (potentially different) non-letters */
- v = (unsigned)(c | 0x20) - 'a';
- if (v <= 5)
- return v + 10;
- return ~0;
-/* For testing:
-void t(char c) { printf("'%c'(%u) %u\n", c, c, hex_to_bin(c)); }
-int main() { t(0x10); t(0x20); t('0'); t('9'); t('A'); t('F'); t('a'); t('f');
-t('0'-1); t('9'+1); t('A'-1); t('F'+1); t('a'-1); t('f'+1); return 0; }
-*/
-}
-static char *decodeString(char *orig, int option_d)
-{
- /* note that decoded string is always shorter than original */
- char *string = orig;
- char *ptr = string;
- char c;
-
- while ((c = *ptr++) != '\0') {
- unsigned v;
-
- if (option_d && c == '+') {
- *string++ = ' ';
- continue;
- }
- if (c != '%') {
- *string++ = c;
- continue;
- }
- v = hex_to_bin(ptr[0]);
- if (v > 15) {
- bad_hex:
- if (!option_d)
- return NULL;
- *string++ = '%';
- continue;
- }
- v = (v * 16) | hex_to_bin(ptr[1]);
- if (v > 255)
- goto bad_hex;
- if (!option_d && (v == '/' || v == '\0')) {
- /* caller takes it as indication of invalid
- * (dangerous wrt exploits) chars */
- return orig + 1;
- }
- *string++ = v;
- ptr += 2;
- }
- *string = '\0';
- return orig;
-}
-
#if ENABLE_FEATURE_HTTPD_BASIC_AUTH
/*
* Decode a base64 data stream as per rfc1521.
@@ -1949,7 +1877,7 @@ static void handle_incoming_and_exit(con
}
/* Decode URL escape sequences */
- tptr = decodeString(urlcopy, 0);
+ tptr = percent_decode_in_place(urlcopy, /*strict:*/ 1);
if (tptr == NULL)
send_headers_and_exit(HTTP_BAD_REQUEST);
if (tptr == urlcopy + 1) {
@@ -2408,7 +2336,7 @@ int httpd_main(int argc UNUSED_PARAM, ch
, &verbose
);
if (opt & OPT_DECODE_URL) {
- fputs(decodeString(url_for_decode, 1), stdout);
+ fputs(percent_decode_in_place(url_for_decode, /*strict:*/ 0), stdout);
return 0;
}
#if ENABLE_FEATURE_HTTPD_ENCODE_URL_STR
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -298,8 +298,13 @@ static void parse_url(const char *src_ur
sp = strrchr(h->host, '@');
if (sp != NULL) {
- h->user = h->host;
+ // URL-decode "user:password" string before base64-encoding:
+ // wget http://test:my%20pass@example.com should send
+ // Authorization: Basic dGVzdDpteSBwYXNz
+ // which decodes to "test:my pass".
+ // Standard wget and curl do this too.
*sp = '\0';
+ h->user = percent_decode_in_place(h->host, /*strict:*/ 0);
h->host = sp + 1;
}
@@ -661,12 +666,6 @@ static void download_one_url(const char
#if ENABLE_FEATURE_WGET_AUTHENTICATION
if (target.user) {
-//TODO: URL-decode "user:password" string before base64-encoding:
-//wget http://test:my%20pass@example.com should send
-// Authorization: Basic dGVzdDpteSBwYXNz
-//which decodes to "test:my pass", instead of what we send now:
-// Authorization: Basic dGVzdDpteSUyMHBhc3M=
-//Can reuse decodeString() from httpd.c
fprintf(sfp, "Proxy-Authorization: Basic %s\r\n"+6,
base64enc(target.user));
}

View file

@ -0,0 +1,19 @@
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -31,6 +31,16 @@
#ifndef IFLA_LINKINFO
# define IFLA_LINKINFO 18
# define IFLA_INFO_KIND 1
+# define IFLA_INFO_DATA 2
+#endif
+
+#ifndef IFLA_VLAN_MAX
+# define IFLA_VLAN_ID 1
+# define IFLA_VLAN_FLAGS 2
+struct ifla_vlan_flags {
+ uint32_t flags;
+ uint32_t mask;
+};
#endif
/* taken from linux/sockios.h */

View file

@ -0,0 +1,15 @@
--- a/networking/nc_bloaty.c
+++ b/networking/nc_bloaty.c
@@ -175,9 +175,9 @@ enum {
OPT_w = (1 << 5),
OPT_l = (1 << 6) * ENABLE_NC_SERVER,
OPT_k = (1 << 7) * ENABLE_NC_SERVER,
- OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
- OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
- OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+ OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+ OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
+ OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
};
#define o_nflag (option_mask32 & OPT_n)

View file

@ -1,164 +0,0 @@
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -29,16 +29,16 @@ const struct dhcp_optflag dhcp_optflags[
// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
// { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
{ OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */
- { OPTION_STRING | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */
+ { OPTION_STRING_HOST | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */
{ OPTION_U16 , 0x0d }, /* DHCP_BOOT_SIZE */
- { OPTION_STRING | OPTION_REQ, 0x0f }, /* DHCP_DOMAIN_NAME */
+ { OPTION_STRING_HOST | OPTION_REQ, 0x0f }, /* DHCP_DOMAIN_NAME */
{ OPTION_IP , 0x10 }, /* DHCP_SWAP_SERVER */
{ OPTION_STRING , 0x11 }, /* DHCP_ROOT_PATH */
{ OPTION_U8 , 0x17 }, /* DHCP_IP_TTL */
{ OPTION_U16 , 0x1a }, /* DHCP_MTU */
{ OPTION_IP | OPTION_REQ, 0x1c }, /* DHCP_BROADCAST */
{ OPTION_IP_PAIR | OPTION_LIST , 0x21 }, /* DHCP_ROUTES */
- { OPTION_STRING , 0x28 }, /* DHCP_NIS_DOMAIN */
+ { OPTION_STRING_HOST , 0x28 }, /* DHCP_NIS_DOMAIN */
{ OPTION_IP | OPTION_LIST , 0x29 }, /* DHCP_NIS_SERVER */
{ OPTION_IP | OPTION_LIST | OPTION_REQ, 0x2a }, /* DHCP_NTP_SERVER */
{ OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */
@@ -46,7 +46,7 @@ const struct dhcp_optflag dhcp_optflags[
{ OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */
{ OPTION_STRING , 0x38 }, /* DHCP_ERR_MESSAGE */
//TODO: must be combined with 'sname' and 'file' handling:
- { OPTION_STRING , 0x42 }, /* DHCP_TFTP_SERVER_NAME */
+ { OPTION_STRING_HOST , 0x42 }, /* DHCP_TFTP_SERVER_NAME */
{ OPTION_STRING , 0x43 }, /* DHCP_BOOT_FILE */
//TODO: not a string, but a set of LASCII strings:
// { OPTION_STRING , 0x4D }, /* DHCP_USER_CLASS */
@@ -143,6 +143,7 @@ const uint8_t dhcp_option_lengths[] ALIG
[OPTION_IP_PAIR] = 8,
// [OPTION_BOOLEAN] = 1,
[OPTION_STRING] = 1, /* ignored by udhcp_str2optset */
+ [OPTION_STRING_HOST] = 1, /* ignored by udhcp_str2optset */
#if ENABLE_FEATURE_UDHCP_RFC3397
[OPTION_DNS_STRING] = 1, /* ignored by both udhcp_str2optset and xmalloc_optname_optval */
[OPTION_SIP_SERVERS] = 1,
@@ -411,7 +412,9 @@ static NOINLINE void attach_option(
/* actually 255 is ok too, but adding a space can overlow it */
existing->data = xrealloc(existing->data, OPT_DATA + 1 + old_len + length);
- if ((optflag->flags & OPTION_TYPE_MASK) == OPTION_STRING) {
+ if ((optflag->flags & OPTION_TYPE_MASK) == OPTION_STRING
+ || (optflag->flags & OPTION_TYPE_MASK) == OPTION_STRING_HOST
+ ) {
/* add space separator between STRING options in a list */
existing->data[OPT_DATA + old_len] = ' ';
old_len++;
@@ -475,6 +478,7 @@ int FAST_FUNC udhcp_str2optset(const cha
retval = udhcp_str2nip(val, buffer + 4);
break;
case OPTION_STRING:
+ case OPTION_STRING_HOST:
#if ENABLE_FEATURE_UDHCP_RFC3397
case OPTION_DNS_STRING:
#endif
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -80,6 +80,9 @@ enum {
OPTION_IP = 1,
OPTION_IP_PAIR,
OPTION_STRING,
+ /* Opts of STRING_HOST type will be sanitized before they are passed
+ * to udhcpc script's environment: */
+ OPTION_STRING_HOST,
// OPTION_BOOLEAN,
OPTION_U8,
OPTION_U16,
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -101,6 +101,7 @@ static const uint8_t len_of_option_as_st
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
[OPTION_STRING ] = 1,
+ [OPTION_STRING_HOST ] = 1,
#if ENABLE_FEATURE_UDHCP_RFC3397
[OPTION_DNS_STRING ] = 1, /* unused */
/* Hmmm, this severely overestimates size if SIP_SERVERS option
@@ -135,6 +136,63 @@ static int mton(uint32_t mask)
return i;
}
+/* Check if a given label represents a valid DNS label
+ * Return pointer to the first character after the label upon success,
+ * NULL otherwise.
+ * See RFC1035, 2.3.1
+ */
+/* We don't need to be particularly anal. For example, allowing _, hyphen
+ * at the end, or leading and trailing dots would be ok, since it
+ * can't be used for attacks. (Leading hyphen can be, if someone uses
+ * cmd "$hostname"
+ * in the script: then hostname may be treated as an option)
+ */
+static const char *valid_domain_label(const char *label)
+{
+ unsigned char ch;
+ unsigned pos = 0;
+
+ for (;;) {
+ ch = *label;
+ if ((ch|0x20) < 'a' || (ch|0x20) > 'z') {
+ if (pos == 0) {
+ /* label must begin with letter */
+ return NULL;
+ }
+ if (ch < '0' || ch > '9') {
+ if (ch == '\0' || ch == '.')
+ return label;
+ /* DNS allows only '-', but we are more permissive */
+ if (ch != '-' && ch != '_')
+ return NULL;
+ }
+ }
+ label++;
+ pos++;
+ //Do we want this?
+ //if (pos > 63) /* NS_MAXLABEL; labels must be 63 chars or less */
+ // return NULL;
+ }
+}
+
+/* Check if a given name represents a valid DNS name */
+/* See RFC1035, 2.3.1 */
+static int good_hostname(const char *name)
+{
+ //const char *start = name;
+
+ for (;;) {
+ name = valid_domain_label(name);
+ if (!name)
+ return 0;
+ if (!name[0])
+ return 1;
+ //Do we want this?
+ //return ((name - start) < 1025); /* NS_MAXDNAME */
+ name++;
+ }
+}
+
/* Create "opt_name=opt_value" string */
static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_optflag *optflag, const char *opt_name)
{
@@ -185,8 +243,11 @@ static NOINLINE char *xmalloc_optname_op
break;
}
case OPTION_STRING:
+ case OPTION_STRING_HOST:
memcpy(dest, option, len);
dest[len] = '\0';
+ if (type == OPTION_STRING_HOST && !good_hostname(dest))
+ safe_strncpy(dest, "bad", len);
return ret; /* Short circuit this case */
case OPTION_STATIC_ROUTES: {
/* Option binary format:
@@ -314,6 +375,7 @@ static char **fill_envp(struct dhcp_pack
/* +1 element for each option, +2 for subnet option: */
if (packet) {
/* note: do not search for "pad" (0) and "end" (255) options */
+//TODO: change logic to scan packet _once_
for (i = 1; i < 255; i++) {
temp = udhcp_get_option(packet, i);
if (temp) {

View file

@ -1,97 +0,0 @@
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -10,7 +10,7 @@
//usage:#define dd_trivial_usage
//usage: "[if=FILE] [of=FILE] " IF_FEATURE_DD_IBS_OBS("[ibs=N] [obs=N] ") "[bs=N] [count=N] [skip=N]\n"
-//usage: " [seek=N]" IF_FEATURE_DD_IBS_OBS(" [conv=notrunc|noerror|sync|fsync]")
+//usage: " [seek=N]" IF_FEATURE_DD_IBS_OBS(" [conv=notrunc|noerror|sync|fsync|swab]")
//usage:#define dd_full_usage "\n\n"
//usage: "Copy a file with converting and formatting\n"
//usage: "\n if=FILE Read from FILE instead of stdin"
@@ -30,6 +30,7 @@
//usage: "\n conv=noerror Continue after read errors"
//usage: "\n conv=sync Pad blocks with zeros"
//usage: "\n conv=fsync Physically write data out before finishing"
+//usage: "\n conv=swab Swap every pair of bytes"
//usage: )
//usage: "\n"
//usage: "\nNumbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),"
@@ -155,9 +156,10 @@ int dd_main(int argc UNUSED_PARAM, char
FLAG_SYNC = 1 << 1,
FLAG_NOERROR = 1 << 2,
FLAG_FSYNC = 1 << 3,
+ FLAG_SWAB = 1 << 4,
/* end of conv flags */
- FLAG_TWOBUFS = 1 << 4,
- FLAG_COUNT = 1 << 5,
+ FLAG_TWOBUFS = 1 << 5,
+ FLAG_COUNT = 1 << 6,
};
static const char keywords[] ALIGN1 =
"bs\0""count\0""seek\0""skip\0""if\0""of\0"
@@ -167,7 +169,7 @@ int dd_main(int argc UNUSED_PARAM, char
;
#if ENABLE_FEATURE_DD_IBS_OBS
static const char conv_words[] ALIGN1 =
- "notrunc\0""sync\0""noerror\0""fsync\0";
+ "notrunc\0""sync\0""noerror\0""fsync\0""swab\0";
#endif
enum {
OP_bs = 0,
@@ -185,11 +187,11 @@ int dd_main(int argc UNUSED_PARAM, char
OP_conv_sync,
OP_conv_noerror,
OP_conv_fsync,
+ OP_conv_swab,
/* Unimplemented conv=XXX: */
//nocreat do not create the output file
//excl fail if the output file already exists
//fdatasync physically write output file data before finishing
- //swab swap every pair of input bytes
//lcase change upper case to lower case
//ucase change lower case to upper case
//block pad newline-terminated records with spaces to cbs-size
@@ -207,12 +209,14 @@ int dd_main(int argc UNUSED_PARAM, char
struct {
int flags;
size_t oc;
+ ssize_t prev_read_size; /* for detecting swab failure */
off_t count;
off_t seek, skip;
const char *infile, *outfile;
} Z;
#define flags (Z.flags )
#define oc (Z.oc )
+#define prev_read_size (Z.prev_read_size)
#define count (Z.count )
#define seek (Z.seek )
#define skip (Z.skip )
@@ -375,6 +379,27 @@ int dd_main(int argc UNUSED_PARAM, char
* conv=noerror just ignores input bad blocks */
n = 0;
}
+ if (flags & FLAG_SWAB) {
+ uint16_t *p16;
+ ssize_t n2;
+
+ /* Our code allows only last read to be odd-sized */
+ if (prev_read_size & 1)
+ bb_error_msg_and_die("can't swab %lu byte buffer",
+ (unsigned long)prev_read_size);
+ prev_read_size = n;
+
+ /* If n is odd, last byte is not swapped:
+ * echo -n "qwe" | dd conv=swab
+ * prints "wqe".
+ */
+ p16 = (void*) ibuf;
+ n2 = (n >> 1);
+ while (--n2 >= 0) {
+ *p16 = bswap_16(*p16);
+ p16++;
+ }
+ }
if ((size_t)n == ibs)
G.in_full++;
else {

View file

@ -1,11 +1,11 @@
--- a/Makefile.flags --- a/Makefile.flags
+++ b/Makefile.flags +++ b/Makefile.flags
@@ -50,7 +50,7 @@ CFLAGS += $(call cc-option,-fno-builtin- @@ -51,7 +51,7 @@ CFLAGS += $(call cc-option,-fno-builtin-
# -fno-guess-branch-probability: prohibit pseudo-random guessing # -fno-guess-branch-probability: prohibit pseudo-random guessing
# of branch probabilities (hopefully makes bloatcheck more stable): # of branch probabilities (hopefully makes bloatcheck more stable):
CFLAGS += $(call cc-option,-fno-guess-branch-probability,) CFLAGS += $(call cc-option,-fno-guess-branch-probability,)
-CFLAGS += $(call cc-option,-funsigned-char -static-libgcc,) -CFLAGS += $(call cc-option,-funsigned-char -static-libgcc,)
+CFLAGS += $(call cc-option,-funsigned-char,) +CFLAGS += $(call cc-option,-funsigned-char,)
CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,) CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,)
# Defeat .eh_frame bloat (gcc 4.6.3 x86-32 defconfig: 20% smaller busybox binary):
# FIXME: These warnings are at least partially to be concerned about and should CFLAGS += $(call cc-option,-fno-unwind-tables,)

View file

@ -1,11 +0,0 @@
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -873,7 +873,7 @@ int wget_main(int argc UNUSED_PARAM, cha
/* Ignored: */
// "tries\0" Required_argument "t"
/* Ignored (we always use PASV): */
- "passive-ftp\0" No_argument "\xff"
+ "passive-ftp\0" No_argument "\xfd"
"header\0" Required_argument "\xfe"
"post-data\0" Required_argument "\xfd"
/* Ignored (we don't do ssl) */

View file

@ -1,6 +1,6 @@
--- a/util-linux/mount.c --- a/util-linux/mount.c
+++ b/util-linux/mount.c +++ b/util-linux/mount.c
@@ -128,9 +128,6 @@ @@ -138,9 +138,6 @@
#if ENABLE_FEATURE_MOUNT_NFS #if ENABLE_FEATURE_MOUNT_NFS
/* This is just a warning of a common mistake. Possibly this should be a /* This is just a warning of a common mistake. Possibly this should be a
* uclibc faq entry rather than in busybox... */ * uclibc faq entry rather than in busybox... */

View file

@ -1,6 +1,6 @@
--- a/scripts/kconfig/mconf.c --- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c
@@ -25,6 +25,10 @@ @@ -27,6 +27,10 @@
#include <unistd.h> #include <unistd.h>
#include <locale.h> #include <locale.h>

View file

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -602,6 +602,7 @@ static int raw_bcast_from_client_config_ @@ -681,6 +681,7 @@ static int bcast_or_ucast(struct dhcp_pa
static NOINLINE int send_discover(uint32_t xid, uint32_t requested) static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
{ {
struct dhcp_packet packet; struct dhcp_packet packet;
@ -8,7 +8,7 @@
/* Fill in: op, htype, hlen, cookie, chaddr fields, /* Fill in: op, htype, hlen, cookie, chaddr fields,
* random xid field (we override it below), * random xid field (we override it below),
@@ -619,6 +620,7 @@ static NOINLINE int send_discover(uint32 @@ -698,6 +699,7 @@ static NOINLINE int send_discover(uint32
*/ */
add_client_options(&packet); add_client_options(&packet);

View file

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -1267,6 +1267,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c @@ -1400,6 +1400,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
/* silence "uninitialized!" warning */ /* silence "uninitialized!" warning */
unsigned timestamp_before_wait = timestamp_before_wait; unsigned timestamp_before_wait = timestamp_before_wait;

View file

@ -0,0 +1,18 @@
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -64,6 +64,7 @@ const struct dhcp_optflag dhcp_optflags[
#endif
{ OPTION_STRING , 0xd1 }, /* DHCP_PXE_CONF_FILE */
{ OPTION_6RD , 0xd4 }, /* DHCP_6RD */
+ { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */
{ OPTION_STATIC_ROUTES | OPTION_LIST , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
{ OPTION_STRING , 0xfc }, /* DHCP_WPAD */
@@ -131,6 +132,7 @@ const char dhcp_option_strings[] ALIGN1
#endif
"pxeconffile" "\0" /* DHCP_PXE_CONF_FILE */
"ip6rd" "\0" /* DHCP_6RD */
+ "ip6rd" "\0" /* DHCP_6RD (Comcast) */
"msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
"wpad" "\0" /* DHCP_WPAD */
;

View file

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -1045,7 +1045,6 @@ static void perform_renew(void) @@ -1087,7 +1087,6 @@ static void perform_renew(void)
state = RENEW_REQUESTED; state = RENEW_REQUESTED;
break; break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ case RENEW_REQUESTED: /* impatient are we? fine, square 1 */

View file

@ -1,6 +1,6 @@
--- a/include/applets.src.h --- a/include/applets.src.h
+++ b/include/applets.src.h +++ b/include/applets.src.h
@@ -266,6 +266,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO @@ -255,6 +255,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP)) IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP)) IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP)) IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
@ -10,7 +10,7 @@
IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
--- a/networking/Config.src --- a/networking/Config.src
+++ b/networking/Config.src +++ b/networking/Config.src
@@ -612,6 +612,12 @@ config FEATURE_IPCALC_LONG_OPTIONS @@ -620,6 +620,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
help help
Support long options for the ipcalc applet. Support long options for the ipcalc applet.
@ -96,7 +96,7 @@
+ } + }
+ +
+ return 0; + return 0;
+ +
+fail: +fail:
+ close(s); + close(s);
+ exit(1); + exit(1);

View file

@ -1,6 +1,6 @@
--- a/include/applets.src.h --- a/include/applets.src.h
+++ b/include/applets.src.h +++ b/include/applets.src.h
@@ -218,6 +218,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, @@ -212,6 +212,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN,
IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP)) IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))

View file

@ -1,14 +1,14 @@
--- a/networking/ntpd.c --- a/networking/ntpd.c
+++ b/networking/ntpd.c +++ b/networking/ntpd.c
@@ -216,6 +216,7 @@ typedef struct { @@ -238,6 +238,7 @@ typedef struct {
typedef struct { typedef struct {
len_and_sockaddr *p_lsa; len_and_sockaddr *p_lsa;
char *p_dotted; char *p_dotted;
+ char *p_hostname; + char *p_hostname;
/* when to send new query (if p_fd == -1)
* or when receive times out (if p_fd >= 0): */
int p_fd; int p_fd;
@@ -646,8 +647,9 @@ add_peers(char *s) int datapoint_idx;
uint32_t lastpkt_refid;
@@ -738,8 +739,9 @@ add_peers(char *s)
peer_t *p; peer_t *p;
p = xzalloc(sizeof(*p)); p = xzalloc(sizeof(*p));
@ -20,7 +20,7 @@
p->p_fd = -1; p->p_fd = -1;
p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3); p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
p->next_action_time = G.cur_time; /* = set_next(p, 0); */ p->next_action_time = G.cur_time; /* = set_next(p, 0); */
@@ -696,6 +698,25 @@ send_query_to_peer(peer_t *p) @@ -788,6 +790,25 @@ send_query_to_peer(peer_t *p)
* *
* Uncomment this and use strace to see it in action: * Uncomment this and use strace to see it in action:
*/ */

View file

@ -1,6 +1,6 @@
--- a/networking/telnetd.c --- a/networking/telnetd.c
+++ b/networking/telnetd.c +++ b/networking/telnetd.c
@@ -330,6 +330,7 @@ make_new_session( @@ -331,6 +331,7 @@ make_new_session(
/* Restore default signal handling ASAP */ /* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL); bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);

View file

@ -1,20 +0,0 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1319,7 +1319,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
switch (state) {
case INIT_SELECTING:
- if (packet_num < discover_retries) {
+ if (!discover_retries || packet_num < discover_retries) {
if (packet_num == 0)
xid = random_xid();
/* broadcast */
@@ -1348,7 +1348,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
packet_num = 0;
continue;
case REQUESTING:
- if (packet_num < discover_retries) {
+ if (!discover_retries || packet_num < discover_retries) {
/* send broadcast select packet */
send_select(xid, server_addr, requested_ip);
timeout = discover_timeout;

View file

@ -1,143 +0,0 @@
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -60,6 +60,8 @@ const struct dhcp_optflag dhcp_optflags[
{ OPTION_U8 , 0x85 }, /* DHCP_VLAN_PRIORITY */
#endif
{ OPTION_STATIC_ROUTES , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
+ { OPTION_6RD , 0xd4 }, /* DHCP_6RD (RFC) */
+ { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */
{ OPTION_STRING , 0xfc }, /* DHCP_WPAD */
/* Options below have no match in dhcp_option_strings[],
@@ -127,6 +129,8 @@ const char dhcp_option_strings[] ALIGN1
"vlanpriority" "\0"/* DHCP_VLAN_PRIORITY */
#endif
"msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
+ "ip6rd" "\0" /* DHCP_6RD (RFC) */
+ "ip6rd" "\0" /* DHCP_6RD (Comcast) */
"wpad" "\0" /* DHCP_WPAD */
;
@@ -155,6 +159,7 @@ const uint8_t dhcp_option_lengths[] ALIG
[OPTION_S32] = 4,
/* Just like OPTION_STRING, we use minimum length here */
[OPTION_STATIC_ROUTES] = 5,
+ [OPTION_6RD] = 22,
};
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -91,6 +91,7 @@ enum {
OPTION_S32,
OPTION_BIN,
OPTION_STATIC_ROUTES,
+ OPTION_6RD,
#if ENABLE_FEATURE_UDHCP_RFC3397
OPTION_DNS_STRING, /* RFC1035 compressed domain name list */
OPTION_SIP_SERVERS,
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -100,6 +100,7 @@ static const uint8_t len_of_option_as_st
[OPTION_IP ] = sizeof("255.255.255.255 "),
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
+ [OPTION_6RD ] = sizeof("32 128 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 255.255.255.255 "),
[OPTION_STRING ] = 1,
[OPTION_STRING_HOST ] = 1,
#if ENABLE_FEATURE_UDHCP_RFC3397
@@ -124,6 +125,23 @@ static int sprint_nip(char *dest, const
return sprintf(dest, "%s%u.%u.%u.%u", pre, ip[0], ip[1], ip[2], ip[3]);
}
+static int sprint_nip6(char *dest, const char *pre, const uint8_t *ip)
+{
+ int len = 0;
+ int off;
+ uint16_t word;
+
+ len += sprintf(dest, "%s", pre);
+
+ for (off = 0; off < 16; off += 2)
+ {
+ move_from_unaligned16(word, &ip[off]);
+ len += sprintf(dest+len, "%s%04X", off ? ":" : "", htons(word));
+ }
+
+ return len;
+}
+
/* really simple implementation, just count the bits */
static int mton(uint32_t mask)
{
@@ -292,6 +310,70 @@ static NOINLINE char *xmalloc_optname_op
}
return ret;
+ }
+ case OPTION_6RD: {
+ /* Option binary format:
+ * 0 1 2 3
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | OPTION_6RD | option-length | IPv4MaskLen | 6rdPrefixLen |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | |
+ * | 6rdPrefix |
+ * | (16 octets) |
+ * | |
+ * | |
+ * | |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | 6rdBRIPv4Address(es) |
+ * . .
+ * . .
+ * . .
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * We convert it to a string "IPv4MaskLen 6rdPrefixLen 6rdPrefix 6rdBRIPv4Address"
+ */
+
+ /* Sanity check: ensure that our length is at least 22 bytes, that
+ * IPv4MaskLen is <= 32, 6rdPrefixLen <= 128 and that the sum of
+ * (32 - IPv4MaskLen) + 6rdPrefixLen is less than or equal to 128.
+ * If any of these requirements is not fulfilled, return with empty
+ * value.
+ */
+ if ((len >= 22) && (*option <= 32) && (*(option+1) <= 128) &&
+ (((32 - *option) + *(option+1)) <= 128))
+ {
+ /* IPv4MaskLen */
+ dest += sprintf(dest, "%u ", *option++);
+ len--;
+
+ /* 6rdPrefixLen */
+ dest += sprintf(dest, "%u ", *option++);
+ len--;
+
+ /* 6rdPrefix */
+ dest += sprint_nip6(dest, "", option);
+ option += 16;
+ len -= 16;
+
+ /* 6rdBRIPv4Addresses */
+ while (len >= 4)
+ {
+ dest += sprint_nip(dest, " ", option);
+ option += 4;
+ len -= 4;
+
+ /* the code to determine the option size fails to work with
+ * lengths that are not a multiple of the minimum length,
+ * adding all advertised 6rdBRIPv4Addresses here would
+ * overflow the destination buffer, therefore skip the rest
+ * for now
+ */
+ break;
+ }
+ }
+
+ return ret;
}
#if ENABLE_FEATURE_UDHCP_RFC3397
case OPTION_DNS_STRING:

View file

@ -1,34 +0,0 @@
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12611,8 +12611,17 @@ exportcmd(int argc UNUSED_PARAM, char **
const char *p;
char **aptr;
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
+ int mask = ~0;
+ int nopt;
+ while ((nopt = nextopt("np"))) {
+ if (nopt == 'n') {
+ mask = ~flag;
+ } else { /* p */
+ break;
+ }
+ }
- if (nextopt("p") != 'p') {
+ if (nopt != 'p') {
aptr = argptr;
name = *aptr;
if (name) {
@@ -12624,10 +12633,11 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name);
if (vp) {
vp->flags |= flag;
+ vp->flags &= mask;
continue;
}
}
- setvar(name, p, flag);
+ setvar(name, p, flag & mask);
} while ((name = *++aptr) != NULL);
return 0;
}

View file

@ -8,7 +8,7 @@
//usage: "\n" //usage: "\n"
//usage: "\nRecognized TIME formats:" //usage: "\nRecognized TIME formats:"
//usage: "\n hh:mm[:ss]" //usage: "\n hh:mm[:ss]"
@@ -135,6 +136,7 @@ @@ -138,6 +139,7 @@
//usage: "Wed Apr 12 18:52:41 MDT 2000\n" //usage: "Wed Apr 12 18:52:41 MDT 2000\n"
#include "libbb.h" #include "libbb.h"
@ -16,7 +16,7 @@
#if ENABLE_FEATURE_DATE_NANO #if ENABLE_FEATURE_DATE_NANO
# include <sys/syscall.h> # include <sys/syscall.h>
#endif #endif
@@ -145,8 +147,9 @@ enum { @@ -148,8 +150,9 @@ enum {
OPT_UTC = (1 << 2), /* u */ OPT_UTC = (1 << 2), /* u */
OPT_DATE = (1 << 3), /* d */ OPT_DATE = (1 << 3), /* d */
OPT_REFERENCE = (1 << 4), /* r */ OPT_REFERENCE = (1 << 4), /* r */
@ -28,7 +28,7 @@
}; };
static void maybe_set_utc(int opt) static void maybe_set_utc(int opt)
@@ -164,12 +167,15 @@ static const char date_longopts[] ALIGN1 @@ -167,12 +170,15 @@ static const char date_longopts[] ALIGN1
/* "universal\0" No_argument "u" */ /* "universal\0" No_argument "u" */
"date\0" Required_argument "d" "date\0" Required_argument "d"
"reference\0" Required_argument "r" "reference\0" Required_argument "r"
@ -44,7 +44,7 @@
struct timespec ts; struct timespec ts;
struct tm tm_time; struct tm tm_time;
char buf_fmt_dt2str[64]; char buf_fmt_dt2str[64];
@@ -184,7 +190,7 @@ int date_main(int argc UNUSED_PARAM, cha @@ -187,7 +193,7 @@ int date_main(int argc UNUSED_PARAM, cha
opt_complementary = "d--s:s--d" opt_complementary = "d--s:s--d"
IF_FEATURE_DATE_ISOFMT(":R--I:I--R"); IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
IF_LONG_OPTS(applet_long_options = date_longopts;) IF_LONG_OPTS(applet_long_options = date_longopts;)
@ -53,7 +53,7 @@
IF_FEATURE_DATE_ISOFMT("I::D:"), IF_FEATURE_DATE_ISOFMT("I::D:"),
&date_str, &date_str, &filename &date_str, &date_str, &filename
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt)); IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
@@ -241,6 +247,31 @@ int date_main(int argc UNUSED_PARAM, cha @@ -244,6 +250,31 @@ int date_main(int argc UNUSED_PARAM, cha
if (*argv) if (*argv)
bb_show_usage(); bb_show_usage();

View file

@ -1,12 +0,0 @@
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -6846,8 +6846,7 @@ evalvar(char *p, int flags, struct strli
patloc = expdest - (char *)stackblock();
if (NULL == subevalvar(p, /* varname: */ NULL, patloc, subtype,
startloc, varflags,
-//TODO: | EXP_REDIR too? All other such places do it too
- /* quotes: */ flags & (EXP_FULL | EXP_CASE),
+ /* quotes: */ flags & (EXP_FULL | EXP_CASE | EXP_REDIR),
var_str_list)
) {
int amount = expdest - (

View file

@ -1,22 +0,0 @@
--- a/networking/vconfig.c
+++ b/networking/vconfig.c
@@ -116,8 +116,6 @@ static const char name_types[] ALIGN1 =
'_', 'N', 'O', '_', 'P', 'A', 'D', 0,
};
-static const char conf_file_name[] ALIGN1 = "/proc/net/vlan/config";
-
int vconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int vconfig_main(int argc, char **argv)
{
@@ -129,10 +127,6 @@ int vconfig_main(int argc, char **argv)
bb_show_usage();
}
- /* Don't bother closing the filedes. It will be closed on cleanup. */
- /* Will die if 802.1q is not present */
- xopen(conf_file_name, O_RDONLY);
-
memset(&ifr, 0, sizeof(ifr));
++argv;

View file

@ -1,29 +0,0 @@
From b7841cf7b919b16d1bd4619154bf7cb4c22b4ccd Mon Sep 17 00:00:00 2001
From: Paul Marks <paul@pmarks.net>
Date: Mon, 14 Jan 2013 01:39:10 +0000
Subject: ntpd: fix incorrect m_status field in outgoing packets. Closes 5120
When using busybox ntpd with an NTPv3 client and NTPv4 server (or vice
versa), the version numbers can be incorrectly ORed together, yielding
the bogus value of "NTPv7". This makes ntpd unusable with clients
such as Chrony and Windows "Internet Time".
This patch avoids the version mangling, by copying only the Leap
Indicator bits from the server's status field.
Signed-off-by: Paul Marks <paul@pmarks.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
(limited to 'networking/ntpd.c')
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -1794,7 +1794,7 @@ recv_and_process_client_pkt(void /*int f
/* Build a reply packet */
memset(&msg, 0, sizeof(msg));
- msg.m_status = G.stratum < MAXSTRAT ? G.ntp_status : LI_ALARM;
+ msg.m_status = G.stratum < MAXSTRAT ? (G.ntp_status & LI_MASK) : LI_ALARM;
msg.m_status |= (query_status & VERSION_MASK);
msg.m_status |= ((query_status & MODE_MASK) == MODE_CLIENT) ?
MODE_SERVER : MODE_SYM_PAS;

View file

@ -1,11 +0,0 @@
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -301,7 +301,7 @@ static NOINLINE void rewrite(priv_dumper
) {
fu->reps += (dumper->blocksize - fs->bcnt) / fu->bcnt;
}
- if (fu->reps > 1) {
+ if (fu->reps > 1 && fu->nextpr) {
for (pr = fu->nextpr;; pr = pr->nextpr)
if (!pr->nextpr)
break;

View file

@ -1,86 +0,0 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -26,8 +26,8 @@
#include "dhcpc.h"
#include <netinet/if_ether.h>
-#include <netpacket/packet.h>
#include <linux/filter.h>
+#include <linux/if_packet.h>
/* struct client_config_t client_config is in bb_common_bufsiz1 */
@@ -846,17 +846,41 @@ static int send_release(uint32_t server,
static NOINLINE int udhcp_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
{
int bytes;
+ int nocsum = 0;
struct ip_udp_dhcp_packet packet;
uint16_t check;
+ unsigned char cmsgbuf[CMSG_LEN(sizeof(struct tpacket_auxdata))];
+ struct iovec iov = {
+ .iov_base = &packet,
+ .iov_len = sizeof(packet),
+ };
+ struct msghdr msg = {
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = cmsgbuf,
+ .msg_controllen = sizeof(cmsgbuf),
+ };
+ struct cmsghdr *cmsg;
memset(&packet, 0, sizeof(packet));
- bytes = safe_read(fd, &packet, sizeof(packet));
+ do {
+ bytes = recvmsg(fd, &msg, 0);
+ } while (bytes < 0 && errno == EINTR);
+
if (bytes < 0) {
log1("Packet read error, ignoring");
/* NB: possible down interface, etc. Caller should pause. */
return bytes; /* returns -1 */
}
+ for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
+ if (cmsg->cmsg_level == SOL_PACKET &&
+ cmsg->cmsg_type == PACKET_AUXDATA) {
+ struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg);
+ nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY;
+ }
+ }
+
if (bytes < (int) (sizeof(packet.ip) + sizeof(packet.udp))) {
log1("Packet is too short, ignoring");
return -2;
@@ -896,7 +920,7 @@ static NOINLINE int udhcp_recv_raw_packe
packet.ip.tot_len = packet.udp.len; /* yes, this is needed */
check = packet.udp.check;
packet.udp.check = 0;
- if (check && check != udhcp_checksum(&packet, bytes)) {
+ if (!nocsum && check && check != udhcp_checksum(&packet, bytes)) {
log1("Packet with bad UDP checksum received, ignoring");
return -2;
}
@@ -942,6 +966,7 @@ static int udhcp_raw_socket(int ifindex)
{
int fd;
struct sockaddr_ll sock;
+ int val;
/*
* Comment:
@@ -1008,6 +1033,13 @@ static int udhcp_raw_socket(int ifindex)
log1("Attached filter to raw socket fd %d", fd); // log?
}
+ val = 1;
+ if (setsockopt(fd, SOL_PACKET, PACKET_AUXDATA, &val,
+ sizeof(val)) < 0) {
+ if (errno != ENOPROTOOPT)
+ log1("Failed to set auxiliary packet data for socket fd %d", fd);
+ }
+
log1("Created raw socket");
return fd;

View file

@ -1,16 +0,0 @@
--- a/include/platform.h
+++ b/include/platform.h
@@ -443,6 +443,13 @@ typedef unsigned smalluint;
# undef HAVE_NET_ETHERNET_H
#endif
+#if defined(__musl__)
+# undef HAVE_SETBIT
+# include <stddef.h>
+# include <termios.h>
+# include <sys/ioctl.h>
+#endif
+
/*
* Now, define prototypes for all the functions defined in platform.c
* These must come after all the HAVE_* macros are defined (or not)