Op de website van Samba is een nieuwe uitgave van rsync verschenen met ditmaal 3.0.8pre1 als versieaanduiding. Dit programma voorziet in een snelle manier om bestanden geheel of gedeeltelijk tussen verschillende servers en locaties te synchroniseren. Het wordt dan ook veel op de achtergrond toegepast in allerlei synchronisatieprogramma's, maar kan bijvoorbeeld ook voor de offsite-backup van fileservers gebruikt worden. Wie meer wil weten, kan de beschikbare documentatie doorlezen, waarin ook een aantal tutorials wordt vermeld. De aankondiging is op deze pagina na te lezen en de lijst met aanpassingen ziet er als volgt uit:
- 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. 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.
- If we fail to connect to an rsync daemon, report all the connection errors (e.g. IPv4 & IPv6), not just the last one.
- Improved ACL mask handling, e.g. for Solaris.
- 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.
- 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 a forceful delete of a file 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.
- A couple minor option tweaks to support/rrsync script, and also some regex changes that make vim highlighting happier.
- Fixed some issues in the support/mnt-excl script.
- A few manpage improvements.
- Added ".hg/" to the default cvs excludes (see -C & --cvs-exclude).
- 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.