OBS User unknown 2007-05-25 21:56:09 +00:00 committed by Git OBS Bridge
parent 072e604215
commit 02f858b34c
7 changed files with 165 additions and 191 deletions

View File

@ -1,152 +0,0 @@
--- Makefile
+++ Makefile
@@ -24,33 +24,50 @@
CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
# Where you want it installed when you do 'make install'
-PREFIX=/usr/local
+PREFIX=/usr
-OBJS= blocksort.o \
- huffman.o \
- crctable.o \
- randtable.o \
- compress.o \
- decompress.o \
- bzlib.o
+OBJS= blocksort.lo \
+ huffman.lo \
+ crctable.lo \
+ randtable.lo \
+ compress.lo \
+ decompress.lo \
+ bzlib.lo
+
+LIB= libbz2.la
+
+prefix= /usr
+bindir= $(prefix)/bin
+libdir= $(prefix)/lib
+mandir= $(prefix)/share/man
+includedir= $(prefix)/include
+
+all: $(LIB) bzip2 bzip2recover test
+
+install: all test
+ mkdir -p $(PREFIX)$(bindir)
+ libtool --mode=install install -m 0755 bzip2 bzip2recover $(PREFIX)$(bindir)
+ ln -sf bzip2 $(PREFIX)$(bindir)/bunzip2
+ ln -sf bzip2 $(PREFIX)$(bindir)/bzcat
+ mkdir -p $(PREFIX)$(mandir)/man1
+ install -c -m 0644 bzip2.1 $(PREFIX)$(mandir)/man1/bzip2.1
+ ln -sf bzip2.1 $(PREFIX)$(mandir)/man1/bunzip2.1
+ ln -sf bzip2.1 $(PREFIX)$(mandir)/man1/bzcat.1
+ mkdir -p $(PREFIX)$(libdir)
+ libtool --mode=install install $(LIB) $(PREFIX)$(libdir)
+ mkdir -p $(PREFIX)$(includedir)
+ install -c -m 0644 bzlib.h $(PREFIX)$(includedir)
-all: libbz2.a bzip2 bzip2recover test
-
-bzip2: libbz2.a bzip2.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
+bzip2: bzip2.o $(LIB)
+ libtool --mode=link $(CC) $(CFLAGS) -o $@ bzip2.o $(LIB)
bzip2recover: bzip2recover.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o
+ libtool --mode=link $(CC) $(CFLAGS) -o $@ bzip2recover.o
-libbz2.a: $(OBJS)
- rm -f libbz2.a
- $(AR) cq libbz2.a $(OBJS)
- @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
- -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \
- echo $(RANLIB) libbz2.a ; \
- $(RANLIB) libbz2.a ; \
- fi
+$(LIB): $(OBJS)
+ libtool --mode=link $(CC) $(CFLAGS) -o $@ $(OBJS) -rpath $(libdir) \
+ -version-info 1:0:0
check: test
test: bzip2
@@ -69,70 +86,18 @@
cmp sample3.tst sample3.ref
@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
-
clean:
- rm -f *.o libbz2.a bzip2 bzip2recover \
+ rm -f *.o *.a $(LIB) bzip2 bzip2recover \
sample1.rb2 sample2.rb2 sample3.rb2 \
sample1.tst sample2.tst sample3.tst
-blocksort.o: blocksort.c
- @cat words0
- $(CC) $(CFLAGS) -c blocksort.c
-huffman.o: huffman.c
- $(CC) $(CFLAGS) -c huffman.c
-crctable.o: crctable.c
- $(CC) $(CFLAGS) -c crctable.c
-randtable.o: randtable.c
- $(CC) $(CFLAGS) -c randtable.c
-compress.o: compress.c
- $(CC) $(CFLAGS) -c compress.c
-decompress.o: decompress.c
- $(CC) $(CFLAGS) -c decompress.c
-bzlib.o: bzlib.c
- $(CC) $(CFLAGS) -c bzlib.c
-bzip2.o: bzip2.c
- $(CC) $(CFLAGS) -c bzip2.c
-bzip2recover.o: bzip2recover.c
- $(CC) $(CFLAGS) -c bzip2recover.c
+.SUFFIXES: .c .o .lo
+
+%.o: %.c bzlib.h bzlib_private.h
+ $(CC) $(CFLAGS) -c $<
+%.lo: %.c bzlib.h bzlib_private.h
+ libtool --mode=compile $(CC) $(CFLAGS) -c $<
distclean: clean
rm -f manual.ps manual.html manual.pdf

