| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 |  | 
| 2 This is the README for bzip2/libzip2. |  | 
| 3 This version is fully compatible with the previous public releases. |  | 
| 4 |  | 
| 5 ------------------------------------------------------------------ |  | 
| 6 This file is part of bzip2/libbzip2, a program and library for |  | 
| 7 lossless, block-sorting data compression. |  | 
| 8 |  | 
| 9 bzip2/libbzip2 version 1.0.6 of 6 September 2010 |  | 
| 10 Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org> |  | 
| 11 |  | 
| 12 Please read the WARNING, DISCLAIMER and PATENTS sections in this file. |  | 
| 13 |  | 
| 14 This program is released under the terms of the license contained |  | 
| 15 in the file LICENSE. |  | 
| 16 ------------------------------------------------------------------ |  | 
| 17 |  | 
| 18 Complete documentation is available in Postscript form (manual.ps), |  | 
| 19 PDF (manual.pdf) or html (manual.html).  A plain-text version of the |  | 
| 20 manual page is available as bzip2.txt. |  | 
| 21 |  | 
| 22 |  | 
| 23 HOW TO BUILD -- UNIX |  | 
| 24 |  | 
| 25 Type 'make'.  This builds the library libbz2.a and then the programs |  | 
| 26 bzip2 and bzip2recover.  Six self-tests are run.  If the self-tests |  | 
| 27 complete ok, carry on to installation: |  | 
| 28 |  | 
| 29 To install in /usr/local/bin, /usr/local/lib, /usr/local/man and |  | 
| 30 /usr/local/include, type |  | 
| 31 |  | 
| 32    make install |  | 
| 33 |  | 
| 34 To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type |  | 
| 35 |  | 
| 36    make install PREFIX=/xxx/yyy |  | 
| 37 |  | 
| 38 If you are (justifiably) paranoid and want to see what 'make install' |  | 
| 39 is going to do, you can first do |  | 
| 40 |  | 
| 41    make -n install                      or |  | 
| 42    make -n install PREFIX=/xxx/yyy      respectively. |  | 
| 43 |  | 
| 44 The -n instructs make to show the commands it would execute, but not |  | 
| 45 actually execute them. |  | 
| 46 |  | 
| 47 |  | 
| 48 HOW TO BUILD -- UNIX, shared library libbz2.so. |  | 
| 49 |  | 
| 50 Do 'make -f Makefile-libbz2_so'.  This Makefile seems to work for |  | 
| 51 Linux-ELF (RedHat 7.2 on an x86 box), with gcc.  I make no claims |  | 
| 52 that it works for any other platform, though I suspect it probably |  | 
| 53 will work for most platforms employing both ELF and gcc. |  | 
| 54 |  | 
| 55 bzip2-shared, a client of the shared library, is also built, but not |  | 
| 56 self-tested.  So I suggest you also build using the normal Makefile, |  | 
| 57 since that conducts a self-test.  A second reason to prefer the |  | 
| 58 version statically linked to the library is that, on x86 platforms, |  | 
| 59 building shared objects makes a valuable register (%ebx) unavailable |  | 
| 60 to gcc, resulting in a slowdown of 10%-20%, at least for bzip2. |  | 
| 61 |  | 
| 62 Important note for people upgrading .so's from 0.9.0/0.9.5 to version |  | 
| 63 1.0.X.  All the functions in the library have been renamed, from (eg) |  | 
| 64 bzCompress to BZ2_bzCompress, to avoid namespace pollution. |  | 
| 65 Unfortunately this means that the libbz2.so created by |  | 
| 66 Makefile-libbz2_so will not work with any program which used an older |  | 
| 67 version of the library.  I do encourage library clients to make the |  | 
| 68 effort to upgrade to use version 1.0, since it is both faster and more |  | 
| 69 robust than previous versions. |  | 
| 70 |  | 
| 71 |  | 
| 72 HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. |  | 
| 73 |  | 
| 74 It's difficult for me to support compilation on all these platforms. |  | 
| 75 My approach is to collect binaries for these platforms, and put them |  | 
| 76 on the master web site (http://www.bzip.org).  Look there.  However |  | 
| 77 (FWIW), bzip2-1.0.X is very standard ANSI C and should compile |  | 
| 78 unmodified with MS Visual C.  If you have difficulties building, you |  | 
| 79 might want to read README.COMPILATION.PROBLEMS. |  | 
| 80 |  | 
| 81 At least using MS Visual C++ 6, you can build from the unmodified |  | 
| 82 sources by issuing, in a command shell: |  | 
| 83 |  | 
| 84    nmake -f makefile.msc |  | 
| 85 |  | 
| 86 (you may need to first run the MSVC-provided script VCVARS32.BAT |  | 
| 87  so as to set up paths to the MSVC tools correctly). |  | 
| 88 |  | 
| 89 |  | 
| 90 VALIDATION |  | 
| 91 |  | 
| 92 Correct operation, in the sense that a compressed file can always be |  | 
| 93 decompressed to reproduce the original, is obviously of paramount |  | 
| 94 importance.  To validate bzip2, I used a modified version of Mark |  | 
| 95 Nelson's churn program.  Churn is an automated test driver which |  | 
| 96 recursively traverses a directory structure, using bzip2 to compress |  | 
| 97 and then decompress each file it encounters, and checking that the |  | 
| 98 decompressed data is the same as the original. |  | 
| 99 |  | 
| 100 |  | 
| 101 |  | 
| 102 Please read and be aware of the following: |  | 
| 103 |  | 
| 104 WARNING: |  | 
| 105 |  | 
| 106    This program and library (attempts to) compress data by |  | 
| 107    performing several non-trivial transformations on it. |  | 
| 108    Unless you are 100% familiar with *all* the algorithms |  | 
| 109    contained herein, and with the consequences of modifying them, |  | 
| 110    you should NOT meddle with the compression or decompression |  | 
| 111    machinery.  Incorrect changes can and very likely *will* |  | 
| 112    lead to disastrous loss of data. |  | 
| 113 |  | 
| 114 |  | 
| 115 DISCLAIMER: |  | 
| 116 |  | 
| 117    I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE |  | 
| 118    USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED. |  | 
| 119 |  | 
| 120    Every compression of a file implies an assumption that the |  | 
| 121    compressed file can be decompressed to reproduce the original. |  | 
| 122    Great efforts in design, coding and testing have been made to |  | 
| 123    ensure that this program works correctly.  However, the complexity |  | 
| 124    of the algorithms, and, in particular, the presence of various |  | 
| 125    special cases in the code which occur with very low but non-zero |  | 
| 126    probability make it impossible to rule out the possibility of bugs |  | 
| 127    remaining in the program.  DO NOT COMPRESS ANY DATA WITH THIS |  | 
| 128    PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER |  | 
| 129    SMALL, THAT THE DATA WILL NOT BE RECOVERABLE. |  | 
| 130 |  | 
| 131    That is not to say this program is inherently unreliable. |  | 
| 132    Indeed, I very much hope the opposite is true.  bzip2/libbzip2 |  | 
| 133    has been carefully constructed and extensively tested. |  | 
| 134 |  | 
| 135 |  | 
| 136 PATENTS: |  | 
| 137 |  | 
| 138    To the best of my knowledge, bzip2/libbzip2 does not use any |  | 
| 139    patented algorithms.  However, I do not have the resources |  | 
| 140    to carry out a patent search.  Therefore I cannot give any |  | 
| 141    guarantee of the above statement. |  | 
| 142 |  | 
| 143 |  | 
| 144 |  | 
| 145 WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ? |  | 
| 146 |  | 
| 147    * Approx 10% faster compression, 30% faster decompression |  | 
| 148    * -t (test mode) is a lot quicker |  | 
| 149    * Can decompress concatenated compressed files |  | 
| 150    * Programming interface, so programs can directly read/write .bz2 files |  | 
| 151    * Less restrictive (BSD-style) licensing |  | 
| 152    * Flag handling more compatible with GNU gzip |  | 
| 153    * Much more documentation, i.e., a proper user manual |  | 
| 154    * Hopefully, improved portability (at least of the library) |  | 
| 155 |  | 
| 156 WHAT'S NEW IN 0.9.5 ? |  | 
| 157 |  | 
| 158    * Compression speed is much less sensitive to the input |  | 
| 159      data than in previous versions.  Specifically, the very |  | 
| 160      slow performance caused by repetitive data is fixed. |  | 
| 161    * Many small improvements in file and flag handling. |  | 
| 162    * A Y2K statement. |  | 
| 163 |  | 
| 164 WHAT'S NEW IN 1.0.0 ? |  | 
| 165 |  | 
| 166    See the CHANGES file. |  | 
| 167 |  | 
| 168 WHAT'S NEW IN 1.0.2 ? |  | 
| 169 |  | 
| 170    See the CHANGES file. |  | 
| 171 |  | 
| 172 WHAT'S NEW IN 1.0.3 ? |  | 
| 173 |  | 
| 174    See the CHANGES file. |  | 
| 175 |  | 
| 176 WHAT'S NEW IN 1.0.4 ? |  | 
| 177 |  | 
| 178    See the CHANGES file. |  | 
| 179 |  | 
| 180 WHAT'S NEW IN 1.0.5 ? |  | 
| 181 |  | 
| 182    See the CHANGES file. |  | 
| 183 |  | 
| 184 WHAT'S NEW IN 1.0.6 ? |  | 
| 185 |  | 
| 186    See the CHANGES file. |  | 
| 187 |  | 
| 188 |  | 
| 189 I hope you find bzip2 useful.  Feel free to contact me at |  | 
| 190    jseward@bzip.org |  | 
| 191 if you have any suggestions or queries.  Many people mailed me with |  | 
| 192 comments, suggestions and patches after the releases of bzip-0.15, |  | 
| 193 bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, |  | 
| 194 1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this |  | 
| 195 feedback.  I thank you for your comments. |  | 
| 196 |  | 
| 197 bzip2's "home" is http://www.bzip.org/ |  | 
| 198 |  | 
| 199 Julian Seward |  | 
| 200 jseward@bzip.org |  | 
| 201 Cambridge, UK. |  | 
| 202 |  | 
| 203 18     July 1996 (version 0.15) |  | 
| 204 25   August 1996 (version 0.21) |  | 
| 205  7   August 1997 (bzip2, version 0.1) |  | 
| 206 29   August 1997 (bzip2, version 0.1pl2) |  | 
| 207 23   August 1998 (bzip2, version 0.9.0) |  | 
| 208  8     June 1999 (bzip2, version 0.9.5) |  | 
| 209  4     Sept 1999 (bzip2, version 0.9.5d) |  | 
| 210  5      May 2000 (bzip2, version 1.0pre8) |  | 
| 211 30 December 2001 (bzip2, version 1.0.2pre1) |  | 
| 212 15 February 2005 (bzip2, version 1.0.3) |  | 
| 213 20 December 2006 (bzip2, version 1.0.4) |  | 
| 214 10 December 2007 (bzip2, version 1.0.5) |  | 
| 215  6     Sept 2010 (bzip2, version 1.0.6) |  | 
| OLD | NEW | 
|---|