rsync: enable selecting bundled or system zlib
authorIan Leonard <redacted>
Thu, 4 Sep 2014 00:33:03 +0000 (17:33 -0700)
committerIan Leonard <redacted>
Fri, 5 Sep 2014 03:56:58 +0000 (20:56 -0700)
rsync, by default, includes a patched zlib within its source tarball. The patch
enables a better compression ratio for rsync streams. However, the client and
server need the same featureset in their zlib in order to understand the
compression stream, or the server will abort the transfer. Older versions have
no understanding of the new compression standard used.

This patch allows the builder to choose whether to use the bundled or system
zlib. It defautls to using the system zlib, as is the default before this
patch.

Signed-off-by: Ian Leonard <redacted>
net/rsync/Config.in
net/rsync/Makefile

index c782880693e3102ffc6259f541f8b858f01509ea..dfbfdf16c9ae40f45887a3e092b3411e7c28792a 100644 (file)
@@ -9,4 +9,17 @@ if PACKAGE_rsync
                bool
                prompt "Enable ACL support"
                default n
+
+       config RSYNC_zlib
+               bool
+               prompt "Enable system zlib"
+               help 
+                       Use the system's zlib library instead of rsync's internal copy. Enabling
+                       this may create compatibility errors when using compression  with older
+                       clients, or those using the current default of the bundled zlib.
+
+                       rsync's upstream default is to use their bundled zlib. OpenWrt uses the
+                       system zlib for space reasons. The system zlib will eventually become 
+                       default for upstream as well.
+               default y
 endif
index 6d6d201b6c2bebe2db90a6581ee88dd734aa911e..dd0dfb2cc5915105744766052669fbc11fa32faf 100644 (file)
@@ -29,7 +29,7 @@ define Package/rsync
   CATEGORY:=Network
   SUBMENU:=File Transfer
   TITLE:=Fast remote file copy program (like rcp)
-  DEPENDS:=+libpopt +zlib +RSYNC_xattr:libattr +RSYNC_acl:libacl
+  DEPENDS:=+libpopt +RSYNC_xattr:libattr +RSYNC_acl:libacl +RSYNC_zlib:zlib
   URL:=http://rsync.samba.org/
   MENU:=1
 endef
@@ -38,6 +38,11 @@ define Package/rsync/config
        source "$(SOURCE)/Config.in"
 endef
 
+CONFIGURE_ARGS += \
+       --with-included-popt=no \
+       --disable-debug \
+       --disable-locale \
+
 ifeq ($(CONFIG_RSYNC_xattr),y)
        CONFIGURE_ARGS+= --enable-xattr-support
 else
@@ -50,6 +55,12 @@ else
        CONFIGURE_ARGS+= --disable-acl-support
 endif
 
+ifeq ($(CONFIG_RSYNC_zlib),y)
+       CONFIGURE_ARGS+= --with-included-zlib=no
+else
+       CONFIGURE_ARGS+= --with-included-zlib=yes
+endif
+
 define Package/rsyncd
   SECTION:=net
   CATEGORY:=Network
@@ -69,12 +80,6 @@ define Package/rsync/description
  between two sets of files across the network link.
 endef
 
-CONFIGURE_ARGS += \
-       --with-included-popt=no \
-       --with-included-zlib=no \
-       --disable-debug \
-       --disable-locale \
-
 define Package/rsync/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
git clone https://git.99rst.org/PROJECT