annotate src/bzip2-1.0.6/CHANGES @ 83:ae30d91d2ffe

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