<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/bb77a85f527a0cb749fa91df80a0eb14293e24b5">https://github.com/macports/macports-ports/commit/bb77a85f527a0cb749fa91df80a0eb14293e24b5</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new bb77a85f527 rsync: Update to 3.2.2
</span>bb77a85f527 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit bb77a85f527a0cb749fa91df80a0eb14293e24b5
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Mon Jul 6 16:35:16 2020 -0500
<span style='display:block; white-space:pre;color:#404040;'> rsync: Update to 3.2.2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Rename patchfiles to match their official upstream names.
</span>---
net/rsync/Portfile | 38 +++++---
.../files/{patch-crtimes.diff => crtimes.diff} | 72 +++++++-------
.../files/{patch-fileflags.diff => fileflags.diff} | 108 ++++++++++-----------
net/rsync/files/patch-acls-unpack-error.diff | 9 +-
4 files changed, 117 insertions(+), 110 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/rsync/Portfile b/net/rsync/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index dc6cd6cc74e..34470a999cc 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/rsync/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/rsync/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,8 +3,12 @@
</span> PortSystem 1.0
name rsync
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 3.2.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 3.2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 0de1f851925437e08d794db341189ead54e36620 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1057001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> categories net
license {GPL-3+ OpenSSLException}
installs_libs no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,10 +23,6 @@ long_description rsync is an open source utility that provides fast \
</span> homepage https://rsync.samba.org
master_sites https://download.samba.org/pub/rsync/src/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 5e766682e2d2ea1194cf8cb13d21caa81d3a87ba \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 95f2dd62979b500a99b34c1a6453a0787ada0330e4bec7fcffad37b9062d58d3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 1051665
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> depends_lib port:popt \
port:libiconv \
port:xxhashlib \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,15 +30,23 @@ depends_lib port:popt \
</span> port:zstd \
path:lib/libssl.dylib:openssl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# these come from http://rsync.samba.org/ftp/rsync/rsync-patches-3.2.1.tar.gz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# and need to be updated with each release
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# hfs-compression.diff is marked by upstream as broken as of 3.2.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# removed: patch-hfs-compression.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-fileflags.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-crtimes.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-acls-unpack-error.diff
</span> patch.pre_args -p1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# These patches come from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://download.samba.org/pub/rsync/src/rsync-patches-3.2.2.tar.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# and need to be updated with each release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# We would like to use hfs-compression.diff but it is claimed that it is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# marked by upstream as broken as of 3.1.3, although I cannot find
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# evidence for that claim:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/60792
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles fileflags.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crtimes.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This patch adds "advanced error-logging for ACL unpack errors". It
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# is unknown where the patch came from or whether it has been suggested
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# to the developers of rsync.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-acls-unpack-error.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args --with-rsyncd-conf=${prefix}/etc/rsyncd.conf
pre-configure {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,11 +58,11 @@ test.target check
</span>
post-destroot {
xinstall -d ${destroot}${prefix}/share/doc/${name}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 644 -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 -W ${worksrcpath} \
</span> COPYING INSTALL.md NEWS.md TODO README.md doc/README-SGML \
doc/profile.txt doc/rsync.sgml \
${destroot}${prefix}/share/doc/${name}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 644 ${filespath}/rsyncd.conf.example \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 ${filespath}/rsyncd.conf.example \
</span> ${destroot}${prefix}/etc/rsyncd.conf.example
reinplace "s|__PREFIX__|${prefix}|g" \
${destroot}${prefix}/etc/rsyncd.conf.example
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/rsync/files/patch-crtimes.diff b/net/rsync/files/crtimes.diff
</span>similarity index 93%
rename from net/rsync/files/patch-crtimes.diff
rename to net/rsync/files/crtimes.diff
<span style='display:block; white-space:pre;color:#808080;'>index 35f242f5efa..e8dc668f17d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/rsync/files/patch-crtimes.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/rsync/files/crtimes.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,7 @@ based-on: patch/master/fileflags
</span> diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -43,6 +43,7 @@ extern int protect_args;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,6 +44,7 @@ extern int protect_args;
</span> extern int preserve_uid;
extern int preserve_gid;
extern int preserve_atimes;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,7 +20,7 @@ diff --git a/compat.c b/compat.c
</span> extern int preserve_acls;
extern int preserve_xattrs;
extern int preserve_fileflags;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -76,7 +77,7 @@ int inplace_partial = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,7 +78,7 @@ int inplace_partial = 0;
</span> int do_negotiated_strings = 0;
/* These index values are for the file-list's extra-attribute array. */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,7 @@ diff --git a/compat.c b/compat.c
</span>
int receiver_symlink_times = 0; /* receiver can set the time on a symlink */
int sender_symlink_iconv = 0; /* sender should convert symlink content */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -462,6 +463,8 @@ void setup_protocol(int f_out,int f_in)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -555,6 +556,8 @@ void setup_protocol(int f_out,int f_in)
</span> * aligned for direct int64-pointer memory access. */
if (preserve_atimes)
atimes_ndx = (file_extra_cnt += EXTRA64_CNT);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,7 +38,7 @@ diff --git a/compat.c b/compat.c
</span> if (am_sender) /* This is most likely in the in64 union as well. */
pathname_ndx = (file_extra_cnt += PTR_EXTRA_CNT);
else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -627,6 +630,10 @@ void setup_protocol(int f_out,int f_in)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -718,6 +721,10 @@ void setup_protocol(int f_out,int f_in)
</span> want_xattr_optim = protocol_version >= 31 && !(compat_flags & CF_AVOID_XATTR_OPTIM);
proper_seed_order = compat_flags & CF_CHKSUM_SEED_FIX ? 1 : 0;
xfer_flags_as_varint = compat_flags & CF_VARINT_FLIST_FLAGS ? 1 : 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,7 +60,7 @@ diff --git a/flist.c b/flist.c
</span> extern int relative_paths;
extern int implied_dirs;
extern int ignore_perishable;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -382,6 +383,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -378,6 +379,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> int ndx, int first_ndx)
{
static time_t modtime, atime;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -70,7 +70,7 @@ diff --git a/flist.c b/flist.c
</span> static mode_t mode;
#ifdef SUPPORT_FILEFLAGS
static uint32 fileflags;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -498,6 +502,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -494,6 +498,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> else
atime = F_ATIME(file);
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,7 +84,7 @@ diff --git a/flist.c b/flist.c
</span>
#ifdef SUPPORT_HARD_LINKS
if (tmp_dev != -1) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -585,6 +596,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -581,6 +592,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> }
if (xflags & XMIT_MOD_NSEC)
write_varint(f, F_MOD_NSEC(file));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -95,7 +95,7 @@ diff --git a/flist.c b/flist.c
</span> if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
#ifdef SUPPORT_FILEFLAGS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -681,6 +696,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -677,6 +692,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> static struct file_struct *recv_file_entry(int f, struct file_list *flist, int xflags)
{
static int64 modtime, atime;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -105,7 +105,7 @@ diff --git a/flist.c b/flist.c
</span> static mode_t mode;
#ifdef SUPPORT_FILEFLAGS
static uint32 fileflags;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -794,6 +812,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -790,6 +808,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> mode = first->mode;
if (atimes_ndx && !S_ISDIR(mode))
atime = F_ATIME(first);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -116,7 +116,7 @@ diff --git a/flist.c b/flist.c
</span> #ifdef SUPPORT_FILEFLAGS
if (preserve_fileflags)
fileflags = F_FFLAGS(first);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -834,6 +856,21 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -830,6 +852,21 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> modtime_nsec = read_varint(f);
else
modtime_nsec = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -138,7 +138,7 @@ diff --git a/flist.c b/flist.c
</span> if (!(xflags & XMIT_SAME_MODE))
mode = from_wire_mode(read_int(f));
if (atimes_ndx && !S_ISDIR(mode) && !(xflags & XMIT_SAME_ATIME)) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1023,6 +1060,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1019,6 +1056,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> }
if (atimes_ndx && !S_ISDIR(mode))
F_ATIME(file) = atime;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -149,7 +149,7 @@ diff --git a/flist.c b/flist.c
</span> if (unsort_ndx)
F_NDX(file) = flist->used + flist->ndx_start;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1426,6 +1467,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1420,6 +1461,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
</span> file->flags |= FLAG_OWNED_BY_US;
if (atimes_ndx && !S_ISDIR(file->mode))
F_ATIME(file) = st.st_atime;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -281,7 +281,7 @@ diff --git a/log.c b/log.c
</span> diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -64,6 +64,7 @@ int preserve_uid = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,6 +65,7 @@ int preserve_uid = 0;
</span> int preserve_gid = 0;
int preserve_times = 0;
int preserve_atimes = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -289,7 +289,7 @@ diff --git a/options.c b/options.c
</span> int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -664,6 +665,11 @@ static void print_capabilities(enum logcode f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -671,6 +672,11 @@ static void print_info_flags(enum logcode f)
</span> #endif
"file-flags",
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -298,10 +298,10 @@ diff --git a/options.c b/options.c
</span> +#endif
+ "crtimes",
+
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "*" /* All options after this point are hidden w/o -V -V */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "*Optimizations",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #ifndef HAVE_SIMD
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "no "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -842,6 +848,9 @@ static struct poptOption long_options[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -840,6 +846,9 @@ static struct poptOption long_options[] = {
</span> {"no-U", 0, POPT_ARG_VAL, &preserve_atimes, 0, 0, 0 },
{"open-noatime", 0, POPT_ARG_VAL, &open_noatime, 1, 0, 0 },
{"no-open-noatime", 0, POPT_ARG_VAL, &open_noatime, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -311,7 +311,7 @@ diff --git a/options.c b/options.c
</span> {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 1, 0, 0 },
{"no-omit-dir-times",0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
{"no-O", 0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1222,6 +1231,9 @@ static void set_refuse_options(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1221,6 +1230,9 @@ static void set_refuse_options(void)
</span> parse_one_refuse_match(0, "force-uchange", list_end);
parse_one_refuse_match(0, "force-schange", list_end);
#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -321,7 +321,7 @@ diff --git a/options.c b/options.c
</span>
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2569,6 +2581,10 @@ void server_options(char **args, int *argc_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2564,6 +2576,10 @@ void server_options(char **args, int *argc_p)
</span> if (preserve_atimes > 1)
argstr[x++] = 'U';
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -343,7 +343,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> --omit-dir-times, -O omit directories from --times
--omit-link-times, -J omit symlinks from --times
--super receiver attempts super-user activities
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1370,6 +1371,11 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1368,6 +1369,11 @@ your home directory (remove the '=' for that).
</span> mounted to avoid updating the atime on read access even without the
O_NOATIME flag being set.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -355,7 +355,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> 0. `--omit-dir-times`, `-O`
This tells rsync to omit directories when it is preserving modification
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2606,7 +2612,7 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2642,7 +2648,7 @@ your home directory (remove the '=' for that).
</span> output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -364,7 +364,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> of update being done, **X** is replaced by the file-type, and the other
letters represent attributes that may be output if they are being modified.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2663,6 +2669,8 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2699,6 +2705,8 @@ your home directory (remove the '=' for that).
</span> happens when a symlink or directory is updated.
- The `a` means that the ACL information changed.
- The `x` means that the extended attribute information changed.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -424,7 +424,7 @@ diff --git a/rsync.c b/rsync.c
</span> diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -69,7 +69,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -70,7 +70,7 @@
</span> /* The following XMIT flags require an rsync that uses a varint for the flag values */
#define XMIT_SAME_FLAGS (1<<16) /* any protocol - restricted by command-line option */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -433,7 +433,7 @@ diff --git a/rsync.h b/rsync.h
</span>
/* These flags are used in the live flist data. */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -182,6 +182,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,6 +183,7 @@
</span> #define ATTRS_ACCURATE_TIME (1<<2)
#define ATTRS_SKIP_ATIME (1<<3)
#define ATTRS_DELAY_IMMUTABLE (1<<4)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -441,7 +441,7 @@ diff --git a/rsync.h b/rsync.h
</span>
#define MSG_FLUSH 2
#define FULL_FLUSH 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -210,6 +211,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,6 +212,7 @@
</span> #define ITEM_REPORT_ACL (1<<7)
#define ITEM_REPORT_XATTR (1<<8)
#define ITEM_REPORT_FFLAGS (1<<9)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -449,7 +449,7 @@ diff --git a/rsync.h b/rsync.h
</span> #define ITEM_BASIS_TYPE_FOLLOWS (1<<11)
#define ITEM_XNAME_FOLLOWS (1<<12)
#define ITEM_IS_NEW (1<<13)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -575,6 +577,10 @@ typedef unsigned int size_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -577,6 +579,10 @@ typedef unsigned int size_t;
</span> #define ST_FLAGS(st) NO_FFLAGS
#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -460,7 +460,7 @@ diff --git a/rsync.h b/rsync.h
</span> /* Find a variable that is either exactly 32-bits or longer.
* If some code depends on 32-bit truncation, it will need to
* take special action in a "#if SIZEOF_INT32 > 4" section. */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -784,6 +790,7 @@ struct file_struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -786,6 +792,7 @@ struct file_struct {
</span> extern int file_extra_cnt;
extern int inc_recurse;
extern int atimes_ndx;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -468,7 +468,7 @@ diff --git a/rsync.h b/rsync.h
</span> extern int pathname_ndx;
extern int depth_ndx;
extern int uid_ndx;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -848,6 +855,7 @@ extern int xattrs_ndx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -850,6 +857,7 @@ extern int xattrs_ndx;
</span> #define F_XATTR(f) REQ_EXTRA(f, xattrs_ndx)->num
#define F_NDX(f) REQ_EXTRA(f, unsort_ndx)->num
#define F_ATIME(f) REQ_EXTRA64(f, atimes_ndx)->num
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -476,7 +476,7 @@ diff --git a/rsync.h b/rsync.h
</span>
/* These items are per-entry optional: */
#define F_HL_GNUM(f) OPT_EXTRA(f, START_BUMP(f))->num /* non-dirs */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1090,6 +1098,7 @@ typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1092,6 +1100,7 @@ typedef struct {
</span>
typedef struct {
STRUCT_STAT st;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -671,7 +671,7 @@ diff --git a/tls.c b/tls.c
</span> diff -Nurp a/proto.h b/proto.h
--- a/proto.h
+++ b/proto.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -339,6 +339,8 @@ int do_lstat(const char *fname, STRUCT_S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -286,6 +286,8 @@ int do_lstat(const char *fname, STRUCT_S
</span> int do_fstat(int fd, STRUCT_STAT *st);
OFF_T do_lseek(int fd, OFF_T offset, int whence);
int do_setattrlist_times(const char *fname, STRUCT_STAT *stp);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -691,7 +691,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> --omit-dir-times, -O omit directories from --times
--omit-link-times, -J omit symlinks from --times
--super receiver attempts super-user activities
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1431,6 +1432,9 @@ transferred. If your OS does not suppor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1429,6 +1430,9 @@ transferred. If your OS does not suppor
</span> will silently ignore this option. Note also that some filesystems are
mounted to avoid updating the atime on read access even without the
O_NOATIME flag being set.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -701,7 +701,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> .IP "\fB\-\-omit-dir-times\fP, \fB\-O\fP"
This tells rsync to omit directories when it is preserving modification
times (see \fB\-\-times\fP). If NFS is sharing the directories on the receiving
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2630,7 +2634,7 @@ also be output, but only if the receivin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2666,7 +2670,7 @@ also be output, but only if the receivin
</span> output of other verbose messages).
.IP
The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -710,7 +710,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> 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.
.IP
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2705,6 +2709,9 @@ happens when a symlink or directory is u
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2741,6 +2745,9 @@ happens when a symlink or directory is u
</span> The \fBa\fP means that the ACL information changed.
.IP o
The \fBx\fP means that the extended attribute information changed.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -731,7 +731,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> --omit-dir-times, -O omit directories from --times
--omit-link-times, -J omit symlinks from --times
--super receiver attempts super-user activities
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1314,6 +1315,11 @@ mounted to avoid updating the atime on r
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1313,6 +1314,11 @@ mounted to avoid updating the atime on r
</span> O_NOATIME flag being set.</p>
</dd>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -743,7 +743,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> <dt><code>--omit-dir-times</code>, <code>-O</code></dt><dd>
<p>This tells rsync to omit directories when it is preserving modification
times (see <code>--times</code>). If NFS is sharing the directories on the receiving
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2460,7 +2466,7 @@ also be output, but only if the receivin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2492,7 +2498,7 @@ also be output, but only if the receivin
</span> (you can use <code>-vv</code> with older versions of rsync, but that also turns on the
output of other verbose messages).</p>
<p>The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -752,7 +752,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> of update being done, <strong>X</strong> is replaced by the file-type, and the other
letters represent attributes that may be output if they are being modified.</p>
<p>The update types that replace the <strong>Y</strong> are as follows:</p>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2514,6 +2520,8 @@ means that the access time will be set t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2546,6 +2552,8 @@ means that the access time will be set t
</span> happens when a symlink or directory is updated.</li>
<li>The <code>a</code> means that the ACL information changed.</li>
<li>The <code>x</code> means that the extended attribute information changed.</li>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/rsync/files/patch-fileflags.diff b/net/rsync/files/fileflags.diff
</span>similarity index 94%
rename from net/rsync/files/patch-fileflags.diff
rename to net/rsync/files/fileflags.diff
<span style='display:block; white-space:pre;color:#808080;'>index 8238094d375..df4e0fcf18c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/rsync/files/patch-fileflags.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/rsync/files/fileflags.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,11 +7,11 @@ To use this patch, run these commands for a successful build:
</span> ./configure (optional if already run)
make
<span style='display:block; white-space:pre;background:#ffe0e0;'>-based-on: a8fc8fc2d22ba7243b96decb91c586682a05e4a1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+based-on: 194cee671d5e178f20c4494f41911fa8db942935
</span> diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -38,12 +38,14 @@ extern int checksum_seed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,12 +39,14 @@ extern int checksum_seed;
</span> extern int basis_dir_cnt;
extern int prune_empty_dirs;
extern int protocol_version;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,7 +26,7 @@ diff --git a/compat.c b/compat.c
</span> extern int xfer_flags_as_varint;
extern int need_messages_from_generator;
extern int delete_mode, delete_before, delete_during, delete_after;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -74,7 +76,7 @@ int inplace_partial = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +77,7 @@ int inplace_partial = 0;
</span> int do_negotiated_strings = 0;
/* These index values are for the file-list's extra-attribute array. */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,7 +35,7 @@ diff --git a/compat.c b/compat.c
</span>
int receiver_symlink_times = 0; /* receiver can set the time on a symlink */
int sender_symlink_iconv = 0; /* sender should convert symlink content */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -468,6 +470,8 @@ void setup_protocol(int f_out,int f_in)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -561,6 +563,8 @@ void setup_protocol(int f_out,int f_in)
</span> uid_ndx = ++file_extra_cnt;
if (preserve_gid)
gid_ndx = ++file_extra_cnt;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,7 +44,7 @@ diff --git a/compat.c b/compat.c
</span> if (preserve_acls && !am_sender)
acls_ndx = ++file_extra_cnt;
if (preserve_xattrs)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -623,6 +627,10 @@ void setup_protocol(int f_out,int f_in)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -714,6 +718,10 @@ void setup_protocol(int f_out,int f_in)
</span> want_xattr_optim = protocol_version >= 31 && !(compat_flags & CF_AVOID_XATTR_OPTIM);
proper_seed_order = compat_flags & CF_CHKSUM_SEED_FIX ? 1 : 0;
xfer_flags_as_varint = compat_flags & CF_VARINT_FLIST_FLAGS ? 1 : 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -111,7 +111,7 @@ diff --git a/flist.c b/flist.c
</span> extern int delete_during;
extern int missing_args;
extern int eol_nulls;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -382,6 +383,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -378,6 +379,9 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> {
static time_t modtime, atime;
static mode_t mode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -121,7 +121,7 @@ diff --git a/flist.c b/flist.c
</span> #ifdef SUPPORT_HARD_LINKS
static int64 dev;
#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -425,6 +429,14 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -421,6 +425,14 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> xflags |= XMIT_SAME_MODE;
else
mode = file->mode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -136,7 +136,7 @@ diff --git a/flist.c b/flist.c
</span>
if (preserve_devices && IS_DEVICE(mode)) {
if (protocol_version < 28) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -575,6 +587,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -571,6 +583,10 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
</span> write_varint(f, F_MOD_NSEC(file));
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,7 +147,7 @@ diff --git a/flist.c b/flist.c
</span> if (atimes_ndx && !S_ISDIR(mode) && !(xflags & XMIT_SAME_ATIME))
write_varlong(f, atime, 4);
if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -666,6 +682,9 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -662,6 +678,9 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> {
static int64 modtime, atime;
static mode_t mode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,7 +157,7 @@ diff --git a/flist.c b/flist.c
</span> #ifdef SUPPORT_HARD_LINKS
static int64 dev;
#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -775,6 +794,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -771,6 +790,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> mode = first->mode;
if (atimes_ndx && !S_ISDIR(mode))
atime = F_ATIME(first);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -168,7 +168,7 @@ diff --git a/flist.c b/flist.c
</span> if (preserve_uid)
uid = F_OWNER(first);
if (preserve_gid)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -826,6 +849,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -822,6 +845,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span>
if (chmod_modes && !S_ISLNK(mode) && mode)
mode = tweak_mode(mode, chmod_modes);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -179,7 +179,7 @@ diff --git a/flist.c b/flist.c
</span>
if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -984,6 +1011,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -980,6 +1007,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
</span> }
#endif
file->mode = mode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -190,7 +190,7 @@ diff --git a/flist.c b/flist.c
</span> if (preserve_uid)
F_OWNER(file) = uid;
if (preserve_gid) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1383,6 +1414,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1377,6 +1408,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
</span> }
#endif
file->mode = st.st_mode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -320,7 +320,7 @@ diff --git a/log.c b/log.c
</span> diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27,6 +27,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +28,9 @@
</span> #include <locale.h>
#endif
#include <popt.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -330,7 +330,7 @@ diff --git a/main.c b/main.c
</span>
extern int dry_run;
extern int list_only;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,6 +56,7 @@ extern int copy_unsafe_links;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,6 +57,7 @@ extern int copy_unsafe_links;
</span> extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -338,7 +338,7 @@ diff --git a/main.c b/main.c
</span> extern int file_total;
extern int recurse;
extern int xfer_dirs;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -951,6 +955,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -944,6 +948,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
</span> * points to an identical file won't be replaced by the referent. */
copy_links = copy_dirlinks = copy_unsafe_links = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -364,7 +364,7 @@ diff --git a/main.c b/main.c
</span> diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -56,6 +56,7 @@ int preserve_hard_links = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,7 @@ int preserve_hard_links = 0;
</span> int preserve_acls = 0;
int preserve_xattrs = 0;
int preserve_perms = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -372,7 +372,7 @@ diff --git a/options.c b/options.c
</span> int preserve_executability = 0;
int preserve_devices = 0;
int preserve_specials = 0;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -92,6 +93,7 @@ int numeric_ids = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,6 +94,7 @@ int numeric_ids = 0;
</span> int msgs2stderr = 0;
int allow_8bit_chars = 0;
int force_delete = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -380,7 +380,7 @@ diff --git a/options.c b/options.c
</span> int io_timeout = 0;
int prune_empty_dirs = 0;
int use_qsort = 0;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -657,6 +659,11 @@ static void print_capabilities(enum logcode f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -664,6 +666,11 @@ static void print_info_flags(enum logcode f)
</span> #endif
"prealloc",
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -389,10 +389,10 @@ diff --git a/options.c b/options.c
</span> +#endif
+ "file-flags",
+
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "*" /* All options after this point are hidden w/o -V -V */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "*Optimizations",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #ifndef HAVE_SIMD
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "no "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -818,6 +825,8 @@ static struct poptOption long_options[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -816,6 +823,8 @@ static struct poptOption long_options[] = {
</span> {"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 },
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -401,7 +401,7 @@ diff --git a/options.c b/options.c
</span> {"executability", 'E', POPT_ARG_NONE, &preserve_executability, 0, 0, 0 },
{"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 },
{"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -911,6 +920,12 @@ static struct poptOption long_options[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -910,6 +919,12 @@ static struct poptOption long_options[] = {
</span> {"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 },
{"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 },
{"no-force", 0, POPT_ARG_VAL, &force_delete, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -414,7 +414,7 @@ diff --git a/options.c b/options.c
</span> {"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1199,6 +1214,14 @@ static void set_refuse_options(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1198,6 +1213,14 @@ static void set_refuse_options(void)
</span> #ifndef HAVE_SETVBUF
parse_one_refuse_match(0, "outbuf", list_end);
#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -429,7 +429,7 @@ diff --git a/options.c b/options.c
</span>
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2651,6 +2674,9 @@ void server_options(char **args, int *argc_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2646,6 +2669,9 @@ void server_options(char **args, int *argc_p)
</span> if (xfer_dirs && !recurse && delete_mode && am_sender)
args[ac++] = "--no-r";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -439,7 +439,7 @@ diff --git a/options.c b/options.c
</span> if (do_compression && do_compression_level != CLVL_NOT_SPECIFIED) {
if (asprintf(&arg, "--compress-level=%d", do_compression_level) < 0)
goto oom;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2754,6 +2780,16 @@ void server_options(char **args, int *argc_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2749,6 +2775,16 @@ void server_options(char **args, int *argc_p)
</span> args[ac++] = "--delete-excluded";
if (force_delete)
args[ac++] = "--force";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -479,7 +479,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> --max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -702,6 +706,8 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -700,6 +704,8 @@ your home directory (remove the '=' for that).
</span>
Note that `-a` **does not preserve hardlinks**, because finding
multiply-linked files is expensive. You must separately specify `-H`.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -488,7 +488,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span>
0. `--no-OPTION`
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1040,7 +1046,7 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1038,7 +1044,7 @@ your home directory (remove the '=' for that).
</span> 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
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -497,7 +497,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span>
See also `--keep-dirlinks` for an analogous option for the receiving side.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1226,6 +1232,29 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1224,6 +1230,29 @@ your home directory (remove the '=' for that).
</span> those used by `--fake-super`) unless you repeat the option (e.g. `-XX`).
This "copy all xattrs" mode cannot be used with `--fake-super`.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -527,7 +527,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> 0. `--chmod=CHMOD`
This option tells rsync to apply one or more comma-separated "chmod" modes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1685,7 +1714,7 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1686,7 +1715,7 @@ your home directory (remove the '=' for that).
</span> option a step farther: each missing arg will become a deletion request of
the corresponding destination file on the receiving side (should it exist).
If the destination file is a non-empty directory, it will only be
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -536,7 +536,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span> that, this option is independent of any other type of delete processing.
The missing source files are represented by special file-list entries which
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1696,15 +1725,16 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1697,15 +1726,16 @@ your home directory (remove the '=' for that).
</span> Tells `--delete` to go ahead and delete files even when there are I/O
errors.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -557,7 +557,7 @@ diff --git a/rsync.1.md b/rsync.1.md
</span>
0. `--max-delete=NUM`
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2576,7 +2606,7 @@ your home directory (remove the '=' for that).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2612,7 +2642,7 @@ your home directory (remove the '=' for that).
</span> output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -679,7 +679,7 @@ diff --git a/rsync.c b/rsync.c
</span> diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,7 +68,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@
</span>
/* The following XMIT flags require an rsync that uses a varint for the flag values */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -688,7 +688,7 @@ diff --git a/rsync.h b/rsync.h
</span> #define XMIT_RESERVED_17 (1<<17) /* reserved for future crtimes use */
/* These flags are used in the live flist data. */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -181,6 +181,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -182,6 +182,7 @@
</span> #define ATTRS_SKIP_MTIME (1<<1)
#define ATTRS_ACCURATE_TIME (1<<2)
#define ATTRS_SKIP_ATIME (1<<3)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -696,7 +696,7 @@ diff --git a/rsync.h b/rsync.h
</span>
#define MSG_FLUSH 2
#define FULL_FLUSH 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -208,6 +209,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -209,6 +210,7 @@
</span> #define ITEM_REPORT_GROUP (1<<6)
#define ITEM_REPORT_ACL (1<<7)
#define ITEM_REPORT_XATTR (1<<8)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -704,7 +704,7 @@ diff --git a/rsync.h b/rsync.h
</span> #define ITEM_BASIS_TYPE_FOLLOWS (1<<11)
#define ITEM_XNAME_FOLLOWS (1<<12)
#define ITEM_IS_NEW (1<<13)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -548,6 +550,31 @@ typedef unsigned int size_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -550,6 +552,31 @@ typedef unsigned int size_t;
</span> #endif
#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -736,7 +736,7 @@ diff --git a/rsync.h b/rsync.h
</span> /* Find a variable that is either exactly 32-bits or longer.
* If some code depends on 32-bit truncation, it will need to
* take special action in a "#if SIZEOF_INT32 > 4" section. */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -761,6 +788,7 @@ extern int pathname_ndx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -763,6 +790,7 @@ extern int pathname_ndx;
</span> extern int depth_ndx;
extern int uid_ndx;
extern int gid_ndx;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -744,7 +744,7 @@ diff --git a/rsync.h b/rsync.h
</span> extern int acls_ndx;
extern int xattrs_ndx;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -811,6 +839,11 @@ extern int xattrs_ndx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -813,6 +841,11 @@ extern int xattrs_ndx;
</span> /* When the associated option is on, all entries will have these present: */
#define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
#define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -958,7 +958,7 @@ diff --git a/t_stub.c b/t_stub.c
</span> int preserve_times = 0;
int preserve_xattrs = 0;
int preserve_perms = 0;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -109,3 +111,23 @@ filter_rule_list daemon_filter_list;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,3 +112,23 @@ filter_rule_list daemon_filter_list;
</span> {
return cst ? 0 : 0;
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1079,7 +1079,7 @@ diff --git a/util.c b/util.c
</span> diff --git a/xattrs.c b/xattrs.c
--- a/xattrs.c
+++ b/xattrs.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1216,7 +1216,7 @@ int set_stat_xattr(const char *fname, struct file_struct *file, mode_t new_mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1204,7 +1204,7 @@ int set_stat_xattr(const char *fname, struct file_struct *file, mode_t new_mode)
</span> mode = (fst.st_mode & _S_IFMT) | (fmode & ACCESSPERMS)
| (S_ISDIR(fst.st_mode) ? 0700 : 0600);
if (fst.st_mode != mode)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1091,7 +1091,7 @@ diff --git a/xattrs.c b/xattrs.c
</span> diff -Nurp a/proto.h b/proto.h
--- a/proto.h
+++ b/proto.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -299,6 +299,8 @@ int read_ndx_and_attrs(int f_in, int f_o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,6 +246,8 @@ int read_ndx_and_attrs(int f_in, int f_o
</span> void free_sums(struct sum_struct *s);
mode_t dest_mode(mode_t flist_mode, mode_t stat_mode, int dflt_perms,
int exists);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1100,7 +1100,7 @@ diff -Nurp a/proto.h b/proto.h
</span> int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
const char *fnamecmp, int flags);
void sig_int(int sig_num);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -321,11 +323,12 @@ int do_unlink(const char *fname);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -268,11 +270,12 @@ int do_unlink(const char *fname);
</span> int do_symlink(const char *lnk, const char *fname);
ssize_t do_readlink(const char *path, char *buf, size_t bufsiz);
int do_link(const char *old_path, const char *new_path);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1138,7 +1138,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> --max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -765,6 +769,8 @@ omission). The only exception to the ab
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -763,6 +767,8 @@ omission). The only exception to the ab
</span> .IP
Note that \fB\-a\fP \fBdoes not preserve hardlinks\fP, because finding
multiply-linked files is expensive. You must separately specify \fB\-H\fP.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1147,7 +1147,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> .IP "\fB\-\-no-OPTION\fP"
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-": only options that
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1094,7 +1100,7 @@ to non-directories to be affected, as th
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1092,7 +1098,7 @@ to non-directories to be affected, as th
</span> 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
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1156,7 +1156,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> .IP
See also \fB\-\-keep-dirlinks\fP for an analogous option for the receiving side.
.IP
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1303,6 +1309,25 @@ receiver-only rule that excludes all nam
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1301,6 +1307,25 @@ receiver-only rule that excludes all nam
</span> Note that the \fB\-X\fP option does not copy rsync's special xattr values (e.g.
those used by \fB\-\-fake-super\fP) unless you repeat the option (e.g. \fB\-XX\fP).
This "copy all xattrs" mode cannot be used with \fB\-\-fake-super\fP.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1182,7 +1182,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> .IP "\fB\-\-chmod=CHMOD\fP"
This option tells rsync to apply one or more comma-separated "chmod" modes
to the permission of the files in the transfer. The resulting value is
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1720,7 +1745,7 @@ This option takes the behavior of (the i
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1723,7 +1748,7 @@ This option takes the behavior of (the i
</span> option a step farther: each missing arg will become a deletion request of
the corresponding destination file on the receiving side (should it exist).
If the destination file is a non-empty directory, it will only be
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1191,7 +1191,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> that, this option is independent of any other type of delete processing.
.IP
The missing source files are represented by special file-list entries which
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1728,14 +1753,15 @@ display as a "\fB*missing\fP" entry in t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1731,14 +1756,15 @@ display as a "\fB*missing\fP" entry in t
</span> .IP "\fB\-\-ignore-errors\fP"
Tells \fB\-\-delete\fP to go ahead and delete files even when there are I/O
errors.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1211,7 +1211,7 @@ diff -Nurp a/rsync.1 b/rsync.1
</span> .IP "\fB\-\-max-delete=NUM\fP"
This tells rsync not to delete more than NUM files or directories. If that
limit is exceeded, all further deletions are skipped through the end of the
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2604,7 +2630,7 @@ also be output, but only if the receivin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2640,7 +2666,7 @@ also be output, but only if the receivin
</span> output of other verbose messages).
.IP
The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1243,7 +1243,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> --max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -673,7 +677,9 @@ recursion and want to preserve almost ev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -672,7 +676,9 @@ recursion and want to preserve almost ev
</span> omission). The only exception to the above equivalence is when
<code>--files-from</code> is specified, in which case <code>-r</code> is not implied.</p>
<p>Note that <code>-a</code> <strong>does not preserve hardlinks</strong>, because finding
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1254,7 +1254,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> </dd>
<dt><code>--no-OPTION</code></dt><dd>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -993,7 +999,7 @@ to non-directories to be affected, as th
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -992,7 +998,7 @@ to non-directories to be affected, as th
</span> <p>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
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1263,7 +1263,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> <p>See also <code>--keep-dirlinks</code> for an analogous option for the receiving side.</p>
<p><code>--copy-dirlinks</code> applies to all symlinks to directories in the source. If
you want to follow only a few specified symlinks, a trick you can use is to
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1173,6 +1179,33 @@ those used by <code>--fake-super</code>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1172,6 +1178,33 @@ those used by <code>--fake-super</code>)
</span> This "copy all xattrs" mode cannot be used with <code>--fake-super</code>.</p>
</dd>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1297,7 +1297,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> <dt><code>--chmod=CHMOD</code></dt><dd>
<p>This option tells rsync to apply one or more comma-separated "chmod" modes
to the permission of the files in the transfer. The resulting value is
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1598,7 +1631,7 @@ is no longer there.</p>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1600,7 +1633,7 @@ is no longer there.</p>
</span> option a step farther: each missing arg will become a deletion request of
the corresponding destination file on the receiving side (should it exist).
If the destination file is a non-empty directory, it will only be
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1306,7 +1306,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> that, this option is independent of any other type of delete processing.</p>
<p>The missing source files are represented by special file-list entries which
display as a "<code>*missing</code>" entry in the <code>--list-only</code> output.</p>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1609,13 +1642,14 @@ display as a "<code>*missing</code>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1611,13 +1644,14 @@ display as a "<code>*missing</code>
</span> errors.</p>
</dd>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1325,7 +1325,7 @@ diff -Nurp a/rsync.1.html b/rsync.1.html
</span> </dd>
<dt><code>--max-delete=NUM</code></dt><dd>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2426,7 +2460,7 @@ also be output, but only if the receivin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2458,7 +2492,7 @@ also be output, but only if the receivin
</span> (you can use <code>-vv</code> with older versions of rsync, but that also turns on the
output of other verbose messages).</p>
<p>The "%i" escape has a cryptic output that is 11 letters long. The general
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/rsync/files/patch-acls-unpack-error.diff b/net/rsync/files/patch-acls-unpack-error.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 66923fa75ba..bc882598d7d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/rsync/files/patch-acls-unpack-error.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/rsync/files/patch-acls-unpack-error.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span> This patch causes rsync to report which files caused the unpack_smb_acl()
error, instead of just noting that one happened. This allows the end
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use to check the ACL of the reported file by hand.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+user to check the ACL of the reported file by hand.
</span>
To use this patch, run these commands for a successful build:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13,10 +13,9 @@ To use this patch, run these commands for a successful build:
</span> ./configure
make
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/acls.c b/acls.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/acls.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/acls.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -526,6 +526,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/acls.c 2020-06-25 22:54:21.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/acls.c 2020-07-06 16:31:26.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -519,6 +519,7 @@
</span>
sys_acl_free_acl(sacl);
if (!ok) {
</pre><pre style='margin:0'>
</pre>