Precisions:
If I run my patched rsync on 10.4 instead of 10.3, it's my function that returns an error: rsync: rsync_xal_set: lsetxattr("Src/60-bsd-flags/dir-with- flags","com.apple.FinderInfo") failed: Unknown error: -5000 (-5000)

And error -5000 means:
afpAccessDenied
-5000
User does not have the correct access to the file
Directory cannot be shared
Available in Mac OS X v10.0 and later.

In another hand, if I run rsync with options:

-aHXN --fileflags -> error
-aHN --fileflags -> no error
-aHX -> no error
-aHXN -> no error

So it's seems that there is a conflict between fileflags and my patch. I guess that both are trying to set things on the same file at the (almost) same time and one is blocking the other to do its work.

Otherwise backup bouncer test seems good:
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
  Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... ok
Verifying:        creation-date ... ok
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
  Sub-test:             on files ... FAIL
  Sub-test:       on directories ... FAIL
  Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
  Sub-test:             on files ... FAIL
  Sub-test:              on dirs ... FAIL
FAIL
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
  Sub-test:  xattrs + rsrc forks ... FAIL
  Sub-test:     lots of metadata ... FAIL
FAIL

I'm thinking about implementing real extended attributes. They are stored in "named forks" in HFS, no? http://developer.apple.com/documentation/Carbon/Reference/File_Manager/Reference/reference.html#/ /apple_ref/c/func/FSIterateForks should do the work, no?

Good Weekend,

Vitorio

Le 23 févr. 08 à 12:35, Vitorio Machado a écrit :

There is still a strange little bug:
Running
sudo ./rsync -aHXNvvvv --fileflags /Volumes/Src /Volumes/Dst/80- rsync-test
for the first time gives an error
rsync: failed to set times on "/Volumes/Dst/80-rsync-test/Src/60-bsd- flags/dir-with-flags": Operation not permitted (1) The dir dir-with-flags it's created and appears to have the good times: iLaG:~/Desktop/rsync-3.0.0pre10 patched lag$ /Developer/Tools/ GetFileInfo /Volumes/Dst/80-rsync-test/Src/60-bsd-flags/dir-with-flags directory: "/Volumes/Dst/80-rsync-test/Src/60-bsd-flags/dir-with- flags"
attributes: avbstcLinmed
created: 02/17/2008 21:58:36
modified: 02/17/2008 21:58:36
iLaG:~/Desktop/rsync-3.0.0pre10 patched lag$ /Developer/Tools/ GetFileInfo /Volumes/Src/60-bsd-flags/dir-with-flags
directory: "/Volumes/Src/60-bsd-flags/dir-with-flags"
attributes: avbstcLinmed
created: 02/17/2008 21:58:36
modified: 02/17/2008 21:58:36

If I rerun the rsync it makes no error. If I run rsync for the first time without -X option it makes no error neither. What's strange is that the time setting have nothing to do with my mods. What I've seen is that crtimes patch uses getattrlist/setattrlist that I'm avoiding because it doesn't have the same behaviour on 10.3 and 10.4 (man getattrlist doesn't even exist on 10.3, the function was undocumented). But I don't know why it doesn't bug running without -X, as crtimes.diff is still active. There is maybe a bug mixing Carbon and getattrlist calls.

I'm attaching the verbose log of the operations before the error. And the patch, of course!

Vitorio

recv_files(Src/60-bsd-flags/file-with-flags)
got file_sum
sys_llistxattr(Src/60-bsd-flags/.file-with-flags.CqNyUX, 0x2800400, 1024);
fsreffrompath(Src/60-bsd-flags/.file-with-flags.CqNyUX, 0xbfffcc00);
PWD=/Volumes/Dst/80-rsync-test
name=.file-with-flags.CqNyUX
list lenght=21, list content:
com.apple.FinderInfo
sys_lsetxattr(Src/60-bsd-flags/.file-with-flags.CqNyUX, com.apple.FinderInfo, 32);
value=
fsreffrompath(Src/60-bsd-flags/.file-with-flags.CqNyUX, 0xbfffca80);
PWD=/Volumes/Dst/80-rsync-test
name=.file-with-flags.CqNyUX
set modtime of Src/60-bsd-flags/.file-with-flags.CqNyUX to (1203281916) Sun Feb 17 21:58:36 2008 renaming Src/60-bsd-flags/.file-with-flags.CqNyUX to Src/60-bsd- flags/file-with-flags
touch_up_dirs: Src/60-bsd-flags (11)
set modtime of Src/60-bsd-flags to (1203281916) Sun Feb 17 21:58:36 2008
touch_up_dirs: Src/60-bsd-flags/dir-with-flags (22)
set modtime of Src/60-bsd-flags/dir-with-flags to (1203281916) Sun Feb 17 21:58:36 2008
recv_files(Src/60-bsd-flags/dir-with-flags)
sys_llistxattr(Src/60-bsd-flags/dir-with-flags, 0x2800400, 1024);
fsreffrompath(Src/60-bsd-flags/dir-with-flags, 0xbfffcc60);
PWD=/Volumes/Dst/80-rsync-test
name=dir-with-flags
list lenght=21, list content:
com.apple.FinderInfo
sys_lsetxattr(Src/60-bsd-flags/dir-with-flags, com.apple.FinderInfo, 32);
value=
fsreffrompath(Src/60-bsd-flags/dir-with-flags, 0xbfffcae0);
PWD=/Volumes/Dst/80-rsync-test
name=dir-with-flags
set modtime of Src/60-bsd-flags/dir-with-flags to (1203281916) Sun Feb 17 21:58:36 2008 rsync: failed to set times on "/Volumes/Dst/80-rsync-test/Src/60-bsd- flags/dir-with-flags": Operation not permitted (1)
recv_files(Src/70-extended-attrs)

<rsync10.3xattr_supportv0.5.diff>--
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

Reply via email to