]> wimlib.net Git - wimlib/blob - NEWS
inode_fixup.h: remove unnecessary #include
[wimlib] / NEWS
1 Version 1.7.4-BETA:
2         Extracting files to a Windows PE in-memory filesystem no longer fails if
3         the target files do not yet exist.  (Broken since v1.7.0, but actually a
4         result of a Microsoft bug.)
5
6         More fixes for wimlib on non-x86 architectures such as ARM.
7
8         Slight performance improvements in compression and decompression.
9
10 Version 1.7.3:
11         Fix for very slow export from solid WIM / ESD files.
12
13         Fix for LZX and LZMS algorithms on non-x86 architectures, such as ARM.
14
15         New progress message: WIMLIB_PROGRESS_MSG_HANDLE_ERROR.  Applications
16         may use this to treat some types of errors as non-fatal.
17
18         The library now permits making in-memory changes to a WIMStruct backed
19         by a read-only WIM file.
20
21         Fixes for "WIMBoot" extraction mode (Windows only):
22
23                 When not using the WOF driver, extraction no longer fails if the
24                 disk containing the WIM file has too many partitions.
25
26                 When matching patterns in [PrepopulateList], all hard links of
27                 each file are now considered.
28
29                 The system registry files are now automatically treated as being
30                 in [PrepopulateList].
31
32                 Added a hack to try to work around an intermittent bug in
33                 Microsoft's WOF (Windows Overlay Filesystem) driver.
34
35 Version 1.7.2:
36         Made more improvements to the XPRESS, LZX, and LZMS compressors.
37
38         A number of improvements to the Windows port:
39
40                 Fixes for setting short filenames.
41
42                 Faster "WIMBoot" extraction.
43
44                 Updated and slimmed down the dependent DLLs.
45
46                 ACL inheritence bits are now restored.
47
48                 Mandatory integrity labels are now backed up and restored.
49
50         Added a workaround for an issue where in rare cases, wimlib could create
51         a compressed data stream that could not be read correctly by Windows
52         after an extraction in "WIMBoot" mode.
53
54         Library changes:
55                 Added file count progress data for
56                 WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and
57                 WIMLIB_PROGRESS_MSG_EXTRACT_METADATA.
58
59                 Added support for testing file exclusions via the user-provided
60                 progress function.
61
62                 Some documentation improvements.
63
64         Made some clarifications to the license text in the COPYING file.
65
66 Version 1.7.1:
67         Made more improvements to the XPRESS, LZX, and LZMS compressors.
68
69         The default compression mode for wimcapture is now LZX compression in
70         its default mode, which is the same as '--compress=maximum'.
71
72         You can now specify an optional integer compression level to the
73         '--compress' option; e.g. '--compress=lzx:75'.
74
75         Made a minor change to the LZMS compressor and decompressor to fix an
76         incompatibility with the Microsoft implementation.  In the unlikely
77         event that you created an LZMS-compressed WIM with wimlib v1.7.0 or
78         earlier and a checksum error is reported when extracting files from it
79         with wimlib v1.7.1, decompress it with v1.7.0 then compress it with
80         v1.7.1.
81
82         Added 'verify' subcommand to wimlib-imagex.
83
84         Notable library changes:
85
86                 Custom compressor parameters have been removed from the library
87                 in favor of the simpler level-based API.
88
89                 Decompressor parameters have been removed entirely.
90
91                 Library users can now specify a custom file for warning and
92                 error messages to be sent to, rather than the default of
93                 standard error.
94
95                 New progress messages:
96                 WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE,
97                 WIMLIB_PROGRESS_MSG_EXTRACT_METADATA.
98
99                 New function: wimlib_verify_wim().
100
101 Version 1.7.0:
102         Improved compression, decompression, and extraction performance.
103
104         Improved compatibility with version 3584 WIM / ESD files:
105             - Add support for reading and writing multiple solid blocks per
106               archive, which WIMGAPI/DISM can create when appending an image.
107             - Correctly create solid blocks larger than 4 GiB.
108
109         'add' commands passed to wimupdate will now replace existing
110         nondirectory files by default.  Use the --no-replace option to get the
111         old behavior.
112
113         The license for the library now contains an exception that allows using
114         it under the LGPL.  See the COPYING file for details.
115
116         In reparse-point fixup mode (the default for capture), symbolic links
117         and junctions that point outside the tree being captured are no longer
118         excluded from capture.
119
120         Added support for "WIMBoot" capture and extraction.  See the
121         documentation for the new '--wimboot' option to wimcapture and wimapply
122         for more information.
123
124         On UNIX-like systems, you can now backup and restore device nodes, named
125         pipes, and sockets.  In addition, 32-bit user and group IDs are now
126         supported.
127
128         The way that UNIX data is stored in WIM files has been changed.  If you
129         captured any WIMs with the --unix-data option, to upgrade them you'll
130         need to apply them with --unix-data using wimlib-imagex v1.6.2, then
131         re-capture them with --unix-data using this version.
132
133         wimlib now understands tagged metadata items, such as object IDs, that
134         can be stored in WIM directory entries.
135
136         Removed the --hardlink and --symlink options to wimapply, since I don't
137         think they are too useful and they got in the way of improving the code.
138
139         WIMs will now retain their GUIDs when rebuilt (e.g. with wimoptimize).
140
141         The 'mkwinpeimg' script now supports writing the ISO image to standard
142         output.
143
144         The <ARCH> element in WIM XML data is now exported correctly.
145
146         On Windows, sparse file attributes are no longer set on extracted files.
147         Oddly enough, this actually saves disk space in some cases.
148
149         On UNIX, configuring with --disable-xattr or --enable-xattr is no longer
150         supported.  Mounting WIM images now always requires extended attribute
151         support.  Use --without-fuse to disable support for mounting WIM images;
152         this will also disable the need for extended attribute support.
153
154         Configuring with --enable-ssse3-sha1 now works correctly.
155
156         The shared library version has been bumped up.  The main
157         incompatibilities are:
158
159                 - WIMLIB_COMPRESSION_TYPE_XPRESS is now 1 and
160                   WIMLIB_COMPRESSION_TYPE_LZX is now 2 (so it's the same as
161                   WIMGAPI).
162
163                 - User-provided progress functions are now registered using a
164                   separate function, wimlib_register_progress_function().  The
165                   'progress_func' argument to many functions no longer exists.
166
167                 - The return value from user-provided progress functions is now
168                   significant.
169
170                 - A context argument has been added to the prototype of
171                   user-provided progress functions.
172
173                 - 'struct wimlib_capture_config' has been removed.  The library
174                   now takes the path to the configuration file directly.  This
175                   affects wimlib_add_image(), wimlib_add_image_multisource(),
176                   and wimlib_update_image().  However, a NULL value passed in
177                   the argument retains the same meaning.
178
179                 - Removed deprecated functions: some (de)compression functions,
180                   wimlib_extract_files(), and wimlib_print_metadata().
181
182                 - Removed extraction flags: WIMLIB_EXTRACT_FLAG_HARDLINK,
183                   WIMLIB_EXTRACT_FLAG_SYMLINK, WIMLIB_EXTRACT_FLAG_FILE_ORDER,
184                   and WIMLIB_EXTRACT_FLAG_SEQUENTIAL.
185
186                 - Removed some progress messages:
187                   WIMLIB_PROGRESS_MSG_APPLY_TIMESTAMPS,
188                   WIMLIB_PROGRESS_MSG_EXTRACT_DIR_STRUCTURE_BEGIN,
189                   WIMLIB_PROGRESS_MSG_EXTRACT_DIR_STRUCTURE_END.  Numbering
190                   stays the same.
191
192                 - Removed some error codes.  Numbering stays the same.
193
194                 - Replaced WIMLIB_UNMOUNT_FLAG_LAZY with
195                   WIMLIB_UNMOUNT_FLAG_FORCE.
196
197                 - WIM paths passed to progress functions now have a leading
198                   slash.
199
200 Version 1.6.2:
201         Case-insensitive comparisons of strings (e.g. filenames) containing
202         UTF-16 codepoints above 32767 are now done correctly.
203
204         Fixed build failure on Mac OS X.
205
206         wimunmount now provides the '--new-image' option to cause changes to a
207         read-write mounted image to be committed as a new image rather than as
208         an update of the mounted image.  (The corresponding new library flag is
209         WIMLIB_UNMOUNT_FLAG_NEW_IMAGE.)
210
211         The LZMS ("recovery") compression chunk size, or "dictionary size", may
212         now be up to 1 GiB (1,073,741,824 bytes).
213
214         The performance of LZX ("maximum") and LZMS ("recovery") compression
215         with large chunk sizes has been slightly improved.
216
217 Version 1.6.1:
218         Stored files with size exactly 4 GiB (4,294,967,296 bytes) are now
219         decompressed correctly.
220
221         Fixed a bug in the LZX compressor introduced in v1.5.3.  The bug
222         occurred in an unlikely case, and due to validity checks it did not
223         affect successfully created archives.
224
225         Fixed a minor compatibility issue with the LZMS compressor and
226         decompressor.  This is *not* the default compression type and was only
227         introduced in v1.6.0.  In the unlikely event that you created an
228         LZMS-compressed WIM with v1.6.0 and a checksum error is reported when
229         applying it with v1.6.1, decompress it with v1.6.0 then compress it with
230         v1.6.1.
231
232         Memory usage for LZMS and LZX compression has been decreased.
233
234         wimextract now allows wildcard characters in paths specified on the
235         command line.  Also, the '--strict-wildcards' option has been removed
236         and replaced with the inverse option '--nullglob'.  See the
237         documentation for wimextract for more details and changes.
238
239         The wimlib_extract_files() function is now considered deprecated in
240         favor of wimlib_extract_paths().
241
242         Fixed more permissions problems when extracting files on Windows.
243
244         A new '--no-attributes' option has been added to wimapply and
245         wimextract.  The library flag is WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES.
246
247         The default chunk size is now set correctly when changing the
248         compression type of a WIM, for example with 'wimoptimize'.
249
250         The '--metadata' option to wiminfo has been replaced with the
251         '--detailed' option to wimdir.
252
253         In relevant wimlib-imagex commands, '--solid' may now be used as an
254         alias for '--pack-streams'.
255
256 Version 1.6.0:
257         Support for extracting and updating the new version 3584 WIMs has been
258         added.  These WIMs typically pack many streams ("files") together into a
259         single compressed resource, thereby saving space.  This degrades the
260         performance of random access (such as that which occurs on a mounted
261         image), but optimizations have been implemented for extraction.  These
262         new WIM files also typically use a new compression format (LZMS), which
263         is similar to LZMA and can offer a better compression ratio than LZX.
264         These new WIM files can be created using `wimcapture' with
265         the '--compress=lzms --pack-streams' options.  Note: this new WIM format
266         is used by the Windows 8 web downloader, but important segments of the
267         raw '.esd' files are encrypted, so wimlib will not be able to extract
268         such files until they are first decrypted.
269
270         wimlib now supports extracting files and directories from a WIM image
271         based on a "listfile" that itself contains the list of paths to extract.
272         For `wimextract', the syntax is to specify @LISTFILE instead of a PATH,
273         and for the library itself, the new APIs are wimlib_extract_pathlist()
274         and wimlib_extract_paths().  Path globs containing wildcard characters
275         are supported.
276
277         For searching WIM files, wimlib now has configurable case sensitivity.
278         The default on Windows is still case-insensitive and the default on
279         UNIX-like systems is still case-sensitive, but this can be overridden
280         on either platform through flags to wimlib_global_init().  For
281         `wimlib-imagex', the environmental variable WIMLIB_IMAGEX_IGNORE_CASE
282         can be set to 1 or 0 for case-insensitive or case-sensitive behavior,
283         respectively.
284
285         Support for compression chunk sizes greater than the default of 32768
286         bytes has been added.  A larger chunk size typically results in a better
287         compression ratio.  However, the MS implementation is seemingly not
288         compatible with all chunk sizes, especially for LZX compression, so the
289         defaults remain unchanged, with the exception of the new LZMS-compressed
290         WIMs, which use a larger chunk size by default.
291
292         The compression/decompression API exported by wimlib has been changed.
293         Now one set of functions handles all supported compression formats.
294
295         `wimcapture' and `wimappend' will now display the progress of scanning
296         the directory tree to capture, in addition to the progress of writing
297         data to the WIM.  The '--verbose' option no longer does anything.  The
298         library API change for this is the addition of several members to
299         `struct wimlib_progress_info_scan' available to progress callbacks.
300
301         `mkwinpeimg' now correctly handles the '--start-script' option when the
302         start script is not in the working directory.
303
304         Sequential extraction, previously requested by using
305         WIMLIB_EXTRACT_FLAG_SEQUENTIAL, is now the default.
306         WIMLIB_EXTRACT_FLAG_FILE_ORDER can be used to get the old default
307         behavior (extract in file order).
308
309 Version 1.5.3:
310         The new LZX compressor added in v1.5.2 has been improved and is now
311         enabled by default, except when `wimcapture' or `wimappend' is run
312         *without* the '--compress' option, in which case the faster LZX
313         compressor is used (the same as before).  This behavior is reasonably
314         consistent with ImageX which actually uses "fast" (XPRESS) compression
315         by default.  In those cases, use '--compress=maximum' to explicitly
316         capture a WIM image using the new (slower but better) LZX compressor.
317
318         The '--compress-slow' option still exists to `wimlib-imagex optimize',
319         but its new behavior is to tweak the new LZX compressor even more to
320         produce an even better compression ratio at the cost of more time spent
321         compressing.
322
323         `wimlib-imagex optimize' now supports the '--compress=TYPE' option,
324         which recompresses the WIM file using the specified compression TYPE.
325         The new library API function used for this is
326         wimlib_set_output_compression_type().
327
328         Added the wimlib_get_xml_data() function to allow library clients to
329         easily retrieve the raw XML data from a WIM file if needed.
330
331         Fixed a bug that could cause an error code to be incorrectly returned
332         when writing XML data containing a <WINDOWS> element.
333
334         Mounted WIM images will now correctly show the default file stream even
335         if appears in the alternate data stream entries of the corresponding WIM
336         directory entry.
337
338 Version 1.5.2:
339         Added a new experimental LZX compressor which can be enabled by passing
340         '--compress-slow' to `wimlib-imagex capture' or `wimlib-imagex
341         optimize'.  (The latter is only applicable if the WIM is already
342         LZX-compressed and the '--recompress' option is also given.)  The
343         experimental compressor is much slower but compresses the data slightly
344         more --- currently usually to within a fraction of a percent of the
345         results from WIMGAPI/ImageX.
346
347         A workaround has been added for compatibility with versions of WinPE
348         that interpret alternate data stream entries in the boot WIM
349         incorrectly.
350
351         An alignment bug that caused a crash in the LZX decompressor on some
352         builds was fixed.
353
354         wimlib now attempts to clear the WIM_HDR_FLAG_WRITE_IN_PROGRESS flag in
355         the WIM header when restoring the previous state of a WIM it failed to
356         successfully update.
357
358         Added a workaround to avoid an access denied error on Windows when
359         replacing a WIM file that another process has opened.
360
361 Version 1.5.1:
362         wimlib can now open WinPE WIMs from WAIK v2.1, which had a quirk that
363         needed to be handled.
364
365         A bug in the interpretation of negative IMAGE indices in the
366         --update-of=[WIMFILE:]IMAGE option to `wimlib-imagex capture' and
367         `wimlib-imagex append' has been fixed.
368
369         A workaround has been added to successfully apply security descriptors
370         with empty DACLs when the NTFS-3g apply mode is being used with NTFS-3g
371         2013.1.13 or earlier.
372
373         `wimlib-imagex capture' can now accept the '--delta-from' option
374         multiple times.
375
376 Version 1.5.0:
377         Added support for "pipable" WIMs.  Pipable WIMs allow capturing images
378         to standard output and applying images from standard input, but they are
379         not compatible with Microsoft's software and are not created by default.
380         See the documentation for --pipable flag of `wimlib-imagex capture' for
381         more information.
382
383         To better support incremental backups, added support for declaring an
384         image as a modified form of another image.  See the documentation for
385         the '--update-of' option of `wimlib-imagex append' and `wimlib-imagex
386         capture'.
387
388         Added supported for "delta" WIMs.  See the documentation for the
389         '--delta-from' option of `wimlib-imagex capture'.
390
391         The library support for managing split WIMs has been changed to support
392         other arrangements, such as delta WIMs, and be easier to use.  This
393         change is visible in `wimlib-imagex', which also can now accept the
394         '--ref' option multiple times, and also now supports "delta" WIMs as
395         mentioned above.
396
397         wimlib now preserves WIM integrity tables by default, even if
398         WIMLIB_WRITE_FLAG_CHECK_INTEGRITY is not specified.  This changes the
399         behavior of `wimlib-imagex' whenever the WIM being operated on contains
400         an integrity table and the '--check' option is not specified.
401
402         `wimlib-imagex capture' now creates LZX-compressed WIMs by default
403         (when --compress is not specified).  This provides the best compression
404         ratio by default, which is usually what is desired, at a cost of some
405         speed.
406
407         `wimlib-imagex' now supports being invoked as wimCOMMAND, where COMMAND
408         is the command as in `wimlib-imagex COMMAND'; for example, it can be
409         invoked as `wimapply' as an alternative to `wimlib-imagex apply'.  The
410         appropriate hard links are created in UNIX installations of
411         `wimlib-imagex', while for the Windows distribution of `wimlib-imagex',
412         batch files that emulate this behavior are generated.
413
414         Security descriptors are now extracted correctly on Windows.
415
416         Fixed archiving DOS names in NTFS-3g capture mode.
417
418         The extraction code has been rewritten and it will now be easier to
419         support new features on all supported backends (currently Win32, UNIX,
420         and NTFS-3g).  For example, hard-linked extraction mode (--hardlink) is
421         now supported on all backends, not just UNIX.
422
423         `mkwinpeimg' now supports grabbing files from the WAIK supplement rather
424         than the WAIK itself.
425
426         wimlib_global_init() now, by default, attempts to acquire additional
427         privileges on Windows, so library clients need not do this.
428
429         This update bumps the shared library version number up to 9, since it is
430         not binary compatibible with previous releases.
431
432 Version 1.4.2:
433         Fixed bug in `wimlib-imagex export' that made it impossible to export an
434         image from a WIM that is readonly at the filesystem level.
435
436         Return error code rather than segfaulting when trying to list files from
437         a non-first part of a split WIM.
438
439         Joining a WIM will now preserve the RP_FIX and READONLY flags.
440
441 Version 1.4.1:
442         On Windows, paths given to wimlib-imagex are now treated case
443         insensitively.
444
445         Improved behavior regarding invalid filenames; in particular, on
446         Windows, wimlib-imagex will, when extracting, now omit (with an option
447         to override this default) filenames differing only in case, or filenames
448         containing characters not valid on Windows.
449
450         On Windows, wimlib now supports capturing and extracting long paths
451         (longer than the so-called MAX_PATH).
452
453         On Windows, `wimlib-imagex update' now acquires proper privileges when
454         running as an Administrator.
455
456         `wimlib-imagex update' will now complain if no image is specified when
457         trying to update a multi-image WIM.
458
459         `wimlib-imagex update' now supports specifying a single update command
460         directly on the command line using the --command option.
461
462         wimlib-imagex will now choose different units for progress messages,
463         depending on the amount of data that needs to be processed.
464
465         `wimlib-imagex append' will now generate a unique WIM image name if no
466         name is specified and the defaulted name already exists in the WIM.
467
468         wimlib now allows you to create unnamed WIM images, which can then only
469         be referred to by index.
470
471         wimlib now allows you to explicitly declare you want write access to a
472         WIM by providing the WIMLIB_OPEN_FLAG_WRITE_ACCESS flag to
473         wimlib_open_wim().
474
475         wimlib now respects the WIM_HDR_FLAG_READONLY flag when set in the WIM
476         header.
477
478         Progress callbacks have been added to wimlib's wimlib_update_image()
479         function.
480
481         Added wimlib_get_wim_info(), wimlib_set_wim_info(),
482         wimlib_iterate_dir_tree(), and wimlib_iterate_lookup_table() functions
483         to the library.
484
485         NTFS-3g capture now only warns about two conditions previously treated
486         as errors.
487
488         Fixed a couple issues with using wimlib-imagex on UDF filesystems on
489         Windows.
490
491         wimlib now correctly detects and returns an error when reading a WIM
492         image with a cyclic directory structure.  (Fun fact: such a WIM will
493         crash Microsoft's software.)
494
495 Version 1.4.0:
496         Added new "extract" and "update" subcommands to wimlib-imagex, along
497         with associated APIs in the library.  These commands are intended mainly
498         for Windows use but can be used on UNIX as well.
499
500         Many documentation improvements.
501
502         Fixed a bug in the Windows build where relative symbolic links were not
503         captured in reparse-point fixup mode.
504
505         Fixed a bug in the Windows build where file handles were left open to
506         the WIM file, causing `wimlib_imagex optimize' to fail in some cases.
507
508         Fixed a bug in the Windows build of wimlib-imagex where globbing
509         split-WIM parts could cause the program to crash.
510
511         Fixed a bug where the creation time of WIM images would be shown instead
512         of the last modification time.
513
514         With the Windows build it is now possible to restore a WIM containing
515         symbolic links as a non-Administrator; however you will receive warnings
516         about not being able to extract the symbolic links.
517
518 Version 1.3.3:
519         Capturing a WIM image should now be significantly faster in most cases
520         due to improved use of the operating system's cache and avoiding reading
521         files twice whenever possible.
522
523         The Windows build should now work on Windows XP.
524
525         The Windows build now supports capturing and restoring hidden,
526         compressed, sparse, and encrypted files.
527
528         The Windows build now supports capturing and applying WIM images from
529         filesystems other than NTFS (with some reduced functionality).
530
531         The Windows build now extracts short names correctly.
532
533         Added support for "reparse-point" fixups (i.e. fixing up of symbolic
534         links).  See docs for --rpfix and --norpfix flags of `wimlib-imagex
535         capture' and `wimlib-imagex apply'.
536
537         The performance of splitting and joining WIMs should be slightly
538         improved.
539
540         The LZX and XPRESS compression and decompression functions are now
541         exported from the library.
542
543 Version 1.3.2:
544         Improvements and bugfixes for the Windows build.
545
546         Added --strict-acls options.
547
548         Fixed the way that wimlib determines the order of images in the WIM.
549
550 Version 1.3.1:
551         Since wimlib can now be used on Windows, wimlib's implementation of
552         ImageX has been renamed to wimlib-imagex to avoid confusion with
553         Microsoft's implementation of ImageX, which would have the same file
554         name ("imagex.exe").  If you really don't like this you can pass the
555         --with-imagex-progname option to `configure' to choose a different name,
556         or even simply rename the binary yourself (but the former way will
557         configure the man pages to use the chosen name).
558
559         Various bugs fixed in the Windows build.  Mainly to do with capturing
560         and restoring alternate data streams correctly in weird cases, and
561         requesting the correct privileges when opening files.  Also added the
562         --noacls options to wimlib-imagex capture, append, and apply.
563
564         Windows build again: FindFirstStreamW() and FindNextStreamW() are now
565         dynamically loaded, so this may make the library compatible with Windows
566         XP (however, there may still be other problems).
567
568 Version 1.3.0:
569         Added experimental support for native Windows builds.  Binaries can be
570         downloaded from the SourceForge page.
571
572         --source-list option added to `imagex capture' and `imagex append'.
573
574         Better support for different character encodings.
575
576 Version 1.2.6:
577         Storing UNIX file owners, groups, and modes in WIM images is now
578         possible using `imagex capture' with the --unix-data flag.
579
580         Minor bug fixes and documentation fixes.
581
582 Version 1.2.5:
583         NTFS capture: Fixed capturing duplicate reparse points.
584
585         NTFS capture: Capture first unnamed stream if there are more than one
586         (print warning instead of error).
587
588         Allow multiple test cases to execute concurrently (e.g. make -j2 check).
589
590 Version 1.2.4:
591         Added --arch switch to mkwinpeimg script to support getting AMD64 WinPE
592         from the WAIK.
593
594         Update to work with ntfs-3g version 2013.1.13.
595
596 Version 1.2.3:
597         Fixed truncating file to shorter but non-zero length on read-write
598         mounted WIM image.
599
600         Various code cleanups and minor documentation fixes.
601
602 Version 1.2.2:
603         LZX and XPRESS decompression have received some additional optimizations
604         and should now be even faster.  (Although, they were already pretty
605         fast--- much faster than typical I/O speeds.)
606
607         Fixed a bug introduced in v1.2.1 that would cause a directory tree
608         containing hard links to be captured incorrectly in some cases.
609
610 Version 1.2.1:
611         By default, unmounting a read-write mounted WIM with 'imagex unmount
612         --commit' will now change the WIM in-place without needing to write the
613         entire WIM again.  Use 'imagex unmount --commit --rebuild' to get the
614         old behavior.
615
616         'imagex unmount' no longer has a hard-coded limit of 10 minutes to wait
617         for a response from the daemon servicing the mounted WIM.  Instead,
618         every second 'imagex unmount' will check if the daemon is still alive,
619         and keep waiting if so, otherwise terminate with an error.
620
621         'imagex unmount --commit' on a read-write mounted WIM will now print
622         progress information regarding the writing of new or modified streams
623         the WIM, just like when capturing or appending a WIM.
624
625         A small change has been made to XPRESS compression and it should improve
626         the compression ratio slightly.
627
628         A change was made that may improve performance slightly when applying a
629         WIM image to a NTFS volume.
630
631         Microsoft has managed to introduce even more bugs into their software,
632         and now the WIMs for Windows 8 have incorrect (too low) reference counts
633         for some streams.  This is unsafe because such streams can be removed
634         when they are in actuality still referenced in the WIM (perhaps by a
635         different image).  wimlib will now work around this problem by fixing
636         the stream reference counts.  This is only done when wimlib_delete_image() is
637         called ('imagex delete') or when wimlib_mount_image() is called with
638         WIMLIB_MOUNT_FLAG_READWRITE ('imagex mountrw').  Please note that this
639         requires reading the metadata for all images in the WIM, so this will
640         make these operations noticably slower on WIMs with multiple images.
641
642         Various other bugfixes.
643
644 Version 1.2.0:
645         Appending images to a WIM is now be done by default without re-building
646         the whole WIM.  Use the --rebuild flag to get the old behavior (which
647         was to re-build the entire WIM when a new image is appended).
648
649         A new command `imagex optimize' is now available to manually re-build a
650         WIM that has wasted space due to repeated appends.
651
652         Progress information has been improved, and now arbitrary callback
653         functions can be used to show the progress of a WIM operation.
654
655         A possible bug with changing the bootable image of a WIM was fixed.
656
657         Some advisory locking is now done to prevent two processes from
658         modifying a WIM at the same time (but only in some cases).  For example,
659         you cannot mount two images from a WIM read-write at the same time.
660
661         Some functions have been reorganized:
662                 * wimlib_mount() renamed to wimlib_mount_image().
663                 * wimlib_unmount() renamed to wimlib_unmount_image().
664                 * wimlib_overwrite_xml_and_header() removed as
665                 wimlib_overwrite() suffices now.
666                 * wimlib_apply_image_to_ntfs_volume() removed as
667                 wimlib_extract_image() suffices now.
668                 * wimlib_add_image_from_ntfs_volume() removed as
669                 * wimlib_add_image() suffices now.
670
671         Previously, the soname of libwim.so has been 0.0.0, despite many
672         interface changes.  The soname is now updated to 1.0.0 and will now be
673         updated each release.
674
675 Version 1.1.0:
676         Resources will now be compressed using multiple threads by default.
677         (This applies to `imagex capture', `imagex append', and `imagex
678         export').
679
680         Some performance improvements in mounted WIMs.
681
682         More progress information is shown when capturing a WIM.
683
684 Version 1.0.4:
685         Lots of minor fixes, code cleanups, and some documentation updates.
686         Nothing in particular is really noteworthy.
687
688 Version 1.0.3:
689         LZX and XPRESS compression improvements.
690
691         Fixed calculation of Directory Count, File Count, Total Bytes, and Hard
692         Link Bytes of the WIM.
693
694 Version 1.0.2:
695         Fixed bug when capturing NTFS file with multiple named data streams.
696
697         Internally, we are now using inode structures, even though these don't
698         appear literally in the WIM file.  This simplifies some of the code
699         (mainly for WIM mounting) and likely fixed a few problems, although it
700         needs more testing.
701
702 Version 1.0.1:
703         Fixed problem when exporting images from XPRESS to LZX compressed WIM or
704         vice versa
705
706 Version 1.0.0:
707         Enough changes to call it version 1.0.0!
708
709         Capturing a WIM directly from a NTFS volume, and applying a WIM directly
710         to a NTFS volume, is now supported.
711
712         Hard links and symbolic links have much improved support.  They are
713         supported for WIM capture, WIM application, and mounted WIMs (you can
714         even make them on read-write mounted WIMs).
715
716         Alternate data streams are now supported on mounted WIMs through an
717         xattr or a Windows-style stream interface.  Also they are supported when
718         capturing a WIM from NTFS or applying a WIM to NTFS.
719
720         Split WIMs are better supported.  You may now apply an image directly
721         from a split WIM, mount an image from a split WIM read-only, or export
722         an image from a split WIM.
723
724         Using a capture configuration file is now supported (but not fully yet).
725
726         SHA1 message digests are checked in more places, so we can make sure
727         applied and captured data is correct.
728
729         Man pages have been updated and consolidated.
730
731 Version 0.7.2:
732         Fixed segfault when unmounting read-only WIM.
733
734 Version 0.7.1:
735         Support for joining and splitting WIMs.
736         Also, security data is now preserved by default.
737
738 Version 0.6.3:
739         Can now build with older gcc and system headers, like on CentOS 5.
740
741 Version 0.6.2:
742         Fixed bug that made it impossible to overwrite files in read-write
743         mount.
744
745 Version 0.6.1:
746         Write byte-order mark before WIM XML data.  (imagex.exe requires this to
747         be there.)