After applying this patch, run these commands for a successful build:
./prepare-source
- ./configure
+ ./configure --enable-xattr-support
+ make
+
+or, if you want ACL support too:
+
+ ./prepare-source
+ ./configure --enable-acl-support --enable-xattr-support
make
--- old/backup.c
rxa->datum = ptr + name_len;
+
#ifdef HAVE_OSX_XATTRS
- if (strncmp(rxa->name, unique_prefix, upre_len) == 0) {
- rxa->name_len -= upre_len;
+ if (strncmp(rxa->name, UNIQUE_PREFIX, UPRE_LEN) == 0) {
+ rxa->name_len -= UPRE_LEN;
@@ -365,4 +384,103 @@ int set_xattr(const char *fname, const s
return rsync_xal_set(fname, lst + ndx); /* TODO: This needs to return 1 if no xattrs changed! */
}
+static item_list rsync_xal_l = EMPTY_ITEM_LIST;
+
+#ifdef HAVE_OSX_XATTRS
-+static char unique_prefix[] = "user.0S%."; /* OSX */
-+static int upre_len = sizeof unique_prefix - 1;
++#define UNIQUE_PREFIX "user.0S%." /* OSX */
++#define UPRE_LEN (sizeof UNIQUE_PREFIX - 1)
+#endif
+
+/* ------------------------------------------------------------------------- */
+#ifdef HAVE_OSX_XATTRS
+ if (strncmp(rxa->name, "user.", 5) != 0
+ && strncmp(rxa->name, "system.", 7) != 0) {
-+ write_int(f, rxa->name_len + upre_len);
++ write_int(f, rxa->name_len + UPRE_LEN);
+ write_int(f, rxa->datum_len);
-+ write_buf(f, unique_prefix, upre_len);
++ write_buf(f, UNIQUE_PREFIX, UPRE_LEN);
+ } else
+#endif
+ {
+ rxa->name = ptr;
+ rxa->datum = ptr + name_len;
+#ifdef HAVE_OSX_XATTRS
-+ if (strncmp(rxa->name, unique_prefix, upre_len) == 0) {
-+ rxa->name_len -= upre_len;
-+ memmove(rxa->name, rxa->name + upre_len, rxa->name_len);
++ if (strncmp(rxa->name, UNIQUE_PREFIX, UPRE_LEN) == 0) {
++ rxa->name_len -= UPRE_LEN;
++ memmove(rxa->name, rxa->name + UPRE_LEN, rxa->name_len);
+ }
+#endif
+ }