1 2This is the README for bzip2, a block-sorting file compressor, version |
31.0.2. This version is fully compatible with the previous public 4releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0 and 1.0.1. |
5 |
6bzip2-1.0.2 is distributed under a BSD-style license. For details, |
7see the file LICENSE. 8 |
9Complete documentation is available in Postscript form (manual.ps), 10PDF (manual.pdf, amazingly enough) or html (manual_toc.html). A 11plain-text version of the manual page is available as bzip2.txt. 12A statement about Y2K issues is now included in the file Y2K_INFO. |
13 14 15HOW TO BUILD -- UNIX 16 17Type `make'. This builds the library libbz2.a and then the 18programs bzip2 and bzip2recover. Six self-tests are run. 19If the self-tests complete ok, carry on to installation: 20 --- 7 unchanged lines hidden (view full) --- 28 make -n install PREFIX=/xxx/yyy respectively. 29The -n instructs make to show the commands it would execute, but 30not actually execute them. 31 32 33HOW TO BUILD -- UNIX, shared library libbz2.so. 34 35Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for |
36Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims |
37that it works for any other platform, though I suspect it probably 38will work for most platforms employing both ELF and gcc. 39 |
40bzip2-shared, a client of the shared library, is also built, but not 41self-tested. So I suggest you also build using the normal Makefile, 42since that conducts a self-test. A second reason to prefer the 43version statically linked to the library is that, on x86 platforms, 44building shared objects makes a valuable register (%ebx) unavailable 45to gcc, resulting in a slowdown of 10%-20%, at least for bzip2. |
46 |
47Important note for people upgrading .so's from 0.9.0/0.9.5 to version 481.0.X. All the functions in the library have been renamed, from (eg) 49bzCompress to BZ2_bzCompress, to avoid namespace pollution. |
50Unfortunately this means that the libbz2.so created by |
51Makefile-libbz2_so will not work with any program which used an older 52version of the library. Sorry. I do encourage library clients to 53make the effort to upgrade to use version 1.0, since it is both faster 54and more robust than previous versions. |
55 56 57HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. 58 59It's difficult for me to support compilation on all these platforms. 60My approach is to collect binaries for these platforms, and put them |
61on the master web page (http://sources.redhat.com/bzip2). Look there. 62However (FWIW), bzip2-1.0.X is very standard ANSI C and should compile 63unmodified with MS Visual C. If you have difficulties building, you 64might want to read README.COMPILATION.PROBLEMS. |
65 |
66At least using MS Visual C++ 6, you can build from the unmodified 67sources by issuing, in a command shell: 68 nmake -f makefile.msc 69(you may need to first run the MSVC-provided script VCVARS32.BAT 70 so as to set up paths to the MSVC tools correctly). |
71 |
72 |
73VALIDATION 74 75Correct operation, in the sense that a compressed file can always be 76decompressed to reproduce the original, is obviously of paramount 77importance. To validate bzip2, I used a modified version of Mark 78Nelson's churn program. Churn is an automated test driver which 79recursively traverses a directory structure, using bzip2 to compress 80and then decompress each file it encounters, and checking that the --- 59 unchanged lines hidden (view full) --- 140WHAT'S NEW IN 0.9.5 ? 141 142 * Compression speed is much less sensitive to the input 143 data than in previous versions. Specifically, the very 144 slow performance caused by repetitive data is fixed. 145 * Many small improvements in file and flag handling. 146 * A Y2K statement. 147 |
148WHAT'S NEW IN 1.0.0 ? |
149 150 See the CHANGES file. 151 |
152WHAT'S NEW IN 1.0.2 ? 153 154 See the CHANGES file. 155 156 |
157I hope you find bzip2 useful. Feel free to contact me at 158 jseward@acm.org 159if you have any suggestions or queries. Many people mailed me with 160comments, suggestions and patches after the releases of bzip-0.15, |
161bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0 and 1.0.1, 162and the changes in bzip2 are largely a result of this feedback. 163I thank you for your comments. |
164 165At least for the time being, bzip2's "home" is (or can be reached via) |
166http://sources.redhat.com/bzip2. |
167 168Julian Seward 169jseward@acm.org 170 |
171Cambridge, UK (and what a great town this is!) 172 17318 July 1996 (version 0.15) 17425 August 1996 (version 0.21) 175 7 August 1997 (bzip2, version 0.1) 17629 August 1997 (bzip2, version 0.1pl2) 17723 August 1998 (bzip2, version 0.9.0) 178 8 June 1999 (bzip2, version 0.9.5) 179 4 Sept 1999 (bzip2, version 0.9.5d) 180 5 May 2000 (bzip2, version 1.0pre8) 18130 December 2001 (bzip2, version 1.0.2pre1) |