Fix kldstat option.
[dragonfly.git] / contrib / bzip2-1.0 / CHANGES
1
2
3 0.9.0
4 ~~~~~
5 First version.
6
7
8 0.9.0a
9 ~~~~~~
10 Removed 'ranlib' from Makefile, since most modern Unix-es 
11 don't need it, or even know about it.
12
13
14 0.9.0b
15 ~~~~~~
16 Fixed a problem with error reporting in bzip2.c.  This does not effect
17 the library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the
18 program proper) compress and decompress correctly, but give misleading
19 error messages (internal panics) when an I/O error occurs, instead of
20 reporting the problem correctly.  This shouldn't give any data loss
21 (as far as I can see), but is confusing.
22
23 Made the inline declarations disappear for non-GCC compilers.
24
25
26 0.9.0c
27 ~~~~~~
28 Fixed some problems in the library pertaining to some boundary cases.
29 This makes the library behave more correctly in those situations.  The
30 fixes apply only to features (calls and parameters) not used by
31 bzip2.c, so the non-fixedness of them in previous versions has no
32 effect on reliability of bzip2.c.
33
34 In bzlib.c:
35    * made zero-length BZ_FLUSH work correctly in bzCompress().
36    * fixed bzWrite/bzRead to ignore zero-length requests.
37    * fixed bzread to correctly handle read requests after EOF.
38    * wrong parameter order in call to bzDecompressInit in
39      bzBuffToBuffDecompress.  Fixed.
40
41 In compress.c:
42    * changed setting of nGroups in sendMTFValues() so as to 
43      do a bit better on small files.  This _does_ effect
44      bzip2.c.
45
46
47 0.9.5a
48 ~~~~~~
49 Major change: add a fallback sorting algorithm (blocksort.c)
50 to give reasonable behaviour even for very repetitive inputs.
51 Nuked --repetitive-best and --repetitive-fast since they are
52 no longer useful.
53
54 Minor changes: mostly a whole bunch of small changes/
55 bugfixes in the driver (bzip2.c).  Changes pertaining to the
56 user interface are:
57
58    allow decompression of symlink'd files to stdout
59    decompress/test files even without .bz2 extension
60    give more accurate error messages for I/O errors
61    when compressing/decompressing to stdout, don't catch control-C
62    read flags from BZIP2 and BZIP environment variables
63    decline to break hard links to a file unless forced with -f
64    allow -c flag even with no filenames
65    preserve file ownerships as far as possible
66    make -s -1 give the expected block size (100k)
67    add a flag -q --quiet to suppress nonessential warnings
68    stop decoding flags after --, so files beginning in - can be handled
69    resolved inconsistent naming: bzcat or bz2cat ?
70    bzip2 --help now returns 0
71
72 Programming-level changes are:
73
74    fixed syntax error in GET_LL4 for Borland C++ 5.02
75    let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
76    fix overshoot of mode-string end in bzopen_or_bzdopen
77    wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
78    close file handles under all error conditions
79    added minor mods so it compiles with DJGPP out of the box
80    fixed Makefile so it doesn't give problems with BSD make
81    fix uninitialised memory reads in dlltest.c
82
83 0.9.5b
84 ~~~~~~
85 Open stdin/stdout in binary mode for DJGPP.
86
87 0.9.5c
88 ~~~~~~
89 Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1
90 version could cause the sorted order to be wrong in some extremely
91 obscure cases.  Also changed setting of quadrant in blocksort.c.
92
93 0.9.5d
94 ~~~~~~
95 The only functional change is to make bzlibVersion() in the library
96 return the correct string.  This has no effect whatsoever on the
97 functioning of the bzip2 program or library.  Added a couple of casts
98 so the library compiles without warnings at level 3 in MS Visual
99 Studio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other
100 changes are minor documentation changes.
101
102 1.0
103 ~~~
104 Several minor bugfixes and enhancements:
105
106 * Large file support.  The library uses 64-bit counters to
107   count the volume of data passing through it.  bzip2.c 
108   is now compiled with -D_FILE_OFFSET_BITS=64 to get large
109   file support from the C library.  -v correctly prints out
110   file sizes greater than 4 gigabytes.  All these changes have
111   been made without assuming a 64-bit platform or a C compiler
112   which supports 64-bit ints, so, except for the C library
113   aspect, they are fully portable.
114
115 * Decompression robustness.  The library/program should be
116   robust to any corruption of compressed data, detecting and
117   handling _all_ corruption, instead of merely relying on
118   the CRCs.  What this means is that the program should 
119   never crash, given corrupted data, and the library should
120   always return BZ_DATA_ERROR.
121
122 * Fixed an obscure race-condition bug only ever observed on
123   Solaris, in which, if you were very unlucky and issued
124   control-C at exactly the wrong time, both input and output
125   files would be deleted.
126
127 * Don't run out of file handles on test/decompression when
128   large numbers of files have invalid magic numbers.
129
130 * Avoid library namespace pollution.  Prefix all exported 
131   symbols with BZ2_.
132
133 * Minor sorting enhancements from my DCC2000 paper.
134
135 * Advance the version number to 1.0, so as to counteract the
136   (false-in-this-case) impression some people have that programs 
137   with version numbers less than 1.0 are in some way, experimental,
138   pre-release versions.
139
140 * Create an initial Makefile-libbz2_so to build a shared library.
141   Yes, I know I should really use libtool et al ...
142
143 * Make the program exit with 2 instead of 0 when decompression
144   fails due to a bad magic number (ie, an invalid bzip2 header).
145   Also exit with 1 (as the manual claims :-) whenever a diagnostic
146   message would have been printed AND the corresponding operation 
147   is aborted, for example
148      bzip2: Output file xx already exists.
149   When a diagnostic message is printed but the operation is not 
150   aborted, for example
151      bzip2: Can't guess original name for wurble -- using wurble.out
152   then the exit value 0 is returned, unless some other problem is
153   also detected.
154
155   I think it corresponds more closely to what the manual claims now.
156
157
158 1.0.1
159 ~~~~~
160 * Modified dlltest.c so it uses the new BZ2_ naming scheme.
161 * Modified makefile-msc to fix minor build probs on Win2k.
162 * Updated README.COMPILATION.PROBLEMS.
163
164 There are no functionality changes or bug fixes relative to version
165 1.0.0.  This is just a documentation update + a fix for minor Win32
166 build problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is
167 utterly pointless.  Don't bother.
168
169
170 1.0.2
171 ~~~~~
172 A bug fix release, addressing various minor issues which have appeared
173 in the 18 or so months since 1.0.1 was released.  Most of the fixes
174 are to do with file-handling or documentation bugs.  To the best of my
175 knowledge, there have been no data-loss-causing bugs reported in the
176 compression/decompression engine of 1.0.0 or 1.0.1.
177
178 Note that this release does not improve the rather crude build system
179 for Unix platforms.  The general plan here is to autoconfiscate/
180 libtoolise 1.0.2 soon after release, and release the result as 1.1.0
181 or perhaps 1.2.0.  That, however, is still just a plan at this point.
182
183 Here are the changes in 1.0.2.  Bug-reporters and/or patch-senders in
184 parentheses.
185
186 * Fix an infinite segfault loop in 1.0.1 when a directory is
187   encountered in -f (force) mode.
188      (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt)
189
190 * Avoid double fclose() of output file on certain I/O error paths.
191      (Solar Designer)
192
193 * Don't fail with internal error 1007 when fed a long stream (> 48MB)
194   of byte 251.  Also print useful message suggesting that 1007s may be
195   caused by bad memory.
196      (noticed by Juan Pedro Vallejo, fixed by me)
197
198 * Fix uninitialised variable silly bug in demo prog dlltest.c.
199      (Jorj Bauer)
200
201 * Remove 512-MB limitation on recovered file size for bzip2recover
202   on selected platforms which support 64-bit ints.  At the moment
203   all GCC supported platforms, and Win32.
204      (me, Alson van der Meulen)
205
206 * Hard-code header byte values, to give correct operation on platforms
207   using EBCDIC as their native character set (IBM's OS/390).
208      (Leland Lucius)
209
210 * Copy file access times correctly.
211      (Marty Leisner)
212
213 * Add distclean and check targets to Makefile.
214      (Michael Carmack)
215
216 * Parameterise use of ar and ranlib in Makefile.  Also add $(LDFLAGS).
217      (Rich Ireland, Bo Thorsen)
218
219 * Pass -p (create parent dirs as needed) to mkdir during make install.
220      (Jeremy Fusco)
221
222 * Dereference symlinks when copying file permissions in -f mode.
223      (Volker Schmidt)
224
225 * Majorly simplify implementation of uInt64_qrm10.
226      (Bo Lindbergh)
227
228 * Check the input file still exists before deleting the output one,
229   when aborting in cleanUpAndFail().
230      (Joerg Prante, Robert Linden, Matthias Krings)
231
232 Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer
233 of bzip2:
234
235 * Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore.
236
237 * Spelling changes and minor enhancements in bzip2.1.
238
239 * Avoid race condition between creating the output file and setting its
240   interim permissions safely, by using fopen_output_safely().
241   No changes to bzip2recover since there is no issue with file
242   permissions there.
243
244 * do not print senseless report with -v when compressing an empty
245   file.
246
247 * bzcat -f works on non-bzip2 files.
248
249 * do not try to escape shell meta-characters on unix (the shell takes
250   care of these).
251
252 * added --fast and --best aliases for -1 -9 for gzip compatibility.
253
254
255 1.0.3 (15 Feb 05)
256 ~~~~~~~~~~~~~~~~~
257 Fixes some minor bugs since the last version, 1.0.2.
258
259 * Further robustification against corrupted compressed data.
260   There are currently no known bitstreams which can cause the
261   decompressor to crash, loop or access memory which does not
262   belong to it.  If you are using bzip2 or the library to 
263   decompress bitstreams from untrusted sources, an upgrade
264   to 1.0.3 is recommended.
265
266 * The documentation has been converted to XML, from which html
267   and pdf can be derived.
268
269 * Various minor bugs in the documentation have been fixed.
270
271 * Fixes for various compilation warnings with newer versions of
272   gcc, and on 64-bit platforms.
273
274 * The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2.
275   This has been fixed.