annotate src/bzip2-1.0.6/README @ 4:e13257ea84a4

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