aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
Diffstat (limited to 'archival')
-rw-r--r--archival/Config.src350
-rw-r--r--archival/ar.c40
-rw-r--r--archival/bbunzip.c70
-rw-r--r--archival/bzip2.c13
-rw-r--r--archival/cpio.c29
-rw-r--r--archival/dpkg.c12
-rw-r--r--archival/dpkg_deb.c22
-rw-r--r--archival/gzip.c28
-rw-r--r--archival/lzop.c15
-rw-r--r--archival/rpm.c6
-rw-r--r--archival/rpm2cpio.c6
-rw-r--r--archival/tar.c101
-rw-r--r--archival/unzip.c10
13 files changed, 349 insertions, 353 deletions
diff --git a/archival/Config.src b/archival/Config.src
index ae1afc594..76635ba78 100644
--- a/archival/Config.src
+++ b/archival/Config.src
@@ -5,8 +5,6 @@
menu "Archival Utilities"
-INSERT
-
config FEATURE_SEAMLESS_XZ
bool "Make tar, rpm, modprobe etc understand .xz data"
default y
@@ -37,352 +35,6 @@ config FEATURE_SEAMLESS_Z
help
Make tar, rpm, modprobe etc understand .Z data.
-config AR
- bool "ar"
- default n # needs to be improved to be able to replace binutils ar
- help
- ar is an archival utility program used to create, modify, and
- extract contents from archives. An archive is a single file holding
- a collection of other files in a structure that makes it possible to
- retrieve the original individual files (called archive members).
- The original files' contents, mode (permissions), timestamp, owner,
- and group are preserved in the archive, and can be restored on
- extraction.
-
- The stored filename is limited to 15 characters. (for more information
- see long filename support).
- ar has 60 bytes of overheads for every stored file.
-
- This implementation of ar can extract archives, it cannot create or
- modify them.
- On an x86 system, the ar applet adds about 1K.
-
- Unless you have a specific application which requires ar, you should
- probably say N here.
-
-config FEATURE_AR_LONG_FILENAMES
- bool "Support for long filenames (not needed for debs)"
- default y
- depends on AR
- help
- By default the ar format can only store the first 15 characters
- of the filename, this option removes that limitation.
- It supports the GNU ar long filename method which moves multiple long
- filenames into a the data section of a new ar entry.
-
-config FEATURE_AR_CREATE
- bool "Support archive creation"
- default y
- depends on AR
- help
- This enables archive creation (-c and -r) with busybox ar.
-
-config BUNZIP2
- bool "bunzip2"
- default y
- help
- bunzip2 is a compression utility using the Burrows-Wheeler block
- sorting text compression algorithm, and Huffman coding. Compression
- 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.
-
- Unless you have a specific application which requires bunzip2, you
- should probably say N here.
-
-config BZIP2
- bool "bzip2"
- default y
- help
- bzip2 is a compression utility using the Burrows-Wheeler block
- sorting text compression algorithm, and Huffman coding. Compression
- 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.
-
- Unless you have a specific application which requires bzip2, you
- should probably say N here.
-
-config CPIO
- bool "cpio"
- default y
- help
- cpio is an archival utility program used to create, modify, and
- extract contents from archives.
- cpio has 110 bytes of overheads for every stored file.
-
- This implementation of cpio can extract cpio archives created in the
- "newc" or "crc" format, it cannot create or modify them.
-
- Unless you have a specific application which requires cpio, you
- should probably say N here.
-
-config FEATURE_CPIO_O
- bool "Support for archive creation"
- default y
- depends on CPIO
- help
- This implementation of cpio can create cpio archives in the "newc"
- format only.
-
-config FEATURE_CPIO_P
- bool "Support for passthrough mode"
- default y
- depends on FEATURE_CPIO_O
- help
- Passthrough mode. Rarely used.
-
-config DPKG
- bool "dpkg"
- default n
- select FEATURE_SEAMLESS_GZ
- 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.
-
-config DPKG_DEB
- bool "dpkg_deb"
- default n
- select FEATURE_SEAMLESS_GZ
- help
- dpkg-deb 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,
- say N here.
-
-config FEATURE_DPKG_DEB_EXTRACT_ONLY
- bool "Extract only (-x)"
- default n
- depends on DPKG_DEB
- help
- This reduces dpkg-deb to the equivalent of
- "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
- of the extra dpkg-deb, ar or tar options are needed, they are linked
- to internally.
-
-config GUNZIP
- bool "gunzip"
- default y
- help
- gunzip is used to decompress archives created by gzip.
- You can use the `-t' option to test the integrity of
- an archive, without decompressing it.
-
-config GZIP
- bool "gzip"
- default y
- help
- gzip is used to compress files.
- It's probably the most widely used UNIX compression program.
-
-config FEATURE_GZIP_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on GZIP && LONG_OPTS
- help
- Enable use of long options, increases size by about 106 Bytes
-
-config GZIP_FAST
- int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
- default 0
- range 0 2
- depends on GZIP
- help
- Enable big memory options for gzip.
- 0: small buffers, small hash-tables
- 1: larger buffers, larger hash-tables
- 2: larger buffers, largest hash-tables
- Larger models may give slightly better compression
-
-config LZOP
- bool "lzop"
- default y
- help
- Lzop compression/decompresion.
-
-config LZOP_COMPR_HIGH
- bool "lzop compression levels 7,8,9 (not very useful)"
- default n
- depends on LZOP
- help
- High levels (7,8,9) of lzop compression. These levels
- are actually slower than gzip at equivalent compression ratios
- and take up 3.2K of code.
-
-config RPM2CPIO
- bool "rpm2cpio"
- default y
- help
- Converts a RPM file into a CPIO archive.
-
-config RPM
- bool "rpm"
- default y
- help
- Mini RPM applet - queries and extracts RPM packages.
-
-config TAR
- bool "tar"
- default y
- help
- tar is an archiving program. It's commonly used with gzip to
- create compressed archives. It's probably the most widely used
- UNIX archive program.
-
-config FEATURE_TAR_CREATE
- bool "Enable archive creation"
- default y
- depends on TAR
- help
- If you enable this option you'll be able to create
- tar archives using the `-c' option.
-
-config FEATURE_TAR_AUTODETECT
- bool "Autodetect compressed tarballs"
- default y
- depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ)
- help
- With this option tar can automatically detect compressed
- tarballs. Currently it works only on files (not pipes etc).
-
-config FEATURE_TAR_FROM
- bool "Enable -X (exclude from) and -T (include from) options)"
- default y
- depends on TAR
- help
- If you enable this option you'll be able to specify
- a list of files to include or exclude from an archive.
-
-config FEATURE_TAR_OLDGNU_COMPATIBILITY
- bool "Support for old tar header format"
- default y
- depends on TAR || DPKG
- help
- This option is required to unpack archives created in
- the old GNU format; help to kill this old format by
- repacking your ancient archives with the new format.
-
-config FEATURE_TAR_OLDSUN_COMPATIBILITY
- bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
- default y
- depends on TAR || DPKG
- help
- This option is required to unpack archives created by some old
- version of Sun's tar (it was calculating checksum using signed
- arithmetic). It is said to be fixed in newer Sun tar, but "old"
- tarballs still exist.
-
-config FEATURE_TAR_GNU_EXTENSIONS
- bool "Support for GNU tar extensions (long filenames)"
- default y
- depends on TAR || DPKG
- help
- With this option busybox supports GNU long filenames and
- linknames.
-
-config FEATURE_TAR_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on TAR && LONG_OPTS
- help
- Enable use of long options, increases size by about 400 Bytes
-
-config FEATURE_TAR_TO_COMMAND
- bool "Support for writing to an external program"
- default y
- depends on TAR && FEATURE_TAR_LONG_OPTIONS
- help
- If you enable this option you'll be able to instruct tar to send
- the contents of each extracted file to the standard input of an
- external program.
-
-config FEATURE_TAR_UNAME_GNAME
- bool "Enable use of user and group names"
- default y
- depends on TAR
- help
- Enables use of user and group names in tar. This affects contents
- listings (-t) and preserving permissions when unpacking (-p).
- +200 bytes.
-
-config FEATURE_TAR_NOPRESERVE_TIME
- bool "Enable -m (do not preserve time) option"
- default y
- depends on TAR
- help
- With this option busybox supports GNU tar -m
- (do not preserve time) option.
-
-config FEATURE_TAR_SELINUX
- bool "Support for extracting SELinux labels"
- default n
- depends on TAR && SELINUX
- help
- With this option busybox supports restoring SELinux labels
- when extracting files from tar archives.
-
-config UNCOMPRESS
- bool "uncompress"
- default n
- help
- uncompress is used to decompress archives created by compress.
- Not much used anymore, replaced by gzip/gunzip.
-
-config UNLZMA
- bool "unlzma"
- default y
- help
- unlzma is a compression utility using the Lempel-Ziv-Markov chain
- compression algorithm, and range coding. Compression
- is generally considerably better than that achieved by the bzip2
- compressors.
-
- The BusyBox unlzma applet is limited to decompression only.
- On an x86 system, this applet adds about 4K.
-
-config FEATURE_LZMA_FAST
- bool "Optimize unlzma for speed"
- default n
- depends on UNLZMA
- help
- This option reduces decompression time by about 25% at the cost of
- a 1K bigger binary.
-
-config LZMA
- bool "Provide lzma alias which supports only unpacking"
- default y
- depends on UNLZMA
- help
- Enable this option if you want commands like "lzma -d" to work.
- IOW: you'll get lzma applet, but it will always require -d option.
-
-config UNXZ
- bool "unxz"
- default y
- help
- unxz is a unlzma successor.
-
-config XZ
- bool "Provide xz alias which supports only unpacking"
- default y
- depends on UNXZ
- help
- Enable this option if you want commands like "xz -d" to work.
- IOW: you'll get xz applet, but it will always require -d option.
-
-config UNZIP
- bool "unzip"
- default y
- help
- unzip will list or extract files from a ZIP archive,
- commonly found on DOS/WIN systems. The default behavior
- (with no options) is to extract the archive into the
- current directory. Use the `-d' option to extract to a
- directory of your choice.
+INSERT
endmenu
diff --git a/archival/ar.c b/archival/ar.c
index 866856f87..f86c52d9b 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -17,6 +17,46 @@
* http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html
*/
+//config:config AR
+//config: bool "ar"
+//config: default n # needs to be improved to be able to replace binutils ar
+//config: help
+//config: ar is an archival utility program used to create, modify, and
+//config: extract contents from archives. An archive is a single file holding
+//config: a collection of other files in a structure that makes it possible to
+//config: retrieve the original individual files (called archive members).
+//config: The original files' contents, mode (permissions), timestamp, owner,
+//config: and group are preserved in the archive, and can be restored on
+//config: extraction.
+//config:
+//config: The stored filename is limited to 15 characters. (for more information
+//config: see long filename support).
+//config: ar has 60 bytes of overheads for every stored file.
+//config:
+//config: This implementation of ar can extract archives, it cannot create or
+//config: modify them.
+//config: On an x86 system, the ar applet adds about 1K.
+//config:
+//config: Unless you have a specific application which requires ar, you should
+//config: probably say N here.
+//config:
+//config:config FEATURE_AR_LONG_FILENAMES
+//config: bool "Support for long filenames (not needed for debs)"
+//config: default y
+//config: depends on AR
+//config: help
+//config: By default the ar format can only store the first 15 characters
+//config: of the filename, this option removes that limitation.
+//config: It supports the GNU ar long filename method which moves multiple long
+//config: filenames into a the data section of a new ar entry.
+//config:
+//config:config FEATURE_AR_CREATE
+//config: bool "Support archive creation"
+//config: default y
+//config: depends on AR
+//config: help
+//config: This enables archive creation (-c and -r) with busybox ar.
+
//applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_AR) += ar.o
diff --git a/archival/bbunzip.c b/archival/bbunzip.c
index eb6f114ad..b3fb90f31 100644
--- a/archival/bbunzip.c
+++ b/archival/bbunzip.c
@@ -215,6 +215,13 @@ char* FAST_FUNC make_new_name_generic(char *filename, const char *expected_ext)
//usage: "\n -c Write to stdout"
//usage: "\n -f Overwrite"
+//config:config UNCOMPRESS
+//config: bool "uncompress"
+//config: default n
+//config: help
+//config: uncompress is used to decompress archives created by compress.
+//config: Not much used anymore, replaced by gzip/gunzip.
+
//applet:IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o
#if ENABLE_UNCOMPRESS
@@ -278,6 +285,14 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv)
//usage:#define zcat_full_usage "\n\n"
//usage: "Decompress to stdout"
+//config:config GUNZIP
+//config: bool "gunzip"
+//config: default y
+//config: help
+//config: gunzip is used to decompress archives created by gzip.
+//config: You can use the `-t' option to test the integrity of
+//config: an archive, without decompressing it.
+
//applet:IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
//applet:IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
//kbuild:lib-$(CONFIG_GZIP) += bbunzip.o
@@ -361,6 +376,19 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv)
//usage:#define bzcat_full_usage "\n\n"
//usage: "Decompress to stdout"
+//config:config BUNZIP2
+//config: bool "bunzip2"
+//config: default y
+//config: help
+//config: bunzip2 is a compression utility using the Burrows-Wheeler block
+//config: sorting text compression algorithm, and Huffman coding. Compression
+//config: is generally considerably better than that achieved by more
+//config: conventional LZ77/LZ78-based compressors, and approaches the
+//config: performance of the PPM family of statistical compressors.
+//config:
+//config: Unless you have a specific application which requires bunzip2, you
+//config: should probably say N here.
+
//applet:IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
//applet:IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat))
//kbuild:lib-$(CONFIG_BZIP2) += bbunzip.o
@@ -432,6 +460,34 @@ int bunzip2_main(int argc UNUSED_PARAM, char **argv)
//usage:#define xzcat_full_usage "\n\n"
//usage: "Decompress to stdout"
+//config:config UNLZMA
+//config: bool "unlzma"
+//config: default y
+//config: help
+//config: unlzma is a compression utility using the Lempel-Ziv-Markov chain
+//config: compression algorithm, and range coding. Compression
+//config: is generally considerably better than that achieved by the bzip2
+//config: compressors.
+//config:
+//config: The BusyBox unlzma applet is limited to decompression only.
+//config: On an x86 system, this applet adds about 4K.
+//config:
+//config:config FEATURE_LZMA_FAST
+//config: bool "Optimize unlzma for speed"
+//config: default n
+//config: depends on UNLZMA
+//config: help
+//config: This option reduces decompression time by about 25% at the cost of
+//config: a 1K bigger binary.
+//config:
+//config:config LZMA
+//config: bool "Provide lzma alias which supports only unpacking"
+//config: default y
+//config: depends on UNLZMA
+//config: help
+//config: Enable this option if you want commands like "lzma -d" to work.
+//config: IOW: you'll get lzma applet, but it will always require -d option.
+
//applet:IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
//applet:IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzcat))
//applet:IF_LZMA(APPLET_ODDNAME(lzma, unlzma, BB_DIR_USR_BIN, BB_SUID_DROP, lzma))
@@ -461,6 +517,20 @@ int unlzma_main(int argc UNUSED_PARAM, char **argv)
#endif
+//config:config UNXZ
+//config: bool "unxz"
+//config: default y
+//config: help
+//config: unxz is a unlzma successor.
+//config:
+//config:config XZ
+//config: bool "Provide xz alias which supports only unpacking"
+//config: default y
+//config: depends on UNXZ
+//config: help
+//config: Enable this option if you want commands like "xz -d" to work.
+//config: IOW: you'll get xz applet, but it will always require -d option.
+
//applet:IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
//applet:IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat))
//applet:IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))
diff --git a/archival/bzip2.c b/archival/bzip2.c
index eabd1c2d6..f7718b411 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -7,6 +7,19 @@
* about bzip2 library code.
*/
+//config:config BZIP2
+//config: bool "bzip2"
+//config: default y
+//config: help
+//config: bzip2 is a compression utility using the Burrows-Wheeler block
+//config: sorting text compression algorithm, and Huffman coding. Compression
+//config: is generally considerably better than that achieved by more
+//config: conventional LZ77/LZ78-based compressors, and approaches the
+//config: performance of the PPM family of statistical compressors.
+//config:
+//config: Unless you have a specific application which requires bzip2, you
+//config: should probably say N here.
+
//applet:IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_BZIP2) += bzip2.o
diff --git a/archival/cpio.c b/archival/cpio.c
index 41eb6f659..1cce7c8b4 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -13,6 +13,35 @@
#include "libbb.h"
#include "bb_archive.h"
+//config:config CPIO
+//config: bool "cpio"
+//config: default y
+//config: help
+//config: cpio is an archival utility program used to create, modify, and
+//config: extract contents from archives.
+//config: cpio has 110 bytes of overheads for every stored file.
+//config:
+//config: This implementation of cpio can extract cpio archives created in the
+//config: "newc" or "crc" format, it cannot create or modify them.
+//config:
+//config: Unless you have a specific application which requires cpio, you
+//config: should probably say N here.
+//config:
+//config:config FEATURE_CPIO_O
+//config: bool "Support for archive creation"
+//config: default y
+//config: depends on CPIO
+//config: help
+//config: This implementation of cpio can create cpio archives in the "newc"
+//config: format only.
+//config:
+//config:config FEATURE_CPIO_P
+//config: bool "Support for passthrough mode"
+//config: default y
+//config: depends on FEATURE_CPIO_O
+//config: help
+//config: Passthrough mode. Rarely used.
+
//applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_CPIO) += cpio.o
diff --git a/archival/dpkg.c b/archival/dpkg.c
index 288e7fa9f..2893cfc2d 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -14,7 +14,6 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-
/*
* known difference between busybox dpkg and the official dpkg that i don't
* consider important, its worth keeping a note of differences anyway, just to
@@ -27,6 +26,17 @@
* - (unknown, please let me know when you find any)
*/
+//config:config DPKG
+//config: bool "dpkg"
+//config: default n
+//config: select FEATURE_SEAMLESS_GZ
+//config: help
+//config: dpkg is a medium-level tool to install, build, remove and manage
+//config: Debian packages.
+//config:
+//config: This implementation of dpkg has a number of limitations,
+//config: you should use the official dpkg if possible.
+
//applet:IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_DPKG) += dpkg.o
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 6924f8911..81b5352a2 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -5,6 +5,28 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config DPKG_DEB
+//config: bool "dpkg_deb"
+//config: default n
+//config: select FEATURE_SEAMLESS_GZ
+//config: help
+//config: dpkg-deb unpacks and provides information about Debian archives.
+//config:
+//config: This implementation of dpkg-deb cannot pack archives.
+//config:
+//config: Unless you have a specific application which requires dpkg-deb,
+//config: say N here.
+//config:
+//config:config FEATURE_DPKG_DEB_EXTRACT_ONLY
+//config: bool "Extract only (-x)"
+//config: default n
+//config: depends on DPKG_DEB
+//config: help
+//config: This reduces dpkg-deb to the equivalent of
+//config: "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
+//config: of the extra dpkg-deb, ar or tar options are needed, they are linked
+//config: to internally.
+
//applet:IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
//kbuild:lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o
diff --git a/archival/gzip.c b/archival/gzip.c
index 5d6fdb91c..1e779c9c3 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -15,7 +15,6 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-
/* big objects in bss:
* 00000020 b bl_count
* 00000074 b base_length
@@ -31,7 +30,6 @@
* 00000480 b static_ltree
* 000008f4 b dyn_ltree
*/
-
/* TODO: full support for -v for DESKTOP
* "/usr/bin/gzip -v a bogus aa" should say:
a: 85.1% -- replaced with a.gz
@@ -39,6 +37,32 @@ gzip: bogus: No such file or directory
aa: 85.1% -- replaced with aa.gz
*/
+//config:config GZIP
+//config: bool "gzip"
+//config: default y
+//config: help
+//config: gzip is used to compress files.
+//config: It's probably the most widely used UNIX compression program.
+//config:
+//config:config FEATURE_GZIP_LONG_OPTIONS
+//config: bool "Enable long options"
+//config: default y
+//config: depends on GZIP && LONG_OPTS
+//config: help
+//config: Enable use of long options, increases size by about 106 Bytes
+//config:
+//config:config GZIP_FAST
+//config: int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
+//config: default 0
+//config: range 0 2
+//config: depends on GZIP
+//config: help
+//config: Enable big memory options for gzip.
+//config: 0: small buffers, small hash-tables
+//config: 1: larger buffers, larger hash-tables
+//config: 2: larger buffers, largest hash-tables
+//config: Larger models may give slightly better compression
+
//applet:IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_GZIP) += gzip.o
diff --git a/archival/lzop.c b/archival/lzop.c
index 9007d5311..5062d9300 100644
--- a/archival/lzop.c
+++ b/archival/lzop.c
@@ -25,6 +25,21 @@
"Minimalized" for busybox by Alain Knaff
*/
+//config:config LZOP
+//config: bool "lzop"
+//config: default y
+//config: help
+//config: Lzop compression/decompresion.
+//config:
+//config:config LZOP_COMPR_HIGH
+//config: bool "lzop compression levels 7,8,9 (not very useful)"
+//config: default n
+//config: depends on LZOP
+//config: help
+//config: High levels (7,8,9) of lzop compression. These levels
+//config: are actually slower than gzip at equivalent compression ratios
+//config: and take up 3.2K of code.
+
//applet:IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
//applet:IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, lzopcat))
//applet:IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))
diff --git a/archival/rpm.c b/archival/rpm.c
index 81a1d1d54..885eddd64 100644
--- a/archival/rpm.c
+++ b/archival/rpm.c
@@ -7,6 +7,12 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config RPM
+//config: bool "rpm"
+//config: default y
+//config: help
+//config: Mini RPM applet - queries and extracts RPM packages.
+
//applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_RPM) += rpm.o
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c
index c48fc14cd..61adde795 100644
--- a/archival/rpm2cpio.c
+++ b/archival/rpm2cpio.c
@@ -7,6 +7,12 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config RPM2CPIO
+//config: bool "rpm2cpio"
+//config: default y
+//config: help
+//config: Converts a RPM file into a CPIO archive.
+
//applet:IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o
diff --git a/archival/tar.c b/archival/tar.c
index 25042589c..3877ea4db 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -22,7 +22,6 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-
/* TODO: security with -C DESTDIR option can be enhanced.
* Consider tar file created via:
* $ tar cvf bug.tar anything.txt
@@ -42,6 +41,106 @@
* This doesn't feel right, and IIRC GNU tar doesn't do that.
*/
+//config:config TAR
+//config: bool "tar"
+//config: default y
+//config: help
+//config: tar is an archiving program. It's commonly used with gzip to
+//config: create compressed archives. It's probably the most widely used
+//config: UNIX archive program.
+//config:
+//config:config FEATURE_TAR_CREATE
+//config: bool "Enable archive creation"
+//config: default y
+//config: depends on TAR
+//config: help
+//config: If you enable this option you'll be able to create
+//config: tar archives using the `-c' option.
+//config:
+//config:config FEATURE_TAR_AUTODETECT
+//config: bool "Autodetect compressed tarballs"
+//config: default y
+//config: depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ)
+//config: help
+//config: With this option tar can automatically detect compressed
+//config: tarballs. Currently it works only on files (not pipes etc).
+//config:
+//config:config FEATURE_TAR_FROM
+//config: bool "Enable -X (exclude from) and -T (include from) options)"
+//config: default y
+//config: depends on TAR
+//config: help
+//config: If you enable this option you'll be able to specify
+//config: a list of files to include or exclude from an archive.
+//config:
+//config:config FEATURE_TAR_OLDGNU_COMPATIBILITY
+//config: bool "Support for old tar header format"
+//config: default y
+//config: depends on TAR || DPKG
+//config: help
+//config: This option is required to unpack archives created in
+//config: the old GNU format; help to kill this old format by
+//config: repacking your ancient archives with the new format.
+//config:
+//config:config FEATURE_TAR_OLDSUN_COMPATIBILITY
+//config: bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
+//config: default y
+//config: depends on TAR || DPKG
+//config: help
+//config: This option is required to unpack archives created by some old
+//config: version of Sun's tar (it was calculating checksum using signed
+//config: arithmetic). It is said to be fixed in newer Sun tar, but "old"
+//config: tarballs still exist.
+//config:
+//config:config FEATURE_TAR_GNU_EXTENSIONS
+//config: bool "Support for GNU tar extensions (long filenames)"
+//config: default y
+//config: depends on TAR || DPKG
+//config: help
+//config: With this option busybox supports GNU long filenames and
+//config: linknames.
+//config:
+//config:config FEATURE_TAR_LONG_OPTIONS
+//config: bool "Enable long options"
+//config: default y
+//config: depends on TAR && LONG_OPTS
+//config: help
+//config: Enable use of long options, increases size by about 400 Bytes
+//config:
+//config:config FEATURE_TAR_TO_COMMAND
+//config: bool "Support for writing to an external program"
+//config: default y
+//config: depends on TAR && FEATURE_TAR_LONG_OPTIONS
+//config: help
+//config: If you enable this option you'll be able to instruct tar to send
+//config: the contents of each extracted file to the standard input of an
+//config: external program.
+//config:
+//config:config FEATURE_TAR_UNAME_GNAME
+//config: bool "Enable use of user and group names"
+//config: default y
+//config: depends on TAR
+//config: help
+//config: Enables use of user and group names in tar. This affects contents
+//config: listings (-t) and preserving permissions when unpacking (-p).
+//config: +200 bytes.
+//config:
+//config:config FEATURE_TAR_NOPRESERVE_TIME
+//config: bool "Enable -m (do not preserve time) option"
+//config: default y
+//config: depends on TAR
+//config: help
+//config: With this option busybox supports GNU tar -m
+//config: (do not preserve time) option.
+//config:
+//config:config FEATURE_TAR_SELINUX
+//config: bool "Support for extracting SELinux labels"
+//config: default n
+//config: depends on TAR && SELINUX
+//config: help
+//config: With this option busybox supports restoring SELinux labels
+//config: when extracting files from tar archives.
+
//applet:IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_TAR) += tar.o
diff --git a/archival/unzip.c b/archival/unzip.c
index 9825986bf..fcfc9a448 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -17,6 +17,16 @@
* Zip64 + other methods
*/
+//config:config UNZIP
+//config: bool "unzip"
+//config: default y
+//config: help
+//config: unzip will list or extract files from a ZIP archive,
+//config: commonly found on DOS/WIN systems. The default behavior
+//config: (with no options) is to extract the archive into the
+//config: current directory. Use the `-d' option to extract to a
+//config: directory of your choice.
+
//applet:IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_UNZIP) += unzip.o