+NEWS for rsync 3.1.3 (28 Jan 2018)
+Protocol: 31 (unchanged)
+Changes since 3.1.2:
+
+ SECURITY FIXES:
+ - Fixed a buffer overrun in the protocol's handling of xattr names and
+ ensure that the received name is null terminated.
+ - Fix an issue with --protect-args where the user could specify the arg in
+ the protected-arg list and short-circuit some of the arg-sanitizing code.
+
+ BUG FIXES:
+
+ - Don't output about a new backup dir without appropriate info verbosity.
+ - Fixed some issues with the sort functions in support/rsyncstats script.
+ - 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).
+ - If a backup fails (e.g. full disk) rsync exits with an error.
+ - Fixed a problem with a doubled --fuzzy option combined with --link-dest.
+ - Avoid invalid output in the summary if either the start or end time had
+ an error.
+ - We don't allow a popt alias to affect the --daemon or --server options.
+ - Fix daemon exclude code to disallow attribute changes in addition to
+ disallowing transfers.
+ - Don't force nanoseconds to match if a non-transferred, non-checksummed
+ file only passed the quick-check w/o comparing nanosecods.
+
+ ENHANCEMENTS:
+
+ - Added the ability for rsync to compare nanosecond times in its file-check
+ comparisons, and added support nanosecond times on Mac OS X.
+ - Added a short-option (-@) for --modify-window.
+ - Added the --checksum-choice=NAME[,NAME] option to choose the checksum
+ algorithms.
+ - Added hashing of xattr names (with using -X) to improve the handling of
+ files with large numbers of xattrs.
+ - Added a way to filter xattr names using include/exclude/filter rules (see
+ the --xattrs option in the manpage for details).
+ - Added "daemon chroot|uid|gid" to the daemon config (in addition to the
+ old chroot|uid|gid settings that affect the daemon's transfer process).
+ - Added "syslog tag" to the daemon configuration.
+ - Some manpage improvements.
+
+ DEVELOPER RELATED:
+
+ - Tweak the "make" output when yodl isn't around to create the man pages.
+ - Changed an obsolete autoconf compile macro.
+ - Support newer yodl versions when converting man pages.
+\f
+NEWS for rsync 3.1.2 (21 Dec 2015)
+Protocol: 31 (unchanged)
+Changes since 3.1.1:
+
+ SECURITY FIXES:
+
+ - Make sure that all transferred files use only path names from inside the
+ transfer. This makes it impossible for a malicious sender to try to make
+ the receiver use an unsafe destination path for a transferred file, such
+ as a just-sent symlink.
+
+ BUG FIXES:
+
+ - Change the checksum seed order in the per-block checksums. This prevents
+ someone from trying to create checksum blocks that match in sum but not
+ content.
+ - Fixed a with the per-dir filter files (using -FF) that could trigger an
+ assert failure.
+ - Only skip set_modtime() on a transferred file if the time is exactly
+ right.
+ - Don't create an empty backup dir for a transferred file that doesn't
+ exist yet.
+ - Fixed a bug where --link-dest and --xattrs could cause rsync to exit if
+ a filename had a matching dir of the same name in the alt-dest area.
+ - Allow more than 32 group IDs per user in the daemon's gid=LIST config.
+ - Fix the logging of %b & %c via --log-file (daemon logging was already
+ correct, as was --out-format='%b/%c').
+ - Fix erroneous acceptance of --info=5 & --debug=5 (an empty flag name is
+ not valid).
+
+ ENHANCEMENTS:
+
+ - Added "(DRY RUN)" info to the --debug=exit output line.
+ - Use usleep() for our msleep() function if it is available.
+ - Added a few extra long-option names to rrsync script, which will make
+ BackupPC happier.
+ - Made configure choose to use linux xattrs on netbsd (rather than not
+ supporting xattrs).
+ - Added -wo (write-only) option to rrsync support script.
+ - Misc. manpage tweaks.
+
+ DEVELOPER RELATED:
+
+ - Fixed a bug with the Makefile's use of INSTALL_STRIP.
+ - Improve a test in the suite that could get an erroneous timestamp error.
+ - Tweaks for newer versions of git in the packaging tools.
+ - Improved the m4 generation rules and some autoconf idioms.
+\f
+NEWS for rsync 3.1.1 (22 Jun 2014)
+Protocol: 31 (unchanged)
+Changes since 3.1.0:
+
+ BUG FIXES:
+
+ - If the receiver gets bogus filenames from the sender (an unexpected
+ leading slash or a ".." infix dir), exit with an error. This prevents a
+ malicious sender from trying to inject filenames that would affect an
+ area outside the destination directories.
+
+ - Fixed a failure to remove the partial-transfer temp file when interrupted
+ (and rsync is not saving the partial files).
+
+ - Changed the chown/group/xattr-set order to avoid losing some security-
+ related xattr info (that would get cleared by a chown).
+
+ - Fixed a bug in the xattr-finding code that could make a non-root-run
+ receiver not able to find some xattr numbers.
+
+ - Fixed a bug in the early daemon protocol where a timeout failed to be
+ honored (e.g. if the remote side fails to send us the initial protocol
+ greeting).
+
+ - Fixed unintended inclusion of commas in file numbers in the daemon log.
+
+ - We once again send the 'f' sub-flag (of -e) to the server side so it
+ knows that we can handle incremental-recursion directory errors properly
+ in older protocols.
+
+ - Fixed an issue with too-aggressive keep-alive messages causing a problem
+ for older rsync versions early in the transfer.
+
+ - Fixed an incorrect message about backup-directory-creation when using
+ --dry-run and the backup dir is not an absolute path.
+
+ - Fixed a bug where a failed deletion and/or a failed sender-side removal
+ would not affect the exit code.
+
+ - Fixed a bug that caused a failure when combining --delete-missing-args
+ with --xattrs and/or --acls.
+
+ - Fixed a strange dir_depth assertion error that was caused by empty-dir
+ removals and/or duplicate files in the transfer.
+
+ - Fixed a problem with --info=progress2's output stats where rsync would
+ only update the stats at the end of each file's transfer. It now uses
+ the data that is flowing for the current file, making the stats more
+ accurate and less jumpy.
+
+ - Fixed an itemize bug that affected the combo of --link-dest, -X, and -n.
+
+ - Fixed a problem with delete messages not appearing in the log file when
+ the user didn't use --verbose.
+
+ - Improve chunked xattr reading for OS X.
+
+ - Removed an attempted hard-link xattr optimization that was causing a
+ transfer failure. This removal is flagged in the compatibility code, so
+ if a better fix can be discovered, we have a way to flip it on again.
+
+ - Fixed a bug when the receiver is not configured to be able to hard link
+ symlimks/devices/special-file items but the sender sent some of these
+ items flagged as hard-linked.
+
+ - We now generate a better error if the buffer overflows in do_mknod().
+
+ - Fixed a problem reading more than 16 ACLs on some OSes.
+
+ - Fixed the reading of the secrets file to avoid an infinite wait when
+ the username is missing.
+
+ - Fixed a parsing problem in the --usermap/--groupmap options when using
+ MIN-MAX numbers.
+
+ - Switched Cygwin back to using socketpair "pipes" to try to speed it up.
+
+ - Added knowledge of a few new options to rrsync.
+
+ ENHANCEMENTS:
+
+ - Tweaked the temp-file naming when --temp-dir=DIR is used: the temp-file
+ names will not get a '.' prepended.
+
+ - Added support for a new-compression idiom that does not compress all the
+ matching data in a transfer. This can help rsync to use less cpu when a
+ transfer has a lot of matching data, and also makes rsync compatible with
+ a non-bundled zlib. See the --new-compress and --old-compress options in
+ the manpage.
+
+ - Added the support/rsync-no-vanished wrapper script.
+
+ - 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).
+
+ - Have manpage mention how a daemon's max-verbosity setting affects info
+ and debug options. Also added more clarification on backslash removals
+ for excludes that contain wildcards.
+
+ - Have configure check if for the attr lib (for getxattr) for those systems
+ that need to link against it explicitly.
+
+ - Change the early dir-creation logic to only use that idiom in an
+ inc-recursive copy that is preserving directory times. e.g. using
+ --omit-dir-times will avoid these early directories being created.
+
+ - Fix a bug in cmp_time() that would return a wrong result if the 2 times
+ differed by an amount greater than what a time_t can hold.
+
+ DEVELOPER RELATED:
+
+ - We now include an example systemd file (in packaging/systemd).
+
+ - Tweaked configure to make sure that any intended use of the included popt
+ and/or zlib code is put early in the CFLAGS.
+\f
+NEWS for rsync 3.1.0 (28 Sep 2013)
+Protocol: 31 (changed)
+Changes since 3.0.9:
+
+ OUTPUT CHANGES:
+
+ - Output numbers in 3-digit groups by default (e.g. 1,234,567). See the
+ --human-readable option for a way to turn it off. See also the daemon's
+ "log format" parameter and related command-line options (including
+ --out-format) for a modifier that can be used to request digit-grouping
+ or human-readable output in log escapes. (Note that log output is
+ unchanged by default.)
+
+ - The --list-only option is now affected by the --human-readable setting.
+ It will display digit groupings by default, and unit suffixes if higher
+ levels of readability are requested. Also, the column width for the size
+ output has increased from 11 to 14 characters when human readability is
+ enabled. Use --no-h to get the old-style output and column size.
+
+ - The output of the --progress option has changed: the string "xfer" was
+ shortened to "xfr", and the string "to-check" was shortened to "to-chk",
+ both designed to make room for the (by default) wider display of file
+ size numbers without making the total line-length longer. Also, when
+ incremental recursion is enabled, the string "ir-chk" will be used
+ instead of "to-chk" up until the incremental-recursion scan is done,
+ letting you know that the value to check and the total value will still
+ be increasing as new files are found.
+
+ - Enhanced the --stats output: 1) to mention how many files were created
+ (protocol >= 28), 2) to mention how many files were deleted (a new line
+ for protocol 31, but only output when --delete is in effect), and 3) to
+ follow the file-count, created-count, and deleted-count with a subcount
+ list that shows the counts by type. The wording of the transferred count
+ has also changed so that it is clearer that it is only a count of regular
+ files.
+
+ BUG FIXES:
+
+ - Fixed a bug in the iconv code when EINVAL or EILSEQ is returned with a
+ full output buffer.
+
+ - Fixed some rare bugs in --iconv processing that might cause a multibyte
+ character to get translated incorrectly.
+
+ - Fixed a bogus "vanished file" error if some files were specified with
+ "./" prefixes and others were not.
+
+ - Fixed a bug in --sparse where an extra gap could get inserted after a
+ partial write.
+
+ - Changed the way --progress overwrites its prior output in order to make
+ it nearly impossible for the progress to get overwritten by an error.
+
+ - Improved the propagation of abnormal-exit error messages. This should
+ help the client side to receive errors from the server when it is exiting
+ abnormally, and should also avoid dying with an "connection unexpectedly
+ closed" exit when the closed connection is really expected.
+
+ - The sender now checks each file it plans to remove to ensure that it
+ hasn't changed from the first stat's info. This helps to avoid losing
+ file data when the user is not using the option in a safe manner.
+
+ - Fixed a data-duplication bug in the compress option that made compression
+ less efficient. This improves protocol 31 onward, while behaving in a
+ compatible (buggy) manner with older rsync protocols.
+
+ - When creating a temp-file, rsync is now a bit smarter about it dot-char
+ choices, which can fix a problem on OS X with names that start with "..".
+
+ - Rsync now sets a cleanup flag for --inplace and --append transfers that
+ will flush the write buffer if the transfer aborts. This ensures that
+ more received data gets written out to the disk on an aborted transfer
+ (which is quite helpful on a slow, flaky connection).
+
+ - The reads that map_ptr() now does are aligned on 1K boundaries. This
+ helps some filesystems and/or files that don't like unaligned reads.
+
+ - Fix an issue in the msleep() function if time jumps backwards.
+
+ - Fix daemon-server module-name splitting bug where an arg would get split
+ even if --protect-args was used.
+
+ ENHANCEMENTS:
+
+ - Added the --remote-option=OPT (-M OPT) command-line option that is useful
+ for things like sending a remote --log-file=FILE or --fake-super option.
+
+ - Added the --info=FLAGS and --debug=FLAGS options to allow finer-grained
+ control over what is output. Added an extra type of --progress output
+ using --info=progress2.
+
+ - The --msgs2stderr option can help with debugging rsync by allowing the
+ debug messages to get output to stderr rather than travel via the socket
+ protocol.
+
+ - Added the --delete-missing-args and --ignore-missing-args options to
+ either delete or ignore user-specified files on the receiver that are
+ missing on the sender (normally the absence of user-specified files
+ generates an error).
+
+ - Added a "T" (terabyte) category to the --human-readable size suffixes.
+
+ - Added the --usermap/--groupmap/--chown options for manipulating file
+ ownership during the copy.
+
+ - Added the "%C" escape to the log-output handling, which will output the
+ MD5 checksum of any transferred file, or all files if --checksum was
+ specified (when protocol 30 or above is in effect).
+
+ - Added the "reverse lookup" parameter to the rsync daemon config file to
+ allow reverse-DNS lookups to be disabled.
+
+ - Added a forward-DNS lookup for the daemon's hosts allow/deny config. Can
+ be disabled via "forward lookup" parameter (defaults to enabled).
+
+ - Added a way for more than one group to be specified in the daemon's
+ config file, including a way to specify that you want all of the
+ specified user's groups without having to name them. Also changed the
+ daemon to complain about an inability to set explicitly-specified uid/gid
+ values, even when not run by a super-user.
+
+ - The daemon now tries to send the user the error messages from the
+ pre-xfer exec script when it fails.
+
+ - Improved the use of alt-dest options into an existing hierarchy of files:
+ If a match is found in an alt-dir, it takes precedence over an existing
+ file. (We'll need to wait for a future version before attribute-changes
+ on otherwise unchanged files are safe when using an existing hierarchy.)
+
+ - Added per-user authorization options and group-authorization support to
+ the daemon's "auth users" parameter.
+
+ - Added a way to reference environment variables in a daemon's config file
+ (using %VAR% references).
+
+ - When replacing a non-dir with a symlink/hard-link/device/special-file,
+ the update should now be done in an atomic manner.
+
+ - Avoid re-sending xattr info for hard-linked files w/the same xattrs
+ (protocol 31).
+
+ - The backup code was improved to use better logic maintaining the backup
+ directory hierarchy. Also, when a file is being backed up, rsync tries
+ to hard-link it into place so that the upcoming replacement of the
+ destination file will be atomic (for the normal, non-inplace logic).
+
+ - Added the ability to synchronize nano-second modified times.
+
+ - Added a few more default suffixes for the "dont compress" settings.
+
+ - Added the checking of the RSYNC_PROTECT_ARGS environment variable to allow
+ the default for the --protect-args command-line option to be overridden.
+
+ - Added the --preallocate command-line option.
+
+ - Allow --password-file=- to read the password from stdin (filename "-").
+
+ - Rsync now comes packaged with an rsync-ssl helper script that can be
+ used to contact a remote rsync daemon using a piped-stunnel command.
+ It also includes an stunnel config file to run the server side to
+ support ssl daemon connections. See the packaging/lsb/rsync.spec
+ file for one way to package the resulting files. (Suggestions for
+ how to make this even easier to install & use are welcomed.)
+
+ - Improved the speed of some --inplace updates when there are lots of
+ identical checksum blocks that end up being unusable.
+
+ - Added the --outbuf=N|L|B option for choosing the output buffering.
+
+ - Repeating the --fuzzy option now causes the code to look for fuzzy
+ matches inside alt-dest directories too.
+
+ - The --chmod option now supports numeric modes, e.g. --chmod=644,D755
+
+ - Added some Solaris xattr code.
+
+ - Made an rsync daemon (the listening process) exit with a 0 status when
+ it was signaled to die. This helps launchd.
+
+ - Improved the RSYNC_* environment variables for the pre-xfer exec script:
+ when a daemon is sent multiple request args, they are now joined into a
+ single return value (separated by spaces) so that the RSYNC_REQUEST
+ environment variable is accurate for any "pre-xfer exec". The values in
+ RSYNC_ARG# vars are no longer truncated at the "." arg (prior to the
+ request dirs/files), so that all the requested values are also listed
+ (separately) in RSYNC_ARG# variables.
+
+ EXTRAS:
+
+ - Added an "instant-rsyncd" script to the support directory, which makes
+ it easy to configure a simple rsync daemon in the current directory.
+
+ - Added the "mapfrom" and "mapto" scripts to the support directory, which
+ makes it easier to do user/group mapping in a local transfer based on
+ passwd/group files from another machine.
+
+ - There's a new, improved version of the lsh script in the support dir:
+ it's written in perl and supports -u without resorting to using sudo
+ (when run as root). The old shell version is now named lsh.sh.
+
+ - There is a helper script named rsync-slash-strip in the support directory
+ for anyone that wants to change the way rsync handles args with trailing
+ slashes. (e.g. arg/ would get stripped to arg while arg/. would turn into
+ arg/).
+
+ INTERNAL:
+
+ - The I/O code was rewritten to be simpler and do bigger buffered reads
+ over the socket. The I/O between the receiver and the generator was
+ changed to be standard multiplexed-I/O (like that over the socket).
+
+ - The sender tries to use any dead time while the generator is looking for
+ files to transfer in order to do sender-side directory scanning in a more
+ parallel manner.
+
+ - A daemon can now inform a client about a daemon-configured timeout value
+ so that the client can assist in the keep-alive activity (protocol 31).
+
+ - The filter code received some refactoring to make it more extendible, to
+ read better, and do better sanity checking.
+
+ - Really big numbers are now output using our own big-num routine rather
+ than casting them to a double and using a %.0f conversion.
+
+ - The pool_alloc library has received some minor improvements in alignment
+ handling.
+
+ - Added init_stat_x() function to avoid duplication of acl/xattr init code.
+
+ - The included zlib was upgraded from 1.2.3 to 1.2.8.
+
+ - Rsync can now be compiled to use an unmodified zlib library instead of
+ the tweaked one that is included with rsync. This will eventually
+ become the default, at which point we'll start the countdown to removing
+ the included zlib. Until then, feel free to configure using:
+
+ ./configure --with-included-zlib=no
+
+ DEVELOPER RELATED:
+
+ - Added more conditional debug output.
+
+ - Fixed some build issues for android and minix.
+\f
+NEWS for rsync 3.0.9 (23 Sep 2011)
+Protocol: 30 (unchanged)
+Changes since 3.0.8:
+
+ BUG FIXES:
+
+ - Fix a crash bug in checksum scanning when --inplace is used.
+
+ - Fix a hang if a hard-linked file cannot be opened by the sender (e.g.
+ if it has no read permission).
+
+ - Fix preservation of a symlink's system xattrs (e.g. selinux) on Linux.
+
+ - Fix a memory leak in the xattr code.
+
+ - Fixed a bug with --delete-excluded when a filter merge file has a rule
+ that specifies a receiver-only side restriction.
+
+ - Fix a bug with the modifying of unwritable directories.
+
+ - Fix --fake-super's interaction with --link-dest same-file comparisons.
+
+ - Fix the updating of the curr_dir buffer to avoid a duplicate slash.
+
+ - Fix the directory permissions on an implied dot-dir when using --relative
+ (e.g. /outside/path/././send/path).
+
+ - Fixed some too-long sleeping instances when using --bwlimit.
+
+ - Fixed when symlink ownership difference-checking gets compiled into
+ unchanged_attrs().
+
+ - Improved the socket-error reporting when multiple protocols fail.
+
+ - Fixed a case where a socket error could reference just-freed memory.
+
+ - Failing to use a password file that was specified on the command-line is
+ now a fatal error.
+
+ - Fix the non-root updating of directories that don't have the read and/or
+ execute permission.
+
+ - Make daemon-excluded file errors more error-like.
+
+ - Fix a compilation issue on older C compilers (due to a misplaced var
+ declaration).
+
+ - Make configure avoid finding socketpair on cygwin.
+
+ - Avoid trying to reference SO_BROADCAST if the OS doesn't support it.
+
+ - Fix some issues with the post-processing of the man pages.
+
+ - Fixed the user home-dir handling in the support/lsh script.
+
+ - Some minor manpage improvements.
+\f
+NEWS for rsync 3.0.8 (26 Mar 2011)
+Protocol: 30 (unchanged)
+Changes since 3.0.7:
+
+ BUG FIXES:
+
+ - Fixed two buffer-overflow issues: one where a directory path that is
+ exactly MAXPATHLEN was not handled correctly, and one handling a
+ --backup-dir that is extra extra large.
+
+ - Fixed a data-corruption issue when preserving hard-links without
+ preserving file ownership, and doing deletions either before or during
+ the transfer (CVE-2011-1097). This fixes some assert errors in the
+ hard-linking code, and some potential failed checksums (via -c) that
+ should have matched.
+
+ - Fixed a potential crash when an rsync daemon has a filter/exclude list
+ and the transfer is using ACLs or xattrs.
+
+ - Fixed a hang if a really large file is being processed by an rsync that
+ can't handle 64-bit numbers. Rsync will now complain about the file
+ being too big and skip it.
+
+ - For devices and special files, we now avoid gathering useless ACL and/or
+ xattr information for files that aren't being copied. (The un-copied
+ files are still put into the file list, but there's no need to gather
+ data that is not going to be used.) This ensures that if the user uses
+ --no-D, that rsync can't possibly complain about being unable to gather
+ extended information from special files that are in the file list (but
+ not in the transfer).
+
+ - Properly handle requesting remote filenames that start with a dash. This
+ avoids a potential error where a filename could be interpreted as a
+ (usually invalid) option.
+
+ - Fixed a bug in the comparing of upper-case letters in file suffixes for
+ --skip-compress.
+
+ - If an rsync daemon has a module configured without a path setting, rsync
+ will now disallow access to that module.
+
+ - If the destination arg is an empty string, it will be treated as a
+ reference to the current directory (as 2.x used to do).
+
+ - If rsync was compiled with a newer time-setting function (such as
+ lutimes), rsync will fall-back to an older function (such as utimes) on a
+ system where the newer function is not around. This helps to make the
+ rsync binary more portable in mixed-OS-release situations.
+
+ - Fixed a batch-file writing bug that would not write out the full set of
+ compatibility flags that the transfer was using. This fixes a potential
+ protocol problem for a batch file that contains a sender-side I/O error:
+ it would have been sent in a way that the batch-reader wasn't expecting.
+
+ - Some improvements to the hard-linking code to ensure that device-number
+ hashing is working right, and to supply more information if the hard-link
+ code fails.
+
+ - The --inplace code was improved to not search for an impossible checksum
+ position. The quadruple-verbose chunk[N] message will now mention when
+ an inplace chunk was handled by a seek rather than a read+write.
+
+ - Improved ACL mask handling, e.g. for Solaris.
+
+ - Fixed a bug that prevented --numeric-ids from disabling the translation
+ of user/group IDs for ACLs.
+
+ - Fixed an issue where an xattr and/or ACL transfer that used an alt-dest
+ option (e.g. --link-dest) could output an error trying to itemize the
+ changes against the alt-dest directory's xattr/ACL info but was instead
+ trying to access the not-yet-existing new destination directory.
+
+ - Improved xattr system-error messages to mention the full path to the
+ file.
+
+ - The --link-dest checking for identical symlinks now avoids considering
+ attribute differences that cannot be changed on the receiver.
+
+ - Avoid trying to read/write xattrs on certain file types for certain OSes.
+ Improved configure to set NO_SYMLINK_XATTRS, NO_DEVICE_XATTRS, and/or
+ NO_SPECIAL_XATTRS defines in config.h.
+
+ - Improved the unsafe-symlink errors messages.
+
+ - Fixed a bug setting xattrs on new files that aren't user writable.
+
+ - Avoid re-setting xattrs on a hard-linked file w/the same xattrs.
+
+ - Fixed a bug with --fake-super when copying files and dirs that aren't
+ user writable.
+
+ - Fixed a bug where a sparse file could have its last sparse block turned
+ into a real block when rsync sets the file size (requires ftruncate).
+
+ - If a temp-file name is too long, rsync now avoids truncating the name in
+ the middle of adjacent high-bit characters. This prevents a potential
+ filename error if the filesystem doesn't allow a name to contain an
+ invalid multi-byte sequence.
+
+ - If a muli-protocol socket connection fails (i.e., when contacting a
+ daemon), we now report all the failures, not just the last one. This
+ avoids losing a relevant error (e.g. an IPv4 connection-refused error)
+ that happened before the final error (e.g. an IPv6 protocol-not-supported
+ error).
+
+ - Generate a transfer error if we try to call chown with a -1 for a uid or
+ a gid (which is not settable).
+
+ - Fixed the working of --force when used with --one-file-system.
+
+ - Fix the popt arg parsing so that an option that doesn't take an arg will
+ 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.
+
+ - Fixed some issues in the support/mnt-excl script.
+
+ - Various manpage improvements.
+
+ ENHANCEMENTS:
+
+ - Added ".hg/" to the default cvs excludes (see -C & --cvs-exclude).
+
+ DEVELOPER RELATED:
+
+ - Use lchmod() whenever it is available (not just on symlinks).
+
+ - A couple fixes to the socketpair_tcp() routine.
+
+ - Updated the helper scripts in the packaging subdirectory.
+
+ - Renamed configure.in to configure.ac.
+
+ - Fixed configure's checking for iconv routines for newer OS X versions.
+
+ - Fixed the testsuite/xattrs.test script on OS X.
+\f
+NEWS for rsync 3.0.7 (31 Dec 2009)
+Protocol: 30 (unchanged)
+Changes since 3.0.6:
+
+ BUG FIXES:
+
+ - Fixed a bogus free when using --xattrs with --backup.
+
+ - Avoid an error when --dry-run was trying to stat a prior hard-link file
+ that hasn't really been created.
+
+ - Fixed a problem with --compress (-z) where the receiving side could
+ return the error "inflate (token) returned -5".
+
+ - Fixed a bug where --delete-during could delete in a directory before it
+ noticed that the sending side sent an I/O error for that directory (both
+ sides of the transfer must be at least 3.0.7).
+
+ - Improved --skip-compress's error handling of bad character-sets and got
+ rid of a lingering debug fprintf().
+
+ - Fixed the daemon's conveyance of io_error value from the sender.
+
+ - An rsync daemon use seteuid() (when available) if it used setuid().
+
+ - Get the permissions right on a --fake-super transferred directory that
+ needs more owner permissions to emulate root behavior.
+
+ - An absolute-path filter rule (i.e. with a '/' modifier) no longer loses
+ its modifier when sending the filter rules to the remote rsync.
+
+ - Improved the "--delete does not work without -r or -d" message.
+
+ - Improved rsync's handling of --timeout to avoid a weird timeout case
+ where the sender could timeout even though it has recently written data
+ to the socket (but hasn't read data recently, due to the writing).
+
+ - Some misc manpage improvements.
+
+ - Fixed the chmod-temp-dir testsuite on a system without /var/tmp.
+
+ - Make sure that a timeout specified in the daemon's config is used as a
+ maximum timeout value when the user also specifies a timeout.
+
+ - Improved the error-exit reporting when rsync gets an error trying to
+ cleanup after an error: the initial error is reported.
+
+ - Improved configure's detection of IPv6 for solaris and cygwin.
+
+ - The AIX sysacls routines will now return ENOSYS if ENOTSUP is missing.
+
+ - Made our (only used if missing) getaddrinfo() routine use inet_pton()
+ (which we also provide) instead of inet_aton().
+
+ - The exit-related debug messages now mention the program's role so it is
+ clear who output what message.
+
+ DEVELOPER RELATED:
+
+ - Got rid of type-punned compiler warnings output by newer gcc versions.
+
+ - The Makefile now ensures that proto.h will be rebuilt if config.h changes.
+
+ - The testsuite no longer uses "id -u", so it works better on solaris.
+
+\f
+NEWS for rsync 3.0.6 (8 May 2009)
+Protocol: 30 (unchanged)
+Changes since 3.0.5:
+
+ BUG FIXES:
+
+ - Fixed a --read-batch hang when rsync is reading a batch file that was
+ created from an incremental-recursion transfer.
+
+ - Fixed the daemon's socket code to handle the simultaneous arrival of
+ multiple connections.
+
+ - Fix --safe-links/--copy-unsafe-links to properly handle symlinks that
+ have consecutive slashes in the value.
+
+ - Fixed the parsing of an [IPv6_LITERAL_ADDR] when a USER@ is prefixed.
+
+ - The sender now skips a (bogus) symlink that has a 0-length value, which
+ avoids a transfer error in the receiver.
+
+ - Fixed a case where the sender could die with a tag-0 error if there was
+ an I/O during the sending of the file list.
+
+ - Fixed the rrsync script to avoid a server-side problem when -e is at the
+ start of the short options.
+
+ - Fixed a problem where a vanished directory could turn into an exit code
+ 23 instead of the proper exit code 24.
+
+ - Fixed the --iconv conversion of symlinks when doing a local copy.
+
+ - Fixed a problem where --one-file-system was not stopping deletions on the
+ receiving side when a mount-point directory did not match a directory in
+ the transfer.
+
+ - Fixed the dropping of an ACL mask when no named ACL values were present.
+
+ - Fixed an ACL/xattr corruption issue where the --backup option could cause
+ rsync to associate the wrong ACL/xattr information with received files.
+
+ - Fixed the use of --xattrs with --only-write-batch.
+
+ - Fixed the use of --dry-run with --read-batch.
+
+ - Fixed configure's erroneous use of target.
+
+ - Fixed configure's --disable-debug option.
+
+ - Fixed a run-time issue for systems that can't find iconv_open() by adding
+ the --disable-iconv-open configure option.
+
+ - Complain and die if the user tries to combine --remove-source-files (or
+ the deprecated --remove-sent-files) with --read-batch.
+
+ - Fixed an failure transferring special files from Solaris to Linux.
+
+\f
+NEWS for rsync 3.0.5 (28 Dec 2008)
+Protocol: 30 (unchanged)
+Changes since 3.0.4:
+
+ BUG FIXES:
+
+ - Initialize xattr data in a couple spots in the hlink code, which avoids a
+ crash when the xattr pointer's memory happens to start out non-zero.
+ Also fixed the itemizing of an alt-dest file's xattrs when hard-linking.
+
+ - Don't send a bogus "-" option to an older server if there were no short
+ options specified.
+
+ - Fixed skipping of unneeded updates in a batch file when incremental
+ recursion is active. Added a test for this. Made batch-mode handle
+ "redo" files properly (and without hanging).
+
+ - Fix the %P logfile escape when the daemon logs from inside a chroot.
+
+ - Fixed the use of -s (--protect-args) when used with a remote source or
+ destination that had an empty path (e.g. "host:"). Also fixed a problem
+ when -s was used when accessing a daemon via a remote-shell.
+
+ - Fixed the use of a dot-dir path (e.g. foo/./bar) inside a --files-from
+ file when the root of the transfer isn't the current directory.
+
+ - Fixed a bug with "-K --delete" removing symlinks to directories when
+ incremental recursion is active.
+
+ - Fixed a hard to trigger hang when using --remove-source-files.
+
+ - Got rid of an annoying delay when accessing a daemon via a remote-shell.
+
+ - Properly ignore (superfluous) source args on a --read-batch command.
+
+ - Improved the manpage's description of the '*' wildcard to remove the
+ confusing "non-empty" qualifier.
+
+ - Fixed reverse lookups in the compatibility-library version of
+ getnameinfo().
+
+ - Fixed a bug when using --sparse on a sparse file that has over 2GB of
+ consecutive sparse data.
+
+ - Avoid a hang when using at least 3 --verbose options on a transfer with a
+ client sender (which includes local copying).
+
+ - Fixed a problem with --delete-delay reporting an error when it was ready
+ to remove a directory that was now gone.
+
+ - Got rid of a bunch of "warn_unused_result" compiler warnings.
+
+ - If an ftruncate() on a received file fails, it now causes a partial-
+ transfer warning.
+
+ - Allow a path with a leading "//" to be preserved (CYGWIN only).
+
+ 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.
+
+\f
+NEWS for rsync 3.0.4 (6 Sep 2008)
+Protocol: 30 (unchanged)
+Changes since 3.0.3:
+
+ BUG FIXES:
+
+ - Fixed a bug in the hard-linking code where it would sometimes try to
+ allocate 0 bytes of memory (which fails on some OSes, such as AIX).
+
+ - Fixed the hard-linking of files from a device that has a device number
+ of 0 (which seems to be a common device number on NetBSD).
+
+ - Fixed the handling of a --partial-dir that cannot be created. This
+ particularly impacts the --delay-updates option (since the files cannot
+ be delayed without a partial-dir), and was potentially destructive if
+ the --remove-source-files was also specified.
+
+ - Fixed a couple issues in the --fake-super handling of xattrs when the
+ destination files have root-level attributes (e.g. selinux values) that
+ a non-root copy can't affect.
+
+ - Improved the keep-alive check in the generator to fire consistently in
+ incremental-recursion mode when --timeout is enabled.
+
+ - The --iconv option now converts the content of a symlink too, instead
+ of leaving it in the wrong character-set (requires 3.0.4 on both sides
+ of the transfer).
+
+ - When using --iconv, if a filename fails to convert on the receiving side,
+ this no longer makes deletions in the root-dir of the transfer fail
+ silently (the user now gets a warning about deletions being disabled
+ due to IO error as long as --ignore-errors was not specified).
+
+ - When using --iconv, if a server-side receiver can't convert a filename,
+ the error message sent back to the client no longer mangles the name
+ with the wrong charset conversion.
+
+ - Fixed a potential alignment issue in the IRIX ACL code when allocating
+ the initial "struct acl" object. Also, cast mallocs to avoid warnings.
+
+ - Changed some errors that were going to stdout to go to stderr.
+
+ - Made human_num() and human_dnum() able to output a negative number
+ (rather than outputting a cryptic string of punctuation).
+
+ ENHANCEMENTS:
+
+ - Rsync will avoid sending an -e option to the server if an older protocol
+ is requested (and thus the option would not be useful). This lets the
+ user specify the --protocol=29 option to access an overly-restrictive
+ server that is rejecting the protocol-30 use of -e to the server.
+
+ - Improved the message output for an RERR_PARTIAL exit.
+
+ DEVELOPER RELATED:
+
+ - The Makefile will not halt for just a timestamp change on the Makefile
+ or the configure files, only for actual changes in content.
+
+ - Changed some commands in the testsuite's xattrs.test that called "rsync"
+ instead of "$RSYNC".
+
+ - Enhanced the release scripts to be able to handle a branch release and
+ to do even more consistency checks on the files.
+
+\f
NEWS for rsync 3.0.3 (29 Jun 2008)
Protocol: 30 (unchanged)
Changes since 3.0.2:
- Fixed rsync's ability to remove files that are not writable by the file's
owner when rsync is running as the same user.
+ - When transferring large files, the sender's hashtable of checksums is
+ kept at a more reasonable state of fullness (no more than 80% full) so
+ that the scanning of the hashtable will not bog down as the number of
+ blocks increases.
+
ENHANCEMENTS:
- A new incremental-recursion algorithm is now used when rsync is talking
\f
Partial Protocol History
RELEASE DATE VER. DATE OF COMMIT* PROTOCOL
- ?? ??? 2008 3.1.0 30
+ 28 Jan 2018 3.1.3 31
+ 21 Dec 2015 3.1.2 31
+ 22 Jun 2014 3.1.1 31
+ 28 Sep 2013 3.1.0 31 Aug 2008 31
+ 23 Sep 2011 3.0.9 30
+ 26 Mar 2011 3.0.8 30
+ 31 Dec 2009 3.0.7 30
+ 08 May 2009 3.0.6 30
+ 28 Dec 2008 3.0.5 30
+ 06 Sep 2008 3.0.4 30
29 Jun 2008 3.0.3 30
08 Apr 2008 3.0.2 30
03 Apr 2008 3.0.1 30