From 349933ac7e49ee5a807396bfa27e2bf1684f4103 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sun, 12 Jan 2014 17:11:14 -0600 Subject: [PATCH 1/1] wimlib-imagex: Add --solid as alias for --pack-streams --- NEWS | 7 +++++-- README | 15 +++++++-------- doc/imagex-capture.1.in | 2 +- doc/imagex-export.1.in | 2 +- doc/imagex-optimize.1.in | 2 +- programs/imagex.c | 3 +++ 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index 033d7049..2a7c32bf 100644 --- a/NEWS +++ b/NEWS @@ -14,11 +14,14 @@ Version 1.6.1: Paths passed to wimlib_extract_paths() and wimlib_iterate_dir_tree() may now use either forwards or backwards slashes, as documented. - Fixed a potential stack overflow when extracting solid archives (packed - streams) containing more than about 100000 files. + Fixed a potential stack overflow when extracting solid archives + containing more than about 100000 files. Memory usage for LZMS and LZX compression has been decreased. + For wimcapture, wimoptimize, and wimexport, '--solid' may now be used as + an alias for '--pack-streams'. + Version 1.6.0: Support for extracting and updating the new version 3584 WIMs has been added. These WIMs typically pack many streams ("files") together into a diff --git a/README b/README index 2b742141..7b7eaf03 100644 --- a/README +++ b/README @@ -108,14 +108,13 @@ Notes: compression type is not generally recommended due to its limited compatibility with the MS implementations. - [7] '--compress=recovery --packed-streams' or - '--compress=LZMS --packed-streams' for wimlib-imagex; - WIMCreateFile with WIM_COMPRESSION_LZMS and flag 0x20000000 for WIMGAPI. - Compression chunk size in packed resources is 33554432 for wimlib, - 67108864 for WIMGAPI. Note: this compression type is not generally - recommended due to its limited compatibility with the MS implementations. - Also, due to the large chunk size, wimlib uses about 500MB of memory per - thread when compressing in this format. + [7] '--compress=recovery --solid' or '--compress=LZMS --solid' for + wimlib-imagex; WIMCreateFile with WIM_COMPRESSION_LZMS and flag + 0x20000000 for WIMGAPI. Compression chunk size in packed resources is + 33554432 for wimlib, 67108864 for WIMGAPI. Note: this compression type + is not generally recommended due to its limited compatibility with the MS + implementations. Also, due to the large chunk size, wimlib uses about + 500MB of memory per thread when compressing in this format. The above timings were done on Windows 8 (x86) so that side-by-side comparisons with the Microsoft implementation would be possible; however, wimlib may have diff --git a/doc/imagex-capture.1.in b/doc/imagex-capture.1.in index 7f7ca9a3..41054667 100644 --- a/doc/imagex-capture.1.in +++ b/doc/imagex-capture.1.in @@ -215,7 +215,7 @@ compression, the maximum allowed chunk size is 2^21 (2097152), and for XPRESS ("fast") and LZMS ("recovery") compression, the maximum allowed chunk size is 2^26 (67108644). .TP -\fB--pack-streams\fR +\fB--pack-streams\fR, \fB--solid\fR Create a "solid" archive that compresses multiple unique streams ("files") together, rather than each unique stream ("file") independently. This can result in a significantly better compression ratio, but this format greatly diff --git a/doc/imagex-export.1.in b/doc/imagex-export.1.in index 80c31ebe..32eea666 100644 --- a/doc/imagex-export.1.in +++ b/doc/imagex-export.1.in @@ -79,7 +79,7 @@ and "LZX", instead of "fast" and "maximum", respectively. reduced compatibility. See the documentation for this option to \fB@IMAGEX_PROGNAME@ capture\fR (1) for more details. .TP -\fB--pack-streams\fR +\fB--pack-streams\fR, \fB--solid\fR Create a "solid" archive that compresses multiple files together. This can result in a higher compression ratio, but has disadvantages such as reduced compatibility; see the documentation for this option to diff --git a/doc/imagex-optimize.1.in b/doc/imagex-optimize.1.in index d718f55e..37eb71bb 100644 --- a/doc/imagex-optimize.1.in +++ b/doc/imagex-optimize.1.in @@ -60,7 +60,7 @@ reduced compatibility. See the documentation for this option to Set the WIM compression chunk size to \fISIZE\fR. See the documentation for this option to \fB@IMAGEX_PROGNAME@ capture\fR (1) for more details. .TP -\fB--pack-streams\fR +\fB--pack-streams\fR, \fB--solid\fR Create a "solid" archive that compresses multiple files together. This can result in a higher compression ratio, but has disadvantages such as reduced compatibility; see the documentation for this option to diff --git a/programs/imagex.c b/programs/imagex.c index ad000407..9ebe2771 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -196,6 +196,7 @@ static const struct option capture_or_append_options[] = { {T("compress-slow"), no_argument, NULL, IMAGEX_COMPRESS_SLOW_OPTION}, {T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION}, {T("pack-streams"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, + {T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, {T("config"), required_argument, NULL, IMAGEX_CONFIG_OPTION}, {T("dereference"), no_argument, NULL, IMAGEX_DEREFERENCE_OPTION}, {T("flags"), required_argument, NULL, IMAGEX_FLAGS_OPTION}, @@ -234,6 +235,7 @@ static const struct option export_options[] = { {T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION}, {T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION}, {T("pack-streams"),no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, + {T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, {T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION}, {T("ref"), required_argument, NULL, IMAGEX_REF_OPTION}, {T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION}, @@ -298,6 +300,7 @@ static const struct option optimize_options[] = { {T("recompress-slow"), no_argument, NULL, IMAGEX_COMPRESS_SLOW_OPTION}, {T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION}, {T("pack-streams"),no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, + {T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION}, {T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION}, {T("pipable"), no_argument, NULL, IMAGEX_PIPABLE_OPTION}, {T("not-pipable"), no_argument, NULL, IMAGEX_NOT_PIPABLE_OPTION}, -- 2.43.0