diff -up deltarpm-git-20090913/cfile.c.mine deltarpm-git-20090913/cfile.c
--- deltarpm-git-20090913/cfile.c.mine 2009-09-30 14:14:01.422201390 -0700
+++ deltarpm-git-20090913/cfile.c 2009-09-30 14:14:04.779201784 -0700
@@ -17,6 +17,16 @@
#include "cfile.h"
+/* Unfortunately, we need to know what this flag is whether we have a zlib
+ * which has been modified to include it or not
+ */
+#ifdef Z_RSYNCABLE
+#define CFILE_Z_RSYNCABLE Z_RSYNCABLE
+#else
+/* This is the value from the current patch */
+#define CFILE_Z_RSYNCABLE 0x4000
+#endif
+
/*****************************************************************
* generic input/output routines
*/
@@ -888,8 +898,12 @@ crunread_un(struct cfile *f, void *buf,
}
-#ifdef Z_RSYNCABLE
-
+/*
+ * Checks whether a cfile was compressed with the RSYNCABLE flag via amodified
+ * zlib. If so, it changes the cfile->comp to CFILE_COMP_GZ_RSYNC.
+ *
+ * On error, return -1, otherwise return 0.
+ */
int
cfile_detect_rsync(struct cfile *f)
{
@@ -922,7 +936,7 @@ cfile_detect_rsync(struct cfile *f)
cstrm[i].zalloc = 0;
cstrm[i].zfree = 0;
cstrm[i].opaque = 0;
- if (deflateInit2(&cstrm[i], Z_BEST_COMPRESSION, Z_DEFLATED, -MAX_WBITS, 8, Z_DEFAULT_STRATEGY | (i == 1 ? Z_RSYNCABLE : 0)) != Z_OK)
+ if (deflateInit2(&cstrm[i], Z_BEST_COMPRESSION, Z_DEFLATED, -MAX_WBITS, 8, Z_DEFAULT_STRATEGY | (i == 1 ? CFILE_Z_RSYNCABLE : 0)) != Z_OK)
{
if (i)
deflateEnd(&cstrm[0]);
@@ -1053,16 +1067,6 @@ cfile_detect_rsync(struct cfile *f)
return comp == -1 ? -1 : 0;
}
-#else
-
-int
-cfile_detect_rsync(struct cfile *f)
-{
- return -1;
-}
-
-#endif
-
/*****************************************************************
* our open function
*/
diff -up deltarpm-git-20090913/Makefile.mine deltarpm-git-20090913/Makefile
--- deltarpm-git-20090913/Makefile.mine 2009-09-30 14:13:54.161201546 -0700
+++ deltarpm-git-20090913/Makefile 2009-09-30 14:14:09.189200835 -0700
@@ -4,9 +4,12 @@ libdir=$(prefix)/lib
mandir=$(prefix)/man
rpmdumpheader=$(bindir)/rpmdumpheader
zlibdir=zlib-1.2.2.f-rsyncable
+zlibbundled=$(zlibdir)/libz.a
+zlibldflags=$(zlibbundled)
+zlibcppflags=-I$(zlibdir)
CFLAGS = -fPIC -O2 -Wall -g
-CPPFLAGS = -fPIC -DDELTARPM_64BIT -DBSDIFF_NO_SUF -DRPMDUMPHEADER=\"$(rpmdumpheader)\" -I$(zlibdir)
-LDLIBS = -lbz2 $(zlibdir)/libz.a -llzma
+CPPFLAGS = -fPIC -DDELTARPM_64BIT -DBSDIFF_NO_SUF -DRPMDUMPHEADER=\"$(rpmdumpheader)\" $(zlibcppflags)
+LDLIBS = -lbz2 $(zlibldflags) -llzma
LDFLAGS =
PYTHONVERS = $(shell ls /usr/include/python*/Python.h | sed "s|/usr/include/||g"| sed "s|/Python.h||g")
@@ -14,31 +17,31 @@ all: makedeltarpm applydeltarpm rpmdumph
python: _deltarpmmodule.so
-makedeltarpm: makedeltarpm.o writedeltarpm.o md5.o util.o rpml.o rpmhead.o cpio.o delta.o cfile.o $(zlibdir)/libz.a
+makedeltarpm: makedeltarpm.o writedeltarpm.o md5.o util.o rpml.o rpmhead.o cpio.o delta.o cfile.o $(zlibbundled)
-applydeltarpm: applydeltarpm.o readdeltarpm.o md5.o sha256.o util.o rpmhead.o cpio.o cfile.o prelink.o $(zlibdir)/libz.a
+applydeltarpm: applydeltarpm.o readdeltarpm.o md5.o sha256.o util.o rpmhead.o cpio.o cfile.o prelink.o $(zlibbundled)
-combinedeltarpm: combinedeltarpm.o md5.o util.o rpmhead.o cfile.o readdeltarpm.o writedeltarpm.o $(zlibdir)/libz.a
+combinedeltarpm: combinedeltarpm.o md5.o util.o rpmhead.o cfile.o readdeltarpm.o writedeltarpm.o $(zlibbundled)
rpmdumpheader: rpmdumpheader.o
$(CC) $(LDFLAGS) $^ -lrpm -o $@
-makedeltaiso: makedeltaiso.o delta.o rpmoffs.o rpmhead.o util.o md5.o cfile.o $(zlibdir)/libz.a
+makedeltaiso: makedeltaiso.o delta.o rpmoffs.o rpmhead.o util.o md5.o cfile.o $(zlibbundled)
-applydeltaiso: applydeltaiso.o util.o md5.o cfile.o $(zlibdir)/libz.a
+applydeltaiso: applydeltaiso.o util.o md5.o cfile.o $(zlibbundled)
-fragiso: fragiso.o util.o md5.o rpmhead.o cfile.o $(zlibdir)/libz.a
+fragiso: fragiso.o util.o md5.o rpmhead.o cfile.o $(zlibbundled)
-_deltarpmmodule.so: readdeltarpm.o rpmhead.o util.o md5.o cfile.o $(zlibdir)/libz.a
+_deltarpmmodule.so: readdeltarpm.o rpmhead.o util.o md5.o cfile.o $(zlibbundled)
for ver in $(PYTHONVERS) ; do \
if [ ! -f "$$ver/$@" ]; then \
mkdir -p $$ver ;\
- $(CC) $(CFLAGS) -I/usr/include/$$ver -I$(zlibdir) -fPIC -c -o $$ver/deltarpmmodule.o deltarpmmodule.c ;\
- $(CC) -o $$ver/$@ $$ver/deltarpmmodule.o $^ -shared -Wl,-soname,_deltarpmmodule.so $(zlibdir)/libz.a -llzma -lbz2; \
+ $(CC) $(CFLAGS) -I/usr/include/$$ver $(zlibcppflag) -fPIC -c -o $$ver/deltarpmmodule.o deltarpmmodule.c ;\
+ $(CC) -o $$ver/$@ $$ver/deltarpmmodule.o $^ -shared -Wl,-soname,_deltarpmmodule.so $(LDLIBS); \
fi; \
done
-$(zlibdir)/libz.a:
+$(zlibbundled):
cd $(zlibdir) ; make CFLAGS="-fPIC $(CFLAGS)" libz.a
clean: