X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=NEWS;h=7b4a0e37ee11b7bf7e78f83197a998f4354e2c89;hp=89b5b93da6aa857c9ef38890dc0ddd5e2a712992;hb=9285ed562c208959e0d5034e0ab4289cc40a31a2;hpb=9d9c2fe60b5842825002131f4ca926024e6f0038 diff --git a/NEWS b/NEWS index 89b5b93d..7b4a0e37 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,319 @@ -Only the most important changes more recent than version 0.6 are noted here. +Version 1.8.1-BETA: + Fixed a bug in the LZX decompressor: malicious input data could cause + out of bounds writes to memory (since wimlib v1.2.2). + + A file can now have both an unnamed data stream ("file contents") and a + reparse point stream. Such files can exist as a result of the use of + certain Windows features, such as offline storage, including "OneDrive". + wimlib will now store and restore both streams on Windows as well as in + NTFS-3g mode. Microsoft's WIMGAPI also has this behavior. + + On Windows, named data streams of encrypted files are no longer stored + twice in WIM archives. + + On Windows, named data streams are now correctly extracted to existing + "readonly" directories. Before, an error would be reported. + + On Windows, when doing an extraction in "WIMBoot mode", files larger + than 4 gigabytes are now never extracted as externally backed. This + works around a bug in Microsoft's "WOF" driver. + + The '--enable-verify-compression' configure option has been removed. If + you want to verify a WIM file, use the 'wimverify' program. + +Version 1.8.0: + Improved the LZX compressor. It is now 15-20% faster than before and + provides a slightly better compression ratio. + + Improved the LZMS compressor. It now provides a compression ratio + slightly better than WIMGAPI while still being faster and using slightly + less memory. + + The compression chunk size in solid resources, e.g. when capturing or + exporting a WIM file using the '--solid' option, now defaults to 64 MiB + (67108864 bytes) instead of 32 MiB (33554432 bytes). This provides a + better compression ratio and is the same value that WIMGAPI uses. The + memory usage is less than 50% higher than wimlib v1.7.4 and is slightly + lower than WIMGAPI's memory usage, but if it is too much, it is still + possible to choose a lower value, e.g. with the '--solid-chunk-size' + option to wimlib-imagex. + + The '--chunk-size' and '--solid-chunk-size' options to wimlib-imagex now + accept the 'K', 'M', and 'G' suffixes. + + Files are now sorted by name extension when creating a solid WIM file. + + Fixed various issues related to capture/apply of EFS-encrypted files on + Windows. + + The file list printed by 'wimdir' is now sorted by the platform-specific + case sensitivity setting, rather than always case sensitively. This + also affects the library function wimlib_iterate_dir_tree(). + + On Windows, some error and warning messages have been improved. + +Version 1.7.4: + The Windows binary distribution no longer contains third party DLLs. + These dependencies are instead compiled directly into the libwim DLL. + + Added more fixes for wimlib on non-x86 architectures such as ARM. + + Extracting files to a Windows PE in-memory filesystem no longer fails if + the target files do not yet exist. + + Improved the performance of XPRESS compression and LZMS decompression. + + Enabled SSSE3 accelerated SHA-1 computation in x86_64 Windows builds. + It will automatically be faster on newer Intel and AMD processors. + + Removed the --with-imagex-progname and --enable-more-assertions + configure options. + +Version 1.7.3: + Fix for very slow export from solid WIM / ESD files. + + Fix for LZX and LZMS algorithms on non-x86 architectures, such as ARM. + + New progress message: WIMLIB_PROGRESS_MSG_HANDLE_ERROR. Applications + may use this to treat some types of errors as non-fatal. + + The library now permits making in-memory changes to a WIMStruct backed + by a read-only WIM file. + + Fixes for "WIMBoot" extraction mode (Windows only): + + When not using the WOF driver, extraction no longer fails if the + disk containing the WIM file has too many partitions. + + When matching patterns in [PrepopulateList], all hard links of + each file are now considered. + + The system registry files are now automatically treated as being + in [PrepopulateList]. + + Added a hack to try to work around an intermittent bug in + Microsoft's WOF (Windows Overlay Filesystem) driver. + +Version 1.7.2: + Made more improvements to the XPRESS, LZX, and LZMS compressors. + + A number of improvements to the Windows port: + + Fixes for setting short filenames. + + Faster "WIMBoot" extraction. + + Updated and slimmed down the dependent DLLs. + + ACL inheritence bits are now restored. + + Mandatory integrity labels are now backed up and restored. + + Added a workaround for an issue where in rare cases, wimlib could create + a compressed data stream that could not be read correctly by Windows + after an extraction in "WIMBoot" mode. + + Library changes: + Added file count progress data for + WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and + WIMLIB_PROGRESS_MSG_EXTRACT_METADATA. + + Added support for testing file exclusions via the user-provided + progress function. + + Some documentation improvements. + + Made some clarifications to the license text in the COPYING file. + +Version 1.7.1: + Made more improvements to the XPRESS, LZX, and LZMS compressors. + + 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' option; e.g. '--compress=lzx:75'. + + 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. + + Added 'verify' subcommand to wimlib-imagex. + + Notable 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. + + Library users can now specify a custom file for warning and + error messages to be sent to, rather than the default of + standard error. + + New progress messages: + WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE, + WIMLIB_PROGRESS_MSG_EXTRACT_METADATA. + + New function: wimlib_verify_wim(). + +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 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. + + Fixed build failure on Mac OS X. + + 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 mounted image. (The corresponding new library flag is + WIMLIB_UNMOUNT_FLAG_NEW_IMAGE.) + + 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 ("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 + decompressed correctly. + + Fixed a bug in the LZX compressor introduced in v1.5.3. The bug + occurred in an unlikely case, and due to validity checks it did not + affect successfully created archives. + + Fixed a minor compatibility issue with the LZMS compressor and + decompressor. This is *not* the default compression type and was only + introduced in v1.6.0. In the unlikely event that you created an + LZMS-compressed WIM with v1.6.0 and a checksum error is reported when + applying it with v1.6.1, decompress it with v1.6.0 then compress it with + v1.6.1. + + Memory usage for LZMS and LZX compression has been decreased. + + wimextract now allows wildcard characters in paths specified on the + command line. Also, the '--strict-wildcards' option has been removed + and replaced with the inverse option '--nullglob'. See the + documentation for wimextract for more details and changes. + + The wimlib_extract_files() function is now considered deprecated in + favor of wimlib_extract_paths(). + + Fixed more permissions problems when extracting files on Windows. + + A new '--no-attributes' option has been added to wimapply and + wimextract. The library flag is WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES. + + The default chunk size is now set correctly when changing the + compression type of a WIM, for example with 'wimoptimize'. + + The '--metadata' option to wiminfo has been replaced with the + '--detailed' option to wimdir. + + In relevant wimlib-imagex commands, '--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 @@ -8,12 +323,11 @@ Version 1.6.0: image), but optimizations have been implemented for extraction. These new WIM files also typically use a new compression format (LZMS), which is similar to LZMA and can offer a better compression ratio than LZX. - These new WIM files can be created with Dism using '/compress recovery', - or using `wimcapture' using '--pack-streams', although wimlib's LZMS - compressor is not yet very good, the latter is not recommended. Note: - this new WIM format is used by the Windows 8 web downloader, but - important segments of the raw '.esd' files are encrypted, so wimlib will - not be able to extract such files until they are first decrypted. + These new WIM files can be created using `wimcapture' with + the '--compress=lzms --pack-streams' options. Note: this new WIM format + is used by the Windows 8 web downloader, but important segments of the + raw '.esd' files are encrypted, so wimlib will not be able to extract + such files until they are first decrypted. wimlib now supports extracting files and directories from a WIM image based on a "listfile" that itself contains the list of paths to extract. @@ -24,7 +338,7 @@ Version 1.6.0: For searching WIM files, wimlib now has configurable case sensitivity. The default on Windows is still case-insensitive and the default on - UNIX-like systems is still case-sensitive, but this can be overwridden + UNIX-like systems is still case-sensitive, but this can be overridden on either platform through flags to wimlib_global_init(). For `wimlib-imagex', the environmental variable WIMLIB_IMAGEX_IGNORE_CASE can be set to 1 or 0 for case-insensitive or case-sensitive behavior,