6.29. Bzip2-1.0.5

The Bzip2 package contains programs for compressing and decompressing files. Compressing text files with bzip2 yields a much better compression percentage than with the traditional gzip.

6.29.1. Environment Settings

This package requires compiler variables to be set for the target in the environment.

export CC="${CLFS_TARGET}-gcc"
export CXX="${CLFS_TARGET}-g++"
export AR="${CLFS_TARGET}-ar"
export AS="${CLFS_TARGET}-as"
export RANLIB="${CLFS_TARGET}-ranlib"
export LD="${CLFS_TARGET}-ld"
export STRIP="${CLFS_TARGET}-strip"

6.29.2. Installation of Bzip2

Bzip2's default Makefile target automatically runs the testsuite as well. Disable the tests since they won't work on a multi-architecture build:

cp Makefile{,.orig}
sed -e "/^all:/s/ test//" Makefile.orig > Makefile

By default Bzip2 creates some symlinks that use absolute pathnames. The following sed will cause them to be created with relative paths instead:

sed -i -e 's:ln -s -f $(PREFIX)/bin/:ln -s :' Makefile

The Bzip2 package does not contain a configure script. Compile it with:

make -f Makefile-libbz2_so CC="${CC}" AR="${AR}" RANLIB="${RANLIB}"
make clean

The -f flag will cause Bzip2 to be built using a different Makefile file, in this case the Makefile-libbz2_so file, which creates a dynamic libbz2.so library and links the Bzip2 utilities against it.

Recompile the package using a non-shared library.

make CC="${CC}" AR="${AR}" RANLIB="${RANLIB}"

Install the programs:

make PREFIX=${CLFS}/usr install

Install the shared bzip2 binary into the ${CLFS}/bin directory, make some necessary symbolic links, and clean up:

cp -v bzip2-shared ${CLFS}/bin/bzip2
cp -av libbz2.so* ${CLFS}/lib
ln -sfv ../../lib/libbz2.so.1.0 ${CLFS}/usr/lib/libbz2.so
rm -v ${CLFS}/usr/bin/{bunzip2,bzcat,bzip2}
ln -sfv bzip2 ${CLFS}/bin/bunzip2
ln -sfv bzip2 ${CLFS}/bin/bzcat

6.29.3. Contents of Bzip2

Installed programs: bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp (link to bzdiff), bzdiff, bzegrep (link to bzgrep), bzfgrep (link to bzgrep), bzgrep, bzip2, bzip2recover, bzless (link to bzmore), and bzmore
Installed libraries: libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.5), and libbz2.so.1.0.5

Short Descriptions

bunzip2

Decompresses bzipped files

bzcat

Decompresses to standard output

bzcmp

Runs cmp on bzipped files

bzdiff

Runs diff on bzipped files

bzgrep

Runs grep on bzipped files

bzegrep

Runs egrep on bzipped files

bzfgrep

Runs fgrep on bzipped files

bzip2

Compresses files using the Burrows-Wheeler block sorting text compression algorithm with Huffman coding; the compression rate is better than that achieved by more conventional compressors using “Lempel-Ziv” algorithms, like gzip

bzip2recover

Tries to recover data from damaged bzipped files

bzless

Runs less on bzipped files

bzmore

Runs more on bzipped files

libbz2*

The library implementing lossless, block-sorting data compression, using the Burrows-Wheeler algorithm