[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Sun Jun 21 03:17:57 UTC 2020


The branch, master has been updated
       via  68c45836 Change repo to be 3.2.1dev.
       via  6b237b0f Require -VV to see SIMD & ASM in version output
      from  b37a1363 Get rid of -g option in CXXFLAGS (at least for now).

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


- Log -----------------------------------------------------------------
commit 68c4583693ea34d1e8828c36df99e661d8de57a8
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 20:08:25 2020 -0700

    Change repo to be 3.2.1dev.

commit 6b237b0fe9b0941c51afc9e880a28c47583a11de
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 19:42:14 2020 -0700

    Require -VV to see SIMD & ASM in version output

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

Summary of changes:
 NEWS.md      | 201 +++------------------------------------------------------
 OLDNEWS.md   | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |   2 +-
 options.c    |  33 ++++++++--
 4 files changed, 244 insertions(+), 199 deletions(-)


Changeset truncated at 500 lines:

diff --git a/NEWS.md b/NEWS.md
index 845d7379..705c47b4 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,205 +1,24 @@
-# NEWS for rsync 3.2.0 (19 Jun 2020)
+# NEWS for rsync 3.2.1 (UNRELEASED)
 
 Protocol: 31 (unchanged)
 
-## Changes since 3.1.3:
+## Changes since 3.2.0:
 
 ### BUG FIXES:
 
- - Avoid a potential out-of-bounds read in daemon mode if argc can be made to
-   become 0.
+ - Fixed a build issue with the MD5 assembly-language code by removing some
+   advanced direcives and using the preprocessor to ensure that if the code is
+   unneeded, it doesn't get built.
 
- - Fix the default list of skip-compress files for non-daemon transfers.
+ - Make sure that the asm code doesn't make the stack get set to executable.
 
- - Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
+ - Avoid some build issues with the SIMD code, including avoiding a clang++
+   core dump when `-g` is combined with `-O2`.
 
- - Avoid an error when a check for a potential fuzzy file happens to reference
-   a directory.
-
- - Make the atomic-rsync helper script have a more consistent error-exit.
-
- - Make sure that a signal handler calls `_exit()` instead of exit().
-
- - Various zlib fixes, including security fixes for CVE-2016-9843,
-   CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
-
- - Fixed an issue with `--remove-source-files` not removing a source symlink
-   when combined with `--copy-links`.
-
- - Fixed a bug where the daemon would fail to write early fatal error messages
-   to the client, such as refused or unknown command-line options.
-
- - Fixed the block-size validation logic when dealing with older protocols.
-
- - Some rrsync fixes and enhancements to handle the latest options.
-
- - Fixed a problem with the `--link-dest`|`--copy-dest` code when `--xattrs`
-   was specified along with multiple alternate-destination directories (it
-   could possibly choose a bad file match while trying to find a better xattr
-   match).
-
- - Fixed a couple bugs in the handling of files with the `--sparse` option.
-
- - Fixed a bug in the writing of the batch.sh file (w/--write-batch) when the
-   source & destination args were not last on the command-line.
-
- - Avoid a hang when an overabundance of messages clogs up all the I/O buffers.
-
- - Fixed a mismatch in the RSYNC_PID values put into the environment of
-   `pre-xfer exec` and a `post-xfer exec`.
-
- - Fixed a crash in the `--iconv` code.
-
- - Fixed a rare crash in the popt_unalias() code.
+ - Fix an issue with the md2man code when building is an external dir.
 
 ### ENHANCEMENTS:
 
- - Various checksum enhancements, including the optional use of openssl's MD4 &
-   MD5 checksum algorithms, some x86-64 optimizations for the rolling checksum,
-   some x86-64 optimizations for the (non-openssl) MD5 checksum, the addition
-   of xxhash checksum support, and a negotiation heuristic that ensures that it
-   is easier to add new checksum algorithms in the future.  The environment
-   variable `RSYNC_CHECKSUM_LIST` can be used to customize the preference order
-   of the negotiation, or use `--checksum-choice` (`--cc`) to force a choice.
-
- - Various compression enhancements, including the addition of zstd and lz4
-   compression algorithms and a negotiation heuristic that picks the best
-   compression option supported by both sides.  The environment variable
-   `RSYNC_COMPRESS_LIST` can be used to customize the preference order of the
-   negotiation, or use `--compress-choice` (`--zc`) to force a choice.
-
- - Added a --debug=NSTR option that outputs details of the new negotiation
-   strings (for checksums and compression).  The first level just outputs the
-   result of each negotiation on the client, level 2 outputs the values of the
-   strings that were sent to and received from the server, and level 3 outputs
-   all those values on the server side too (when the server was given the debug
-   option).
-
- - The --debug=OPTS command-line option is no longer auto-forwarded to the
-   remote rsync which allows for the client and server to have different levels
-   of debug specified. This also allows for newer debug options to be
-   specified, such as using --debug=NSTR to see the negotiated hash result,
-   without having the command fail if the server version is too old to handle
-   that debug item. Use -M--debug=OPTS to send the options to the remote side.
-
- - Added the `--atimes` option based on the long-standing patch (just with some
-   fixes that the patch has been needing).
-
- - Added `--open-noatime` option to open files using `O_NOATIME`.
-
- - Added the `--write-devices` option based on the long-standing patch.
-
- - Added openssl & preliminary gnutls support to the rsync-ssl script, which is
-   now installed by default.  This was unified with the old stunnel-rsync
-   helper script to simplify packaging.  Note that the script accepts the use
-   of --type=gnutls for gnutls testing, but does not look for gnutls-cli on the
-   path yet.  The use of type=gnutls will not work right until gnutls-cli no
-   longer drops data.
-
- - Rsync was enhanced to set the `RSYNC_PORT` environment variable when running
-   a daemon-over-rsh script. Its value is the user-specified port number (set
-   via `--port` or an rsync:// URL) or 0 if the user didn't override the port.
-
- - Added the `proxy protocol` daemon parameter that allows your rsyncd to know
-   the real remote IP when it is setup behind a proxy.
-
- - Added negated matching to the daemon's `refuse options` setting by using
-   match strings that start with a `!` (such as `!compress*`).  This lets you
-   refuse all options except for a particular approved list, for example.  It
-   also lets rsync refuse certain options by default (such as `write-devices`)
-   while allowing the config to override that, as desired.
-
- - Added the `early exec` daemon parameter that runs a script before the
-   transfer parameters are known, allowing some early setup based on module
-   name.
-
- - Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
-
- - Added `--copy-as=USER` option to give some extra security to root-run rsync
-   commands into/from untrusted directories (such as backups and restores).
-
- - When resuming the transfer of a file in the `--partial-dir`, rsync will now
-   update that partial file in-place instead of creating yet another tmp file
-   copy.  This requires both sender & receiver to be at least v3.2.0.
-
- - Added support for `RSYNC_SHELL` & `RSYNC_NO_XFER_EXEC` environment variables
-   that affect the early, pre-xfer, and post-xfer exec rsync daemon parameters.
-
- - Optimize the `--fuzzy --fuzzy` heuristic to avoid the fuzzy directory scan
-   until all other basis-file options are exhausted (such as `--link-dest`).
-
- - Have the daemon log include the normal-exit sent/received stats when the
-   transfer exited with an error when possible (i.e. if it is the sender).
-
- - The daemon now locks its pid file (when configured to use one) so that it
-   will not fail to start when the file exists but no daemon is running.
-
- - Various man page improvements, including some html representations (that
-   aren't installed by default).
-
- - Made -V the short option for --version and improved its information.
-
- - Pass the -4 or -6 option to the ssh command, making it easier to type than
-   `--rsh='ssh -4'` (or -6).
-
- - Added example config for rsyncd SSL proxy configs to rsyncd.conf.
-
- - More errors messages now mention if the error is coming from the sender or
-   the receiver.
-
-### PACKAGING RELATED:
-
- - Add installed binary: /usr/bin/rsync-ssl
-
- - Add installed man page: /usr/man/man1/rsync-ssl.1
-
- - Tweak auxiliary doc file names, such as: README.md, INSTALL.md, NEWS.md, &
-   OLDNEWS.md.
-
- - The rsync-ssl script wants to run openssl or stunnel4, so consider adding a
-   dependency for one of those options (though it's probably fine to just let
-   it complain about being unable to find the program and let the user decide
-   if they want to install one or the other).
-
- - If you packaged rsync + rsync-ssl + rsync-ssl-daemon as separate packages,
-   the rsync-ssl package is now gone (rsync-ssl should be considered to be
-   mainstream now that Samba requires SSL for its rsync daemon).
-
- - Add _build_ dependency for liblz4-dev, libxxhash-dev, libzstd-dev, and
-   libssl-dev.  These development libraries will give rsync extra compression
-   algorithms, extra checksum algorithms, and allow use of openssl's crypto
-   lib for (potentially) faster MD4/MD5 checksums.
-
- - Add _build_ dependency for g++ or clang++ on x86_64 systems to enable the
-   SIMD checksum optimizations.
-
- - Add _build_ dependency for _either_ python3-cmarkcfm or python3-commonmark
-   to allow for patching of man pages or building a git release.  This is not
-   required for a release-tar build, since it comes with pre-built man pages.
-   Note that cmarkcfm is faster than commonmark, but they generate the same
-   data.  The commonmark dependency is easiest to install since it's native
-   python, and can be installed via `pip3 install --user commonmark` if you
-   want to just install it for the build user (or omit `--user`).
-
- - Remove yodl _build_ dependency (if it was even listed before).
-
-### DEVELOPER RELATED:
-
- - Silenced some annoying warnings about major() & minor() by improving an
-   autoconf include-file check.
-
- - Converted the man pages from yodl to markdown. They are now processed via a
-   simple python3 script using the cmarkgfm **or** commonmark library.  This
-   should make it easier to package rsync, since yodl has gotten obscure.
-
- - Improved some configure checks to work better with strict C99 compilers.
-
- - Some perl building/packaging scripts were recoded into awk and python3.
-
- - Some defines in byteorder.h were changed into static inline functions that
-   will help to ensure that the args don't get evaluated multiple times on
-   "careful alignment" hosts.
-
- - Some code typos were fixed (as pointed out by a Fossies run).
+ - None.
 
 ------------------------------------------------------------------------------
diff --git a/OLDNEWS.md b/OLDNEWS.md
index 077a288b..2cc9bd34 100644
--- a/OLDNEWS.md
+++ b/OLDNEWS.md
@@ -1,3 +1,209 @@
+# NEWS for rsync 3.2.0 (19 Jun 2020)
+
+Protocol: 31 (unchanged)
+
+## Changes since 3.1.3:
+
+### BUG FIXES:
+
+ - Avoid a potential out-of-bounds read in daemon mode if argc can be made to
+   become 0.
+
+ - Fix the default list of skip-compress files for non-daemon transfers.
+
+ - Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
+
+ - Avoid an error when a check for a potential fuzzy file happens to reference
+   a directory.
+
+ - Make the atomic-rsync helper script have a more consistent error-exit.
+
+ - Make sure that a signal handler calls `_exit()` instead of exit().
+
+ - Various zlib fixes, including security fixes for CVE-2016-9843,
+   CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
+
+ - Fixed an issue with `--remove-source-files` not removing a source symlink
+   when combined with `--copy-links`.
+
+ - Fixed a bug where the daemon would fail to write early fatal error messages
+   to the client, such as refused or unknown command-line options.
+
+ - Fixed the block-size validation logic when dealing with older protocols.
+
+ - Some rrsync fixes and enhancements to handle the latest options.
+
+ - Fixed a problem with the `--link-dest`|`--copy-dest` code when `--xattrs`
+   was specified along with multiple alternate-destination directories (it
+   could possibly choose a bad file match while trying to find a better xattr
+   match).
+
+ - Fixed a couple bugs in the handling of files with the `--sparse` option.
+
+ - Fixed a bug in the writing of the batch.sh file (w/--write-batch) when the
+   source & destination args were not last on the command-line.
+
+ - Avoid a hang when an overabundance of messages clogs up all the I/O buffers.
+
+ - Fixed a mismatch in the RSYNC_PID values put into the environment of
+   `pre-xfer exec` and a `post-xfer exec`.
+
+ - Fixed a crash in the `--iconv` code.
+
+ - Fixed a rare crash in the popt_unalias() code.
+
+### ENHANCEMENTS:
+
+ - Various checksum enhancements, including the optional use of openssl's MD4 &
+   MD5 checksum algorithms, some x86-64 optimizations for the rolling checksum,
+   some x86-64 optimizations for the (non-openssl) MD5 checksum, the addition
+   of xxhash checksum support, and a negotiation heuristic that ensures that it
+   is easier to add new checksum algorithms in the future.  The environment
+   variable `RSYNC_CHECKSUM_LIST` can be used to customize the preference order
+   of the negotiation, or use `--checksum-choice` (`--cc`) to force a choice.
+
+ - Various compression enhancements, including the addition of zstd and lz4
+   compression algorithms and a negotiation heuristic that picks the best
+   compression option supported by both sides.  The environment variable
+   `RSYNC_COMPRESS_LIST` can be used to customize the preference order of the
+   negotiation, or use `--compress-choice` (`--zc`) to force a choice.
+
+ - Added a --debug=NSTR option that outputs details of the new negotiation
+   strings (for checksums and compression).  The first level just outputs the
+   result of each negotiation on the client, level 2 outputs the values of the
+   strings that were sent to and received from the server, and level 3 outputs
+   all those values on the server side too (when the server was given the debug
+   option).
+
+ - The --debug=OPTS command-line option is no longer auto-forwarded to the
+   remote rsync which allows for the client and server to have different levels
+   of debug specified. This also allows for newer debug options to be
+   specified, such as using --debug=NSTR to see the negotiated hash result,
+   without having the command fail if the server version is too old to handle
+   that debug item. Use -M--debug=OPTS to send the options to the remote side.
+
+ - Added the `--atimes` option based on the long-standing patch (just with some
+   fixes that the patch has been needing).
+
+ - Added `--open-noatime` option to open files using `O_NOATIME`.
+
+ - Added the `--write-devices` option based on the long-standing patch.
+
+ - Added openssl & preliminary gnutls support to the rsync-ssl script, which is
+   now installed by default.  This was unified with the old stunnel-rsync
+   helper script to simplify packaging.  Note that the script accepts the use
+   of --type=gnutls for gnutls testing, but does not look for gnutls-cli on the
+   path yet.  The use of type=gnutls will not work right until gnutls-cli no
+   longer drops data.
+
+ - Rsync was enhanced to set the `RSYNC_PORT` environment variable when running
+   a daemon-over-rsh script. Its value is the user-specified port number (set
+   via `--port` or an rsync:// URL) or 0 if the user didn't override the port.
+
+ - Added the `proxy protocol` daemon parameter that allows your rsyncd to know
+   the real remote IP when it is setup behind a proxy.
+
+ - Added negated matching to the daemon's `refuse options` setting by using
+   match strings that start with a `!` (such as `!compress*`).  This lets you
+   refuse all options except for a particular approved list, for example.  It
+   also lets rsync refuse certain options by default (such as `write-devices`)
+   while allowing the config to override that, as desired.
+
+ - Added the `early exec` daemon parameter that runs a script before the
+   transfer parameters are known, allowing some early setup based on module
+   name.
+
+ - Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
+
+ - Added `--copy-as=USER` option to give some extra security to root-run rsync
+   commands into/from untrusted directories (such as backups and restores).
+
+ - When resuming the transfer of a file in the `--partial-dir`, rsync will now
+   update that partial file in-place instead of creating yet another tmp file
+   copy.  This requires both sender & receiver to be at least v3.2.0.
+
+ - Added support for `RSYNC_SHELL` & `RSYNC_NO_XFER_EXEC` environment variables
+   that affect the early, pre-xfer, and post-xfer exec rsync daemon parameters.
+
+ - Optimize the `--fuzzy --fuzzy` heuristic to avoid the fuzzy directory scan
+   until all other basis-file options are exhausted (such as `--link-dest`).
+
+ - Have the daemon log include the normal-exit sent/received stats when the
+   transfer exited with an error when possible (i.e. if it is the sender).
+
+ - The daemon now locks its pid file (when configured to use one) so that it
+   will not fail to start when the file exists but no daemon is running.
+
+ - Various man page improvements, including some html representations (that
+   aren't installed by default).
+
+ - Made -V the short option for --version and improved its information.
+
+ - Pass the -4 or -6 option to the ssh command, making it easier to type than
+   `--rsh='ssh -4'` (or -6).
+
+ - Added example config for rsyncd SSL proxy configs to rsyncd.conf.
+
+ - More errors messages now mention if the error is coming from the sender or
+   the receiver.
+
+### PACKAGING RELATED:
+
+ - Add installed binary: /usr/bin/rsync-ssl
+
+ - Add installed man page: /usr/man/man1/rsync-ssl.1
+
+ - Tweak auxiliary doc file names, such as: README.md, INSTALL.md, NEWS.md, &
+   OLDNEWS.md.
+
+ - The rsync-ssl script wants to run openssl or stunnel4, so consider adding a
+   dependency for one of those options (though it's probably fine to just let
+   it complain about being unable to find the program and let the user decide
+   if they want to install one or the other).
+
+ - If you packaged rsync + rsync-ssl + rsync-ssl-daemon as separate packages,
+   the rsync-ssl package is now gone (rsync-ssl should be considered to be
+   mainstream now that Samba requires SSL for its rsync daemon).
+
+ - Add _build_ dependency for liblz4-dev, libxxhash-dev, libzstd-dev, and
+   libssl-dev.  These development libraries will give rsync extra compression
+   algorithms, extra checksum algorithms, and allow use of openssl's crypto
+   lib for (potentially) faster MD4/MD5 checksums.
+
+ - Add _build_ dependency for g++ or clang++ on x86_64 systems to enable the
+   SIMD checksum optimizations.
+
+ - Add _build_ dependency for _either_ python3-cmarkcfm or python3-commonmark
+   to allow for patching of man pages or building a git release.  This is not
+   required for a release-tar build, since it comes with pre-built man pages.
+   Note that cmarkcfm is faster than commonmark, but they generate the same
+   data.  The commonmark dependency is easiest to install since it's native
+   python, and can be installed via `pip3 install --user commonmark` if you
+   want to just install it for the build user (or omit `--user`).
+
+ - Remove yodl _build_ dependency (if it was even listed before).
+
+### DEVELOPER RELATED:
+
+ - Silenced some annoying warnings about major() & minor() by improving an
+   autoconf include-file check.
+
+ - Converted the man pages from yodl to markdown. They are now processed via a
+   simple python3 script using the cmarkgfm **or** commonmark library.  This
+   should make it easier to package rsync, since yodl has gotten obscure.
+
+ - Improved some configure checks to work better with strict C99 compilers.
+
+ - Some perl building/packaging scripts were recoded into awk and python3.
+
+ - Some defines in byteorder.h were changed into static inline functions that
+   will help to ensure that the args don't get evaluated multiple times on
+   "careful alignment" hosts.
+
+ - Some code typos were fixed (as pointed out by a Fossies run).
+
+------------------------------------------------------------------------------
+
 # NEWS for rsync 3.1.3 (28 Jan 2018)
 
 Protocol: 31 (unchanged)
@@ -3794,6 +4000,7 @@ Protocol: 25 (changed)
 
 | RELEASE DATE | VER.   | DATE OF COMMIT\* | PROTOCOL    |
 |--------------|--------|------------------|-------------|
+| ?? Jun 2020  | 3.2.1  |                  | 31          |
 | 19 Jun 2020  | 3.2.0  |                  | 31          |
 | 28 Jan 2018  | 3.1.3  |                  | 31          |
 | 21 Dec 2015  | 3.1.2  |                  | 31          |
diff --git a/configure.ac b/configure.ac
index 53e1a609..89365077 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([rsync],[3.2.0],[http://rsync.samba.org/bugzilla.html])
+AC_INIT([rsync],[3.2.1dev],[http://rsync.samba.org/bugzilla.html])
 
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([byteorder.h])
diff --git a/options.c b/options.c
index 2e8731ab..3fee6691 100644
--- a/options.c
+++ b/options.c
@@ -180,6 +180,7 @@ int rsync_port = 0;
 int alt_dest_type = 0;
 int basis_dir_cnt = 0;
 
+static int version_opt_cnt = 0;
 static int remote_option_alloc = 0;
 int remote_option_cnt = 0;
 const char **remote_options = NULL;
@@ -582,6 +583,18 @@ static void print_capabilities(enum logcode f)
 		istring("%d-bit timestamps", (int)(sizeof (time_t) * 8)),
 		istring("%d-bit long ints", (int)(sizeof (int64) * 8)),
 
+	"*"
+#ifndef HAVE_SIMD
+		"no "
+#endif
+			"SIMD",
+
+	"*"
+#ifndef HAVE_ASM
+		"no "
+#endif
+			"ASM",
+
 #ifndef HAVE_SOCKETPAIR
 		"no "
 #endif
@@ -639,11 +652,6 @@ static void print_capabilities(enum logcode f)
 #endif
 			"prealloc",
 
-#ifndef HAVE_SIMD
-		"no "
-#endif
-			"SIMD",
-
 		NULL
 	};
 
@@ -651,6 +659,12 @@ static void print_capabilities(enum logcode f)
 		char *cap = capabilities[j];
 		int cap_len = cap ? strlen(cap) : 1000;


-- 
The rsync repository.



More information about the rsync-cvs mailing list