- * Fixed several exclude/include matching bugs when using wild-cards.
- This has a several user-visible effects, all of which make the
- matching more consistent and intuitive. This should hopefully not
- cause anyone problems since it makes the matching work more like
- what people are expecting. (Wayne Davison)
-
- - A pattern with a "**" no longer causes a "*" to match slashes.
- For example, with "/*/foo/**", "foo" must be 2 levels deep.
-
- - "**/foo" now matches at the base of the transfer (i.e. /foo).
-
- - An non-anchored wildcard term floats to match beyond the base of
- the transfer. E.g. "CVS/R*" matches at the end of the path,
- just like the non-wildcard term "CVS/Root" does.
-
- - Including a "**" in the match term causes it to be matched
- against the entire path, not just the name portion, even if
- there aren't any interior slashes in the term. E.g. "foo**bar"
- would exclude "/path/foo-bar" (just like before) as well as
- "/foo-path/baz-bar" (for instance).
-
- * The exclude list specified in the daemon's config file is now
- properly applied to the pulled items no matter how deep the
- user's file args are in the source tree. (Wayne Davison)
-
- * For protocol version >= 27, mdfour_tail() is called when the
- block size (including checksum_seed) is a multiple of 64.
- Previously it was not called, giving the wrong MD4 checksum.
- (Craig Barratt)
-
- * For protocol version >= 27, a 64 bit bit counter is used in
- mdfour.c as required by the RFC. Previously only a 32 bit bit
- counter was used, causing incorrect MD4 file checksums for
- file sizes >= 512MB - 4. (Craig Barratt)
-
- * Fixed a crash bug when interacting with older rsync versions and
- multiple files of the same name are destined for the same dir.
- (Wayne Davison)
-
- * Keep tmp names from overflowing MAXPATHLEN.
-
- * Make --link-dest honor the absence of -p, -o, and -g.
-
- * Made rsync treat a trailing slash in the destination in a more
- consistent manner.
-
- * Fixed file I/O error detection. (John Van Essen)
-
- * Fixed a compression (-z) bug when syncing a mostly-matching file
- that contains already-compressed data. (Yasuoka Masahiko and
- Wayne Davison)
-
- * Fixed a bug in the --backup code that could cause deleted files
- to not get backed up.
-
- * Call setgroups() in a more portable manner.
-
- * Improved file-related error messages to better indicate exactly
- what pathname failed. (Wayne Davison)
-
- * Fixed some bugs in the handling of --delete and --exclude when
- using the --relative (-R) option. (Wayne Davison)
-
- * Fixed bug that prevented regular files from replacing
- special files and caused a directory in --link-dest or
- --compare-dest to block the creation of a file with the
- same path. A directory still cannot be replaced by a
- regular file unless --delete specified. (J.W. Schultz)
-
- INTERNAL:
-
- * Eliminated vestigial support for old versions that we stopped
- supporting. (J.W. Schultz)
-
- * Simplified some of the option-parsing code. (Wayne Davison)
-
- * Some cleanup made to the exclude code, as well as some new
- defines added to enhance readability. (Wayne Davison)
-
- * Changed the protocol-version code so that it can interact at a
- lower protocol level than the maximum supported by both sides.
- Added an undocumented option, --protocol=N, to force the value
- we advertise to the other side (primarily for testing purposes).
- (Wayne Davison)
-
-
-NEWS for rsync version 2.5.6, aka the dwd-between-jobs release
-Protocol: 26 (unchanged)
-Changes since version 2.5.5:
+ - If rsync is interrupted via a handled signal (such as SIGINT), it will
+ once again clean-up its temp file from the destination dir.
+
+ - An rsync daemon that is receiving files with "use chroot = no" no longer
+ sanitizes the symlink target strings. This means that each symlink's
+ value will now be accepted (and thus returned) with its symlink info
+ intact. Also, in order to keep things safe, all arg paths and any
+ dereferenced symlinks (e.g. via --copy-links or --keep-dirlinks) are
+ manually verified to ensure that no symlinks try to escape past the top
+ of the module's path. These changes make a non-chroot daemon behave the
+ same way as a chroot daemon with regard to symlinks, and also avoids a
+ potential problem where a pre-existing symlink could have escaped the
+ module's hierarchy. See also the new "munge symlinks" daemon setting.
+
+ - Fixed an overzealous sanitizing bug in the handling of the --link-dest,
+ --copy-dest, and --compare-dest options to a daemon without chroot: if
+ the copy's destination dir is deeper than the top of the module's path,
+ these options now accept a safe number of ../ (parent-dir) references
+ (since these options are relative to the destination dir). The old code
+ incorrectly chopped off all "../" prefixes for these options, no matter
+ how deep the destination directory was in the module's hierarchy.
+
+ - Fixed a bug where a deferred info/error/log message could get sent
+ directly to the sender instead of being handled by rwrite() in the
+ generator. This fixes an "unexpected tag 3" fatal error, and should
+ also fix a potential problem where a deferred info/error message from
+ the receiver might bypass the log file and get sent only to the client
+ process. (These problems could only affect an rsync daemon that was
+ receiving files.)
+
+ - Fixed a bug in the %f logfile escape when receiving files: the
+ destination path is now included in the output (e.g. you can now tell
+ when a user specifies a subdir inside a module).
+
+ - If the receiving side fails to create a directory, it will now skip
+ trying to update everything that is inside that directory.
+
+ - Make sure that the --link-dest option can still do its job even when -I
+ is specified.
+
+ - If --link-dest is specified with --checksum but without --times, rsync
+ will now allow a hard-link to be created to a matching link-dest file
+ even when the file's modify-time doesn't match the server's file.
+
+ - The daemon now calls more timezone-using functions prior to doing a
+ chroot. This should help some C libraries to generate proper timestamps
+ from inside a chrooted daemon (and to not try to access /etc/timezone
+ over and over again).
+
+ - Fixed a bug in the handling of an absolute --partial-dir=ABS_PATH option:
+ it now deletes an alternate basis file from the partial-dir that was used
+ to successfully update a destination file.