1XDelta NEWS -- history of user-visible changes. -*- Text -*-
2$Date: Sun, 24 Feb 2002 11:31:12 -0800 $
3$ReleaseVersion: 1.1.4 $
4
5Please send bug reports to xdelta-bugs@XCF.Berkeley.EDU.  See the file
6`README' for a description of how to report bugs.
7
8
9** Changes since version 1.1.3
10
11* Add an implementation of xdp_generator_free() for users of the
12  libxdelta API.  Previously there were no such users of the 1.x API,
13  but Elliot Lee <sopwith@redhat.com> has written a program for
14  providing delta operations on RPM files.  See http://@@@
15
16* The man page now documents return values.
17
18** Changes since version 1.1.2
19
20* Correct error message format for the case when gzread fails trying
21  to automatically decompress a corrupted GZIP file.  The situation
22  itself--corrupt GZIP files--should be dealt with the -p (--pristine)
23  option, which disables GZIP file recognition.  Reported by Ben
24  Escoto.
25
26* Apply a patch from Klaus Dittrich for building on HPUX with the
27  native compiler.  There is now a script called "contrib/build_hpux".
28
29
30** Changes since version 1.1.1
31
32* This code release is a distant fork of the 2.0 release.  It will
33  hopefully be replaced.
34
35* When 'patch' supplies its default TO file name recorded in the
36  delta, it still generates a unique file name to avoid overwriting an
37  existing copy.  Use the 'xdelta info' command to see what file names
38  are contained in the delta.
39
40* The code for writing patches to stdout was broken in the case where
41  gzip compression is used.  Writing patches to stdout has therefore
42  been disabled.  The problem is a limitation in the gzdopen/gzwrite
43  functions provided by zlib--you cannot determine how many bytes have
44  been written to the file descriptor without dup-ing the FD
45  beforehand and then lseek-ing afterwards, which does not work
46  correctly if the output file is not seekable.
47
48* By default, Xdelta uses a hard-coded 16 byte block size.  If you're
49  working with large files, try #undef XDELTA_HARDCODE_SIZE in
50  xdelta.h then use -s BLOCKSIZE (--blocksize=BLOCKSIZE), which should
51  be a power of 2.
52
53* New test program in the 'test' subdirectory, which runs comparisons
54  against "diff --rcs -a" and also verifies the "xdelta patch"
55  command.
56
57* Incorporate DJGPP patches from Richard Dawe <richdawe@bigfoot.com>.
58  You can find his versions directly at:
59
60      ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/xdlt112b.zip
61      ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/xdlt112s.zip
62
63* Updated xdelta(1) man page.
64
65* Updated autoconf (2.50), automake (1.4-p4), libtool (1.4) scripts,
66  which includes updated config.guess and config.sub scripts.
67
68* Correct some backward compatibility issues: strcmp() was not being
69  tested == 0 for formats older than 1.0.4.
70
71* Update GLIB version requirement, now 1.2.8.
72
73* We really need support for 64bit file sizes...  perhaps the next
74  version?
75
76
77** Changes since version 1.1.0
78
79* No one was were able to build the 1.1.0 release because it depended
80  on a version of glib which will not be distributed for some time.
81  This version backs out those dependencies and now requires
82  glib-1.2.1.
83
84
85** Changes since version 1.0.6
86
87* The 64M limit on file sizes has been lifted.  File lengths are now
88  limited by the size of a 32-bit integer.
89
90* The internal data structures were changed and some of the
91  experimental bits of the interface have been moved out of libxdelta,
92  resulting in a simpler interface.  Old patch files are still
93  supported.
94
95
96** Changes since version 1.0.5
97
98* There are 8 bytes of space in the patch format's header that are
99  reserved for future use.  They are not currently used, but were also
100  not being initialized, making it possible for two deltas produced in
101  the same manner to differ.  This was exposed by comparing deltas
102  produced between the same files on Windows and Linux.  With this
103  patch, the results should be identical.
104
105
106** Changes since version 1.0.4
107
108* The code now compiles natively under Windows.  I used MS VC++ 5.0.
109  It depends on glib and zlib, but I don't feel like documenting
110  the build process yet.  I have had some trouble with the zlib DLLs
111  and had to build my own, so you can't build it yourself yet.  There
112  is a pre-built version at
113
114     ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta-1.0.5.win32.zip
115
116* Many changes required to keep Xdelta working with PRCS 2.  Mostly
117  this involved keeping up to date with some code that is shared
118  between the two.  All the shared code is now in the "libedsio"
119  subdirectory, which stands for "Error Delivery and Serialized IO".
120
121
122** Changes since version 1.0.3
123
124* Slight change in file format to improve detection of and error
125  messages regarding corrupt deltas (specifically, those left behing
126  when an xdelta process is killed while computing a delta).  This
127  means 1.0.0-1.0.3 will not read these new deltas, they will report a
128  bad magic number.
129
130* Improve several error messages related to corrupt deltas.
131
132
133** Changes since version 1.0.2
134
135* Fix a few bugs, especially one related to the implementation of -m,
136  and a couple more which were shaken out by testing on a pair of
137  emacs releases (~55M each).  These changes only affect the xdelta
138  application, the library is unchanged.
139
140* Add a new command `xdelta info' that lists information about a
141  delta, for example:
142
143    $ xdelta info some.patch
144    xdelta: version 1.0.3 found patch version 1.0 in some.patch
145    xdelta: patch contents are compressed
146    xdelta: patch from:          from
147    xdelta: patch from length:   53309440
148    xdelta: patch from md5:      c0ddcb6904d40da7cf1eae5e6bdbbc01
149    xdelta: patch to:            to
150    xdelta: patch to length:     55377920
151    xdelta: patch to md5:        00b3dd4d1a9b450bc5b8991b183013fb
152    xdelta: patch insert length: 2436426
153    xdelta: patch inst count:    253649
154
155
156** Changes since version 1.0.1
157
158* Fix minor typos, and build improvements.  There is now a gtk-style
159  'xdelta-config' program and autoconf macro to locate the library.
160
161
162** Changes since version 1.0.0
163
164* Fix incorrect usage report in --help output for the patch command.
165
166* Abort when directories are specified, there is no recursive mode.
167
168* Now requires glib-1.1.5.
169
170* The new ``pristine'' option (-p, --pristine) disables
171  automatic uncompression of compressed input data, and is for use
172  when data integrity is being externally verified.  This enables a
173  tool written by Manish Singh (yosh@gimp.org) to compute deltas
174  between the Debian dpkg utility's .deb format.
175
176* A draft paper describing its algorithms, rational, advanced
177  features, and future work is now available at
178  ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta.ps.
179
180** Changes since version 0.24
181
182* This version is a complete rewrite, and removes some of the features
183  available in version 0.  Featuring:
184
185  - A completely new and much improved library interface.  This code is
186    a complete rewrite.
187  - An optimized implementation of the XDelta algorithm.
188  - A drastic memory reduction.
189  - The library stream-processes files where possible and uses a page-
190    based interface when seeking is required (allowing the application
191    to run in bounded memory on large files).
192  - There is now a little documentation.  A man page and the
193    beginnings of texinfo documentation.
194  - Includes several advanced features used by PRCS version 2, see the
195    documentation for more information.
196  - Includes a minimal implementation of the Rsync algorithm, also used
197    by PRCS version 2.
198  - Uses an abstract file handle interface, the library has very few
199    system dependencies.  This allows the library client to compute
200    MD5 checksums in a single-pass as XDelta reads files, use pre-
201    computed checksums, or disable checksum verification entirely.
202  - Compression and file-unarchival have been removed from the library,
203    these features are orthogonal.
204
205  At the application level:
206
207  - GDBM archive experiment has been removed.  This functionality is
208    implemented directly in PRCS version 2 using the present library
209    interface.
210  - Base 64 encoding support has been removed for technical reasons.
211  - Can no longer accept patches from stdin, due to the same
212    technical reasons (the patch instruction index is stored at the
213    end of the file, requiring seeking).
214  - Automatic detection and un-archival of RPM and dpkg file formats
215    has been removed.  Automatic uncompression of gzipped files is
216    still supported.
217  - The GIMP plugin is no longer supported.
218