4d05e484f1645cca3639b429db3a9cb5205ac96d
[wimlib] / ChangeLog
1 4-22-2012       Eric Biggers    <ebiggers3@gmail.com>
2         * WIMLIB version 0.6.2
3         * extract_resource_to_staging_dir():  Fixed infinite loop and a couple
4         other issues
5         * util.c:  Added full_write() function to handle the case where write()
6         succeeds but returns a short count (which is supposed to be allowed.)
7         * read_xml_data(): Move call to xmlCleanupParser() to end, so that
8         libxml releases all allocated memory after writing the XML data.
9         * sha1.c, sha1.h:  Functions local to sha1.c now declared static in
10         sha1.c instead of extern in sha1.h.  Also adjusted indentation.
11         * sha1.c, sha1.h, configure.ac, src/Makefile.am:  Allow using SHA1
12         functions from libcrypto, part of OpenSSL.  Enabled by default if
13         detected. Note: The OpenSSL code is a little faster.
14         * sha1-ssse3.asm, sha1.c, configure.ac, src/Makefile.am:  Allow using
15         SSSE3-accelerated SHA1 block update code from Intel.  Give
16         --enable-ssse3-sha1 to configure to enable this.  This is currently even
17         faster than the OpenSSL code but doesn't work on all CPUs.
18         * create_staging_file(): Return -1 and set errno when out of memory.
19         * dentry_to_stbuf(): Fill in st_blocks field.
20         * Various files:  Minor fixes in comments.
21
22 4-16-2012       Eric Biggers    <ebiggers3@gmail.com>
23         * WIMLIB version 0.6.1
24         * write_xml_data():  Write byte order mark (0xfffe) before XML data.
25         Microsoft's imagex.exe cannot open a WIM without this marker, even
26         though Windows PE can boot from it.  Perhaps Microsoft's WIM driver
27         doesn't check the XML data, but imagex.exe does.
28         * finish_write(), wimlib_add_image(), wimlib_set_boot_idx():  Make the
29         boot metadata entry in the WIM header point to the metadata for the
30         bootable image (if there is one) rather than the first image.
31         * calculate_dentry_statistics(): Do not count the root directory as a
32         directory for the purposes of the <DIRCOUNT> XML element.
33         * write_metadata_resource():  Calculate SHA1 message digest of
34         uncompressed metadata resource to use as the hash value.
35         * wimlib_internal.h, wimlib.h, various other files: Some documentation
36         and coding style fixes
37
38 4-14-2012       Eric Biggers    <ebiggers3@gmail.com>
39         * WIMLIB version 0.6.0
40         * Many files: Most functions now return an 'int' error code instead of a boolean.  
41         * Many files: xmalloc() and xstrdup() have been gotten rid of, so that
42         the library can cleanly return an error code if memory is exhausted.  In
43         addition, wimlib can use a custom malloc() and free() by passing them to
44         wimlib_set_memory_allocator().
45         * Many files: Some functions now take an int `flags' parameter as a bitwise OR of
46         flags defined in wimlib.h, rather than one or more boolean parameters.
47         * Many files: Removed code dealing with security data and streams- wimlib didn't
48         actually anything with them anyway, and there are no plans to support
49         them.
50         * Many files: Moved some stuff from wimlib_internal.h to dentry.h, lookup_table.h,
51         and xml.h
52         * wim.c, wimlib.h: New wimlib_has_integrity_table() function in public API.
53         * xml.c, wim.c: Stricter checking to make sure every image has a name.
54         * wim.c, dentry.c: Fixed some memory leaks.
55         * extract.c: Fixed symlinks for extracting images.
56         * wimlib.h: Fixed and updated the documentation.
57
58 4-8-2012        Eric Biggers    <ebiggers3@gmail.com>
59         * WIMLIB version 0.5.0
60         * doc/Makefile.am, doc/Doxyfile, wimlib.h:  There is now documentation
61         for wimlib's API.  Every public function in wimlib.h is documented with
62         a Doxygen comment.  The documentation is not yet built or installed
63         automatically. Build it manually by running `doxygen' in the `doc'
64         directory.
65         * xpress-comp.c: Fixed "error" in XPRESS compression (M$'s software
66         expects magic symbol at end of compressed data).
67         * lz.c: Improved the performance of the LZX and XPRESS compressors, and
68         the size of the compressed output, by using a hash table to help find
69         matches, and by doing lazy evaluation of matches to find better matches,
70         like in zlib.  See lz.c.
71         * configure.ac, mount.c: It is now possible to pass `--without-fuse' to
72         the configuration script to build wimlib without libfuse, making the
73         wimlib_mount() and wimlib_unmount() functions unavailable.
74         * various files:  More functions now return failure if passed invalid
75         parameters rather than aborting with an assertion failure.
76         * wim.c:  A few functions such as wimlib_begin_read() are now internal
77         rather than part of the public API, in order to simplify the public API
78         slightly.
79         * configure.ac, m4/iconv.m4:  The configure script now checks for the
80         presence of the iconv() function rather than assuming it is available in
81         libc.
82         * configure.ac: Compression verification added to the configure script
83         and enabled by default (at least for now).  Use
84         `--disable-verify-compression' to disable this.
85         * README:  Added "PORTABILITY" section.
86         * resource.c: Removed unused get_wim_resource() and
87         extract_full_resource_to_fd() functions.
88         * mount.c: Testing with glibc 2.15 on x86 produced a weird error where
89         mq_getattr() returned a Function Not Implemented error.  To make
90         mounting still have a chance at working, the code now sets the message
91         queue size to 8192 if mq_getattr() doesn't work.
92
93 3-31-2012       Eric Biggers    <ebiggers3@gmail.com>
94         * WIMLIB version 0.4.8
95         * xpress-comp.c, xpress-decomp.c, xpress.h: Support for XPRESS
96         compression and decompression
97         * mkwinpeimg: Renamed `mkwinpeiso' to `mkwinpeimg', and made it support
98         making a bootable disk image or plain WIM file as well as a bootable
99         ISO.
100         * lzx-decomp.c, lzx-comp.c, huffman.c, decomp.c, comp.c, comp.h,
101         decomp.h: Factored some code out of lzx-decomp.c and lzx-comp.c into
102         huffman.c, decomp.c, comp.c, comp.h and decomp.h.
103         * mount.c: Increased timeout on imagex unmount to 600 seconds (need a
104         better solution for this!!)
105         * doc/imagex-*.1: Updated the documentation in various places
106
107 3-29-2012       Eric Biggers    <ebiggers3@gmail.com>
108         * WIMLIB version 0.4.7
109         * mount.c: Fixed bug that prevented read-write mounts from successfully
110             committing after existing files in the WIM were modified
111         * mount.c: Increased timeout on imagex unmount to 30 seconds
112
113 3-29-2012       Eric Biggers    <ebiggers3@gmail.com>
114         * WIMLIB version 0.4.6
115         * lzx-decomp.c: Fixed bug made LZX decompression not work on 32 bit
116         systems
117
118 3-25-2012       Eric Biggers    <ebiggers3@gmail.com>
119         versions 0.4 through 0.4.5
120         Rewrote the library.
121         - wimlib now uses GNU autoconf and builds a real shared library.
122         - Removed the `wiminfo', `wimxmlinfo', `updatewim', and
123           `wimextract' programs in favor of the `imagex' program
124         - Support for multi-image WIMs
125         - Support for the XML data using libxml2
126         - Support for integrity table
127         - Included SHA1 code from GNU coreutils
128         - Much more error checking.
129         - Library is more reusable
130         - Lookup table is now a hash table rather than a sorted array.
131         - Got rid of the wide to ascii and ascii to wide functions; really what
132           we want is functions that convert UTF-8 to UTF-16, and vice versa.
133           This was fairly easy to do using the POSIX-specified iconv() function.
134         - Rewrote lzx.c and moved it to lzx-decomp.c
135         - Added lzx-comp.c for LZX compression
136
137 12-31-2012      Carl Thijssen
138         version 0.2
139         Wrote the original library.