2.6.9 w/ acl, xattr, and fake-super support?
Wesley W. Terpstra
wesley at terpstra.ca
Fri Nov 16 10:45:07 GMT 2007
On Nov 16, 2007, at 10:08 AM, Daniel Maher wrote:
> Thank you for your reply. My exact sequence is as follows:
> $ tar -xzf rsync-2.6.9.tar.gz
> $ cd rsync-2.6.9
> $ patch -p1 < patches/acls.diff
> $ patch -p1 < patches/xattrs.diff
> $ patch -p1 < patches/fake-super.diff
Ok. I see now what's wrong. Somehow parts of the xattr patch are also
in the fake-super patch. At any rate, the config.h.in and configure
are both auto generated. Just run:
to create clean versions of them. The rsync.1 is just the manpage.
You can probably live without it.
The only "problem file" is then the proto.h. However, a quick
inspection shows that you just need to add the lines:
+ int get_stat_xattr(const char *fname, int fd, STRUCT_STAT *fst,
+ int set_stat_xattr(const char *fname, struct file_struct *file);
+ int x_stat(const char *fname, STRUCT_STAT *fst, STRUCT_STAT *xst);
+ int x_lstat(const char *fname, STRUCT_STAT *fst, STRUCT_STAT *xst);
+ int x_fstat(int fd, STRUCT_STAT *fst, STRUCT_STAT *xst);
I suspect the problem is that proto.h and rsync.1 are also both auto-
generated. Whoever prepared the patch probably just forgot to
recreate these files between patches when creating the fake-super.patch.
When I compile after adding these lines,
./configure --enable-xattr-support --enable-acl-support
I get (on osx) a few unused variable warnings (which I confirmed are
harmless), some minor signedness warnings (again harmless), and an
uninitialized variable (which only occurs in an error case where the
I worry, though, that this won't solve your problem:
> Internal error: wrong write used in receiver.
> rsync error: protocol incompatibility (code 2) at io.c(1204)
The missing prototypes should only matter on non-intel machines. I'd
give you the copy of 2.6.9 which I was using, but I deleted it when
3.0.0pre1 came out. :-( Just to make sure: you have the same patched
rsync on both sender and receiver, right? If you use -X or -A they
Also, if you are using osx (not linux), you must NOT enable acl
Prior to v3, ACL support did not exist on osx. Even though the patch
is applied, you still don't enable it.
Hope this helps!
More information about the rsync