Changeset 3234

Show
Ignore:
Timestamp:
07/16/07 16:47:44 (1 year ago)
Author:
tg
Message:

part Ⅱ – simplify busybox config, ok wbx@
from now on, you can select a smaller and a fuller busybox, like mksh;
if you want fewer applets, hand-edit the config, we won't prevent you,
but shan't support it in the ADK any more; if you want more applets,
please talk to me and I'll see if they can be included in the list

we still have a problem regarding duplicate binaries (ip, free, tar, …)
which could be solved with dpkg diversions if ipkg supports them;
for now just consider busybox a non-upgradable package if you have any
of these installed

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/freewrt/mk/build.mk

    r3210 r3234  
    140140 
    141141# add patterns for config symbols to always restore from default here 
    142 RESTORE_PATTERNS := BUSYBOX CCACHE FWRT_RUNTIME 
     142RESTORE_PATTERNS := CCACHE FWRT_RUNTIME 
    143143.NOTPARALLEL: _mconfig 
    144144_mconfig: ${CONFIG}/conf _mconfig2 _config 
  • trunk/freewrt/package/6tunnel/Config.in

    r2519 r3234  
    55        default n 
    66        select FWRT_KPACKAGE_KMOD_IPV6 
    7         select BUSYBOX_CONFIG_FEATURE_IPV6 
    87        help 
    98          6tunnel allows you to use services provided by IPv6 hosts with IPv4-only  
  • trunk/freewrt/package/Config.in.network

    r3208 r3234  
    33        default n 
    44        select FWRT_KPACKAGE_KMOD_IPV6 
    5         select BUSYBOX_CONFIG_FEATURE_IPV6 
    6         select BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6 
    75        help 
    86          Enable basic IPv6 support (kmod-ipv6) and 
  • trunk/freewrt/package/aiccu/Config.in

    r2519 r3234  
    66        select FWRT_KPACKAGE_KMOD_IPV6 
    77        select FWRT_PACKAGE_LIBPTHREAD 
    8         select BUSYBOX_CONFIG_FEATURE_IPV6 
    98        help 
    109          SixXS Automatic IPv6 Connectivity Client Utility 
  • trunk/freewrt/package/busybox/Config.in

    r3215 r3234  
    1212          Most people will answer Y. 
    1313 
    14 # if this is enabled, halt/poweroff/reboot aren't included in the .ipk 
    15 config BUSYBOX_CONFIG_FEATURE_FWCF_REBOOT 
    16         bool 
    17         default n 
    18  
    19 menu "Busybox Configuration" 
    20         depends FWRT_PACKAGE_BUSYBOX 
    21  
    22 
    23 # For a description of the syntax of this configuration file, 
    24 # see scripts/kbuild/config-language.txt. 
    25 
    26  
    27 #mainmenu "BusyBox Configuration" 
    28  
    29 config BUSYBOX_CONFIG_HAVE_DOT_CONFIG 
    30         bool 
    31         default y 
    32  
    33 menu "Busybox Settings" 
    34  
    35 menu "General Configuration" 
    36  
    37 config BUSYBOX_CONFIG_NITPICK 
    38         bool "See lots more (probably unnecessary) configuration options." 
    39         default n 
    40         help 
    41           Some BusyBox applets have more configuration options than anyone 
    42           will ever care about.  To avoid drowining people in complexity, most 
    43           of the applet features that can be set to a sane default value are 
    44           hidden, unless you hit the above switch. 
    45  
    46           This is better than to telling people to edit the busybox source 
    47           code, but not by much. 
    48  
    49           See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet 
    50  
    51           You have been warned. 
    52  
    53 config BUSYBOX_CONFIG_DESKTOP 
    54         bool "Enable options for full-blown desktop systems" 
    55         default n 
    56         help 
    57           Enable options and features which are not essential. 
    58           Select this only if you plan to use busybox on full-blown 
    59           desktop machine with common Linux distro, not on an embedded box. 
    60  
    61 choice 
    62         prompt "Buffer allocation policy" 
    63         default BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC 
    64         depends on BUSYBOX_CONFIG_NITPICK 
    65         help 
    66           There are 3 ways BusyBox can handle buffer allocations: 
    67           - Use malloc. This costs code size for the call to xmalloc. 
    68           - Put them on stack. For some very small machines with limited stack 
    69             space, this can be deadly.  For most folks, this works just fine. 
    70           - Put them in BSS. This works beautifully for computers with a real 
    71             MMU (and OS support), but wastes runtime RAM for uCLinux. This 
    72             behavior was the only one available for BusyBox versions 0.48 and 
    73             earlier. 
    74  
    75 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC 
    76         bool "Allocate with Malloc" 
    77  
    78 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK 
    79         bool "Allocate on the Stack" 
    80  
    81 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS 
    82         bool "Allocate in the .bss section" 
    83  
    84 endchoice 
    85  
    86 config BUSYBOX_CONFIG_SHOW_USAGE 
    87         bool "Show terse applet usage messages" 
     14config FWRT_PACKAGE_BUSYBOX_SMALL 
     15        bool "  Build an extra small busybox" 
     16        depends on FWRT_PACKAGE_BUSYBOX 
    8817        default y 
    8918        help 
    90           All BusyBox applets will show help messages when invoked with 
    91           wrong arguments. You can turn off printing these terse usage 
    92           messages if you say no here. 
    93           This will save you up to 7k. 
    94  
    95 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE 
    96         bool "Show verbose applet usage messages" 
    97         default y 
    98         select BUSYBOX_CONFIG_SHOW_USAGE 
    99         help 
    100           All BusyBox applets will show more verbose help messages when 
    101           busybox is invoked with --help.  This will add a lot of text to the 
    102           busybox binary.  In the default configuration, this will add about 
    103           13k, but it can add much more depending on your configuration. 
    104  
    105 config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE 
    106         bool 
    107         default n 
    108  
    109 config BUSYBOX_CONFIG_FEATURE_INSTALLER 
    110         bool "Support --install [-s] to install applet links at runtime" 
    111         default n 
    112         help 
    113           Enable 'busybox --install [-s]' support.  This will allow you to use 
    114           busybox at runtime to create hard links or symlinks for all the 
    115           applets that are compiled into busybox.  This feature requires the 
    116           /proc filesystem. 
    117  
    118 config BUSYBOX_CONFIG_LOCALE_SUPPORT 
    119         bool "Enable locale support (system needs locale for this to work)" 
    120         default n 
    121         help 
    122           Enable this if your system has locale support and you would like 
    123           busybox to support locale settings. 
    124  
    125 config BUSYBOX_CONFIG_GETOPT_LONG 
    126         bool 
    127         default y 
    128 #       bool "Enable support for --long-options" 
    129 #       default y 
    130 #       help 
    131 #         Enable this if you want busybox applets to use the gnu --long-option 
    132 #         style, in addition to single character -a -b -c style options. 
    133  
    134 config BUSYBOX_CONFIG_FEATURE_DEVPTS 
    135         bool "Use the devpts filesystem for Unix98 PTYs" 
    136         default y 
    137         help 
    138           Enable if you want BusyBox to use Unix98 PTY support. If enabled, 
    139           busybox will use /dev/ptmx for the master side of the pseudoterminal 
    140           and /dev/pts/<number> for the slave side.  Otherwise, BSD style 
    141           /dev/ttyp<number> will be used. To use this option, you should have 
    142           devpts mounted. 
    143  
    144 config BUSYBOX_CONFIG_FEATURE_CLEAN_UP 
    145         bool "Clean up all memory before exiting (usually not needed)" 
    146         default n 
    147         depends on BUSYBOX_CONFIG_NITPICK 
    148         help 
    149           As a size optimization, busybox normally exits without explicitly 
    150           freeing dynamically allocated memory or closing files.  This saves 
    151           space since the OS will clean up for us, but it can confuse debuggers 
    152           like valgrind, which report tons of memory and resource leaks. 
    153  
    154           Don't enable this unless you have a really good reason to clean 
    155           things up manually. 
    156  
    157 config BUSYBOX_CONFIG_FEATURE_SUID 
    158         bool "Support for SUID/SGID handling" 
    159         default n 
    160         help 
    161           With this option you can install the busybox binary belonging 
    162           to root with the suid bit set, and it'll and it'll automatically drop 
    163           priviledges for applets that don't need root access. 
    164  
    165           If you're really paranoid and don't want to do this, build two 
    166           busybox binaries with different applets in them (and the appropriate 
    167           symlinks pointing to each binary), and only set the suid bit on the 
    168           one that needs it.  The applets currently marked to need the suid bit 
    169           are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs, 
    170           and vlock. 
    171  
    172 config BUSYBOX_CONFIG_FEATURE_SYSLOG 
    173         bool "Support for syslog" 
    174         default n 
    175         help 
    176           This option is auto-selected when you select any applet which may 
    177           send its output to syslog. You do not need to select it manually. 
    178  
    179 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG 
    180         bool "Runtime SUID/SGID configuration via /etc/busybox.conf" 
    181         default n if BUSYBOX_CONFIG_FEATURE_SUID 
    182         depends on BUSYBOX_CONFIG_FEATURE_SUID 
    183         help 
    184           Allow the SUID / SGID state of an applet to be determined at runtime 
    185           by checking /etc/busybox.conf.  (This is sort of a poor man's sudo.) 
    186           The format of this file is as follows: 
    187  
    188           <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>) 
    189  
    190           An example might help: 
    191  
    192           [SUID] 
    193           su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0 
    194           su = ssx        # exactly the same 
    195  
    196           mount = sx- root.disk # applet mount can be run by root and members of group disk 
    197                                 # and runs with euid=0 
    198  
    199           cp = --- # disable applet cp for everyone 
    200  
    201           The file has to be owned by user root, group root and has to be 
    202           writeable only by root: 
    203                 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) 
    204           The busybox executable has to be owned by user root, group 
    205           root and has to be setuid root for this to work: 
    206                 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) 
    207  
    208           Robert 'sandman' Griebl has more information here: 
    209           <url: http://www.softforge.de/bb/suid.html >. 
    210  
    211 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET 
    212         bool "Suppress warning message if /etc/busybox.conf is not readable" 
    213         default y 
    214         depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG 
    215         help 
    216           /etc/busybox.conf should be readable by the user needing the SUID, check 
    217           this option to avoid users to be notified about missing permissions. 
    218  
    219 config BUSYBOX_CONFIG_FEATURE_HAVE_RPC 
    220         bool "RPC support" 
    221         default y 
    222         help 
    223           Select this if you have rpc support. 
    224           This automatically turns off all configuration options that rely 
    225           on RPC. 
    226  
    227 config BUSYBOX_CONFIG_SELINUX 
    228         bool "Support NSA Security Enhanced Linux" 
    229         default n 
    230         help 
    231           Enable support for SELinux in applets ls, ps, and id.  Also provide 
    232           the option of compiling in SELinux applets. 
    233  
    234           If you do not have a complete SELinux userland installed, this stuff 
    235           will not compile. Go visit 
    236                 http://www.nsa.gov/selinux/index.html 
    237           to download the necessary stuff to allow busybox to compile with 
    238           this option enabled. Specifially, libselinux 1.28 or better is 
    239           directly required by busybox. If the installation is located in a 
    240           non-standard directory, provide it by invoking make as follows: 
    241                 CFLAGS=-I<libselinux-include-path> \ 
    242                 LDFLAGS=-L<libselinux-lib-path> \ 
    243                 make 
    244  
    245           Most people will leave this set to 'N'. 
    246  
    247 config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH 
    248         string "Path to BusyBox executable" 
    249         default "/proc/self/exe" 
    250         help 
    251           When Busybox applets need to run other busybox applets, BusyBox 
    252           sometimes needs to exec() itself.  When the /proc filesystem is 
    253           mounted, /proc/self/exe always points to the currently running 
    254           executable.  If you haven't got /proc, set this to wherever you 
    255           want to run BusyBox from. 
    256  
    257 endmenu 
    258  
    259 menu 'Build Options' 
    260  
    261 config BUSYBOX_CONFIG_STATIC 
    262         bool "Build BusyBox as a static binary (no shared libs)" 
    263         default n 
    264         help 
    265           If you want to build a static BusyBox binary, which does not 
    266           use or require any shared libraries, then enable this option. 
    267           This can cause BusyBox to be considerably larger, so you should 
    268           leave this option false unless you have a good reason (i.e. 
    269           your target platform does not support shared libraries, or 
    270           you are building an initrd which doesn't need anything but 
    271           BusyBox, etc). 
    272  
    273           Most people will leave this set to 'N'. 
    274  
    275 config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX 
    276         bool "Build shared libbusybox" 
    277         default n 
    278         help 
    279           Build a shared library libbusybox.so which contains all 
    280           libraries used inside busybox. 
    281  
    282           This is an experimental feature intended to support the upcoming 
    283           "make standalone" mode.  Enabling it against the one big busybox 
    284           binary serves no purpose (and increases the size).  You should 
    285           almost certainly say "no" to this right now. 
    286  
    287 config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX 
    288         bool "Feature-complete libbusybox" 
    289         default n if !BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX 
    290         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX 
    291         help 
    292           Build a libbusybox with the complete feature-set, disregarding 
    293           the actually selected config. 
    294  
    295           Normally, libbusybox will only contain the features which are 
    296           used by busybox itself. If you plan to write a separate 
    297           standalone application which uses libbusybox say 'Y'. 
    298  
    299           Note: libbusybox is GPL, not LGPL, and exports no stable API that 
    300           might act as a copyright barrier.  We can and will modify the 
    301           exported function set between releases (even minor version number 
    302           changes), and happily break out-of-tree features. 
    303  
    304           Say 'N' if in doubt. 
    305  
    306 config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX 
    307         bool "Use shared libbusybox for busybox" 
    308         default y if BUSYBOX_CONFIG_BUILD_LIBBUSYBOX 
    309         depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX 
    310         help 
    311           Use libbusybox.so also for busybox itself. 
    312           You need to have a working dynamic linker to use this variant. 
    313  
    314 config BUSYBOX_CONFIG_LFS 
    315         bool "Build with Large File Support (for accessing files > 2 GB)" 
    316         default y 
    317         select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS 
    318         help 
    319           If you want to build BusyBox with large file support, then enable 
    320           this option.  This will have no effect if your kernel or your C 
    321           library lacks large file support for large files.  Some of the 
    322           programs that can benefit from large file support include dd, gzip, 
    323           cp, mount, tar, and many others.  If you want to access files larger 
    324           than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'. 
    325  
    326 config BUSYBOX_CONFIG_BUILD_AT_ONCE 
    327         bool "Compile all sources at once" 
    328         default n 
    329         help 
    330           Normally each source-file is compiled with one invocation of 
    331           the compiler. 
    332           If you set this option, all sources are compiled at once. 
    333           This gives the compiler more opportunities to optimize which can 
    334           result in smaller and/or faster binaries. 
    335  
    336           Setting this option will consume alot of memory, e.g. if you 
    337           enable all applets with all features, gcc uses more than 300MB 
    338           RAM during compilation of busybox. 
    339  
    340           This option is most likely only beneficial for newer compilers 
    341           such as gcc-4.1 and above. 
    342  
    343           Say 'N' unless you know what you are doing. 
    344  
    345 endmenu 
    346  
    347 menu 'Debugging Options' 
    348  
    349 config BUSYBOX_CONFIG_DEBUG 
    350         bool "Build BusyBox with extra Debugging symbols" 
    351         default n 
    352         help 
    353           Say Y here if you wish to examine BusyBox internals while applets are 
    354           running.  This increases the size of the binary considerably, and 
    355           should only be used when doing development.  If you are doing 
    356           development and want to debug BusyBox, answer Y. 
    357  
    358           Most people should answer N. 
    359  
    360 config BUSYBOX_CONFIG_DEBUG_PESSIMIZE 
    361         bool "Disable compiler optimizations." 
    362         default n 
    363         depends on BUSYBOX_CONFIG_DEBUG 
    364         help 
    365           The compiler's optimization of source code can eliminate and reorder 
    366           code, resulting in an executable that's hard to understand when 
    367           stepping through it with a debugger.  This switches it off, resulting 
    368           in a much bigger executable that more closely matches the source 
    369           code. 
    370  
    371 choice 
    372         prompt "Additional debugging library" 
    373         default BUSYBOX_CONFIG_NO_DEBUG_LIB 
    374         depends on BUSYBOX_CONFIG_DEBUG 
    375         help 
    376           Using an additional debugging library will make BusyBox become 
    377           considerable larger and will cause it to run more slowly.  You 
    378           should always leave this option disabled for production use. 
    379  
    380           dmalloc support: 
    381           ---------------- 
    382           This enables compiling with dmalloc ( http://dmalloc.com/ ) 
    383           which is an excellent public domain mem leak and malloc problem 
    384           detector.  To enable dmalloc, before running busybox you will 
    385           want to properly set your environment, for example: 
    386             export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile 
    387           The 'debug=' value is generated using the following command 
    388             dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ 
    389                -p check-fence -p check-heap -p check-lists -p check-blank \ 
    390                -p check-funcs -p realloc-copy -p allow-free-null 
    391  
    392           Electric-fence support: 
    393           ----------------------- 
    394           This enables compiling with Electric-fence support.  Electric 
    395           fence is another very useful malloc debugging library which uses 
    396           your computer's virtual memory hardware to detect illegal memory 
    397           accesses.  This support will make BusyBox be considerable larger 
    398           and run slower, so you should leave this option disabled unless 
    399           you are hunting a hard to find memory problem. 
    400  
    401  
    402 config BUSYBOX_CONFIG_NO_DEBUG_LIB 
    403         bool "None" 
    404  
    405 config BUSYBOX_CONFIG_DMALLOC 
    406         bool "Dmalloc" 
    407  
    408 config BUSYBOX_CONFIG_EFENCE 
    409         bool "Electric-fence" 
    410  
    411 endchoice 
    412  
    413 config BUSYBOX_CONFIG_INCLUDE_SUSv2 
    414         bool "Enable obsolete features removed before SUSv3?" 
    415         default n 
    416         help 
    417           This option will enable backwards compatibility with SuSv2, 
    418           specifically, old-style numeric options ('command -1 <file>') 
    419           will be supported in head, tail, and fold.  (Note: should 
    420           affect renice too.) 
    421  
    422 endmenu 
    423  
    424 menu 'Installation Options' 
    425  
    426 config BUSYBOX_CONFIG_INSTALL_NO_USR 
    427         bool "Don't use /usr" 
    428         default n 
    429         help 
    430           Disable use of /usr. Don't activate this option if you don't know 
    431           that you really want this behaviour. 
    432  
    433 choice 
    434        prompt "Applets links" 
    435        default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS 
    436        help 
    437          Choose how you install applets links. 
    438  
    439 config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS 
    440        bool "as soft-links" 
    441        help 
    442          Install applets as soft-links to the busybox binary. This needs some 
    443          free inodes on the filesystem, but might help with filesystem 
    444          generators that can't cope with hard-links. 
    445  
    446 config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS 
    447        bool "as hard-links" 
    448        help 
    449          Install applets as hard-links to the busybox binary. This might count 
    450          on a filesystem with few inodes. 
    451  
    452 config BUSYBOX_CONFIG_INSTALL_APPLET_DONT 
    453        bool 
    454        prompt "not installed" 
    455        depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL 
    456        help 
    457          Do not install applet links. Useful when using the -install feature 
    458          or a standalone shell for rescue pruposes. 
    459  
    460 endchoice 
    461  
    462 config BUSYBOX_CONFIG_PREFIX 
    463         string "BusyBox installation prefix" 
    464         default "./_install" 
    465         help 
    466           Define your directory to install BusyBox files/subdirs in. 
    467  
    468 endmenu 
    469  
    470 
    471 # For a description of the syntax of this configuration file, 
    472 # see scripts/kbuild/config-language.txt. 
    473 
    474  
    475 menu "Busybox Library Tuning" 
    476  
    477 config BUSYBOX_CONFIG_PASSWORD_MINLEN 
    478         int "Minimum password length" 
    479         default 6 
    480         range 5 32 
    481         help 
    482           Minimum allowable password length. 
    483  
    484 config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED 
    485         int " MD5: Trade Bytes for Speed" 
    486         default 2 
    487         range 0 3 
    488         help 
    489           Trade binary size versus speed for the md5sum algorithm. 
    490           Approximate values running uClibc and hashing 
    491           linux-2.4.4.tar.bz2 were: 
    492                             user times (sec)  text size (386) 
    493           0 (fastest)         1.1                6144 
    494           1                   1.4                5392 
    495           2                   3.0                5088 
    496           3 (smallest)        5.1                4912 
    497  
    498 endmenu 
    499  
    500 endmenu 
    501  
    502 comment "Applets" 
    503  
    504 
    505 # For a description of the syntax of this configuration file, 
    506 # see scripts/kbuild/config-language.txt. 
    507 
    508  
    509 menu "Archival Utilities" 
    510  
    511 config BUSYBOX_CONFIG_AR 
    512         bool "ar" 
    513         default n 
    514         help 
    515           ar is an archival utility program used to create, modify, and 
    516           extract contents from archives.  An archive is a single file holding 
    517           a collection of other files in a structure that makes it possible to 
    518           retrieve the original individual files (called archive members). 
    519           The original files' contents, mode (permissions), timestamp, owner, 
    520           and group are preserved in the archive, and can be restored on 
    521           extraction. 
    522  
    523           The stored filename is limited to 15 characters. (for more information 
    524           see long filename support). 
    525           ar has 60 bytes of overheads for every stored file. 
    526  
    527           This implementation of ar can extract archives, it cannot create or 
    528           modify them. 
    529           On an x86 system, the ar applet adds about 1K. 
    530  
    531           Unless you have a specific application which requires ar, you should 
    532           probably say N here. 
    533  
    534 config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES 
    535         bool "Enable support for long filenames (not need for debs)" 
    536         default n 
    537         depends on BUSYBOX_CONFIG_AR 
    538         help 
    539           By default the ar format can only store the first 15 characters of the 
    540           filename, this option removes that limitation. 
    541           It supports the GNU ar long filename method which moves multiple long 
    542           filenames into a the data section of a new ar entry. 
    543  
    544 config BUSYBOX_CONFIG_BUNZIP2 
    545         bool "bunzip2" 
    546         default n 
    547         help 
    548           bunzip2 is a compression utility using the Burrows-Wheeler block 
    549           sorting text compression algorithm, and Huffman coding.  Compression 
    550           is generally considerably better than that achieved by more 
    551           conventional LZ77/LZ78-based compressors, and approaches the 
    552           performance of the PPM family of statistical compressors. 
    553  
    554           The BusyBox bunzip2 applet is limited to de-compression only. 
    555           On an x86 system, this applet adds about 11K. 
    556  
    557           Unless you have a specific application which requires bunzip2, you 
    558           should probably say N here. 
    559  
    560 config BUSYBOX_CONFIG_CPIO 
    561         bool "cpio" 
    562         default n 
    563         help 
    564           cpio is an archival utility program used to create, modify, and extract 
    565           contents from archives. 
    566           cpio has 110 bytes of overheads for every stored file. 
    567  
    568           This implementation of cpio can extract cpio archives created in the 
    569           "newc" or "crc" format, it cannot create or modify them. 
    570  
    571           Unless you have a specific application which requires cpio, you should 
    572           probably say N here. 
    573  
    574 config BUSYBOX_CONFIG_DPKG 
    575         bool "dpkg" 
    576         default n 
    577         help 
    578           dpkg is a medium-level tool to install, build, remove and manage Debian packages. 
    579  
    580           This implementation of dpkg has a number of limitations, you should use the 
    581           official dpkg if possible. 
    582  
    583 config BUSYBOX_CONFIG_DPKG_DEB 
    584         bool "dpkg_deb" 
    585         default n 
    586         help 
    587           dpkg-deb packs, unpacks and provides information about Debian archives. 
    588  
    589           This implementation of dpkg-deb cannot pack archives. 
    590  
    591           Unless you have a specific application which requires dpkg-deb, you should 
    592           probably say N here. 
    593  
    594 config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY 
    595         bool "extract only (-x)" 
    596         default n 
    597         depends on BUSYBOX_CONFIG_DPKG_DEB 
    598         help 
    599           This reduces dpkg-deb to the equivalent of "ar -p <deb> data.tar.gz | tar -zx". 
    600           However it saves space as none of the extra dpkg-deb, ar or tar options are 
    601           needed, they are linked to internally. 
    602  
    603 config BUSYBOX_CONFIG_GUNZIP 
    604         bool "gunzip" 
    605         default y 
    606         help 
    607           gunzip is used to decompress archives created by gzip. 
    608           You can use the `-t' option to test the integrity of 
    609           an archive, without decompressing it. 
    610  
    611 config BUSYBOX_CONFIG_FEATURE_GUNZIP_UNCOMPRESS 
    612         bool "Uncompress support" 
    613         default y 
    614         depends on BUSYBOX_CONFIG_GUNZIP 
    615         help 
    616           Enable if you want gunzip to have the ability to decompress 
    617           archives created by the program compress (not much 
    618           used anymore). 
    619  
    620 config BUSYBOX_CONFIG_GZIP 
    621         bool "gzip" 
    622         default y 
    623         help 
    624           gzip is used to compress files. 
    625           It's probably the most widely used UNIX compression program. 
    626  
    627 config BUSYBOX_CONFIG_IPKG 
    628         bool "ipkg" 
    629         default y 
    630         select BUSYBOX_CONFIG_MD5SUM 
    631         select BUSYBOX_CONFIG_WGET 
    632         help 
    633           ipkg is the itsy package management system. 
    634  
    635 config BUSYBOX_CONFIG_RPM2CPIO 
    636         bool "rpm2cpio" 
    637         default n 
    638         help 
    639           Converts an RPM file into a CPIO archive. 
    640  
    641 config BUSYBOX_CONFIG_RPM 
    642         bool "rpm" 
    643         default n 
    644         help 
    645           Mini RPM applet - queries and extracts RPM packages. 
    646  
    647 config BUSYBOX_CONFIG_TAR 
    648         bool "tar" 
    649         default y 
    650         depends on ! FWRT_PACKAGE_TAR 
    651         help 
    652           tar is an archiving program. It's commonly used with gzip to 
    653           create compressed archives. It's probably the most widely used 
    654           UNIX archive program. 
    655  
    656 config BUSYBOX_CONFIG_FEATURE_TAR_CREATE 
    657         bool "Enable archive creation" 
    658         default y 
    659         depends on BUSYBOX_CONFIG_TAR 
    660         help 
    661           If you enable this option you'll be able to create 
    662           tar archives using the `-c' option. 
    663  
    664 config BUSYBOX_CONFIG_FEATURE_TAR_BZIP2 
    665         bool "Enable -j option to handle .tar.bz2 files" 
    666         default n 
    667         depends on BUSYBOX_CONFIG_TAR 
    668         help 
    669           If you enable this option you'll be able to extract 
    670           archives compressed with bzip2. 
    671  
    672 config BUSYBOX_CONFIG_FEATURE_TAR_LZMA 
    673         bool "Enable -a option to handle .tar.lzma files" 
    674         default n 
    675         depends on BUSYBOX_CONFIG_TAR 
    676         help 
    677           If you enable this option you'll be able to extract 
    678           archives compressed with lzma. 
    679  
    680 config BUSYBOX_CONFIG_FEATURE_TAR_FROM 
    681         bool "Enable -X (exclude from) and -T (include from) options)" 
    682         default y 
    683         depends on BUSYBOX_CONFIG_TAR 
    684         help 
    685           If you enable this option you'll be able to specify 
    686           a list of files to include or exclude from an archive. 
    687  
    688 config BUSYBOX_CONFIG_FEATURE_TAR_GZIP 
    689         bool "Enable -z option" 
    690         default y 
    691         depends on BUSYBOX_CONFIG_TAR 
    692         help 
    693           If you enable this option tar will be able to call gzip, 
    694           when creating or extracting tar gziped archives. 
    695  
    696 config BUSYBOX_CONFIG_FEATURE_TAR_COMPRESS 
    697         bool "Enable -Z option" 
    698         default n 
    699         depends on BUSYBOX_CONFIG_TAR 
    700         help 
    701           If you enable this option tar will be able to call uncompress, 
    702           when extracting .tar.Z archives. 
    703  
    704 config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY 
    705         bool "Enable support for old tar header format" 
    706         default n 
    707         depends on BUSYBOX_CONFIG_TAR 
    708         help 
    709           This option is required to unpack archives created in 
    710           the old GNU format; help to kill this old format by 
    711           repacking your ancient archives with the new format. 
    712  
    713 config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS 
    714         bool "Enable support for some GNU tar extensions" 
    715         default y 
    716         depends on BUSYBOX_CONFIG_TAR 
    717         help 
    718           With this option busybox supports GNU long filenames and 
    719           linknames. 
    720  
    721 config BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS 
    722         bool "Enable long options" 
    723         default n 
    724         depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_GETOPT_LONG 
    725         help 
    726                 Enable use of long options, increases size by about 400 Bytes 
    727  
    728 config BUSYBOX_CONFIG_UNCOMPRESS 
    729         bool "uncompress" 
    730         default n 
    731         help 
    732           uncompress is used to decompress archives created by compress. 
    733           Not much used anymore, replaced by gzip/gunzip. 
    734  
    735 config BUSYBOX_CONFIG_UNLZMA 
    736         bool "unlzma" 
    737         default n 
    738         help 
    739           unlzma is a compression utility using the Lempel-Ziv-Markov chain 
    740           compression algorithm, and range coding.  Compression 
    741           is generally considerably better than that achieved by the bzip2 
    742           compressors. 
    743  
    744           The BusyBox unlzma applet is limited to de-compression only. 
    745           On an x86 system, this applet adds about 4K. 
    746  
    747           Unless you have a specific application which requires unlzma, you 
    748           should probably say N here. 
    749  
    750 config BUSYBOX_CONFIG_FEATURE_LZMA_FAST 
    751         bool "Optimze unlzma for speed" 
    752         default n 
    753         depends on BUSYBOX_CONFIG_UNLZMA 
    754         help 
    755           This option reduces decompression time by about 33% at the cost of 
    756           a 2K bigger binary. 
    757  
    758 config BUSYBOX_CONFIG_UNZIP 
    759         bool "unzip" 
    760         default n 
    761         help 
    762           unzip will list or extract files from a ZIP archive, 
    763           commonly found on DOS/WIN systems. The default behavior 
    764           (with no options) is to extract the archive into the 
    765           current directory. Use the `-d' option to extract to a 
    766           directory of your choice. 
    767  
    768 comment "Common options for cpio and tar" 
    769         depends on BUSYBOX_CONFIG_CPIO || BUSYBOX_CONFIG_TAR 
    770  
    771 config BUSYBOX_CONFIG_FEATURE_UNARCHIVE_TAPE 
    772         bool "Enable tape drive support" 
    773         default n 
    774         depends on BUSYBOX_CONFIG_CPIO || BUSYBOX_CONFIG_TAR 
    775         help 
    776           I don't think this is needed anymore. 
    777  
    778 comment "Common options for dpkg and dpkg_deb" 
    779         depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB 
    780  
    781 config BUSYBOX_CONFIG_FEATURE_DEB_TAR_GZ 
    782         bool "gzip debian packages (normal)" 
    783         default y if BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB 
    784         depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB 
    785         help 
    786           This is the default compression method inside the debian ar file. 
    787  
    788           If you want compatibility with standard .deb's you should say yes here. 
    789  
    790 config BUSYBOX_CONFIG_FEATURE_DEB_TAR_BZ2 
    791         bool "bzip2 debian packages" 
    792         default n 
    793         depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB 
    794         help 
    795           This allows dpkg and dpkg-deb to extract deb's that are compressed internally 
    796           with bzip2 instead of gzip. 
    797  
    798           You only want this if you are creating your own custom debian packages that 
    799           use an internal control.tar.bz2 or data.tar.bz2. 
    800  
    801 config BUSYBOX_CONFIG_FEATURE_DEB_TAR_LZMA 
    802         bool "lzma debian packages" 
    803         default n 
    804         depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB 
    805         help 
    806           This allows dpkg and dpkg-deb to extract deb's that are compressed 
    807           internally with lzma instead of gzip. 
    808  
    809           You only want this if you are creating your own custom debian 
    810           packages that use an internal control.tar.lzma or data.tar.lzma. 
    811  
    812 endmenu 
    813 
    814 # For a description of the syntax of this configuration file, 
    815 # see scripts/kbuild/config-language.txt. 
    816 
    817  
    818 menu "Coreutils" 
    819  
    820 config BUSYBOX_CONFIG_BASENAME 
    821         bool "basename" 
    822         default y 
    823         help 
    824           basename is used to strip the directory and suffix from filenames, 
    825           leaving just the filename itself.  Enable this option if you wish 
    826           to enable the 'basename' utility. 
    827  
    828 config BUSYBOX_CONFIG_CAL 
    829         bool "cal" 
    830         default n 
    831         help 
    832           cal is used to display a monthly calender. 
    833  
    834 config BUSYBOX_CONFIG_CAT 
    835         bool "cat" 
    836         default y 
    837         help 
    838           cat is used to concatenate files and print them to the standard 
    839           output.  Enable this option if you wish to enable the 'cat' utility. 
    840  
    841 config BUSYBOX_CONFIG_CATV 
    842         bool "catv" 
    843         default n 
    844         help 
    845           Display nonprinting characters as escape sequences (like some 
    846           implementations' cat -v option). 
    847  
    848 config BUSYBOX_CONFIG_CHGRP 
    849         bool "chgrp" 
    850         default y 
    851         help 
    852           chgrp is used to change the group ownership of files. 
    853  
    854 config BUSYBOX_CONFIG_CHMOD 
    855         bool "chmod" 
    856         default y 
    857         help 
    858           chmod is used to change the access permission of files. 
    859  
    860 config BUSYBOX_CONFIG_CHOWN 
    861         bool "chown" 
    862         default y 
    863         help 
    864           chown is used to change the user and/or group ownership 
    865           of files. 
    866  
    867 config BUSYBOX_CONFIG_CHROOT 
    868         bool "chroot" 
    869         default y 
    870         help 
    871           chroot is used to change the root directory and run a command. 
    872           The default command is `/bin/sh'. 
    873  
    874 config BUSYBOX_CONFIG_CKSUM 
    875         bool "cksum" 
    876         default n 
    877         help 
    878           cksum is used to calculate the CRC32 checksum of a file. 
    879  
    880 config BUSYBOX_CONFIG_CMP 
    881         bool "cmp" 
    882         default n 
    883         help 
    884           cmp is used to compare two files and returns the result 
    885           to standard output. 
    886  
    887 config BUSYBOX_CONFIG_COMM 
    888         bool "comm" 
    889         default n 
    890         help 
    891           comm is used to compare two files line by line and return 
    892           a three-column output. 
    893  
    894 config BUSYBOX_CONFIG_CP 
    895         bool "cp" 
    896         default y 
    897         help 
    898           cp is used to copy files and directories. 
    899  
    900 config BUSYBOX_CONFIG_CUT 
    901         bool "cut" 
    902         default y 
    903         help 
    904           cut is used to print selected parts of lines from 
    905           each file to stdout. 
    906  
    907 config BUSYBOX_CONFIG_DATE 
    908         bool "date" 
    909         default y 
    910         help 
    911           date is used to set the system date or display the 
    912           current time in the given format. 
    913  
    914 config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT 
    915         bool "Enable ISO date format output (-I)" 
    916         default y 
    917         depends on BUSYBOX_CONFIG_DATE 
    918         help 
    919           Enable option (-I) to output an ISO-8601 compliant 
    920           date/time string. 
    921  
    922 config BUSYBOX_CONFIG_DD 
    923         bool "dd" 
    924         default y 
    925         help 
    926           dd copies a file (from standard input to standard output, 
    927           by default) using specific input and output blocksizes, 
    928           while optionally performing conversions on it. 
    929  
    930 config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING 
    931         bool "Enable DD signal handling for status reporting" 
    932         default y 
    933         depends on BUSYBOX_CONFIG_DD 
    934         help 
    935           sending a SIGUSR1 signal to a running `dd' process makes it 
    936           print to standard error the number of records read and written 
    937           so far, then to resume copying. 
    938  
    939           $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 
    940           10899206+0 records in 10899206+0 records out 
    941  
    942 config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS 
    943         bool "Enable ibs, obs and conv options" 
    944         default n 
    945         depends on BUSYBOX_CONFIG_DD 
    946         help 
    947           Enables support for writing a certain number of bytes in and out, 
    948           at a time, and performing conversions on the data stream. 
    949  
    950 config BUSYBOX_CONFIG_DF 
    951         bool "df" 
    952         default y 
    953         help 
    954           df reports the amount of disk space used and available 
    955           on filesystems. 
    956  
    957 config BUSYBOX_CONFIG_DIFF 
    958         bool "diff" 
    959         default n 
    960         help 
    961           diff compares two files or directories and outputs the 
    962           differences between them in a form that can be given to 
    963           the patch command. 
    964  
    965 config BUSYBOX_CONFIG_FEATURE_DIFF_BINARY 
    966         bool "Enable checks for binary files" 
    967         default y 
    968         depends on BUSYBOX_CONFIG_DIFF 
    969         help 
    970           This option enables support for checking for binary files 
    971           before a comparison is carried out. 
    972  
    973 config BUSYBOX_CONFIG_FEATURE_DIFF_DIR 
    974         bool "Enable directory support" 
    975         default y 
    976         depends on BUSYBOX_CONFIG_DIFF 
    977         help 
    978           This option enables support for directory and subdirectory 
    979           comparison. 
    980  
    981 config BUSYBOX_CONFIG_FEATURE_DIFF_MINIMAL 
    982         bool "Enable -d option to find smaller sets of cha