summaryrefslogtreecommitdiff
path: root/bzip2/install.txt
diff options
context:
space:
mode:
Diffstat (limited to 'bzip2/install.txt')
-rw-r--r--bzip2/install.txt258
1 files changed, 258 insertions, 0 deletions
diff --git a/bzip2/install.txt b/bzip2/install.txt
new file mode 100644
index 0000000..87d45ad
--- /dev/null
+++ b/bzip2/install.txt
@@ -0,0 +1,258 @@
+HOW TO ADD BZIP2 SUPPORT TO ZIP
+
+This document describes how to add bzip2 support to Zip.
+
+Compiling or linking in the bzip2 library adds an additional bzip2
+compression method to Zip. This new method can be selected instead
+of the Zip traditional compression method deflation to compress files
+and often gives a better compression ratio (perhaps at the cost of
+greater CPU time). The compression method is specified using the
+"-Z method" command-line option, where "method" may be either "deflate"
+(the default), or "bzip2" (if Zip is built with bzip2 support). Zip
+has been tested with bzip2 library 1.0.5 and earlier.
+
+Notes
+
+Compression method bzip2 requires a modern unzip. Before using bzip2
+compression in Zip, verify that a modern UnZip program with bzip2 support
+will be used to read the resulting zip archive so that entries compressed
+with bzip2 (compression method 12) can be read. Older unzips probably
+won't recognize the compression method and will skip those entries.
+
+The Zip source kit does not include the bzip2 library or source files, but
+these can be found at "http://www.bzip.org/" for example. See below for
+how to add bzip2 to Zip for various operating systems.
+
+Zip using bzip2 compression is not compatible with the bzip2 application,
+but instead provides an additional way to compress files before adding
+them to a Zip archive. It does not replace the bzip2 program itself,
+which creates bzip2 archives in a different format that are not
+compatible with zip or unzip.
+
+The bzip2 code and algorithms are provided under the bzip2 license
+(provided in the bzip2 source kit) and what is not covered by that license
+is covered under the Info-ZIP license. Info-ZIP will look at issues
+involving the use of bzip2 compression in Zip, but any questions about
+the bzip2 code and algorithms or bzip2 licensing, for example, should be
+directed to the bzip2 maintainer.
+
+
+Installation
+
+To build Zip with bzip2 support, Zip generally needs one bzip2 header
+file, "bzlib.h", and the object library, typically "libbz2.a", except
+in cases where the source files are compiled in directly. If you
+are either compiling the bzip2 library or compiling in the bzip2
+source files, we recommend defining the C macro BZ_NO_STDIO, which
+excludes a lot of standalone error code (not used when bzip2 is
+used as a library and makes the library smaller) and provides hooks
+that Zip can use to provide better error handling. However, a
+standard bzip2 object library will work, though any errors that bzip2
+generates may be more cryptic.
+
+Building the bzip2 library from the bzip2 source files (recommended):
+
+ Download the latest bzip2 package (from "http://www.bzip.org/", for
+ example).
+
+ Unpack the bzip2 source kit (bzip2-1.0.5.tar.gz was current as of
+ this writing, but the latest should work).
+
+ Read the README file in the bzip2 source kit.
+
+ Compile the bzip2 library for your OS, preferably defining
+ BZ_NO_STDIO. Note: On UNIX systems, this may be done automatically
+ when building Zip, as explained below.
+
+
+Installation on UNIX (see below for installation on other systems):
+
+ Note: Zip on UNIX uses the "bzlib.h" include file and the compiled
+ "libbz2.a" library to static link to bzip2. Currently we do not
+ support using the shared library (patches welcome).
+
+ The easiest approach may be to drop the two above files in the
+ bzip2 directory of the Zip source tree and build Zip using the
+ "generic" target, that is, using a command like
+ make -f unix/Makefile generic
+ If all goes well, make should confirm that it found the files and
+ will be compiling in bzip2 by setting the BZIP2_SUPPORT flag and
+ then including the libraries while compiling and linking Zip.
+
+ To use bzlib.h and libbz2.a from somewhere else on your system,
+ define the "make" macro IZ_BZIP2 to point to that directory. For
+ example:
+ make -f unix/Makefile generic IZ_BZIP2=/mybz2
+ where /mybz2 might be "/usr/local/src/bzip2/bzip2-1.0.5" on some
+ systems. Only a compiled bzip2 library can be pointed to using
+ IZ_BZIP2 and Zip will not compile bzip2 source in other than the
+ bzip2 directory.
+
+ If IZ_BZIP2 is not defined, Zip will look for the bzip2 files in
+ the "bzip2" directory in the Zip source directory. The bzip2
+ directory is empty in the Zip source distribution (except for
+ this install.txt file) and is provided as a place to put the
+ bzip2 files. To use this directory, either drop bzlib.h and
+ libbz2.a in it to use the compiled library as noted above or drop
+ the contents of the bzip2 source kit in this directory so that
+ bzlib.h is directly in the bzip2 directory and Zip will try to
+ compile it if no compiled library is already there.
+
+
+ Unpacking bzip2 so Zip compiles it:
+
+ To make this work, the bzip2 source kit must be unpacked directly
+ into the Zip "bzip2" directory. For example:
+
+ # Unpack the Zip source kit.
+ gzip -cd zip30.tar-gz | tar xfo -
+ # Move down to the Zip kit's "bzip2" directory, ...
+ cd zip30/bzip2
+ # ... and unpack the bzip2 source kit there.
+ gzip -cd ../../bzip2-1.0.5.tar.gz | tar xfo -
+ # Move the bzip2 source files up to the Zip kit's bzip2 directory.
+ cd bzip2-1.0.5
+ mv * ..
+ # Return to the Zip source kit directory, ready to build.
+ cd ../..
+ # Build Zip.
+ make -f unix/Makefile generic
+
+
+ Using a system bzip2 library:
+
+ If IZ_BZIP2 is not defined and both a compiled library and the bzip2
+ source files are missing from the Zip bzip2 directory, Zip will test
+ to see if bzip2 is globally defined on the system in the default
+ include and library paths and, if found, link in the system bzip2
+ library. This is automatic.
+
+
+ Preventing inclusion of bzip2:
+
+ To build Zip with _no_ bzip2 support on a system where the automatic
+ bzip2 detection scheme will find bzip2, you can specify a bad
+ IZ_BZIP2 directory. For example:
+
+ make -f unix/Makefile generic IZ_BZIP2=no_such_directory
+
+ You can also define NO_BZIP2_SUPPORT to exclude bzip2.
+
+
+ Verifying bzip2 support in Zip:
+
+ When the Zip build is complete, verify that bzip2 support has been
+ enabled by checking the feature list:
+
+ ./zip -v
+
+ If all went well, bzip2 (and its library version) should be listed.
+
+
+Installation on other systems
+
+ MSDOS:
+
+ Thanks to Robert Riebisch, the DJGPP 2.x Zip port now supports bzip2.
+ To include bzip2, first install bzip2. The new msdos/makebz2.dj2
+ makefile then looks in the standard bzip2 installation directories
+ for the needed files. As he says:
+ It doesn't try to be clever about finding libbz2.a. It just
+ expects bzip2 stuff installed to the default include and library
+ folders, e.g., "C:\DJGPP\include" and "C:\DJGPP\lib" on DOS.
+
+ Given a standard DJGPP 2.x installation, this should create a
+ version of Zip 3.0 with bzip2 support.
+
+ The bzip2 library for DJGPP can be found on any DJGPP mirror in
+ "current/v2apps" (or "beta/v2apps/" for the latest beta). This
+ library has been ported to MSDOS/DJGPP by Juan Manuel Guerrero.
+
+
+ WIN32 (Windows NT/2K/XP/2K3/... and Windows 95/98/ME):
+
+ For Windows there seems to be two approaches, either use bzip2
+ as a dynamic link library or compile the bzip2 source in directly.
+ I have not gotten the static library libbz2.lib to work, but that
+ may be me.
+
+ Using bzip2 as a dynamic link library:
+
+ Building bzip2:
+
+ If you have the needed bzlib.h, libbz2.lib, and libbz2.dll files
+ you can skip building bzip2. If not, open the libbz2.dsp project
+ and build libbz2.dll
+
+ This creates
+ debug/libbz2.lib
+ and
+ libbz2.dll
+
+
+ Building Zip:
+
+ Copy libbz2.lib to the bzip2 directory in the Zip source tree. This
+ is needed to compile Zip with bzip2 support. Also copy the matching
+ bzlib.h from the bzip2 source to the same directory.
+
+ Add libbz2.lib to the link list for whatever you are building. Also
+ define the compiler define BZIP2_SUPPORT.
+
+ Build Zip.
+
+
+ Using Zip with bzip2 as dll:
+
+ Put libbz2.dll in your command path. This is needed to run Zip with
+ bzip2 support.
+
+ Verify that bzip2 is enabled with the command
+
+ zip -v
+
+ You should see bzip2 listed.
+
+ Compiling in bzip2 from the bzip2 source:
+
+ This approach compiles in the bzip2 code directly. No external
+ library is needed.
+
+ Get a copy of the bzip2 source and copy the contents to the bzip2
+ directory in the Zip source tree so that bzlib.h is directly in
+ the bzip2 directory.
+
+ Use the vc6bz2 project to build Zip. This project knows of the
+ added bzip2 files.
+
+ Verify that bzip2 is enabled with the command
+
+ zip -v
+
+
+ Windows DLL (WIN32):
+
+ Nothing yet.
+
+
+ Mac OS X:
+
+ Follow the standard UNIX build procedure. Mac OS X includes bzip2
+ and the UNIX builders should find the bzip2 files in the standard
+ places. Note that the version of bzip2 on your OS may not be
+ current and you can instead specify a different library or compile
+ your own bzip2 library as noted in the Unix procedures above.
+
+
+ OS/2:
+
+ Nothing yet.
+
+
+ VMS (OpenVMS):
+
+ See [.vms]install_vms.txt for how to enable bzip2 support on VMS.
+
+
+Last updated 26 March 2007, 15 July 2007, 9 April 2008, 27 June 2008
+S. Schweda, E. Gordon