rsync xattr oddness between mac & linux?

Hullo all - I'm using rsync to back up from my mac to a fileserver runnning linux, and I see the following error:

rsync -e ssh -vaxE --delete --ignore-errors 192.168.1.3:/bkup/mac/Users/dave/ /Users/dave/Desktop/dave 
[email protected]'s password: 
rsync: on remote machine: --extended-attributes: unknown option
rsync error: syntax or usage error (code 1) at main.c(1441) [server=3.0.5]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-37.3/rsync/io.c(452) [receiver=2.6.9]

... clear enough error, however -v shows the following for the two machines:

MAC (Client/Local):

rsync  version 2.6.9  protocol version 29
...
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 64-bit system inums, 64-bit internal inums

LINUX (Server/Remote):

rsync  version 3.0.5  protocol version 30
...
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

... so given the Linux box says it supports xattrs why does it throw a complaint about extended-attributes being requested by the Mac ?

FWIW the Mac is running OS X 10.6.1 & The server is running Ubuntu 2.6.28-15-generic - both machines are running with up to date standard packages (no special flavours of rsync installed on either side beyond what ships by default).

Any insight appreciated :-)


The flags -E / --extended-attributes were not part of the official rsync distribution, and were a patch included by Apple at a time when the official rsync release didn't support them.

Now, rsync verson 3.x has reimplemented extended attribute support in a manner incompatible with Apple's patch. According to the rsync manual page for 3.0.6, extended-attribute support is now done with the --xattrs or -X arguments. It does not appear to accept the --extended-attributes flag at all.

You will either have to not specify -E or install an updated version of rsync locally that supports the new implementation.