From 03e30ae13f122c6606d8c63dbf0e49a5f4a8dc79 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Sun, 3 Apr 2011 18:31:00 +0000 Subject: [PATCH] update busybox to 1.18.4, patch from Peter Wagner SVN-Revision: 26455 --- package/busybox/Makefile | 6 +- package/busybox/config/Config.in | 75 ++++++---- package/busybox/config/archival/Config.in | 2 +- .../busybox/config/console-tools/Config.in | 15 ++ package/busybox/config/coreutils/Config.in | 8 +- package/busybox/config/e2fsprogs/Config.in | 1 + package/busybox/config/editors/Config.in | 12 +- package/busybox/config/init/Config.in | 57 ++++--- package/busybox/config/libbb/Config.in | 16 +- package/busybox/config/loginutils/Config.in | 100 +++++++------ package/busybox/config/miscutils/Config.in | 53 ++++++- package/busybox/config/modutils/Config.in | 2 + package/busybox/config/networking/Config.in | 48 +++++- .../busybox/config/networking/udhcp/Config.in | 5 + package/busybox/config/procps/Config.in | 24 ++- package/busybox/config/shell/Config.in | 139 ++++++++++-------- package/busybox/config/sysklogd/Config.in | 19 +++ package/busybox/config/util-linux/Config.in | 52 +++++-- package/busybox/patches/000-autoconf.patch | 11 -- .../busybox/patches/000-upstream-sort.patch | 12 -- .../241-udhcpc-oversized_packets.patch | 22 +-- .../patches/244-udhcpc_add_6rd_option.patch | 42 +++--- .../245-udhcpc_add_msroutes_option.patch | 22 --- package/busybox/patches/300-netmsg.patch | 49 +++--- .../610-syslog-remote-retry-connection.patch | 39 ----- .../busybox/patches/920-macosx-endian.patch | 35 ----- 26 files changed, 501 insertions(+), 365 deletions(-) delete mode 100644 package/busybox/patches/000-autoconf.patch delete mode 100644 package/busybox/patches/000-upstream-sort.patch delete mode 100644 package/busybox/patches/245-udhcpc_add_msroutes_option.patch delete mode 100644 package/busybox/patches/610-syslog-remote-retry-connection.patch delete mode 100644 package/busybox/patches/920-macosx-endian.patch diff --git a/package/busybox/Makefile b/package/busybox/Makefile index 84d70990a2..d41a279b1f 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=busybox -PKG_VERSION:=1.17.3 -PKG_RELEASE:=2 +PKG_VERSION:=1.18.4 +PKG_RELEASE:=1 PKG_FLAGS:=essential PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://www.busybox.net/downloads \ http://distfiles.gentoo.org/distfiles/ -PKG_MD5SUM:=a2ce1a951571da8c6e0eaf75b1acef60 +PKG_MD5SUM:=b03c5b46ced732679e525a920a1a62f5 PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc PKG_BUILD_PARALLEL:=1 diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in index 1bd8a36968..e553862119 100644 --- a/package/busybox/config/Config.in +++ b/package/busybox/config/Config.in @@ -46,6 +46,17 @@ config BUSYBOX_CONFIG_USE_PORTABLE_CODE compiler other than gcc. If you do use gcc, this option may needlessly increase code size. +config BUSYBOX_CONFIG_PLATFORM_LINUX + bool "Enable Linux-specific applets and features" + default y + help + For the most part, busybox requires only POSIX compatibility + from the target system, but some applets and features use + Linux-specific interfaces. + + Answering 'N' here will disable such applets and hide the + corresponding configuration options. + choice prompt "Buffer allocation policy" default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK @@ -111,6 +122,15 @@ config BUSYBOX_CONFIG_FEATURE_INSTALLER busybox at runtime to create hard links or symlinks for all the applets that are compiled into busybox. +config BUSYBOX_CONFIG_INSTALL_NO_USR + bool "Don't use /usr" + default n + depends on BUSYBOX_CONFIG_FEATURE_INSTALLER + help + Disable use of /usr. busybox --install and "make install" + will install applets only to /bin and /sbin, + never to /usr/bin or /usr/sbin. + config BUSYBOX_CONFIG_LOCALE_SUPPORT bool "Enable locale support (system needs locale for this to work)" default n @@ -137,6 +157,7 @@ config BUSYBOX_CONFIG_UNICODE_USING_LOCALE help With this option on, Unicode support is implemented using libc routines. Otherwise, internal implementation is used. + Internal implementation is smaller. config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV bool "Check $LANG environment variable" @@ -262,15 +283,6 @@ config BUSYBOX_CONFIG_FEATURE_CLEAN_UP Don't enable this unless you have a really good reason to clean things up manually. -config BUSYBOX_CONFIG_FEATURE_UTMP - bool "Support utmp file" - default n - help - The file /var/run/utmp is used to track who is currently logged in. - With this option on, certain applets (getty, login, telnetd etc) - will create and delete entries there. - "who" applet requires this option. - config BUSYBOX_CONFIG_FEATURE_WTMP bool "Support wtmp file" default n @@ -282,6 +294,15 @@ config BUSYBOX_CONFIG_FEATURE_WTMP will append new entries there. "last" applet requires this option. +config BUSYBOX_CONFIG_FEATURE_UTMP + bool "Support utmp file" + default n + help + The file /var/run/utmp is used to track who is currently logged in. + With this option on, certain applets (getty, login, telnetd etc) + will create and delete entries there. + "who" applet requires this option. + config BUSYBOX_CONFIG_FEATURE_PIDFILE bool "Support writing pidfiles" default y @@ -294,14 +315,19 @@ config BUSYBOX_CONFIG_FEATURE_SUID default y help With this option you can install the busybox binary belonging - to root with the suid bit set, and it will automatically drop - priviledges for applets that don't need root access. + to root with the suid bit set, enabling some applets to perform + root-level operations even when run by ordinary users + (for example, mounting of user mounts in fstab needs this). + + Busybox will automatically drop priviledges for applets + that don't need root access. If you are really paranoid and don't want to do this, build two busybox binaries with different applets in them (and the appropriate symlinks pointing to each binary), and only set the suid bit on the - one that needs it. The applets currently marked to need the suid bit - are: + one that needs it. + + The applets currently marked to need the suid bit are: crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su, traceroute, vlock. @@ -351,6 +377,7 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET config BUSYBOX_CONFIG_SELINUX bool "Support NSA Security Enhanced Linux" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Enable support for SELinux in applets ls, ps, and id. Also provide the option of compiling in SELinux applets. @@ -637,20 +664,13 @@ endchoice endmenu -menu 'Installation Options' - -config BUSYBOX_CONFIG_INSTALL_NO_USR - bool "Don't use /usr" - default n - help - Disable use of /usr. Don't activate this option if you don't know - that you really want this behaviour. +menu 'Installation Options ("make install" behavior)' choice - prompt "Applets links" + prompt "What kind of applet links to install" default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS help - Choose how you install applets links. + Choose what kind of links to applets are created by "make install". config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS bool "as soft-links" @@ -674,8 +694,9 @@ config BUSYBOX_CONFIG_INSTALL_APPLET_DONT bool "not installed" depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS help - Do not install applet links. Useful when using the -install feature - or a standalone shell for rescue purposes. + Do not install applet links. Useful when you plan to use + busybox --install for installing links, or plan to use + a standalone shell and thus don't need applet links. endchoice @@ -699,8 +720,8 @@ config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER bool "as script wrapper" help - Install /bin/sh applet as script wrapper that call the busybox - binary. + Install /bin/sh applet as script wrapper that calls + the busybox binary. endchoice diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in index 1424c8673c..354569481e 100644 --- a/package/busybox/config/archival/Config.in +++ b/package/busybox/config/archival/Config.in @@ -204,7 +204,7 @@ config BUSYBOX_CONFIG_RPM2CPIO bool "rpm2cpio" default n help - Converts an RPM file into a CPIO archive. + Converts a RPM file into a CPIO archive. config BUSYBOX_CONFIG_RPM bool "rpm" diff --git a/package/busybox/config/console-tools/Config.in b/package/busybox/config/console-tools/Config.in index 710bf976fd..6d6f0bb3a4 100644 --- a/package/busybox/config/console-tools/Config.in +++ b/package/busybox/config/console-tools/Config.in @@ -5,9 +5,12 @@ menu "Console Utilities" + + config BUSYBOX_CONFIG_CHVT bool "chvt" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program is used to change to another terminal. Example: chvt 4 (change to terminal /dev/tty4) @@ -15,6 +18,7 @@ config BUSYBOX_CONFIG_CHVT config BUSYBOX_CONFIG_FGCONSOLE bool "fgconsole" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program prints active (foreground) console number. @@ -27,12 +31,14 @@ config BUSYBOX_CONFIG_CLEAR config BUSYBOX_CONFIG_DEALLOCVT bool "deallocvt" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program deallocates unused virtual consoles. config BUSYBOX_CONFIG_DUMPKMAP bool "dumpkmap" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program dumps the kernel's keyboard translation table to stdout, in binary format. You can then use loadkmap to load it. @@ -40,18 +46,21 @@ config BUSYBOX_CONFIG_DUMPKMAP config BUSYBOX_CONFIG_KBD_MODE bool "kbd_mode" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program reports and sets keyboard mode. config BUSYBOX_CONFIG_LOADFONT bool "loadfont" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program loads a console font from standard input. config BUSYBOX_CONFIG_LOADKMAP bool "loadkmap" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program loads a keyboard translation table from standard input. @@ -59,6 +68,7 @@ config BUSYBOX_CONFIG_LOADKMAP config BUSYBOX_CONFIG_OPENVT bool "openvt" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program is used to start a command on an unused virtual terminal. @@ -90,6 +100,7 @@ config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT config BUSYBOX_CONFIG_SETCONSOLE bool "setconsole" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program redirects the system console to another device, like the current tty while logged in via telnet. @@ -104,6 +115,7 @@ config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS config BUSYBOX_CONFIG_SETFONT bool "setfont" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Allows to load console screen map. Useful for i18n. @@ -125,6 +137,7 @@ config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR config BUSYBOX_CONFIG_SETKEYCODES bool "setkeycodes" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program loads entries into the kernel's scancode-to-keycode map, allowing unusual keyboards to generate usable keycodes. @@ -132,12 +145,14 @@ config BUSYBOX_CONFIG_SETKEYCODES config BUSYBOX_CONFIG_SETLOGCONS bool "setlogcons" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This program redirects the output console of kernel messages. config BUSYBOX_CONFIG_SHOWKEY bool "showkey" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Shows keys pressed. diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in index e72ea6c4b7..7508c72b10 100644 --- a/package/busybox/config/coreutils/Config.in +++ b/package/busybox/config/coreutils/Config.in @@ -36,7 +36,7 @@ config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT config BUSYBOX_CONFIG_FEATURE_DATE_NANO bool "Support %[num]N nanosecond format specifier" default n - depends on BUSYBOX_CONFIG_DATE + depends on BUSYBOX_CONFIG_DATE && BUSYBOX_CONFIG_PLATFORM_LINUX help Support %[num]N format specifier. Adds ~250 bytes of code. @@ -96,6 +96,11 @@ config BUSYBOX_CONFIG_FEATURE_TR_EQUIV replace all instances of 'a' with 'xyz'. This option is mainly useful for cases when no other way of expressing a character is possible. +config BUSYBOX_CONFIG_BASE64 + bool "base64" + default n + help + Base64 encode and decode config BUSYBOX_CONFIG_CAL bool "cal" @@ -681,6 +686,7 @@ config BUSYBOX_CONFIG_FEATURE_SPLIT_FANCY config BUSYBOX_CONFIG_STAT bool "stat" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help display file or filesystem status. diff --git a/package/busybox/config/e2fsprogs/Config.in b/package/busybox/config/e2fsprogs/Config.in index 08a1452c32..066fe7bf69 100644 --- a/package/busybox/config/e2fsprogs/Config.in +++ b/package/busybox/config/e2fsprogs/Config.in @@ -31,6 +31,7 @@ config BUSYBOX_CONFIG_FSCK config BUSYBOX_CONFIG_LSATTR bool "lsattr" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help lsattr lists the file attributes on a second extended file system. diff --git a/package/busybox/config/editors/Config.in b/package/busybox/config/editors/Config.in index ee4ac86b3d..894626f3c2 100644 --- a/package/busybox/config/editors/Config.in +++ b/package/busybox/config/editors/Config.in @@ -5,6 +5,12 @@ menu "Editors" +config BUSYBOX_CONFIG_PATCH + bool "patch" + default n + help + Apply a unified diff formatted patch. + config BUSYBOX_CONFIG_AWK bool "awk" default y @@ -58,12 +64,6 @@ config BUSYBOX_CONFIG_ED Small, simple, evil. Part of SUSv3. If you're not already using this, you don't need it. -config BUSYBOX_CONFIG_PATCH - bool "patch" - default n - help - Apply a unified diff formatted patch. - config BUSYBOX_CONFIG_SED bool "sed" default y diff --git a/package/busybox/config/init/Config.in b/package/busybox/config/init/Config.in index bdf181c2f1..92aceed774 100644 --- a/package/busybox/config/init/Config.in +++ b/package/busybox/config/init/Config.in @@ -43,7 +43,31 @@ config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE help Enable reading and parsing of $PWD/bootchartd.conf and /etc/bootchartd.conf files. +config BUSYBOX_CONFIG_HALT + bool "poweroff, halt, and reboot" + default y + help + Stop all processes and either halt, reboot, or power off the system. + +config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT + bool "Call telinit on shutdown and reboot" + default n + depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT + help + Call an external program (normally telinit) to facilitate + a switch to a proper runlevel. + This option is only available if you selected halt and friends, + but did not select init. + +config BUSYBOX_CONFIG_TELINIT_PATH + string "Path to telinit executable" + default "/sbin/telinit" + depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT + help + When busybox halt and friends have to call external telinit + to facilitate proper shutdown, this path is to be used when + locating telinit executable. config BUSYBOX_CONFIG_INIT bool "init" default y @@ -126,32 +150,17 @@ config BUSYBOX_CONFIG_FEATURE_INITRD This does not apply to initramfs, which runs /init as PID 1 and requires no special support. -config BUSYBOX_CONFIG_HALT - bool "poweroff, halt, and reboot" - default y - help - Stop all processes and either halt, reboot, or power off the system. - -config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT - bool "Call telinit on shutdown and reboot" - default n - depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT - help - Call an external program (normally telinit) to facilitate - a switch to a proper runlevel. - - This option is only available if you selected halt and friends, - but did not select init. - -config BUSYBOX_CONFIG_TELINIT_PATH - string "Path to telinit executable" - default "/sbin/telinit" - depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT +config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE + string "Initial terminal type" + default "linux" + depends on BUSYBOX_CONFIG_INIT help - When busybox halt and friends have to call external telinit - to facilitate proper shutdown, this path is to be used when - locating telinit executable. + This is the initial value set by init for the TERM environment + variable. This variable is used by programs which make use of + extended terminal capabilities. + Note that on Linux, init attempts to detect serial terminal and + sets TERM to "vt102" if one is found. config BUSYBOX_CONFIG_MESG bool "mesg" default y diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in index ec10715653..a3c9641c4d 100644 --- a/package/busybox/config/libbb/Config.in +++ b/package/busybox/config/libbb/Config.in @@ -41,6 +41,17 @@ config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS a rarely used feature which allows you to use names instead of IP/mask pairs in route command. +config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS + bool "Use termios to manipulate the screen" + default n + depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_POWERTOP + help + This option allows utilities such as 'more' and 'top' to determine + the size of the screen. If you leave this disabled, your utilities + that display things on the screen will be especially primitive and + will be unable to determine the current screen size, and will be + unable to move the cursor. + config BUSYBOX_CONFIG_FEATURE_EDITING bool "Command line editing" default y @@ -76,9 +87,9 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY bool "History saving" default n - depends on BUSYBOX_CONFIG_ASH && BUSYBOX_CONFIG_FEATURE_EDITING + depends on BUSYBOX_CONFIG_FEATURE_EDITING help - Enable history saving in ash shell. + Enable history saving in shells. config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION bool "Tab completion" @@ -151,6 +162,7 @@ config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB config BUSYBOX_CONFIG_MONOTONIC_SYSCALL bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring time intervals (time, ping, traceroute etc need this). diff --git a/package/busybox/config/loginutils/Config.in b/package/busybox/config/loginutils/Config.in index 0a7d253d78..0298840620 100644 --- a/package/busybox/config/loginutils/Config.in +++ b/package/busybox/config/loginutils/Config.in @@ -5,6 +5,18 @@ menu "Login/Password Management Utilities" +config BUSYBOX_CONFIG_ADD_SHELL + bool "add-shell" + default n if BUSYBOX_CONFIG_DESKTOP + help + Add shells to /etc/shells. + +config BUSYBOX_CONFIG_REMOVE_SHELL + bool "remove-shell" + default n if BUSYBOX_CONFIG_DESKTOP + help + Remove shells from /etc/shells. + config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS bool "Support for shadow passwords" default n @@ -91,41 +103,18 @@ config BUSYBOX_CONFIG_USE_BB_CRYPT_SHA With this option off, login will fail password check for any user which has password encrypted with these algorithms. -config BUSYBOX_CONFIG_ADDGROUP - bool "addgroup" +config BUSYBOX_CONFIG_ADDUSER + bool "adduser" default n help - Utility for creating a new group account. + Utility for creating a new user account. -config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS +config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS bool "Enable long options" default n - depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS - help - Support long options for the addgroup applet. - -config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP - bool "Support for adding users to groups" - default n - depends on BUSYBOX_CONFIG_ADDGROUP - help - If called with two non-option arguments, - addgroup will add an existing user to an - existing group. - -config BUSYBOX_CONFIG_DELGROUP - bool "delgroup" - default n - help - Utility for deleting a group account. - -config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP - bool "Support for removing users from groups" - default n - depends on BUSYBOX_CONFIG_DELGROUP + depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS help - If called with two non-option arguments, deluser - or delgroup will remove an user from a specified group. + Support long options for the adduser applet. config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES bool "Enable sanity check on user/group names in adduser and addgroup" @@ -139,19 +128,6 @@ config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES For compatibility with Samba machine accounts "$" is also supported at the end of the user or group name. -config BUSYBOX_CONFIG_ADDUSER - bool "adduser" - default n - help - Utility for creating a new user account. - -config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS - bool "Enable long options" - default n - depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS - help - Support long options for the adduser applet. - config BUSYBOX_CONFIG_FIRST_SYSTEM_ID int "First valid system uid or gid for adduser and addgroup" depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP @@ -168,12 +144,48 @@ config BUSYBOX_CONFIG_LAST_SYSTEM_ID help Last valid system uid or gid for adduser and addgroup +config BUSYBOX_CONFIG_ADDGROUP + bool "addgroup" + default n + help + Utility for creating a new group account. + +config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS + bool "Enable long options" + default n + depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS + help + Support long options for the addgroup applet. + +config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP + bool "Support for adding users to groups" + default n + depends on BUSYBOX_CONFIG_ADDGROUP + help + If called with two non-option arguments, + addgroup will add an existing user to an + existing group. + config BUSYBOX_CONFIG_DELUSER bool "deluser" default n help Utility for deleting a user account. +config BUSYBOX_CONFIG_DELGROUP + bool "delgroup" + default n + help + Utility for deleting a group account. + +config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP + bool "Support for removing users from groups" + default n + depends on BUSYBOX_CONFIG_DELGROUP + help + If called with two non-option arguments, deluser + or delgroup will remove an user from a specified group. + config BUSYBOX_CONFIG_GETTY bool "getty" default n @@ -184,7 +196,6 @@ config BUSYBOX_CONFIG_GETTY config BUSYBOX_CONFIG_LOGIN bool "login" default n - select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SYSLOG help login is used when signing onto a system. @@ -227,7 +238,6 @@ config BUSYBOX_CONFIG_FEATURE_SECURETTY config BUSYBOX_CONFIG_PASSWD bool "passwd" default y - select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SYSLOG help passwd changes passwords for user and group accounts. A normal user @@ -263,7 +273,6 @@ config BUSYBOX_CONFIG_CHPASSWD config BUSYBOX_CONFIG_SU bool "su" default n - select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SYSLOG help su is used to become another user during a login session. @@ -293,7 +302,6 @@ config BUSYBOX_CONFIG_SULOGIN config BUSYBOX_CONFIG_VLOCK bool "vlock" default n - select BUSYBOX_CONFIG_FEATURE_SUID help Build the "vlock" applet which allows you to lock (virtual) terminals. diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in index d3cf407b03..82e48f01f3 100644 --- a/package/busybox/config/miscutils/Config.in +++ b/package/busybox/config/miscutils/Config.in @@ -8,27 +8,43 @@ menu "Miscellaneous Utilities" config BUSYBOX_CONFIG_CONSPY bool "conspy" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help A text-mode VNC like program for Linux virtual terminals. example: conspy NUM shared access to console num or conspy -nd NUM screenshot of console num or conspy -cs NUM poor man's GNU screen like +config BUSYBOX_CONFIG_NANDWRITE + bool "nandwrite" + default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX + help + Write to the specified MTD device, with bad blocks awareness +config BUSYBOX_CONFIG_NANDDUMP + bool "nanddump" + default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX + help + Dump the content of raw NAND chip config BUSYBOX_CONFIG_UBIATTACH bool "ubiattach" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Attach MTD device to an UBI device. config BUSYBOX_CONFIG_UBIDETACH bool "ubidetach" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Detach MTD device from an UBI device. config BUSYBOX_CONFIG_ADJTIMEX bool "adjtimex" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Adjtimex reads and optionally sets adjustment parameters for the Linux clock adjustment algorithm. @@ -40,9 +56,24 @@ config BUSYBOX_CONFIG_BBCONFIG The bbconfig applet will print the config file with which busybox was built. +config BUSYBOX_CONFIG_FEATURE_COMPRESS_BBCONFIG + bool "Compress bbconfig data" + default n + depends on BUSYBOX_CONFIG_BBCONFIG + help + Store bbconfig data in compressed form, uncompress them on-the-fly + before output. + + If you have a really tiny busybox with few applets enabled (and + bunzip2 isn't one of them), the overhead of the decompressor might + be noticeable. Also, if you run executables directly from ROM + and have very little memory, this might not be a win. Otherwise, + you probably want this. + config BUSYBOX_CONFIG_BEEP bool "beep" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The beep applets beeps in a given freq/Hz. @@ -139,7 +170,6 @@ config BUSYBOX_CONFIG_CHRT config BUSYBOX_CONFIG_CROND bool "crond" default y - select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SYSLOG help Crond is a background daemon that parses individual crontab @@ -174,7 +204,6 @@ config BUSYBOX_CONFIG_FEATURE_CROND_DIR config BUSYBOX_CONFIG_CRONTAB bool "crontab" default y - select BUSYBOX_CONFIG_FEATURE_SUID help Crontab manipulates the crontab for a particular user. Only the superuser may specify a different user and/or crontab directory. @@ -199,6 +228,7 @@ config BUSYBOX_CONFIG_FEATURE_DC_LIBM config BUSYBOX_CONFIG_DEVFSD bool "devfsd (obsolete)" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_FEATURE_SYSLOG help This is deprecated and should NOT be used anymore. @@ -242,6 +272,7 @@ config BUSYBOX_CONFIG_DEVFSD_VERBOSE config BUSYBOX_CONFIG_FEATURE_DEVFS bool "Use devfs names for all devices (obsolete)" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This is obsolete and should NOT be used anymore. Use linux >= 2.6 (optionally with hotplug) and mdev instead! @@ -261,6 +292,7 @@ config BUSYBOX_CONFIG_DEVMEM config BUSYBOX_CONFIG_EJECT bool "eject" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Used to eject cdroms. (defaults to /dev/cdrom) @@ -275,6 +307,7 @@ config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI config BUSYBOX_CONFIG_FBSPLASH bool "fbsplash" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Shows splash image and progress bar on framebuffer device. Can be used during boot phase of an embedded device. ~2kb. @@ -324,6 +357,7 @@ config BUSYBOX_CONFIG_FLASH_ERASEALL config BUSYBOX_CONFIG_IONICE bool "ionice" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Set/set program io scheduling class and priority Requires kernel >= 2.6.13 @@ -424,11 +458,12 @@ config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS default n depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD help - Enable "-N" command. + Enables "-N" command. config BUSYBOX_CONFIG_HDPARM bool "hdparm" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Get/Set hard drive parameters. Primarily intended for ATA drives. Adds about 13k (or around 30k if you enable the @@ -496,15 +531,15 @@ config BUSYBOX_CONFIG_MAKEDEVS help 'makedevs' is a utility used to create a batch of devices with one command. - . + There are two choices for command line behaviour, the interface as used by LEAF/Linux Router Project, or a device table file. - . + 'leaf' is traditionally what busybox follows, it allows multiple devices of a particluar type to be created per command. e.g. /dev/hda[0-9] Device properties are passed as command line arguments. - . + 'table' reads device properties from a file or stdin, allowing a batch of unrelated devices to be made with one command. User/group names are allowed as an alternative to uid/gid. @@ -551,6 +586,7 @@ config BUSYBOX_CONFIG_MT config BUSYBOX_CONFIG_RAIDAUTORUN bool "raidautorun" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help raidautorun tells the kernel md driver to search and start RAID arrays. @@ -558,7 +594,7 @@ config BUSYBOX_CONFIG_RAIDAUTORUN config BUSYBOX_CONFIG_READAHEAD bool "readahead" default n - depends on BUSYBOX_CONFIG_LFS + depends on BUSYBOX_CONFIG_LFS && BUSYBOX_CONFIG_PLATFORM_LINUX help Preload the files listed on the command line into RAM cache so that subsequent reads on these files will not block on disk I/O. @@ -575,6 +611,7 @@ config BUSYBOX_CONFIG_READAHEAD config BUSYBOX_CONFIG_RFKILL bool "rfkill" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Enable/disable wireless devices. @@ -595,6 +632,7 @@ config BUSYBOX_CONFIG_RUNLEVEL config BUSYBOX_CONFIG_RX bool "rx" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Receive files using the Xmodem protocol. @@ -666,6 +704,7 @@ config BUSYBOX_CONFIG_WALL config BUSYBOX_CONFIG_WATCHDOG bool "watchdog" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The watchdog utility is used with hardware or software watchdog device drivers. It opens the specified watchdog device special file diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in index ad5401f953..c52c67dcb4 100644 --- a/package/busybox/config/modutils/Config.in +++ b/package/busybox/config/modutils/Config.in @@ -1,9 +1,11 @@ +# 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. # menu "Linux Module Utilities" +depends on BUSYBOX_CONFIG_PLATFORM_LINUX config BUSYBOX_CONFIG_MODINFO bool "modinfo" diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in index 481567c61a..82d3603d7a 100644 --- a/package/busybox/config/networking/Config.in +++ b/package/busybox/config/networking/Config.in @@ -5,6 +5,12 @@ menu "Networking Utilities" +config BUSYBOX_CONFIG_NBDCLIENT + bool "nbd-client" + default n + help + Network block device client + config BUSYBOX_CONFIG_NC bool "nc" default y @@ -82,18 +88,21 @@ config BUSYBOX_CONFIG_VERBOSE_RESOLUTION_ERRORS config BUSYBOX_CONFIG_ARP bool "arp" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Manipulate the system ARP cache. config BUSYBOX_CONFIG_ARPING bool "arping" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Ping hosts by ARP packets. config BUSYBOX_CONFIG_BRCTL bool "brctl" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Manage ethernet bridges. Supports addbr/delbr and addif/delif. @@ -126,6 +135,7 @@ config BUSYBOX_CONFIG_DNSD config BUSYBOX_CONFIG_ETHER_WAKE bool "ether-wake" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Send a magic packet to wake up sleeping machines. @@ -297,9 +307,18 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_PROXY Then a request to /url/myfile will be forwarded to http://hostname[:port]/new/path/myfile. +config BUSYBOX_CONFIG_FEATURE_HTTPD_GZIP + bool "Support for GZIP content encoding" + default n + depends on BUSYBOX_CONFIG_HTTPD + help + Makes httpd send files using GZIP content encoding if the + client supports it and a pre-compressed .gz exists. + config BUSYBOX_CONFIG_IFCONFIG bool "ifconfig" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Ifconfig is used to configure the kernel-resident network interfaces. @@ -347,6 +366,7 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS config BUSYBOX_CONFIG_IFENSLAVE bool "ifenslave" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Userspace application to bind several interfaces to a logical interface (use with kernel bonding driver). @@ -354,6 +374,7 @@ config BUSYBOX_CONFIG_IFENSLAVE config BUSYBOX_CONFIG_IFPLUGD bool "ifplugd" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Network interface plug detection daemon. @@ -395,7 +416,7 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN bool "Use busybox ip applet" default n - depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP + depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP && BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_IP select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS select BUSYBOX_CONFIG_FEATURE_IP_LINK @@ -514,6 +535,7 @@ config BUSYBOX_CONFIG_FEATURE_INETD_RPC config BUSYBOX_CONFIG_IP bool "ip" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The "ip" applet is a TCP/IP interface configuration and routing utility. You generally don't need "ip" to use busybox with @@ -629,6 +651,7 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS config BUSYBOX_CONFIG_NAMEIF bool "nameif" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_FEATURE_SYSLOG help nameif is used to rename network interface by its MAC address. @@ -663,6 +686,7 @@ config BUSYBOX_CONFIG_NETMSG config BUSYBOX_CONFIG_NETSTAT bool "netstat" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help netstat prints information about the Linux networking subsystem. @@ -691,6 +715,7 @@ config BUSYBOX_CONFIG_NSLOOKUP config BUSYBOX_CONFIG_NTPD bool "ntpd" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The NTP client/server daemon. @@ -705,6 +730,7 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER config BUSYBOX_CONFIG_PING bool "ping" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit an ICMP ECHO_RESPONSE from a host or gateway. @@ -733,12 +759,14 @@ config BUSYBOX_CONFIG_PSCAN config BUSYBOX_CONFIG_ROUTE bool "route" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Route displays or manipulates the kernel's IP routing tables. config BUSYBOX_CONFIG_SLATTACH bool "slattach" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help slattach is a small utility to attach network interfaces to serial lines. @@ -819,7 +847,7 @@ config BUSYBOX_CONFIG_TELNETD mount -t devpts devpts /dev/pts - You need to be sure that Busybox has LOGIN and + You need to be sure that busybox has LOGIN and FEATURE_SUID enabled. And finally, you should make certain that Busybox has been installed setuid root: @@ -925,6 +953,7 @@ config BUSYBOX_CONFIG_TFTP_DEBUG config BUSYBOX_CONFIG_TRACEROUTE bool "traceroute" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Utility to trace the route of IP packets. @@ -961,6 +990,7 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP config BUSYBOX_CONFIG_TUNCTL bool "tunctl" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help tunctl creates or deletes tun devices. @@ -993,6 +1023,7 @@ config BUSYBOX_CONFIG_UDPSVD config BUSYBOX_CONFIG_VCONFIG bool "vconfig" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Creates, removes, and configures VLAN interfaces @@ -1024,9 +1055,22 @@ config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS help Support long options for the wget applet. +config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT + bool "Enable read timeout option -T SEC" + default n + depends on BUSYBOX_CONFIG_WGET + help + Supports network read timeout for wget, so that wget will give + up and timeout when reading network data, through the -T command + line option. Currently only network data read timeout is + supported (i.e., timeout is not applied to the DNS nor TCP + connection initialization). When FEATURE_WGET_LONG_OPTIONS is + also enabled, the --timeout option will work in addition to -T. + config BUSYBOX_CONFIG_ZCIP bool "zcip" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_FEATURE_SYSLOG help ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927. diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in index e9827870e4..aa2a80077e 100644 --- a/package/busybox/config/networking/udhcp/Config.in +++ b/package/busybox/config/networking/udhcp/Config.in @@ -1,11 +1,15 @@ +# 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_UDHCPD bool "udhcp server (udhcpd)" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help udhcpd is a DHCP server geared primarily toward embedded systems, while striving to be fully functional and RFC compliant. @@ -49,6 +53,7 @@ config BUSYBOX_CONFIG_DHCPD_LEASES_FILE config BUSYBOX_CONFIG_UDHCPC bool "udhcp client (udhcpc)" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help udhcpc is a DHCP client geared primarily toward embedded systems, while striving to be fully functional and RFC compliant. diff --git a/package/busybox/config/procps/Config.in b/package/busybox/config/procps/Config.in index da5e95cf00..fbb2cee1d5 100644 --- a/package/busybox/config/procps/Config.in +++ b/package/busybox/config/procps/Config.in @@ -5,6 +5,26 @@ menu "Process Utilities" +config BUSYBOX_CONFIG_IOSTAT + bool "iostat" + default n + help + Report CPU and I/O statistics +config BUSYBOX_CONFIG_MPSTAT + bool "mpstat" + default n + help + Per-processor statistics +config BUSYBOX_CONFIG_PMAP + bool "pmap" + default n + help + Display processes' memory mappings. +config BUSYBOX_CONFIG_POWERTOP + bool "powertop" + default n + help + Analyze power consumption on Intel-based laptops config BUSYBOX_CONFIG_SMEMCAP bool "smemcap" default n @@ -15,6 +35,7 @@ config BUSYBOX_CONFIG_SMEMCAP config BUSYBOX_CONFIG_FREE bool "free" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help free displays the total amount of free and used physical and swap memory in the system, as well as the buffers used by the kernel. @@ -109,7 +130,7 @@ config BUSYBOX_CONFIG_FEATURE_PS_WIDE config BUSYBOX_CONFIG_FEATURE_PS_TIME bool "Enable time and elapsed time output" default n - depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP + depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP && BUSYBOX_CONFIG_PLATFORM_LINUX help Support -o time and -o etime output specifiers. @@ -205,6 +226,7 @@ config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS config BUSYBOX_CONFIG_UPTIME bool "uptime" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help uptime gives a one line display of the current time, how long the system has been running, how many users are currently logged diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in index d652dd3074..57f490e175 100644 --- a/package/busybox/config/shell/Config.in +++ b/package/busybox/config/shell/Config.in @@ -5,8 +5,6 @@ menu "Shells" - - config BUSYBOX_CONFIG_ASH bool "ash" default y @@ -110,19 +108,55 @@ config BUSYBOX_CONFIG_ASH_EXPAND_PRMT This option recreates the prompt string from the environment variable each time it is displayed. +config BUSYBOX_CONFIG_CTTYHACK + bool "cttyhack" + default n + help + One common problem reported on the mailing list is "can't access tty; + job control turned off" error message which typically appears when + one tries to use shell with stdin/stdout opened to /dev/console. + This device is special - it cannot be a controlling tty. + + Proper solution is to use correct device instead of /dev/console. + + cttyhack provides "quick and dirty" solution to this problem. + It analyzes stdin with various ioctls, trying to determine whether + it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). + If it detects one, it closes stdin/out/err and reopens that device. + Then it executes given program. Opening the device will make + that device a controlling tty. This may require cttyhack + to be a session leader. + + Example for /etc/inittab (for busybox init): + + ::respawn:/bin/cttyhack /bin/sh + + Starting an interactive shell from boot shell script: + + setsid cttyhack sh + + Giving controlling tty to shell running with PID 1: + + # exec cttyhack sh + + Without cttyhack, you need to know exact tty name, + and do something like this: + + # exec setsid sh -c 'exec sh /dev/tty1 2>&1' + config BUSYBOX_CONFIG_HUSH bool "hush" default n help - hush is a small shell (22k). It handles the normal flow control + hush is a small shell (25k). It handles the normal flow control constructs such as if/then/elif/else/fi, for/in/do/done, while loops, case/esac. Redirections, here documents, $((arithmetic)) and functions are supported. It will compile and work on no-mmu systems. - It does not handle select, aliases, brace expansion, - tilde expansion, &>file and >&file redirection of stdout+stderr. + It does not handle select, aliases, tilde expansion, + &>file and >&file redirection of stdout+stderr. config BUSYBOX_CONFIG_HUSH_BASH_COMPAT bool "bash-compatible extensions" @@ -131,6 +165,13 @@ config BUSYBOX_CONFIG_HUSH_BASH_COMPAT help Enable bash-compatible extensions. +config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION + bool "Brace expansion" + default n + depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT + help + Enable {abc,def} extension. + config BUSYBOX_CONFIG_HUSH_HELP bool "help builtin" default y @@ -148,6 +189,13 @@ config BUSYBOX_CONFIG_HUSH_INTERACTIVE from stdin just like a shell script from a file. No prompt, no PS1/PS2 magic shell variables. +config BUSYBOX_CONFIG_HUSH_SAVEHISTORY + bool "Save command history to .hush_history" + default n + depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY + help + Enable history saving in hush. + config BUSYBOX_CONFIG_HUSH_JOB bool "Job control" default y @@ -201,20 +249,35 @@ config BUSYBOX_CONFIG_HUSH_LOCAL help Enable support for local variables in functions. +config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT + bool "Pseudorandom generator and $RANDOM variable" + default n + depends on BUSYBOX_CONFIG_HUSH + help + Enable pseudorandom generator and dynamic variable "$RANDOM". + Each read of "$RANDOM" will generate a new pseudorandom value. + config BUSYBOX_CONFIG_HUSH_EXPORT_N - bool "Support export '-n' option" + bool "Support 'export -n' option" default y depends on BUSYBOX_CONFIG_HUSH help - Enable support for export '-n' option in hush. It is a bash extension. + export -n unexports variables. It is a bash extension. -config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT - bool "Pseudorandom generator and $RANDOM variable" +config BUSYBOX_CONFIG_HUSH_MODE_X + bool "Support 'hush -x' option and 'set -x' command" default n depends on BUSYBOX_CONFIG_HUSH help - Enable pseudorandom generator and dynamic variable "$RANDOM". - Each read of "$RANDOM" will generate a new pseudorandom value. + This instructs hush to print commands before execution. + Adds ~300 bytes. + +config BUSYBOX_CONFIG_MSH + bool "msh (deprecated: aliased to hush)" + default n + select BUSYBOX_CONFIG_HUSH + help + msh is deprecated and will be removed, please migrate to hush. choice @@ -271,29 +334,6 @@ config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE endchoice -config BUSYBOX_CONFIG_LASH - bool "lash (deprecated: aliased to hush)" - default n - select BUSYBOX_CONFIG_HUSH - help - lash is deprecated and will be removed, please migrate to hush. - -config BUSYBOX_CONFIG_MSH - bool "msh (deprecated: please use hush)" - default n - select BUSYBOX_CONFIG_HUSH - help - msh is deprecated and will be removed, please migrate to hush. - If there is a feature msh has but hush does not, please let us know. - -# The minix shell (adds just 30k) is quite complete and handles things -# like for/do/done, case/esac and all the things you expect a Bourne -# shell to do. It is not always pedantically correct about Bourne -# shell grammar (try running the shell testscript "tests/sh.testcases" -# on it and compare vs bash) but for most things it works quite well. -# It uses only vfork, so it can be used on uClinux systems. - - config BUSYBOX_CONFIG_SH_MATH_SUPPORT bool "POSIX math support" default y @@ -367,35 +407,4 @@ config BUSYBOX_CONFIG_FEATURE_SH_NOFORK This feature is relatively new. Use with care. -config BUSYBOX_CONFIG_CTTYHACK - bool "cttyhack" - default n - help - One common problem reported on the mailing list is "can't access tty; - job control turned off" error message which typically appears when - one tries to use shell with stdin/stdout opened to /dev/console. - This device is special - it cannot be a controlling tty. - - Proper solution is to use correct device instead of /dev/console. - - cttyhack provides "quick and dirty" solution to this problem. - It analyzes stdin with various ioctls, trying to determine whether - it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). - If it detects one, it closes stdin/out/err and reopens that device. - Then it executes given program. Opening the device will make - that device a controlling tty. This may require cttyhack - to be a session leader. - - Example for /etc/inittab (for busybox init): - - ::respawn:/bin/cttyhack /bin/sh - - Giving controlling tty to shell running with PID 1: - - $ exec cttyhack sh - - Starting an interactive shell from boot shell script: - - setsid cttyhack sh - endmenu diff --git a/package/busybox/config/sysklogd/Config.in b/package/busybox/config/sysklogd/Config.in index ea134b546e..c7bac93499 100644 --- a/package/busybox/config/sysklogd/Config.in +++ b/package/busybox/config/sysklogd/Config.in @@ -1,3 +1,4 @@ +# 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. @@ -5,6 +6,8 @@ menu "System Logging Utilities" + + config BUSYBOX_CONFIG_SYSLOGD bool "syslogd" default y @@ -114,6 +117,22 @@ config BUSYBOX_CONFIG_KLOGD you wish to record the messages produced by the kernel, you should enable this option. +config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL + bool "Use the klogctl() interface" + default y + depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_PLATFORM_LINUX + help + The klogd applet supports two interfaces for reading + kernel messages. Linux provides the klogctl() interface + which allows reading messages from the kernel ring buffer + independently from the file system. + + If you answer 'N' here, klogd will use the more portable + approach of reading them from /proc or a device node. + However, this method requires the file to be available. + + If in doubt, say 'Y'. + config BUSYBOX_CONFIG_LOGGER bool "logger" default y diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in index 94fda1dd12..49379883ab 100644 --- a/package/busybox/config/util-linux/Config.in +++ b/package/busybox/config/util-linux/Config.in @@ -5,6 +5,11 @@ menu "Linux System Utilities" +config BUSYBOX_CONFIG_BLOCKDEV + bool "blockdev" + default n + help + Performs some ioctls with block devices. config BUSYBOX_CONFIG_REV bool "rev" default n @@ -14,6 +19,7 @@ config BUSYBOX_CONFIG_REV config BUSYBOX_CONFIG_ACPID bool "acpid" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help acpid listens to ACPI events coming either in textual form from /proc/acpi/event (though it is marked deprecated it is still widely @@ -36,6 +42,7 @@ config BUSYBOX_CONFIG_FEATURE_ACPID_COMPAT config BUSYBOX_CONFIG_BLKID bool "blkid" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_VOLUMEID help Lists labels and UUIDs of all filesystems. @@ -45,6 +52,7 @@ config BUSYBOX_CONFIG_BLKID config BUSYBOX_CONFIG_DMESG bool "dmesg" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help dmesg is used to examine or control the kernel ring buffer. When the Linux kernel prints messages to the system log, they are stored in @@ -78,6 +86,7 @@ config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY config BUSYBOX_CONFIG_FBSET bool "fbset" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help fbset is used to show or change the settings of a Linux frame buffer device. The frame buffer device provides a simple and unique @@ -106,6 +115,7 @@ config BUSYBOX_CONFIG_FEATURE_FBSET_READMODE config BUSYBOX_CONFIG_FDFLUSH bool "fdflush" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help fdflush is only needed when changing media on slightly-broken removable media drives. It is used to make Linux believe that a @@ -118,12 +128,14 @@ config BUSYBOX_CONFIG_FDFLUSH config BUSYBOX_CONFIG_FDFORMAT bool "fdformat" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help fdformat is used to low-level format a floppy disk. config BUSYBOX_CONFIG_FDISK bool "fdisk" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The fdisk utility is used to divide hard disks into one or more logical disks, which are generally called partitions. This utility @@ -178,6 +190,14 @@ config BUSYBOX_CONFIG_FEATURE_OSF_LABEL Enabling this option allows you to create or change BSD disklabels and define and edit BSD disk slices. +config BUSYBOX_CONFIG_FEATURE_GPT_LABEL + bool "Support GPT disklabels" + default n + depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE + help + Enabling this option allows you to view GUID Partition Table + disklabels. + config BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED bool "Support expert mode" default n @@ -191,6 +211,7 @@ config BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED config BUSYBOX_CONFIG_FINDFS bool "findfs" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX select BUSYBOX_CONFIG_VOLUMEID help Prints the name of a filesystem with given label or UUID. @@ -206,6 +227,7 @@ config BUSYBOX_CONFIG_FLOCK config BUSYBOX_CONFIG_FREERAMDISK bool "freeramdisk" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Linux allows you to create ramdisks. This utility allows you to delete them and completely free all memory that was used for the @@ -228,12 +250,14 @@ config BUSYBOX_CONFIG_FSCK_MINIX config BUSYBOX_CONFIG_MKFS_EXT2 bool "mkfs_ext2" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Utility to create EXT2 filesystems. config BUSYBOX_CONFIG_MKFS_MINIX bool "mkfs_minix" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The minix filesystem is a nice, small, compact, read-write filesystem with little overhead. If you wish to be able to create minix @@ -251,6 +275,7 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2 config BUSYBOX_CONFIG_MKFS_REISER bool "mkfs_reiser" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Utility to create ReiserFS filesystems. Note: this applet needs a lot of testing and polishing. @@ -258,6 +283,7 @@ config BUSYBOX_CONFIG_MKFS_REISER config BUSYBOX_CONFIG_MKFS_VFAT bool "mkfs_vfat" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Utility to create FAT32 filesystems. @@ -306,6 +332,7 @@ config BUSYBOX_CONFIG_HD config BUSYBOX_CONFIG_HWCLOCK bool "hwclock" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The hwclock utility is used to read and set the hardware clock on a system. This is primarily used to set the current time on @@ -336,7 +363,6 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS config BUSYBOX_CONFIG_IPCRM bool "ipcrm" default n - select BUSYBOX_CONFIG_FEATURE_SUID help The ipcrm utility allows the removal of System V interprocess communication (IPC) objects and the associated data structures @@ -345,7 +371,7 @@ config BUSYBOX_CONFIG_IPCRM config BUSYBOX_CONFIG_IPCS bool "ipcs" default n - select BUSYBOX_CONFIG_FEATURE_SUID + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The ipcs utility is used to provide information on the currently allocated System V interprocess (IPC) objects in the system. @@ -353,6 +379,7 @@ config BUSYBOX_CONFIG_IPCS config BUSYBOX_CONFIG_LOSETUP bool "losetup" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help losetup is used to associate or detach a loop device with a regular file or block device, and to query the status of a loop device. This @@ -379,6 +406,7 @@ config BUSYBOX_CONFIG_LSUSB config BUSYBOX_CONFIG_MDEV bool "mdev" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help mdev is a mini-udev implementation for dynamically creating device nodes in the /dev directory. @@ -463,20 +491,10 @@ config BUSYBOX_CONFIG_MORE you will probably find this utility very helpful. If you don't have any need to reading text files, you can leave this disabled. -config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS - bool "Use termios to manipulate the screen" - default n - depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP - help - This option allows utilities such as 'more' and 'top' to determine - the size of the screen. If you leave this disabled, your utilities - that display things on the screen will be especially primitive and - will be unable to determine the current screen size, and will be - unable to move the cursor. - config BUSYBOX_CONFIG_MOUNT bool "mount" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help All files and filesystems in Unix are arranged into one big directory tree. The 'mount' utility is used to graft a filesystem onto a @@ -559,6 +577,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB config BUSYBOX_CONFIG_PIVOT_ROOT bool "pivot_root" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The pivot_root utility swaps the mount points for the root filesystem with some other mounted filesystem. This allows you to do all sorts @@ -592,6 +611,7 @@ config BUSYBOX_CONFIG_READPROFILE config BUSYBOX_CONFIG_RTCWAKE bool "rtcwake" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help Enter a system sleep state until specified wakeup time. @@ -611,6 +631,7 @@ config BUSYBOX_CONFIG_SCRIPTREPLAY config BUSYBOX_CONFIG_SETARCH bool "setarch" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The linux32 utility is used to create a 32bit environment for the specified program (usually a shell). It only makes sense to have @@ -620,6 +641,7 @@ config BUSYBOX_CONFIG_SETARCH config BUSYBOX_CONFIG_SWAPONOFF bool "swaponoff" default n + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help This option enables both the 'swapon' and the 'swapoff' utilities. Once you have created some swap space using 'mkswap', you also need @@ -638,6 +660,7 @@ config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI config BUSYBOX_CONFIG_SWITCH_ROOT bool "switch_root" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help The switch_root utility is used from initramfs to select a new root device. Under initramfs, you have to use this instead of @@ -657,6 +680,7 @@ config BUSYBOX_CONFIG_SWITCH_ROOT config BUSYBOX_CONFIG_UMOUNT bool "umount" default y + depends on BUSYBOX_CONFIG_PLATFORM_LINUX help When you want to remove a mounted filesystem from its current mount point, for example when you are shutting down the system, the @@ -777,7 +801,7 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS ### config FEATURE_VOLUMEID_UFS ### bool "ufs filesystem" -### default y +### default n ### depends on VOLUMEID ### help ### TODO diff --git a/package/busybox/patches/000-autoconf.patch b/package/busybox/patches/000-autoconf.patch deleted file mode 100644 index d237457348..0000000000 --- a/package/busybox/patches/000-autoconf.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/applets/Kbuild.src -+++ b/applets/Kbuild.src -@@ -28,7 +28,7 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla - applets/applets.o: include/usage_compressed.h include/applet_tables.h - - applets/applet_tables: .config include/applets.h --applets/usage: .config include/applets.h -+applets/usage: .config include/applets.h include/autoconf.h - applets/usage_pod: .config include/applet_tables.h include/applets.h - - quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h diff --git a/package/busybox/patches/000-upstream-sort.patch b/package/busybox/patches/000-upstream-sort.patch deleted file mode 100644 index ebc9bf9f94..0000000000 --- a/package/busybox/patches/000-upstream-sort.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urpN busybox-1.17.3/coreutils/sort.c busybox-1.17.3-sort/coreutils/sort.c ---- busybox-1.17.3/coreutils/sort.c 2010-10-09 21:57:13.000000000 +0200 -+++ busybox-1.17.3-sort/coreutils/sort.c 2010-10-20 15:17:35.320293543 +0200 -@@ -412,7 +412,7 @@ int sort_main(int argc UNUSED_PARAM, cha - #if ENABLE_FEATURE_SORT_BIG - /* Open output file _after_ we read all input ones */ - if (option_mask32 & FLAG_o) -- xmove_fd(xopen3(str_o, O_WRONLY, 0666), STDOUT_FILENO); -+ xmove_fd(xopen3(str_o, O_WRONLY|O_CREAT|O_TRUNC, 0666), STDOUT_FILENO); - #endif - flag = (option_mask32 & FLAG_z) ? '\0' : '\n'; - for (i = 0; i < linecount; i++) diff --git a/package/busybox/patches/241-udhcpc-oversized_packets.patch b/package/busybox/patches/241-udhcpc-oversized_packets.patch index ef9e7f4be1..d83bf0b413 100644 --- a/package/busybox/patches/241-udhcpc-oversized_packets.patch +++ b/package/busybox/patches/241-udhcpc-oversized_packets.patch @@ -1,6 +1,8 @@ +diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c +index 2b7528c..94e53dc 100644 --- a/networking/udhcp/packet.c +++ b/networking/udhcp/packet.c -@@ -165,6 +165,11 @@ uint16_t FAST_FUNC udhcp_checksum(void * +@@ -165,6 +165,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *addr, int count) return ~sum; } @@ -12,7 +14,7 @@ /* Construct a ip/udp header for a packet, send packet */ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, uint32_t source_nip, int source_port, -@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru +@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, { struct sockaddr_ll dest_sll; struct ip_udp_dhcp_packet packet; @@ -24,7 +26,7 @@ fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); if (fd < 0) { -@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru +@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, } memset(&dest_sll, 0, sizeof(dest_sll)); @@ -35,7 +37,7 @@ dest_sll.sll_family = AF_PACKET; dest_sll.sll_protocol = htons(ETH_P_IP); -@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru +@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, goto ret_close; } @@ -56,14 +58,14 @@ packet.udp.source = htons(source_port); packet.udp.dest = htons(dest_port); - /* size, excluding IP header: */ -- packet.udp.len = htons(UPD_DHCP_SIZE - padding); +- packet.udp.len = htons(UDP_DHCP_SIZE - padding); - /* for UDP checksumming, ip.len is set to UDP packet len */ + p_len += sizeof(packet.udp); + packet.udp.len = htons(p_len); packet.ip.tot_len = packet.udp.len; -- packet.udp.check = udhcp_checksum(&packet, IP_UPD_DHCP_SIZE - padding); +- packet.udp.check = udhcp_checksum(&packet, IP_UDP_DHCP_SIZE - padding); - /* but for sending, it is set to IP packet len */ -- packet.ip.tot_len = htons(IP_UPD_DHCP_SIZE - padding); +- packet.ip.tot_len = htons(IP_UDP_DHCP_SIZE - padding); + p_len += sizeof(packet.ip); + packet.udp.check = udhcp_checksum(&packet, p_len); + packet.ip.tot_len = htons(p_len); @@ -73,12 +75,12 @@ packet.ip.check = udhcp_checksum(&packet.ip, sizeof(packet.ip)); udhcp_dump_packet(dhcp_pkt); -- result = sendto(fd, &packet, IP_UPD_DHCP_SIZE - padding, /*flags:*/ 0, +- result = sendto(fd, &packet, IP_UDP_DHCP_SIZE - padding, /*flags:*/ 0, + result = sendto(fd, &packet, p_len, /*flags:*/ 0, (struct sockaddr *) &dest_sll, sizeof(dest_sll)); msg = "sendto"; ret_close: -@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s +@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, uint32_t dest_nip, int dest_port) { struct sockaddr_in client; @@ -86,7 +88,7 @@ int fd; int result = -1; const char *msg; -@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s +@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, } udhcp_dump_packet(dhcp_pkt); diff --git a/package/busybox/patches/244-udhcpc_add_6rd_option.patch b/package/busybox/patches/244-udhcpc_add_6rd_option.patch index 0bf6ff0f4b..18a5996408 100644 --- a/package/busybox/patches/244-udhcpc_add_6rd_option.patch +++ b/package/busybox/patches/244-udhcpc_add_6rd_option.patch @@ -1,24 +1,26 @@ +diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c +index 0a60261..eaf2b4b 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c -@@ -54,6 +54,8 @@ const struct dhcp_optflag dhcp_optflags[ - { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */ +@@ -56,6 +56,8 @@ const struct dhcp_optflag dhcp_optflags[] = { #endif { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES */ + { 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[], -@@ -114,6 +116,8 @@ const char dhcp_option_strings[] ALIGN1 +@@ -118,6 +120,8 @@ const char dhcp_option_strings[] ALIGN1 = // doesn't work in udhcpd.conf since OPTION_STATIC_ROUTES // is not handled yet by "string->option" conversion code: "staticroutes" "\0"/* DHCP_STATIC_ROUTES */ + "ip6rd" "\0" /* DHCP_6RD (RFC) */ + "ip6rd" "\0" /* DHCP_6RD (Comcast) */ + "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */ "wpad" "\0" /* DHCP_WPAD */ ; - -@@ -141,6 +145,7 @@ const uint8_t dhcp_option_lengths[] ALIG +@@ -146,6 +150,7 @@ const uint8_t dhcp_option_lengths[] ALIGN1 = { [OPTION_S32] = 4, /* Just like OPTION_STRING, we use minimum length here */ [OPTION_STATIC_ROUTES] = 5, @@ -26,9 +28,23 @@ }; +diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h +index f8f18ff..56cd8b0 100644 +--- a/networking/udhcp/common.h ++++ b/networking/udhcp/common.h +@@ -88,6 +88,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, +diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c +index 78aabed..993326f 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -45,6 +45,7 @@ static const uint8_t len_of_option_as_st +@@ -45,6 +45,7 @@ static const uint8_t len_of_option_as_string[] = { [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 "), @@ -36,7 +52,7 @@ [OPTION_STRING ] = 1, #if ENABLE_FEATURE_UDHCP_RFC3397 [OPTION_DNS_STRING ] = 1, /* unused */ -@@ -68,6 +69,23 @@ static int sprint_nip(char *dest, const +@@ -68,6 +69,23 @@ static int sprint_nip(char *dest, const char *pre, const uint8_t *ip) return sprintf(dest, "%s%u.%u.%u.%u", pre, ip[0], ip[1], ip[2], ip[3]); } @@ -60,7 +76,7 @@ /* really simple implementation, just count the bits */ static int mton(uint32_t mask) { -@@ -177,6 +195,70 @@ static NOINLINE char *xmalloc_optname_op +@@ -177,6 +195,70 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_ return ret; } @@ -131,13 +147,3 @@ #if ENABLE_FEATURE_UDHCP_RFC3397 case OPTION_DNS_STRING: /* unpack option into dest; use ret for prefix (i.e., "optname=") */ ---- a/networking/udhcp/common.h -+++ b/networking/udhcp/common.h -@@ -88,6 +88,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, diff --git a/package/busybox/patches/245-udhcpc_add_msroutes_option.patch b/package/busybox/patches/245-udhcpc_add_msroutes_option.patch deleted file mode 100644 index e8514479a3..0000000000 --- a/package/busybox/patches/245-udhcpc_add_msroutes_option.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/networking/udhcp/common.c -+++ b/networking/udhcp/common.c -@@ -53,7 +53,8 @@ const struct dhcp_optflag dhcp_optflags[ - { OPTION_DNS_STRING | OPTION_LIST , 0x77 }, /* DHCP_DOMAIN_SEARCH */ - { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */ - #endif -- { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES */ -+ { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES (RFC) */ -+ { OPTION_STATIC_ROUTES , 0xf9 }, /* DHCP_STATIC_ROUTES (Microsoft) */ - { OPTION_6RD , 0xd4 }, /* DHCP_6RD (RFC) */ - { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */ - { OPTION_STRING , 0xfc }, /* DHCP_WPAD */ -@@ -115,7 +116,8 @@ const char dhcp_option_strings[] ALIGN1 - #endif - // doesn't work in udhcpd.conf since OPTION_STATIC_ROUTES - // is not handled yet by "string->option" conversion code: -- "staticroutes" "\0"/* DHCP_STATIC_ROUTES */ -+ "staticroutes" "\0" /* DHCP_STATIC_ROUTES (RFC) */ -+ "msstaticroutes" "\0"/* DHCP_STATIC_ROUTES (Microsoft) */ - "ip6rd" "\0" /* DHCP_6RD (RFC) */ - "ip6rd" "\0" /* DHCP_6RD (Comcast) */ - "wpad" "\0" /* DHCP_WPAD */ diff --git a/package/busybox/patches/300-netmsg.patch b/package/busybox/patches/300-netmsg.patch index b7dd5d9869..d9d2f14a87 100644 --- a/package/busybox/patches/300-netmsg.patch +++ b/package/busybox/patches/300-netmsg.patch @@ -1,6 +1,8 @@ +diff --git a/include/applets.src.h b/include/applets.src.h +index f4fab53..f97f2d8 100644 --- a/include/applets.src.h +++ b/include/applets.src.h -@@ -278,6 +278,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D +@@ -256,6 +256,7 @@ IF_MT(APPLET(mt, _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_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP)) @@ -8,9 +10,30 @@ IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP)) IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP)) IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP)) +diff --git a/include/usage.src.h b/include/usage.src.h +index 30fef24..ac78992 100644 +--- a/include/usage.src.h ++++ b/include/usage.src.h +@@ -1,3 +1,4 @@ ++ + /* vi: set sw=8 ts=8: */ + /* + * This file suffers from chronically incorrect tabification +@@ -2706,6 +2707,9 @@ INSERT + " or\n" \ + "$ nameif -c /etc/my_mactab_file\n" \ + ++#define netmsg_trivial_usage NOUSAGE_STR ++#define netmsg_full_usage "" ++ + #define nmeter_trivial_usage \ + "format_string" + #define nmeter_full_usage "\n\n" \ +diff --git a/networking/Config.src b/networking/Config.src +index 6dd7df7..4682dd3 100644 --- a/networking/Config.src +++ b/networking/Config.src -@@ -623,6 +623,12 @@ config FEATURE_NAMEIF_EXTENDED +@@ -640,6 +640,12 @@ config FEATURE_NAMEIF_EXTENDED new_interface_name mac=00:80:C8:38:91:B5 new_interface_name 00:80:C8:38:91:B5 @@ -23,6 +46,8 @@ config NETSTAT bool "netstat" default y +diff --git a/networking/Kbuild.src b/networking/Kbuild.src +index f41a2df..6070a40 100644 --- a/networking/Kbuild.src +++ b/networking/Kbuild.src @@ -27,6 +27,7 @@ lib-$(CONFIG_IP) += ip.o @@ -33,6 +58,9 @@ lib-$(CONFIG_NETSTAT) += netstat.o lib-$(CONFIG_NSLOOKUP) += nslookup.o lib-$(CONFIG_NTPD) += ntpd.o +diff --git a/networking/netmsg.c b/networking/netmsg.c +new file mode 100644 +index 0000000..43aba0d --- /dev/null +++ b/networking/netmsg.c @@ -0,0 +1,63 @@ @@ -99,20 +127,3 @@ + close(s); + exit(1); +} ---- a/include/usage.src.h -+++ b/include/usage.src.h -@@ -1,3 +1,4 @@ -+ - /* vi: set sw=8 ts=8: */ - /* - * This file suffers from chronically incorrect tabification -@@ -2961,6 +2962,9 @@ INSERT - " or\n" \ - "$ nameif -c /etc/my_mactab_file\n" \ - -+#define netmsg_trivial_usage NOUSAGE_STR -+#define netmsg_full_usage "" -+ - #define netstat_trivial_usage \ - "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]" - #define netstat_full_usage "\n\n" \ diff --git a/package/busybox/patches/610-syslog-remote-retry-connection.patch b/package/busybox/patches/610-syslog-remote-retry-connection.patch deleted file mode 100644 index 94cd3ded04..0000000000 --- a/package/busybox/patches/610-syslog-remote-retry-connection.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- a/sysklogd/syslogd.c -+++ b/sysklogd/syslogd.c -@@ -555,6 +555,7 @@ static void do_syslogd(void) - { - int sock_fd; - #if ENABLE_FEATURE_REMOTE_LOG -+ int send_err = 0; - llist_t *item; - #endif - #if ENABLE_FEATURE_SYSLOGD_DUP -@@ -636,11 +637,23 @@ static void do_syslogd(void) - if (rh->remoteFD == -1) - continue; - } -- /* Send message to remote logger, ignore possible error */ -- /* TODO: on some errors, close and set G.remoteFD to -1 -- * so that DNS resolution and connect is retried? */ -- sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT, -- &(rh->remoteAddr->u.sa), rh->remoteAddr->len); -+ /* Send message to remote logger */ -+ if (sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT, -+ &(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1) -+ send_err = errno; -+ -+ /* On some errors, close and set G.remoteFD to -1 -+ * so that DNS resolution and connect is retried */ -+ switch (send_err) { -+ case ECONNRESET: -+ case EDESTADDRREQ: -+ case EISCONN: -+ case ENOTCONN: -+ case EPIPE: -+ close(rh->remoteFD); -+ rh->remoteFD = -1; -+ break; -+ } - } - #endif - if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) { diff --git a/package/busybox/patches/920-macosx-endian.patch b/package/busybox/patches/920-macosx-endian.patch deleted file mode 100644 index b895446210..0000000000 --- a/package/busybox/patches/920-macosx-endian.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/include/platform.h -+++ b/include/platform.h -@@ -154,14 +154,14 @@ - # include - # define __BIG_ENDIAN__ (BYTE_ORDER == BIG_ENDIAN) - # define __BYTE_ORDER BYTE_ORDER --#elif defined __FreeBSD__ -+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__) || defined(__APPLE__) - # include /* rlimit */ - # include - # define bswap_64 __bswap64 - # define bswap_32 __bswap32 - # define bswap_16 __bswap16 - # define __BIG_ENDIAN__ (_BYTE_ORDER == _BIG_ENDIAN) --#elif !defined __APPLE__ -+#else - # include - # include - #endif -@@ -172,9 +172,15 @@ - #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN - # define BB_BIG_ENDIAN 1 - # define BB_LITTLE_ENDIAN 0 -+#elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN -+# define BB_BIG_ENDIAN 1 -+# define BB_LITTLE_ENDIAN 0 - #elif (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || defined(__386__) - # define BB_BIG_ENDIAN 0 - # define BB_LITTLE_ENDIAN 1 -+#elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN -+# define BB_BIG_ENDIAN 0 -+# define BB_LITTLE_ENDIAN 1 - #else - # error "Can't determine endianness" - #endif -- 2.25.1