NEWS for rsync 3.0.1 (UNRELEASED) 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.