-Only the most important changes more recent than version 0.6 are noted here.
+Version 1.7.1-BETA:
-Version 1.6.2 (BETA):
+ Made a minor change to the LZMS compressor and decompressor to fix an
+ incompatibility with the Microsoft implementation. In the unlikely
+ event that you created an LZMS-compressed WIM with wimlib v1.7.0 or
+ earlier and a checksum error is reported when extracting files from it
+ with wimlib v1.7.1, decompress it with v1.7.0 then compress it with
+ v1.7.1.
+
+ The performance of LZX compression in its default settings has been
+ improved by a further 5-10%.
+
+ The default compression mode for wimcapture is now LZX compression in
+ its default mode, which is the same as '--compress=maximum'.
+
+ You can now specify an optional integer compression level to the
+ '--compress' or '--solid-compress' options; e.g. '--compress=lzx:75'.
+ Currently, the default level in all cases is 50. This capability
+ deprecates the '--compress-slow' (or '--recompress-slow') option to
+ several wimlib-imagex commands.
+
+ The '--pack-streams', '--pack-compress', and '--pack-chunk-size' options
+ to several wimlib-imagex commands have been deprecated in favor of more
+ "standard" names: '--solid', '--solid-compress', and
+ '--solid-chunk-size', respectively.
+
+ The XPRESS compressor no longer supports chunks larger than 65536 bytes.
+ There is little point in having larger chunks, since the LZ77 sliding
+ window for XPRESS cannot be larger than 65536 bytes. This change does
+ not affect the default XPRESS chunk size, which is 32768.
+
+ The new (as of v1.7.0) extraction code will no longer run out of file
+ handles when extracting many (1000+) identical files.
+
+ Library changes:
+
+ Custom compressor parameters have been removed from the library
+ in favor of the simpler level-based API.
+
+ Decompressor parameters have been removed entirely.
+
+ The maximum XPRESS chunk size has been reduced, as mentioned
+ above.
+
+ Library users can now initialize and de-initialize the library
+ multiple times in one run of an application program.
+
+ Library users will now receive WIMLIB_PROGRESS_MSG_WRITE_STREAMS
+ and WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS messages more frequently
+ when writing or extracting large WIM files.
+
+ Added experimental new write flag:
+ WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES.
+
+ Library users can now specify a custom file for warning and
+ error messages to be sent to, rather than the default of
+ standard error.
+
+Version 1.7.0:
+ Improved compression, decompression, and extraction performance.
+
+ Improved compatibility with version 3584 WIM / ESD files:
+ - Add support for reading and writing multiple solid blocks per
+ archive, which WIMGAPI/DISM can create when appending an image.
+ - Correctly create solid blocks larger than 4 GiB.
+
+ 'add' commands passed to wimupdate will now replace existing
+ nondirectory files by default. Use the --no-replace option to get the
+ old behavior.
+
+ The license for the library now contains an exception that allows using
+ it under the LGPL. See the COPYING file for details.
+
+ In reparse-point fixup mode (the default for capture), symbolic links
+ and junctions that point outside the tree being captured are no longer
+ excluded from capture.
+
+ Added support for "WIMBoot" capture and extraction. See the
+ documentation for the new '--wimboot' option to wimcapture and wimapply
+ for more information.
+
+ On UNIX-like systems, you can now backup and restore device nodes, named
+ pipes, and sockets. In addition, 32-bit user and group IDs are now
+ supported.
+
+ The way that UNIX data is stored in WIM files has been changed. If you
+ captured any WIMs with the --unix-data option, to upgrade them you'll
+ need to apply them with --unix-data using wimlib-imagex v1.6.2, then
+ re-capture them with --unix-data using this version.
+
+ wimlib now understands tagged metadata items, such as object IDs, that
+ can be stored in WIM directory entries.
+
+ Removed the --hardlink and --symlink options to wimapply, since I don't
+ think they are too useful and they got in the way of improving the code.
+
+ WIMs will now retain their GUIDs when rebuilt (e.g. with wimoptimize).
+
+ The 'mkwinpeimg' script now supports writing the ISO image to standard
+ output.
+
+ The <ARCH> element in WIM XML data is now exported correctly.
+
+ On Windows, sparse file attributes are no longer set on extracted files.
+ Oddly enough, this actually saves disk space in some cases.
+
+ On UNIX, configuring with --disable-xattr or --enable-xattr is no longer
+ supported. Mounting WIM images now always requires extended attribute
+ support. Use --without-fuse to disable support for mounting WIM images;
+ this will also disable the need for extended attribute support.
+
+ Configuring with --enable-ssse3-sha1 now works correctly.
+
+ The shared library version has been bumped up. The main
+ incompatibilities are:
+
+ - WIMLIB_COMPRESSION_TYPE_XPRESS is now 1 and
+ WIMLIB_COMPRESSION_TYPE_LZX is now 2 (so it's the same as
+ WIMGAPI).
+
+ - User-provided progress functions are now registered using a
+ separate function, wimlib_register_progress_function(). The
+ 'progress_func' argument to many functions no longer exists.
+
+ - The return value from user-provided progress functions is now
+ significant.
+
+ - A context argument has been added to the prototype of
+ user-provided progress functions.
+
+ - 'struct wimlib_capture_config' has been removed. The library
+ now takes the path to the configuration file directly. This
+ affects wimlib_add_image(), wimlib_add_image_multisource(),
+ and wimlib_update_image(). However, a NULL value passed in
+ the argument retains the same meaning.
+
+ - Removed deprecated functions: some (de)compression functions,
+ wimlib_extract_files(), and wimlib_print_metadata().
+
+ - Removed extraction flags: WIMLIB_EXTRACT_FLAG_HARDLINK,
+ WIMLIB_EXTRACT_FLAG_SYMLINK, WIMLIB_EXTRACT_FLAG_FILE_ORDER,
+ and WIMLIB_EXTRACT_FLAG_SEQUENTIAL.
+
+ - Removed some progress messages:
+ WIMLIB_PROGRESS_MSG_APPLY_TIMESTAMPS,
+ WIMLIB_PROGRESS_MSG_EXTRACT_DIR_STRUCTURE_BEGIN,
+ WIMLIB_PROGRESS_MSG_EXTRACT_DIR_STRUCTURE_END. Numbering
+ stays the same.
+
+ - Removed some error codes. Numbering stays the same.
+
+ - Replaced WIMLIB_UNMOUNT_FLAG_LAZY with
+ WIMLIB_UNMOUNT_FLAG_FORCE.
+
+ - WIM paths passed to progress functions now have a leading
+ slash.
+
+Version 1.6.2:
Case-insensitive comparisons of strings (e.g. filenames) containing
UTF-16 codepoints above 32767 are now done correctly.
wimunmount now provides the '--new-image' option to cause changes to a
read-write mounted image to be committed as a new image rather than as
- an update of the same image. (The corresponding new library flag is
+ an update of the mounted image. (The corresponding new library flag is
WIMLIB_UNMOUNT_FLAG_NEW_IMAGE.)
- The LZMS compression chunk size, or "dictionary size", may now be up to
- 1 GiB (2^30).
+ The LZMS ("recovery") compression chunk size, or "dictionary size", may
+ now be up to 1 GiB (1,073,741,824 bytes).
- The performance of LZX and LZMS compression with large chunk sizes has
- been slightly improved.
+ The performance of LZX ("maximum") and LZMS ("recovery") compression
+ with large chunk sizes has been slightly improved.
Version 1.6.1:
Stored files with size exactly 4 GiB (4,294,967,296 bytes) are now