+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:
+
+ BUG FIXES:
+
+ - Fixed a wildcard matching problem in the daemon when a module has
+ "use chroot" enabled.
+
+ - Fixed a crash bug in the hard-link code.
+
+ - Fixed the sending of xattr directory information when the code finds a
+ --link-dest or --copy-dest directory with unchanged xattrs -- the
+ destination directory now gets these unchanged xattrs properly applied.
+
+ - Fixed an xattr-sending glitch that could cause an "Internal abbrev"
+ error.
+
+ - Fixed the combination of --xattrs and --backup.
+
+ - The generator no longer allows a '.' dir to be excluded by a daemon-
+ exclude rule.
+
+ - Fixed deletion handling when copying a single, empty directory (with no
+ files) to a differently named, non-existent directory.
+
+ - Fixed the conversion of spaces into dashes in the %M log escape.
+
+ - Fixed several places in the code that were not returning the right
+ errno when a function failed.
+
+ - Fixed the backing up of a device or special file into a backup dir.
+
+ - Moved the setting of the socket options prior to the connect().
+
+ - If rsync exits in the middle of a --progress output, it now outputs a
+ newline to help prevent the progress line from being overwritten.
+
+ - Fixed a problem with how a destination path with a trailing slash or
+ a trailing dot-dir was compared against the daemon excludes.
+
+ - Fixed the sending of large (size > 16GB) files when talking to an older
+ rsync (protocols < 30): we now use a compatible block size limit.
+
+ - If a file's length is so huge that we overflow a checksum buffer count
+ (i.e. several hundred TB), warn the user and avoid sending an invalid
+ checksum struct over the wire.
+
+ - If a source arg is excluded, --relative no longer adds the excluded
+ arg's implied dirs to the transfer. This fix also made the exclude
+ check happen in the better place in the sending code.
+
+ - Use the overflow_exit() function for overflows, not out_of_memory().
+
+ - Improved the code to better handle a system that has only 32-bit file
+ offsets.
+
+ ENHANCEMENTS:
+
+ - The rsyncd.conf manpage now consistently refers to the parameters in
+ the daemon config file as "parameters".
+
+ - The description of the --inplace option was improved.
+
+ EXTRAS:
+
+ - Added a new script in the support directory, deny-rsync, which allows
+ an admin to (temporarily) replace the rsync command with a script that
+ sends an error message to the remote client via the rsync protocol.
+
+ DEVELOPER RELATED:
+
+ - Fixed a testcase failure if the tests are run as root and made some
+ compatibility improvements.
+
+ - Improved the daemon tests, including checking module comments, the
+ listing of files, and the ensuring that daemon excludes can't affect
+ a dot-dir arg.
+
+ - Improved some build rules for those that build in a separate directory
+ from the source, including better install rules for the man pages, and
+ the fixing of a proto.h-tstamp rule that could make the binaries get
+ rebuild without cause.
+
+ - Improved the testsuite to work around a problem with some utilities
+ (e.g. cp -p & touch -r) rounding sub-second timestamps.
+
+ - Ensure that the early patches don't cause any generated-file hunks to
+ bleed-over into patches that follow.
+
+\f
+NEWS for rsync 3.0.2 (8 Apr 2008)
+Protocol: 30 (unchanged)
+Changes since 3.0.1:
+
+ BUG FIXES:
+
+ - Fixed a potential buffer overflow in the xattr code.
+
+ ENHANCEMENTS:
+
+ - None.
+
+ DEVELOPER RELATED:
+
+ - The RPM spec file was improved to install more useful files.
+
+ - A few developer-oriented scripts were moved from the support dir
+ to the packaging dir.
+
+\f
+NEWS for rsync 3.0.1 (3 Apr 2008)
+Protocol: 30 (unchanged)
+Changes since 3.0.0:
+
+ NOTABLE CHANGES IN BEHAVIOR:
+
+ - Added the 'c'-flag to the itemizing of non-regular files so that the
+ itemized output doesn't get hidden if there were no attribute changes,
+ and also so that the itemizing of a --copy-links run will distinguish
+ between copying an identical non-regular file and the creation of a
+ revised version with a new value (e.g. a changed symlink referent, a
+ new device number, etc.).
+
+ BUG FIXES:
+
+ - Fixed a crash bug when a single-use rsync daemon (via remote shell) was
+ run without specifying a --config=FILE option.
+
+ - Fixed a crash when backing up a directory that has a default ACL.
+
+ - Fixed a bug in the handling of xattr values that could cause rsync to
+ not think that a file's extended attributes are up-to-date.
+
+ - Fixed the working of --fake-super with --link-dest and --xattrs.
+
+ - Fixed a hang when combining --dry-run with --remove-source-files.
+
+ - Fixed a bug with --iconv's handling of files that cannot be converted:
+ a failed name can no longer cause a transfer failure.
+
+ - Fixed the building of the rounding.h file on systems that need custom
+ CPPFLAGS to be used. Also improved the error reporting if the building
+ of rounding.h fails.
+
+ - Fixed the use of the --protect-args (-s) option when talking to a daemon.
+
+ - Fixed the --ignore-existing option's protection of files on the receiver
+ that are non-regular files on the sender (e.g. if a symlink or a dir on
+ the sender is trying to replace a file on the receiver). The reverse
+ protection (protecting a dir/symlink/device from being replaced by a
+ file) was already working.
+
+ - Fixed an assert failure if --hard-links is combined with an option that
+ can skip a file in a set of hard-linked files (i.e. --ignore-existing,
+ --append, etc.), without skipping all the files in the set.
+
+ - Avoid setting the modify time on a directory that already has the right
+ modify time set. This avoids tweaking the dir's ctime.
+
+ - Improved the daemon-exclude handling to do a better job of applying the
+ exclude rules to path entries. It also sends the user an error just as
+ if the files were actually missing (instead of silently ignoring the
+ user's args), and avoids sending the user the filter-action messages
+ for these non-user-initiated rules.
+
+ - Fixed some glitches with the dry-run code's missing-directory
+ handling, including a problem when combined with --fuzzy.
+
+ - Fixed some glitches with the skipped-directory handling.
+
+ - Fixed the 'T'-flag itemizing of symlinks when --time isn't preserved.
+
+ - Fixed a glitch in the itemizing of permissions with the -E option.
+
+ - The --append option's restricting of transfers to those that add data no
+ longer prevents the updating of non-content changes to otherwise up-to-
+ date files (i.e. those with the same content but differing permissions,
+ ownership, xattrs, etc.).
+
+ - Don't allow --fake-super to be specified with -XX (double --xattrs)
+ because the options conflict. If a daemon has "fake super" enabled,
+ it automatically downgrades a -XX request to -X.
+
+ - Fixed a couple bugs in the parsing of daemon-config excludes that could
+ make a floating exclude rule get treated as matching an absolute path.
+
+ - A daemon doesn't try to auto-refuse the "iconv" option if iconv-support
+ wasn't compiled in to the daemon (avoiding a warning in the logs).
+
+ - 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).
+
+ ENHANCEMENTS:
+
+ - Added the --old-dirs (--old-d) option to make it easier for a user to
+ ask for file-listings with older rsync versions (this is easier than
+ having to type "-r --exclude='/*/*'" manually).
+
+ - When getting an error while asking an older rsync daemon for a file
+ listing, rsync will try to notice if the error is a rejection of the
+ --dirs (-d) option and let the user know how to work around the issue.
+
+ - Added a few more --no-OPTION overrides.
+
+ - Improved the documentation of the --append option.
+
+ - Improved the documentation of the filter/exclude/include daemon
+ parameters.
+
+ INTERNAL:
+
+ - Fixed a couple minor bugs in the included popt library (ones which I
+ sent to the official popt project for inclusion in the 1.14 release).
+
+ - Fixed a stat() call that should have been do_stat() so that the proper
+ normal/64-bit stat() function gets called. (Was in an area that should
+ not have caused problems, though.)
+
+ - Changed the file-glob code to do a directory scan without using the
+ "glob" and "glob.h". This lets us do the globbing with less memory
+ churn, and also avoid adding daemon-excluded items to the returned
+ args.
+
+ DEVELOPER RELATED:
+
+ - The configure script tries to get the user's compiler to not warn about
+ unused function parameters if the build is not including one or more of
+ the ACL/xattrs/iconv features.
+
+ - The configure script now has better checks for figuring out if the
+ included popt code should be used or not.
+
+ - Fixed two testsuite glitches: avoid a failure if someone's "cd" command
+ outputs the current directory when cd-ing to a relative path, and made
+ the itemized test query how rsync was built to determine if it should
+ expect hard-linked symlinks or not.
+
+ - Updated the testsuite to verify that various bug fixes remain fixed.
+
+ - The RPM spec file was updated to have: (1) comments for how to use the
+ rsync-patch tar file, and (2) an /etc/xinetd.d/rsync file.
+
+ - Updated the build scripts to work with a revised FTP directory
+ structure.
+
+\f
NEWS for rsync 3.0.0 (1 Mar 2008)
Protocol: 30 (changed)
Changes since 2.6.9:
- 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 31 Aug 2008 31
+ 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
01 Mar 2008 3.0.0 11 Nov 2006 30
06 Nov 2006 2.6.9 29