[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Fri Oct 1 20:41:32 UTC 2021
The branch, master has been updated
via 16c8b05f Add more NEWS updates.
via 15dd2058 Change do_chmod to always try lchmod() first (when possible).
via c27180c0 Add a couple more options to rrsync.
via 050fdd41 Allow the script to be run from inside the packaging dir.
from ae1f0029 Reduce memory usage (#235)
https://git.samba.org/?p=rsync.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 16c8b05f117e0b59668ac28b8ddd4db50eae8319
Author: Wayne Davison <wayne at opencoder.net>
Date: Fri Oct 1 13:40:07 2021 -0700
Add more NEWS updates.
commit 15dd2058fda8d9996af47785afd225cce08449e4
Author: Wayne Davison <wayne at opencoder.net>
Date: Fri Oct 1 13:28:57 2021 -0700
Change do_chmod to always try lchmod() first (when possible).
commit c27180c044fde7ef7970eabc01f284f80b8d3141
Author: Wayne Davison <wayne at opencoder.net>
Date: Fri Oct 1 13:24:51 2021 -0700
Add a couple more options to rrsync.
commit 050fdd4126394439bd51be0b574fbaf901a8e613
Author: Wayne Davison <wayne at opencoder.net>
Date: Fri Oct 1 13:23:30 2021 -0700
Allow the script to be run from inside the packaging dir.
-----------------------------------------------------------------------
Summary of changes:
NEWS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---
packaging/var-checker | 9 ++++++++-
support/rrsync | 2 ++
syscall.c | 11 ++---------
4 files changed, 61 insertions(+), 13 deletions(-)
Changeset truncated at 500 lines:
diff --git a/NEWS.md b/NEWS.md
index 832a175b..5e93ce11 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -6,6 +6,12 @@
### BUG FIXES:
+ - Fixed a bug with `--inplace` + `--sparse` where the destination file could
+ get reconstructed with bogus data. This bug can be worked-around in older
+ rsync versions by also specifying `--no-W -M--no-W`. When running 3.2.4 or
+ newer for your copy, rsync now sends `--no-W` to the remote rsync in such a
+ scenario (just in case the remote rsync is a version with this bug).
+
- Fix a bug with `--mkpath` if a single-file copy specifies an existing
destination dir with a non-existing destination filename.
@@ -21,6 +27,12 @@
the non-permissions mode bits to ensure that the 2 special files are really
the same.
+ - Fixed a bug where `--delay-updates` with stale partial data could cause a
+ file to fail to update.
+
+ - Fixed a few places that would output an INFO message with `--info=NAME` that
+ should only have been output given `--verbose` or `--itemize-changes`.
+
- Avoid a weird failure if you run a local copy with a (useless) `--rsh`
option that contains a `V`.
@@ -28,12 +40,26 @@
- Use openssl's `-verify_hostname` option in the rsync-ssl script.
- - Optimize the AVX2 checksum code a bit more.
-
- Added extra info to the "FILENAME exists" output of `--ignore-existing` when
`--info=skip2` is used. The skip message becomes "FILENAME exists (INFO)"
where the INFO is one of "type change", "sum change" (requires `-c`), "file
- change" (based on the quick check), "attr change", or "uptodate".
+ change" (based on the quick check), "attr change", or "uptodate". Prior
+ versions only supported `--info=skip1`.
+
+ - Added the `--fsync` option (promoted from the patches repo).
+
+ - Reduced memory usage for an incremental transfer that has a bunch of small
+ diretories.
+
+ - Rsync can now update the xattrs on a read-only file when your user can
+ temporarily add user-write permission to the file. (It always worked for a
+ root transfer.)
+
+ - More ASM optimizations from Shark64.
+
+ - Make rrsync handle the latest options.
+
+ - Work around a glibc bug where lchmod() breaks in a chroot w/o /proc mounted.
- Some manpage improvements.
@@ -45,8 +71,17 @@
using the output of `git describe` when building inside a non-shallow git
checkout, though.)
+ - Improved the IPv6 determination in configure.
+
+ - Made SIMD & ASM configure default to "no" on non-linux hosts due to various
+ reports of problems on NetBSD & macOS hosts. These tests were also tweaked
+ to support a host_cpu of amd64 in addition to x86_64.
+
- Fixed configure to not fail at the SIMD check when cross-compiling.
+ - Compile the C files with `-pedantic-errors` when possible so that we get
+ warned about an overflowed static initialization (among other things).
+
- Added a SECURITY.md file.
### DEVELOPER RELATED:
@@ -54,6 +89,17 @@
- Made it easier to write rsync tests that diff the output while also checking
the status code, and used the idiom to improve the existing tests.
+ - The packaging scripts & related python lib got some minor enhancements.
+
+### INTERNAL
+
+ - Use setenv() instead of putenv() when it is available.
+
+ - Improve the logic in compat.c so that we don't need to try to remember to
+ sprinkle `!local_server` exceptions throughout the protocol logic.
+
+ - One more C99 Flexible Array improvement (started in the last release).
+
------------------------------------------------------------------------------
<a name="3.2.3"></a>
diff --git a/packaging/var-checker b/packaging/var-checker
index 11f99ef0..f17c69a2 100755
--- a/packaging/var-checker
+++ b/packaging/var-checker
@@ -4,7 +4,7 @@
# for vars that are defined but not used, and for inconsistent array
# sizes. Run it from inside the main rsync directory.
-import re, argparse, glob
+import os, sys, re, argparse, glob
VARS_RE = re.compile(r'^(?!(?:extern|enum)\s)([a-zA-Z]\S*\s+.*);', re.M)
EXTERNS_RE = re.compile(r'^extern\s+(.*);', re.M)
@@ -15,6 +15,13 @@ def main():
add_syscall_c = set('t_stub.c t_unsafe.c tls.c trimslash.c'.split())
add_util_c = set('t_stub.c t_unsafe.c'.split())
+ if not os.path.exists('syscall.c'):
+ if os.path.exists('var-checker'):
+ os.chdir('..')
+ else:
+ print("Couldn't find the source dir.")
+ sys.exit(1)
+
syscall_c = slurp_file('syscall.c', True)
util_c = slurp_file('util1.c', True)
diff --git a/support/rrsync b/support/rrsync
index e9659919..438e3a24 100644
--- a/support/rrsync
+++ b/support/rrsync
@@ -95,6 +95,7 @@ our %long_opt = (
'files-from' => 3,
'force' => 0,
'from0' => 0,
+ 'fsync' => 2,
'fuzzy' => 0,
'group' => 0,
'groupmap' => 1,
@@ -119,6 +120,7 @@ our %long_opt = (
'modify-window' => 1,
'msgs2stderr' => 0,
'new-compress' => 0,
+ 'no-W' => 0,
'no-implied-dirs' => 0,
'no-msgs2stderr' => 0,
'no-r' => 0,
diff --git a/syscall.c b/syscall.c
index 181be11d..bf0de8ba 100644
--- a/syscall.c
+++ b/syscall.c
@@ -231,19 +231,13 @@ int do_open(const char *pathname, int flags, mode_t mode)
#ifdef HAVE_CHMOD
int do_chmod(const char *path, mode_t mode)
{
- static int switch_step = 0;
int code;
if (dry_run) return 0;
RETURN_ERROR_IF_RO_OR_LO;
- switch (switch_step) {
#ifdef HAVE_LCHMOD
-#include "case_N.h"
- if ((code = lchmod(path, mode & CHMOD_BITS)) == 0 || errno != ENOTSUP)
- break;
- switch_step++;
+ if ((code = lchmod(path, mode & CHMOD_BITS)) < 0 && errno == ENOTSUP)
#endif
-
-#include "case_N.h"
+ {
if (S_ISLNK(mode)) {
# if defined HAVE_SETATTRLIST
struct attrlist attrList;
@@ -258,7 +252,6 @@ int do_chmod(const char *path, mode_t mode)
# endif
} else
code = chmod(path, mode & CHMOD_BITS); /* DISCOURAGED FUNCTION */
- break;
}
if (code != 0 && (preserve_perms || preserve_executability))
return code;
--
The rsync repository.
More information about the rsync-cvs
mailing list