How to compile Rsync with acl support on Cygwin

Wayne Davison wayned at
Thu Mar 16 21:58:30 GMT 2006

On Thu, Mar 16, 2006 at 11:21:49AM -0500, Peter Olivia wrote:
> I have since tested it using the 2.6.6 and 2.6.7 code successfully.  I
> was able to rsync acls intact to and from my Linux server.

Cool.  I've checked in your suggested change to the CVS version of the
ACL patch, so now Cygwin will choose to use Solaris ACLs.  (You can also
grab this via the latest "nightly" tar file, if you like.)

> 1) The only issue I've seen so far with rsync is that setuid, setgid and
> sticky bits don't get restored when restoring to windows with --acls.

The acls.diff patch in released rsync versions has the chmod() call
prior to the ACL-setting call, so it sounds like this latter action
causes the special mode bits to be cleared.  This is not something that
Solaris does, so perhaps this behavior should be flagged as a bug with
the Cygwin folks?

The latest version of the acls.diff patch in CVS has the chmod() after
the ACL-setting call, and I've just enhanced the code to work with a
system where the special mode bits get cleared (though I didn't have an
easy way to test this yet).  I also fixed a few compiler warnings that
were output by a Solaris build.

> 2) I also had to use the old way (autoconf and autoheader) with 2.6.7
> as the ./prepare-source did not regenerate the configure file

That script just uses a makefile to call the appropriate commands (such
as autoconf and autoheader) if the date of the generated file is older
than the date of the source file.  Note that if you applied the
acls.diff patch from the 2.6.7 tar file, it's not required to run the
prepare-source script (it won't do anything if you do, so it doesn't
hurt) because the patch in a release tar now contains the changes to
the configure script, proto.h, etc.


More information about the rsync mailing list