Hello community,
here is the log from the commit of package rsync for openSUSE:Factory
checked in at Fri Aug 7 21:45:46 CEST 2009.
--------
--- rsync/rsync.changes 2009-05-05 15:31:54.000000000 +0200
+++ rsync/rsync.changes 2009-08-05 11:26:15.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Aug 5 11:24:00 CEST 2009 - puzel@novell.com
+
+- bump version to 3.0.6
+- drop rsync-allow-slp-disable.patch (merged upstream)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
rsync-3.0.6pre1.tar.bz2
rsync-allow-slp-disable.patch
rsync-patches-3.0.6pre1.tar.bz2
New:
----
rsync-3.0.6.tar.bz2
rsync-patches-3.0.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rsync.spec ++++++
--- /var/tmp/diff_new_pack.g7BT4J/_old 2009-08-07 21:44:53.000000000 +0200
+++ /var/tmp/diff_new_pack.g7BT4J/_new 2009-08-07 21:44:53.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package rsync (Version 3.0.5.91)
+# spec file for package rsync (Version 3.0.6)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -31,12 +31,11 @@
Group: Productivity/Networking/Other
PreReq: %fillup_prereq %insserv_prereq sed grep
AutoReqProv: on
-Version: 3.0.5.91
-Release: 2
-%define tar_version 3.0.6pre1
+Version: 3.0.6
+Release: 1
Summary: Replacement for RCP/mirror that has Many More Features
-Source: %{name}-%{tar_version}.tar.bz2
-Source1: %{name}-patches-%{tar_version}.tar.bz2
+Source: %{name}-%{version}.tar.bz2
+Source1: %{name}-patches-%{version}.tar.bz2
Source2: logrotate.rsync
Source3: rsync.xinetd
Source4: rsyncd.rc
@@ -46,8 +45,6 @@
Patch3: system-zlib.diff
#PATCH-FIX-UPSTREAM rsync-3.0.5-doc-fix.patch bnc487591 petr.uzel@suse.cz -- based on upstream changes to rsync.yo
Patch4: rsync-3.0.5-doc-fix.patch
-#PATCH-FEATURE-UPSTREAM rsync-allow-slp-disable.patch fate#306331 -- taken from upstream git
-Patch5: rsync-allow-slp-disable.patch
Url: http://rsync.samba.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define with_system_zlib 0
@@ -71,7 +68,7 @@
Paul Mackerras
%prep
-%setup -q -b 1 -n %{name}-%{tar_version}
+%setup -q -b 1 -n %{name}-%{version}
%if %with_system_zlib
rm -f zlib/*.h
%patch3
@@ -80,7 +77,6 @@
patch -p1 < patches/xattrs.diff
patch -p1 < patches/slp.diff
%patch4 -p1
-%patch5 -p1
%build
autoheader
++++++ rsync-3.0.6pre1.tar.bz2 -> rsync-3.0.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/NEWS new/rsync-3.0.6/NEWS
--- old/rsync-3.0.6pre1/NEWS 2009-04-12 22:01:14.000000000 +0200
+++ new/rsync-3.0.6/NEWS 2009-05-08 19:07:14.000000000 +0200
@@ -1,10 +1,11 @@
-NEWS for rsync 3.0.6 (UNRELEASED)
+NEWS for rsync 3.0.6 (8 May 2009)
Protocol: 30 (unchanged)
Changes since 3.0.5:
BUG FIXES:
- - Fixed a hang in the batch-reading code with incremental recursion.
+ - Fixed a --read-batch hang when rsync is reading a batch file that was
+ created from an incremental-recursion transfer.
- Fixed the daemon's socket code to handle the simultaneous arrival of
multiple connections.
@@ -50,3 +51,5 @@
- Complain and die if the user tries to combine --remove-source-files (or
the deprecated --remove-sent-files) with --read-batch.
+
+ - Fixed an failure transferring special files from Solaris to Linux.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/OLDNEWS new/rsync-3.0.6/OLDNEWS
--- old/rsync-3.0.6pre1/OLDNEWS 2009-01-17 22:37:20.000000000 +0100
+++ new/rsync-3.0.6/OLDNEWS 2009-05-08 19:07:14.000000000 +0200
@@ -2971,7 +2971,7 @@
Partial Protocol History
RELEASE DATE VER. DATE OF COMMIT* PROTOCOL
- ?? Feb 2009 3.0.6 30
+ 08 May 2009 3.0.6 30
28 Dec 2008 3.0.5 30
06 Sep 2008 3.0.4 30
29 Jun 2008 3.0.3 30
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/configure.in new/rsync-3.0.6/configure.in
--- old/rsync-3.0.6pre1/configure.in 2009-04-13 00:28:34.000000000 +0200
+++ new/rsync-3.0.6/configure.in 2009-05-08 19:07:14.000000000 +0200
@@ -5,7 +5,7 @@
AC_CONFIG_HEADER(config.h)
AC_PREREQ(2.59)
-RSYNC_VERSION=3.0.6pre1
+RSYNC_VERSION=3.0.6
AC_SUBST(RSYNC_VERSION)
AC_MSG_NOTICE([Configuring rsync $RSYNC_VERSION])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/configure.sh new/rsync-3.0.6/configure.sh
--- old/rsync-3.0.6pre1/configure.sh 2009-04-13 00:28:54.000000000 +0200
+++ new/rsync-3.0.6/configure.sh 2009-05-08 19:41:12.000000000 +0200
@@ -1835,7 +1835,7 @@
-RSYNC_VERSION=3.0.6pre1
+RSYNC_VERSION=3.0.6
{ $as_echo "$as_me:$LINENO: Configuring rsync $RSYNC_VERSION" >&5
$as_echo "$as_me: Configuring rsync $RSYNC_VERSION" >&6;}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/flist.c new/rsync-3.0.6/flist.c
--- old/rsync-3.0.6pre1/flist.c 2009-04-01 05:26:10.000000000 +0200
+++ new/rsync-3.0.6/flist.c 2009-04-26 16:51:50.000000000 +0200
@@ -425,8 +425,7 @@
else
mode = file->mode;
- if ((preserve_devices && IS_DEVICE(mode))
- || (preserve_specials && IS_SPECIAL(mode))) {
+ if (preserve_devices && IS_DEVICE(mode)) {
if (protocol_version < 28) {
if (tmp_rdev == rdev)
xflags |= XMIT_SAME_RDEV_pre28;
@@ -441,6 +440,17 @@
if (protocol_version < 30 && (uint32)minor(rdev) <= 0xFFu)
xflags |= XMIT_RDEV_MINOR_8_pre30;
}
+ } else if (preserve_specials && IS_SPECIAL(mode)) {
+ /* Special files don't need an rdev number, so just make
+ * the historical transmission of the value efficient. */
+ if (protocol_version < 28)
+ xflags |= XMIT_SAME_RDEV_pre28;
+ else {
+ rdev = MAKEDEV(major(rdev), 0);
+ xflags |= XMIT_SAME_RDEV_MAJOR;
+ if (protocol_version < 30)
+ xflags |= XMIT_RDEV_MINOR_8_pre30;
+ }
} else if (protocol_version < 28)
rdev = MAKEDEV(0, 0);
if (!preserve_uid || ((uid_t)F_OWNER(file) == uid && *lastname))
@@ -725,8 +735,7 @@
uid = F_OWNER(first);
if (preserve_gid)
gid = F_GROUP(first);
- if ((preserve_devices && IS_DEVICE(mode))
- || (preserve_specials && IS_SPECIAL(mode))) {
+ if (preserve_devices && IS_DEVICE(mode)) {
uint32 *devp = F_RDEV_P(first);
rdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
extra_len += DEV_EXTRA_CNT * EXTRA_LEN;
@@ -801,7 +810,8 @@
rdev_minor = read_int(f);
rdev = MAKEDEV(rdev_major, rdev_minor);
}
- extra_len += DEV_EXTRA_CNT * EXTRA_LEN;
+ if (IS_DEVICE(mode))
+ extra_len += DEV_EXTRA_CNT * EXTRA_LEN;
file_length = 0;
} else if (protocol_version < 28)
rdev = MAKEDEV(0, 0);
@@ -942,8 +952,7 @@
}
}
- if ((preserve_devices && IS_DEVICE(mode))
- || (preserve_specials && IS_SPECIAL(mode))) {
+ if (preserve_devices && IS_DEVICE(mode)) {
uint32 *devp = F_RDEV_P(file);
DEV_MAJOR(devp) = major(rdev);
DEV_MINOR(devp) = minor(rdev);
@@ -1257,10 +1266,11 @@
#endif
#ifdef HAVE_STRUCT_STAT_ST_RDEV
- if (IS_DEVICE(st.st_mode) || IS_SPECIAL(st.st_mode)) {
+ if (IS_DEVICE(st.st_mode)) {
tmp_rdev = st.st_rdev;
st.st_size = 0;
- }
+ } else if (IS_SPECIAL(st.st_mode))
+ st.st_size = 0;
#endif
file->flags = flags;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/generator.c new/rsync-3.0.6/generator.c
--- old/rsync-3.0.6pre1/generator.c 2009-04-12 21:48:59.000000000 +0200
+++ new/rsync-3.0.6/generator.c 2009-04-26 16:51:50.000000000 +0200
@@ -1124,8 +1124,8 @@
}
switch (type) {
case TYPE_DIR:
- break;
case TYPE_SPECIAL:
+ break;
case TYPE_DEVICE:
devp = F_RDEV_P(file);
if (sxp->st.st_rdev != MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp)))
@@ -1613,8 +1613,12 @@
if ((am_root && preserve_devices && IS_DEVICE(file->mode))
|| (preserve_specials && IS_SPECIAL(file->mode))) {
- uint32 *devp = F_RDEV_P(file);
- dev_t rdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
+ dev_t rdev;
+ if (IS_DEVICE(file->mode)) {
+ uint32 *devp = F_RDEV_P(file);
+ rdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
+ } else
+ rdev = 0;
if (statret == 0) {
int del_for_flag;
if (IS_DEVICE(file->mode)) {
@@ -1628,7 +1632,7 @@
}
if (statret == 0
&& BITS_EQUAL(sx.st.st_mode, file->mode, _S_IFMT)
- && sx.st.st_rdev == rdev) {
+ && (IS_SPECIAL(sx.st.st_mode) || sx.st.st_rdev == rdev)) {
/* The device or special file is identical. */
set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
if (itemizing)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/packaging/lsb/rsync.spec new/rsync-3.0.6/packaging/lsb/rsync.spec
--- old/rsync-3.0.6pre1/packaging/lsb/rsync.spec 2009-04-13 00:28:34.000000000 +0200
+++ new/rsync-3.0.6/packaging/lsb/rsync.spec 2009-05-08 19:07:14.000000000 +0200
@@ -1,9 +1,9 @@
Summary: A fast, versatile, remote (and local) file-copying tool
Name: rsync
Version: 3.0.6
-%define fullversion %{version}pre1
-Release: 0.1.pre1
-%define srcdir src-previews
+%define fullversion %{version}
+Release: 1
+%define srcdir src
Group: Applications/Internet
Source0: http://rsync.samba.org/ftp/rsync/%{srcdir}/rsync-%{fullversion}.tar.gz
#Source1: http://rsync.samba.org/ftp/rsync/%{srcdir}/rsync-patches-%{fullversion}.tar.gz
@@ -66,8 +66,8 @@
%{_mandir}/man5/rsyncd.conf.5*
%changelog
-* Sun Apr 12 2009 Wayne Davison
-Released 3.0.6pre1.
+* Fri May 08 2009 Wayne Davison
+Released 3.0.6.
* Fri Mar 21 2008 Wayne Davison
Added installation of /etc/xinetd.d/rsync file and some commented-out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/rsync.1 new/rsync-3.0.6/rsync.1
--- old/rsync-3.0.6pre1/rsync.1 2009-04-13 00:28:56.000000000 +0200
+++ new/rsync-3.0.6/rsync.1 2009-05-08 19:42:39.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "rsync" "1" "12 Apr 2009" "" ""
+.TH "rsync" "1" "8 May 2009" "" ""
.SH "NAME"
rsync \(em a fast, versatile, remote (and local) file-copying tool
.SH "SYNOPSIS"
@@ -817,6 +817,10 @@
where the destination has a file, the transfer would occur regardless of
the timestamps.
.IP
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+.IP
.IP "\fB\-\-inplace\fP"
This option changes how rsync transfers a file when the
file's data needs to be updated: instead of the default method of creating
@@ -1166,7 +1170,7 @@
option, and copying devices via the \fB\-\-devices\fP option. This is useful
for systems that allow such activities without being the super-user, and
also for ensuring that you will get errors if the receiving side isn't
-being running as the super-user. To turn off super-user activities, the
+being run as the super-user. To turn off super-user activities, the
super-user can use \fB\-\-no\-super\fP.
.IP
.IP "\fB\-\-fake\-super\fP"
@@ -1263,11 +1267,19 @@
combined with the \fB\-\-ignore\-existing\fP option, no files will be updated
(which can be useful if all you want to do is delete extraneous files).
.IP
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+.IP
.IP "\fB\-\-ignore\-existing\fP"
This tells rsync to skip updating files that
already exist on the destination (this does \fInot\fP ignore existing
directories, or nothing would get done). See also \fB\-\-existing\fP.
.IP
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+.IP
This option can be useful for those doing backups using the \fB\-\-link\-dest\fP
option when they need to continue a backup run that got interrupted. Since
a \fB\-\-link\-dest\fP run is copied into a new directory hierarchy (when it is
@@ -1401,6 +1413,10 @@
suffixed with a string to indicate a size multiplier, and
may be a fractional value (e.g. \(lq\fB\-\-max\-size=1.5m\fP\(rq).
.IP
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+.IP
The suffixes are as follows: \(lqK\(rq (or \(lqKiB\(rq) is a kibibyte (1024),
\(lqM\(rq (or \(lqMiB\(rq) is a mebibyte (1024*1024), and \(lqG\(rq (or \(lqGiB\(rq) is a
gibibyte (1024*1024*1024).
@@ -1416,7 +1432,7 @@
This tells rsync to avoid transferring any
file that is smaller than the specified SIZE, which can help in not
transferring small, junk files.
-See the \fB\-\-max\-size\fP option for a description of SIZE.
+See the \fB\-\-max\-size\fP option for a description of SIZE and other information.
.IP
.IP "\fB\-B, \-\-block\-size=BLOCKSIZE\fP"
This forces the block size used in
@@ -2220,11 +2236,16 @@
recursively scanning a hierarchy of files using include/exclude/filter
rules.
.IP
+Note that the use of transfer rules, such as the \fB\-\-min\-size\fP option, does
+not affect what goes into the file list, and thus does not leave directories
+empty, even if none of the files in a directory match the transfer rule.
+.IP
Because the file-list is actually being pruned, this option also affects
what directories get deleted when a delete is active. However, keep in
mind that excluded files and directories can prevent existing items from
-being deleted (because an exclude hides source files and protects
-destination files).
+being deleted due to an exclude both hiding source files and protecting
+destination files. See the perishable filter-rule option for how to avoid
+this.
.IP
You can prevent the pruning of certain empty directories from the file-list
by using a global \(lqprotect\(rq filter. For instance, this option would ensure
@@ -2726,6 +2747,44 @@
explicitly included or it would be excluded by the \(lq*\(rq)
.PP
+The following modifiers are accepted after a \(lq+\(rq or \(lq\-\(rq:
+.PP
+.IP o
+A \fB/\fP specifies that the include/exclude rule should be matched
+against the absolute pathname of the current item. For example,
+\(lq\-/ /etc/passwd\(rq would exclude the passwd file any time the transfer
+was sending files from the \(lq/etc\(rq directory, and \(lq\-/ subdir/foo\(rq
+would always exclude \(lqfoo\(rq when it is in a dir named \(lqsubdir\(rq, even
+if \(lqfoo\(rq is at the root of the current transfer.
+.IP o
+A \fB!\fP specifies that the include/exclude should take effect if
+the pattern fails to match. For instance, \(lq\-! */\(rq would exclude all
+non-directories.
+.IP o
+A \fBC\fP is used to indicate that all the global CVS-exclude rules
+should be inserted as excludes in place of the \(lq\-C\(rq. No arg should
+follow.
+.IP o
+An \fBs\fP is used to indicate that the rule applies to the sending
+side. When a rule affects the sending side, it prevents files from
+being transferred. The default is for a rule to affect both sides
+unless \fB\-\-delete\-excluded\fP was specified, in which case default rules
+become sender-side only. See also the hide (H) and show (S) rules,
+which are an alternate way to specify sending-side includes/excludes.
+.IP o
+An \fBr\fP is used to indicate that the rule applies to the receiving
+side. When a rule affects the receiving side, it prevents files from
+being deleted. See the \fBs\fP modifier for more info. See also the
+protect (P) and risk (R) rules, which are an alternate way to
+specify receiver-side includes/excludes.
+.IP o
+A \fBp\fP indicates that a rule is perishable, meaning that it is
+ignored in directories that are being deleted. For instance, the \fB\-C\fP
+option's default rules that exclude things like \(lqCVS\(rq and \(lq*.o\(rq are
+marked as perishable, and will not prevent a directory that was removed
+on the source from being deleted on the destination.
+
+.PP
.SH "MERGE-FILE FILTER RULES"
.PP
@@ -2787,51 +2846,13 @@
also disabled).
.IP o
You may also specify any of the modifiers for the \(lq+\(rq or \(lq\-\(rq rules
-(below) in order to have the rules that are read in from the file
+(above) in order to have the rules that are read in from the file
default to having that modifier set. For instance, \(lqmerge,\-/ .excl\(rq would
treat the contents of .excl as absolute-path excludes,
while \(lqdir-merge,s .filt\(rq and \(lq:sC\(rq would each make all their
per-directory rules apply only on the sending side.
.PP
-The following modifiers are accepted after a \(lq+\(rq or \(lq\-\(rq:
-.PP
-.IP o
-A \fB/\fP specifies that the include/exclude rule should be matched
-against the absolute pathname of the current item. For example,
-\(lq\-/ /etc/passwd\(rq would exclude the passwd file any time the transfer
-was sending files from the \(lq/etc\(rq directory, and \(lq\-/ subdir/foo\(rq
-would always exclude \(lqfoo\(rq when it is in a dir named \(lqsubdir\(rq, even
-if \(lqfoo\(rq is at the root of the current transfer.
-.IP o
-A \fB!\fP specifies that the include/exclude should take effect if
-the pattern fails to match. For instance, \(lq\-! */\(rq would exclude all
-non-directories.
-.IP o
-A \fBC\fP is used to indicate that all the global CVS-exclude rules
-should be inserted as excludes in place of the \(lq\-C\(rq. No arg should
-follow.
-.IP o
-An \fBs\fP is used to indicate that the rule applies to the sending
-side. When a rule affects the sending side, it prevents files from
-being transferred. The default is for a rule to affect both sides
-unless \fB\-\-delete\-excluded\fP was specified, in which case default rules
-become sender-side only. See also the hide (H) and show (S) rules,
-which are an alternate way to specify sending-side includes/excludes.
-.IP o
-An \fBr\fP is used to indicate that the rule applies to the receiving
-side. When a rule affects the receiving side, it prevents files from
-being deleted. See the \fBs\fP modifier for more info. See also the
-protect (P) and risk (R) rules, which are an alternate way to
-specify receiver-side includes/excludes.
-.IP o
-A \fBp\fP indicates that a rule is perishable, meaning that it is
-ignored in directories that are being deleted. For instance, the \fB\-C\fP
-option's default rules that exclude things like \(lqCVS\(rq and \(lq*.o\(rq are
-marked as perishable, and will not prevent a directory that was removed
-on the source from being deleted on the destination.
-
-.PP
Per-directory rules are inherited in all subdirectories of the directory
where the merge-file was found unless the \(oqn\(cq modifier was used. Each
subdirectory's rules are prefixed to the inherited per-directory rules
@@ -3399,7 +3420,7 @@
.SH "VERSION"
.PP
-This man page is current for version 3.0.6pre1 of rsync.
+This man page is current for version 3.0.6 of rsync.
.PP
.SH "INTERNAL OPTIONS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/rsync.yo new/rsync-3.0.6/rsync.yo
--- old/rsync-3.0.6pre1/rsync.yo 2009-04-13 00:28:34.000000000 +0200
+++ new/rsync-3.0.6/rsync.yo 2009-05-08 19:07:14.000000000 +0200
@@ -1,5 +1,5 @@
mailto(rsync-bugs@samba.org)
-manpage(rsync)(1)(12 Apr 2009)()()
+manpage(rsync)(1)(8 May 2009)()()
manpagename(rsync)(a fast, versatile, remote (and local) file-copying tool)
manpagesynopsis()
@@ -704,6 +704,10 @@
where the destination has a file, the transfer would occur regardless of
the timestamps.
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+
dit(bf(--inplace)) This option changes how rsync transfers a file when the
file's data needs to be updated: instead of the default method of creating
a new copy of the file and moving it into place when it is complete, rsync
@@ -1014,7 +1018,7 @@
option, and copying devices via the bf(--devices) option. This is useful
for systems that allow such activities without being the super-user, and
also for ensuring that you will get errors if the receiving side isn't
-being running as the super-user. To turn off super-user activities, the
+being run as the super-user. To turn off super-user activities, the
super-user can use bf(--no-super).
dit(bf(--fake-super)) When this option is enabled, rsync simulates
@@ -1102,10 +1106,18 @@
combined with the bf(--ignore-existing) option, no files will be updated
(which can be useful if all you want to do is delete extraneous files).
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+
dit(bf(--ignore-existing)) This tells rsync to skip updating files that
already exist on the destination (this does em(not) ignore existing
directories, or nothing would get done). See also bf(--existing).
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+
This option can be useful for those doing backups using the bf(--link-dest)
option when they need to continue a backup run that got interrupted. Since
a bf(--link-dest) run is copied into a new directory hierarchy (when it is
@@ -1228,6 +1240,10 @@
suffixed with a string to indicate a size multiplier, and
may be a fractional value (e.g. "bf(--max-size=1.5m)").
+This option is a transfer rule, not an exclude, so it doesn't affect the
+data that goes into the file-lists, and thus it doesn't affect deletions.
+It just limits the files that the receiver requests to be transferred.
+
The suffixes are as follows: "K" (or "KiB") is a kibibyte (1024),
"M" (or "MiB") is a mebibyte (1024*1024), and "G" (or "GiB") is a
gibibyte (1024*1024*1024).
@@ -1242,7 +1258,7 @@
dit(bf(--min-size=SIZE)) This tells rsync to avoid transferring any
file that is smaller than the specified SIZE, which can help in not
transferring small, junk files.
-See the bf(--max-size) option for a description of SIZE.
+See the bf(--max-size) option for a description of SIZE and other information.
dit(bf(-B, --block-size=BLOCKSIZE)) This forces the block size used in
rsync's delta-transfer algorithm to a fixed value. It is normally selected based on
@@ -1935,11 +1951,16 @@
recursively scanning a hierarchy of files using include/exclude/filter
rules.
+Note that the use of transfer rules, such as the bf(--min-size) option, does
+not affect what goes into the file list, and thus does not leave directories
+empty, even if none of the files in a directory match the transfer rule.
+
Because the file-list is actually being pruned, this option also affects
what directories get deleted when a delete is active. However, keep in
mind that excluded files and directories can prevent existing items from
-being deleted (because an exclude hides source files and protects
-destination files).
+being deleted due to an exclude both hiding source files and protecting
+destination files. See the perishable filter-rule option for how to avoid
+this.
You can prevent the pruning of certain empty directories from the file-list
by using a global "protect" filter. For instance, this option would ensure
@@ -2359,6 +2380,39 @@
explicitly included or it would be excluded by the "*")
)
+The following modifiers are accepted after a "+" or "-":
+
+itemization(
+ it() A bf(/) specifies that the include/exclude rule should be matched
+ against the absolute pathname of the current item. For example,
+ "-/ /etc/passwd" would exclude the passwd file any time the transfer
+ was sending files from the "/etc" directory, and "-/ subdir/foo"
+ would always exclude "foo" when it is in a dir named "subdir", even
+ if "foo" is at the root of the current transfer.
+ it() A bf(!) specifies that the include/exclude should take effect if
+ the pattern fails to match. For instance, "-! */" would exclude all
+ non-directories.
+ it() A bf(C) is used to indicate that all the global CVS-exclude rules
+ should be inserted as excludes in place of the "-C". No arg should
+ follow.
+ it() An bf(s) is used to indicate that the rule applies to the sending
+ side. When a rule affects the sending side, it prevents files from
+ being transferred. The default is for a rule to affect both sides
+ unless bf(--delete-excluded) was specified, in which case default rules
+ become sender-side only. See also the hide (H) and show (S) rules,
+ which are an alternate way to specify sending-side includes/excludes.
+ it() An bf(r) is used to indicate that the rule applies to the receiving
+ side. When a rule affects the receiving side, it prevents files from
+ being deleted. See the bf(s) modifier for more info. See also the
+ protect (P) and risk (R) rules, which are an alternate way to
+ specify receiver-side includes/excludes.
+ it() A bf(p) indicates that a rule is perishable, meaning that it is
+ ignored in directories that are being deleted. For instance, the bf(-C)
+ option's default rules that exclude things like "CVS" and "*.o" are
+ marked as perishable, and will not prevent a directory that was removed
+ on the source from being deleted on the destination.
+)
+
manpagesection(MERGE-FILE FILTER RULES)
You can merge whole files into your filter rules by specifying either a
@@ -2407,46 +2461,13 @@
"- foo + bar" is parsed as two rules (assuming that prefix-parsing wasn't
also disabled).
it() You may also specify any of the modifiers for the "+" or "-" rules
- (below) in order to have the rules that are read in from the file
+ (above) in order to have the rules that are read in from the file
default to having that modifier set. For instance, "merge,-/ .excl" would
treat the contents of .excl as absolute-path excludes,
while "dir-merge,s .filt" and ":sC" would each make all their
per-directory rules apply only on the sending side.
)
-The following modifiers are accepted after a "+" or "-":
-
-itemization(
- it() A bf(/) specifies that the include/exclude rule should be matched
- against the absolute pathname of the current item. For example,
- "-/ /etc/passwd" would exclude the passwd file any time the transfer
- was sending files from the "/etc" directory, and "-/ subdir/foo"
- would always exclude "foo" when it is in a dir named "subdir", even
- if "foo" is at the root of the current transfer.
- it() A bf(!) specifies that the include/exclude should take effect if
- the pattern fails to match. For instance, "-! */" would exclude all
- non-directories.
- it() A bf(C) is used to indicate that all the global CVS-exclude rules
- should be inserted as excludes in place of the "-C". No arg should
- follow.
- it() An bf(s) is used to indicate that the rule applies to the sending
- side. When a rule affects the sending side, it prevents files from
- being transferred. The default is for a rule to affect both sides
- unless bf(--delete-excluded) was specified, in which case default rules
- become sender-side only. See also the hide (H) and show (S) rules,
- which are an alternate way to specify sending-side includes/excludes.
- it() An bf(r) is used to indicate that the rule applies to the receiving
- side. When a rule affects the receiving side, it prevents files from
- being deleted. See the bf(s) modifier for more info. See also the
- protect (P) and risk (R) rules, which are an alternate way to
- specify receiver-side includes/excludes.
- it() A bf(p) indicates that a rule is perishable, meaning that it is
- ignored in directories that are being deleted. For instance, the bf(-C)
- option's default rules that exclude things like "CVS" and "*.o" are
- marked as perishable, and will not prevent a directory that was removed
- on the source from being deleted on the destination.
-)
-
Per-directory rules are inherited in all subdirectories of the directory
where the merge-file was found unless the 'n' modifier was used. Each
subdirectory's rules are prefixed to the inherited per-directory rules
@@ -2903,7 +2924,7 @@
manpagesection(VERSION)
-This man page is current for version 3.0.6pre1 of rsync.
+This man page is current for version 3.0.6 of rsync.
manpagesection(INTERNAL OPTIONS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/rsyncd.conf.5 new/rsync-3.0.6/rsyncd.conf.5
--- old/rsync-3.0.6pre1/rsyncd.conf.5 2009-04-13 00:28:56.000000000 +0200
+++ new/rsync-3.0.6/rsyncd.conf.5 2009-05-08 19:41:20.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "rsyncd.conf" "5" "12 Apr 2009" "" ""
+.TH "rsyncd.conf" "5" "8 May 2009" "" ""
.SH "NAME"
rsyncd.conf \(em configuration file for rsync in daemon mode
.SH "SYNOPSIS"
@@ -822,7 +822,7 @@
.SH "VERSION"
.PP
-This man page is current for version 3.0.6pre1 of rsync.
+This man page is current for version 3.0.6 of rsync.
.PP
.SH "CREDITS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/rsyncd.conf.yo new/rsync-3.0.6/rsyncd.conf.yo
--- old/rsync-3.0.6pre1/rsyncd.conf.yo 2009-04-13 00:28:34.000000000 +0200
+++ new/rsync-3.0.6/rsyncd.conf.yo 2009-05-08 19:07:14.000000000 +0200
@@ -1,5 +1,5 @@
mailto(rsync-bugs@samba.org)
-manpage(rsyncd.conf)(5)(12 Apr 2009)()()
+manpage(rsyncd.conf)(5)(8 May 2009)()()
manpagename(rsyncd.conf)(configuration file for rsync in daemon mode)
manpagesynopsis()
@@ -700,7 +700,7 @@
manpagesection(VERSION)
-This man page is current for version 3.0.6pre1 of rsync.
+This man page is current for version 3.0.6 of rsync.
manpagesection(CREDITS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/xattrs.c new/rsync-3.0.6/xattrs.c
--- old/rsync-3.0.6pre1/xattrs.c 2009-04-11 01:09:39.000000000 +0200
+++ new/rsync-3.0.6/xattrs.c 2009-04-26 16:51:50.000000000 +0200
@@ -989,7 +989,7 @@
fst.st_mode &= (_S_IFMT | CHMOD_BITS);
fmode = new_mode & (_S_IFMT | CHMOD_BITS);
- if (IS_DEVICE(fmode) || IS_SPECIAL(fmode)) {
+ if (IS_DEVICE(fmode)) {
uint32 *devp = F_RDEV_P(file);
rdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
} else
@@ -1000,7 +1000,7 @@
| (S_ISDIR(fst.st_mode) ? 0700 : 0600);
if (fst.st_mode != mode)
do_chmod(fname, mode);
- if (!IS_DEVICE(fst.st_mode) && !IS_SPECIAL(fst.st_mode))
+ if (!IS_DEVICE(fst.st_mode))
fst.st_rdev = 0; /* just in case */
if (mode == fmode && fst.st_rdev == rdev
++++++ rsync-patches-3.0.6pre1.tar.bz2 -> rsync-patches-3.0.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/atimes.diff new/rsync-3.0.6/patches/atimes.diff
--- old/rsync-3.0.6pre1/patches/atimes.diff 2009-04-13 00:29:04.000000000 +0200
+++ new/rsync-3.0.6/patches/atimes.diff 2009-05-08 19:43:31.000000000 +0200
@@ -53,7 +53,7 @@
static mode_t mode;
#ifdef SUPPORT_HARD_LINKS
static int64 dev;
-@@ -467,6 +468,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -477,6 +478,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
xflags |= XMIT_SAME_TIME;
else
modtime = file->modtime;
@@ -67,7 +67,7 @@
#ifdef SUPPORT_HARD_LINKS
if (tmp_dev != 0) {
-@@ -538,6 +546,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -548,6 +556,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
}
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
@@ -76,7 +76,7 @@
if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
write_int(f, uid);
-@@ -622,7 +632,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -632,7 +642,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
static struct file_struct *recv_file_entry(struct file_list *flist,
int xflags, int f)
{
@@ -85,7 +85,7 @@
static mode_t mode;
#ifdef SUPPORT_HARD_LINKS
static int64 dev;
-@@ -756,6 +766,16 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -765,6 +775,16 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
}
if (!(xflags & XMIT_SAME_MODE))
mode = from_wire_mode(read_int(f));
@@ -102,7 +102,7 @@
if (chmod_modes && !S_ISLNK(mode))
mode = tweak_mode(mode, chmod_modes);
-@@ -905,6 +925,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -915,6 +935,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
F_GROUP(file) = gid;
file->flags |= gid_flags;
}
@@ -111,7 +111,7 @@
if (unsort_ndx)
F_NDX(file) = flist->used + flist->ndx_start;
-@@ -1277,6 +1299,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1287,6 +1309,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
F_OWNER(file) = st.st_uid;
if (gid_ndx) /* Check gid_ndx instead of preserve_gid for del support */
F_GROUP(file) = st.st_gid;
@@ -177,7 +177,7 @@
f_name(f, NULL));
}
}
-@@ -2059,7 +2068,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2063,7 +2072,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
STRUCT_STAT st;
if (link_stat(fname, &st, 0) == 0
&& cmp_time(st.st_mtime, file->modtime) != 0)
@@ -386,7 +386,7 @@
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-@@ -1007,6 +1008,12 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
+@@ -1011,6 +1012,12 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
@@ -399,7 +399,7 @@
dit(bf(--super)) This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
activities include: preserving users via the bf(--owner) option, preserving
-@@ -1726,7 +1733,10 @@ quote(itemization(
+@@ -1742,7 +1749,10 @@ quote(itemization(
sender's value (requires bf(--owner) and super-user privileges).
it() A bf(g) means the group is different and is being updated to the
sender's value (requires bf(--group) and the authority to set the group).
@@ -631,7 +631,7 @@
\-\-super receiver attempts super-user activities
\-\-fake\-super store/recover privileged attrs using xattrs
\-S, \-\-sparse handle sparse files efficiently
-@@ -1158,6 +1159,13 @@ it is preserving modification times (see
+@@ -1162,6 +1163,13 @@ it is preserving modification times (see
the directories on the receiving side, it is a good idea to use \fB\-O\fP.
This option is inferred if you use \fB\-\-backup\fP without \fB\-\-backup\-dir\fP.
.IP
@@ -645,7 +645,7 @@
.IP "\fB\-\-super\fP"
This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
-@@ -1982,7 +1990,10 @@ sender's value (requires \fB\-\-owner\fP
+@@ -1998,7 +2006,10 @@ sender's value (requires \fB\-\-owner\fP
A \fBg\fP means the group is different and is being updated to the
sender's value (requires \fB\-\-group\fP and the authority to set the group).
.IP o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/checksum-reading.diff new/rsync-3.0.6/patches/checksum-reading.diff
--- old/rsync-3.0.6pre1/patches/checksum-reading.diff 2009-04-13 00:29:11.000000000 +0200
+++ new/rsync-3.0.6/patches/checksum-reading.diff 2009-05-08 19:43:37.000000000 +0200
@@ -342,7 +342,7 @@
/* Call this with EITHER (1) "file, NULL, 0" to chdir() to the file's
* F_PATHNAME(), or (2) "NULL, dir, dirlen" to chdir() to the supplied dir,
* with dir == NULL taken to be the starting directory, and dirlen < 0
-@@ -1068,7 +1313,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1077,7 +1322,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
STRUCT_STAT *stp, int flags, int filter_level)
{
static char *lastdir;
@@ -351,7 +351,7 @@
struct file_struct *file;
char thisname[MAXPATHLEN];
char linkname[MAXPATHLEN];
-@@ -1207,9 +1452,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1216,9 +1461,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(lastdir, thisname, len);
lastdir[len] = '\0';
lastdir_len = len;
@@ -369,7 +369,7 @@
basename_len = strlen(basename) + 1; /* count the '\0' */
#ifdef SUPPORT_LINKS
-@@ -1286,14 +1538,18 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1296,14 +1548,18 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(bp + basename_len, linkname, linkname_len);
#endif
@@ -391,7 +391,7 @@
if (basename_len == 0+1) {
if (!pool)
unmake_file(file);
-@@ -2258,7 +2514,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2268,7 +2524,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
* file-list to check if this is a 1-file xfer. */
send_extra_file_list(f, 1);
}
@@ -401,7 +401,7 @@
return flist;
}
-@@ -2364,7 +2621,7 @@ struct file_list *recv_file_list(int f)
+@@ -2374,7 +2631,7 @@ struct file_list *recv_file_list(int f)
else if (f >= 0)
recv_id_list(f, flist);
@@ -410,7 +410,7 @@
if (protocol_version < 30) {
/* Recv the io_error flag */
-@@ -2584,7 +2841,7 @@ void flist_free(struct file_list *flist)
+@@ -2594,7 +2851,7 @@ void flist_free(struct file_list *flist)
/* This routine ensures we don't have any duplicate names in our file list.
* duplicate names can cause corruption because of the pipelining. */
@@ -419,7 +419,7 @@
{
char fbuf[MAXPATHLEN];
int i, prev_i;
-@@ -2635,7 +2892,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2645,7 +2902,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
/* If one is a dir and the other is not, we want to
* keep the dir because it might have contents in the
* list. Otherwise keep the first one. */
@@ -428,7 +428,7 @@
struct file_struct *fp = flist->sorted[j];
if (!S_ISDIR(fp->mode))
keep = i, drop = j;
-@@ -2651,8 +2908,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2661,8 +2918,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
} else
keep = j, drop = i;
@@ -439,7 +439,7 @@
rprintf(FINFO,
"removing duplicate name %s from file list (%d)\n",
f_name(file, fbuf), drop + flist->ndx_start);
-@@ -2674,7 +2931,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2684,7 +2941,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
}
flist->high = prev_i;
@@ -529,7 +529,7 @@
}
statret = link_stat(fname, &sx.st, keep_dirlinks && is_dir);
-@@ -1796,7 +1805,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1800,7 +1809,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/checksum-updating.diff new/rsync-3.0.6/patches/checksum-updating.diff
--- old/rsync-3.0.6pre1/patches/checksum-updating.diff 2009-04-13 00:29:13.000000000 +0200
+++ new/rsync-3.0.6/patches/checksum-updating.diff 2009-05-08 19:43:40.000000000 +0200
@@ -389,7 +389,7 @@
}
/* Call this with EITHER (1) "file, NULL, 0" to chdir() to the file's
-@@ -1407,6 +1618,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1416,6 +1627,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level)) {
if (ignore_perishable)
non_perishable_cnt++;
@@ -398,7 +398,7 @@
return NULL;
}
-@@ -1453,13 +1666,13 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1462,13 +1675,13 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
lastdir[len] = '\0';
lastdir_len = len;
if (checksum_files && am_sender && flist)
@@ -414,7 +414,7 @@
}
}
basename_len = strlen(basename) + 1; /* count the '\0' */
-@@ -1545,7 +1758,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1555,7 +1768,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
if (always_checksum && am_sender && S_ISREG(st.st_mode)) {
if (flist && checksum_files)
@@ -423,7 +423,7 @@
else
file_checksum(thisname, st.st_size, tmp_sum);
}
-@@ -1922,6 +2135,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -1932,6 +2145,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
closedir(d);
@@ -433,7 +433,7 @@
if (f >= 0 && recurse && !divert_dirs) {
int i, end = flist->used - 1;
/* send_if_directory() bumps flist->used, so use "end". */
-@@ -2517,6 +2733,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2527,6 +2743,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
} else
flist_eof = 1;
@@ -481,7 +481,7 @@
goto cleanup;
}
-@@ -1811,6 +1814,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1815,6 +1818,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
handle_partial_dir(partialptr, PDIR_DELETE);
}
set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
@@ -490,7 +490,7 @@
if (itemizing)
itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL);
#ifdef SUPPORT_HARD_LINKS
-@@ -2251,6 +2256,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2255,6 +2260,7 @@ void generate_files(int f_out, const char *local_name)
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
@@ -498,7 +498,7 @@
}
for (i = cur_flist->low; i <= cur_flist->high; i++) {
struct file_struct *file = cur_flist->sorted[i];
-@@ -2334,6 +2340,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2338,6 +2344,9 @@ void generate_files(int f_out, const char *local_name)
wait_for_receiver();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/checksum-xattr.diff new/rsync-3.0.6/patches/checksum-xattr.diff
--- old/rsync-3.0.6pre1/patches/checksum-xattr.diff 2009-04-13 00:29:16.000000000 +0200
+++ new/rsync-3.0.6/patches/checksum-xattr.diff 2009-05-08 19:43:43.000000000 +0200
@@ -11,7 +11,7 @@
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
-@@ -1286,7 +1286,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1296,7 +1296,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(bp + basename_len, linkname, linkname_len);
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/copy-devices.diff new/rsync-3.0.6/patches/copy-devices.diff
--- old/rsync-3.0.6pre1/patches/copy-devices.diff 2009-04-13 00:29:18.000000000 +0200
+++ new/rsync-3.0.6/patches/copy-devices.diff 2009-05-08 19:43:44.000000000 +0200
@@ -19,7 +19,7 @@
extern int preserve_specials;
extern int preserve_hard_links;
extern int preserve_executability;
-@@ -1691,7 +1692,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1695,7 +1696,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/crtimes.diff new/rsync-3.0.6/patches/crtimes.diff
--- old/rsync-3.0.6pre1/patches/crtimes.diff 2009-04-13 00:29:25.000000000 +0200
+++ new/rsync-3.0.6/patches/crtimes.diff 2009-05-08 19:43:52.000000000 +0200
@@ -57,7 +57,7 @@
static mode_t mode;
#ifdef SUPPORT_FILEFLAGS
static uint32 fileflags;
-@@ -479,6 +480,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -489,6 +490,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
xflags |= XMIT_SAME_TIME;
else
modtime = file->modtime;
@@ -71,7 +71,7 @@
#ifdef SUPPORT_HARD_LINKS
if (tmp_dev != 0) {
-@@ -548,6 +556,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -558,6 +566,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
else
write_int(f, modtime);
}
@@ -80,7 +80,7 @@
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
#ifdef SUPPORT_FILEFLAGS
-@@ -638,7 +648,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -648,7 +658,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
static struct file_struct *recv_file_entry(struct file_list *flist,
int xflags, int f)
{
@@ -89,16 +89,16 @@
static mode_t mode;
#ifdef SUPPORT_FILEFLAGS
static uint32 fileflags;
-@@ -744,6 +754,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -754,6 +764,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
uid = F_OWNER(first);
if (preserve_gid)
gid = F_GROUP(first);
+ if (crtimes_ndx)
+ crtime = f_crtime(first);
- if ((preserve_devices && IS_DEVICE(mode))
- || (preserve_specials && IS_SPECIAL(mode))) {
+ if (preserve_devices && IS_DEVICE(mode)) {
uint32 *devp = F_RDEV_P(first);
-@@ -773,6 +785,19 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+ rdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
+@@ -782,6 +794,19 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
} else
modtime = read_int(f);
}
@@ -118,7 +118,7 @@
if (!(xflags & XMIT_SAME_MODE))
mode = from_wire_mode(read_int(f));
-@@ -932,6 +957,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -942,6 +967,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
F_GROUP(file) = gid;
file->flags |= gid_flags;
}
@@ -127,7 +127,7 @@
if (unsort_ndx)
F_NDX(file) = flist->used + flist->ndx_start;
-@@ -1308,6 +1335,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1318,6 +1345,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
F_OWNER(file) = st.st_uid;
if (gid_ndx) /* Check gid_ndx instead of preserve_gid for del support */
F_GROUP(file) = st.st_gid;
@@ -182,34 +182,45 @@
#if !defined HAVE_LCHMOD && !defined HAVE_SETATTRLIST
if (S_ISLNK(file->mode)) {
;
-@@ -1226,6 +1241,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
+@@ -1225,7 +1240,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
+
static void list_file_entry(struct file_struct *f)
{
- char permbuf[PERMSTRING_SIZE];
-+ time_t crtime = crtimes_ndx ? f_crtime(f) : 0;
+- char permbuf[PERMSTRING_SIZE];
++ char permbuf[PERMSTRING_SIZE], crtime_buf[32];
double len;
if (!F_IS_ACTIVE(f)) {
-@@ -1240,14 +1256,16 @@ static void list_file_entry(struct file_struct *f)
+@@ -1236,19 +1251,24 @@ static void list_file_entry(struct file_struct *f)
+ permstring(permbuf, f->mode);
+ len = F_LENGTH(f);
+
++ if (crtimes_ndx)
++ snprintf(crtime_buf, sizeof crtime_buf, " %s", timestring(f_crtime(f)));
++ else
++ *crtime_buf = '\0';
++
+ /* TODO: indicate '+' if the entry has an ACL. */
#ifdef SUPPORT_LINKS
if (preserve_links && S_ISLNK(f->mode)) {
- rprintf(FINFO, "%s %11.0f %s %s -> %s\n",
-+ rprintf(FINFO, "%s %11.0f %s %s %s -> %s\n",
++ rprintf(FINFO, "%s %11.0f %s%s %s -> %s\n",
permbuf, len, timestring(f->modtime),
-+ crtimes_ndx ? timestring(crtime) : "",
- f_name(f, NULL), F_SYMLINK(f));
+- f_name(f, NULL), F_SYMLINK(f));
++ crtime_buf, f_name(f, NULL), F_SYMLINK(f));
} else
#endif
{
- rprintf(FINFO, "%s %11.0f %s %s\n",
-+ rprintf(FINFO, "%s %11.0f %s %s %s\n",
++ rprintf(FINFO, "%s %11.0f %s%s %s\n",
permbuf, len, timestring(f->modtime),
-+ crtimes_ndx ? timestring(crtime) : "",
- f_name(f, NULL));
+- f_name(f, NULL));
++ crtime_buf, f_name(f, NULL));
}
}
-@@ -1339,6 +1357,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+
+@@ -1339,6 +1359,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
return;
}
}
@@ -426,7 +437,7 @@
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-@@ -1035,6 +1036,9 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
+@@ -1039,6 +1040,9 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
@@ -436,7 +447,7 @@
dit(bf(--super)) This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
activities include: preserving users via the bf(--owner) option, preserving
-@@ -1699,7 +1703,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -1715,7 +1719,7 @@ with older versions of rsync, but that also turns on the output of other
verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
@@ -445,7 +456,7 @@
type of update being done, bf(X) is replaced by the file-type, and the
other letters represent attributes that may be output if they are being
modified.
-@@ -1758,6 +1762,8 @@ quote(itemization(
+@@ -1774,6 +1778,8 @@ quote(itemization(
it() The bf(f) means that the fileflags information changed.
it() The bf(a) means that the ACL information changed.
it() The bf(x) means that the extended attribute information changed.
@@ -672,7 +683,7 @@
\-\-super receiver attempts super-user activities
\-\-fake\-super store/recover privileged attrs using xattrs
\-S, \-\-sparse handle sparse files efficiently
-@@ -1190,6 +1191,10 @@ it is preserving modification times (see
+@@ -1194,6 +1195,10 @@ it is preserving modification times (see
the directories on the receiving side, it is a good idea to use \fB\-O\fP.
This option is inferred if you use \fB\-\-backup\fP without \fB\-\-backup\-dir\fP.
.IP
@@ -683,7 +694,7 @@
.IP "\fB\-\-super\fP"
This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
-@@ -1945,7 +1950,7 @@ with older versions of rsync, but that a
+@@ -1961,7 +1966,7 @@ with older versions of rsync, but that a
verbose messages).
.IP
The \(lq%i\(rq escape has a cryptic output that is 11 letters long. The general
@@ -692,7 +703,7 @@
type of update being done, \fBX\fP is replaced by the file-type, and the
other letters represent attributes that may be output if they are being
modified.
-@@ -2020,6 +2025,9 @@ The \fBf\fP means that the fileflags inf
+@@ -2036,6 +2041,9 @@ The \fBf\fP means that the fileflags inf
The \fBa\fP means that the ACL information changed.
.IP o
The \fBx\fP means that the extended attribute information changed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/db.diff new/rsync-3.0.6/patches/db.diff
--- old/rsync-3.0.6pre1/patches/db.diff 2009-04-13 00:29:42.000000000 +0200
+++ new/rsync-3.0.6/patches/db.diff 2009-05-08 19:44:09.000000000 +0200
@@ -768,7 +768,7 @@
extern int eol_nulls;
extern int relative_paths;
extern int implied_dirs;
-@@ -1286,14 +1287,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1296,14 +1297,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(bp + basename_len, linkname, linkname_len);
#endif
@@ -788,7 +788,7 @@
if (basename_len == 0+1) {
if (!pool)
unmake_file(file);
-@@ -1956,6 +1959,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -1966,6 +1969,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
| (eol_nulls || reading_remotely ? RL_EOL_NULLS : 0);
int implied_dot_dir = 0;
@@ -819,7 +819,7 @@
return memcmp(sum, F_SUM(file), checksum_len) == 0;
}
-@@ -2205,6 +2207,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2209,6 +2211,9 @@ void generate_files(int f_out, const char *local_name)
: "enabled");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/detect-renamed-lax.diff new/rsync-3.0.6/patches/detect-renamed-lax.diff
--- old/rsync-3.0.6pre1/patches/detect-renamed-lax.diff 2009-04-13 00:29:50.000000000 +0200
+++ new/rsync-3.0.6/patches/detect-renamed-lax.diff 2009-05-08 19:44:16.000000000 +0200
@@ -34,7 +34,7 @@
diff = u_strcmp(fmid->basename, f->basename);
if (diff == 0) {
good_match = mid;
-@@ -1988,6 +1990,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1992,6 +1994,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
fnamecmp = partialptr;
fnamecmp_type = FNAMECMP_PARTIAL_DIR;
statret = 0;
@@ -108,7 +108,7 @@
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1510,6 +1512,17 @@ the bf(--partial-dir) option, that directory will be used instead. These
+@@ -1526,6 +1528,17 @@ the bf(--partial-dir) option, that directory will be used instead. These
potential alternate-basis files will be removed as the transfer progresses.
This option conflicts with bf(--inplace) and bf(--append).
@@ -138,7 +138,7 @@
\-\-compare\-dest=DIR also compare received files relative to DIR
\-\-copy\-dest=DIR ... and include copies of unchanged files
\-\-link\-dest=DIR hardlink to files in DIR when unchanged
-@@ -1728,6 +1730,19 @@ the \fB\-\-partial\-dir\fP option, that
+@@ -1744,6 +1746,19 @@ the \fB\-\-partial\-dir\fP option, that
potential alternate-basis files will be removed as the transfer progresses.
This option conflicts with \fB\-\-inplace\fP and \fB\-\-append\fP.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/detect-renamed.diff new/rsync-3.0.6/patches/detect-renamed.diff
--- old/rsync-3.0.6pre1/patches/detect-renamed.diff 2009-04-13 00:29:47.000000000 +0200
+++ new/rsync-3.0.6/patches/detect-renamed.diff 2009-05-08 19:44:13.000000000 +0200
@@ -117,7 +117,7 @@
static void send_directory(int f, struct file_list *flist,
char *fbuf, int len, int flags);
-@@ -2366,6 +2408,25 @@ struct file_list *recv_file_list(int f)
+@@ -2376,6 +2418,25 @@ struct file_list *recv_file_list(int f)
flist_sort_and_clean(flist, relative_paths);
@@ -484,7 +484,7 @@
change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
}
goto cleanup;
-@@ -1785,8 +1937,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1789,8 +1941,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
#endif
@@ -500,7 +500,7 @@
rsyserr(FERROR_XFER, stat_errno, "recv_generator: failed to stat %s",
full_fname(fname));
goto cleanup;
-@@ -2186,6 +2344,12 @@ void generate_files(int f_out, const char *local_name)
+@@ -2190,6 +2348,12 @@ void generate_files(int f_out, const char *local_name)
if (verbose > 2)
rprintf(FINFO, "generator starting pid=%ld\n", (long)getpid());
@@ -513,7 +513,7 @@
if (delete_before && !solo_file && cur_flist->used > 0)
do_delete_pass();
if (delete_during == 2) {
-@@ -2196,7 +2360,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2200,7 +2364,7 @@ void generate_files(int f_out, const char *local_name)
}
do_progress = 0;
@@ -522,7 +522,7 @@
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -2238,7 +2402,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2242,7 +2406,7 @@ void generate_files(int f_out, const char *local_name)
dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
} else
dirdev = MAKEDEV(0, 0);
@@ -531,7 +531,7 @@
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
-@@ -2285,7 +2449,21 @@ void generate_files(int f_out, const char *local_name)
+@@ -2289,7 +2453,21 @@ void generate_files(int f_out, const char *local_name)
} while ((cur_flist = cur_flist->next) != NULL);
if (delete_during)
@@ -618,7 +618,7 @@
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1494,6 +1495,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
+@@ -1510,6 +1511,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
fuzzy-match files, so either use bf(--delete-after) or specify some
filename exclusions if you need to prevent this.
@@ -699,7 +699,7 @@
\-\-compare\-dest=DIR also compare received files relative to DIR
\-\-copy\-dest=DIR ... and include copies of unchanged files
\-\-link\-dest=DIR hardlink to files in DIR when unchanged
-@@ -1711,6 +1712,22 @@ Note that the use of the \fB\-\-delete\f
+@@ -1727,6 +1728,22 @@ Note that the use of the \fB\-\-delete\f
fuzzy-match files, so either use \fB\-\-delete\-after\fP or specify some
filename exclusions if you need to prevent this.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/downdate.diff new/rsync-3.0.6/patches/downdate.diff
--- old/rsync-3.0.6pre1/patches/downdate.diff 2009-04-13 00:29:52.000000000 +0200
+++ new/rsync-3.0.6/patches/downdate.diff 2009-05-08 19:44:18.000000000 +0200
@@ -18,7 +18,7 @@
extern int ignore_existing;
extern int ignore_non_existing;
extern int inplace;
-@@ -1726,6 +1727,13 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1730,6 +1731,13 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
@@ -32,7 +32,7 @@
fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
-@@ -2097,6 +2105,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2101,6 +2109,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
ignore_existing = -ignore_existing;
ignore_non_existing = -ignore_non_existing;
update_only = -update_only;
@@ -40,7 +40,7 @@
always_checksum = -always_checksum;
size_only = -size_only;
append_mode = -append_mode;
-@@ -2122,6 +2131,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2126,6 +2135,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
ignore_existing = -ignore_existing;
ignore_non_existing = -ignore_non_existing;
update_only = -update_only;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/dparam.diff new/rsync-3.0.6/patches/dparam.diff
--- old/rsync-3.0.6pre1/patches/dparam.diff 2009-04-13 00:29:55.000000000 +0200
+++ new/rsync-3.0.6/patches/dparam.diff 2009-05-08 19:44:21.000000000 +0200
@@ -155,7 +155,7 @@
--no-detach do not detach from the parent
--port=PORT listen on alternate port number
--log-file=FILE override the "log file" setting
-@@ -2153,6 +2154,14 @@ The default is /etc/rsyncd.conf unless the daemon is running over
+@@ -2174,6 +2175,14 @@ The default is /etc/rsyncd.conf unless the daemon is running over
a remote shell program and the remote user is not the super-user; in that case
the default is rsyncd.conf in the current directory (typically $HOME).
@@ -223,7 +223,7 @@
\-\-no\-detach do not detach from the parent
\-\-port=PORT listen on alternate port number
\-\-log\-file=FILE override the "log file" setting
-@@ -2472,6 +2473,18 @@ The default is /etc/rsyncd.conf unless t
+@@ -2493,6 +2494,18 @@ The default is /etc/rsyncd.conf unless t
a remote shell program and the remote user is not the super-user; in that case
the default is rsyncd.conf in the current directory (typically $HOME).
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/drop-cache.diff new/rsync-3.0.6/patches/drop-cache.diff
--- old/rsync-3.0.6pre1/patches/drop-cache.diff 2009-04-13 00:30:00.000000000 +0200
+++ new/rsync-3.0.6/patches/drop-cache.diff 2009-05-08 19:44:26.000000000 +0200
@@ -204,7 +204,7 @@
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1056,6 +1057,10 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
+@@ -1060,6 +1061,10 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
@@ -440,7 +440,7 @@
\-n, \-\-dry\-run perform a trial run with no changes made
\-W, \-\-whole\-file copy files whole (w/o delta-xfer algorithm)
\-x, \-\-one\-file\-system don't cross filesystem boundaries
-@@ -1213,6 +1214,11 @@ NOTE: Don't use this option when the des
+@@ -1217,6 +1218,11 @@ NOTE: Don't use this option when the des
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/fileflags.diff new/rsync-3.0.6/patches/fileflags.diff
--- old/rsync-3.0.6pre1/patches/fileflags.diff 2009-04-13 00:29:23.000000000 +0200
+++ new/rsync-3.0.6/patches/fileflags.diff 2009-05-08 19:43:49.000000000 +0200
@@ -108,9 +108,9 @@
+ }
+#endif
- if ((preserve_devices && IS_DEVICE(mode))
- || (preserve_specials && IS_SPECIAL(mode))) {
-@@ -538,6 +550,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+ if (preserve_devices && IS_DEVICE(mode)) {
+ if (protocol_version < 28) {
+@@ -548,6 +560,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
}
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
@@ -121,7 +121,7 @@
if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
write_int(f, uid);
-@@ -624,6 +640,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -634,6 +650,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
{
static int64 modtime;
static mode_t mode;
@@ -131,7 +131,7 @@
#ifdef SUPPORT_HARD_LINKS
static int64 dev;
#endif
-@@ -759,6 +778,10 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -768,6 +787,10 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
if (chmod_modes && !S_ISLNK(mode))
mode = tweak_mode(mode, chmod_modes);
@@ -142,7 +142,7 @@
if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
-@@ -899,6 +922,10 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -909,6 +932,10 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
}
#endif
file->mode = mode;
@@ -153,7 +153,7 @@
if (preserve_uid)
F_OWNER(file) = uid;
if (preserve_gid) {
-@@ -1273,6 +1300,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1283,6 +1310,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
}
#endif
file->mode = st.st_mode;
@@ -164,7 +164,7 @@
if (uid_ndx) /* Check uid_ndx instead of preserve_uid for del support */
F_OWNER(file) = st.st_uid;
if (gid_ndx) /* Check gid_ndx instead of preserve_gid for del support */
-@@ -1416,6 +1447,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
+@@ -1426,6 +1457,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
#endif
#ifdef SUPPORT_XATTRS
if (preserve_xattrs) {
@@ -286,7 +286,7 @@
#ifdef SUPPORT_HARD_LINKS
if (preserve_hard_links && F_HLINK_NOT_FIRST(file)
-@@ -2054,13 +2090,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2058,13 +2094,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
continue;
fname = f_name(file, NULL);
if (!(file->mode & S_IWUSR))
@@ -672,7 +672,7 @@
dit(--no-OPTION) You may turn off one or more implied options by prefixing
the option name with "no-". Not all options may be prefixed with a "no-":
-@@ -805,7 +810,7 @@ they would be using bf(--copy-links).
+@@ -809,7 +814,7 @@ they would be using bf(--copy-links).
Without this option, if the sending side has replaced a directory with a
symlink to a directory, the receiving side will delete anything that is in
the way of the new symlink, including a directory hierarchy (as long as
@@ -681,7 +681,7 @@
See also bf(--keep-dirlinks) for an analogous option for the receiving
side.
-@@ -942,6 +947,29 @@ super-user copies all namespaces except system.*. A normal user only copies
+@@ -946,6 +951,29 @@ super-user copies all namespaces except system.*. A normal user only copies
the user.* namespace. To be able to backup and restore non-user namespaces as
a normal user, see the bf(--fake-super) option.
@@ -711,7 +711,7 @@
dit(bf(--chmod)) This option tells rsync to apply one or more
comma-separated "chmod" strings to the permission of the files in the
transfer. The resulting value is treated as though it was the permissions
-@@ -1204,12 +1232,13 @@ See bf(--delete) (which is implied) for more details on file-deletion.
+@@ -1216,12 +1244,13 @@ See bf(--delete) (which is implied) for more details on file-deletion.
dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
even when there are I/O errors.
@@ -728,7 +728,7 @@
bf(--recursive) option was also enabled.
dit(bf(--max-delete=NUM)) This tells rsync not to delete more than NUM
-@@ -1670,7 +1699,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -1686,7 +1715,7 @@ with older versions of rsync, but that also turns on the output of other
verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
@@ -737,7 +737,7 @@
type of update being done, bf(X) is replaced by the file-type, and the
other letters represent attributes that may be output if they are being
modified.
-@@ -1726,7 +1755,7 @@ quote(itemization(
+@@ -1742,7 +1771,7 @@ quote(itemization(
sender's value (requires bf(--owner) and super-user privileges).
it() A bf(g) means the group is different and is being updated to the
sender's value (requires bf(--group) and the authority to set the group).
@@ -1078,7 +1078,7 @@
if (fst.st_mode != mode)
- do_chmod(fname, mode);
+ do_chmod(fname, mode, ST_FLAGS(fst));
- if (!IS_DEVICE(fst.st_mode) && !IS_SPECIAL(fst.st_mode))
+ if (!IS_DEVICE(fst.st_mode))
fst.st_rdev = 0; /* just in case */
diff -up a/config.h.in b/config.h.in
@@ -1181,7 +1181,7 @@
.IP
.IP "\-\-no\-OPTION"
You may turn off one or more implied options by prefixing
-@@ -927,7 +932,7 @@ they would be using \fB\-\-copy\-links\f
+@@ -931,7 +936,7 @@ they would be using \fB\-\-copy\-links\f
Without this option, if the sending side has replaced a directory with a
symlink to a directory, the receiving side will delete anything that is in
the way of the new symlink, including a directory hierarchy (as long as
@@ -1190,7 +1190,7 @@
.IP
See also \fB\-\-keep\-dirlinks\fP for an analogous option for the receiving
side.
-@@ -1082,6 +1087,33 @@ super-user copies all namespaces except
+@@ -1086,6 +1091,33 @@ super-user copies all namespaces except
the user.* namespace. To be able to backup and restore non-user namespaces as
a normal user, see the \fB\-\-fake\-super\fP option.
.IP
@@ -1224,7 +1224,7 @@
.IP "\fB\-\-chmod\fP"
This option tells rsync to apply one or more
comma-separated \(lqchmod\(rq strings to the permission of the files in the
-@@ -1374,13 +1406,14 @@ See \fB\-\-delete\fP (which is implied)
+@@ -1386,13 +1418,14 @@ See \fB\-\-delete\fP (which is implied)
Tells \fB\-\-delete\fP to go ahead and delete files
even when there are I/O errors.
.IP
@@ -1242,7 +1242,7 @@
\fB\-\-recursive\fP option was also enabled.
.IP
.IP "\fB\-\-max\-delete=NUM\fP"
-@@ -1912,7 +1945,7 @@ with older versions of rsync, but that a
+@@ -1928,7 +1961,7 @@ with older versions of rsync, but that a
verbose messages).
.IP
The \(lq%i\(rq escape has a cryptic output that is 11 letters long. The general
@@ -1251,7 +1251,7 @@
type of update being done, \fBX\fP is replaced by the file-type, and the
other letters represent attributes that may be output if they are being
modified.
-@@ -1982,7 +2015,7 @@ sender's value (requires \fB\-\-owner\fP
+@@ -1998,7 +2031,7 @@ sender's value (requires \fB\-\-owner\fP
A \fBg\fP means the group is different and is being updated to the
sender's value (requires \fB\-\-group\fP and the authority to set the group).
.IP o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/ignore-case.diff new/rsync-3.0.6/patches/ignore-case.diff
--- old/rsync-3.0.6pre1/patches/ignore-case.diff 2009-04-13 00:30:08.000000000 +0200
+++ new/rsync-3.0.6/patches/ignore-case.diff 2009-05-08 19:44:34.000000000 +0200
@@ -55,7 +55,7 @@
extern int ignore_errors;
extern int numeric_ids;
extern int recurse;
-@@ -2825,6 +2826,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -2835,6 +2836,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
{
int dif;
const uchar *c1, *c2;
@@ -63,7 +63,7 @@
enum fnc_state state1, state2;
enum fnc_type type1, type2;
enum fnc_type t_path = protocol_version >= 29 ? t_PATH : t_ITEM;
-@@ -2935,7 +2937,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -2945,7 +2947,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
if (type1 != type2)
return type1 == t_PATH ? 1 : -1;
}
@@ -257,7 +257,7 @@
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
-@@ -1452,6 +1453,10 @@ If you use this option with bf(--iconv), the args will also be translated
+@@ -1468,6 +1469,10 @@ If you use this option with bf(--iconv), the args will also be translated
from the local to the remote character-set. The translation happens before
wild-cards are expanded. See also the bf(--files-from) option.
@@ -290,7 +290,7 @@
\-\-address=ADDRESS bind address for outgoing socket to daemon
\-\-port=PORT specify double-colon alternate port number
\-\-sockopts=OPTIONS specify custom TCP options
-@@ -1667,6 +1668,11 @@ If you use this option with \fB\-\-iconv
+@@ -1683,6 +1684,11 @@ If you use this option with \fB\-\-iconv
from the local to the remote character-set. The translation happens before
wild-cards are expanded. See also the \fB\-\-files\-from\fP option.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/link-by-hash.diff new/rsync-3.0.6/patches/link-by-hash.diff
--- old/rsync-3.0.6pre1/patches/link-by-hash.diff 2009-04-13 00:30:10.000000000 +0200
+++ new/rsync-3.0.6/patches/link-by-hash.diff 2009-05-08 19:44:36.000000000 +0200
@@ -35,7 +35,7 @@
extern char curr_dir[MAXPATHLEN];
-@@ -844,7 +845,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -854,7 +855,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
extra_len += EXTRA_LEN;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/log-checksum.diff new/rsync-3.0.6/patches/log-checksum.diff
--- old/rsync-3.0.6pre1/patches/log-checksum.diff 2009-04-13 00:30:13.000000000 +0200
+++ new/rsync-3.0.6/patches/log-checksum.diff 2009-05-08 19:44:39.000000000 +0200
@@ -23,7 +23,7 @@
extern int unsort_ndx;
extern struct stats stats;
extern char *filesfrom_host;
-@@ -1223,6 +1224,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1232,6 +1233,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
extra_len += EXTRA_LEN;
#endif
@@ -36,7 +36,7 @@
#if EXTRA_ROUNDING > 0
if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN))
extra_len = (extra_len | (EXTRA_ROUNDING * EXTRA_LEN)) + EXTRA_LEN;
-@@ -1286,9 +1293,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1296,9 +1303,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(bp + basename_len, linkname, linkname_len);
#endif
@@ -46,7 +46,7 @@
if (am_sender)
F_PATHNAME(file) = pathname;
else if (!pool)
-@@ -1300,6 +1304,9 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1310,6 +1314,9 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/munge-links.diff new/rsync-3.0.6/patches/munge-links.diff
--- old/rsync-3.0.6pre1/patches/munge-links.diff 2009-04-13 00:30:15.000000000 +0200
+++ new/rsync-3.0.6/patches/munge-links.diff 2009-05-08 19:44:42.000000000 +0200
@@ -156,7 +156,7 @@
-k, --copy-dirlinks transform symlink to dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-@@ -798,6 +799,25 @@ which point outside the copied tree. All absolute symlinks are
+@@ -802,6 +803,25 @@ which point outside the copied tree. All absolute symlinks are
also ignored. Using this option in conjunction with bf(--relative) may
give unexpected results.
@@ -208,7 +208,7 @@
\-k, \-\-copy\-dirlinks transform symlink to dir into referent dir
\-K, \-\-keep\-dirlinks treat symlinked dir on receiver as dir
\-H, \-\-hard\-links preserve hard links
-@@ -919,6 +920,26 @@ which point outside the copied tree. All
+@@ -923,6 +924,26 @@ which point outside the copied tree. All
also ignored. Using this option in conjunction with \fB\-\-relative\fP may
give unexpected results.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/omit-dir-changes.diff new/rsync-3.0.6/patches/omit-dir-changes.diff
--- old/rsync-3.0.6pre1/patches/omit-dir-changes.diff 2009-04-13 00:30:23.000000000 +0200
+++ new/rsync-3.0.6/patches/omit-dir-changes.diff 2009-05-08 19:44:49.000000000 +0200
@@ -131,7 +131,7 @@
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-@@ -1007,6 +1008,10 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
+@@ -1011,6 +1012,10 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
@@ -153,7 +153,7 @@
\-\-super receiver attempts super-user activities
\-\-fake\-super store/recover privileged attrs using xattrs
\-S, \-\-sparse handle sparse files efficiently
-@@ -1158,6 +1159,11 @@ it is preserving modification times (see
+@@ -1162,6 +1163,11 @@ it is preserving modification times (see
the directories on the receiving side, it is a good idea to use \fB\-O\fP.
This option is inferred if you use \fB\-\-backup\fP without \fB\-\-backup\-dir\fP.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/osx-xattr-nodev.diff new/rsync-3.0.6/patches/osx-xattr-nodev.diff
--- old/rsync-3.0.6pre1/patches/osx-xattr-nodev.diff 2009-04-13 00:30:32.000000000 +0200
+++ new/rsync-3.0.6/patches/osx-xattr-nodev.diff 2009-05-08 19:44:58.000000000 +0200
@@ -11,7 +11,7 @@
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
-@@ -1416,6 +1416,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
+@@ -1426,6 +1426,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
#endif
#ifdef SUPPORT_XATTRS
if (preserve_xattrs) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/preallocate.diff new/rsync-3.0.6/patches/preallocate.diff
--- old/rsync-3.0.6pre1/patches/preallocate.diff 2009-04-13 00:30:37.000000000 +0200
+++ new/rsync-3.0.6/patches/preallocate.diff 2009-05-08 19:45:03.000000000 +0200
@@ -224,7 +224,7 @@
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1056,6 +1057,18 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
+@@ -1060,6 +1061,18 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
@@ -530,7 +530,7 @@
\-n, \-\-dry\-run perform a trial run with no changes made
\-W, \-\-whole\-file copy files whole (w/o delta-xfer algorithm)
\-x, \-\-one\-file\-system don't cross filesystem boundaries
-@@ -1213,6 +1214,19 @@ NOTE: Don't use this option when the des
+@@ -1217,6 +1218,19 @@ NOTE: Don't use this option when the des
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/remote-option.diff new/rsync-3.0.6/patches/remote-option.diff
--- old/rsync-3.0.6pre1/patches/remote-option.diff 2009-04-13 00:29:36.000000000 +0200
+++ new/rsync-3.0.6/patches/remote-option.diff 2009-05-08 19:44:03.000000000 +0200
@@ -124,7 +124,7 @@
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
-@@ -1033,16 +1034,16 @@ This is a good way to backup data without using a super-user, and to store
+@@ -1037,16 +1038,16 @@ This is a good way to backup data without using a super-user, and to store
ACLs from incompatible systems.
The bf(--fake-super) option only affects the side where the option is used.
@@ -149,7 +149,7 @@
This option is overridden by both bf(--super) and bf(--no-super).
-@@ -1295,6 +1296,36 @@ machine for use with the bf(--relative) option. For instance:
+@@ -1311,6 +1312,36 @@ machine for use with the bf(--relative) option. For instance:
quote(tt( rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/))
@@ -186,7 +186,7 @@
dit(bf(-C, --cvs-exclude)) This is a useful shorthand for excluding a
broad range of files that you often don't want to transfer between
systems. It uses a similar algorithm to CVS to determine if
-@@ -1771,7 +1802,7 @@ option if you wish to override this.
+@@ -1787,7 +1818,7 @@ option if you wish to override this.
Here's a example command that requests the remote side to log what is
happening:
@@ -206,7 +206,7 @@
\-\-out\-format=FORMAT output updates using the specified FORMAT
\-\-log\-file=FILE log what we're doing to the specified FILE
\-\-log\-file\-format=FMT log updates using the specified FMT
-@@ -1186,19 +1187,19 @@ This is a good way to backup data withou
+@@ -1190,19 +1191,19 @@ This is a good way to backup data withou
ACLs from incompatible systems.
.IP
The \fB\-\-fake\-super\fP option only affects the side where the option is used.
@@ -234,7 +234,7 @@
.IP
This option is overridden by both \fB\-\-super\fP and \fB\-\-no\-super\fP.
.IP
-@@ -1478,6 +1479,43 @@ machine for use with the \fB\-\-relative
+@@ -1494,6 +1495,43 @@ machine for use with the \fB\-\-relative
.RE
.IP
@@ -278,7 +278,7 @@
.IP "\fB\-C, \-\-cvs\-exclude\fP"
This is a useful shorthand for excluding a
broad range of files that you often don't want to transfer between
-@@ -2033,7 +2071,7 @@ Here's a example command that requests t
+@@ -2049,7 +2087,7 @@ Here's a example command that requests t
happening:
.IP
.nf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/slow-down.diff new/rsync-3.0.6/patches/slow-down.diff
--- old/rsync-3.0.6pre1/patches/slow-down.diff 2009-04-13 00:30:42.000000000 +0200
+++ new/rsync-3.0.6/patches/slow-down.diff 2009-05-08 19:45:08.000000000 +0200
@@ -25,7 +25,7 @@
extern struct stats stats;
extern char *filesfrom_host;
-@@ -1655,6 +1656,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -1665,6 +1666,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
}
send_file_name(f, flist, fbuf, NULL, flags, filter_level);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/slp.diff new/rsync-3.0.6/patches/slp.diff
--- old/rsync-3.0.6pre1/patches/slp.diff 2009-04-13 00:30:47.000000000 +0200
+++ new/rsync-3.0.6/patches/slp.diff 2009-05-08 19:45:14.000000000 +0200
@@ -48,7 +48,7 @@
* local address??? */
+#ifdef HAVE_LIBSLP
-+ if (register_services()) {
++ if (lp_use_slp() && register_services() != 0) {
+ rprintf(FINFO,
+ "Couldn't register with service discovery protocol, continuing anyway\n");
+ }
@@ -93,17 +93,21 @@
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -109,6 +109,9 @@ typedef struct
+@@ -109,6 +109,13 @@ typedef struct
char *socket_options;
int rsync_port;
+#ifdef HAVE_LIBSLP
+ int slp_refresh;
+#endif
++
++#ifdef HAVE_LIBSLP
++ BOOL use_slp;
++#endif
} global;
static global Globals;
-@@ -300,6 +303,9 @@ static struct parm_struct parm_table[] =
+@@ -300,7 +307,13 @@ static struct parm_struct parm_table[] =
{"motd file", P_STRING, P_GLOBAL,&Globals.motd_file, NULL,0},
{"pid file", P_STRING, P_GLOBAL,&Globals.pid_file, NULL,0},
{"port", P_INTEGER,P_GLOBAL,&Globals.rsync_port, NULL,0},
@@ -111,15 +115,31 @@
+ {"slp refresh", P_INTEGER,P_GLOBAL,&Globals.slp_refresh, NULL,0},
+#endif
{"socket options", P_STRING, P_GLOBAL,&Globals.socket_options, NULL,0},
++#ifdef HAVE_LIBSLP
++ {"use slp", P_BOOL, P_GLOBAL,&Globals.use_slp, NULL,0},
++#endif
{"auth users", P_STRING, P_LOCAL, &sDefault.auth_users, NULL,0},
-@@ -394,6 +400,9 @@ FN_GLOBAL_STRING(lp_pid_file, &Globals.pid_file)
+ {"charset", P_STRING, P_LOCAL, &sDefault.charset, NULL,0},
+@@ -354,6 +367,7 @@ static struct parm_struct parm_table[] =
+ static void init_globals(void)
+ {
+ memset(&Globals, 0, sizeof Globals);
++ Globals.use_slp = True;
+ }
+
+ /***************************************************************************
+@@ -394,6 +408,13 @@ FN_GLOBAL_STRING(lp_pid_file, &Globals.pid_file)
FN_GLOBAL_STRING(lp_socket_options, &Globals.socket_options)
FN_GLOBAL_INTEGER(lp_rsync_port, &Globals.rsync_port)
+#ifdef HAVE_LIBSLP
+FN_GLOBAL_INTEGER(lp_slp_refresh, &Globals.slp_refresh)
+#endif
++
++#ifdef HAVE_LIBSLP
++FN_GLOBAL_BOOL(lp_use_slp, &Globals.use_slp)
++#endif
FN_LOCAL_STRING(lp_auth_users, auth_users)
FN_LOCAL_STRING(lp_charset, charset)
@@ -219,14 +239,18 @@
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
-@@ -104,6 +104,15 @@ details on some of the options you may be able to set. By default no
+@@ -104,6 +104,19 @@ details on some of the options you may be able to set. By default no
special socket options are set. These settings can also be specified
via the bf(--sockopts) command-line option.
++dit(bf(use slp)) This parameter is used to determine if the module names are
++advertised via slp. The default is for this to be enabled, which will
++advertise your public modules.
++
+dit(bf(slp refresh)) This parameter is used to determine how long service
+advertisements are valid (measured in seconds), and is only applicable if
+you have Service Location Protocol support compiled in. If this is
-+not set or is set to zero, then service advertisements never time out. If
++not set or is set to zero, then service advertisements never timeout. If
+this is set to less than 120 seconds, then 120 seconds is used. If it is
+set to more than 65535, then 65535 is used (which is a limitation of SLP).
+Using 3600 (one hour) is a good number if you tend to change your
@@ -235,7 +259,7 @@
enddit()
manpagesection(MODULE PARAMETERS)
-@@ -652,6 +661,7 @@ use chroot = yes
+@@ -652,6 +665,7 @@ use chroot = yes
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
@@ -252,7 +276,7 @@
int *sp, maxfd, i;
+#ifdef HAVE_LIBSLP
+ time_t next_slp_refresh;
-+ short slp_timeout = lp_slp_refresh();
++ short slp_timeout = lp_use_slp() ? lp_slp_refresh() : 0;
+ if (slp_timeout) {
+ if (slp_timeout < SLP_MIN_TIMEOUT)
+ slp_timeout = SLP_MIN_TIMEOUT;
@@ -848,15 +872,16 @@
diff -up a/proto.h b/proto.h
--- a/proto.h
+++ b/proto.h
-@@ -183,6 +183,7 @@ char *lp_motd_file(void);
+@@ -183,6 +183,8 @@ char *lp_motd_file(void);
char *lp_pid_file(void);
char *lp_socket_options(void);
int lp_rsync_port(void);
+int lp_slp_refresh(void);
++BOOL lp_use_slp(void);
char *lp_auth_users(int module_id);
char *lp_charset(int module_id);
char *lp_comment(int module_id);
-@@ -295,6 +296,8 @@ int is_a_socket(int fd);
+@@ -295,6 +297,8 @@ int is_a_socket(int fd);
void start_accept_loop(int port, int (*fn)(int, int));
void set_socket_options(int fd, char *options);
int sock_exec(const char *prog);
@@ -888,15 +913,20 @@
diff -up a/rsyncd.conf.5 b/rsyncd.conf.5
--- a/rsyncd.conf.5
+++ b/rsyncd.conf.5
-@@ -121,6 +121,16 @@ details on some of the options you may b
+@@ -121,6 +121,21 @@ details on some of the options you may b
special socket options are set. These settings can also be specified
via the \fB\-\-sockopts\fP command-line option.
.IP
++.IP "\fBuse slp\fP"
++This parameter is used to determine if the module names are
++advertised via slp. The default is for this to be enabled, which will
++advertise your public modules.
++.IP
+.IP "\fBslp refresh\fP"
+This parameter is used to determine how long service
+advertisements are valid (measured in seconds), and is only applicable if
+you have Service Location Protocol support compiled in. If this is
-+not set or is set to zero, then service advertisements never time out. If
++not set or is set to zero, then service advertisements never timeout. If
+this is set to less than 120 seconds, then 120 seconds is used. If it is
+set to more than 65535, then 65535 is used (which is a limitation of SLP).
+Using 3600 (one hour) is a good number if you tend to change your
@@ -905,7 +935,7 @@
.SH "MODULE PARAMETERS"
.PP
-@@ -764,6 +774,7 @@ use chroot = yes
+@@ -764,6 +779,7 @@ use chroot = yes
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/source-backup.diff new/rsync-3.0.6/patches/source-backup.diff
--- old/rsync-3.0.6pre1/patches/source-backup.diff 2009-04-13 00:30:55.000000000 +0200
+++ new/rsync-3.0.6/patches/source-backup.diff 2009-05-08 19:45:22.000000000 +0200
@@ -56,7 +56,7 @@
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
-@@ -1118,6 +1119,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
+@@ -1130,6 +1131,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
side the files (meaning non-directories) that are a part of the transfer
and have been successfully duplicated on the receiving side.
@@ -114,7 +114,7 @@
\-\-del an alias for \-\-delete\-during
\-\-delete delete extraneous files from dest dirs
\-\-delete\-before receiver deletes before transfer (default)
-@@ -1281,6 +1282,15 @@ This tells rsync to remove from the send
+@@ -1293,6 +1294,15 @@ This tells rsync to remove from the send
side the files (meaning non-directories) that are a part of the transfer
and have been successfully duplicated on the receiving side.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/source-filter_dest-filter.diff new/rsync-3.0.6/patches/source-filter_dest-filter.diff
--- old/rsync-3.0.6pre1/patches/source-filter_dest-filter.diff 2009-04-13 00:30:57.000000000 +0200
+++ new/rsync-3.0.6/patches/source-filter_dest-filter.diff 2009-05-08 19:45:24.000000000 +0200
@@ -342,7 +342,7 @@
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-@@ -2061,6 +2064,33 @@ file previously generated by bf(--write-batch).
+@@ -2082,6 +2085,33 @@ file previously generated by bf(--write-batch).
If em(FILE) is bf(-), the batch data will be read from standard input.
See the "BATCH MODE" section for details.
@@ -505,7 +505,7 @@
\-\-protocol=NUM force an older protocol version to be used
\-\-iconv=CONVERT_SPEC request charset conversion of filenames
\-\-checksum\-seed=NUM set block/file checksum seed (advanced)
-@@ -2369,6 +2372,35 @@ file previously generated by \fB\-\-writ
+@@ -2390,6 +2393,35 @@ file previously generated by \fB\-\-writ
If \fIFILE\fP is \fB\-\fP, the batch data will be read from standard input.
See the \(lqBATCH MODE\(rq section for details.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/sparse-block.diff new/rsync-3.0.6/patches/sparse-block.diff
--- old/rsync-3.0.6pre1/patches/sparse-block.diff 2009-04-13 00:31:00.000000000 +0200
+++ new/rsync-3.0.6/patches/sparse-block.diff 2009-05-08 19:45:27.000000000 +0200
@@ -89,7 +89,7 @@
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1056,6 +1057,15 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
+@@ -1060,6 +1061,15 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
@@ -116,7 +116,7 @@
\-n, \-\-dry\-run perform a trial run with no changes made
\-W, \-\-whole\-file copy files whole (w/o delta-xfer algorithm)
\-x, \-\-one\-file\-system don't cross filesystem boundaries
-@@ -1213,6 +1214,16 @@ NOTE: Don't use this option when the des
+@@ -1217,6 +1218,16 @@ NOTE: Don't use this option when the des
filesystem. It doesn't seem to handle seeks over null regions
correctly and ends up corrupting the files.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/time-limit.diff new/rsync-3.0.6/patches/time-limit.diff
--- old/rsync-3.0.6pre1/patches/time-limit.diff 2009-04-13 00:31:05.000000000 +0200
+++ new/rsync-3.0.6/patches/time-limit.diff 2009-05-08 19:45:32.000000000 +0200
@@ -151,7 +151,7 @@
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
-@@ -2035,6 +2037,19 @@ transfer was too fast, it will wait before sending the next data block. The
+@@ -2056,6 +2058,19 @@ transfer was too fast, it will wait before sending the next data block. The
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.
@@ -331,7 +331,7 @@
\-\-write\-batch=FILE write a batched update to FILE
\-\-only\-write\-batch=FILE like \-\-write\-batch but w/o updating dest
\-\-read\-batch=FILE read a batched update from FILE
-@@ -2340,6 +2342,21 @@ transfer was too fast, it will wait befo
+@@ -2361,6 +2363,21 @@ transfer was too fast, it will wait befo
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/transliterate.diff new/rsync-3.0.6/patches/transliterate.diff
--- old/rsync-3.0.6pre1/patches/transliterate.diff 2009-04-13 00:31:07.000000000 +0200
+++ new/rsync-3.0.6/patches/transliterate.diff 2009-05-08 19:45:34.000000000 +0200
@@ -26,7 +26,7 @@
#define PTR_SIZE (sizeof (struct file_struct *))
int io_error;
-@@ -619,6 +622,24 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -629,6 +632,24 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
stats.total_size += F_LENGTH(file);
}
@@ -51,7 +51,7 @@
static struct file_struct *recv_file_entry(struct file_list *flist,
int xflags, int f)
{
-@@ -687,6 +708,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -697,6 +718,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
}
#endif
@@ -145,7 +145,7 @@
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
-@@ -2099,6 +2100,22 @@ daemon uses the charset specified in its "charset" configuration parameter
+@@ -2120,6 +2121,22 @@ daemon uses the charset specified in its "charset" configuration parameter
regardless of the remote charset you actually pass. Thus, you may feel free to
specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).
@@ -179,7 +179,7 @@
\-\-checksum\-seed=NUM set block/file checksum seed (advanced)
\-4, \-\-ipv4 prefer IPv4
\-6, \-\-ipv6 prefer IPv6
-@@ -2409,6 +2410,23 @@ daemon uses the charset specified in its
+@@ -2430,6 +2431,23 @@ daemon uses the charset specified in its
regardless of the remote charset you actually pass. Thus, you may feel free to
specify just the local charset for a daemon transfer (e.g. \fB\-\-iconv=utf8\fP).
.IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsync-3.0.6pre1/patches/usermap.diff new/rsync-3.0.6/patches/usermap.diff
--- old/rsync-3.0.6pre1/patches/usermap.diff 2009-04-13 00:31:12.000000000 +0200
+++ new/rsync-3.0.6/patches/usermap.diff 2009-05-08 19:45:39.000000000 +0200
@@ -18,7 +18,7 @@
extern char curr_dir[MAXPATHLEN];
-@@ -767,7 +768,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -776,7 +777,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
uid = (uid_t)read_varint(f);
if (xflags & XMIT_USER_NAME_FOLLOWS)
uid = recv_user_name(f, uid);
@@ -27,7 +27,7 @@
uid = match_uid(uid);
}
}
-@@ -779,7 +780,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -788,7 +789,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
gid_flags = 0;
if (xflags & XMIT_GROUP_NAME_FOLLOWS)
gid = recv_group_name(f, gid, &gid_flags);
@@ -36,7 +36,7 @@
gid = match_gid(gid, &gid_flags);
}
}
-@@ -2270,8 +2271,13 @@ struct file_list *recv_file_list(int f)
+@@ -2280,8 +2281,13 @@ struct file_list *recv_file_list(int f)
int64 start_read;
int save_verbose = verbose;
@@ -168,7 +168,7 @@
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match size and time
-@@ -1627,6 +1630,57 @@ from the source system is used instead. See also the comments on the
+@@ -1643,6 +1646,57 @@ from the source system is used instead. See also the comments on the
the chroot setting affects rsync's ability to look up the names of the
users and groups and what you can do about it.
@@ -572,7 +572,7 @@
\-\-timeout=SECONDS set I/O timeout in seconds
\-\-contimeout=SECONDS set daemon connection timeout in seconds
\-I, \-\-ignore\-times don't skip files that match size and time
-@@ -1860,6 +1863,65 @@ from the source system is used instead.
+@@ -1876,6 +1879,65 @@ from the source system is used instead.
the chroot setting affects rsync's ability to look up the names of the
users and groups and what you can do about it.
.IP
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org