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