xattrs questions

Victor Shoup shoup at cs.nyu.edu
Sat Apr 7 11:13:16 GMT 2007

I see that rsync will eventually support extended attributes, which  
will be great.
But: will it allow backup from a file system that supports xattrs, to  
one that does not?
For this to work, rsync would have to represent the xattrs on the  
destination machine
in some special format, I suppose, which is outside the usual rsync  
mode of operation.

Moreover, even if both machines support xattrs, their might be  
restrictions and
subtle differences in semantics that could prevent one from directly  
an xattr on one machine to an xattr on another.  For example,  
on OSX may be arbitrarily large, and I could imagine that some  
filesystems may not allow
this.  I could also imagine that there may be restrictions on the  
names of xattrs that cause trouble.

So I wonder: has there been a clear discussion about what exactly  
rsync's xattr support is to be?
I can see that having an rsync that respected xattrs when both source  
and destination
have the same or very similar xattr semantics would be both desirable  
and sensible,
but I'm afraid that there may be no simple solution when the two  
filesystems take
radically different views on xattrs.

For example,  the approach taken by rdiff-backup may be
the most reasonable:  store xattrs on the foreign filesystem in a  
special archive, using rsync
to transport the data and the xattr archives.

Finally, why are filesystem designers doing this?  Do xattrs really  
make anyone's lives any better?
Indeed, they seem to break the age-old philosophy of Unix that a file  
is just data.
Of course, there have always been permission bits, which complicate  
matters (and BSD
went ahead and added more funny bits).  I can also understand ACLs.   
But any extra
data that goes beyond basic access control:  that should just be a  
separate file.
It seems that this xattr stuff is simply creating a tower of Babel  
that breaks interoperability....
and for what?

More information about the rsync mailing list