]> wimlib.net Git - wimlib/blobdiff - NEWS
Update NEWS
[wimlib] / NEWS
diff --git a/NEWS b/NEWS
index 8c54a2376c1614e6e3ae1136c9d43d262aca8571..f38fe093b7942fa98e103b0b29d482cfc2a56ea9 100644 (file)
--- a/NEWS
+++ b/NEWS
-Only the most important changes more recent than version 0.6 are noted here.
+Version 1.8.3-BETA:
+       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.  Users of the (UNIX-only) NTFS-3g based WIM
+       extraction support should not use wimlib v1.8.1 or wimlib v1.8.2.
 
-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.
+       Made some small improvements to the compression algorithms.
 
-       The shared library version has been bumped up; however, there are only
-       a few incompatibilities:
+       Improved handling of WIM XML data and added two new API functions:
+       wimlib_get_image_property() and wimlib_set_image_property().
+
+       Added support for (unsafe) in-place compaction of WIM files.
+
+       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.
+
+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.
+
+       '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 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().
 
-               Otherwise the API and ABI is the same.
+               - 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