Contents of /trunk/busybox/patches/busybox-1.20.2-tar-support-explicit-xz-compression-option.patch
Parent Directory | Revision Log
Revision 1858 -
(show 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 | 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 |