[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