View File

@ -1,6 +1,6 @@
--- ./bzlib_private.h.orig 2005-08-12 10:40:07.000000000 +0000
+++ ./bzlib_private.h 2005-08-12 10:50:02.000000000 +0000
@@ -374,6 +374,7 @@ BZ2_hbMakeCodeLengths ( UChar*, Int32*,
--- bzlib_private.h
+++ bzlib_private.h
@@ -340,6 +340,7 @@
#define MTFA_SIZE 4096
#define MTFL_SIZE 16
@ -8,7 +8,7 @@
/*-- Structure holding all the decompression-side stuff. --*/
@@ -441,6 +442,7 @@ typedef
@@ -407,6 +408,7 @@
Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
Int32 minLens[BZ_N_GROUPS];
@ -16,7 +16,7 @@
/* save area for scalars in the main decompress code */
Int32 save_i;
@@ -467,6 +469,7 @@ typedef
@@ -433,6 +435,7 @@
Int32* save_gLimit;
Int32* save_gBase;
Int32* save_gPerm;
@ -24,7 +24,7 @@
}
DState;
@@ -516,8 +519,8 @@ extern Int32
@@ -482,8 +485,8 @@
BZ2_decompress ( DState* );
extern void
@ -35,9 +35,9 @@
#endif
--- ./decompress.c.orig 2005-08-12 10:27:55.000000000 +0000
+++ ./decompress.c 2005-08-12 12:08:14.188288783 +0000
@@ -104,6 +104,9 @@ void makeMaps_d ( DState* s )
--- decompress.c
+++ decompress.c
@@ -64,6 +64,9 @@
s->strm->total_in_hi32++; \
}
@ -47,7 +47,7 @@
#define GET_UCHAR(lll,uuu) \
GET_BITS(lll,uuu,8)
@@ -123,23 +126,29 @@ void makeMaps_d ( DState* s )
@@ -83,23 +86,29 @@
gLimit = &(s->limit[gSel][0]); \
gPerm = &(s->perm[gSel][0]); \
gBase = &(s->base[gSel][0]); \
@ -90,7 +90,7 @@
/*---------------------------------------------------*/
@@ -175,6 +184,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -135,6 +144,7 @@
Int32* gLimit;
Int32* gBase;
Int32* gPerm;
@ -98,7 +98,7 @@
if (s->state == BZ_X_MAGIC_1) {
/*initialise the save area*/
@@ -202,6 +212,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -162,6 +172,7 @@
s->save_gLimit = NULL;
s->save_gBase = NULL;
s->save_gPerm = NULL;
@ -106,7 +106,7 @@
}
/*restore from the save area*/
@@ -229,6 +240,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -189,6 +200,7 @@
gLimit = s->save_gLimit;
gBase = s->save_gBase;
gPerm = s->save_gPerm;
@ -114,7 +114,7 @@
retVal = BZ_OK;
@@ -380,6 +392,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -340,6 +352,7 @@
&(s->limit[t][0]),
&(s->base[t][0]),
&(s->perm[t][0]),
@ -122,7 +122,7 @@
&(s->len[t][0]),
minLen, maxLen, alphaSize
);
@@ -454,6 +467,62 @@ Int32 BZ2_decompress ( DState* s )
@@ -414,6 +427,62 @@
if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
/*-- uc = MTF ( nextSym-1 ) --*/
@ -185,7 +185,7 @@
{
Int32 ii, jj, kk, pp, lno, off;
UInt32 nn;
@@ -505,6 +574,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -465,6 +534,7 @@
}
}
}
@ -193,7 +193,7 @@
/*-- end uc = MTF ( nextSym-1 ) --*/
s->unzftab[s->seqToUnseq[uc]]++;
@@ -656,6 +726,7 @@ Int32 BZ2_decompress ( DState* s )
@@ -616,6 +686,7 @@
s->save_gLimit = gLimit;
s->save_gBase = gBase;
s->save_gPerm = gPerm;
@ -201,9 +201,9 @@
return retVal;
}
--- ./huffman.c.orig 2005-08-12 10:45:28.000000000 +0000
+++ ./huffman.c 2005-08-12 12:04:19.000000000 +0000
@@ -210,13 +213,16 @@ void BZ2_hbAssignCodes ( Int32 *code,
--- huffman.c
+++ huffman.c
@@ -173,13 +173,16 @@
void BZ2_hbCreateDecodeTables ( Int32 *limit,
Int32 *base,
Int32 *perm,
@ -221,7 +221,7 @@
pp = 0;
for (i = minLen; i <= maxLen; i++)
for (j = 0; j < alphaSize; j++)
@@ -227,16 +233,25 @@ void BZ2_hbCreateDecodeTables ( Int32 *l
@@ -190,16 +193,25 @@
for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];

View File

@ -1,6 +1,6 @@
--- ./compress.c.orig 2005-08-12 12:02:26.000000000 +0000
+++ ./compress.c 2005-08-12 12:03:16.000000000 +0000
@@ -488,11 +488,9 @@ void sendMTFValues ( EState* s )
--- compress.c
+++ compress.c
@@ -444,11 +444,9 @@
/*--
Recompute the tables based on the accumulated frequencies.
--*/
@ -13,7 +13,7 @@
}
@@ -529,7 +527,7 @@ void sendMTFValues ( EState* s )
@@ -485,7 +483,7 @@
if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
if (s->len[t][i] < minLen) minLen = s->len[t][i];
}
@ -22,9 +22,9 @@
AssertH ( !(minLen < 1), 3005 );
BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
minLen, maxLen, alphaSize );
--- ./huffman.c.orig 2005-08-12 10:45:28.000000000 +0000
+++ ./huffman.c 2005-08-12 12:04:19.000000000 +0000
@@ -177,7 +177,10 @@ void BZ2_hbMakeCodeLengths ( UChar *len,
--- huffman.c
+++ huffman.c
@@ -137,7 +137,10 @@
Huffman codes with a maximum length of 17 bits. However, in
order to preserve backwards compatibility with bitstreams
produced by versions pre-1.0.3, the decompressor must still

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri May 25 23:28:01 CEST 2007 - dmueller@suse.de
- build with profile feedback enabled (7-15% speedup)
-------------------------------------------------------------------
Fri Mar 30 10:14:57 CEST 2007 - rguenther@suse.de

View File

@ -12,7 +12,7 @@
Name: bzip2
Version: 1.0.4
Release: 9
Release: 19
Provides: bzip
Obsoletes: bzip
# The following is a kludge to get updating bzip2 to after the split work
@ -25,7 +25,8 @@ Summary: A Program for Compressing Files
Source: bzip2-%{version}.tar.gz
Source1: bznew.gz
Source2: bznew.1.gz
Patch1: bzip2-%{version}-makefile.patch
Source100: rpmlintrc
Patch1: shared-lib.diff
Patch2: bzip2-maxlen20.patch
Patch3: bzip2-faster.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -86,20 +87,36 @@ Authors:
%patch3
%build
# -O3 really makes a difference
RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-O2/-O3}
make CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64 -Wall -Winline" libdir=%{_libdir}
profile_bzip2()
{
tmpfile=$(mktemp)
trap "rm -f $tmpfile $tmpfile.gz" EXIT
tar -cjf $tmpfile.bz2 /usr/src || true
# time ./bzip2 $tmpfile
export LD_PRELOAD=$PWD/libbz2.so
time ./bzip2 -d < $tmpfile.bz2 > /dev/null
unset LD_PRELOAD
}
export CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64 -Wall -Winline -fpic"
%if %{do_profiling}
make CFLAGS="$CFLAGS %{cflags_profile_generate}" LIBDIR=%{_libdir} %{?jobs:-j %jobs} bzip2
profile_bzip2
make clean
make CFLAGS="$CFLAGS %{cflags_profile_feedback}" LIBDIR=%{_libdir} %{?jobs:-j %jobs} bzip2
%endif
make CFLAGS="$CFLAGS" LIBDIR=%{_libdir} %{?jobs:-j %jobs}
%install
make PREFIX=$RPM_BUILD_ROOT install libdir=%{_libdir}
make PREFIX=$RPM_BUILD_ROOT%{_prefix} MANDIR=$RPM_BUILD_ROOT%{_mandir} \
LIBDIR=$RPM_BUILD_ROOT%{_libdir} install
gzip -9 manual.ps
gzip -dc %{SOURCE1} > bznew
install -m 755 bznew $RPM_BUILD_ROOT%{_bindir}/
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1/
install -D -m 755 bznew $RPM_BUILD_ROOT%{_bindir}/bznew
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1
install -m 755 -d $RPM_BUILD_ROOT/%{_lib}/
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
mv $RPM_BUILD_ROOT%{_libdir}/libbz2.so.* $RPM_BUILD_ROOT/%{_lib}/
ln -sf ../../%{_lib}/libbz2.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libbz2.so
mv $RPM_BUILD_ROOT%{_libdir}/libbz2.so $RPM_BUILD_ROOT/%{_lib}/libbz2.so.%{version}
ln -sf libbz2.so.%{version} $RPM_BUILD_ROOT/%{_lib}/libbz2.so.1
ln -sf ../../%{_lib}/libbz2.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libbz2.so
%clean
rm -rf $RPM_BUILD_ROOT
@ -130,6 +147,8 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libbz2.so
%changelog
* Fri May 25 2007 - dmueller@suse.de
- build with profile feedback enabled (7-15%% speedup)
* Fri Mar 30 2007 - rguenther@suse.de
- Add PreReq to libbz2 from bzip2 to work around update problems
* Fri Mar 23 2007 - rguenther@suse.de

