Hello,
i have found, that major distros (especially opensuse) ship their rsync packages
with a lot of patches which i don`t find in the official rsync-patches git.
Maybe there is a reason for that or i missed something or looked wrong, but for
convenience/transparency i have compiled a list of those and ask if it would
make sense to put them into the official rsync patches git, as most of them
don`t look very distro specific to me.
regards
Roland
Opensuse:
http://ftp.uni-ulm.de/mirrors/opensuse/source/distribution/openSUSE-current/repo/oss/suse/src/rsync-3.0.9-14.2.1.src.rpm
> dparam.diff
This patch adds a daemon option, --dparam (-M), that lets you override
global/default items in the config file when starting the daemon up.
> drop-cache.diff
From: Tobi Oetiker tobi{at}oetiker.ch
Date: 2007-04-23
I am using rsync for hard-link backup. I found that there is a
major problem with frequent backup filling up the file system cache
with all the data from the files being backed up. The effect is
that all the other 'sensible' data in the cache gets thrown out in
the process. This is rather unfortunate as the performance of the
system becomes very bad after running rsync.
--snip--
> log-checksum.diff
This patch to rsync adds a %C log escape that expands to the sender's
post-transfer checksum of a file for protocol 30 or above. This way, if
you need the MD5 checksums of transferred files, you can have rsync log
them instead of spending extra processor time on a separate command to
compute them.
-- Matt McCutchen <hashproduct at gmail.com>
> munge-links.diff
This patch adds the --munge-links option, which works like the daemon's
"munge symlinks" parameter.
> preallocate.diff
This patch adds the --preallocate option that asks rsync to preallocate the
copied files. This slows down the copy, but should reduce fragmentation on
systems that need that.
> remote-option.diff
This patch implements a new --remote-option (-M) option that allows the
user to override certain settings on the remote system. For instance, it
is now easier to pass -M--fake-super or "-M --log-file=/tmp/foo"
instead of
kluging up an --rsync-path setting. This also solves the case where we
want local --one-file-system (-x) but not remote ("-x -M--no-x"), or
visa
versa ("-M-x").
>stdout.diff
This patch adds a --stdout=line|unbuf option that lets the
user change the buffering of stdout.
>usermap.diff
This adds a --usermap and a --groupmap option. See the man page for
more details.
RedHat/CentOS:
http://vault.centos.org/6.3/os/Source/SPackages/rsync-3.0.6-9.el6.src.rpm
(i excluded those which are already listed under opensuse)
>daemon-forward-lookup.diff
This patch adds a forward lookup of any hostnames listed in the
"hosts allow" or "hosts deny" daemon config options. Based
on
a patch by Paul Williamson.
>osx-xattr-nodev.diff
This patch makes the xattr functions skip devices and special files,
because OS X returns the wrong errno when getting/setting xattrs on
them (it returns EPERM instead of ENOTSUP).
Debian:
http://patch-tracker.debian.org/package/rsync/3.0.9-4
+++ rsync-3.0.9/debian/patches/README
@@ -0,0 +1,27 @@
+These are the main patches to the rsync source.
+(The changes to the manpages for correct hyphens
+and quotes is a bit big, so not included.)
+
+If you're wondering about the lack of patches, the
+explanation is that upstream has adopted most of them :-)
+
+logdir.diff - fix the location of the logdir
+ssh-6-option.diff - call ssh with -6 option if rsync was called with -6,
+ ditto with -4
+rsyncd.conf.5.comment.diff - explain that a hash can only be at the beginning
+ of a line.
+delete-delay.diff - correct the error message given
+partial-timestamp.diff - update mtime on partially trasferred file
+ fixes problem with --update together with --partial
+manpages.GPL.diff - properly state "GNU General Public License"
+
+These are patches from the development branch that I consider important
+enough to include now:
+
+cast--1-size_t.diff
+ - Explicitly cast a -1 that is being assigned to a size_t.
+progress-cursor-pos.diff
+ - The --progress output now leaves the cursor at the end of the line
+ (instead of the start) in order to be extra sure that an error won't
+ overwrite it. We also ensure that the progress option can't be
enabled
+ on the server side.