Blame README

Packit 71fd91
Packit 71fd91
This is the README for bzip2/libzip2.
Packit 71fd91
This version is fully compatible with the previous public releases.
Packit 71fd91
Packit 71fd91
------------------------------------------------------------------
Packit 71fd91
This file is part of bzip2/libbzip2, a program and library for
Packit 71fd91
lossless, block-sorting data compression.
Packit 71fd91
Packit 71fd91
bzip2/libbzip2 version 1.0.6 of 6 September 2010
Packit 71fd91
Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
Packit 71fd91
Packit 71fd91
Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
Packit 71fd91
Packit 71fd91
This program is released under the terms of the license contained
Packit 71fd91
in the file LICENSE.
Packit 71fd91
------------------------------------------------------------------
Packit 71fd91
Packit 71fd91
Complete documentation is available in Postscript form (manual.ps),
Packit 71fd91
PDF (manual.pdf) or html (manual.html).  A plain-text version of the
Packit 71fd91
manual page is available as bzip2.txt.
Packit 71fd91
Packit 71fd91
Packit 71fd91
HOW TO BUILD -- UNIX
Packit 71fd91
Packit 71fd91
Type 'make'.  This builds the library libbz2.a and then the programs
Packit 71fd91
bzip2 and bzip2recover.  Six self-tests are run.  If the self-tests
Packit 71fd91
complete ok, carry on to installation:
Packit 71fd91
Packit 71fd91
To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
Packit 71fd91
/usr/local/include, type
Packit 71fd91
Packit 71fd91
   make install
Packit 71fd91
Packit 71fd91
To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
Packit 71fd91
Packit 71fd91
   make install PREFIX=/xxx/yyy
Packit 71fd91
Packit 71fd91
If you are (justifiably) paranoid and want to see what 'make install'
Packit 71fd91
is going to do, you can first do
Packit 71fd91
Packit 71fd91
   make -n install                      or
Packit 71fd91
   make -n install PREFIX=/xxx/yyy      respectively.
