README (78556) | README (90067) |
---|---|
1 2This is the README for bzip2, a block-sorting file compressor, version | 1 2This is the README for bzip2, a block-sorting file compressor, version |
31.0. This version is fully compatible with the previous public 4releases, bzip2-0.1pl2, bzip2-0.9.0 and bzip2-0.9.5. | 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 | 5 |
6bzip2-1.0 is distributed under a BSD-style license. For details, | 6bzip2-1.0.2 is distributed under a BSD-style license. For details, |
7see the file LICENSE. 8 | 7see the file LICENSE. 8 |
9Complete documentation is available in Postscript form (manual.ps) or 10html (manual_toc.html). A plain-text version of the manual page is 11available as bzip2.txt. A statement about Y2K issues is now included 12in the file Y2K_INFO. | 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 | 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 5.2 on an x86 box), with gcc. I make no claims | 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 | 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 build, but 41not self-tested. So I suggest you also build using the normal 42Makefile, since that conducts a self-test. | 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. |
43 | 46 |
44Important note for people upgrading .so's from 0.9.0/0.9.5 to 45version 1.0. All the functions in the library have been renamed, 46from (eg) bzCompress to BZ2_bzCompress, to avoid namespace pollution. | 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. |
47Unfortunately this means that the libbz2.so created by | 50Unfortunately this means that the libbz2.so created by |
48Makefile-libbz2_so will not work with any program which used an 49older version of the library. Sorry. I do encourage library 50clients to make the effort to upgrade to use version 1.0, since 51it is both faster and more robust than previous versions. | 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. |
52 53 54HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. 55 56It's difficult for me to support compilation on all these platforms. 57My approach is to collect binaries for these platforms, and put them | 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 |
58on the master web page (http://sourceware.cygnus.com/bzip2). Look 59there. However (FWIW), bzip2-1.0 is very standard ANSI C and should 60compile unmodified with MS Visual C. For Win32, there is one 61important caveat: in bzip2.c, you must set BZ_UNIX to 0 and 62BZ_LCCWIN32 to 1 before building. If you have difficulties building, 63you might want to read README.COMPILATION.PROBLEMS. | 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. |
64 | 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). |
|
65 | 71 |
72 |
|
66VALIDATION 67 68Correct operation, in the sense that a compressed file can always be 69decompressed to reproduce the original, is obviously of paramount 70importance. To validate bzip2, I used a modified version of Mark 71Nelson's churn program. Churn is an automated test driver which 72recursively traverses a directory structure, using bzip2 to compress 73and then decompress each file it encounters, and checking that the --- 59 unchanged lines hidden (view full) --- 133WHAT'S NEW IN 0.9.5 ? 134 135 * Compression speed is much less sensitive to the input 136 data than in previous versions. Specifically, the very 137 slow performance caused by repetitive data is fixed. 138 * Many small improvements in file and flag handling. 139 * A Y2K statement. 140 | 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 |
141WHAT'S NEW IN 1.0 | 148WHAT'S NEW IN 1.0.0 ? |
142 143 See the CHANGES file. 144 | 149 150 See the CHANGES file. 151 |
152WHAT'S NEW IN 1.0.2 ? 153 154 See the CHANGES file. 155 156 |
|
145I hope you find bzip2 useful. Feel free to contact me at 146 jseward@acm.org 147if you have any suggestions or queries. Many people mailed me with 148comments, suggestions and patches after the releases of bzip-0.15, | 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, |
149bzip-0.21, bzip2-0.1pl2 and bzip2-0.9.0, and the changes in bzip2 are 150largely a result of this feedback. I thank you for your comments. | 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. |
151 152At least for the time being, bzip2's "home" is (or can be reached via) | 164 165At least for the time being, bzip2's "home" is (or can be reached via) |
153http://www.muraroa.demon.co.uk. | 166http://sources.redhat.com/bzip2. |
154 155Julian Seward 156jseward@acm.org 157 | 167 168Julian Seward 169jseward@acm.org 170 |
158Cambridge, UK 15918 July 1996 (version 0.15) 16025 August 1996 (version 0.21) 161 7 August 1997 (bzip2, version 0.1) 16229 August 1997 (bzip2, version 0.1pl2) 16323 August 1998 (bzip2, version 0.9.0) 164 8 June 1999 (bzip2, version 0.9.5) 165 4 Sept 1999 (bzip2, version 0.9.5d) 166 5 May 2000 (bzip2, version 1.0pre8) | 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) |