XDelta NEWS -- history of user-visible changes. -*- Text -*- $Date: Sun, 24 Feb 2002 11:31:12 -0800 $ $ReleaseVersion: 1.1.4 $ Please send bug reports to xdelta-bugs@XCF.Berkeley.EDU. See the file `README' for a description of how to report bugs. ** Changes since version 1.1.3 * Add an implementation of xdp_generator_free() for users of the libxdelta API. Previously there were no such users of the 1.x API, but Elliot Lee has written a program for providing delta operations on RPM files. See http://@@@ * The man page now documents return values. ** Changes since version 1.1.2 * Correct error message format for the case when gzread fails trying to automatically decompress a corrupted GZIP file. The situation itself--corrupt GZIP files--should be dealt with the -p (--pristine) option, which disables GZIP file recognition. Reported by Ben Escoto. * Apply a patch from Klaus Dittrich for building on HPUX with the native compiler. There is now a script called "contrib/build_hpux". ** Changes since version 1.1.1 * This code release is a distant fork of the 2.0 release. It will hopefully be replaced. * When 'patch' supplies its default TO file name recorded in the delta, it still generates a unique file name to avoid overwriting an existing copy. Use the 'xdelta info' command to see what file names are contained in the delta. * The code for writing patches to stdout was broken in the case where gzip compression is used. Writing patches to stdout has therefore been disabled. The problem is a limitation in the gzdopen/gzwrite functions provided by zlib--you cannot determine how many bytes have been written to the file descriptor without dup-ing the FD beforehand and then lseek-ing afterwards, which does not work correctly if the output file is not seekable. * By default, Xdelta uses a hard-coded 16 byte block size. If you're working with large files, try #undef XDELTA_HARDCODE_SIZE in xdelta.h then use -s BLOCKSIZE (--blocksize=BLOCKSIZE), which should be a power of 2. * New test program in the 'test' subdirectory, which runs comparisons against "diff --rcs -a" and also verifies the "xdelta patch" command. * Incorporate DJGPP patches from Richard Dawe . You can find his versions directly at: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/xdlt112b.zip ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/xdlt112s.zip * Updated xdelta(1) man page. * Updated autoconf (2.50), automake (1.4-p4), libtool (1.4) scripts, which includes updated config.guess and config.sub scripts. * Correct some backward compatibility issues: strcmp() was not being tested == 0 for formats older than 1.0.4. * Update GLIB version requirement, now 1.2.8. * We really need support for 64bit file sizes... perhaps the next version? ** Changes since version 1.1.0 * No one was were able to build the 1.1.0 release because it depended on a version of glib which will not be distributed for some time. This version backs out those dependencies and now requires glib-1.2.1. ** Changes since version 1.0.6 * The 64M limit on file sizes has been lifted. File lengths are now limited by the size of a 32-bit integer. * The internal data structures were changed and some of the experimental bits of the interface have been moved out of libxdelta, resulting in a simpler interface. Old patch files are still supported. ** Changes since version 1.0.5 * There are 8 bytes of space in the patch format's header that are reserved for future use. They are not currently used, but were also not being initialized, making it possible for two deltas produced in the same manner to differ. This was exposed by comparing deltas produced between the same files on Windows and Linux. With this patch, the results should be identical. ** Changes since version 1.0.4 * The code now compiles natively under Windows. I used MS VC++ 5.0. It depends on glib and zlib, but I don't feel like documenting the build process yet. I have had some trouble with the zlib DLLs and had to build my own, so you can't build it yourself yet. There is a pre-built version at ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta-1.0.5.win32.zip * Many changes required to keep Xdelta working with PRCS 2. Mostly this involved keeping up to date with some code that is shared between the two. All the shared code is now in the "libedsio" subdirectory, which stands for "Error Delivery and Serialized IO". ** Changes since version 1.0.3 * Slight change in file format to improve detection of and error messages regarding corrupt deltas (specifically, those left behing when an xdelta process is killed while computing a delta). This means 1.0.0-1.0.3 will not read these new deltas, they will report a bad magic number. * Improve several error messages related to corrupt deltas. ** Changes since version 1.0.2 * Fix a few bugs, especially one related to the implementation of -m, and a couple more which were shaken out by testing on a pair of emacs releases (~55M each). These changes only affect the xdelta application, the library is unchanged. * Add a new command `xdelta info' that lists information about a delta, for example: $ xdelta info some.patch xdelta: version 1.0.3 found patch version 1.0 in some.patch xdelta: patch contents are compressed xdelta: patch from: from xdelta: patch from length: 53309440 xdelta: patch from md5: c0ddcb6904d40da7cf1eae5e6bdbbc01 xdelta: patch to: to xdelta: patch to length: 55377920 xdelta: patch to md5: 00b3dd4d1a9b450bc5b8991b183013fb xdelta: patch insert length: 2436426 xdelta: patch inst count: 253649 ** Changes since version 1.0.1 * Fix minor typos, and build improvements. There is now a gtk-style 'xdelta-config' program and autoconf macro to locate the library. ** Changes since version 1.0.0 * Fix incorrect usage report in --help output for the patch command. * Abort when directories are specified, there is no recursive mode. * Now requires glib-1.1.5. * The new ``pristine'' option (-p, --pristine) disables automatic uncompression of compressed input data, and is for use when data integrity is being externally verified. This enables a tool written by Manish Singh (yosh@gimp.org) to compute deltas between the Debian dpkg utility's .deb format. * A draft paper describing its algorithms, rational, advanced features, and future work is now available at ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta.ps. ** Changes since version 0.24 * This version is a complete rewrite, and removes some of the features available in version 0. Featuring: - A completely new and much improved library interface. This code is a complete rewrite. - An optimized implementation of the XDelta algorithm. - A drastic memory reduction. - The library stream-processes files where possible and uses a page- based interface when seeking is required (allowing the application to run in bounded memory on large files). - There is now a little documentation. A man page and the beginnings of texinfo documentation. - Includes several advanced features used by PRCS version 2, see the documentation for more information. - Includes a minimal implementation of the Rsync algorithm, also used by PRCS version 2. - Uses an abstract file handle interface, the library has very few system dependencies. This allows the library client to compute MD5 checksums in a single-pass as XDelta reads files, use pre- computed checksums, or disable checksum verification entirely. - Compression and file-unarchival have been removed from the library, these features are orthogonal. At the application level: - GDBM archive experiment has been removed. This functionality is implemented directly in PRCS version 2 using the present library interface. - Base 64 encoding support has been removed for technical reasons. - Can no longer accept patches from stdin, due to the same technical reasons (the patch instruction index is stored at the end of the file, requiring seeking). - Automatic detection and un-archival of RPM and dpkg file formats has been removed. Automatic uncompression of gzipped files is still supported. - The GIMP plugin is no longer supported.