Making rsync compile under Mac OS X 10.3.9 with extended attributes

Robert DuToit rdutoit at capecod.net
Sat Jan 26 02:38:57 GMT 2008


Hi Again,
I reinstalled developer tools again on OS10.3.2 and ran make again and  
this time and saw more action but a lot of errors such as the one  
mentioned by Vitorio:

  error: `ACL_TYPE_DEFAULT' undeclared (first use in this function)

Thanks, Rob D

Here is the whole output from make:

     rsync 3.0.0pre8 configuration successful

Robert-DuToits-Computer:~/rsync-3.0.0pre8 robertdutoit$ make
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
flist.c -o flist.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
rsync.c -o rsync.o
rsync.c: In function `set_file_attrs':
rsync.c:342: warning: unused parameter `fnamecmp'
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
generator.c -o generator.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
receiver.c -o receiver.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
cleanup.c -o cleanup.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
sender.c -o sender.o
sender.c: In function `write_ndx_and_attrs':
sender.c:150: warning: unused parameter `fname'
sender.c:150: warning: unused parameter `file'
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
exclude.c -o exclude.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
util.c -o util.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
main.c -o main.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
checksum.c -o checksum.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
match.c -o match.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
syscall.c -o syscall.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
log.c -o log.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
backup.c -o backup.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
options.c -o options.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
io.c -o io.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
compat.c -o compat.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
hlink.c -o hlink.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
token.c -o token.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
uidlist.c -o uidlist.o
uidlist.c: In function `match_uid':
uidlist.c:210: warning: comparison between signed and unsigned
uidlist.c: In function `match_gid':
uidlist.c:222: warning: comparison between signed and unsigned
uidlist.c:226: warning: comparison between signed and unsigned
uidlist.c: In function `add_uid':
uidlist.c:249: warning: comparison between signed and unsigned
uidlist.c: In function `add_gid':
uidlist.c:267: warning: comparison between signed and unsigned
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
socket.c -o socket.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
hashtable.c -o hashtable.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
fileio.c -o fileio.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
batch.c -o batch.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
clientname.c -o clientname.o
clientname.c: In function `compare_addrinfo_sockaddr':
clientname.c:269: warning: int format, size_t arg (arg 4)
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
chmod.c -o chmod.o
gcc -std=gnu99 -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt  -c  
acls.c -o acls.o
In file included from acls.c:23:
lib/sysacls.h:288: error: parse error before "the_acl"
lib/sysacls.h:289: error: parse error before "entry_d"
lib/sysacls.h:290: error: parse error before "entry"
lib/sysacls.h:291: error: parse error before "sys_acl_get_file"
lib/sysacls.h:291: error: parse error before "acl_type_t"
lib/sysacls.h:291: warning: type defaults to `int' in declaration of  
`sys_acl_get_file'
lib/sysacls.h:291: warning: data definition has no type or storage class
lib/sysacls.h:292: error: parse error before "sys_acl_get_fd"
lib/sysacls.h:292: warning: type defaults to `int' in declaration of  
`sys_acl_get_fd'
lib/sysacls.h:292: warning: data definition has no type or storage class
lib/sysacls.h:293: error: parse error before "sys_acl_init"
lib/sysacls.h:293: warning: type defaults to `int' in declaration of  
`sys_acl_init'
lib/sysacls.h:293: warning: data definition has no type or storage class
lib/sysacls.h:294: error: parse error before '*' token
lib/sysacls.h:295: error: parse error before "entry"
lib/sysacls.h:296: error: parse error before "entry"
lib/sysacls.h:297: error: parse error before "theacl"
lib/sysacls.h:298: error: parse error before "acl_type_t"
lib/sysacls.h:299: error: parse error before "acl_t"
lib/sysacls.h:301: error: parse error before "the_acl"
acls.c:81: error: parse error before "acl_t"
acls.c:81: warning: no semicolon at end of struct or union
acls.c:82: warning: type defaults to `int' in declaration of `acl_duo'
acls.c:82: warning: data definition has no type or storage class
acls.c:93: error: parse error before "type"
acls.c: In function `str_acl_type':
acls.c:95: error: `type' undeclared (first use in this function)
acls.c:95: error: (Each undeclared identifier is reported only once
acls.c:95: error: for each function it appears in.)
acls.c:95: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:96: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: At top level:
acls.c:242: error: parse error before "sacl"
acls.c: In function `unpack_smb_acl':
acls.c:245: error: `acl_entry_t' undeclared (first use in this function)
acls.c:245: error: parse error before "entry"
acls.c:250: error: `sacl' undeclared (first use in this function)
acls.c:250: error: `ACL_FIRST_ENTRY' undeclared (first use in this  
function)
acls.c:250: error: `entry' undeclared (first use in this function)
acls.c:252: error: `ACL_NEXT_ENTRY' undeclared (first use in this  
function)
acls.c:253: error: `acl_tag_t' undeclared (first use in this function)
acls.c:253: error: parse error before "tag_type"
acls.c:257: error: `tag_type' undeclared (first use in this function)
acls.c:304: error: `racl' undeclared (first use in this function)
acls.c: At top level:
acls.c:367: error: parse error before '*' token
acls.c: In function `pack_smb_acl':
acls.c:375: error: `acl_entry_t' undeclared (first use in this function)
acls.c:375: error: parse error before "entry"
acls.c:377: error: `smb_acl' undeclared (first use in this function)
acls.c:377: error: `racl' undeclared (first use in this function)
acls.c:387: warning: left-hand operand of comma expression has no effect
acls.c:392: error: `entry' undeclared (first use in this function)
acls.c: At top level:
acls.c:440: error: parse error before "acl_type_t"
acls.c: In function `find_matching_rsync_acl':
acls.c:444: error: `type' undeclared (first use in this function)
acls.c:444: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:445: error: `racl_list' undeclared (first use in this function)
acls.c:454: error: `racl' undeclared (first use in this function)
acls.c: At top level:
acls.c:465: error: parse error before "acl_type_t"
acls.c: In function `get_rsync_acl':
acls.c:467: error: `acl_t' undeclared (first use in this function)
acls.c:467: error: parse error before "sacl"
acls.c:505: error: `sacl' undeclared (first use in this function)
acls.c:505: error: `fname' undeclared (first use in this function)
acls.c:505: error: `type' undeclared (first use in this function)
acls.c:506: error: `racl' undeclared (first use in this function)
acls.c:514: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:515: error: `mode' undeclared (first use in this function)
acls.c: In function `get_acl':
acls.c:529: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:537: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: At top level:
acls.c:576: error: parse error before "acl_type_t"
acls.c: In function `send_rsync_acl':
acls.c:579: error: `racl' undeclared (first use in this function)
acls.c:579: error: `type' undeclared (first use in this function)
acls.c:579: error: `racl_list' undeclared (first use in this function)
acls.c:582: error: `f' undeclared (first use in this function)
acls.c: In function `send_acl':
acls.c:629: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:635: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: At top level:
acls.c:705: error: parse error before "acl_type_t"
acls.c: In function `recv_rsync_acl':
acls.c:708: error: `duo_item' undeclared (first use in this function)
acls.c:710: error: `f' undeclared (first use in this function)
acls.c:712: error: `racl_list' undeclared (first use in this function)
acls.c:714: error: `type' undeclared (first use in this function)
acls.c:722: error: parse error before ')' token
acls.c: In function `receive_acl':
acls.c:761: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:764: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: At top level:
acls.c:767: error: parse error before "acl_type_t"
acls.c: In function `cache_rsync_acl':
acls.c:771: error: `racl' undeclared (first use in this function)
acls.c:773: error: `type' undeclared (first use in this function)
acls.c:773: error: `racl_list' undeclared (first use in this function)
acls.c:774: error: `new_duo' undeclared (first use in this function)
acls.c:776: error: parse error before ')' token
acls.c: In function `cache_acl':
acls.c:790: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:794: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: At top level:
acls.c:876: error: parse error before "acl_duo"
acls.c: In function `set_rsync_acl':
acls.c:879: error: `type' undeclared (first use in this function)
acls.c:880: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c:880: error: `duo_item' undeclared (first use in this function)
acls.c:888: error: `fname' undeclared (first use in this function)
acls.c:920: error: `sxp' undeclared (first use in this function)
acls.c:925: error: `mode' undeclared (first use in this function)
acls.c:939: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c: In function `set_acl':
acls.c:967: error: `duo_item' undeclared (first use in this function)
acls.c:974: error: `ACL_TYPE_EXTENDED' undeclared (first use in this  
function)
acls.c:992: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
acls.c: In function `match_racl_ids':
acls.c:1006: error: `duo_item' undeclared (first use in this function)
acls.c: In function `default_perms_for_dir':
acls.c:1029: error: `acl_t' undeclared (first use in this function)
acls.c:1029: error: parse error before "sacl"
acls.c:1037: error: `sacl' undeclared (first use in this function)
acls.c:1037: error: `ACL_TYPE_DEFAULT' undeclared (first use in this  
function)
make: *** [acls.o] Error 1


On Jan 25, 2008, at 7:56 PM, Robert DuToit wrote:

> Hi all,
> Somewhat along the same lines, I wanted to see if rsync 3 would work  
> on Mac OS10.3X so I made a test partition and installed 10.3.2 on it  
> ( no updates around). I then installed xcode 1.5 and with a fresh  
> copy of rsync 3.0.0pre8 and tried ./configure which worked fine.  
> When I tried "make" however I got the following error:
>
> Robert-DuToits-Computer:~/rsync-3.0.0pre8 robertdutoit$ make
> perl ./mkproto.pl ./*.c ./lib/compat.c
> Failed to create rounding.h!
> make: *** [rounding.h] Error 1
>
>
> Does anyone have an idea how to make this work or if anyone has had  
> success with OS10.3X and rsync 3?
>
> Thanks,  Rob DuToit
>
>
>
>
> On Jan 25, 2008, at 11:45 AM, Vitorio Machado wrote:
>
>> 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?--
>> To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
>> Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
>
> --
> To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
> Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html



More information about the rsync mailing list