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 <wa...@opencoder.net> Date: Fri Oct 1 13:40:07 2021 -0700 Add more NEWS updates. commit 15dd2058fda8d9996af47785afd225cce08449e4 Author: Wayne Davison <wa...@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 <wa...@opencoder.net> Date: Fri Oct 1 13:24:51 2021 -0700 Add a couple more options to rrsync. commit 050fdd4126394439bd51be0b574fbaf901a8e613 Author: Wayne Davison <wa...@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. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs