1 # NEWS for rsync 3.2.0 (UNRELEASED)
3 Protocol: 31 (unchanged)
5 ## Changes since 3.1.3:
9 - Avoid a potential out-of-bounds read in daemon mode if argc can be made to
12 - Fix the default list of skip-compress files for non-daemon transfers.
14 - Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
16 - Avoid an error when a check for a potential fuzzy file happens to reference
19 - Make the atomic-rsync helper script have a more consistent error-exit.
21 - Make sure that a signal handler calls `_exit()` instead of exit().
23 - Various zlib fixes, including security fixes for CVE-2016-9843,
24 CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
26 - Fixed an issue with `--remove-source-files` not removing a source symlink
27 when combined with `--copy-links`.
29 - Fixed a bug where the daemon would fail to write early fatal error messages
30 to the client, such as refused or unknown command-line options.
32 - Fixed the block-size validation logic when dealing with older protocols.
34 - Some rrsync fixes and enhancements to handle the latest options.
36 - Fixed a problem with the `--link-dest`|`--copy-dest` code when `--xattrs`
37 was specified along with multiple alternate-destination directories (it
38 could possibly choose a bad file match while trying to find a better xattr
41 - Fixed a couple bugs in the handling of files with the `--sparse` option.
43 - Fixed a bug in the writing of the batch.sh file (w/--write-batch) when the
44 source & destination args were not last on the command-line.
46 - Avoid a hang when an overabundance of messages clogs up all the I/O buffers.
48 - Fixed a mismatch in the RSYNC_PID values when running both a `pre-xfer exec`
49 and a `post-xfer exec`.
51 - Fixed a crash in the `--iconv` code.
53 - Fixed a rare crash in the popt_unalias() code.
57 - Various checksum enhancements, including the optional use of openssl's MD4 &
58 MD5 checksum algorithms, some x86-64 optimizations for the rolling checksum,
59 some x86-64 optimizations for the (non-openssl) MD5 checksum, the addition
60 of xxhash checksum support, and a negotiation heuristic that ensures that it
61 is easier to add new checksum algorithms in the future. Currently the
62 x86-64 optimizations require the use of the `--enable-simd` flag to
63 configure, but they will probably be enabled by default in the near future.
64 The environment variable `RSYNC_CHECKSUM_LIST` can be used to customize the
65 preference order of the negotiation.
67 - Various compression enhancements, including the addition of zstd and lz4
68 compression algorithms and a negotiation heuristic that picks the best
69 compression option supported by both sides. The environment variable
70 `RSYNC_COMPRESS_LIST` can be used to customize the preference order of the
71 heuristic when speaking to another rsync 3.2.0 version.
73 - Added a --debug=NSTR option that outputs details of the new negotiation
74 strings (for checksums and compression). The first level just outputs the
75 result of each negotiation on the client, level 2 outputs the values of the
76 strings that were sent to and received from the server, and level 3 outputs
77 all those values on the server side too.
79 - The --debug=OPTS command-line option is no longer auto-forwarded to the
80 remote rsync which allows for the client and server to have different levels
81 of debug specified. This also allows for newer debug options to be
82 specified, such as using --debug=NSTR to see the negotiated hash result,
83 without having the command fail if the server version is too old to handle
84 that debug item. Use -M--debug=OPTS to send the options to the remote side.
86 - Added the `--atimes` option based on the long-standing patch (just with some
87 fixes that the patch has been needing).
89 - Added `--open-noatime` option to open files using `O_NOATIME`.
91 - Added the `--write-devices` option based on the long-standing patch.
93 - Added openssl support to the rsync-ssl script, which is now installed by
94 default. This script was unified with the stunnel-rsync helper script to
97 - Rsync was enhanced to set the `RSYNC_PORT` environment variable when running
98 a daemon-over-rsh script. Its value is the user-specified port number (set
99 via `--port` or an rsync:// URL) or 0 if the user didn't override the port.
101 - Added the `haproxy header` daemon parameter that allows your rsyncd to know
102 the real remote IP when it is being proxied.
104 - Added negated matching to the daemon's `refuse options` setting by using
105 match strings that start with a `!` (such as `!compress*`).
107 - Added the `early exec` daemon parameter that runs a script before the
108 transfer parameters are known, allowing some early setup based on module
111 - Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
113 - Added a `--copy-as=USER` option to give some extra security to root-run
114 rsync commands into/from untrusted directories (such as backups and
117 - When resuming the transfer of a file in the `--partial-dir`, rsync will now
118 update that partial file in-place instead of creating yet another tmp file
119 copy. This requires both sender & receiver to be at least v3.2.0.
121 - Added support for `RSYNC_SHELL` & `RSYNC_NO_XFER_EXEC` environment variables
122 that affect the pre-xfer exec and post-xfer exec rsync daemon options.
124 - Optimize the `--fuzzy` `--fuzzy` heuristic to avoid the fuzzy directory scan
125 until all other basis-file options are exhausted (such as `--link-dest`).
127 - Have a daemon that is logging include the normal-exit sent/received stats
128 even when the transfer exited with an error.
130 - The daemon now locks its pid file (when configured to use one) so that it
131 will not fail to start when the file exists and it is unlocked.
133 - Various man page improvements.
135 - Made -V the short option for --version.
137 ### PACKAGING RELATED:
139 - Add installed binary: /usr/bin/rsync-sll
141 - Add installed man page: /usr/man/man1/rsync-ssl.1
143 - The rsync-ssl script wants to run either openssl or stunnel4, so consider
144 adding a dependency for openssl (though it's probably fine to just let it
145 complain about being unable to find either program and let the user decide
146 if they want to install one or the other).
148 - If you packaged rsync + rsync-ssl + rsync-ssl-daemon as separate packages,
149 the rsync-ssl package is now gone (along with its install-ssl-client make
150 target -- rsync-ssl should be considered to be mainstream now that Samba
151 requires SSL for its rsync daemon).
153 - Add _build_ dependency for liblz4-dev, libxxhash-dev, libzstd-dev, and
154 libssl-dev. These development libraries will give rsync extra compression
155 algorithms, extra checksum algorithms, and allow use of openssl's crypto
156 lib for MD4/MD5 checksums.
158 - Add _build_ dependency for g++ to enable the SIMD checksum optimizations.
160 - Add _build_ dependency for _either_ python3-cmarkcfm or python3-commonmark
161 to allow for patching of man pages or building a git release. Note that
162 cmarkcfm is faster than commonmark, but they generate the same data.
164 - Remove yodl _build_ dependency (if you listed it).
166 ### DEVELOPER RELATED:
168 - Silenced some annoying warnings about major()|minor() due to the autoconf
169 include-file check not being smart enough.
171 - Converted the man pages from yodl to markdown. They are now processed via a
172 simple python3 script using the cmarkgfm OR commonmark library. This should
173 make it easier for packaging rsync, since yodl has gotten obscure.
175 - Improved some configure checks to work better with strict C99 compilers.
177 - The `--debug=FOO` options are no longer auto-forwarded to the server side,
178 allowing more control over what is output & the ability to request debug
179 data from divergent rsync versions.
181 - Some perl scripts were recoded into awk and python3.
183 - Some defines in byteorder.h were changed into static inline functions that
184 will help to ensure that the args don't get evaluated multiple times on
185 `careful alignment` hosts.
187 - Some code typos were fixed (as pointed out by a Fossies run).
189 ------------------------------------------------------------------------------