annotate src/bzip2-1.0.6/CHANGES @ 169:223a55898ab9 tip default

Add null config files
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 02 Mar 2020 14:03:47 +0000
parents 8a15ff55d9af
children
rev   line source
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