diff -aur bzip2-1.0.6.orig/Makefile bzip2-1.0.6/Makefile
--- bzip2-1.0.6.orig/Makefile	2008-02-14 13:39:18.000000000 +0100
+++ bzip2-1.0.6/Makefile	2009-06-14 13:49:03.889599030 +0200
@@ -21,7 +21,7 @@
 LDFLAGS=
 
 BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
+CFLAGS+=-fpic -Wall -Winline $(BIGFILES)
 
 # Where you want it installed when you do 'make install'
 PREFIX=/usr/local
@@ -70,43 +70,36 @@
 	@cat words3
 
 install: bzip2 bzip2recover
-	if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
-	if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
-	if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
-	if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
-	if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
-	cp -f bzip2 $(PREFIX)/bin/bzip2
-	cp -f bzip2 $(PREFIX)/bin/bunzip2
-	cp -f bzip2 $(PREFIX)/bin/bzcat
-	cp -f bzip2recover $(PREFIX)/bin/bzip2recover
-	chmod a+x $(PREFIX)/bin/bzip2
-	chmod a+x $(PREFIX)/bin/bunzip2
-	chmod a+x $(PREFIX)/bin/bzcat
-	chmod a+x $(PREFIX)/bin/bzip2recover
-	cp -f bzip2.1 $(PREFIX)/man/man1
-	chmod a+r $(PREFIX)/man/man1/bzip2.1
-	cp -f bzlib.h $(PREFIX)/include
-	chmod a+r $(PREFIX)/include/bzlib.h
-	cp -f libbz2.a $(PREFIX)/lib
-	chmod a+r $(PREFIX)/lib/libbz2.a
-	cp -f bzgrep $(PREFIX)/bin/bzgrep
-	ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
-	ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
-	chmod a+x $(PREFIX)/bin/bzgrep
-	cp -f bzmore $(PREFIX)/bin/bzmore
-	ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
-	chmod a+x $(PREFIX)/bin/bzmore
-	cp -f bzdiff $(PREFIX)/bin/bzdiff
-	ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
-	chmod a+x $(PREFIX)/bin/bzdiff
-	cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
-	chmod a+r $(PREFIX)/man/man1/bzgrep.1
-	chmod a+r $(PREFIX)/man/man1/bzmore.1
-	chmod a+r $(PREFIX)/man/man1/bzdiff.1
-	echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
-	echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
-	echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
-	echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
+	install -d $(PREFIX)/bin \
+	           $(PREFIX)/lib \
+	           $(PREFIX)/man/man1 \
+	           $(PREFIX)/include
+	install -m 755 bzip2 \
+	               bzip2recover \
+	               bzgrep \
+	               bzmore \
+	               bzdiff \
+	               $(PREFIX)/bin
+	install -m 644 bzlib.h $(PREFIX)/include
+	install -m 644 libbz2.a $(PREFIX)/lib
+	ln -sf bzip2 $(PREFIX)/bin/bunzip2
+	ln -sf bzip2 $(PREFIX)/bin/bzcat
+	ln -sf bzgrep $(PREFIX)/bin/bzegrep
+	ln -sf bzgrep $(PREFIX)/bin/bzfgrep
+	ln -sf bzmore $(PREFIX)/bin/bzless
+	ln -sf bzdiff $(PREFIX)/bin/bzcmp
+	install -m 644 bzip2.1 \
+	               bzgrep.1 \
+	               bzmore.1 \
+	               bzdiff.1 \
+	               $(PREFIX)/man/man1
+	ln -sf bzgrep.1 $(PREFIX)/man/man1/bzegrep.1
+	ln -sf bzgrep.1 $(PREFIX)/man/man1/bzfgrep.1
+	ln -sf bzmore.1 $(PREFIX)/man/man1/bzless.1
+	ln -sf bzdiff.1 $(PREFIX)/man/man1/bzcmp.1
+	ln -sf bzip2.1 $(PREFIX)/man/man1/bunzip2.1
+	ln -sf bzip2.1 $(PREFIX)/man/man1/bzcat.1
+	ln -sf bzip2.1 $(PREFIX)/man/man1/bzip2recover.1
 
 clean: 
 	rm -f *.o libbz2.a bzip2 bzip2recover \
diff -aur bzip2-1.0.6.orig/Makefile-libbz2_so bzip2-1.0.6/Makefile-libbz2_so
--- bzip2-1.0.6.orig/Makefile-libbz2_so	2007-12-09 14:00:50.000000000 +0100
+++ bzip2-1.0.6/Makefile-libbz2_so	2009-06-14 13:48:27.519580669 +0200
@@ -24,7 +24,7 @@
 SHELL=/bin/sh
 CC=gcc
 BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
+CFLAGS+=-fpic -Wall -Winline $(BIGFILES)
 
 OBJS= blocksort.o  \
       huffman.o    \
@@ -37,11 +37,15 @@
 all: $(OBJS)
 	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
 	$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
-	rm -f libbz2.so.1.0
-	ln -s libbz2.so.1.0.6 libbz2.so.1.0
+
+install:
+	install -d $(PREFIX)/lib
+	install -m 755 libbz2.so.1.0.6 $(PREFIX)/lib
+	ln -sf libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so.1.0
+	ln -sf libbz2.so.1.0 $(PREFIX)/lib/libbz2.so
 
 clean: 
-	rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
+	rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 bzip2-shared
 
 blocksort.o: blocksort.c
 	$(CC) $(CFLAGS) -c blocksort.c
diff -aur bzip2-1.0.6.orig/bzlib_private.h bzip2-1.0.6/bzlib_private.h
--- bzip2-1.0.6.orig/bzlib_private.h	2007-12-09 15:00:46.000000000 +0100
+++ bzip2-1.0.6/bzlib_private.h	2009-06-14 13:53:28.200579230 +0200
@@ -128,7 +128,7 @@
 
 /*-- Stuff for randomising repetitive blocks. --*/
 
-extern Int32 BZ2_rNums[512];
+extern const Int32 BZ2_rNums[512];
 
 #define BZ_RAND_DECLS                          \
    Int32 rNToGo;                               \
@@ -152,7 +152,7 @@
 
 /*-- Stuff for doing CRCs. --*/
 
-extern UInt32 BZ2_crc32Table[256];
+extern const UInt32 BZ2_crc32Table[256];
 
 #define BZ_INITIALISE_CRC(crcVar)              \
 {                                              \
diff -aur bzip2-1.0.6.orig/crctable.c bzip2-1.0.6/crctable.c
--- bzip2-1.0.6.orig/crctable.c	2007-12-09 13:29:49.000000000 +0100
+++ bzip2-1.0.6/crctable.c	2009-06-14 13:52:33.248830630 +0200
@@ -28,7 +28,7 @@
   comp.compression FAQ.
 --*/
 
-UInt32 BZ2_crc32Table[256] = {
+const UInt32 BZ2_crc32Table[256] = {
 
    /*-- Ugly, innit? --*/
 
diff -aur bzip2-1.0.6.orig/randtable.c bzip2-1.0.6/randtable.c
--- bzip2-1.0.6.orig/randtable.c	2007-12-09 13:32:55.000000000 +0100
+++ bzip2-1.0.6/randtable.c	2009-06-14 13:53:38.063580427 +0200
@@ -23,7 +23,7 @@
 
 
 /*---------------------------------------------*/
-Int32 BZ2_rNums[512] = { 
+const Int32 BZ2_rNums[512] = { 
    619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 
    985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 
    733, 859, 335, 708, 621, 574, 73, 654, 730, 472,