4
rpmlintrc Normal file
View File

@ -0,0 +1,4 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter("bzip2 explicit-lib-dependency libbz2")

98
shared-lib.diff Normal file
View File

@ -0,0 +1,98 @@
--- Makefile
+++ Makefile
@@ -24,8 +24,9 @@
CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
# Where you want it installed when you do 'make install'
-PREFIX=/usr/local
-
+PREFIX=/usr
+MANDIR=$(PREFIX)/man
+LIBDIR=$(PREFIX)/lib
OBJS= blocksort.o \
huffman.o \
@@ -35,10 +36,10 @@
decompress.o \
bzlib.o
-all: libbz2.a bzip2 bzip2recover test
+all: libbz2.a libbz2.so bzip2 bzip2recover test
-bzip2: libbz2.a bzip2.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
+bzip2: libbz2.a libbz2.so bzip2.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o libbz2.so
bzip2recover: bzip2recover.o
$(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o
@@ -52,6 +53,10 @@
$(RANLIB) libbz2.a ; \
fi
+libbz2.so: $(OBJS)
+ rm -f libbz2.so*
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -o libbz2.so -Wl,-soname,libbz2.so.1 $(OBJS)
+
check: test
test: bzip2
@cat words1
@@ -71,45 +76,29 @@
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 $(LIBDIR) ) ; then mkdir -p $(LIBDIR) ; 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 $(MANDIR)/man1 ) ; then mkdir -p $(MANDIR)/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
+ ln -sf bzip2 $(PREFIX)/bin/bunzip2
+ ln -sf 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 bzip2.1 $(MANDIR)/man1
+ chmod a+r $(MANDIR)/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
+ cp -f libbz2.a $(LIBDIR)
+ chmod a+r $(LIBDIR)/libbz2.a
+ cp -f libbz2.so $(LIBDIR)
+ chmod a+r $(LIBDIR)/libbz2.so
+ echo ".so man1/bzip2.1" > $(MANDIR)/man1/bunzip2.1
+ echo ".so man1/bzip2.1" > $(MANDIR)/man1/bzcat.1
clean:
- rm -f *.o libbz2.a bzip2 bzip2recover \
+ rm -f *.o libbz2.a libbz2.so bzip2 bzip2recover \
sample1.rb2 sample2.rb2 sample3.rb2 \
sample1.tst sample2.tst sample3.tst