archival/*: move "config:" snippets into .c files

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-11-14 11:39:00 +01:00
parent ac21687309
commit f6beef63c6
13 changed files with 349 additions and 353 deletions

View File

@ -5,8 +5,6 @@
menu "Archival Utilities" menu "Archival Utilities"
INSERT
config FEATURE_SEAMLESS_XZ config FEATURE_SEAMLESS_XZ
bool "Make tar, rpm, modprobe etc understand .xz data" bool "Make tar, rpm, modprobe etc understand .xz data"
default y default y
@ -37,352 +35,6 @@ config FEATURE_SEAMLESS_Z
help help
Make tar, rpm, modprobe etc understand .Z data. Make tar, rpm, modprobe etc understand .Z data.
config AR INSERT
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.
endmenu endmenu

View File

@ -17,6 +17,46 @@
* http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html * 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)) //applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_AR) += ar.o //kbuild:lib-$(CONFIG_AR) += ar.o

View File

@ -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 -c Write to stdout"
//usage: "\n -f Overwrite" //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)) //applet:IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o //kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o
#if ENABLE_UNCOMPRESS #if ENABLE_UNCOMPRESS
@ -278,6 +285,14 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv)
//usage:#define zcat_full_usage "\n\n" //usage:#define zcat_full_usage "\n\n"
//usage: "Decompress to stdout" //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(gunzip, BB_DIR_BIN, BB_SUID_DROP))
//applet:IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat)) //applet:IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
//kbuild:lib-$(CONFIG_GZIP) += bbunzip.o //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:#define bzcat_full_usage "\n\n"
//usage: "Decompress to stdout" //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(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
//applet:IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat)) //applet:IF_BUNZIP2(APPLET_ODDNAME(bzcat, bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP, bzcat))
//kbuild:lib-$(CONFIG_BZIP2) += bbunzip.o //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:#define xzcat_full_usage "\n\n"
//usage: "Decompress to stdout" //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(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_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)) //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 #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(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_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)) //applet:IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz))

View File

@ -7,6 +7,19 @@
* about bzip2 library code. * 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)) //applet:IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_BZIP2) += bzip2.o //kbuild:lib-$(CONFIG_BZIP2) += bzip2.o

View File

@ -13,6 +13,35 @@
#include "libbb.h" #include "libbb.h"
#include "bb_archive.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)) //applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_CPIO) += cpio.o //kbuild:lib-$(CONFIG_CPIO) += cpio.o

View File

@ -14,7 +14,6 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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 * 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 * 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) * - (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)) //applet:IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_DPKG) += dpkg.o //kbuild:lib-$(CONFIG_DPKG) += dpkg.o

View File

@ -5,6 +5,28 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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)) //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 //kbuild:lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o

View File

@ -15,7 +15,6 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/ */
/* big objects in bss: /* big objects in bss:
* 00000020 b bl_count * 00000020 b bl_count
* 00000074 b base_length * 00000074 b base_length
@ -31,7 +30,6 @@
* 00000480 b static_ltree * 00000480 b static_ltree
* 000008f4 b dyn_ltree * 000008f4 b dyn_ltree
*/ */
/* TODO: full support for -v for DESKTOP /* TODO: full support for -v for DESKTOP
* "/usr/bin/gzip -v a bogus aa" should say: * "/usr/bin/gzip -v a bogus aa" should say:
a: 85.1% -- replaced with a.gz 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 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)) //applet:IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_GZIP) += gzip.o //kbuild:lib-$(CONFIG_GZIP) += gzip.o

View File

@ -25,6 +25,21 @@
"Minimalized" for busybox by Alain Knaff "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(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(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)) //applet:IF_LZOP(APPLET_ODDNAME(unlzop, lzop, BB_DIR_USR_BIN, BB_SUID_DROP, unlzop))

View File

@ -7,6 +7,12 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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)) //applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_RPM) += rpm.o //kbuild:lib-$(CONFIG_RPM) += rpm.o

View File

@ -7,6 +7,12 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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)) //applet:IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o //kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o

View File

@ -22,7 +22,6 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/ */
/* TODO: security with -C DESTDIR option can be enhanced. /* TODO: security with -C DESTDIR option can be enhanced.
* Consider tar file created via: * Consider tar file created via:
* $ tar cvf bug.tar anything.txt * $ tar cvf bug.tar anything.txt
@ -42,6 +41,106 @@
* This doesn't feel right, and IIRC GNU tar doesn't do that. * 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)) //applet:IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_TAR) += tar.o //kbuild:lib-$(CONFIG_TAR) += tar.o

View File

@ -17,6 +17,16 @@
* Zip64 + other methods * 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)) //applet:IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_UNZIP) += unzip.o //kbuild:lib-$(CONFIG_UNZIP) += unzip.o