Making rsync compile under Mac OS X 10.3.9 with extended attributes

Vitorio Machado v.machado at permanence-informatique.fr
Fri Feb 22 08:27:39 GMT 2008


@Rob:
Yes, rsync needs a newer version of autoconf than the one installed. 
But you can download and compile it without problem:

1) get the sources from 
http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
2) unpack the sources
3) Open a Terminal and run the command:
cd <drop the autoconf source folder here>
4) run the command:
./configure && make && sudo make install
This combo makes everything you need and puts the autoconf in the right 
place /usr/local
5) You need to say your system to use the newer autoconf by default.
- To do it once (the config will be active on the Terminal windows the 
command was entered until the window is closed, run the command:
export PATH=/usr/local/bin:$PATH

- To do this automatically for all Terminal windows opened (what I 
recommend), run the command:
echo "export PATH=/usr/local/bin:$PATH" >>.profile
Note that this won't do any changes in the current Terminal window. You 
have to close and reopen it or to apply both first and second method to 
have the right PATH.
6) You can verify the PATH running this command:
iLaG:~/Desktop/rsync-3.0.0pre10 patched lag$ echo $PATH
/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin
Don't worry if your PATH isn't exactly the same, what's important for 
autoconf is only that it begin with /usr/local/bin:

Anyways, I've put the binarie compiled on 10.3.9 PPC G3 that should 
work also on lower systems here 
http://shared.and.free.fr/rsync%203.0.0pre10%20patched%20v0.4.zip

@Matt: No, it makes an empty directory Src but refuses to list attrs of 
anything on it claiming that one element of the path is not a folder... 
What's true. Maybe I should be more flexible with alias in the name?

iLaG:~/Desktop/rsync-3.0.0pre10 patched lag$ sudo ./rsync -aHXN 
--fileflags /Volumes/Src /Volumes/Dst/80-rsync-test/
Password:
rsync: get_xattr_names: llistxattr("Src/.DS_Store",1024) failed: Not a 
directory (20)
rsync: get_xattr_names: llistxattr("Src/.Trashes",1024) failed: Not a 
directory (20)
rsync: get_xattr_names: llistxattr("Src/00-basic-permissions",1024) 
failed: Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/05-timestamps",1024) failed: 
Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/10-symlinks",1024) failed: Not 
a directory (20)
rsync: get_xattr_names: llistxattr("Src/15-symlink-ownership",1024) 
failed: Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/20-hardlinks",1024) failed: Not 
a directory (20)
rsync: get_xattr_names: llistxattr("Src/30-resource-forks",1024) 
failed: Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/40-finder-flags",1024) failed: 
Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/45-finder-locks",1024) failed: 
Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/50-creation-date",1024) failed: 
Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/60-bsd-flags",1024) failed: Not 
a directory (20)
rsync: get_xattr_names: llistxattr("Src/70-extended-attrs",1024) 
failed: Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/80-access-control-lists",1024) 
failed: Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/90-fifo",1024) failed: Not a 
directory (20)
rsync: get_xattr_names: llistxattr("Src/95-devices",1024) failed: Not a 
directory (20)
rsync: get_xattr_names: llistxattr("Src/99-combo-tests",1024) failed: 
Not a directory (20)
rsync: get_xattr_names: llistxattr("Src/bbouncer-vol",1024) failed: Not 
a directory (20)
rsync: get_xattr_names: llistxattr("Src/Desktop DB",1024) failed: Not a 
directory (20)
rsync: get_xattr_names: llistxattr("Src/Desktop DF",1024) failed: Not a 
directory (20)
rsync error: some files could not be transferred (code 23) at 
main.c(1060) [sender=3.0.0pre10]
iLaG:~/Desktop/rsync-3.0.0pre10 patched lag$

@Wayne: Thanks for the correction! I've another small warning: 
clientname.c line 268
			rprintf(FLOG, "%s: too short sockaddr_in6; length=%d\n",
				fn, ai->ai_addrlen);
Length is a %d (int) but ai->ai_addrlen is a ssize_t (long int).
In many CPUs int and long int are both 32 bits so this is not a big 
deal, but putting %ld instead of %d makes gcc happy :)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 4214 bytes
Desc: not available
Url : http://lists.samba.org/archive/rsync/attachments/20080222/ae770cc9/attachment.bin


More information about the rsync mailing list