[fuse-zip] patch for new libzip

Remi Collet remi at fedoraproject.org
Sat Feb 4 15:45:09 UTC 2012


commit 4f9cef51cbe6f42db0e5478bbe6dbfd4c1df5a05
Author: remi <fedora at famillecollet.com>
Date:   Sat Feb 4 16:44:32 2012 +0100

    patch for new libzip

 fuse-zip-libzip010.patch |   32 ++++++++++++++++++++++++++++++++
 fuse-zip.spec            |    3 +++
 2 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/fuse-zip-libzip010.patch b/fuse-zip-libzip010.patch
new file mode 100644
index 0000000..26199ee
--- /dev/null
+++ b/fuse-zip-libzip010.patch
@@ -0,0 +1,32 @@
+diff -up fuse-zip-0.2.12/bigBuffer.cpp.orig fuse-zip-0.2.12/bigBuffer.cpp
+--- fuse-zip-0.2.12/bigBuffer.cpp.orig	2012-02-04 16:28:38.000000000 +0100
++++ fuse-zip-0.2.12/bigBuffer.cpp	2012-02-04 16:37:13.000000000 +0100
+@@ -244,7 +244,12 @@ void BigBuffer::truncate(offset_t offset
+     len = offset;
+ }
+ 
++// LIBZIP_VERSION is only defined in libzip >= 0.10 which use a new prototype for callback
++#ifdef LIBZIP_VERSION
++zip_int64_t BigBuffer::zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd) {
++#else
+ ssize_t BigBuffer::zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd) {
++#endif
+     CallBackStruct *b = (CallBackStruct*)state;
+     switch (cmd) {
+         case ZIP_SOURCE_OPEN: {
+diff -up fuse-zip-0.2.12/bigBuffer.h.orig fuse-zip-0.2.12/bigBuffer.h
+--- fuse-zip-0.2.12/bigBuffer.h.orig	2012-02-04 16:30:13.000000000 +0100
++++ fuse-zip-0.2.12/bigBuffer.h	2012-02-04 16:37:16.000000000 +0100
+@@ -46,7 +46,12 @@ private:
+ 
+     chunks_t chunks;
+ 
++// LIBZIP_VERSION is only defined in libzip >= 0.10 which use a new prototype for callback
++#ifdef LIBZIP_VERSION
++    static zip_int64_t zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd);
++#else
+     static ssize_t zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd);
++#endif
+ 
+     /**
+      * Return number of chunks needed to keep 'offset' bytes.
diff --git a/fuse-zip.spec b/fuse-zip.spec
index fae20f9..00c2e38 100644
--- a/fuse-zip.spec
+++ b/fuse-zip.spec
@@ -9,6 +9,7 @@ Source0:        http://%{name}.googlecode.com/files/%{name}-%{version}.tar.gz
 # Submitted patch
 # http://code.google.com/p/fuse-zip/issues/detail?id=15
 Patch0:         fuse-zip-makefile.patch
+Patch1:         fuse-zip-libzip010.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  libzip-devel, pkgconfig, fuse-devel, zlib-devel
 Requires:       fuse
@@ -28,6 +29,7 @@ on large archives with many files.
 %prep
 %setup -q
 %patch0 -p1 -b .makefile
+%patch1 -p1 -b .libzip010
 
 %build
 make %{?_smp_mflags} CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_OPT_FLAGS"
@@ -49,6 +51,7 @@ rm -rf $RPM_BUILD_ROOT
 %changelog
 * Sat Feb 04 2012 Remi Collet <remi at fedoraproject.org> - 0.2.12-4
 - rebuild for new libzip
+- add patch for new callback prototype (fix #787370)
 
 * Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.2.12-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild


More information about the scm-commits mailing list