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