Backing up resource forks

Wayne Davison wayned at
Sun Mar 13 23:42:15 MDT 2011

On Fri, Mar 11, 2011 at 8:05 AM, Mike Bombich <mike at> wrote:

> FWIW, I updated just recently with a
> minor bug fix to my HFS+ compression patch (preserving resource forks when
> --fileflags was not used).

I looked over your patch to see about getting it adapted for 3.0.8.  While
doing that I made some changes and fixes for various things.  Some notes on
your diff:

   - Firstly, I made use of some of the fixes in your patch for the
   fileflags and crtimes patches -- thanks!
   - Your patch set an ITEM_REPORT_XATTR flag in a FLAG_* variable, which
   really set FLAG_HLINK_DONE, which is potentially harmful for the code's
   ability to retrieve values for a file's data.  While it would have been
   possible to change this to a new flag, I instead changed the xattr idiom to
   pass the compressed-data xattr as a normal abbreviated entry, but with the
   mtime in the checksum.  This lets the code work normally to figure out if
   the xattr field is identical or not (and incorporates the size into the
   check, for added safety).
   - I got rid of the compat_flag changes in compat.c, since they are not
   needed and are potentially harmful for forward compatibility (if I should
   ever use that compatibility bit in a future release).  Instead, the code in
   options.c dies if the option is not available.
   - The code for checking the destination file system's compression support
   was moved to main.c (since that is what calls it).
   - The repeating code that tweaks the stat-struct was moved into x_stat(),
   so it's in just one spot.
   - I fixed some issues that caused the "make check" tests to fail.
   - I changed your rsync.1 change into an rsync.yo change (since the
   manpages are generated from the yodl files).
   - I made some style changes, getting rid of trailing whitespace, using /*
   ... */ for comments, etc.
   - I checked in the result into the patches git repo as

If you would test the result, I'd appreciate it.  I verified that it
compiles and passes the testsuite, but I don't currently have any compressed
files to test it against.

To snag the code, either grab things from git or download a tar file of the
resulting code.  The git method:

git clone git://
git clone git:// rsync/patches
cd rsync
git checkout b3.0.x
cd patches
git checkout b3.0.x
cd ..

Then just follow the directions in the patches/hfs-compression.diff for
applying the 3 patches and compiling.

Or you can snag this tar file which has all the patches applied:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the rsync mailing list