Annotation of /trunk/busybox/patches/busybox-1.20.2-tar-support-explicit-xz-compression-option.patch
Parent Directory | Revision Log
Revision 1858 -
(hide annotations)
(download)
Thu Jul 26 09:45:43 2012 UTC (12 years, 2 months ago) by niro
File size: 4076 byte(s)
Thu Jul 26 09:45:43 2012 UTC (12 years, 2 months ago) by niro
File size: 4076 byte(s)
added more upstream patches
1 | niro | 1858 | From dfc2473b9ed88039697ac89ee2a4301cdaefcf84 Mon Sep 17 00:00:00 2001 |
2 | From: Boris Reisig <boris@boris.ca> | ||
3 | Date: Thu, 24 May 2012 07:01:55 +0000 | ||
4 | Subject: tar: support -J, --xz explicit compression option | ||
5 | |||
6 | function old new delta | ||
7 | tar_main 868 881 +13 | ||
8 | tar_longopts 285 290 +5 | ||
9 | packed_usage 29267 29270 +3 | ||
10 | |||
11 | Signed-off-by: Boris Reisig <boris@boris.ca> | ||
12 | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> | ||
13 | --- | ||
14 | diff --git a/archival/tar.c b/archival/tar.c | ||
15 | index a64d651..a3565d6 100644 | ||
16 | --- a/archival/tar.c | ||
17 | +++ b/archival/tar.c | ||
18 | @@ -693,6 +693,7 @@ static llist_t *append_file_list_to_list(llist_t *list) | ||
19 | //usage: "-[" IF_FEATURE_TAR_CREATE("c") "xt" | ||
20 | //usage: IF_FEATURE_SEAMLESS_Z("Z") | ||
21 | //usage: IF_FEATURE_SEAMLESS_GZ("z") | ||
22 | +//usage: IF_FEATURE_SEAMLESS_XZ("J") | ||
23 | //usage: IF_FEATURE_SEAMLESS_BZ2("j") | ||
24 | //usage: IF_FEATURE_SEAMLESS_LZMA("a") | ||
25 | //usage: IF_FEATURE_TAR_CREATE("h") | ||
26 | @@ -719,6 +720,9 @@ static llist_t *append_file_list_to_list(llist_t *list) | ||
27 | //usage: IF_FEATURE_SEAMLESS_GZ( | ||
28 | //usage: "\n z (De)compress using gzip" | ||
29 | //usage: ) | ||
30 | +//usage: IF_FEATURE_SEAMLESS_XZ( | ||
31 | +//usage: "\n J (De)compress using xz" | ||
32 | +//usage: ) | ||
33 | //usage: IF_FEATURE_SEAMLESS_BZ2( | ||
34 | //usage: "\n j (De)compress using bzip2" | ||
35 | //usage: ) | ||
36 | @@ -765,7 +769,8 @@ enum { | ||
37 | IF_FEATURE_TAR_FROM( OPTBIT_INCLUDE_FROM,) | ||
38 | IF_FEATURE_TAR_FROM( OPTBIT_EXCLUDE_FROM,) | ||
39 | IF_FEATURE_SEAMLESS_GZ( OPTBIT_GZIP ,) | ||
40 | - IF_FEATURE_SEAMLESS_Z( OPTBIT_COMPRESS ,) // 16th bit | ||
41 | + IF_FEATURE_SEAMLESS_XZ( OPTBIT_XZ ,) // 16th bit | ||
42 | + IF_FEATURE_SEAMLESS_Z( OPTBIT_COMPRESS ,) | ||
43 | IF_FEATURE_TAR_NOPRESERVE_TIME(OPTBIT_NOPRESERVE_TIME,) | ||
44 | #if ENABLE_FEATURE_TAR_LONG_OPTIONS | ||
45 | OPTBIT_NORECURSION, | ||
46 | @@ -790,6 +795,7 @@ enum { | ||
47 | OPT_INCLUDE_FROM = IF_FEATURE_TAR_FROM( (1 << OPTBIT_INCLUDE_FROM)) + 0, // T | ||
48 | OPT_EXCLUDE_FROM = IF_FEATURE_TAR_FROM( (1 << OPTBIT_EXCLUDE_FROM)) + 0, // X | ||
49 | OPT_GZIP = IF_FEATURE_SEAMLESS_GZ( (1 << OPTBIT_GZIP )) + 0, // z | ||
50 | + OPT_XZ = IF_FEATURE_SEAMLESS_XZ( (1 << OPTBIT_XZ )) + 0, // J | ||
51 | OPT_COMPRESS = IF_FEATURE_SEAMLESS_Z( (1 << OPTBIT_COMPRESS )) + 0, // Z | ||
52 | OPT_NOPRESERVE_TIME = IF_FEATURE_TAR_NOPRESERVE_TIME((1 << OPTBIT_NOPRESERVE_TIME)) + 0, // m | ||
53 | OPT_NORECURSION = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NORECURSION )) + 0, // no-recursion | ||
54 | @@ -798,7 +804,7 @@ enum { | ||
55 | OPT_NOPRESERVE_PERM = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NOPRESERVE_PERM)) + 0, // no-same-permissions | ||
56 | OPT_OVERWRITE = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_OVERWRITE )) + 0, // overwrite | ||
57 | |||
58 | - OPT_ANY_COMPRESS = (OPT_BZIP2 | OPT_LZMA | OPT_GZIP | OPT_COMPRESS), | ||
59 | + OPT_ANY_COMPRESS = (OPT_BZIP2 | OPT_LZMA | OPT_GZIP | OPT_XZ | OPT_COMPRESS), | ||
60 | }; | ||
61 | #if ENABLE_FEATURE_TAR_LONG_OPTIONS | ||
62 | static const char tar_longopts[] ALIGN1 = | ||
63 | @@ -831,6 +837,9 @@ static const char tar_longopts[] ALIGN1 = | ||
64 | # if ENABLE_FEATURE_SEAMLESS_GZ | ||
65 | "gzip\0" No_argument "z" | ||
66 | # endif | ||
67 | +# if ENABLE_FEATURE_SEAMLESS_XZ | ||
68 | + "xz\0" No_argument "J" | ||
69 | +# endif | ||
70 | # if ENABLE_FEATURE_SEAMLESS_Z | ||
71 | "compress\0" No_argument "Z" | ||
72 | # endif | ||
73 | @@ -924,6 +933,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv) | ||
74 | IF_FEATURE_SEAMLESS_LZMA("a" ) | ||
75 | IF_FEATURE_TAR_FROM( "T:X:") | ||
76 | IF_FEATURE_SEAMLESS_GZ( "z" ) | ||
77 | + IF_FEATURE_SEAMLESS_XZ( "J" ) | ||
78 | IF_FEATURE_SEAMLESS_Z( "Z" ) | ||
79 | IF_FEATURE_TAR_NOPRESERVE_TIME("m") | ||
80 | , &base_dir // -C dir | ||
81 | @@ -1076,6 +1086,9 @@ int tar_main(int argc UNUSED_PARAM, char **argv) | ||
82 | if (opt & OPT_LZMA) | ||
83 | USE_FOR_MMU(xformer = unpack_lzma_stream;) | ||
84 | USE_FOR_NOMMU(xformer_prog = "unlzma";) | ||
85 | + if (opt & OPT_XZ) | ||
86 | + USE_FOR_MMU(xformer = unpack_xz_stream;) | ||
87 | + USE_FOR_NOMMU(xformer_prog = "unxz";) | ||
88 | |||
89 | open_transformer_with_sig(tar_handle->src_fd, xformer, xformer_prog); | ||
90 | /* Can't lseek over pipes */ | ||
91 | -- | ||
92 | cgit v0.9.0.1-2-gef13 |