Packit 71fd91
Packit 71fd91
The -n instructs make to show the commands it would execute, but not
Packit 71fd91
actually execute them.
Packit 71fd91
Packit 71fd91
Packit 71fd91
HOW TO BUILD -- UNIX, shared library libbz2.so.
Packit 71fd91
Packit 71fd91
Do 'make -f Makefile-libbz2_so'.  This Makefile seems to work for
Packit 71fd91
Linux-ELF (RedHat 7.2 on an x86 box), with gcc.  I make no claims
Packit 71fd91
that it works for any other platform, though I suspect it probably
Packit 71fd91
will work for most platforms employing both ELF and gcc.
Packit 71fd91
Packit 71fd91
bzip2-shared, a client of the shared library, is also built, but not
Packit 71fd91
self-tested.  So I suggest you also build using the normal Makefile,
Packit 71fd91
since that conducts a self-test.  A second reason to prefer the
Packit 71fd91
version statically linked to the library is that, on x86 platforms,
Packit 71fd91
building shared objects makes a valuable register (%ebx) unavailable
Packit 71fd91
to gcc, resulting in a slowdown of 10%-20%, at least for bzip2.
Packit 71fd91
Packit 71fd91
Important note for people upgrading .so's from 0.9.0/0.9.5 to version
Packit 71fd91
1.0.X.  All the functions in the library have been renamed, from (eg)
Packit 71fd91
bzCompress to BZ2_bzCompress, to avoid namespace pollution.
Packit 71fd91
Unfortunately this means that the libbz2.so created by
Packit 71fd91
Makefile-libbz2_so will not work with any program which used an older
Packit 71fd91
version of the library.  I do encourage library clients to make the
Packit 71fd91
effort to upgrade to use version 1.0, since it is both faster and more
Packit 71fd91
robust than previous versions.
Packit 71fd91
Packit 71fd91
Packit 71fd91
HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
Packit 71fd91
Packit 71fd91
It's difficult for me to support compilation on all these platforms.
Packit 71fd91
My approach is to collect binaries for these platforms, and put them
Packit 71fd91
on the master web site (http://www.bzip.org).  Look there.  However
Packit 71fd91
(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
Packit 71fd91
unmodified with MS Visual C.  If you have difficulties building, you
Packit 71fd91
might want to read README.COMPILATION.PROBLEMS.
Packit 71fd91
Packit 71fd91
At least using MS Visual C++ 6, you can build from the unmodified
Packit 71fd91
sources by issuing, in a command shell: 
Packit 71fd91
Packit 71fd91
   nmake -f makefile.msc
Packit 71fd91
Packit 71fd91
(you may need to first run the MSVC-provided script VCVARS32.BAT
Packit 71fd91
 so as to set up paths to the MSVC tools correctly).
Packit 71fd91
Packit 71fd91
Packit 71fd91
VALIDATION
Packit 71fd91
Packit 71fd91
Correct operation, in the sense that a compressed file can always be
Packit 71fd91
decompressed to reproduce the original, is obviously of paramount
Packit 71fd91
importance.  To validate bzip2, I used a modified version of Mark
Packit 71fd91
Nelson's churn program.  Churn is an automated test driver which
Packit 71fd91
recursively traverses a directory structure, using bzip2 to compress
Packit 71fd91
and then decompress each file it encounters, and checking that the
Packit 71fd91
decompressed data is the same as the original.
Packit 71fd91
Packit 71fd91
Packit 71fd91
Packit 71fd91
Please read and be aware of the following:
Packit 71fd91
Packit 71fd91
WARNING:
Packit 71fd91
Packit 71fd91
   This program and library (attempts to) compress data by 
Packit 71fd91
   performing several non-trivial transformations on it.  
Packit 71fd91
   Unless you are 100% familiar with *all* the algorithms 
Packit 71fd91
   contained herein, and with the consequences of modifying them, 
Packit 71fd91
   you should NOT meddle with the compression or decompression 
Packit 71fd91
   machinery.  Incorrect changes can and very likely *will* 
Packit 71fd91
   lead to disastrous loss of data.
Packit 71fd91
Packit 71fd91
Packit 71fd91
DISCLAIMER:
Packit 71fd91
Packit 71fd91
   I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
Packit 71fd91
   USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
Packit 71fd91
Packit 71fd91
   Every compression of a file implies an assumption that the
Packit 71fd91
   compressed file can be decompressed to reproduce the original.
Packit 71fd91
   Great efforts in design, coding and testing have been made to
Packit 71fd91
   ensure that this program works correctly.  However, the complexity
Packit 71fd91
   of the algorithms, and, in particular, the presence of various
Packit 71fd91
   special cases in the code which occur with very low but non-zero
Packit 71fd91
   probability make it impossible to rule out the possibility of bugs
Packit 71fd91
   remaining in the program.  DO NOT COMPRESS ANY DATA WITH THIS
Packit 71fd91
   PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
Packit 71fd91
   SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
Packit 71fd91
Packit 71fd91
   That is not to say this program is inherently unreliable.  
Packit 71fd91
   Indeed, I very much hope the opposite is true.  bzip2/libbzip2 
Packit 71fd91
   has been carefully constructed and extensively tested.
Packit 71fd91
Packit 71fd91
Packit 71fd91
PATENTS:
Packit 71fd91
Packit 71fd91
   To the best of my knowledge, bzip2/libbzip2 does not use any 
Packit 71fd91
   patented algorithms.  However, I do not have the resources 
Packit 71fd91
   to carry out a patent search.  Therefore I cannot give any 
Packit 71fd91
   guarantee of the above statement.
Packit 71fd91
Packit 71fd91
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
Packit 71fd91
Packit 71fd91
   * Approx 10% faster compression, 30% faster decompression
Packit 71fd91
   * -t (test mode) is a lot quicker
Packit 71fd91
   * Can decompress concatenated compressed files
Packit 71fd91
   * Programming interface, so programs can directly read/write .bz2 files
Packit 71fd91
   * Less restrictive (BSD-style) licensing
Packit 71fd91
   * Flag handling more compatible with GNU gzip
Packit 71fd91
   * Much more documentation, i.e., a proper user manual
Packit 71fd91
   * Hopefully, improved portability (at least of the library)
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 0.9.5 ?
Packit 71fd91
Packit 71fd91
   * Compression speed is much less sensitive to the input
Packit 71fd91
     data than in previous versions.  Specifically, the very
Packit 71fd91
     slow performance caused by repetitive data is fixed.
Packit 71fd91
   * Many small improvements in file and flag handling.
Packit 71fd91
   * A Y2K statement.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.0 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.2 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.3 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.4 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.5 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
WHAT'S NEW IN 1.0.6 ?
Packit 71fd91
Packit 71fd91
   See the CHANGES file.
Packit 71fd91
Packit 71fd91
Packit 71fd91
I hope you find bzip2 useful.  Feel free to contact me at
Packit 71fd91
   jseward@bzip.org
Packit 71fd91
if you have any suggestions or queries.  Many people mailed me with
Packit 71fd91
comments, suggestions and patches after the releases of bzip-0.15,
Packit 71fd91
bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
Packit 71fd91
1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
Packit 71fd91
feedback.  I thank you for your comments.
Packit 71fd91
Packit 71fd91
bzip2's "home" is http://www.bzip.org/
Packit 71fd91
Packit 71fd91
Julian Seward
Packit 71fd91
jseward@bzip.org
Packit 71fd91
Cambridge, UK.
Packit 71fd91
Packit 71fd91
18     July 1996 (version 0.15)
Packit 71fd91
25   August 1996 (version 0.21)
Packit 71fd91
 7   August 1997 (bzip2, version 0.1)
Packit 71fd91
29   August 1997 (bzip2, version 0.1pl2)
Packit 71fd91
23   August 1998 (bzip2, version 0.9.0)
Packit 71fd91
 8     June 1999 (bzip2, version 0.9.5)
Packit 71fd91
 4     Sept 1999 (bzip2, version 0.9.5d)
Packit 71fd91
 5      May 2000 (bzip2, version 1.0pre8)
Packit 71fd91
30 December 2001 (bzip2, version 1.0.2pre1)
Packit 71fd91
15 February 2005 (bzip2, version 1.0.3)
Packit 71fd91
20 December 2006 (bzip2, version 1.0.4)
Packit 71fd91
10 December 2007 (bzip2, version 1.0.5)
Packit 71fd91
 6     Sept 2010 (bzip2, version 1.0.6)