Thanks Wayne and everybody, This is a huge boost to have a modern rsync for OSX. We're all grateful. Rob D PS I did notice that we lost the bsd flags test in 3.0. It was ok in pre10.... thanks again bbouncer 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 ... FAIL Verifying: extended-attrs ... Sub-test: on files ... ok Sub-test: on directories ... ok Sub-test: on symlinks ... ok ok Verifying: access-control-lists ... Sub-test: on files ... ok Sub-test: on dirs ... ok ok Verifying: fifo ... FAIL Verifying: devices ... FAIL Verifying: combo-tests ... Sub-test: xattrs + rsrc forks ... ok Sub-test: lots of metadata ... ok
On Sat, Mar 01, 2008 at 06:10:21PM -0500, Robert DuToit wrote:> PS I did notice that we lost the bsd flags test in 3.0.Hmm ... two items: 1. Tweak the rsync.h file to add the *_APPEND flags back to the immutable defines (I had thought they weren't needed, but apparently that is not the case): #define USR_IMMUTABLE (UF_IMMUTABLE|UF_NOUNLINK|UF_APPEND) #define SYS_IMMUTABLE (SF_IMMUTABLE|SF_NOUNLINK|SF_APPEND) 2. Add the --force-change option to your rsync invocation so that it will override immutable flags on destination files/dirs (since that is no longer the default). That should get things back to where they were. ..wayne..
On Sat, Mar 01, 2008 at 06:10:21PM -0500, Robert DuToit wrote:> Verifying: bsd-flags ... FAIL > Verifying: fifo ... FAIL > Verifying: devices ... FAILI'm attaching a patch that adds the *_APPEND changes I mentioned and also a fix for the sending of devices and special files. ..wayne.. -------------- next part -------------- --- a/rsync.h +++ b/rsync.h @@ -469,8 +469,8 @@ typedef unsigned int size_t; #ifndef SF_NOUNLINK #define SF_NOUNLINK 0 #endif -#define USR_IMMUTABLE (UF_IMMUTABLE|UF_NOUNLINK) -#define SYS_IMMUTABLE (SF_IMMUTABLE|SF_NOUNLINK) +#define USR_IMMUTABLE (UF_IMMUTABLE|UF_NOUNLINK|UF_APPEND) +#define SYS_IMMUTABLE (SF_IMMUTABLE|SF_NOUNLINK|SF_APPEND) #define ALL_IMMUTABLE (USR_IMMUTABLE|SYS_IMMUTABLE) #define ST_FLAGS(st) (st.st_flags) #else --- a/xattrs.c +++ b/xattrs.c @@ -282,6 +282,10 @@ int get_xattr(const char *fname, stat_x *sxp) { sxp->xattr = new(item_list); *sxp->xattr = empty_xattr; + + if (IS_SPECIAL(sxp->st.st_mode) || IS_DEVICE(sxp->st.st_mode)) + return 0; + if (rsync_xal_get(fname, sxp->xattr) < 0) { free_xattr(sxp); return -1; @@ -799,6 +803,11 @@ int set_xattr(const char *fname, const struct file_struct *file, return -1; } + if (IS_SPECIAL(sxp->st.st_mode) || IS_DEVICE(sxp->st.st_mode)) { + errno = ENOTSUP; + return -1; + } + ndx = F_XATTR(file); return rsync_xal_set(fname, lst + ndx, fnamecmp, sxp); }
On Mar 2, 2008, at 10:13 AM, Wayne Davison wrote:> On Sun, Mar 02, 2008 at 07:40:32AM -0500, Robert DuToit wrote: >> Indeed - it worked fine. I had forgotten that you changed the default >> behavior and that --force-schg would override that too. Thanks! > > In the final patch for 3.0.0 the option names are --force-change (to > force both user and system), --force-uchange (for just user) and > --force-schange (for just system).Hi Wayne, I did a lot of tests on Tiger and Leopard with this good patch and it seems it doesn't need the --force-change options.The bbouncer test comes up clean with or without it. Is that true? Or should we use those option just in case? Should we have the option? Rob PS Loving it!> > >> Also, concerning fifo and devices, if I used Mike Bombich's patch for >> those- I think you said there was a problem with that - it works but >> is there potential for trouble using it as is? > > The problem is that the change would ignore EPERM errors on files that > should really be reported. The attached patch should fix things for > you > (I get all "OK"s out of bbouncer after applying this). The patch > includes the *_APPEND change in rsync.h that I mentioned in my prior > email, so weed that out if you've already applied that. > > ..wayne.. > <fileflags-fixes.diff>