Making rsync compile under Mac OS X 10.3.9 with extended attributes

Vitorio Machado v.machado at permanence-informatique.fr
Fri Jan 25 16:45:41 GMT 2008


Le 24 janv. 08 à 16:30, Matt McCutchen a écrit :

> On Thu, 2008-01-24 at 13:25 +0100, Vitorio Machado wrote:
>> Somebody knows if it's possible to compile rsync (version 3 would be
>> great, but can be 2.6.x) under Mac OS X 10.3.9 with extended
>> attributes?
>
>> I have tried to compile rsync from source but the problem I found is
>> that the xattr patch seems to need the acl patch. But 10.3 doesn't
>> have the ACL support so doesn't provides the expected headers and the
>> make command fails.
>
> In rsync 3, support for preserving acls and xattrs is in the trunk and
> the "acls" and "xattrs" patches just add acl and xattr protocol
> compatibility with older versions of rsync.  Thus, you probably don't
> need to apply either patch.  Try compiling rsync 3.0.0pre8 without
> patches, and if you still run into problems, post the exact error
> message(s).
>
> Matt
>


First of all, thanks for your interest in my problem.

I will post precise error repport next week, I'm not at work at the  
moment.

The problem is that apparently xattr code depends on ACL code. But  
Mac OS X 10.3.9 doesn't have the needed API (gcc doesn't find headers  
about ACL code in the system).

On a fresh downloaded source of rsync 3.0.0pre8 I've tried:

1) ./configure -> configuration completes fine without error
     make -> error on acl header as described (will report the  
precise error next week)

2) ./configure --disable-acl-support -> configuration completes  
without error
      make -> compilation goes just fine
      ./rsync --version -> indicates in capabilities NO ACL and NO  
xattr support, so disabling ACL I've also disabled xattr (what I do  
need because the purpose is to backup mac files that are rich on  
ressource forks...)

3) ./configure --disable-acl-support --enable-xattr-support ->  
configuration completes without error
     make -> same acl error as in point number 1.

This made me conclude the xattr code automatically activates the ACL  
support. And as ACL doesn't compile on 10.3 it seems it will not  
possible to have xattr on 10.3. Please say me that I'm wrong and that  
there's a way to trick it.

Perhaps a patch like the one of RsyncX, http://www.quesera.com/ 
reynhout/misc/rsync+hfsmode/ , or http://home.onthenet.com.au/~q/ 
rsync/ , but applied to the last release. Note that I don't care so  
much about compability of the 10.3 rsync I'll get and other versions.  
The 10.3 rsync I want to compile doesn't need to talk with a rsync  
server, the backup will be done locally on a HFS+ volume. All I want  
is a fast incremental algorithm that preserve all the information  
(data and ressource fork basically, permissions, dates, etc would be  
fine but aren't mandatory) while making a copy.

I can't use RsyncX version of rsync because it have an annoying  
double free bug. The version found at http://home.onthenet.com.au/~q/ 
rsync/ is compiled 10.4+ only. I didn't tried to compile it on 10.3,  
will try it next week. http://www.quesera.com/reynhout/misc/rsync 
+hfsmode/ patch approach doesn't seem the good one for me, I don't  
want my files to be encoded as AppleDouble. And all those patch  
aren't official. It would be a lot easier to track bugs and get it  
progressing if it was the "official" rsync way to handle xattr. Don't  
you think it's the better approach?


More information about the rsync mailing list