X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=NEWS;h=8c54a2376c1614e6e3ae1136c9d43d262aca8571;hp=207ead8dd0b21d7b5310ea5f442f9c16bf263502;hb=4efdef43a8bb9e821f39572e1c9086e3f069ac7c;hpb=9f842ad87d2255dce15c7d743ff1d67b4c31915d diff --git a/NEWS b/NEWS index 207ead8d..8c54a237 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,426 @@ Only the most important changes more recent than version 0.6 are noted here. +Version 1.6.3-BETA: + Added support for "WIMBoot". On any platform, you can now capture a WIM + as WIMBoot-compatible. In addition, on Windows, specifically Windows + 8.1 Update 1 and later, you can now apply a WIM archive in a special + mode that causes extracted files to be externally backed by the WIM + archive. See the documentation for the new '--wimboot' option to + wimcapture and wimapply, respectively, for more information. + + The shared library version has been bumped up; however, there are only + a few incompatibilities: + + - WIMLIB_COMPRESSION_TYPE_XPRESS is now 1 and + WIMLIB_COMPRESSION_TYPE_LZX is now 2 (so it's the same as + WIMGAPI). + + - '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 no code changes are + necessary if a NULL configuration was being used. + + - Removed deprecated functions: some (de)compression functions, + wimlib_extract_files(), and wimlib_print_metadata(). + + Otherwise the API and ABI is the same. + +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 + added. These WIMs typically pack many streams ("files") together into a + single compressed resource, thereby saving space. This degrades the + performance of random access (such as that which occurs on a mounted + 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 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. + For `wimextract', the syntax is to specify @LISTFILE instead of a PATH, + and for the library itself, the new APIs are wimlib_extract_pathlist() + and wimlib_extract_paths(). Path globs containing wildcard characters + are supported. + + 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 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, + respectively. + + Support for compression chunk sizes greater than the default of 32768 + bytes has been added. A larger chunk size typically results in a better + compression ratio. However, the MS implementation is seemingly not + compatible with all chunk sizes, especially for LZX compression, so the + defaults remain unchanged, with the exception of the new LZMS-compressed + WIMs, which use a larger chunk size by default. + + The compression/decompression API exported by wimlib has been changed. + Now one set of functions handles all supported compression formats. + + `wimcapture' and `wimappend' will now display the progress of scanning + the directory tree to capture, in addition to the progress of writing + data to the WIM. The '--verbose' option no longer does anything. The + library API change for this is the addition of several members to + `struct wimlib_progress_info_scan' available to progress callbacks. + + `mkwinpeimg' now correctly handles the '--start-script' option when the + start script is not in the working directory. + + Sequential extraction, previously requested by using + WIMLIB_EXTRACT_FLAG_SEQUENTIAL, is now the default. + WIMLIB_EXTRACT_FLAG_FILE_ORDER can be used to get the old default + behavior (extract in file order). + +Version 1.5.3: + The new LZX compressor added in v1.5.2 has been improved and is now + enabled by default, except when `wimcapture' or `wimappend' is run + *without* the '--compress' option, in which case the faster LZX + compressor is used (the same as before). This behavior is reasonably + consistent with ImageX which actually uses "fast" (XPRESS) compression + by default. In those cases, use '--compress=maximum' to explicitly + capture a WIM image using the new (slower but better) LZX compressor. + + The '--compress-slow' option still exists to `wimlib-imagex optimize', + but its new behavior is to tweak the new LZX compressor even more to + produce an even better compression ratio at the cost of more time spent + compressing. + + `wimlib-imagex optimize' now supports the '--compress=TYPE' option, + which recompresses the WIM file using the specified compression TYPE. + The new library API function used for this is + wimlib_set_output_compression_type(). + + Added the wimlib_get_xml_data() function to allow library clients to + easily retrieve the raw XML data from a WIM file if needed. + + Fixed a bug that could cause an error code to be incorrectly returned + when writing XML data containing a element. + + Mounted WIM images will now correctly show the default file stream even + if appears in the alternate data stream entries of the corresponding WIM + directory entry. + +Version 1.5.2: + Added a new experimental LZX compressor which can be enabled by passing + '--compress-slow' to `wimlib-imagex capture' or `wimlib-imagex + optimize'. (The latter is only applicable if the WIM is already + LZX-compressed and the '--recompress' option is also given.) The + experimental compressor is much slower but compresses the data slightly + more --- currently usually to within a fraction of a percent of the + results from WIMGAPI/ImageX. + + A workaround has been added for compatibility with versions of WinPE + that interpret alternate data stream entries in the boot WIM + incorrectly. + + An alignment bug that caused a crash in the LZX decompressor on some + builds was fixed. + + wimlib now attempts to clear the WIM_HDR_FLAG_WRITE_IN_PROGRESS flag in + the WIM header when restoring the previous state of a WIM it failed to + successfully update. + + Added a workaround to avoid an access denied error on Windows when + replacing a WIM file that another process has opened. + +Version 1.5.1: + wimlib can now open WinPE WIMs from WAIK v2.1, which had a quirk that + needed to be handled. + + A bug in the interpretation of negative IMAGE indices in the + --update-of=[WIMFILE:]IMAGE option to `wimlib-imagex capture' and + `wimlib-imagex append' has been fixed. + + A workaround has been added to successfully apply security descriptors + with empty DACLs when the NTFS-3g apply mode is being used with NTFS-3g + 2013.1.13 or earlier. + + `wimlib-imagex capture' can now accept the '--delta-from' option + multiple times. + +Version 1.5.0: + Added support for "pipable" WIMs. Pipable WIMs allow capturing images + to standard output and applying images from standard input, but they are + not compatible with Microsoft's software and are not created by default. + See the documentation for --pipable flag of `wimlib-imagex capture' for + more information. + + To better support incremental backups, added support for declaring an + image as a modified form of another image. See the documentation for + the '--update-of' option of `wimlib-imagex append' and `wimlib-imagex + capture'. + + Added supported for "delta" WIMs. See the documentation for the + '--delta-from' option of `wimlib-imagex capture'. + + The library support for managing split WIMs has been changed to support + other arrangements, such as delta WIMs, and be easier to use. This + change is visible in `wimlib-imagex', which also can now accept the + '--ref' option multiple times, and also now supports "delta" WIMs as + mentioned above. + + wimlib now preserves WIM integrity tables by default, even if + WIMLIB_WRITE_FLAG_CHECK_INTEGRITY is not specified. This changes the + behavior of `wimlib-imagex' whenever the WIM being operated on contains + an integrity table and the '--check' option is not specified. + + `wimlib-imagex capture' now creates LZX-compressed WIMs by default + (when --compress is not specified). This provides the best compression + ratio by default, which is usually what is desired, at a cost of some + speed. + + `wimlib-imagex' now supports being invoked as wimCOMMAND, where COMMAND + is the command as in `wimlib-imagex COMMAND'; for example, it can be + invoked as `wimapply' as an alternative to `wimlib-imagex apply'. The + appropriate hard links are created in UNIX installations of + `wimlib-imagex', while for the Windows distribution of `wimlib-imagex', + batch files that emulate this behavior are generated. + + Security descriptors are now extracted correctly on Windows. + + Fixed archiving DOS names in NTFS-3g capture mode. + + The extraction code has been rewritten and it will now be easier to + support new features on all supported backends (currently Win32, UNIX, + and NTFS-3g). For example, hard-linked extraction mode (--hardlink) is + now supported on all backends, not just UNIX. + + `mkwinpeimg' now supports grabbing files from the WAIK supplement rather + than the WAIK itself. + + wimlib_global_init() now, by default, attempts to acquire additional + privileges on Windows, so library clients need not do this. + + This update bumps the shared library version number up to 9, since it is + not binary compatibible with previous releases. + +Version 1.4.2: + Fixed bug in `wimlib-imagex export' that made it impossible to export an + image from a WIM that is readonly at the filesystem level. + + Return error code rather than segfaulting when trying to list files from + a non-first part of a split WIM. + + Joining a WIM will now preserve the RP_FIX and READONLY flags. + +Version 1.4.1: + On Windows, paths given to wimlib-imagex are now treated case + insensitively. + + Improved behavior regarding invalid filenames; in particular, on + Windows, wimlib-imagex will, when extracting, now omit (with an option + to override this default) filenames differing only in case, or filenames + containing characters not valid on Windows. + + On Windows, wimlib now supports capturing and extracting long paths + (longer than the so-called MAX_PATH). + + On Windows, `wimlib-imagex update' now acquires proper privileges when + running as an Administrator. + + `wimlib-imagex update' will now complain if no image is specified when + trying to update a multi-image WIM. + + `wimlib-imagex update' now supports specifying a single update command + directly on the command line using the --command option. + + wimlib-imagex will now choose different units for progress messages, + depending on the amount of data that needs to be processed. + + `wimlib-imagex append' will now generate a unique WIM image name if no + name is specified and the defaulted name already exists in the WIM. + + wimlib now allows you to create unnamed WIM images, which can then only + be referred to by index. + + wimlib now allows you to explicitly declare you want write access to a + WIM by providing the WIMLIB_OPEN_FLAG_WRITE_ACCESS flag to + wimlib_open_wim(). + + wimlib now respects the WIM_HDR_FLAG_READONLY flag when set in the WIM + header. + + Progress callbacks have been added to wimlib's wimlib_update_image() + function. + + Added wimlib_get_wim_info(), wimlib_set_wim_info(), + wimlib_iterate_dir_tree(), and wimlib_iterate_lookup_table() functions + to the library. + + NTFS-3g capture now only warns about two conditions previously treated + as errors. + + Fixed a couple issues with using wimlib-imagex on UDF filesystems on + Windows. + + wimlib now correctly detects and returns an error when reading a WIM + image with a cyclic directory structure. (Fun fact: such a WIM will + crash Microsoft's software.) + +Version 1.4.0: + Added new "extract" and "update" subcommands to wimlib-imagex, along + with associated APIs in the library. These commands are intended mainly + for Windows use but can be used on UNIX as well. + + Many documentation improvements. + + Fixed a bug in the Windows build where relative symbolic links were not + captured in reparse-point fixup mode. + + Fixed a bug in the Windows build where file handles were left open to + the WIM file, causing `wimlib_imagex optimize' to fail in some cases. + + Fixed a bug in the Windows build of wimlib-imagex where globbing + split-WIM parts could cause the program to crash. + + Fixed a bug where the creation time of WIM images would be shown instead + of the last modification time. + + With the Windows build it is now possible to restore a WIM containing + symbolic links as a non-Administrator; however you will receive warnings + about not being able to extract the symbolic links. + +Version 1.3.3: + Capturing a WIM image should now be significantly faster in most cases + due to improved use of the operating system's cache and avoiding reading + files twice whenever possible. + + The Windows build should now work on Windows XP. + + The Windows build now supports capturing and restoring hidden, + compressed, sparse, and encrypted files. + + The Windows build now supports capturing and applying WIM images from + filesystems other than NTFS (with some reduced functionality). + + The Windows build now extracts short names correctly. + + Added support for "reparse-point" fixups (i.e. fixing up of symbolic + links). See docs for --rpfix and --norpfix flags of `wimlib-imagex + capture' and `wimlib-imagex apply'. + + The performance of splitting and joining WIMs should be slightly + improved. + + The LZX and XPRESS compression and decompression functions are now + exported from the library. + +Version 1.3.2: + Improvements and bugfixes for the Windows build. + + Added --strict-acls options. + + Fixed the way that wimlib determines the order of images in the WIM. + +Version 1.3.1: + Since wimlib can now be used on Windows, wimlib's implementation of + ImageX has been renamed to wimlib-imagex to avoid confusion with + Microsoft's implementation of ImageX, which would have the same file + name ("imagex.exe"). If you really don't like this you can pass the + --with-imagex-progname option to `configure' to choose a different name, + or even simply rename the binary yourself (but the former way will + configure the man pages to use the chosen name). + + Various bugs fixed in the Windows build. Mainly to do with capturing + and restoring alternate data streams correctly in weird cases, and + requesting the correct privileges when opening files. Also added the + --noacls options to wimlib-imagex capture, append, and apply. + + Windows build again: FindFirstStreamW() and FindNextStreamW() are now + dynamically loaded, so this may make the library compatible with Windows + XP (however, there may still be other problems). + +Version 1.3.0: + Added experimental support for native Windows builds. Binaries can be + downloaded from the SourceForge page. + + --source-list option added to `imagex capture' and `imagex append'. + + Better support for different character encodings. + +Version 1.2.6: + Storing UNIX file owners, groups, and modes in WIM images is now + possible using `imagex capture' with the --unix-data flag. + + Minor bug fixes and documentation fixes. + +Version 1.2.5: + NTFS capture: Fixed capturing duplicate reparse points. + + NTFS capture: Capture first unnamed stream if there are more than one + (print warning instead of error). + + Allow multiple test cases to execute concurrently (e.g. make -j2 check). + Version 1.2.4: Added --arch switch to mkwinpeimg script to support getting AMD64 WinPE from the WAIK. - Update to work with ntfs-3g version 2013.1.13. DOS names are no longer - applied to files with multiple links. + Update to work with ntfs-3g version 2013.1.13. Version 1.2.3: Fixed truncating file to shorter but non-zero length on read-write