From: Wayne Davison Date: Tue, 17 Jan 2006 02:55:29 +0000 (+0000) Subject: Changed f_name() to new syntax. X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/commitdiff_plain/bd68c3c2ed721c5cac5abd3602cba9199f678d62?hp=93ca4d27d3d0806c3085aef4dbb331ba451b3dc4 Changed f_name() to new syntax. --- diff --git a/ODBC-dblog.diff b/ODBC-dblog.diff index 7ba9fcc..68b0aaa 100644 --- a/ODBC-dblog.diff +++ b/ODBC-dblog.diff @@ -68,9 +68,9 @@ See the file "instructions" (after applying this patch) for more info. } else { rprintf(FLOG, "rsync %s %s from %s (%s)\n", am_sender ? "on" : "to", ---- orig/configure.in 2006-01-14 08:14:30 +--- orig/configure.in 2006-01-15 14:52:33 +++ configure.in 2005-09-24 18:38:47 -@@ -546,6 +546,12 @@ if test x"$with_included_popt" != x"yes" +@@ -552,6 +552,12 @@ if test x"$with_included_popt" != x"yes" AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes]) fi @@ -652,7 +652,7 @@ See the file "instructions" (after applying this patch) for more info. + return; + + if (db_handle != NULL) { -+ strFileNamePtr = f_name(file); ++ strFileNamePtr = f_name(file, NULL); + if (am_sender && file->dir.root) { + pathjoin(strFileName, sizeof strFileName, + file->dir.root, strFileNamePtr); @@ -1046,9 +1046,9 @@ See the file "instructions" (after applying this patch) for more info. FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors) FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable) FN_LOCAL_BOOL(lp_list, list) ---- orig/log.c 2006-01-14 08:14:30 +--- orig/log.c 2006-01-17 02:16:40 +++ log.c 2005-09-23 16:01:13 -@@ -88,7 +88,7 @@ struct { +@@ -87,7 +87,7 @@ struct { /* * Map from rsync error code to name, or return NULL. */ @@ -1057,7 +1057,7 @@ See the file "instructions" (after applying this patch) for more info. { int i; for (i = 0; rerr_names[i].name; i++) { ---- orig/main.c 2006-01-14 08:14:30 +--- orig/main.c 2006-01-15 14:46:15 +++ main.c 2005-09-23 16:01:22 @@ -159,6 +159,9 @@ static void handle_stats(int f) @@ -1069,7 +1069,7 @@ See the file "instructions" (after applying this patch) for more info. if (f == -1 || !am_sender) return; } ---- orig/receiver.c 2006-01-14 08:14:31 +--- orig/receiver.c 2006-01-14 20:27:09 +++ receiver.c 2006-01-14 08:27:51 @@ -174,6 +174,10 @@ static int get_tmpname(char *fnametmp, c @@ -1213,7 +1213,7 @@ See the file "instructions" (after applying this patch) for more info. } if (!phase) { SIVAL(numbuf, 0, i); ---- orig/sender.c 2006-01-14 08:14:31 +--- orig/sender.c 2006-01-14 20:27:10 +++ sender.c 2005-09-23 16:01:44 @@ -352,6 +352,9 @@ void send_files(struct file_list *flist, diff --git a/acls.diff b/acls.diff index 5345511..f133f26 100644 --- a/acls.diff +++ b/acls.diff @@ -760,7 +760,7 @@ ACLs to a non-ACL-supporting disk should complain. + char *fname; + if (!preserve_acls || S_ISLNK(file->mode)) + return; -+ fname = f_name(file); ++ fname = f_name(file, NULL); + for (type = &types[0]; + type < &types[0] + sizeof types / sizeof types[0] + && (*type == SMB_ACL_TYPE_ACCESS || S_ISDIR(file->mode)); @@ -1192,7 +1192,7 @@ ACLs to a non-ACL-supporting disk should complain. free(file); if (verbose > 1) { ---- orig/configure.in 2006-01-14 08:14:30 +--- orig/configure.in 2006-01-15 14:52:33 +++ configure.in 2004-08-19 19:53:27 @@ -478,6 +478,11 @@ if test x"$ac_cv_func_strcasecmp" = x"no AC_CHECK_LIB(resolv, strcasecmp) @@ -1206,7 +1206,7 @@ ACLs to a non-ACL-supporting disk should complain. dnl At the moment we don't test for a broken memcmp(), because all we dnl need to do is test for equality, not comparison, and it seems that dnl every platform has a memcmp that can do at least that. -@@ -744,6 +749,77 @@ AC_SUBST(OBJ_RESTORE) +@@ -750,6 +755,77 @@ AC_SUBST(OBJ_RESTORE) AC_SUBST(CC_SHOBJ_FLAG) AC_SUBST(BUILD_POPT) @@ -1284,9 +1284,9 @@ ACLs to a non-ACL-supporting disk should complain. AC_CONFIG_FILES([Makefile lib/dummy zlib/dummy popt/dummy shconfig]) AC_OUTPUT ---- orig/flist.c 2006-01-14 08:14:30 +--- orig/flist.c 2006-01-17 02:15:59 +++ flist.c 2005-07-29 02:49:06 -@@ -960,6 +960,8 @@ static struct file_struct *send_file_nam +@@ -958,6 +958,8 @@ static struct file_struct *send_file_nam file = make_file(fname, flist, f == -2 ? SERVER_FILTERS : ALL_FILTERS); if (!file) return NULL; @@ -1295,7 +1295,7 @@ ACLs to a non-ACL-supporting disk should complain. maybe_emit_filelist_progress(flist->count + flist_count_offset); -@@ -968,6 +970,10 @@ static struct file_struct *send_file_nam +@@ -966,6 +968,10 @@ static struct file_struct *send_file_nam if (file->basename[0]) { flist->files[flist->count++] = file; send_file_entry(file, f, base_flags); @@ -1306,7 +1306,7 @@ ACLs to a non-ACL-supporting disk should complain. } return file; } -@@ -1322,6 +1328,8 @@ struct file_list *recv_file_list(int f) +@@ -1320,6 +1326,8 @@ struct file_list *recv_file_list(int f) flags |= read_byte(f) << 8; file = receive_file_entry(flist, flags, f); @@ -1324,7 +1324,7 @@ ACLs to a non-ACL-supporting disk should complain. if (f >= 0) { /* Now send the uid/gid list. This was introduced in * protocol version 15 */ ---- orig/generator.c 2006-01-14 08:14:30 +--- orig/generator.c 2006-01-14 20:27:09 +++ generator.c 2006-01-14 08:17:25 @@ -890,6 +890,10 @@ static void recv_generator(char *fname, if (set_perms(fname, file, statret ? NULL : &st, 0) @@ -4734,9 +4734,9 @@ ACLs to a non-ACL-supporting disk should complain. if (verbose > 1 && flags & PERMS_REPORT) { enum logcode code = daemon_log_format_has_i || dry_run ? FCLIENT : FINFO; ---- orig/rsync.h 2006-01-14 08:14:31 +--- orig/rsync.h 2006-01-14 20:27:10 +++ rsync.h 2005-07-29 02:25:55 -@@ -646,6 +646,44 @@ struct stats { +@@ -647,6 +647,44 @@ struct stats { #include "lib/permstring.h" #include "lib/addrinfo.h" diff --git a/atimes.diff b/atimes.diff index 7ca9204..4dad92d 100644 --- a/atimes.diff +++ b/atimes.diff @@ -15,8 +15,8 @@ command before "make": rprintf(FINFO, "flist->length=%.0f\n", (double) fptr[i]->length); rprintf(FINFO, "flist->mode=%#o\n", (int) fptr[i]->mode); ---- orig/flist.c 2006-01-14 08:14:30 -+++ flist.c 2006-01-14 08:19:03 +--- orig/flist.c 2006-01-17 02:15:59 ++++ flist.c 2006-01-17 02:42:04 @@ -50,6 +50,7 @@ extern int preserve_perms; extern int preserve_devices; extern int preserve_uid; @@ -25,7 +25,7 @@ command before "make": extern int relative_paths; extern int implied_dirs; extern int copy_links; -@@ -140,16 +141,18 @@ static void list_file_entry(struct file_ +@@ -139,16 +140,18 @@ static void list_file_entry(struct file_ #ifdef SUPPORT_LINKS if (preserve_links && S_ISLNK(f->mode)) { @@ -34,7 +34,7 @@ command before "make": perms, (double)f->length, timestring(f->modtime), + timestring(f->atime), - f_name(f), f->u.link); + f_name(f, NULL), f->u.link); } else #endif { @@ -43,10 +43,10 @@ command before "make": perms, (double)f->length, timestring(f->modtime), + timestring(f->atime), - f_name(f)); + f_name(f, NULL)); } } -@@ -311,6 +314,7 @@ void send_file_entry(struct file_struct +@@ -310,6 +313,7 @@ void send_file_entry(struct file_struct { unsigned short flags; static time_t modtime; @@ -54,7 +54,7 @@ command before "make": static mode_t mode; static int64 dev; static dev_t rdev; -@@ -326,7 +330,7 @@ void send_file_entry(struct file_struct +@@ -325,7 +329,7 @@ void send_file_entry(struct file_struct if (!file) { write_byte(f, 0); @@ -63,7 +63,7 @@ command before "make": dev = 0, rdev = makedev(0, 0); rdev_major = 0; uid = 0, gid = 0; -@@ -375,6 +379,12 @@ void send_file_entry(struct file_struct +@@ -374,6 +378,12 @@ void send_file_entry(struct file_struct flags |= XMIT_SAME_TIME; else modtime = file->modtime; @@ -76,7 +76,7 @@ command before "make": #ifdef SUPPORT_HARD_LINKS if (file->link_u.idev) { -@@ -428,6 +438,8 @@ void send_file_entry(struct file_struct +@@ -427,6 +437,8 @@ void send_file_entry(struct file_struct write_int(f, modtime); if (!(flags & XMIT_SAME_MODE)) write_int(f, to_wire_mode(mode)); @@ -85,7 +85,7 @@ command before "make": if (preserve_uid && !(flags & XMIT_SAME_UID)) { if (!numeric_ids) add_uid(uid); -@@ -495,6 +507,7 @@ static struct file_struct *receive_file_ +@@ -494,6 +506,7 @@ static struct file_struct *receive_file_ unsigned short flags, int f) { static time_t modtime; @@ -93,7 +93,7 @@ command before "make": static mode_t mode; static int64 dev; static dev_t rdev; -@@ -513,7 +526,7 @@ static struct file_struct *receive_file_ +@@ -512,7 +525,7 @@ static struct file_struct *receive_file_ struct file_struct *file; if (!flist) { @@ -102,7 +102,7 @@ command before "make": dev = 0, rdev = makedev(0, 0); rdev_major = 0; uid = 0, gid = 0; -@@ -569,6 +582,8 @@ static struct file_struct *receive_file_ +@@ -568,6 +581,8 @@ static struct file_struct *receive_file_ modtime = (time_t)read_int(f); if (!(flags & XMIT_SAME_MODE)) mode = from_wire_mode(read_int(f)); @@ -111,7 +111,7 @@ command before "make": if (preserve_uid && !(flags & XMIT_SAME_UID)) uid = (uid_t)read_int(f); -@@ -619,6 +634,7 @@ static struct file_struct *receive_file_ +@@ -618,6 +633,7 @@ static struct file_struct *receive_file_ file->flags = 0; file->modtime = modtime; @@ -119,7 +119,7 @@ command before "make": file->length = file_length; file->mode = mode; file->uid = uid; -@@ -866,6 +882,7 @@ struct file_struct *make_file(char *fnam +@@ -864,6 +880,7 @@ struct file_struct *make_file(char *fnam file->flags = flags; file->modtime = st.st_mtime; @@ -127,7 +127,7 @@ command before "make": file->length = st.st_size; if (chmod_modes && am_sender && (S_ISREG(st.st_mode) || S_ISDIR(st.st_mode))) file->mode = tweak_mode(st.st_mode, chmod_modes); ---- orig/generator.c 2006-01-14 08:14:30 +--- orig/generator.c 2006-01-14 20:27:09 +++ generator.c 2005-12-15 23:05:32 @@ -44,6 +44,7 @@ extern int preserve_uid; extern int preserve_gid; @@ -186,7 +186,7 @@ command before "make": if (verbose > 1) rprintf(FINFO, "%s is newer\n", fname); return; ---- orig/log.c 2006-01-14 08:14:30 +--- orig/log.c 2006-01-17 02:16:40 +++ log.c 2005-12-15 23:05:44 @@ -38,6 +38,7 @@ extern int module_id; extern int msg_fd_out; @@ -196,7 +196,7 @@ command before "make": extern int log_format_has_i; extern int log_format_has_o_or_i; extern int daemon_log_format_has_o_or_i; -@@ -517,11 +518,14 @@ static void log_formatted(enum logcode c +@@ -542,11 +543,14 @@ static void log_formatted(enum logcode c n[4] = !(iflags & ITEM_REPORT_TIME) ? '.' : !preserve_times || IS_DEVICE(file->mode) || S_ISLNK(file->mode) ? 'T' : 't'; @@ -309,7 +309,7 @@ command before "make": } change_uid = am_root && preserve_uid && st->st_uid != file->uid; ---- orig/rsync.h 2006-01-14 08:14:31 +--- orig/rsync.h 2006-01-14 20:27:10 +++ rsync.h 2005-07-28 00:04:51 @@ -54,6 +54,7 @@ #define XMIT_HAS_IDEV_DATA (1<<9) @@ -335,7 +335,7 @@ command before "make": #define ITEM_REPORT_CHECKSUM (1<<1) #define ITEM_REPORT_SIZE (1<<2) #define ITEM_REPORT_TIME (1<<3) -@@ -516,6 +519,7 @@ struct file_struct { +@@ -517,6 +520,7 @@ struct file_struct { struct hlink *links; } link_u; time_t modtime; diff --git a/early-checksum.diff b/early-checksum.diff index 3c8108e..9341093 100644 --- a/early-checksum.diff +++ b/early-checksum.diff @@ -8,7 +8,7 @@ to its checksum pass during its normal find-the-different-files pass. I have benchmarked this a little, and it appears to slow things down for a local copy, so the old algorithm is used for local copies. ---- orig/flist.c 2005-11-10 16:58:36 +--- orig/flist.c 2006-01-17 02:15:59 +++ flist.c 2005-09-16 16:41:25 @@ -36,6 +36,7 @@ extern int am_daemon; extern int am_sender; @@ -18,14 +18,14 @@ for a local copy, so the old algorithm is used for local copies. extern int module_id; extern int ignore_errors; extern int numeric_ids; -@@ -707,6 +708,16 @@ static struct file_struct *receive_file_ +@@ -706,6 +707,16 @@ static struct file_struct *receive_file_ sum = empty_sum; } read_buf(f, sum, checksum_len); + if (pre_checksum) { + char sum2[MD4_SUM_LENGTH]; + STRUCT_STAT st; -+ char *fname = f_name(file); ++ char *fname = f_name(file, NULL); + if (stat(fname, &st) == 0 && st.st_size == file_length) { + file_checksum(fname, sum2, st.st_size); + if (memcmp(sum, sum2, checksum_len) != 0) @@ -35,7 +35,7 @@ for a local copy, so the old algorithm is used for local copies. } if (!preserve_perms) { ---- orig/generator.c 2005-12-15 23:00:49 +--- orig/generator.c 2006-01-14 20:27:09 +++ generator.c 2005-12-15 23:16:48 @@ -69,6 +69,7 @@ extern int ignore_timeout; extern int protocol_version; @@ -73,7 +73,7 @@ for a local copy, so the old algorithm is used for local copies. continue; best_match = j; match_level = 2; -@@ -1160,7 +1164,7 @@ static void recv_generator(char *fname, +@@ -1142,7 +1146,7 @@ static void recv_generator(char *fname, ; else if (fnamecmp_type == FNAMECMP_FUZZY) ; @@ -82,7 +82,7 @@ for a local copy, so the old algorithm is used for local copies. if (partialptr) { do_unlink(partialptr); handle_partial_dir(partialptr, PDIR_DELETE); ---- orig/hlink.c 2005-12-15 23:00:49 +--- orig/hlink.c 2006-01-14 20:27:09 +++ hlink.c 2005-12-15 23:17:31 @@ -210,7 +210,7 @@ int hard_link_check(struct file_struct * itemizing = code = 0; @@ -93,7 +93,7 @@ for a local copy, so the old algorithm is used for local copies. continue; statret = 1; st = &st3; ---- orig/main.c 2005-12-15 07:55:39 +--- orig/main.c 2006-01-15 14:46:15 +++ main.c 2005-11-07 05:00:49 @@ -45,6 +45,7 @@ extern int copy_links; extern int keep_dirlinks; @@ -114,7 +114,7 @@ for a local copy, so the old algorithm is used for local copies. struct file_list *the_file_list; /* There's probably never more than at most 2 outstanding child processes, -@@ -659,6 +662,7 @@ static void do_server_recv(int f_in, int +@@ -710,6 +713,7 @@ static void do_server_recv(int f_in, int struct file_list *flist; char *local_name = NULL; char *dir = NULL; @@ -122,7 +122,7 @@ for a local copy, so the old algorithm is used for local copies. int save_verbose = verbose; if (filesfrom_fd >= 0) { -@@ -702,6 +706,10 @@ static void do_server_recv(int f_in, int +@@ -753,6 +757,10 @@ static void do_server_recv(int f_in, int filesfrom_fd = -1; } @@ -133,7 +133,7 @@ for a local copy, so the old algorithm is used for local copies. flist = recv_file_list(f_in); verbose = save_verbose; if (!flist) { -@@ -710,6 +718,9 @@ static void do_server_recv(int f_in, int +@@ -761,6 +769,9 @@ static void do_server_recv(int f_in, int } the_file_list = flist; @@ -143,7 +143,7 @@ for a local copy, so the old algorithm is used for local copies. if (argc > 0) local_name = get_local_name(flist,argv[0]); -@@ -758,6 +769,7 @@ int client_run(int f_in, int f_out, pid_ +@@ -809,6 +820,7 @@ int client_run(int f_in, int f_out, pid_ { struct file_list *flist = NULL; int exit_code = 0, exit_code2 = 0; @@ -151,7 +151,7 @@ for a local copy, so the old algorithm is used for local copies. char *local_name = NULL; cleanup_child_pid = pid; -@@ -829,11 +841,18 @@ int client_run(int f_in, int f_out, pid_ +@@ -880,11 +892,18 @@ int client_run(int f_in, int f_out, pid_ filesfrom_fd = -1; } @@ -170,7 +170,7 @@ for a local copy, so the old algorithm is used for local copies. if (flist && flist->count > 0) { local_name = get_local_name(flist, argv[0]); ---- orig/rsync.h 2005-12-15 23:00:49 +--- orig/rsync.h 2006-01-14 20:27:10 +++ rsync.h 2005-09-16 16:41:26 @@ -64,6 +64,7 @@ #define FLAG_DEL_HERE (1<<3) /* receiver/generator */ diff --git a/xattrs.diff b/xattrs.diff index d9e5f18..05c510d 100644 --- a/xattrs.diff +++ b/xattrs.diff @@ -28,7 +28,7 @@ After applying this patch, run these commands for a successful build: popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \ --- orig/backup.c 2004-10-06 00:13:09 +++ backup.c 2005-03-03 01:20:46 -@@ -136,6 +136,7 @@ static int make_bak_dir(char *fullpath) +@@ -135,6 +135,7 @@ static int make_bak_dir(char *fullpath) do_lchown(fullpath, st.st_uid, st.st_gid); do_chmod(fullpath, st.st_mode); (void)DUP_ACL(end, fullpath, st.st_mode); @@ -36,7 +36,7 @@ After applying this patch, run these commands for a successful build: } } *p = '/'; -@@ -189,6 +190,7 @@ static int keep_backup(char *fname) +@@ -188,6 +189,7 @@ static int keep_backup(char *fname) return 0; PUSH_KEEP_BACKUP_ACL(file, fname, buf); @@ -44,7 +44,7 @@ After applying this patch, run these commands for a successful build: /* Check to see if this is a device file, or link */ if (IS_DEVICE(file->mode) && am_root && preserve_devices) { -@@ -265,6 +267,7 @@ static int keep_backup(char *fname) +@@ -264,6 +266,7 @@ static int keep_backup(char *fname) } set_perms(buf, file, NULL, 0); CLEANUP_KEEP_BACKUP_ACL(); @@ -54,7 +54,7 @@ After applying this patch, run these commands for a successful build: if (verbose > 1) { --- orig/configure.in 2004-08-19 19:53:27 +++ configure.in 2005-05-12 22:57:53 -@@ -822,6 +822,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_ +@@ -826,6 +826,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_ AC_MSG_RESULT(no) ) @@ -87,7 +87,7 @@ After applying this patch, run these commands for a successful build: --- orig/flist.c 2005-07-29 02:49:06 +++ flist.c 2005-10-16 23:03:04 -@@ -962,6 +962,8 @@ static struct file_struct *send_file_nam +@@ -960,6 +960,8 @@ static struct file_struct *send_file_nam return NULL; if (MAKE_ACL(file, fname) < 0) return NULL; @@ -96,7 +96,7 @@ After applying this patch, run these commands for a successful build: maybe_emit_filelist_progress(flist->count + flist_count_offset); -@@ -971,9 +973,11 @@ static struct file_struct *send_file_nam +@@ -969,9 +971,11 @@ static struct file_struct *send_file_nam flist->files[flist->count++] = file; send_file_entry(file, f, base_flags); SEND_ACL(file, f); @@ -108,7 +108,7 @@ After applying this patch, run these commands for a successful build: } return file; } -@@ -1330,6 +1334,7 @@ struct file_list *recv_file_list(int f) +@@ -1327,6 +1331,7 @@ struct file_list *recv_file_list(int f) file = receive_file_entry(flist, flags, f); RECEIVE_ACL(file, f); @@ -116,7 +116,7 @@ After applying this patch, run these commands for a successful build: if (S_ISREG(file->mode)) stats.total_size += file->length; -@@ -1354,6 +1359,7 @@ struct file_list *recv_file_list(int f) +@@ -1351,6 +1356,7 @@ struct file_list *recv_file_list(int f) clean_flist(flist, relative_paths, 1); SORT_FILE_ACL_INDEX_LISTS(); @@ -124,9 +124,9 @@ After applying this patch, run these commands for a successful build: if (f >= 0) { /* Now send the uid/gid list. This was introduced in ---- orig/generator.c 2005-05-12 23:34:00 +--- orig/generator.c 2006-01-14 08:17:25 +++ generator.c 2005-05-12 23:21:08 -@@ -729,6 +729,10 @@ static void recv_generator(char *fname, +@@ -894,6 +894,10 @@ static void recv_generator(char *fname, if (f_out == -1) SET_ACL(fname, file); #endif @@ -203,7 +203,7 @@ After applying this patch, run these commands for a successful build: int preserve_perms = 0; int preserve_devices = 0; int preserve_uid = 0; -@@ -189,6 +190,7 @@ static void print_rsync_version(enum log +@@ -190,6 +191,7 @@ static void print_rsync_version(enum log char const *have_inplace = "no "; char const *hardlinks = "no "; char const *acls = "no "; @@ -211,7 +211,7 @@ After applying this patch, run these commands for a successful build: char const *links = "no "; char const *ipv6 = "no "; STRUCT_STAT *dumstat; -@@ -208,7 +210,9 @@ static void print_rsync_version(enum log +@@ -209,7 +211,9 @@ static void print_rsync_version(enum log #ifdef SUPPORT_ACLS acls = ""; #endif @@ -222,7 +222,7 @@ After applying this patch, run these commands for a successful build: #ifdef SUPPORT_LINKS links = ""; #endif -@@ -223,9 +227,9 @@ static void print_rsync_version(enum log +@@ -224,9 +228,9 @@ static void print_rsync_version(enum log "Copyright (C) 1996-2005 by Andrew Tridgell and others\n"); rprintf(f, "\n"); rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, " @@ -234,7 +234,7 @@ After applying this patch, run these commands for a successful build: /* Note that this field may not have type ino_t. It depends * on the complicated interaction between largefile feature -@@ -296,6 +300,7 @@ void usage(enum logcode F) +@@ -297,6 +301,7 @@ void usage(enum logcode F) rprintf(F," -K, --keep-dirlinks treat symlinked dir on receiver as dir\n"); rprintf(F," -p, --perms preserve permissions\n"); rprintf(F," -A, --acls preserve ACLs (implies --perms)\n"); @@ -242,7 +242,7 @@ After applying this patch, run these commands for a successful build: rprintf(F," -o, --owner preserve owner (root only)\n"); rprintf(F," -g, --group preserve group\n"); rprintf(F," -D, --devices preserve devices (root only)\n"); -@@ -404,6 +409,9 @@ static struct poptOption long_options[] +@@ -409,6 +414,9 @@ static struct poptOption long_options[] {"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 }, {"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 }, {"no-A", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 }, @@ -252,7 +252,7 @@ After applying this patch, run these commands for a successful build: {"times", 't', POPT_ARG_VAL, &preserve_times, 1, 0, 0 }, {"no-times", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, {"no-t", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, -@@ -1021,6 +1029,17 @@ int parse_arguments(int *argc, const cha +@@ -1027,6 +1035,17 @@ int parse_arguments(int *argc, const cha return 0; #endif /* SUPPORT_ACLS */ @@ -270,7 +270,7 @@ After applying this patch, run these commands for a successful build: default: /* A large opt value means that set_refuse_options() -@@ -1451,6 +1470,8 @@ void server_options(char **args,int *arg +@@ -1464,6 +1483,8 @@ void server_options(char **args,int *arg argstr[x++] = 'H'; if (preserve_acls) argstr[x++] = 'A'; @@ -302,7 +302,7 @@ After applying this patch, run these commands for a successful build: if (verbose > 1 && flags & PERMS_REPORT) { --- orig/rsync.h 2005-07-29 02:25:55 +++ rsync.h 2005-10-16 23:19:44 -@@ -689,6 +689,38 @@ struct stats { +@@ -685,6 +685,38 @@ struct stats { #endif /* SUPPORT_ACLS */ #include "smb_acls.h" @@ -351,7 +351,7 @@ After applying this patch, run these commands for a successful build: -o, --owner preserve owner (root only) -g, --group preserve group -D, --devices preserve devices (root only) -@@ -674,6 +675,11 @@ ACLs to be the same as the local ACLs. +@@ -687,6 +688,11 @@ ACLs to be the same as the local ACLs. remote machine's rsync supports this option also. This is a non-standard option. @@ -702,7 +702,7 @@ After applying this patch, run these commands for a successful build: + + if (!preserve_xattrs) + return; -+ fname = f_name(file); ++ fname = f_name(file, NULL); + tag = read_byte(f); + if (tag != 'X' && tag != 'x') { + rprintf(FERROR,