[package] add 4GB file handling patch to librsync (#5642)
authorFlorian Fainelli <florian@openwrt.org>
Sat, 8 Aug 2009 14:12:27 +0000 (14:12 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 8 Aug 2009 14:12:27 +0000 (14:12 +0000)
SVN-Revision: 17180

libs/librsync/Makefile
libs/librsync/patches/001-4gb_files.patch [new file with mode: 0644]

index d340018e5b73a8a02f33d7e283a91b0a2c69c7e5..62b886bbb99a72a6173f94392f500499ac824f6c 100644 (file)
@@ -1,5 +1,5 @@
 # 
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2009 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=librsync
 PKG_VERSION:=0.9.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/librsync
diff --git a/libs/librsync/patches/001-4gb_files.patch b/libs/librsync/patches/001-4gb_files.patch
new file mode 100644 (file)
index 0000000..3c0128e
--- /dev/null
@@ -0,0 +1,31 @@
+diff -urN librsync-0.9.7/mdfour.h librsync-0.9.7.new/mdfour.h
+--- librsync-0.9.7/mdfour.h    2004-02-08 00:17:57.000000000 +0100
++++ librsync-0.9.7.new/mdfour.h        2009-08-08 16:08:57.000000000 +0200
+@@ -24,7 +24,7 @@
+ #include "types.h"
+ struct rs_mdfour {
+-    int                 A, B, C, D;
++    unsigned int                 A, B, C, D;
+ #if HAVE_UINT64
+     uint64_t            totalN;
+ #else
+diff -urN librsync-0.9.7/patch.c librsync-0.9.7.new/patch.c
+--- librsync-0.9.7/patch.c     2004-09-17 23:35:50.000000000 +0200
++++ librsync-0.9.7.new/patch.c 2009-08-08 16:10:40.000000000 +0200
+@@ -214,12 +214,12 @@
+     void            *buf, *ptr;
+     rs_buffers_t    *buffs = job->stream;
+-    len = job->basis_len;
+-    
+     /* copy only as much as will fit in the output buffer, so that we
+      * don't have to block or store the input. */
+-    if (len > buffs->avail_out)
++    if (job->basis_len > buffs->avail_out)
+         len = buffs->avail_out;
++    else
++      len = job->basis_len;
+     if (!len)
+         return RS_BLOCKED;