annotate src/bzip2-1.0.6/README @ 169:223a55898ab9 tip default

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