From: Felix Fietkau Date: Tue, 4 Apr 2006 19:24:40 +0000 (+0000) Subject: update busybox menuconfig to 1.1.1, should fix the "missing reboot" bug X-Git-Tag: reboot~30878 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=e4b534024d6dc903ef48628dda1203d0d7c5bfcb;p=openwrt%2Fstaging%2Fchunkeey.git update busybox menuconfig to 1.1.1, should fix the "missing reboot" bug SVN-Revision: 3587 --- diff --git a/openwrt/package/busybox/config/Config.in b/openwrt/package/busybox/config/Config.in index e7afb53629..eedb4ba407 100644 --- a/openwrt/package/busybox/config/Config.in +++ b/openwrt/package/busybox/config/Config.in @@ -8,6 +8,8 @@ config BUSYBOX_HAVE_DOT_CONFIG bool default y +menu "Busybox Settings" + menu "General Configuration" choice @@ -79,10 +81,12 @@ config BUSYBOX_CONFIG_FEATURE_CLEAN_UP bool "Clean up all memory before exiting (usually not needed)" default n help - As a size optimization, busybox by default does not cleanup memory - that is dynamically allocated or close files before exiting. This - saves space and is usually not needed since the OS will clean up for - us. Don't enable this unless you have a really good reason to clean + As a size optimization, busybox normally exits without explicitly + freeing dynamically allocated memory or closing files. This saves + space since the OS will clean up for us, but it can confuse debuggers + like valgrind, which report tons of memory and resource leaks. + + Don't enable this unless you have a really good reason to clean things up manually. config BUSYBOX_CONFIG_FEATURE_SUID @@ -100,7 +104,7 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG checking /etc/busybox.conf. The format of this file is as follows: = [Ssx-][Ssx-][x-] (|).(|) - + An example might help: [SUID] @@ -112,6 +116,13 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG cp = --- # disable applet cp for everyone + The file has to be owned by user root, group root and has to be + writeable only by root: + (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) + The busybox executable has to be owned by user root, group + root and has to be setuid root for this to work: + (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) + Robert 'sandman' Griebl has more information here: . @@ -156,6 +167,48 @@ config BUSYBOX_CONFIG_STATIC Most people will leave this set to 'N'. +# The busybox shared library feature is there so make standalone can produce +# smaller applets. Since make standalone isn't in yet, there's nothing using +# this yet, and so it's disabled. +config BUSYBOX_CONFIG_DISABLE_SHARED + bool + default n + +config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + bool "Build shared libbusybox" + default n + depends on BUSYBOX_CONFIG_DISABLE_SHARED + help + Build a shared library libbusybox.so which contains all + libraries used inside busybox. + +config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX + bool "Feature-complete libbusybox" + default n if !CONFIG_FEATURE_SHARED_BUSYBOX + depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + help + Build a libbusybox with the complete feature-set, disregarding + the actually selected config. + + Normally, libbusybox will only contain the features which are + used by busybox itself. If you plan to write a separate + standalone application which uses libbusybox say 'Y'. + + Note: libbusybox is GPL, not LGPL, and exports no stable API that + might act as a copyright barrier. We can and will modify the + exported function set between releases (even minor version number + changes), and happily break out-of-tree features. + + Say 'N' if in doubt. + +config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX + bool "Use shared libbusybox for busybox" + default n if BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + depends on !CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + help + Use libbusybox.so also for busybox itself. + You need to have a working dynamic linker to use this variant. + config BUSYBOX_CONFIG_LFS bool default y @@ -195,43 +248,27 @@ config BUSYBOX_EXTRA_CFLAGS_OPTIONS if you want to add some simple compiler switches (like -march=i686), or check for warnings using -Werror, just those options here. -endmenu - -menu 'Installation Options' - -config BUSYBOX_CONFIG_INSTALL_NO_USR - bool "Don't use /usr" +config BUSYBOX_CONFIG_BUILD_AT_ONCE + bool "Compile all sources at once" default n help - Disable use of /usr. Don't activate this option if you don't know - that you really want this behaviour. + Normally each source-file is compiled with one invocation of + the compiler. + If you set this option, all sources are compiled at once. + This gives the compiler more opportunities to optimize which can + result in smaller and/or faster binaries. -config BUSYBOX_PREFIX - string - default "./_install" - help - Define your directory to install BusyBox files/subdirs in. + Setting this option will consume alot of memory, e.g. if you + enable all applets with all features, gcc uses more than 300MB + RAM during compilation of busybox. + This option is most likely only beneficial for newer compilers + such as gcc-4.1 and above. + Say 'N' unless you know what you are doing. endmenu -source package/busybox/config/archival/Config.in -source package/busybox/config/coreutils/Config.in -source package/busybox/config/console-tools/Config.in -source package/busybox/config/debianutils/Config.in -source package/busybox/config/editors/Config.in -source package/busybox/config/findutils/Config.in -source package/busybox/config/init/Config.in -source package/busybox/config/loginutils/Config.in -source package/busybox/config/miscutils/Config.in -source package/busybox/config/modutils/Config.in -source package/busybox/config/networking/Config.in -source package/busybox/config/procps/Config.in -source package/busybox/config/shell/Config.in -source package/busybox/config/sysklogd/Config.in -source package/busybox/config/util-linux/Config.in - menu 'Debugging Options' config BUSYBOX_CONFIG_DEBUG @@ -288,6 +325,82 @@ config BUSYBOX_CONFIG_EFENCE endchoice +config BUSYBOX_CONFIG_DEBUG_YANK_SUSv2 + bool "Disable obsolete features removed before SUSv3?" + default y + help + This option will disable backwards compatability with SuSv2, + specifically, old-style numeric options ('command -1 ') + will not be supported in head, tail, and fold. (Note: should + yank from renice too.) + +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. + +choice + prompt "Applets links" + default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS + help + Choose how you install applets links. + +config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS + bool "as soft-links" + help + Install applets as soft-links to the busybox binary. This needs some + free inodes on the filesystem, but might help with filesystem + generators that can't cope with hard-links. + +config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS + bool "as hard-links" + help + Install applets as hard-links to the busybox binary. This might count + on a filesystem with few inodes. + +config BUSYBOX_CONFIG_INSTALL_APPLET_DONT + bool + prompt "not installed" + depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL + help + Do not install applets links. Usefull when using the -install feature + or a standalone shell for rescue pruposes. + +endchoice + +config BUSYBOX_PREFIX + string + default "./_install" + help + Define your directory to install BusyBox files/subdirs in. + +endmenu + +source package/busybox/config/libbb/Config.in endmenu +comment "Applets" + +source package/busybox/config/archival/Config.in +source package/busybox/config/coreutils/Config.in +source package/busybox/config/console-tools/Config.in +source package/busybox/config/debianutils/Config.in +source package/busybox/config/editors/Config.in +source package/busybox/config/findutils/Config.in +source package/busybox/config/init/Config.in +source package/busybox/config/loginutils/Config.in +source package/busybox/config/e2fsprogs/Config.in +source package/busybox/config/modutils/Config.in +source package/busybox/config/util-linux/Config.in +source package/busybox/config/miscutils/Config.in +source package/busybox/config/networking/Config.in +source package/busybox/config/procps/Config.in +source package/busybox/config/shell/Config.in +source package/busybox/config/sysklogd/Config.in diff --git a/openwrt/package/busybox/config/archival/Config.in b/openwrt/package/busybox/config/archival/Config.in index 909e74648c..bd5c4b140f 100644 --- a/openwrt/package/busybox/config/archival/Config.in +++ b/openwrt/package/busybox/config/archival/Config.in @@ -47,10 +47,10 @@ config BUSYBOX_CONFIG_BUNZIP2 is generally considerably better than that achieved by more conventional LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors. - + The BusyBox bunzip2 applet is limited to de-compression only. On an x86 system, this applet adds about 11K. - + Unless you have a specific application which requires bunzip2, you should probably say N here. @@ -73,7 +73,7 @@ config BUSYBOX_CONFIG_DPKG default n help dpkg is a medium-level tool to install, build, remove and manage Debian packages. - + This implementation of dpkg has a number of limitations, you should use the official dpkg if possible. @@ -82,9 +82,9 @@ config BUSYBOX_CONFIG_DPKG_DEB default n help dpkg-deb packs, unpacks and provides information about Debian archives. - + This implementation of dpkg-deb cannot pack archives. - + Unless you have a specific application which requires dpkg-deb, you should probably say N here. @@ -165,6 +165,14 @@ config BUSYBOX_CONFIG_FEATURE_TAR_BZIP2 If you enable this option you'll be able to extract archives compressed with bzip2. +config BUSYBOX_CONFIG_FEATURE_TAR_LZMA + bool " Enable -a option to handle .tar.lzma files" + default n + depends on BUSYBOX_CONFIG_TAR + help + If you enable this option you'll be able to extract + archives compressed with lzma. + config BUSYBOX_CONFIG_FEATURE_TAR_FROM bool " Enable -X (exclude from) and -T (include from) options)" default y @@ -220,6 +228,29 @@ config BUSYBOX_CONFIG_UNCOMPRESS uncompress is used to decompress archives created by compress. Not much used anymore, replaced by gzip/gunzip. +config BUSYBOX_CONFIG_UNLZMA + bool "unlzma" + default n + 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 " Optimze unlzma for speed" + default n + depends on BUSYBOX_CONFIG_UNLZMA + help + This option reduce decompression time by about 33% at the cost of + a 2K bigger binary. + config BUSYBOX_CONFIG_UNZIP bool "unzip" default n @@ -249,7 +280,7 @@ config BUSYBOX_CONFIG_FEATURE_DEB_TAR_GZ depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB help This is the default compression method inside the debian ar file. - + If you want compatibility with standard .deb's you should say yes here. config BUSYBOX_CONFIG_FEATURE_DEB_TAR_BZ2 @@ -259,8 +290,19 @@ config BUSYBOX_CONFIG_FEATURE_DEB_TAR_BZ2 help This allows dpkg and dpkg-deb to extract deb's that are compressed internally with bzip2 instead of gzip. - + You only want this if you are creating your own custom debian packages that use an internal control.tar.bz2 or data.tar.bz2. +config BUSYBOX_CONFIG_FEATURE_DEB_TAR_LZMA + bool " lzma debian packages" + default n + depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB + help + This allows dpkg and dpkg-deb to extract deb's that are compressed + internally with lzma instead of gzip. + + You only want this if you are creating your own custom debian + packages that use an internal control.tar.lzma or data.tar.lzma. + endmenu diff --git a/openwrt/package/busybox/config/console-tools/Config.in b/openwrt/package/busybox/config/console-tools/Config.in index 207e2df21c..4faaeb44b6 100644 --- a/openwrt/package/busybox/config/console-tools/Config.in +++ b/openwrt/package/busybox/config/console-tools/Config.in @@ -58,6 +58,13 @@ config BUSYBOX_CONFIG_RESET This program is used to reset the terminal screen, if it gets messed up. +config BUSYBOX_CONFIG_SETCONSOLE + bool "setconsole" + default n + help + This program redirects the system console to another device, + like the current tty while logged in via telnet. + config BUSYBOX_CONFIG_SETKEYCODES bool "setkeycodes" default n diff --git a/openwrt/package/busybox/config/coreutils/Config.in b/openwrt/package/busybox/config/coreutils/Config.in index 9d97e3c58d..53984e3951 100644 --- a/openwrt/package/busybox/config/coreutils/Config.in +++ b/openwrt/package/busybox/config/coreutils/Config.in @@ -59,6 +59,13 @@ config BUSYBOX_CONFIG_CMP cmp is used to compare two files and returns the result to standard output. +config BUSYBOX_CONFIG_COMM + bool "comm" + default n + help + comm is used to compare two files line by line and return + a three-column output. + config BUSYBOX_CONFIG_CP bool "cp" default y @@ -72,20 +79,12 @@ config BUSYBOX_CONFIG_CUT cut is used to print selected parts of lines from each file to stdout. -if BUSYBOX_CONFIG_WATCH - config BUSYBOX_CONFIG_DATE - default y - comment "date (forced enabled for use with watch)" -endif - -if !CONFIG_WATCH - config BUSYBOX_CONFIG_DATE - bool "date" - default y - help - date is used to set the system date or display the - current time in the given format. -endif +config BUSYBOX_CONFIG_DATE + bool "date" + default y + help + date is used to set the system date or display the + current time in the given format. config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT bool " Enable ISO date format output (-I)" @@ -144,11 +143,12 @@ config BUSYBOX_CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K Use a blocksize of (1K) instead of the default 512b. config BUSYBOX_CONFIG_ECHO - bool "echo (basic SUSv3 version taking no options)" + bool "echo (basic SuSv3 version taking no options)" default y help echo is used to print a specified string to stdout. +# this entry also appears in shell/Config.in, next to the echo builtin config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO bool " Enable echo options (-n and -e)" default y @@ -171,19 +171,20 @@ config BUSYBOX_CONFIG_EXPR expr is used to calculate numbers and print the result to standard output. -if BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_MSH - config BUSYBOX_CONFIG_FALSE - default y - comment "false (forced enabled for use with shell)" -endif +config BUSYBOX_CONFIG_EXPR_MATH_SUPPORT_64 + bool " Extend Posix numbers support to 64 bit" + default n + depends on BUSYBOX_CONFIG_EXPR + help + Enable 64-bit math support in the expr applet. This will make + the applet slightly larger, but will allow computation with very + large numbers. -if !CONFIG_HUSH && !CONFIG_LASH && !CONFIG_MSH - config BUSYBOX_CONFIG_FALSE - bool "false" - default y - help - false returns an exit code of FALSE (1). -endif +config BUSYBOX_CONFIG_FALSE + bool "false" + default y + help + false returns an exit code of FALSE (1). config BUSYBOX_CONFIG_FOLD bool "fold" @@ -291,11 +292,22 @@ config BUSYBOX_CONFIG_FEATURE_LS_USERNAME Allow ls to display username/groupname for files. config BUSYBOX_CONFIG_FEATURE_LS_COLOR - bool " Use color to identify file types" + bool " Allow use of color to identify file types" default y depends on BUSYBOX_CONFIG_LS help - Allow ls to use color when displaying files. + This enables the --color option to ls. + +config BUSYBOX_CONFIG_FEATURE_LS_COLOR_IS_DEFAULT + bool " Produce colored ls output by default" + default y + depends on BUSYBOX_CONFIG_FEATURE_LS_COLOR + help + Saying yes here will turn coloring on by default, + even if no "--color" option is given to the ls command. + This is not recommended, since the colors are not + configurable, and the output may not be legible on + many output screens. config BUSYBOX_CONFIG_MD5SUM bool "md5sum" @@ -329,12 +341,30 @@ config BUSYBOX_CONFIG_MV help mv is used to move or rename files or directories. +config BUSYBOX_CONFIG_NICE + bool "nice" + default n + help + nice runs a program with modified scheduling priority. + +config BUSYBOX_CONFIG_NOHUP + bool "nohup" + default n + help + run a command immune to hangups, with output to a non-tty. + config BUSYBOX_CONFIG_OD bool "od" default n help od is used to dump binary files in octal and other formats. +config BUSYBOX_CONFIG_PRINTENV + bool "printenv" + default n + help + printenv is used to print all or part of environment. + config BUSYBOX_CONFIG_PRINTF bool "printf" default y @@ -398,12 +428,45 @@ config BUSYBOX_CONFIG_SORT help sort is used to sort lines of text in specified files. +config BUSYBOX_CONFIG_FEATURE_SORT_BIG + bool " full SuSv3 compliant sort (Support -ktcsbdfiozgM)" + default n + depends on BUSYBOX_CONFIG_SORT + help + Without this, sort only supports -r, -u, and an integer version + of -n. Selecting this adds sort keys, floating point support, and + more. This adds a little over 3k to a nonstatic build on x86. + + The SuSv3 sort standard is available at: + http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html + +config BUSYBOX_CONFIG_STAT + bool "stat" + default n + help + display file or filesystem status. + +config BUSYBOX_CONFIG_FEATURE_STAT_FORMAT + bool " Enable custom formats (-c)" + default n + depends on BUSYBOX_CONFIG_STAT + help + Without this, stat will not support the '-c format' option where + users can pass a custom format string for output. This adds about + 7k to a nonstatic build on amd64. + config BUSYBOX_CONFIG_STTY bool "stty" default n help stty is used to change and print terminal line settings. +config BUSYBOX_CONFIG_SUM + bool "sum" + default n + help + checksum and count the blocks in a file + config BUSYBOX_CONFIG_SYNC bool "sync" default y @@ -439,21 +502,13 @@ config BUSYBOX_CONFIG_FEATURE_TEE_USE_BLOCK_IO help Enable this option for a faster tee, at expense of size. -if BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_MSH - config BUSYBOX_CONFIG_TEST - default y - comment "test (forced enabled for use with shell)" -endif - -if !CONFIG_ASH && !CONFIG_HUSH && !CONFIG_LASH && !CONFIG_MSH - config BUSYBOX_CONFIG_TEST - bool "test" - default y - help - test is used to check file types and compare values, - returning an appropriate exit code. The shells (ash - and bash) have test builtin. -endif +config BUSYBOX_CONFIG_TEST + bool "test" + default y + help + test is used to check file types and compare values, + returning an appropriate exit code. The shells (ash + and bash) have test builtin. config BUSYBOX_CONFIG_FEATURE_TEST_64 bool " Extend test to 64 bit" @@ -476,20 +531,30 @@ config BUSYBOX_CONFIG_TR tr is used to squeeze, and/or delete characters from standard input, writing to standard output. -if BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_MSH - config BUSYBOX_CONFIG_TRUE - default y - comment "true (forced enabled for use with shell)" -endif +config BUSYBOX_CONFIG_FEATURE_TR_CLASSES + bool " Enable character classes (such as [:upper:])" + default n + depends on BUSYBOX_CONFIG_TR + help + Enable character classes, enabling commands such as: + tr [:upper:] [:lower:] to convert input into lowercase. -if !CONFIG_HUSH && !CONFIG_LASH && !CONFIG_MSH - config BUSYBOX_CONFIG_TRUE - bool "true" - default y - help - true returns an exit code of TRUE (0). +config BUSYBOX_CONFIG_FEATURE_TR_EQUIV + bool " Enable equivalence classes" + default n + depends on BUSYBOX_CONFIG_TR + help + Enable equivalence classes, which essentially add the enclosed + character to the current set. For instance, tr [=a=] xyz would + replace all instances of 'a' with 'xyz'. This option is mainly + useful for cases when no other way of expressing a character + is possible. -endif +config BUSYBOX_CONFIG_TRUE + bool "true" + default y + help + true returns an exit code of TRUE (0). config BUSYBOX_CONFIG_TTY bool "tty" @@ -531,6 +596,7 @@ config BUSYBOX_CONFIG_UUENCODE config BUSYBOX_CONFIG_WATCH bool "watch" default n + select BUSYBOX_CONFIG_DATE help watch is used to execute a program periodically, showing output to the screen. @@ -545,7 +611,7 @@ config BUSYBOX_CONFIG_WC config BUSYBOX_CONFIG_WHO bool "who" default n - select BUSYBOX_CONFIG_FEATURE_U_W_TMP + select BUSYBOX_CONFIG_FEATURE_UTMP help who is used to show who is logged on. @@ -564,7 +630,7 @@ config BUSYBOX_CONFIG_YES the default string `y'. comment "Common options for cp and mv" - depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV + depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV config BUSYBOX_CONFIG_FEATURE_PRESERVE_HARDLINKS bool " Preserve hard links" @@ -573,22 +639,22 @@ config BUSYBOX_CONFIG_FEATURE_PRESERVE_HARDLINKS help Allow cp and mv to preserve hard links. -comment "Common options for ls and more" - depends on BUSYBOX_CONFIG_LS || BUSYBOX_CONFIG_MORE +comment "Common options for ls, more and telnet" + depends on BUSYBOX_CONFIG_LS || BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TELNET config BUSYBOX_CONFIG_FEATURE_AUTOWIDTH bool " Calculate terminal & column widths" default y - depends on BUSYBOX_CONFIG_LS || BUSYBOX_CONFIG_MORE + depends on BUSYBOX_CONFIG_LS || BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TELNET help - This option allows utilities such as 'ls' and 'more' to determine the - width of the screen, which can allow them to display additional text - or avoid wrapping text onto the next line. If you leave this - disabled, your utilities will be especially primitive and will be - unable to determine the current screen width. + This option allows utilities such as 'ls', 'more' and 'telnet' + to determine the width of the screen, which can allow them to + display additional text or avoid wrapping text onto the next line. + If you leave this disabled, your utilities will be especially + primitive and will be unable to determine the current screen width. comment "Common options for df, du, ls" - depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS + depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE bool " Support for human readable output (example 13k, 23M, 235G)" @@ -598,7 +664,7 @@ config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE Allow df, du, and ls to have human readable output. comment "Common options for md5sum, sha1sum" - depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM + depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK bool " Enable -c, -s and -w options" diff --git a/openwrt/package/busybox/config/debianutils/Config.in b/openwrt/package/busybox/config/debianutils/Config.in index b62499eb1b..71f2bf38af 100644 --- a/openwrt/package/busybox/config/debianutils/Config.in +++ b/openwrt/package/busybox/config/debianutils/Config.in @@ -24,6 +24,13 @@ config BUSYBOX_CONFIG_READLINK This program reads a symbolic link and returns the name of the file it points to +config BUSYBOX_CONFIG_FEATURE_READLINK_FOLLOW + bool " Enable canonicalization by following all symlinks (-f)" + default n + depends on BUSYBOX_CONFIG_READLINK + help + Enable the readlink option (-f). + config BUSYBOX_CONFIG_RUN_PARTS bool "run-parts" default n diff --git a/openwrt/package/busybox/config/e2fsprogs/Config.in b/openwrt/package/busybox/config/e2fsprogs/Config.in new file mode 100644 index 0000000000..e9ef3dc041 --- /dev/null +++ b/openwrt/package/busybox/config/e2fsprogs/Config.in @@ -0,0 +1,67 @@ +# +# For a description of the syntax of this configuration file, +# see scripts/kbuild/config-language.txt. +# + +menu "Linux Ext2 FS Progs" + +config BUSYBOX_CONFIG_CHATTR + bool "chattr" + default n + help + chattr changes the file attributes on a second extended file system. + +config BUSYBOX_CONFIG_E2FSCK + bool "e2fsck" + default n + help + e2fsck is used to check Linux second extended file systems (ext2fs). + e2fsck also supports ext2 filesystems countaining a journal (ext3). + The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also + provided. + +config BUSYBOX_CONFIG_FSCK + bool "fsck" + default n + help + fsck is used to check and optionally repair one or more filesystems. + In actuality, fsck is simply a front-end for the various file system + checkers (fsck.fstype) available under Linux. + +config BUSYBOX_CONFIG_LSATTR + bool "lsattr" + default n + help + lsattr lists the file attributes on a second extended file system. + +config BUSYBOX_CONFIG_MKE2FS + bool "mke2fs" + default n + help + mke2fs is used to create an ext2/ext3 filesystem. The normal compat + symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided. + +config BUSYBOX_CONFIG_TUNE2FS + bool "tune2fs" + default n + help + tune2fs allows the system administrator to adjust various tunable + filesystem parameters on Linux ext2/ext3 filesystems. + +config BUSYBOX_CONFIG_E2LABEL + bool "e2label" + default n + depends on BUSYBOX_CONFIG_TUNE2FS + help + e2label will display or change the filesystem label on the ext2 + filesystem located on device. + +config BUSYBOX_CONFIG_FINDFS + bool "findfs" + default n + depends on BUSYBOX_CONFIG_TUNE2FS + help + findfs will search the disks in the system looking for a filesystem + which has a label matching label or a UUID equal to uuid. + +endmenu diff --git a/openwrt/package/busybox/config/findutils/Config.in b/openwrt/package/busybox/config/findutils/Config.in index fb5a8c05f1..9667bfba81 100644 --- a/openwrt/package/busybox/config/findutils/Config.in +++ b/openwrt/package/busybox/config/findutils/Config.in @@ -17,7 +17,15 @@ config BUSYBOX_CONFIG_FEATURE_FIND_MTIME depends on BUSYBOX_CONFIG_FIND help Allow searching based on the modification time of - files. + files, in days. + +config BUSYBOX_CONFIG_FEATURE_FIND_MMIN + bool " Enable modified time matching (-min) option" + default n + depends on BUSYBOX_CONFIG_FIND + help + Allow searching based on the modification time of + files, in minutes. config BUSYBOX_CONFIG_FEATURE_FIND_PERM bool " Enable permissions matching (-perm) option" @@ -57,6 +65,14 @@ config BUSYBOX_CONFIG_FEATURE_FIND_INUM help Support the 'find -inum' option for searching by inode number. +config BUSYBOX_CONFIG_FEATURE_FIND_EXEC + bool " Enable (-exec) option allowing execution of commands" + default y + depends on BUSYBOX_CONFIG_FIND + help + Support the 'find -exec' option for executing commands based upon + the files matched. + config BUSYBOX_CONFIG_GREP bool "grep" default y @@ -73,13 +89,13 @@ config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS and various repetition operators. config BUSYBOX_CONFIG_FEATURE_GREP_FGREP_ALIAS - bool " Alias fgrep to grep -f" + bool " Alias fgrep to grep -F" default y depends on BUSYBOX_CONFIG_GREP help - fgrep sees the search pattern as a normal string rather than + fgrep sees the search pattern as a normal string rather than regular expressions. - grep -f is always builtin, this just creates the fgrep alias. + grep -F is always builtin, this just creates the fgrep alias. config BUSYBOX_CONFIG_FEATURE_GREP_CONTEXT bool " Enable before and after context flags (-A, -B and -C)" diff --git a/openwrt/package/busybox/config/init/Config.in b/openwrt/package/busybox/config/init/Config.in index 087d836bf9..88dcaca2d3 100644 --- a/openwrt/package/busybox/config/init/Config.in +++ b/openwrt/package/busybox/config/init/Config.in @@ -12,21 +12,32 @@ config BUSYBOX_CONFIG_INIT init is the first program run when the system boots. config BUSYBOX_CONFIG_FEATURE_USE_INITTAB - bool " Support reading an inittab file?" + bool " Support reading an inittab file" default y depends on BUSYBOX_CONFIG_INIT help Allow init to read an inittab file when the system boot. -config BUSYBOX_CONFIG_FEATURE_INITRD - bool " Support running init from within an initrd?" +config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY + bool " Support running commands with a controlling-tty" + default n + depends on BUSYBOX_CONFIG_INIT + help + If this option is enabled a command starting with hyphen (-) + is run in its own session (setsid(2)) and possibly with a + controlling tty (TIOCSCTTY). This is not the traditional init + behavour, but is often what you want in an embedded system where + the console is only accessed during development or for maintenance. + +config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET + bool " Be _extra_ quiet on boot" default n depends on BUSYBOX_CONFIG_INIT help - Allow init to be called from an initrd as linuxrc. + Prevent init from logging some messages to the console during boot. config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS - bool " Support dumping core for child processes (debugging only)?" + bool " Support dumping core for child processes (debugging only)" default n depends on BUSYBOX_CONFIG_INIT help @@ -35,31 +46,24 @@ config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS core file sizes. If this option is disabled, processes will not generate any core files. -config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET - bool " Should init be _extra_ quiet on boot?" - default n - depends on BUSYBOX_CONFIG_INIT - help - Prevent init from logging some messages to the console - during boot. -config BUSYBOX_CONFIG_HALT - bool "halt" - default n - help - Stop all processes and halt the system. -config BUSYBOX_CONFIG_POWEROFF - bool "poweroff" +config BUSYBOX_CONFIG_FEATURE_INITRD + bool " Support running init from within an initrd (not initramfs)" default n + depends on BUSYBOX_CONFIG_INIT help - Stop all processes and (try to) power off the system. + Legacy support for running init under the old-style initrd. Allows + the name linuxrc to act as init, and it doesn't assume init is PID 1. + + This does not apply to initramfs, which runs /init as PID 1 and + requires no special support. -config BUSYBOX_CONFIG_REBOOT - bool "reboot" +config BUSYBOX_CONFIG_HALT + bool "poweroff, halt, and reboot" default y help - Stop all processes and reboot the system. + Stop all processes and either halt, reboot, or power off the system. config BUSYBOX_CONFIG_MESG bool "mesg" @@ -68,5 +72,9 @@ config BUSYBOX_CONFIG_MESG Mesg controls access to your terminal by others. It is typically used to allow or disallow other users to write to your terminal + default y + help + Stop all processes and (try to) power off the system. + endmenu diff --git a/openwrt/package/busybox/config/libbb/Config.in b/openwrt/package/busybox/config/libbb/Config.in new file mode 100644 index 0000000000..7d84a75962 --- /dev/null +++ b/openwrt/package/busybox/config/libbb/Config.in @@ -0,0 +1,22 @@ +# +# For a description of the syntax of this configuration file, +# see scripts/kbuild/config-language.txt. +# + +menu "Busybox Library Tuning" + +config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED + int " MD5: Trade Bytes for Speed" + default 2 + range 0 3 + help + Trade binary size versus speed for the md5sum algorithm. + Approximate values running uClibc and hashing + linux-2.4.4.tar.bz2 were: + user times (sec) text size (386) + 0 (fastest) 1.1 6144 + 1 1.4 5392 + 2 3.0 5088 + 3 (smallest) 5.1 4912 + +endmenu diff --git a/openwrt/package/busybox/config/loginutils/Config.in b/openwrt/package/busybox/config/loginutils/Config.in index 7ab724f5ca..621d57643f 100644 --- a/openwrt/package/busybox/config/loginutils/Config.in +++ b/openwrt/package/busybox/config/loginutils/Config.in @@ -5,6 +5,33 @@ menu "Login/Password Management Utilities" +config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS + bool "Support for shadow passwords" + default n + help + Build support for shadow password in /etc/shadow. This file is only + readable by root and thus the encrypted passwords are no longer + publicly readable. + +config BUSYBOX_CONFIG_USE_BB_SHADOW + bool #" Use busybox shadow password functions" + default n + depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS + help + If you leave this disabled, busybox will use the system's shadow + password handling functions. And if you are using the GNU C library + (glibc), you will then need to install the /etc/nsswitch.conf + configuration file and the required /lib/libnss_* libraries in + order for the shadow password functions to work. This generally + makes your embedded system quite a bit larger. + + Enabling this option will cause busybox to directly access the + system's /etc/shadow file when handling shadow passwords. This + makes your system smaller and I will get fewer emails asking about + how glibc NSS works). When this option is enabled, you will not be + able to use PAM to access shadow passwords from remote LDAP + password servers and whatnot. + config BUSYBOX_CONFIG_USE_BB_PWD_GRP bool "Use internal password and group functions rather than system functions" default n @@ -26,7 +53,6 @@ config BUSYBOX_CONFIG_USE_BB_PWD_GRP If you enable this option, it will add about 1.5k to busybox. - config BUSYBOX_CONFIG_ADDGROUP bool "addgroup" default n @@ -57,14 +83,21 @@ config BUSYBOX_CONFIG_GETTY help getty lets you log in on a tty, it is normally invoked by init. -config BUSYBOX_CONFIG_FEATURE_U_W_TMP - bool " Support utmp and wtmp files" - depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_WHO || BUSYBOX_CONFIG_LAST +config BUSYBOX_CONFIG_FEATURE_UTMP + bool " Support utmp file" + depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_WHO default n help - The files /var/run/utmp and /var/run/wtmp can be used to track when - user's have logged into and logged out of the system, allowing programs - such as 'who' and 'last' to list who is currently logged in. + The file /var/run/utmp is used to track who is currently logged in. + +config BUSYBOX_CONFIG_FEATURE_WTMP + bool " Support wtmp file" + depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_LAST + default n + select BUSYBOX_CONFIG_FEATURE_UTMP + help + The file /var/run/wtmp is used to track when user's have logged into + and logged out of the system. config BUSYBOX_CONFIG_LOGIN bool "login" @@ -126,36 +159,5 @@ config BUSYBOX_CONFIG_VLOCK Note that Busybox binary must be setuid root for this applet to work properly. -comment "Common options for adduser, deluser, login, su" - depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_DELUSER || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU - -config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS - bool "Support for shadow passwords" - default n - depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_DELUSER || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU - help - Build support for shadow password in /etc/shadow. This file is only - readable by root and thus the encrypted passwords are no longer - publicly readable. - -config BUSYBOX_CONFIG_USE_BB_SHADOW - bool " Use busybox shadow password functions" - default n - depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS - help - If you leave this disabled, busybox will use the system's shadow - password handling functions. And if you are using the GNU C library - (glibc), you will then need to install the /etc/nsswitch.conf - configuration file and the required /lib/libnss_* libraries in - order for the shadow password functions to work. This generally - makes your embedded system quite a bit larger. - - Enabling this option will cause busybox to directly access the - system's /etc/shadow file when handling shadow passwords. This - makes your system smaller and I will get fewer emails asking about - how glibc NSS works). When this option is enabled, you will not be - able to use PAM to access shadow passwords from remote LDAP - password servers and whatnot. - endmenu diff --git a/openwrt/package/busybox/config/miscutils/Config.in b/openwrt/package/busybox/config/miscutils/Config.in index 77dc85cd05..1ffb8c6536 100644 --- a/openwrt/package/busybox/config/miscutils/Config.in +++ b/openwrt/package/busybox/config/miscutils/Config.in @@ -12,6 +12,13 @@ config BUSYBOX_CONFIG_ADJTIMEX Adjtimex reads and optionally sets adjustment parameters for the Linux clock adjustment algorithm. +config BUSYBOX_CONFIG_BBCONFIG + bool "bbconfig" + default n + help + The bbconfig applet will print the config file with which + busybox was built. + config BUSYBOX_CONFIG_CROND bool "crond" default y @@ -37,6 +44,7 @@ config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL 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. @@ -83,13 +91,66 @@ config BUSYBOX_CONFIG_DEVFSD_VERBOSE help Increases logging to stderr or syslog. +config BUSYBOX_CONFIG_EJECT + bool "eject" + default n + help + Used to eject cdroms. (defaults to /dev/cdrom) + config BUSYBOX_CONFIG_LAST bool "last" default n - select BUSYBOX_CONFIG_FEATURE_U_W_TMP + select BUSYBOX_CONFIG_FEATURE_WTMP help 'last' displays a list of the last users that logged into the system. +config BUSYBOX_CONFIG_LESS + bool "less" + default n + help + 'less' is a pager, meaning that it displays text files. It possesses + a wide array of features, and is an improvement over 'more'. + +config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS + bool " Enable bracket searching" + default n + depends on BUSYBOX_CONFIG_LESS + help + This option adds the capability to search for matching left and right + brackets, facilitating programming. + +config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS + bool " Enable extra flags" + default n + depends on BUSYBOX_CONFIG_LESS + help + The extra flags provided do the following: + + 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_FLAGCS + bool " Enable flag changes" + default n + depends on BUSYBOX_CONFIG_LESS + help + This enables the ability to change command-line flags within + less itself. + +config BUSYBOX_CONFIG_FEATURE_LESS_MARKS + bool " Enable marks" + default n + depends on BUSYBOX_CONFIG_LESS + help + Marks enable positions in a file to be stored for easy reference. + +config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP + bool " Enable regular expressions" + default n + depends on BUSYBOX_CONFIG_LESS + help + Enable regular expressions, allowing complex file searches. + config BUSYBOX_CONFIG_HDPARM bool "hdparm" default n @@ -152,10 +213,39 @@ config BUSYBOX_CONFIG_MAKEDEVS bool "makedevs" default n help - 'makedevs' is a utility used and created by the Linux Router Project. - It creates a large number of device special files (/dev devices) - rather quickly, and can be considerably faster then running mknod a - zillion times. + '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 makde with one command. + User/group names are allowed as an alternative to uid/gid. + +choice + prompt "Choose makedevs behaviour" + depends BUSYBOX_CONFIG_MAKEDEVS + default BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE + +config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_LEAF + bool "leaf" + +config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE + bool "table" + +endchoice + +config BUSYBOX_CONFIG_MOUNTPOINT + bool "mountpoint" + default n + help + mountpoint checks if the directory is a mountpoint. config BUSYBOX_CONFIG_MT bool "mt" @@ -165,6 +255,15 @@ config BUSYBOX_CONFIG_MT to advance or rewind a tape past a specified number of archive files on the tape. +config BUSYBOX_CONFIG_RUNLEVEL + bool "runlevel" + default n + help + find the current and previous system runlevel. + + This applet uses utmp but does not rely on busybox supporing + utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc. + config BUSYBOX_CONFIG_RX bool "rx" default n @@ -178,6 +277,12 @@ config BUSYBOX_CONFIG_STRINGS strings prints the printable character sequences for each file specified. +config BUSYBOX_CONFIG_SETSID + bool "setsid" + default n + help + setsid runs a program in a new session + config BUSYBOX_CONFIG_TIME bool "time" default y diff --git a/openwrt/package/busybox/config/modutils/Config.in b/openwrt/package/busybox/config/modutils/Config.in index ee348f6fdb..7c9f50f16d 100644 --- a/openwrt/package/busybox/config/modutils/Config.in +++ b/openwrt/package/busybox/config/modutils/Config.in @@ -11,22 +11,8 @@ config BUSYBOX_CONFIG_INSMOD help insmod is used to load specified modules in the running kernel. -config BUSYBOX_CONFIG_FEATURE_2_4_MODULES - bool " Support version 2.2.x to 2.4.x Linux kernels" - default y - depends on BUSYBOX_CONFIG_INSMOD - help - Support module loading for 2.2.x and 2.4.x Linux kernels. - -config BUSYBOX_CONFIG_FEATURE_2_6_MODULES - bool " Support version 2.6.x Linux kernels" - default y - depends on BUSYBOX_CONFIG_INSMOD - help - Support module loading for newer 2.6.x Linux kernels. - config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING - bool " Module version checking" + bool "Module version checking" default n depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES help @@ -34,7 +20,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING ensure that the kernel and module are made for each other. config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS - bool " Add module symbols to kernel symbol table" + bool "Add module symbols to kernel symbol table" default n depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES help @@ -45,7 +31,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS Oops messages from kernel modules, say N. config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM - bool " In kernel memory optimization (uClinux only)" + bool "In kernel memory optimization (uClinux only)" default n depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES help @@ -55,7 +41,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM being loaded into memory. config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP - bool " Enable load map (-m) option" + bool "Enable load map (-m) option" default n depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES help @@ -66,7 +52,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP don't need this option. config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL - bool " Symbols in load map" + bool "Symbols in load map" default n depends on BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP help @@ -74,16 +60,25 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL load map. With this option, -m will also output symbols load map. +config BUSYBOX_CONFIG_RMMOD + bool "rmmod" + default y + help + rmmod is used to unload specified modules from the kernel. + config BUSYBOX_CONFIG_LSMOD bool "lsmod" default y help lsmod is used to display a list of loaded modules. -config BUSYBOX_CONFIG_FEATURE_QUERY_MODULE_INTERFACE - bool - default y - depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && !CONFIG_FEATURE_2_6_MODULES +config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT + bool "lsmod pretty output for 2.6.x Linux kernels " + default n + depends on BUSYBOX_CONFIG_LSMOD + help + This option makes output format of lsmod adjusted to + the format of module-init-tools for Linux kernel 2.6. config BUSYBOX_CONFIG_MODPROBE bool "modprobe" @@ -92,14 +87,31 @@ config BUSYBOX_CONFIG_MODPROBE Handle the loading of modules, and their dependancies on a high level. -config BUSYBOX_CONFIG_RMMOD - bool "rmmod" - default y + Note that in the state, modprobe does not understand multiple + module options from the configuration file. See option below. + +config BUSYBOX_CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS + bool "Multiple options parsing" + default n + depends on BUSYBOX_CONFIG_MODPROBE help - rmmod is used to unload specified modules from the kernel. + Allow modprobe to understand more than one option to pass to + modules. + + This is a WIP, while waiting for a common argument parsing + common amongst all BB applets (shell, modprobe, etc...) and + adds around 600 bytes on x86, 700 bytes on ARM. The code is + biggish and uggly, but just works. + + Saying Y here is not a bad idea if you're not that short + on storage capacity. + +comment "Options common to multiple modutils" + depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_LSMOD config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE - bool "Support tainted module checking with new kernels" + # Simulate indentation + bool " Support tainted module checking with new kernels" default n depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_LSMOD help @@ -108,6 +120,28 @@ config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE support request. This option is required to support GPLONLY modules. +config BUSYBOX_CONFIG_FEATURE_2_4_MODULES + # Simulate indentation + bool " Support version 2.2.x to 2.4.x Linux kernels" + default y + depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD + help + Support module loading for 2.2.x and 2.4.x Linux kernels. + +config BUSYBOX_CONFIG_FEATURE_2_6_MODULES + # Simulate indentation + bool " Support version 2.6.x Linux kernels" + default y + depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE + help + Support module loading for newer 2.6.x Linux kernels. + + +config BUSYBOX_CONFIG_FEATURE_QUERY_MODULE_INTERFACE + bool + default n + depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && !CONFIG_FEATURE_2_6_MODULES + endmenu diff --git a/openwrt/package/busybox/config/networking/Config.in b/openwrt/package/busybox/config/networking/Config.in index 996afb4473..14e6b5f79a 100644 --- a/openwrt/package/busybox/config/networking/Config.in +++ b/openwrt/package/busybox/config/networking/Config.in @@ -18,6 +18,25 @@ config BUSYBOX_CONFIG_ARPING help Ping hosts by ARP packets +config BUSYBOX_CONFIG_DNSD + bool "dnsd" + default n + help + Small and static DNS server deamon. + +config BUSYBOX_CONFIG_ETHER_WAKE + bool "ether-wake" + default n + help + Send a magic packet to wake up sleeping machines. + +config BUSYBOX_CONFIG_FAKEIDENTD + bool "fakeidentd" + default n + help + fakeidentd listens to the ident port and returns a set fake + value whatever it gets. + config BUSYBOX_CONFIG_FTPGET bool "ftpget" default n @@ -66,7 +85,6 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_AUTH_MD5 Enables basic per url authentication from /etc/httpd.conf using md5 passwords. - if !CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY config BUSYBOX_CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP bool " Support reloading the global config file using hup signal" @@ -101,7 +119,18 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_CGI depends on BUSYBOX_CONFIG_HTTPD help This option allows scripts and executables to be invoked - when specific urls are requested. + when specific urls are requested. + +config BUSYBOX_CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR + bool " Enable support for running scripts through an interpreter" + default n + depends on BUSYBOX_CONFIG_FEATURE_HTTPD_CGI + help + This option enables support for running scripts through an + interpreter. Turn this on, if you want PHP scripts to work + properly. You need to supply an addition line in your httpd + config file: + *.php:/path/to/your/php config BUSYBOX_CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV bool " Support the REMOTE_PORT environment variable for CGI" @@ -171,6 +200,7 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS config BUSYBOX_CONFIG_IFUPDOWN bool "ifupdown" default n + select BUSYBOX_CONFIG_RUN_PARTS help Activate or deactivate the specified interfaces. This applet makes use of either "ifconfig" and "route" or the "ip" command to actually @@ -291,6 +321,13 @@ config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BILTIN_CHARGEN help Familiar character generator internal inetd service +config BUSYBOX_CONFIG_FEATURE_INETD_RPC + bool " Support RPC services" + default n + depends on BUSYBOX_CONFIG_INETD + help + Suuport Sun-RPC based services + config BUSYBOX_CONFIG_IP bool "ip" @@ -406,7 +443,7 @@ config BUSYBOX_CONFIG_NAMEIF File fields are separated by space or tab. File format: # Comment - new_interface_name XX:XX:XX:XX:XX:XX + new_interface_name XX:XX:XX:XX:XX:XX config BUSYBOX_CONFIG_NC bool "nc" @@ -421,6 +458,14 @@ config BUSYBOX_CONFIG_NETMSG help simple program for sending udp broadcast messages +config BUSYBOX_CONFIG_NC_GAPING_SECURITY_HOLE + bool "gaping security hole" + default n + depends on BUSYBOX_CONFIG_NC + help + Add support for executing a program after making or receiving a + successful connection (-e option). + config BUSYBOX_CONFIG_NETSTAT bool "netstat" default y @@ -498,7 +543,6 @@ config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN config BUSYBOX_CONFIG_TELNETD bool "telnetd" default y - #select BUSYBOX_CONFIG_LOGIN help A daemon for the TELNET protocol, allowing you to log onto the host running the daemon. Please keep in mind that the TELNET protocol @@ -600,6 +644,22 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE Add some verbosity to traceroute. This includes amongst other things hostnames and ICMP response types. +config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE + bool " Enable loose source route" + default n + depends on BUSYBOX_CONFIG_TRACEROUTE + help + Add option to specify a loose source route gateway + (8 maximum). + +config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP + bool " Use ICMP instead of UDP" + default n + depends on BUSYBOX_CONFIG_TRACEROUTE + help + Add feature to allow for ICMP ECHO instead of UDP datagrams. + + config BUSYBOX_CONFIG_VCONFIG bool "vconfig" default y @@ -636,5 +696,16 @@ config BUSYBOX_CONFIG_FEATURE_WGET_IP6_LITERAL source package/busybox/config/networking/udhcp/Config.in +config BUSYBOX_CONFIG_ZCIP + bool "zcip" + default n + help + ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927. + It's a daemon that allocates and defends a dynamically assigned + address on the 169.254/16 network, requiring no system administrator. + + See http://www.zeroconf.org for further details, and "zcip.script" + in the busybox examples. + endmenu diff --git a/openwrt/package/busybox/config/procps/Config.in b/openwrt/package/busybox/config/procps/Config.in index 85328564a2..b94632b467 100644 --- a/openwrt/package/busybox/config/procps/Config.in +++ b/openwrt/package/busybox/config/procps/Config.in @@ -13,6 +13,14 @@ config BUSYBOX_CONFIG_FREE memory in the system, as well as the buffers used by the kernel. The shared memory column should be ignored; it is obsolete. +config BUSYBOX_CONFIG_FUSER + bool "fuser" + default n + help + fuser lists all PIDs (Process IDs) that currently have a given + file open. fuser can also list all PIDs that have a given network + (TCP or UDP) port open. + config BUSYBOX_CONFIG_KILL bool "kill" default y @@ -42,12 +50,37 @@ config BUSYBOX_CONFIG_PIDOF Pidof finds the process id's (pids) of the named programs. It prints those id's on the standard output. +config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE + bool " Enable argument for single shot (-s)" + default n + depends on BUSYBOX_CONFIG_PIDOF + help + Support argument '-s' for returning only the first pid found. + +config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT + bool " Enable argument for omitting pids (-o)" + default n + depends on BUSYBOX_CONFIG_PIDOF + help + Support argument '-o' for omitting the given pids in output. + The special pid %PPID can be used to name the parent process + of the pidof, in other words the calling shell or shell script. + config BUSYBOX_CONFIG_PS bool "ps" default y help ps gives a snapshot of the current processes. +config BUSYBOX_CONFIG_FEATURE_PS_WIDE + bool " Enable argument for wide output (-w)" + default n + depends on BUSYBOX_CONFIG_PS + help + Support argument 'w' for wide output. + If given once, 132 chars are printed and given more than + one, the length is unlimited. + config BUSYBOX_CONFIG_RENICE bool "renice" default n @@ -55,6 +88,12 @@ config BUSYBOX_CONFIG_RENICE Renice alters the scheduling priority of one or more running processes. +config BUSYBOX_CONFIG_BB_SYSCTL + bool "sysctl" + default y + help + Configure kernel parameters at runtime. + config BUSYBOX_CONFIG_TOP bool "top" default y @@ -62,8 +101,8 @@ config BUSYBOX_CONFIG_TOP The top program provides a dynamic real-time view of a running system. -config BUSYBOX_FEATURE_CPU_USAGE_PERCENTAGE - bool +config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE + bool " Support showing CPU usage percentage (add 2k bytes)" default y depends on BUSYBOX_CONFIG_TOP help @@ -77,11 +116,6 @@ config BUSYBOX_CONFIG_UPTIME the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes. -config BUSYBOX_CONFIG_BB_SYSCTL - bool "sysctl" - default y - help - sysctl - configure kernel parameters at runtime endmenu diff --git a/openwrt/package/busybox/config/shell/Config.in b/openwrt/package/busybox/config/shell/Config.in index 6ac4f69710..b9a1b4d7a3 100644 --- a/openwrt/package/busybox/config/shell/Config.in +++ b/openwrt/package/busybox/config/shell/Config.in @@ -3,7 +3,7 @@ # see scripts/kbuild/config-language.txt. # -menu "Another Bourne-like Shell" +menu "Shells" choice prompt "Choose your default shell" @@ -36,6 +36,7 @@ endchoice config BUSYBOX_CONFIG_ASH bool "ash" default y + select BUSYBOX_CONFIG_TEST help Tha 'ash' shell adds about 60k in the default configuration and is the most complete and most pedantically correct shell included with @@ -53,6 +54,23 @@ config BUSYBOX_CONFIG_ASH_JOB_CONTROL help Enable job control in the ash shell. +config BUSYBOX_CONFIG_ASH_READ_NCHARS + bool " Enable 'read -n N' and 'read -s' support" + default n + depends on BUSYBOX_CONFIG_ASH + help + 'read -n N' will return a value after N characters have been read. + 'read -s' will read without echoing the user's input. + +config BUSYBOX_CONFIG_ASH_READ_TIMEOUT + bool " Enable 'read -t S' support." + default y + depends on BUSYBOX_CONFIG_ASH + help + 'read -t S' will return a value after S seconds have passed. + This implementation will allow fractional seconds, expressed + as a decimal fraction, e.g. 'read -t 2.5 foo'. + config BUSYBOX_CONFIG_ASH_ALIAS bool " Enable alias support" default y @@ -92,6 +110,21 @@ config BUSYBOX_CONFIG_ASH_CMDCMD you to run the specified command with the specified arguments, even when there is an ash builtin command with the same name. +config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO + bool " Enable builtin version of 'echo'" + default y + depends on BUSYBOX_CONFIG_ASH + help + Enable support for echo, built in to ash. + +# this entry also appears in coreutils/Config.in, next to the echo applet +config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO + bool " Enable echo options (-n and -e)" + default y + depends on BUSYBOX_CONFIG_ASH_BUILTIN_ECHO + help + This adds options (-n and -e) to echo. + config BUSYBOX_CONFIG_ASH_MAIL bool " Check for new mail on interactive shells" default n @@ -104,7 +137,7 @@ config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE default y depends on BUSYBOX_CONFIG_ASH help - Compile ash for reduced size at price of speed. + Compile ash for reduced size at the price of speed. config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT bool " Enable pseudorandom generator and variable $RANDOM" @@ -117,9 +150,21 @@ config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT After "unset RANDOM" then generator will switch off and this variable will no longer have special treatment. +config BUSYBOX_CONFIG_ASH_EXPAND_PRMT + bool " Expand prompt string" + default n + depends on BUSYBOX_CONFIG_ASH + help + "PS#" may be contain volatile content, such as backquote commands. + This option recreates the prompt string from the environment + variable each time it is displayed. + config BUSYBOX_CONFIG_HUSH bool "hush" default n + select BUSYBOX_CONFIG_TRUE + select BUSYBOX_CONFIG_FALSE + select BUSYBOX_CONFIG_TEST help hush is a very small shell (just 18k) and it has fairly complete Bourne shell grammar. It even handles all the normal flow control @@ -134,6 +179,9 @@ config BUSYBOX_CONFIG_HUSH config BUSYBOX_CONFIG_LASH bool "lash" default n + select BUSYBOX_CONFIG_TRUE + select BUSYBOX_CONFIG_FALSE + select BUSYBOX_CONFIG_TEST help lash is the very smallest shell (adds just 10k) and it is quite usable as a command prompt, but it is not suitable for any but the @@ -146,6 +194,9 @@ config BUSYBOX_CONFIG_LASH config BUSYBOX_CONFIG_MSH bool "msh" default n + select BUSYBOX_CONFIG_TRUE + select BUSYBOX_CONFIG_FALSE + select BUSYBOX_CONFIG_TEST help 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 @@ -175,7 +226,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL busybox to use the ifconfig busybox applet. Specifying the fully qualified executable name, such as '/sbin/ifconfig' will still execute the /sbin/ifconfig executable on the filesystem. This option - is generally used when creating a staticly linked version of busybox + is generally used when creating a statically linked version of busybox for use as a rescue shell, in the event that you screw up your system. Note that when using this option, the shell will attempt to directly @@ -190,6 +241,14 @@ config BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING help Enable command editing in shell. +config BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING_VI + bool "vi-style line editing commands" + default n + depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING + help + Enable vi-style line editing in the shell. This mode can be + turned on and off with "set -o vi" and "set +o vi". + config BUSYBOX_CONFIG_FEATURE_COMMAND_HISTORY int "history size" default 15 diff --git a/openwrt/package/busybox/config/util-linux/Config.in b/openwrt/package/busybox/config/util-linux/Config.in index af47358573..474ef02f0d 100644 --- a/openwrt/package/busybox/config/util-linux/Config.in +++ b/openwrt/package/busybox/config/util-linux/Config.in @@ -5,7 +5,6 @@ menu "Linux System Utilities" - config BUSYBOX_CONFIG_DMESG bool "dmesg" default y @@ -27,7 +26,6 @@ config BUSYBOX_CONFIG_FBSET interface to access a graphics display. Enable this option if you wish to enable the 'fbset' utility. - config BUSYBOX_CONFIG_FEATURE_FBSET_FANCY bool " Turn on extra fbset options" default n @@ -210,6 +208,35 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_LONGOPTIONS are overly fond of its long options, such as --hctosys, --utc, etc) then enable this option. +config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS + bool " Use FHS /var/lib/hwclock/adjtime" + default n + depends on BUSYBOX_CONFIG_HWCLOCK + help + Starting with FHS 2.3, the adjtime state file is supposed to exist + at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish + to use the FHS behavior, answer Y here, otherwise answer N for the + classic /etc/adjtime path. + + http://www.pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO + +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 + from the system. + +config BUSYBOX_CONFIG_IPCS + bool "ipcs" + default n + select BUSYBOX_CONFIG_FEATURE_SUID + help + The ipcs utility is used to provide information on the currently + allocated System V interprocess (IPC) objects in the system. + config BUSYBOX_CONFIG_LOSETUP bool "losetup" default n @@ -218,6 +245,36 @@ config BUSYBOX_CONFIG_LOSETUP file or block device, and to query the status of a loop device. This version does not currently support enabling data encryption. +config BUSYBOX_CONFIG_MDEV + bool "mdev" + default n + help + mdev is a mini-udev implementation: call it with -s to populate + /dev from /sys, then "echo /sbin/mdev > /proc/sys/kernel/hotplug" to + have it handle hotplug events afterwards. Device names are taken + from sysfs. + +config BUSYBOX_CONFIG_FEATURE_MDEV_CONF + bool " Support /etc/mdev.conf" + default n + depends on BUSYBOX_CONFIG_MDEV + help + The mdev config file contains lines that look like: + + hd[a-z][0-9]* 0:3 660 + + That's device name (with regex match), uid:gid, and permissions. + + Optionally, that can be followed (on the same line) by an asterisk + and a command line to run after creating the corresponding device(s), + ala: + + hdc root:cdrom 660 *ln -s hdc cdrom + + Config file parsing stops on the first matching line. If no config + entry is matched, devices are created with default 0:0 660. (Make + the last line match .* to override this.) + config BUSYBOX_CONFIG_MKSWAP bool "mkswap" default n @@ -252,6 +309,24 @@ config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS 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 + 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 + particular part of the tree. A filesystem can either live on a block + device, or it can be accessible over the network, as is the case with + NFS filesystems. Most people using BusyBox will also want to enable + the 'mount' utility. + +config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS + bool " Support mounting NFS file systems" + default y + depends on BUSYBOX_CONFIG_MOUNT + help + Enable mounting of NFS file systems. + config BUSYBOX_CONFIG_PIVOT_ROOT bool "pivot_root" default y @@ -261,6 +336,9 @@ config BUSYBOX_CONFIG_PIVOT_ROOT of wild and crazy things with your Linux system and is far more powerful than 'chroot'. + Note: This is for initrd in linux 2.4. Under initramfs (introduced + in linux 2.6) use switch_root instead. + config BUSYBOX_CONFIG_RDATE bool "rdate" default y @@ -270,6 +348,21 @@ config BUSYBOX_CONFIG_RDATE the RFC868 protocol, which is built into the inetd daemon on most systems. +config BUSYBOX_CONFIG_READPROFILE + bool "readprofile" + default n + help + This allows you to parse /proc/profile for basic profiling. + +config BUSYBOX_CONFIG_SETARCH + bool "setarch" + default n + help + The linux32 utility is used to create a 32bit environment for the + specified program (usually a shell). It only makes sense to have + this util on a system that supports both 64bit and 32bit userland + (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...). + config BUSYBOX_CONFIG_SWAPONOFF bool "swaponoff" default n @@ -281,23 +374,24 @@ config BUSYBOX_CONFIG_SWAPONOFF space. If you are not using any swap space, you can leave this option disabled. -config BUSYBOX_CONFIG_MOUNT - bool "mount" +config BUSYBOX_CONFIG_SWITCH_ROOT + bool "switch_root" default y 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 - particular part of the tree. A filesystem can either live on a block - device, or it can be accessible over the network, as is the case with - NFS filesystems. Most people using BusyBox will also want to enable - the 'mount' utility. + The switch_root utility is used from initramfs to select a new + root device. Under initramfs, you have to use this instead of + pivot_root. (Stop reading here if you don't care why.) -config BUSYBOX_FEATURE_MOUNT_NFS - bool " Support mounting NFS file systems" - default y - depends on BUSYBOX_CONFIG_MOUNT - help - Enable mounting of NFS file systems. + Booting with initramfs extracts a gzipped cpio archive into rootfs + (which is a variant of ramfs/tmpfs). Because rootfs can't be moved + or unmounted*, pivot_root will not work from initramfs. Instead, + switch_root deletes everything out of rootfs (including itself), + does a mount --move that overmounts rootfs with the new root, and + then execs the specified init program. + + * Because the Linux kernel uses rootfs internally as the starting + and ending point for searching through the kernel's doubly linked + list of active mount points. That's why. config BUSYBOX_CONFIG_UMOUNT bool "umount" @@ -308,50 +402,50 @@ config BUSYBOX_CONFIG_UMOUNT the tool to use. If you enabled the 'mount' utility, you almost certainly also want to enable 'umount'. -config BUSYBOX_CONFIG_FEATURE_MOUNT_FORCE - bool " Support forced filesystem unmounting" +config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL + bool " umount -a option" default y depends on BUSYBOX_CONFIG_UMOUNT help - This allows you to _force_ a filesystem to be umounted. This is generally - only useful when you want to get rid of an unreachable NFS system. + Support -a option to unmount all currently mounted filesystems. comment "Common options for mount/umount" depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP - bool " Support for loop devices" + bool " Support loopback mounts" default y depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT help - Enabling this feature allows mount to use the '-o' loop options, - which lets you loop mount files. Mount will automagically setup and - free the necessary loop devices so you do not need to mess with the - 'losetup' utility unless you really want to. This is really - only useful if you plan to loop mount files. + Enabling this feature allows automatic mounting of files (containing + filesystem images) via the linux kernel's loopback devices. The mount + command will detect you are trying to mount a file instead of a block + device, and transparently associate the file with a loopback device. + The umount command will also free that loopback device. + + You can still use the 'losetup' utility (to manually associate files + with loop devices) if you need to do something advanced, such as + specify an offset or cryptographic options to the loopback device. + (If you don't want umount to free the loop device, use "umount -D".) config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT - bool " Support for a real /etc/mtab (instead of /proc/mounts)" + bool " Support for the old /etc/mtab file" default n depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT help - If your root filesystem is writable and you wish to have the 'mount' - utility create an mtab file listing the filesystems which have been - mounted then you should enable this option. Most people that use - BusyBox have a read-only root filesystem, so they will leave this - option disabled and BusyBox will use the /proc/mounts file. - -config BUSYBOX_CONFIG_FEATURE_MTAB_FILENAME - string " mtab file location" - default n - depends on BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT - help - Some people have a read only root filesystem, but they also wish to - have the 'mount' utility create an mtab file listing the filesystems - which have been mounted. This option allows you to specify an alternative - location for the mtab file, such as /var/mtab, or /tmp/mtab. The default - value is /etc/mtab, which is where this file is located on most desktop - Linux systems. + Historically, Unix systems kept track of the currently mounted + partitions in the file "/etc/mtab". These days, the kernel exports + the list of currently mounted partitions in "/proc/mounts", rendering + the old mtab file obsolete. (In modern systems, /etc/mtab should be + a symlink to /proc/mounts.) + + The only reason to have mount maintain an /etc/mtab file itself is if + your stripped-down embedded system does not have a /proc directory. + If you must use this, keep in mind it's inherently brittle (for + example a mount under chroot won't update it), can't handle modern + features like separate per-process filesystem namespaces, requires + that your /etc directory be writeable, tends to get easily confused + by --bind or --move mounts, and so on. (In brief: avoid.) endmenu