summary refs log tree commit diff
path: root/pkgs/tools/filesystems/fuse-zip
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-02-28 15:43:06 +0100
committerVladimír Čunát <vcunat@gmail.com>2013-02-28 15:43:06 +0100
commitc0f6910758a816d7be066a1cbccb487c6139f300 (patch)
treebad5e2045d98c19df8fa19ab6fca8aeb951b7b3f /pkgs/tools/filesystems/fuse-zip
parent4cf8fa5f8a6bfd1e8f1100f334d54c25c5029490 (diff)
downloadnixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar.gz
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar.bz2
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar.lz
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar.xz
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.tar.zst
nixlib-c0f6910758a816d7be066a1cbccb487c6139f300.zip
fuse_zip: fix with new libzip
Diffstat (limited to 'pkgs/tools/filesystems/fuse-zip')
-rw-r--r--pkgs/tools/filesystems/fuse-zip/default.nix6
-rw-r--r--pkgs/tools/filesystems/fuse-zip/libzip.patch24
2 files changed, 28 insertions, 2 deletions
diff --git a/pkgs/tools/filesystems/fuse-zip/default.nix b/pkgs/tools/filesystems/fuse-zip/default.nix
index 346b11015f46..a5ac74fe47a5 100644
--- a/pkgs/tools/filesystems/fuse-zip/default.nix
+++ b/pkgs/tools/filesystems/fuse-zip/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "fuse-zip-0.2.13";
-  
+
   src = fetchurl {
     url = "http://fuse-zip.googlecode.com/files/${name}.tar.gz";
     sha1 = "9cfa00e38a59d4e06fd47bfaca75ad5e299ecc6b";
   };
 
+  patches = [ ./libzip.patch ]; # problems with new libzip; from Gentoo
+
   buildInputs = [ pkgconfig fuse libzip zlib ];
 
   makeFlags = "INSTALLPREFIX=$(out)";
-  
+
   meta = {
     homepage = http://code.google.com/p/fuse-zip/;
     description = "A FUSE-based filesystem that allows read and write access to ZIP files";
diff --git a/pkgs/tools/filesystems/fuse-zip/libzip.patch b/pkgs/tools/filesystems/fuse-zip/libzip.patch
new file mode 100644
index 000000000000..f2348e5f1bab
--- /dev/null
+++ b/pkgs/tools/filesystems/fuse-zip/libzip.patch
@@ -0,0 +1,24 @@
+diff -ru fuse-zip-0.2.13/lib/bigBuffer.cpp fuse-zip-0.2.13.new//lib/bigBuffer.cpp
+--- fuse-zip-0.2.13/lib/bigBuffer.cpp	2010-12-06 12:34:32.000000000 -0500
++++ fuse-zip-0.2.13.new//lib/bigBuffer.cpp	2011-09-28 21:40:01.294946957 -0400
+@@ -236,7 +236,7 @@
+     len = offset;
+ }
+ 
+-ssize_t BigBuffer::zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd) {
++zip_int64_t BigBuffer::zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd) {
+     CallBackStruct *b = (CallBackStruct*)state;
+     switch (cmd) {
+         case ZIP_SOURCE_OPEN: {
+diff -ru fuse-zip-0.2.13/lib/bigBuffer.h fuse-zip-0.2.13.new//lib/bigBuffer.h
+--- fuse-zip-0.2.13/lib/bigBuffer.h	2010-12-06 12:34:32.000000000 -0500
++++ fuse-zip-0.2.13.new//lib/bigBuffer.h	2011-09-28 21:40:23.203719133 -0400
+@@ -52,7 +52,7 @@
+      * never called because read() always successfull.
+      * See zip_source_function(3) for details.
+      */
+-    static ssize_t zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd);
++    static zip_int64_t zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd);
+ 
+     /**
+      * Return number of chunks needed to keep 'offset' bytes.