*** client: freebsd 8.4-STABLE rsync 3.1.1
root 224 > /usr/local/bin/rsync --address=10.246.110.2 -zz -v --fileflags
--force-change --numeric-ids --force --super -8 toor@droplet02::grizzle/
rsync error: error in rsync protocol data stream (code 12) at io.c(226} [Receiver=3.1.1]
*** server: freebsd 11.4-STABLE rsync 3.2.2
rsync error: protocol incompatibility (code 2) at compat.c(723) [sender=3.2.2]
This started happening after I upgraded the server from rsync version
3.1.3 to 3.2.2
it works if "--fileflags" is removed
Yup, the older --file-flags patch isn't compatible with the newer one.
(In reply to Wayne Davison from comment #1)
What should we do instead to keep the same functionality?
It's not a trivial exercise to upgrade the rsync version on the target system, so it would be useful if there was some kind of "back patch" available
| suspect there might be others with similar issues ...
The pre-release patches aren't guaranteed to be backward compatible, and in this case the bits that were used in a couple different patches actually conflicted with each other. So, when --atimes was promoted it became impossible for anything using the older --fileflags patch to work with a newer rsync (or the older --crtimes option, which also had to change bits).
Your best bet is to either copy an extra rsync binary onto the non-upgraded target system (it doesn't have to be installed) and use the --rsync-path option to tell rsync where to run the newer version OR to copy an older rsync version onto the upgraded system so that you can use that rsync-old-fileflags binary to copy to a system with the older patch.