Software update: rsync 3.2.3

A new edition of rsync has appeared on the Samba website, this time with 3.2.3 as the version indication. This program provides a quick way to synchronize all or part of files between different servers and locations. It is therefore often used in the background in all kinds of synchronization programs, but can also be used, for example, for the off-site backup of file servers. If you want to know more, you can check the available documentation read through, which also lists some tutorials. The announcement is up this page and the list of changes looks like this:

NEWS for rsync 3.2.3


  • Fixed a bug in the xattr code that was freeing the wrong object when trying to cleanup the xattr list.
  • Fixed a bug in the xattr code that was not leaving room for the “rsync.” prefix in some instances where it needed to be added.
  • Restored the ability to use ‑‑bwlimit=0 to specify no bandwidth limit. (It was accidentally broken in 3.2.2.)
  • Fix a bug when combining ‑‑delete-missing-args with ‑‑no-implied-dirs & ‑R where rsync might create the destination path of a missing arg. The code also avoids some superfluous warnings for nested paths of removed args.
  • Fixed an issue where hard-linked devices could cause the rdev_major value to get out of sync between the sender and the receiver, which could cause a device to get created with the wrong major value in its major,minor pair.
  • Rsync now complains about a missing ‑‑temp-dir before starting any file transfers.
  • A completely empty source arg is now a fatal error. This doesn’t change the handling of implied dot-dir args such as “localhost:” and such.


  • Allow ‑‑max-alloc=0 to specify no limit to the alloc sanity check.
  • Allow ‑‑block-size=SIZE to specify the size using units (eg “100K”).
  • The name of the id-0 user & group are now sent to the receiver along with the other user/group names in the transfer (instead of assuming that both sides have the same id-0 names).
  • Added the ‑‑stop-after=MINS and ‑‑stop-at=DATE_TIME options (with the ‑‑time-limit=MINS option accepted as an alias for ‑‑stop-after). This is an enhanced version of the time-limit patch from the patches repo.
  • Added the name converter daemon parameter to make it easier to convert user & group names inside a chrooted daemon module. This is based on the nameconverter patch with some improvements, including a tweak to the request protocol (so if you used this patch in the past, be sure to update your converter script to use newlines instead of null chars).
  • Added ‑‑crtimes (‑N) option for preserving the file’s create time (I believe that this is macOS only at the moment).
  • Added ‑‑mkpath option to tell rsync that it should create a non-existing path component of the destination arg.
  • Added ‑‑stderr=errors|all|client to replace the ‑‑msgs2stderr and ‑‑no-msgs2stderr options (which are still accepted). The default use of stderr was changed to be ‑‑stderr=errors where all the processes that have stderr available output directly to stderr, which should help error messages get to the user more quickly, especially when doing a push (which includes local copying) . This also allows rsync to exit quickly when a receiver failure occurs, since rsync doesn’t need to try to keep the connection alive long enough for the fatal error to go from the receiver to the generator to the sender. The old default can be requested via ‑‑stderr=client. Also changed is that a non-default stderr mode is conveyed to the remote rsync (using the older option names) instead of requiring the user to use ‑‑remote-option (‑M) to tell the remote rsync what to do.
  • Added the ability to specify “@netgroup” names to the hosts allow and hosts deny daemon parameters. This is a finalized version of the netgroup-auth patch from the patches repo.
  • Rsync can now hard-link symlinks on FreeBSD due to it making ues of the linkat() function when it is available.
  • Output file+line info on out-of-memory & overflow errors while also avoiding the output of alternate build-dir path info that is not useful to the user.
  • Change configure to know that Cygwin supports Linux xattrs.
  • Improved the test suite on FreeBSD & Cygwin.
  • Added some compatibility code for HPE NonStop platforms.
  • Improved the info.
  • Added a few more suffixes to the default skip-compress list.
  • Improved configure’s error handling to notify about several issues at once instead of one by one (for the newest optional features).


  • Use a simpler overflow check idiom in a few spots.
  • Use a C99 Flexible Array for a trailing variable-size filename in a struct (with a fallback to the old 1-char string kluge for older compilers).

Version number 3.2.3
Release status Final
Operating systems Linux, BSD, macOS, Solaris, UNIX
Website rsync
License type GPL