]> wimlib.net Git - wimlib/blobdiff - NEWS
Report every link in scan progress
[wimlib] / NEWS
diff --git a/NEWS b/NEWS
index 47b5d63343bf272e5cba24a7ed9347b6980210a8..602c1dab156ff74439a4f8a6cc0296f1e9d78bed 100644 (file)
--- a/NEWS
+++ b/NEWS
-Only the most important changes more recent than version 0.6 are noted here.
+Version 1.9.0-BETA:
+       Added experimental support for Windows VSS (Volume Shadow Copy Service).
+       The new '--snapshot' argument to 'wimcapture' makes wimlib automatically
+       create and use a temporary VSS snapshot when capturing a WIM image.
+
+       Implemented setting of Windows-specific XML information, such as
+       architecture, system root, and version details.  This information is now
+       automatically set in newly captured WIM images, when appropriate.
+
+       The progress messages printed by wimlib-imagex while writing WIM files
+       have been slightly tweaked.
+
+       Progress information for directory tree scans now counts all hard links.
+
+       Added a new '--image-property' option to 'wimcapture', 'wimappend', and
+       'wiminfo'.  This option lets you assign values to elements in a WIM
+       file's XML document by name.
+
+       The wimlib_get_image_property() and wimlib_set_image_property() API
+       functions now support numerically indexed elements.
+
+       Fixed a bug where, on Windows, wimlib would change the security
+       descriptor of the target directory of an extraction even when the
+       '--no-acls' option was specified.
+
+Version 1.8.3:
+       Fixed a bug with libntfs-3g extraction present since v1.8.1.  Sometimes,
+       some Microsoft software would not correctly recognize data in the
+       resulting filesystem.
+
+       Made some small improvements to the compression algorithms:
+               LZX compression ratio was slightly improved.
+               XPRESS compression ratio and speed was slightly improved.
+               LZMS compression speed was slightly improved.
+
+       Improved handling of WIM XML data.  wimlib no longer drops unrecognized
+       elements when exporting images.  In addition, two API functions were
+       added for better access to elements in the XML document:
+       wimlib_get_image_property() and wimlib_set_image_property().
+
+       Added support for (unsafe) in-place compaction of WIM files.
+
+       Improved performance of image export by reusing metadata resources
+       instead of always rebuilding and recompressing them.
+
+       Improved performance of wimlib_update_image() by delaying the update to
+       the WIM's XML document until a write is requested.
+
+       On Windows, the target of an extraction may now be a reparse point
+       (which will be dereferenced).
+
+       On Windows, wimlib now correctly restores non-Microsoft reparse points.
+       However, this remains broken in NTFS-3g mode due to a libntfs-3g bug.
+
+       On Windows, wimlib now has improved performance when archiving files
+       from a filesystem backed by a WIM (a "WIMBoot" setup).
+
+       Several improvements to System Compression (compact mode) support:
+
+               wof.sys (or wofadk.sys) is now automatically attached to the
+               target volume if needed.
+
+               Compact-mode extractions now work correctly with wofadk.sys on
+               older versions of Windows.
+
+               For compatibility with the Windows bootloader, the requested
+               compression format now is overridden on certain files.
+
+       Other minor bugfixes.
+
+Version 1.8.2:
+       This release primarily contains various minor bug fixes and
+       improvements, including:
+
+               Improved handling of deep directory structures.
+
+               Fixed a bug where on 32-bit systems, the library could enter an
+               infinite loop if a WIM file was malformed in a specific way.
+
+               Added a workaround for a case where libntfs-3g may report
+               duplicate streams in an NTFS file.
+
+               Windows symbolic links and junctions in mounted WIM images are
+               now automatically rewritten to be valid in the mounted location.
+
+               Reparse point fixes: correctly handle the "ReparseReserved"
+               field, and correctly handle "empty" (data-less) reparse points.
+
+               On Windows, wimlib now acquires SeManageVolumePrivilege, which
+               is needed to create externally backed files using the
+               "wofadk.sys" driver.
+
+               Improved validation of filenames.
+
+               Improved LZMS decompression speed.
+
+               The configure script now honors alternate pkg-config settings.
+
+               Links have been updated to point to the new website.
+
+       In addition, experimental support has been added for compressing
+       extracted files using System Compression on Windows 10.  This
+       functionality is available through the new '--compact' option to
+       'wimapply' and 'wimextract' as well as new library flags.
+
+Version 1.8.1:
+       Fixed a bug in the LZX decompressor: malicious input data could cause
+       out of bounds writes to memory (since wimlib v1.2.2).
+
+       The output of the 'wiminfo' command now consolidates various boolean
+       flags (such as "Relative path junction") into a single line.
+
+       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, it is now possible to do a "WIMBoot mode" extraction with
+       non-standalone WIMs such as delta WIMs.
+
+       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.
+
+       The way the "file count", "directory count", "total bytes", and "hard
+       link bytes" image statistics (stored in the WIM XML data) is calculated
+       has been slightly changed.
+
+       In mounted WIM images, the disk usage provided for each file (st_blocks)
+       is now the compressed size rather than the uncompressed size.
+
+       The performance of the NTFS-3g and Windows capture modes has been
+       slightly improved.
+
+       On UNIX-like systems, symbolic links whose targets contain the backslash
+       character are now handled correctly (losslessly).
+
+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.
 
-Version 1.6.3-BETA:
        'add' commands passed to wimupdate will now replace existing
        nondirectory files by default.  Use the --no-replace option to get the
        old behavior.
 
-       Improved compatibility with version 3584 WIM / ESD files.
+       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.
 
-       Improved extraction performance on Windows, especially for ESD files.
+       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.
 
-       Added support for "WIMBoot".  On any platform, you can now capture a WIM
-       as WIMBoot-compatible.  In addition, on Windows, 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 for more information.
+       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.
 
-       The shared library version has been bumped up; however, there are only a
-       few incompatibilities:
+       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 no code changes are
-                 necessary if a NULL configuration was being used.
+                 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.
 
-       Made some documentation improvements.
-
 Version 1.6.2:
        Case-insensitive comparisons of strings (e.g. filenames) containing
        UTF-16 codepoints above 32767 are now done correctly.