From: Wayne Davison Date: Tue, 29 Mar 2005 06:16:18 +0000 (+0000) Subject: Updated to apply cleanly. X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/commitdiff_plain/e621c04178420f97bdfed06deda8ac5276dad594 Updated to apply cleanly. --- diff --git a/ODBC-dblog.diff b/ODBC-dblog.diff index 12b0f66..7723051 100644 --- a/ODBC-dblog.diff +++ b/ODBC-dblog.diff @@ -686,7 +686,7 @@ This patch adds the following options: FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors) FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable) FN_LOCAL_STRING(lp_uid, uid) ---- orig/log.c 2005-03-16 02:19:30 +--- orig/log.c 2005-03-27 05:58:51 +++ log.c 2004-07-03 20:22:18 @@ -83,7 +83,7 @@ struct { /* @@ -721,9 +721,9 @@ This patch adds the following options: if (fd1 != -1) close(fd1); ---- orig/sender.c 2005-03-16 02:19:30 +--- orig/sender.c 2005-03-28 20:56:55 +++ sender.c 2005-03-05 00:31:19 -@@ -351,6 +351,9 @@ void send_files(struct file_list *flist, +@@ -343,6 +343,9 @@ void send_files(struct file_list *flist, if (!log_before_transfer) log_item(file, &initial_stats, iflags, NULL); diff --git a/acls.diff b/acls.diff index 8917341..561d4c0 100644 --- a/acls.diff +++ b/acls.diff @@ -1325,9 +1325,9 @@ 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 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2005-03-11 11:18:22 -@@ -712,6 +712,10 @@ static void recv_generator(char *fname, +@@ -711,6 +711,10 @@ static void recv_generator(char *fname, if (set_perms(fname, file, statret ? NULL : &st, 0) && verbose && code && f_out != -1) rprintf(code, "%s/\n", safe_fname(fname)); @@ -4597,7 +4597,7 @@ ACLs to a non-ACL-supporting disk should complain. next; } ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-02-14 02:46:05 @@ -44,6 +44,7 @@ int keep_dirlinks = 0; int copy_links = 0; @@ -4646,7 +4646,7 @@ ACLs to a non-ACL-supporting disk should complain. 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 +411,7 @@ static struct poptOption long_options[] +@@ -405,6 +412,7 @@ static struct poptOption long_options[] {"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 }, {"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 }, {"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 }, @@ -4654,7 +4654,7 @@ ACLs to a non-ACL-supporting disk should complain. {"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 }, {"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 }, {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, -@@ -862,6 +870,24 @@ int parse_arguments(int *argc, const cha +@@ -863,6 +871,24 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -4679,7 +4679,7 @@ ACLs to a non-ACL-supporting disk should complain. default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -1264,6 +1290,8 @@ void server_options(char **args,int *arg +@@ -1265,6 +1291,8 @@ void server_options(char **args,int *arg if (preserve_hard_links) argstr[x++] = 'H'; @@ -4705,7 +4705,7 @@ 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 2005-03-16 02:19:30 +--- orig/rsync.h 2005-03-28 20:56:55 +++ rsync.h 2004-07-03 20:11:58 @@ -639,6 +639,40 @@ struct stats { #include "lib/permstring.h" @@ -4748,7 +4748,7 @@ ACLs to a non-ACL-supporting disk should complain. #include "proto.h" /* We have replacement versions of these if they're missing. */ ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2004-07-03 20:11:58 @@ -316,6 +316,7 @@ to the detailed description below for a -H, --hard-links preserve hard links @@ -4758,7 +4758,7 @@ ACLs to a non-ACL-supporting disk should complain. -o, --owner preserve owner (root only) -g, --group preserve group -D, --devices preserve devices (root only) -@@ -624,6 +625,11 @@ source file's permissions and the umask +@@ -625,6 +626,11 @@ source file's permissions and the umask other files (including updated files) retain their existing permissions (which is the same behavior as other file-copy utilities, such as cp). diff --git a/append.diff b/append.diff index 20306a9..9d5b195 100644 --- a/append.diff +++ b/append.diff @@ -1,9 +1,9 @@ This patch adds the --append option, which works like a "resume" mode in an ftp client, appending new data onto the end of the files it updates. ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2005-03-03 02:59:17 -@@ -51,6 +51,7 @@ extern int remove_sent_files; +@@ -52,6 +52,7 @@ extern int delay_updates; extern int update_only; extern int opt_ignore_existing; extern int inplace; @@ -11,7 +11,7 @@ an ftp client, appending new data onto the end of the files it updates. extern int make_backups; extern int csum_length; extern int ignore_times; -@@ -466,35 +467,42 @@ static void generate_and_send_sums(int f +@@ -465,35 +466,42 @@ static void generate_and_send_sums(int f OFF_T offset = 0; sum_sizes_sqroot(&sum, len); @@ -61,7 +61,7 @@ an ftp client, appending new data onto the end of the files it updates. } if (mapbuf) -@@ -973,6 +981,9 @@ static void recv_generator(char *fname, +@@ -972,6 +980,9 @@ static void recv_generator(char *fname, return; } @@ -71,7 +71,7 @@ an ftp client, appending new data onto the end of the files it updates. if (!compare_dest && fnamecmp_type <= FNAMECMP_BASIS_DIR_HIGH) ; else if (fnamecmp_type == FNAMECMP_FUZZY) -@@ -1143,7 +1154,7 @@ void generate_files(int f_out, struct fi +@@ -1142,7 +1153,7 @@ void generate_files(int f_out, struct fi if (delete_before && !local_name && flist->count > 0) do_delete_pass(flist); @@ -80,7 +80,7 @@ an ftp client, appending new data onto the end of the files it updates. whole_file = 0; if (verbose >= 2) { rprintf(FINFO, "delta-transmission %s\n", -@@ -1194,6 +1205,8 @@ void generate_files(int f_out, struct fi +@@ -1193,6 +1204,8 @@ void generate_files(int f_out, struct fi only_existing = max_size = opt_ignore_existing = 0; update_only = always_checksum = size_only = 0; ignore_times = 1; @@ -130,7 +130,7 @@ an ftp client, appending new data onto the end of the files it updates. matched(f, s, buf, j, -2); matched(f, s, buf, len, -1); } ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-11 11:21:34 @@ -39,6 +39,7 @@ int make_backups = 0; **/ @@ -156,7 +156,7 @@ an ftp client, appending new data onto the end of the files it updates. rprintf(F," -d, --dirs transfer directories without recursing\n"); rprintf(F," -l, --links copy symlinks as symlinks\n"); rprintf(F," -L, --copy-links transform symlink into referent file/dir\n"); -@@ -400,6 +403,7 @@ static struct poptOption long_options[] +@@ -401,6 +404,7 @@ static struct poptOption long_options[] {"links", 'l', POPT_ARG_NONE, &preserve_links, 0, 0, 0 }, {"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 }, {"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 }, @@ -164,7 +164,7 @@ an ftp client, appending new data onto the end of the files it updates. {"whole-file", 'W', POPT_ARG_VAL, &whole_file, 1, 0, 0 }, {"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 }, {"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 }, -@@ -574,6 +578,8 @@ static void set_refuse_options(char *bp) +@@ -575,6 +579,8 @@ static void set_refuse_options(char *bp) refused_partial = op->val; else if (wildmatch("progress", op->longName)) refused_progress = op->val; @@ -173,7 +173,7 @@ an ftp client, appending new data onto the end of the files it updates. break; } if (!is_wild) -@@ -1108,6 +1114,14 @@ int parse_arguments(int *argc, const cha +@@ -1109,6 +1115,14 @@ int parse_arguments(int *argc, const cha bwlimit_writemax = 512; } @@ -188,7 +188,7 @@ an ftp client, appending new data onto the end of the files it updates. if (delay_updates && !partial_dir) partial_dir = partialdir_for_delayupdate; -@@ -1418,7 +1432,9 @@ void server_options(char **args,int *arg +@@ -1419,7 +1433,9 @@ void server_options(char **args,int *arg if (opt_ignore_existing && am_sender) args[ac++] = "--ignore-existing"; @@ -246,7 +246,7 @@ an ftp client, appending new data onto the end of the files it updates. continue; } ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-02-11 20:36:38 @@ -308,6 +308,7 @@ to the detailed description below for a --suffix=SUFFIX backup suffix (default ~ w/o --backup-dir) @@ -256,7 +256,7 @@ an ftp client, appending new data onto the end of the files it updates. -d, --dirs transfer directories without recursing -l, --links copy symlinks as symlinks -L, --copy-links transform symlink into referent file/dir -@@ -564,6 +565,14 @@ should not use this option to update fil +@@ -565,6 +566,14 @@ should not use this option to update fil rsync will be unable to update a file in-place that is not writable by the receiving user. @@ -271,7 +271,7 @@ an ftp client, appending new data onto the end of the files it updates. dit(bf(-d, --dirs)) Tell the sending side to include any directories that are encountered. Unlike bf(--recursive), a directory's contents are not copied unless the directory was specified on the command-line as either "." or a ---- orig/sender.c 2005-03-16 02:19:30 +--- orig/sender.c 2005-03-28 20:56:55 +++ sender.c 2005-03-16 02:25:18 @@ -28,6 +28,7 @@ extern int log_format_has_i; extern int daemon_log_format_has_i; @@ -295,7 +295,7 @@ an ftp client, appending new data onto the end of the files it updates. if (s->count == 0) return(s); -@@ -235,6 +243,7 @@ void send_files(struct file_list *flist, +@@ -227,6 +235,7 @@ void send_files(struct file_list *flist, /* For inplace: redo phase turns off the backup * flag so that we do a regular inplace send. */ make_backups = 0; diff --git a/atimes.diff b/atimes.diff index 1a2799c..e2bcaf2 100644 --- a/atimes.diff +++ b/atimes.diff @@ -127,9 +127,9 @@ command before "make": file->length = st.st_size; file->mode = st.st_mode; file->uid = st.st_uid; ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2004-11-03 23:02:12 -@@ -373,7 +373,7 @@ static int unchanged_file(char *fn, stru +@@ -372,7 +372,7 @@ static int unchanged_file(char *fn, stru if (ignore_times) return 0; @@ -138,7 +138,7 @@ command before "make": } -@@ -838,7 +838,7 @@ static void recv_generator(char *fname, +@@ -837,7 +837,7 @@ static void recv_generator(char *fname, } if (update_only && statret == 0 @@ -147,7 +147,7 @@ command before "make": if (verbose > 1) rprintf(FINFO, "%s is newer\n", safe_fname(fname)); return; ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-02-21 10:53:28 @@ -50,6 +50,7 @@ int preserve_uid = 0; int preserve_gid = 0; @@ -165,7 +165,7 @@ command before "make": rprintf(F," -O, --omit-dir-times omit directories when preserving times\n"); rprintf(F," -S, --sparse handle sparse files efficiently\n"); rprintf(F," -n, --dry-run show what would have been transferred\n"); -@@ -409,6 +411,7 @@ static struct poptOption long_options[] +@@ -410,6 +412,7 @@ static struct poptOption long_options[] {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, {"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 }, {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 }, @@ -173,7 +173,7 @@ command before "make": {"checksum", 'c', POPT_ARG_NONE, &always_checksum, 0, 0, 0 }, {"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 }, {"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 }, -@@ -1272,6 +1275,8 @@ void server_options(char **args,int *arg +@@ -1273,6 +1276,8 @@ void server_options(char **args,int *arg argstr[x++] = 'D'; if (preserve_times) argstr[x++] = 't'; @@ -234,7 +234,7 @@ command before "make": } change_uid = am_root && preserve_uid && st->st_uid != file->uid; ---- orig/rsync.h 2005-03-16 02:19:30 +--- orig/rsync.h 2005-03-28 20:56:55 +++ rsync.h 2004-07-03 20:15:41 @@ -54,6 +54,7 @@ #define XMIT_HAS_IDEV_DATA (1<<9) @@ -260,7 +260,7 @@ command before "make": uid_t uid; gid_t gid; mode_t mode; ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-01-24 01:57:18 @@ -321,6 +321,7 @@ to the detailed description below for a -D, --devices preserve devices (root only) @@ -270,7 +270,7 @@ command before "make": -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy files whole (without rsync algorithm) -@@ -654,6 +655,11 @@ it is preserving modification times (see +@@ -655,6 +656,11 @@ it is preserving modification times (see the directories on the receiving side, it is a good idea to use bf(-O). This option is inferred if you use bf(--backup) without bf(--backup-dir). diff --git a/backup-dir-dels.diff b/backup-dir-dels.diff index 935f3fe..a8bd9a1 100644 --- a/backup-dir-dels.diff +++ b/backup-dir-dels.diff @@ -106,9 +106,9 @@ Marc St-Onge + deleting = 0; + return ret; +} ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2005-03-11 11:22:38 -@@ -84,6 +84,9 @@ extern dev_t filesystem_dev; +@@ -85,6 +85,9 @@ extern dev_t filesystem_dev; extern char *backup_dir; extern char *backup_suffix; extern int backup_suffix_len; @@ -118,7 +118,7 @@ Marc St-Onge extern struct file_list *the_file_list; extern struct filter_list_struct server_filter_list; -@@ -92,10 +95,14 @@ int allowed_lull = 0; +@@ -93,10 +96,14 @@ int allowed_lull = 0; static int deletion_count = 0; /* used to implement --max-delete */ @@ -134,7 +134,7 @@ Marc St-Onge } -@@ -112,8 +119,8 @@ static int delete_item(char *fname, int +@@ -113,8 +120,8 @@ static int delete_item(char *fname, int if (!S_ISDIR(mode)) { if (max_delete && ++deletion_count > max_delete) return 0; @@ -145,7 +145,7 @@ Marc St-Onge else ok = robust_unlink(fname) == 0; if (ok) { -@@ -136,9 +143,9 @@ static int delete_item(char *fname, int +@@ -137,9 +144,9 @@ static int delete_item(char *fname, int || (dry_run && zap_dir)) { ok = 0; errno = ENOTEMPTY; @@ -157,7 +157,7 @@ Marc St-Onge else ok = do_rmdir(fname) == 0; if (ok) { ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-01 01:25:39 @@ -127,10 +127,14 @@ int no_detach int write_batch = 0; @@ -193,7 +193,7 @@ Marc St-Onge rprintf(F," -u, --update skip files that are newer on the receiver\n"); rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n"); rprintf(F," -d, --dirs transfer directories without recursing\n"); -@@ -366,6 +374,7 @@ static struct poptOption long_options[] +@@ -367,6 +375,7 @@ static struct poptOption long_options[] /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */ {"version", 0, POPT_ARG_NONE, 0, OPT_VERSION, 0, 0}, {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, @@ -201,7 +201,7 @@ Marc St-Onge {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, -@@ -446,6 +455,7 @@ static struct poptOption long_options[] +@@ -447,6 +456,7 @@ static struct poptOption long_options[] {"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, @@ -209,7 +209,7 @@ Marc St-Onge {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 }, {"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 }, -@@ -1007,6 +1017,8 @@ int parse_arguments(int *argc, const cha +@@ -1008,6 +1018,8 @@ int parse_arguments(int *argc, const cha partial_dir = sanitize_path(NULL, partial_dir, NULL, 0); if (backup_dir) backup_dir = sanitize_path(NULL, backup_dir, NULL, 0); @@ -218,7 +218,7 @@ Marc St-Onge } if (server_filter_list.head && !am_sender) { struct filter_list_struct *elp = &server_filter_list; -@@ -1041,6 +1053,14 @@ int parse_arguments(int *argc, const cha +@@ -1042,6 +1054,14 @@ int parse_arguments(int *argc, const cha return 0; } } @@ -233,7 +233,7 @@ Marc St-Onge } if (!backup_suffix) -@@ -1052,6 +1072,16 @@ int parse_arguments(int *argc, const cha +@@ -1053,6 +1073,16 @@ int parse_arguments(int *argc, const cha backup_suffix); return 0; } @@ -250,7 +250,7 @@ Marc St-Onge if (backup_dir) { backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf); backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len; -@@ -1073,6 +1103,31 @@ int parse_arguments(int *argc, const cha +@@ -1074,6 +1104,31 @@ int parse_arguments(int *argc, const cha "--suffix cannot be a null string without --backup-dir\n"); return 0; } @@ -282,7 +282,7 @@ Marc St-Onge if (make_backups && !backup_dir) omit_dir_times = 1; -@@ -1351,6 +1406,10 @@ void server_options(char **args,int *arg +@@ -1352,6 +1407,10 @@ void server_options(char **args,int *arg args[ac++] = "--backup-dir"; args[ac++] = backup_dir; } @@ -293,7 +293,7 @@ Marc St-Onge /* Only send --suffix if it specifies a non-default value. */ if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) { -@@ -1359,7 +1418,13 @@ void server_options(char **args,int *arg +@@ -1360,7 +1419,13 @@ void server_options(char **args,int *arg goto oom; args[ac++] = arg; } diff --git a/chmod-option.diff b/chmod-option.diff index e06dce9..3ca18c9 100644 --- a/chmod-option.diff +++ b/chmod-option.diff @@ -225,7 +225,7 @@ command before "make": file->uid = st.st_uid; file->gid = st.st_gid; ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-01 01:26:56 @@ -140,6 +140,7 @@ char *log_format = NULL; char *password_file = NULL; @@ -252,7 +252,7 @@ command before "make": rprintf(F," -S, --sparse handle sparse files efficiently\n"); rprintf(F," -n, --dry-run show what would have been transferred\n"); rprintf(F," -W, --whole-file copy files whole (without rsync algorithm)\n"); -@@ -406,6 +410,7 @@ static struct poptOption long_options[] +@@ -407,6 +411,7 @@ static struct poptOption long_options[] {"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 }, {"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 }, {"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 }, @@ -260,7 +260,7 @@ command before "make": {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, {"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 }, {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 }, -@@ -1076,6 +1081,13 @@ int parse_arguments(int *argc, const cha +@@ -1077,6 +1082,13 @@ int parse_arguments(int *argc, const cha if (make_backups && !backup_dir) omit_dir_times = 1; @@ -274,7 +274,7 @@ command before "make": if (log_format) { if (strstr(log_format, "%i") != NULL) log_format_has_i = 1; -@@ -1438,6 +1450,11 @@ void server_options(char **args,int *arg +@@ -1439,6 +1451,11 @@ void server_options(char **args,int *arg } } @@ -286,7 +286,7 @@ command before "make": if (files_from && (!am_sender || filesfrom_host)) { if (filesfrom_host) { args[ac++] = "--files-from"; ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-01-24 01:48:43 @@ -321,6 +321,7 @@ to the detailed description below for a -D, --devices preserve devices (root only) @@ -296,7 +296,7 @@ command before "make": -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy files whole (without rsync algorithm) -@@ -654,6 +655,14 @@ it is preserving modification times (see +@@ -655,6 +656,14 @@ it is preserving modification times (see the directories on the receiving side, it is a good idea to use bf(-O). This option is inferred if you use bf(--backup) without bf(--backup-dir). diff --git a/date-only.diff b/date-only.diff index 1382cec..e86b292 100644 --- a/date-only.diff +++ b/date-only.diff @@ -15,9 +15,9 @@ Jeremy Bornstein [Patched update to have context and apply to latest CVS source.] ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2004-11-11 22:15:27 -@@ -54,6 +54,7 @@ extern int inplace; +@@ -55,6 +55,7 @@ extern int inplace; extern int make_backups; extern int csum_length; extern int ignore_times; @@ -25,7 +25,7 @@ Jeremy Bornstein extern int size_only; extern OFF_T max_size; extern int io_timeout; -@@ -355,6 +356,8 @@ void itemize(struct file_struct *file, i +@@ -354,6 +355,8 @@ void itemize(struct file_struct *file, i /* Perform our quick-check heuristic for determining if a file is unchanged. */ static int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st) { @@ -34,7 +34,7 @@ Jeremy Bornstein if (st->st_size != file->length) return 0; ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-01-28 19:14:15 @@ -89,6 +89,7 @@ int keep_partial = 0; int safe_symlinks = 0; @@ -52,7 +52,7 @@ Jeremy Bornstein rprintf(F," --modify-window=NUM compare mod-times with reduced accuracy\n"); rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n"); rprintf(F," -y, --fuzzy find similar file for basis if no dest file\n"); -@@ -370,6 +372,7 @@ static struct poptOption long_options[] +@@ -371,6 +373,7 @@ static struct poptOption long_options[] {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, {"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 }, @@ -60,7 +60,7 @@ Jeremy Bornstein {"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 }, {"one-file-system", 'x', POPT_ARG_NONE, &one_file_system, 0, 0, 0 }, {"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 }, -@@ -1378,6 +1381,9 @@ void server_options(char **args,int *arg +@@ -1379,6 +1382,9 @@ void server_options(char **args,int *arg if (size_only) args[ac++] = "--size-only"; @@ -70,7 +70,7 @@ Jeremy Bornstein if (modify_window_set) { if (asprintf(&arg, "--modify-window=%d", modify_window) < 0) goto oom; ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-02-11 22:49:10 @@ -349,6 +349,7 @@ to the detailed description below for a --timeout=TIME set I/O timeout in seconds @@ -80,7 +80,7 @@ Jeremy Bornstein --modify-window=NUM compare mod-times with reduced accuracy -T, --temp-dir=DIR create temporary files in directory DIR -y, --fuzzy find similar file for basis if no dest file -@@ -445,6 +446,12 @@ regardless of timestamp. This is useful +@@ -446,6 +447,12 @@ regardless of timestamp. This is useful after using another mirroring system which may not preserve timestamps exactly. diff --git a/fname-convert.diff b/fname-convert.diff index 9a624f3..723c3d7 100644 --- a/fname-convert.diff +++ b/fname-convert.diff @@ -382,9 +382,9 @@ Note that you'll need to run 'make proto' after applying this patch. + if (verbose > 2) + rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest); +} ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2005-03-05 00:29:37 -@@ -581,7 +581,13 @@ static int phase = 0; +@@ -580,7 +580,13 @@ static int phase = 0; * start sending checksums. * * Note that f_out is set to -1 when doing final directory-permission and @@ -399,7 +399,7 @@ Note that you'll need to run 'make proto' after applying this patch. static void recv_generator(char *fname, struct file_struct *file, int ndx, int itemizing, int maybe_PERMS_REPORT, enum logcode code, int f_out) ---- orig/log.c 2005-03-16 02:19:30 +--- orig/log.c 2005-03-27 05:58:51 +++ log.c 2004-07-03 20:18:02 @@ -64,6 +64,7 @@ struct { { RERR_STREAMIO , "error in rsync protocol data stream" }, @@ -420,7 +420,7 @@ Note that you'll need to run 'make proto' after applying this patch. if (dir) free(dir); ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-02-14 02:50:32 @@ -137,6 +137,7 @@ char *basis_dir[MAX_BASIS_DIRS+1]; char *config_file = NULL; @@ -438,7 +438,7 @@ Note that you'll need to run 'make proto' after applying this patch. rprintf(F," -z, --compress compress file data during the transfer\n"); rprintf(F," -C, --cvs-exclude auto-ignore files the same way CVS does\n"); rprintf(F," -f, --filter=RULE add a file-filtering RULE\n"); -@@ -429,6 +431,7 @@ static struct poptOption long_options[] +@@ -430,6 +432,7 @@ static struct poptOption long_options[] {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 }, {"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 }, diff --git a/fsync.diff b/fsync.diff index 121c855..5372258 100644 --- a/fsync.diff +++ b/fsync.diff @@ -1,7 +1,7 @@ This patch from Sami Farin lets you specify --fsync if you want fsync() to be called on every file we write. ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-01-28 19:30:47 @@ -39,6 +39,7 @@ int make_backups = 0; **/ @@ -19,7 +19,7 @@ to be called on every file we write. rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n"); rprintf(F," --timeout=TIME set I/O timeout in seconds\n"); rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n"); -@@ -391,6 +393,7 @@ static struct poptOption long_options[] +@@ -392,6 +394,7 @@ static struct poptOption long_options[] {"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 }, {"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 }, {"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 }, @@ -27,7 +27,7 @@ to be called on every file we write. {"dry-run", 'n', POPT_ARG_NONE, &dry_run, 0, 0, 0 }, {"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 }, {"cvs-exclude", 'C', POPT_ARG_NONE, &cvs_exclude, 0, 0, 0 }, -@@ -1426,6 +1429,9 @@ void server_options(char **args,int *arg +@@ -1427,6 +1430,9 @@ void server_options(char **args,int *arg args[ac++] = tmpdir; } diff --git a/ignore-case.diff b/ignore-case.diff index a69fc2d..67cb769 100644 --- a/ignore-case.diff +++ b/ignore-case.diff @@ -35,7 +35,7 @@ in a case-insensitive manner. case '?': /* Match anything but '/'. */ if (*text == '/') ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2004-10-14 17:22:51 @@ -100,6 +100,7 @@ int max_delete = 0; OFF_T max_size = 0; @@ -53,7 +53,7 @@ in a case-insensitive manner. rprintf(F," --version print version number\n"); rprintf(F," --port=PORT specify double-colon alternate port number\n"); rprintf(F," --blocking-io use blocking I/O for the remote shell\n"); -@@ -388,6 +390,7 @@ static struct poptOption long_options[] +@@ -389,6 +391,7 @@ static struct poptOption long_options[] {"include", 0, POPT_ARG_STRING, 0, OPT_INCLUDE, 0, 0 }, {"exclude-from", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE_FROM, 0, 0 }, {"include-from", 0, POPT_ARG_STRING, 0, OPT_INCLUDE_FROM, 0, 0 }, @@ -61,7 +61,7 @@ in a case-insensitive manner. {"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 }, {"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 }, {"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 }, -@@ -1390,6 +1393,9 @@ void server_options(char **args,int *arg +@@ -1391,6 +1394,9 @@ void server_options(char **args,int *arg args[ac++] = arg; } diff --git a/link-by-hash.diff b/link-by-hash.diff index 377c75b..dcdae7b 100644 --- a/link-by-hash.diff +++ b/link-by-hash.diff @@ -365,7 +365,7 @@ the file's name. +} + +#endif ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-01 01:27:55 @@ -140,6 +140,7 @@ char *log_format = NULL; char *password_file = NULL; @@ -383,7 +383,7 @@ the file's name. rprintf(F," -z, --compress compress file data during the transfer\n"); rprintf(F," -C, --cvs-exclude auto-ignore files the same way CVS does\n"); rprintf(F," -f, --filter=RULE add a file-filtering RULE\n"); -@@ -359,7 +361,7 @@ void usage(enum logcode F) +@@ -360,7 +362,7 @@ void usage(enum logcode F) enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, @@ -392,7 +392,7 @@ the file's name. OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -428,6 +430,7 @@ static struct poptOption long_options[] +@@ -429,6 +431,7 @@ static struct poptOption long_options[] {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 }, {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 }, @@ -400,7 +400,7 @@ the file's name. {"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 }, /* TODO: Should this take an optional int giving the compression level? */ {"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 }, -@@ -862,6 +865,21 @@ int parse_arguments(int *argc, const cha +@@ -863,6 +866,21 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -422,7 +422,7 @@ the file's name. default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -1438,6 +1456,11 @@ void server_options(char **args,int *arg +@@ -1439,6 +1457,11 @@ void server_options(char **args,int *arg } } @@ -543,7 +543,7 @@ the file's name. if (ret < 0) { rsyserr(FERROR, errno, "%s %s -> \"%s\"", ret == -2 ? "copy" : "rename", ---- orig/rsync.h 2005-03-16 02:19:30 +--- orig/rsync.h 2005-03-28 20:56:55 +++ rsync.h 2004-07-03 20:20:15 @@ -632,6 +632,14 @@ struct stats { int current_file_index; @@ -560,7 +560,7 @@ the file's name. #include "byteorder.h" #include "lib/mdfour.h" ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-02-13 06:58:47 @@ -355,6 +355,7 @@ to the detailed description below for a --compare-dest=DIR also compare received files relative to DIR diff --git a/links-depth.diff b/links-depth.diff index 494eced..c9f7e37 100644 --- a/links-depth.diff +++ b/links-depth.diff @@ -62,7 +62,7 @@ in this modified version. #else linkname_len = 0; #endif ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-01-28 19:33:24 @@ -43,6 +43,7 @@ int archive_mode = 0; int keep_dirlinks = 0; @@ -80,7 +80,7 @@ in this modified version. rprintf(F," -L, --copy-links transform symlink into referent file/dir\n"); rprintf(F," --copy-unsafe-links only \"unsafe\" symlinks are transformed\n"); rprintf(F," --safe-links ignore symlinks that point outside the source tree\n"); -@@ -398,6 +400,7 @@ static struct poptOption long_options[] +@@ -399,6 +401,7 @@ static struct poptOption long_options[] {"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 }, {"dirs", 'd', POPT_ARG_VAL, &xfer_dirs, 2, 0, 0 }, {"links", 'l', POPT_ARG_NONE, &preserve_links, 0, 0, 0 }, @@ -88,7 +88,7 @@ in this modified version. {"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 }, {"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 }, {"whole-file", 'W', POPT_ARG_VAL, &whole_file, 1, 0, 0 }, ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-01-28 19:33:40 @@ -310,6 +310,7 @@ to the detailed description below for a --inplace update destination files in-place diff --git a/only-write-batch.diff b/only-write-batch.diff index 1bc43bb..332c6c4 100644 --- a/only-write-batch.diff +++ b/only-write-batch.diff @@ -25,7 +25,7 @@ } } else write_arg(fd, p); ---- orig/generator.c 2005-03-17 09:05:21 +--- orig/generator.c 2005-03-29 01:05:12 +++ generator.c 2005-03-24 07:07:12 @@ -25,6 +25,7 @@ @@ -35,7 +35,7 @@ extern int log_format_has_i; extern int log_format_has_o_or_i; extern int daemon_log_format_has_i; -@@ -1002,7 +1003,7 @@ prepare_to_open: +@@ -1001,7 +1002,7 @@ prepare_to_open: statret = 0; } @@ -44,7 +44,7 @@ goto notify_others; if (fuzzy_basis) { -@@ -1074,7 +1075,7 @@ notify_others: +@@ -1073,7 +1074,7 @@ notify_others: fuzzy_file ? fuzzy_file->basename : NULL); } @@ -53,7 +53,7 @@ if (preserve_hard_links && file->link_u.links) hard_link_cluster(file, ndx, itemizing, code); return; -@@ -1122,9 +1123,9 @@ void generate_files(int f_out, struct fi +@@ -1121,9 +1122,9 @@ void generate_files(int f_out, struct fi maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT; code = daemon_log_format_has_i ? 0 : FLOG; } else if (am_daemon) { @@ -121,7 +121,7 @@ if (am_daemon && !am_server) return daemon_main(); ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-24 07:07:13 @@ -53,6 +53,7 @@ int omit_dir_times = 0; int update_only = 0; @@ -137,9 +137,9 @@ rprintf(F," --write-batch=FILE write a batched update to FILE\n"); + rprintf(F," --only-write-batch=FILE like --write-batch but w/o updating destination\n"); rprintf(F," --read-batch=FILE read a batched update from FILE\n"); + rprintf(F," --protocol=NUM force an older protocol version to be used\n"); #ifdef INET6 - rprintf(F," -4, --ipv4 prefer IPv4\n"); -@@ -359,7 +361,8 @@ void usage(enum logcode F) +@@ -360,7 +362,8 @@ void usage(enum logcode F) enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, @@ -149,7 +149,7 @@ OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -449,6 +452,7 @@ static struct poptOption long_options[] +@@ -450,6 +453,7 @@ static struct poptOption long_options[] {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 }, {"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 }, @@ -157,7 +157,7 @@ {"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 }, {"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0}, {"no-implied-dirs", 0, POPT_ARG_VAL, &implied_dirs, 0, 0, 0 }, -@@ -790,6 +794,11 @@ int parse_arguments(int *argc, const cha +@@ -791,6 +795,11 @@ int parse_arguments(int *argc, const cha write_batch = 1; break; @@ -169,7 +169,7 @@ case OPT_READ_BATCH: /* batch_name is already set */ read_batch = 1; -@@ -900,7 +909,7 @@ int parse_arguments(int *argc, const cha +@@ -901,7 +910,7 @@ int parse_arguments(int *argc, const cha "--write-batch and --read-batch can not be used together\n"); return 0; } @@ -178,7 +178,7 @@ if (am_server) { rprintf(FINFO, "ignoring --%s-batch option sent to server\n", -@@ -1092,6 +1101,9 @@ int parse_arguments(int *argc, const cha +@@ -1093,6 +1102,9 @@ int parse_arguments(int *argc, const cha && !am_server) verbose = 1; @@ -188,7 +188,7 @@ if (verbose && !log_format) { log_format = "%n%L"; log_before_transfer = !am_server; -@@ -1245,7 +1257,7 @@ void server_options(char **args,int *arg +@@ -1246,7 +1258,7 @@ void server_options(char **args,int *arg argstr[x++] = 'b'; if (update_only) argstr[x++] = 'u'; @@ -197,7 +197,7 @@ argstr[x++] = 'n'; if (preserve_links) argstr[x++] = 'l'; -@@ -1373,6 +1385,8 @@ void server_options(char **args,int *arg +@@ -1374,6 +1386,8 @@ void server_options(char **args,int *arg args[ac++] = "--delete-after"; if (force_delete) args[ac++] = "--force"; @@ -266,7 +266,7 @@ if (read_batch) { while (i > next_gen_i) { ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-03-27 05:13:01 @@ -379,6 +379,7 @@ to the detailed description below for a --list-only list the files instead of copying them @@ -274,9 +274,9 @@ --write-batch=FILE write a batched update to FILE + --only-write-batch=FILE like --write-batch but w/o updating dest --read-batch=FILE read a batched update from FILE + --protocol=NUM force an older protocol version to be used --checksum-seed=NUM set block/file checksum seed (advanced) - -4, --ipv4 prefer IPv4 -@@ -1270,6 +1271,16 @@ dit(bf(--write-batch=FILE)) Record a fil +@@ -1271,6 +1272,16 @@ dit(bf(--write-batch=FILE)) Record a fil another identical destination with bf(--read-batch). See the "BATCH MODE" section for details. @@ -293,7 +293,7 @@ dit(bf(--read-batch=FILE)) Apply all of the changes stored in FILE, a file previously generated by bf(--write-batch). If em(FILE) is "-" the batch data will be read from standard input. ---- orig/sender.c 2005-03-16 02:19:30 +--- orig/sender.c 2005-03-28 20:56:55 +++ sender.c 2005-03-24 07:07:13 @@ -20,7 +20,7 @@ #include "rsync.h" @@ -313,7 +313,7 @@ extern struct stats stats; extern struct file_list *the_file_list; extern char *log_format; -@@ -216,6 +218,7 @@ void send_files(struct file_list *flist, +@@ -208,6 +210,7 @@ void send_files(struct file_list *flist, int save_make_backups = make_backups; int itemizing = am_daemon ? daemon_log_format_has_i : !am_server && log_format_has_i; @@ -321,7 +321,7 @@ int i, j; if (verbose > 2) -@@ -238,7 +241,7 @@ void send_files(struct file_list *flist, +@@ -230,7 +233,7 @@ void send_files(struct file_list *flist, continue; } @@ -330,7 +330,7 @@ xname, &xlen); if (iflags == ITEM_IS_NEW) /* no-op packet */ continue; -@@ -274,10 +277,10 @@ void send_files(struct file_list *flist, +@@ -266,10 +269,10 @@ void send_files(struct file_list *flist, stats.num_transferred_files++; stats.total_transferred_size += file->length; @@ -343,7 +343,7 @@ xname, xlen); continue; } -@@ -329,9 +332,9 @@ void send_files(struct file_list *flist, +@@ -321,9 +324,9 @@ void send_files(struct file_list *flist, safe_fname(fname), (double)st.st_size); } @@ -355,7 +355,7 @@ if (verbose > 2) { rprintf(FINFO, "calling match_sums %s\n", -@@ -345,7 +348,7 @@ void send_files(struct file_list *flist, +@@ -337,7 +340,7 @@ void send_files(struct file_list *flist, set_compression(fname); diff --git a/openssl-support.diff b/openssl-support.diff index 5eb6bbd..526e4f0 100644 --- a/openssl-support.diff +++ b/openssl-support.diff @@ -223,7 +223,7 @@ can't say if I've left any cleanup/compatibility errors in the code. AC_MSG_CHECKING([whether to call shutdown on all sockets]) case $host_os in *cygwin* ) AC_MSG_RESULT(yes) ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-01 01:34:42 @@ -157,6 +157,14 @@ int log_format_has_o_or_i = 0; int always_checksum = 0; @@ -272,7 +272,7 @@ can't say if I've left any cleanup/compatibility errors in the code. #ifdef MAINTAINER_MODE rprintf(f, " panic action: \"%s\"\n", get_panic_action()); -@@ -349,6 +362,13 @@ void usage(enum logcode F) +@@ -350,6 +363,13 @@ void usage(enum logcode F) rprintf(F," -4, --ipv4 prefer IPv4\n"); rprintf(F," -6, --ipv6 prefer IPv6\n"); #endif @@ -286,7 +286,7 @@ can't say if I've left any cleanup/compatibility errors in the code. rprintf(F," -h, --help show this help screen\n"); rprintf(F,"\nUse \"rsync --daemon --help\" to see the daemon-mode command-line options.\n"); -@@ -359,7 +379,7 @@ void usage(enum logcode F) +@@ -360,7 +380,7 @@ void usage(enum logcode F) enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, @@ -295,7 +295,7 @@ can't say if I've left any cleanup/compatibility errors in the code. OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -458,6 +478,13 @@ static struct poptOption long_options[] +@@ -459,6 +479,13 @@ static struct poptOption long_options[] {"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, {"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 }, #endif @@ -309,7 +309,7 @@ can't say if I've left any cleanup/compatibility errors in the code. /* All these options switch us into daemon-mode option-parsing. */ {"address", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 }, {"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 }, -@@ -862,6 +889,12 @@ int parse_arguments(int *argc, const cha +@@ -863,6 +890,12 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -322,7 +322,7 @@ can't say if I've left any cleanup/compatibility errors in the code. default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -1111,6 +1144,17 @@ int parse_arguments(int *argc, const cha +@@ -1112,6 +1145,17 @@ int parse_arguments(int *argc, const cha if (delay_updates && !partial_dir) partial_dir = partialdir_for_delayupdate; @@ -340,7 +340,7 @@ can't say if I've left any cleanup/compatibility errors in the code. if (inplace) { #ifdef HAVE_FTRUNCATE if (partial_dir) { -@@ -1478,11 +1522,28 @@ char *check_for_hostspec(char *s, char * +@@ -1479,11 +1523,28 @@ char *check_for_hostspec(char *s, char * { char *p; int not_host; @@ -371,7 +371,7 @@ can't say if I've left any cleanup/compatibility errors in the code. if ((p = strchr(s, '/')) != NULL) { hostlen = p - s; path = p + 1; ---- orig/rsync.h 2005-03-16 02:19:30 +--- orig/rsync.h 2005-03-28 20:56:55 +++ rsync.h 2004-10-08 21:01:33 @@ -32,6 +32,7 @@ diff --git a/owner-group-mod.diff b/owner-group-mod.diff index 37f1ce3..7345f08 100644 --- a/owner-group-mod.diff +++ b/owner-group-mod.diff @@ -34,9 +34,9 @@ groups, even if they weren't returned by getgroups(). E.g.: + preserve_gid = 2; + } } ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2004-09-09 01:59:08 -@@ -404,8 +404,8 @@ static struct poptOption long_options[] +@@ -405,8 +405,8 @@ static struct poptOption long_options[] {"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 }, {"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 }, {"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 }, @@ -47,7 +47,7 @@ groups, even if they weren't returned by getgroups(). E.g.: {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, {"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 }, {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 }, -@@ -747,6 +747,14 @@ int parse_arguments(int *argc, const cha +@@ -748,6 +748,14 @@ int parse_arguments(int *argc, const cha usage(FINFO); exit_cleanup(0); @@ -62,7 +62,7 @@ groups, even if they weren't returned by getgroups(). E.g.: case 'v': verbose++; break; -@@ -949,8 +957,8 @@ int parse_arguments(int *argc, const cha +@@ -950,8 +958,8 @@ int parse_arguments(int *argc, const cha #endif preserve_perms = 1; preserve_times = 1; @@ -73,7 +73,7 @@ groups, even if they weren't returned by getgroups(). E.g.: preserve_devices = 1; } -@@ -1264,10 +1272,16 @@ void server_options(char **args,int *arg +@@ -1265,10 +1273,16 @@ void server_options(char **args,int *arg if (preserve_hard_links) argstr[x++] = 'H'; diff --git a/source-cd.diff b/source-cd.diff index 4bb7545..a784de2 100644 --- a/source-cd.diff +++ b/source-cd.diff @@ -36,7 +36,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. while (1) { struct file_struct *file; ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-03-01 01:37:22 @@ -81,6 +81,7 @@ char *filesfrom_host = NULL; int eol_nulls = 0; @@ -54,7 +54,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. rprintf(F," -b, --backup make backups (see --suffix & --backup-dir)\n"); rprintf(F," --backup-dir=DIR make backups into hierarchy based in DIR\n"); rprintf(F," --suffix=SUFFIX set backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX); -@@ -419,6 +421,7 @@ static struct poptOption long_options[] +@@ -420,6 +422,7 @@ static struct poptOption long_options[] {"list-only", 0, POPT_ARG_VAL, &list_only, 2, 0, 0 }, {"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 }, {"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 }, @@ -62,7 +62,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, {"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 }, {"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 }, -@@ -913,6 +916,11 @@ int parse_arguments(int *argc, const cha +@@ -914,6 +917,11 @@ int parse_arguments(int *argc, const cha } else if (dry_run) write_batch = 0; } @@ -74,7 +74,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. if (read_batch && files_from) { snprintf(err_buf, sizeof err_buf, "--read-batch cannot be used with --files-from\n"); -@@ -1007,6 +1015,14 @@ int parse_arguments(int *argc, const cha +@@ -1008,6 +1016,14 @@ int parse_arguments(int *argc, const cha partial_dir = sanitize_path(NULL, partial_dir, NULL, 0); if (backup_dir) backup_dir = sanitize_path(NULL, backup_dir, NULL, 0); @@ -89,7 +89,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. } if (server_filter_list.head && !am_sender) { struct filter_list_struct *elp = &server_filter_list; -@@ -1400,6 +1416,11 @@ void server_options(char **args,int *arg +@@ -1401,6 +1417,11 @@ void server_options(char **args,int *arg } else if (keep_partial) args[ac++] = "--partial"; @@ -101,7 +101,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. if (ignore_errors) args[ac++] = "--ignore-errors"; ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-02-22 18:20:24 @@ -303,6 +303,7 @@ to the detailed description below for a -R, --relative use relative path names @@ -111,7 +111,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin. -b, --backup make backups (see --suffix & --backup-dir) --backup-dir=DIR make backups into hierarchy based in DIR --suffix=SUFFIX backup suffix (default ~ w/o --backup-dir) -@@ -510,6 +511,11 @@ the bf(--no-implied-dirs) option would o +@@ -511,6 +512,11 @@ the bf(--no-implied-dirs) option would o which means that if "/path" was a real directory on one machine and a symlink of the other machine, rsync would not try to change this. diff --git a/time-limit.diff b/time-limit.diff index 73b24a4..1cf60bf 100644 --- a/time-limit.diff +++ b/time-limit.diff @@ -41,7 +41,7 @@ Do we need configure support for mktime()? if (t - last_io >= io_timeout) { if (!am_server && !am_daemon) { rprintf(FERROR, "io timeout after %d seconds -- exiting\n", ---- orig/options.c 2005-03-24 16:41:46 +--- orig/options.c 2005-03-28 20:56:55 +++ options.c 2005-01-28 19:35:23 @@ -105,6 +105,7 @@ int checksum_seed = 0; int inplace = 0; @@ -59,8 +59,8 @@ Do we need configure support for mktime()? + rprintf(F," --time-limit=MINS Stop rsync after MINS minutes have elapsed\n"); rprintf(F," --write-batch=FILE write a batched update to FILE\n"); rprintf(F," --read-batch=FILE read a batched update from FILE\n"); - #ifdef INET6 -@@ -360,6 +363,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP + rprintf(F," --protocol=NUM force an older protocol version to be used\n"); +@@ -361,6 +364,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE, @@ -68,7 +68,7 @@ Do we need configure support for mktime()? OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -445,6 +449,8 @@ static struct poptOption long_options[] +@@ -446,6 +450,8 @@ static struct poptOption long_options[] {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, {"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, @@ -77,7 +77,7 @@ Do we need configure support for mktime()? {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 }, -@@ -862,6 +868,36 @@ int parse_arguments(int *argc, const cha +@@ -863,6 +869,36 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -114,7 +114,7 @@ Do we need configure support for mktime()? default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -1347,6 +1383,15 @@ void server_options(char **args,int *arg +@@ -1348,6 +1384,15 @@ void server_options(char **args,int *arg args[ac++] = arg; } @@ -130,7 +130,7 @@ Do we need configure support for mktime()? if (backup_dir) { args[ac++] = "--backup-dir"; args[ac++] = backup_dir; ---- orig/rsync.yo 2005-03-16 02:19:30 +--- orig/rsync.yo 2005-03-28 20:56:55 +++ rsync.yo 2005-02-01 10:46:35 @@ -378,6 +378,8 @@ to the detailed description below for a --password-file=FILE read password from FILE @@ -140,8 +140,8 @@ Do we need configure support for mktime()? + --time-limit=MINS Stop rsync after MINS minutes have elapsed --write-batch=FILE write a batched update to FILE --read-batch=FILE read a batched update from FILE - --checksum-seed=NUM set block/file checksum seed (advanced) -@@ -1266,6 +1268,19 @@ transfer was too fast, it will wait befo + --protocol=NUM force an older protocol version to be used +@@ -1267,6 +1269,19 @@ transfer was too fast, it will wait befo result is an average transfer rate equaling the specified limit. A value of zero specifies no limit.