From f6beef63c64abfc126ea4e73147af29d152f1a9e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 14 Nov 2013 11:39:00 +0100 Subject: [PATCH] archival/*: move "config:" snippets into .c files Signed-off-by: Denys Vlasenko --- archival/Config.src | 350 +------------------------------------------- archival/ar.c | 40 +++++ archival/bbunzip.c | 70 +++++++++ archival/bzip2.c | 13 ++ archival/cpio.c | 29 ++++ archival/dpkg.c | 12 +- archival/dpkg_deb.c | 22 +++ archival/gzip.c | 28 +++- archival/lzop.c | 15 ++ archival/rpm.c | 6 + archival/rpm2cpio.c | 6 + archival/tar.c | 101 ++++++++++++- archival/unzip.c | 10 ++ 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 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 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