The branch, master has been updated
       via  ee9199b5 More NEWS improvements.
       via  f1a6998d Only send the `--no-W` kluge to a receiver.
      from  3e44bbd3 Preparing for release of 3.2.4pre1

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ee9199b54274aed05776f55806dc18b3e2f20a32
Author: Wayne Davison <wa...@opencoder.net>
Date:   Mon Jan 3 00:02:28 2022 -0800

    More NEWS improvements.

commit f1a6998df29f0f41f882edf11cb957df78aeb267
Author: Wayne Davison <wa...@opencoder.net>
Date:   Sun Jan 2 23:51:04 2022 -0800

    Only send the `--no-W` kluge to a receiver.

-----------------------------------------------------------------------

Summary of changes:
 NEWS.md   | 113 ++++++++++++++++++++++++++++++++++++--------------------------
 options.c |   2 +-
 2 files changed, 66 insertions(+), 49 deletions(-)


Changeset truncated at 500 lines:

diff --git a/NEWS.md b/NEWS.md
index 05215c08..339b31ee 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -30,11 +30,14 @@
 
 ### 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).
+ - Fixed a bug with `--inplace` + `--sparse` (and a lack of `--whole-file`)
+   where the destination file could get reconstructed with bogus data.  Since
+   the bug can also be avoided by using (the seemingly redundant) `--no-W` on
+   the receiving side, the latest rsync will now send `--no-W` to a remote
+   receiver when this option combination occurs.  If your client rsync is not
+   new enough to do this for you (or if you're just paranoid), you can manually
+   specify `--no-W -M--no-W` (when not using `--whole-file`) to make sure the
+   bug is avoided.
 
  - Fixed a bug with `--mkpath` if a single-file copy specifies an existing
    destination dir with a non-existing destination filename.
@@ -47,9 +50,9 @@
    or it is skipped. Fixes a crash that could occur when the size changes to 0
    in the middle of the send negotiations.
 
- - When dealing with a special file in an alt-dest hierarchy, rsync now checks
-   the non-permissions mode bits to ensure that the 2 special files are really
-   the same.
+ - When dealing with special files (see `--specials`) in an alt-dest hierarchy,
+   rsync now checks the non-permission mode bits to ensure that the 2 special
+   files are really the same before hard-linking them together.
 
  - Fixed a bug where `--delay-updates` with stale partial data could cause a
    file to fail to update.
@@ -58,12 +61,16 @@
    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`.
+   option that contains a `V` in the command.
 
  - Fixed a long-standing compression bug where the compression level of the
    first file transferred affected the level for all future files.  Also, the
-   per-file compression skipping has apparently not worked in a very long time
-   (I checked back to 2.6.4), so it is now documented as being ineffective.
+   per-file compression skipping has apparently never worked, so it is now
+   documented as being ineffective.
+
+ - Improved how the `--stop-at`, `--stop-after`, and `--time-limit` options
+   check to see if the allowed time is over, which should make rsync exit more
+   consistently.
 
 ### ENHANCEMENTS:
 
@@ -83,7 +90,8 @@
  - The rsync daemon can now handle a client address with an implied "%scope"
    suffix.
 
- - Added support for `--atimes` on macOS and fixed using using it without `-t`.
+ - Added support for `--atimes` on macOS and fixed a bug where it wouldn't work
+   without `--times`.
 
  - 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
@@ -92,8 +100,8 @@
  - Rsync can now work around an `--inplace` update of a file that is being
    refused due to the Linux fs.protected_regular sysctl setting.
 
- - When `--chown`, `--usermap`, or `--groupmap` is used, rsync now implies
-   the appropriate `--owner` and/or `--group` option.
+ - When `--chown`, `--usermap`, or `--groupmap` is specified, rsync now makes
+   sure that the appropriate `--owner` and/or `--group` option is enabled.
 
  - Added the `--info=NONREG` setting to control if rsync should warn about
    non-regular files in the transfer.  This is enabled by default (keeping the
@@ -102,7 +110,7 @@
 
  - More ASM optimizations from Shark64.
 
- - Transformed support/rrsync into a python script with improvements:
+ - Transformed rrsync (in support dir) into a python script with improvements:
    - Security has been beefed up.
    - The known rsync options were updated to include recent additions.
    - Make rrsync reject `-L`, `-K`, & `-k` by default to make it harder to
@@ -115,33 +123,34 @@
      options on the server side.
    - The log format has been tweaked slightly to add seconds to the timestamp
      and to output the command executed as a tuple (making the args clearer).
-   - An rrsync.1 manpage was added.
+   - An rrsync.1 man page was added.
 
-  - Added options to support/lsh to allow the rrsync script to be easily 
tested.
+ - Added options to the lsh script (in the support dir) to facilitate rrsync
+   testing.
 
-  - Transformed support/atomic-rsync into a python script and added the ability
-    to ignore one or more non-zero exit codes. By default, it now ignores code
-    24 (file vanished).
+ - Transformed the atomic-rsync script (in the support dir) into a python
+   script and added the ability to ignore one or more non-zero exit codes.
+   By default, it now ignores code 24 (file vanished).
 
-  - Improved support/rsync-no-vanished wrapper script to not join stdout &
-    stderr together.
+ - Transformed the munge-symlinks script (in the support dir) into python.
 
-  - Transformed support/munge-symlinks into a python script.
+ - Improved the rsync-no-vanished script (in the support dir) to not join
+   stdout & stderr together.
 
  - Work around a glibc bug where lchmod() breaks in a chroot w/o /proc mounted.
 
  - Try to support a client that sent a remote rsync a wacko stderr file handle
    (such as an older File::RsyncP perl library used by BackupPC).
 
- - Some manpage improvements.
+ - Some man page improvements.
 
 ### PACKAGING RELATED:
 
  - Give configure the `--with-rrsync` option if you want `make install` to
-   install the (now python3) rrsync script and its (new) man page.
+   install the (now python3) rrsync script and its new man page.
 
- - If the rrsync script is installed, make its package depend on python3 and
-   (suggested but not required) the python3 braceexpand lib.
+ - If the rrsync script is installed, its package should be changed to depend
+   on python3 and the (suggested but not mandatory) python3 braceexpand lib.
 
  - When creating a package from a non-release version (w/o a git checkout), the
    packager can elect to create git-version.h and define RSYNC_GITVER to the
@@ -153,19 +162,21 @@
 
  - 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.
+   to allow enabling the feature on a host_cpu of amd64 (was only 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).
+ - Compile the C files with `-pedantic-errors` (when possible) so that we will
+   get warned if a static initialization overflows in the future (among other
+   things).
 
  - Added a SECURITY.md file.
 
 ### DEVELOPER RELATED:
 
  - 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 status code, and used the idiom to improve the existing tests. (See the
+   `checkdiff` and `checkdiff2` idioms in the `testsuite/*.test` files.
 
  - The packaging scripts & related python lib got some minor enhancements.
 
@@ -176,7 +187,12 @@
  - 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).
+ - One more C99 Flexible Array improvement (started in the last release) and
+   make use of the C99 `%zd` format string when printing size_t values (when
+   possible).
+
+ - Use mallinfo2() instead of mallinfo(), when available.
+
 
 ------------------------------------------------------------------------------
 <a name="3.2.3"></a>
@@ -649,7 +665,8 @@
 
  - Don't output about a new backup dir without appropriate info verbosity.
 
- - Fixed some issues with the sort functions in support/rsyncstats script.
+ - Fixed some issues with the sort functions in the rsyncstats script (in the
+   support dir).
 
  - Added a way to specify daemon config lists (e.g. users, groups, etc) that
    contain spaces (see `auth users` in the latest rsyncd.conf manpage).
@@ -860,7 +877,7 @@
    non-bundled zlib. See the `--new-compress` and `--old-compress` options in
    the manpage.
 
- - Added the support/rsync-no-vanished wrapper script.
+ - Added the rsync-no-vanished shell script (in the support dir).
 
  - Made configure more prominently mention when we failed to find yodl (in case
    the user wants to be able to generate manpages from `*.yo` files).
@@ -1193,7 +1210,7 @@
 
  - Fix some issues with the post-processing of the man pages.
 
- - Fixed the user home-dir handling in the support/lsh script.
+ - Fixed the user home-dir handling in the lsh script (in the support dir).
 
  - Some minor manpage improvements.
 
@@ -1311,10 +1328,10 @@
    reject an attempt to supply one (can configure `--with-included-popt` if
    your system's popt library doesn't yet have this fix).
 
- - A couple minor option tweaks to the support/rrsync script, and also some
-   regex changes that make vim highlighting happier.
+ - A couple minor option tweaks to the rrsync script (in the support dir), and
+   also some regex changes that make vim highlighting happier.
 
- - Fixed some issues in the support/mnt-excl script.
+ - Fixed some issues in the mnt-excl script (in the support dir).
 
  - Various manpage improvements.
 
@@ -1524,9 +1541,9 @@
 
 ### ENHANCEMENTS:
 
- - Made the support/atomic-rsync script able to perform a fully atomic update
-   of the copied hierarchy when the destination is setup using a particular
-   symlink idiom.
+ - Made the atomic-rsync script (in the support dir) able to perform a fully
+   atomic update of the copied hierarchy when the destination is setup using a
+   particular symlink idiom.
 
 ------------------------------------------------------------------------------
 <a name="3.0.4"></a>
@@ -1794,8 +1811,8 @@
 
  - Fixed the inclusion of per-dir merge files from implied dirs.
 
- - Fixed the support/rrsync script to work with the latest options that rsync
-   sends (including its flag-specifying use of `-e` to the server).
+ - Fixed the rrsync script (in the support dir) to work with the latest options
+   that rsync sends (including its flag-specifying use of `-e` to the server).
 
 ### ENHANCEMENTS:
 
@@ -2799,10 +2816,10 @@
  - Made the `max verbosity` setting in the rsyncd.conf file settable on a
    per-module basis (which now matches the documentation).
 
- - The support/rrsync script has been upgraded to verify the args of options
-   that take args (instead of rejecting any such options). The script was also
-   changed to try to be more secure and to fix a problem in the parsing of a
-   pull operation that has multiple sources.
+ - The rrsync script (in the support dir) has been upgraded to verify the args
+   of options that take args (instead of rejecting any such options). It was
+   also changed to try to be more secure and to fix a problem in the parsing
+   of a pull operation that has multiple source args.
 
  - Improved the documentation that explains the difference between a normal
    daemon transfer and a daemon-over remote-shell transfer.
@@ -4425,7 +4442,7 @@
 
 | RELEASE DATE | VER.   | DATE OF COMMIT\* | PROTOCOL    |
 |--------------|--------|------------------|-------------|
-| ?? Sep 2020  | 3.2.4  |                  | 31          |
+| ?? Jan 2022  | 3.2.4  |                  | 31          |
 | 06 Aug 2020  | 3.2.3  |                  | 31          |
 | 04 Jul 2020  | 3.2.2  |                  | 31          |
 | 22 Jun 2020  | 3.2.1  |                  | 31          |
diff --git a/options.c b/options.c
index f4c159f3..75165adf 100644
--- a/options.c
+++ b/options.c
@@ -2834,7 +2834,7 @@ void server_options(char **args, int *argc_p)
        } else if (inplace) {
                args[ac++] = "--inplace";
                /* Work around a bug in older rsync versions (on the remote 
side) for --inplace --sparse */
-               if (sparse_files && !whole_file)
+               if (sparse_files && !whole_file && am_sender)
                        args[ac++] = "--no-W";
        }
 


-- 
The rsync repository.

_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to