Blob Blame History Raw
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: