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