From d81ce7e38d52970c197ee91dea520561bd4e4492 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sun, 24 May 2020 13:32:02 -0700 Subject: [PATCH] Updated to the latest source. --- acls.diff | 4 ++-- adaptec_acl_mods.diff | 2 +- backup-deleted.diff | 8 +++---- backup-dir-dels.diff | 16 ++++++------- catch_crash_signals.diff | 2 +- checksum-reading.diff | 12 +++++----- checksum-updating.diff | 2 +- checksum-xattr.diff | 2 +- congestion.diff | 8 +++---- copy-devices.diff | 8 +++---- crtimes.diff | 22 +++++++++--------- cvs-entries.diff | 2 +- date-only.diff | 8 +++---- db.diff | 42 +++++++++++++++++----------------- detect-renamed-lax.diff | 6 ++--- detect-renamed.diff | 16 ++++++------- direct-io.diff | 6 ++--- downdate.diff | 6 ++--- fileflags.diff | 30 ++++++++++++------------ filter-attribute-mods.diff | 2 +- fsync.diff | 8 +++---- hfs-compression.diff | 8 +++---- ignore-case.diff | 8 +++---- kerberos.diff | 2 +- link-by-hash.diff | 34 +++++++++++++-------------- nameconverter.diff | 2 +- netgroup-auth.diff | 2 +- omit-dir-changes.diff | 10 ++++---- slow-down.diff | 6 ++--- slp.diff | 8 +++---- soften-links.diff | 2 +- source-backup.diff | 8 +++---- source-filter_dest-filter.diff | 14 ++++++------ sparse-block.diff | 8 +++---- ssh-4-6-options.diff | 2 +- time-limit.diff | 12 +++++----- transliterate.diff | 12 +++++----- tru64.diff | 2 +- xattrs.diff | 2 +- xxhash.diff | 40 ++++++++++++++------------------ 40 files changed, 194 insertions(+), 200 deletions(-) diff --git a/acls.diff b/acls.diff index fefc21f..2a88438 100644 --- a/acls.diff +++ b/acls.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/acls.c b/acls.c --- a/acls.c +++ b/acls.c @@ -325,7 +325,7 @@ diff --git a/acls.c b/acls.c diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -222,13 +222,6 @@ void setup_protocol(int f_out,int f_in) +@@ -457,13 +457,6 @@ void setup_protocol(int f_out,int f_in) if (protocol_version < 30) { if (append_mode == 1) append_mode = 2; diff --git a/adaptec_acl_mods.diff b/adaptec_acl_mods.diff index 43d3d03..dd926a0 100644 --- a/adaptec_acl_mods.diff +++ b/adaptec_acl_mods.diff @@ -24,7 +24,7 @@ Todo: Fix a bug that could lose some bits when stripping some (supposedly) superfluous ACL info. -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/lib/sysacls.c b/lib/sysacls.c --- a/lib/sysacls.c +++ b/lib/sysacls.c diff --git a/backup-deleted.diff b/backup-deleted.diff index 0f07792..32919da 100644 --- a/backup-deleted.diff +++ b/backup-deleted.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -41,7 +41,7 @@ diff --git a/generator.c b/generator.c diff --git a/options.c b/options.c --- a/options.c +++ b/options.c -@@ -692,6 +692,7 @@ void usage(enum logcode F) +@@ -693,6 +693,7 @@ void usage(enum logcode F) rprintf(F," -R, --relative use relative path names\n"); rprintf(F," --no-implied-dirs don't send implied dirs with --relative\n"); rprintf(F," -b, --backup make backups (see --suffix & --backup-dir)\n"); @@ -49,7 +49,7 @@ diff --git a/options.c b/options.c 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); rprintf(F," -u, --update skip files that are newer on the receiver\n"); -@@ -1019,7 +1020,8 @@ static struct poptOption long_options[] = { +@@ -1020,7 +1021,8 @@ static struct poptOption long_options[] = { {"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 }, {"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 }, @@ -59,7 +59,7 @@ diff --git a/options.c b/options.c {"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, -@@ -2750,6 +2752,10 @@ void server_options(char **args, int *argc_p) +@@ -2751,6 +2753,10 @@ void server_options(char **args, int *argc_p) } if (am_sender) { diff --git a/backup-dir-dels.diff b/backup-dir-dels.diff index 35fc9b8..c2618eb 100644 --- a/backup-dir-dels.diff +++ b/backup-dir-dels.diff @@ -229,7 +229,7 @@ diff --git a/options.c b/options.c char *sockopts = NULL; char *usermap = NULL; char *groupmap = NULL; -@@ -695,6 +701,8 @@ void usage(enum logcode F) +@@ -696,6 +702,8 @@ void usage(enum logcode F) rprintf(F," --backup-deleted make backups only of deleted files\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); @@ -238,7 +238,7 @@ diff --git a/options.c b/options.c 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," --append append data onto shorter files\n"); -@@ -1024,7 +1032,9 @@ static struct poptOption long_options[] = { +@@ -1025,7 +1033,9 @@ static struct poptOption long_options[] = { {"backup-deleted", 0, POPT_ARG_VAL, &make_backups, 1, 0, 0 }, {"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, @@ -248,7 +248,7 @@ diff --git a/options.c b/options.c {"list-only", 0, POPT_ARG_VAL, &list_only, 2, 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 }, -@@ -2227,6 +2237,8 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2228,6 +2238,8 @@ int parse_arguments(int *argc_p, const char ***argv_p) tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT); if (backup_dir) backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT); @@ -257,7 +257,7 @@ diff --git a/options.c b/options.c } if (daemon_filter_list.head && !am_sender) { filter_rule_list *elp = &daemon_filter_list; -@@ -2248,6 +2260,14 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2249,6 +2261,14 @@ int parse_arguments(int *argc_p, const char ***argv_p) if (check_filter(elp, FLOG, dir, 1) < 0) goto options_rejected; } @@ -272,7 +272,7 @@ diff --git a/options.c b/options.c } if (!backup_suffix) -@@ -2259,6 +2279,20 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2260,6 +2280,20 @@ int parse_arguments(int *argc_p, const char ***argv_p) backup_suffix); return 0; } @@ -293,7 +293,7 @@ diff --git a/options.c b/options.c if (backup_dir) { size_t len; while (*backup_dir == '.' && backup_dir[1] == '/') -@@ -2294,6 +2328,34 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2295,6 +2329,34 @@ int parse_arguments(int *argc_p, const char ***argv_p) "P *%s", backup_suffix); parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0); } @@ -328,7 +328,7 @@ diff --git a/options.c b/options.c if (preserve_times) { preserve_times = PRESERVE_FILE_TIMES; -@@ -2736,6 +2798,10 @@ void server_options(char **args, int *argc_p) +@@ -2737,6 +2799,10 @@ void server_options(char **args, int *argc_p) args[ac++] = "--backup-dir"; args[ac++] = backup_dir; } @@ -339,7 +339,7 @@ diff --git a/options.c b/options.c /* Only send --suffix if it specifies a non-default value. */ if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) { -@@ -2744,6 +2810,14 @@ void server_options(char **args, int *argc_p) +@@ -2745,6 +2811,14 @@ void server_options(char **args, int *argc_p) goto oom; args[ac++] = arg; } diff --git a/catch_crash_signals.diff b/catch_crash_signals.diff index cb6a2f0..1f2d26a 100644 --- a/catch_crash_signals.diff +++ b/catch_crash_signals.diff @@ -25,7 +25,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/errcode.h b/errcode.h --- a/errcode.h +++ b/errcode.h diff --git a/checksum-reading.diff b/checksum-reading.diff index 1fd9d2a..aef8325 100644 --- a/checksum-reading.diff +++ b/checksum-reading.diff @@ -16,7 +16,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/clientserver.c b/clientserver.c --- a/clientserver.c +++ b/clientserver.c @@ -632,7 +632,7 @@ diff --git a/options.c b/options.c int max_delete = INT_MIN; OFF_T max_size = -1; OFF_T min_size = -1; -@@ -686,6 +687,7 @@ void usage(enum logcode F) +@@ -687,6 +688,7 @@ void usage(enum logcode F) rprintf(F," -q, --quiet suppress non-error messages\n"); rprintf(F," --no-motd suppress daemon-mode MOTD (see manpage caveat)\n"); rprintf(F," -c, --checksum skip based on checksum, not mod-time & size\n"); @@ -640,7 +640,7 @@ diff --git a/options.c b/options.c rprintf(F," -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)\n"); rprintf(F," --no-OPTION turn off an implied OPTION (e.g. --no-D)\n"); rprintf(F," -r, --recursive recurse into directories\n"); -@@ -837,7 +839,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, +@@ -838,7 +840,7 @@ 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_HELP, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE, @@ -649,7 +649,7 @@ diff --git a/options.c b/options.c OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, OPT_SERVER, OPT_REFUSED_BASE = 9000}; -@@ -985,6 +987,7 @@ static struct poptOption long_options[] = { +@@ -986,6 +988,7 @@ static struct poptOption long_options[] = { {"checksum", 'c', POPT_ARG_VAL, &always_checksum, 1, 0, 0 }, {"no-checksum", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 }, {"no-c", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 }, @@ -657,7 +657,7 @@ diff --git a/options.c b/options.c {"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 }, {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 }, {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, -@@ -1792,6 +1795,23 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1793,6 +1796,23 @@ int parse_arguments(int *argc_p, const char ***argv_p) } break; @@ -681,7 +681,7 @@ diff --git a/options.c b/options.c case OPT_INFO: arg = poptGetOptArg(pc); parse_output_words(info_words, info_levels, arg, USER_PRIORITY); -@@ -2072,6 +2092,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2073,6 +2093,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) } #endif diff --git a/checksum-updating.diff b/checksum-updating.diff index 64c8a21..d14e8d5 100644 --- a/checksum-updating.diff +++ b/checksum-updating.diff @@ -547,7 +547,7 @@ diff --git a/loadparm.c b/loadparm.c diff --git a/options.c b/options.c --- a/options.c +++ b/options.c -@@ -1797,7 +1797,15 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1798,7 +1798,15 @@ int parse_arguments(int *argc_p, const char ***argv_p) case OPT_SUMFILES: arg = poptGetOptArg(pc); diff --git a/checksum-xattr.diff b/checksum-xattr.diff index 1996494..5f61f71 100644 --- a/checksum-xattr.diff +++ b/checksum-xattr.diff @@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/flist.c b/flist.c --- a/flist.c +++ b/flist.c diff --git a/congestion.diff b/congestion.diff index a4db218..b16889a 100644 --- a/congestion.diff +++ b/congestion.diff @@ -27,7 +27,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/loadparm.c b/loadparm.c --- a/loadparm.c +++ b/loadparm.c @@ -116,7 +116,7 @@ diff --git a/options.c b/options.c int remove_source_files = 0; int one_file_system = 0; int protocol_version = PROTOCOL_VERSION; -@@ -798,6 +800,8 @@ void usage(enum logcode F) +@@ -799,6 +801,8 @@ void usage(enum logcode F) rprintf(F," --address=ADDRESS bind address for outgoing socket to daemon\n"); rprintf(F," --port=PORT specify double-colon alternate port number\n"); rprintf(F," --sockopts=OPTIONS specify custom TCP options\n"); @@ -125,7 +125,7 @@ diff --git a/options.c b/options.c rprintf(F," --blocking-io use blocking I/O for the remote shell\n"); rprintf(F," --stats give some file-transfer stats\n"); rprintf(F," -8, --8-bit-output leave high-bit chars unescaped in output\n"); -@@ -1067,6 +1071,8 @@ static struct poptOption long_options[] = { +@@ -1068,6 +1072,8 @@ static struct poptOption long_options[] = { #endif {"remote-option", 'M', POPT_ARG_STRING, 0, 'M', 0, 0 }, {"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 }, @@ -134,7 +134,7 @@ diff --git a/options.c b/options.c {"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 }, {"server", 0, POPT_ARG_NONE, 0, OPT_SERVER, 0, 0 }, {"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 }, -@@ -1094,6 +1100,8 @@ static void daemon_usage(enum logcode F) +@@ -1095,6 +1101,8 @@ static void daemon_usage(enum logcode F) rprintf(F," --log-file=FILE override the \"log file\" setting\n"); rprintf(F," --log-file-format=FMT override the \"log format\" setting\n"); rprintf(F," --sockopts=OPTIONS specify custom TCP options\n"); diff --git a/copy-devices.diff b/copy-devices.diff index 722573e..778283a 100644 --- a/copy-devices.diff +++ b/copy-devices.diff @@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -40,7 +40,7 @@ diff --git a/options.c b/options.c int write_devices = 0; int preserve_links = 0; int preserve_hard_links = 0; -@@ -719,6 +720,7 @@ void usage(enum logcode F) +@@ -720,6 +721,7 @@ void usage(enum logcode F) rprintf(F," -o, --owner preserve owner (super-user only)\n"); rprintf(F," -g, --group preserve group\n"); rprintf(F," --devices preserve device files (super-user only)\n"); @@ -48,7 +48,7 @@ diff --git a/options.c b/options.c rprintf(F," --specials preserve special files\n"); rprintf(F," -D same as --devices --specials\n"); rprintf(F," -t, --times preserve modification times\n"); -@@ -910,6 +912,7 @@ static struct poptOption long_options[] = { +@@ -911,6 +913,7 @@ static struct poptOption long_options[] = { {"no-D", 0, POPT_ARG_NONE, 0, OPT_NO_D, 0, 0 }, {"devices", 0, POPT_ARG_VAL, &preserve_devices, 1, 0, 0 }, {"no-devices", 0, POPT_ARG_VAL, &preserve_devices, 0, 0, 0 }, @@ -56,7 +56,7 @@ diff --git a/options.c b/options.c {"write-devices", 0, POPT_ARG_VAL, &write_devices, 1, 0, 0 }, {"no-write-devices", 0, POPT_ARG_VAL, &write_devices, 0, 0, 0 }, {"specials", 0, POPT_ARG_VAL, &preserve_specials, 1, 0, 0 }, -@@ -2918,6 +2921,9 @@ void server_options(char **args, int *argc_p) +@@ -2919,6 +2922,9 @@ void server_options(char **args, int *argc_p) else if (remove_source_files) args[ac++] = "--remove-sent-files"; diff --git a/crtimes.diff b/crtimes.diff index f4f9c8c..a54ecff 100644 --- a/crtimes.diff +++ b/crtimes.diff @@ -12,7 +12,7 @@ based-on: patch/master/fileflags diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -52,6 +52,7 @@ extern int protect_args; +@@ -43,6 +43,7 @@ extern int protect_args; extern int preserve_uid; extern int preserve_gid; extern int preserve_atimes; @@ -20,8 +20,8 @@ diff --git a/compat.c b/compat.c extern int preserve_acls; extern int preserve_xattrs; extern int preserve_fileflags; -@@ -73,7 +74,7 @@ extern char *iconv_opt; - extern const char *negotiated_csum_name; +@@ -78,7 +79,7 @@ int inplace_partial = 0; + int do_negotiated_strings = 0; /* These index values are for the file-list's extra-attribute array. */ -int pathname_ndx, depth_ndx, atimes_ndx, uid_ndx, gid_ndx, fileflags_ndx, acls_ndx, xattrs_ndx, unsort_ndx; @@ -29,7 +29,7 @@ diff --git a/compat.c b/compat.c int receiver_symlink_times = 0; /* receiver can set the time on a symlink */ int sender_symlink_iconv = 0; /* sender should convert symlink content */ -@@ -155,6 +156,8 @@ void setup_protocol(int f_out,int f_in) +@@ -390,6 +391,8 @@ void setup_protocol(int f_out,int f_in) * aligned for direct int64-pointer memory access. */ if (preserve_atimes) atimes_ndx = (file_extra_cnt += EXTRA64_CNT); @@ -38,7 +38,7 @@ diff --git a/compat.c b/compat.c if (am_sender) /* This is most likely in the in64 union as well. */ pathname_ndx = (file_extra_cnt += PTR_EXTRA_CNT); else -@@ -320,6 +323,10 @@ void setup_protocol(int f_out,int f_in) +@@ -555,6 +558,10 @@ void setup_protocol(int f_out,int f_in) want_xattr_optim = protocol_version >= 31 && !(compat_flags & CF_AVOID_XATTR_OPTIM); proper_seed_order = compat_flags & CF_CHKSUM_SEED_FIX ? 1 : 0; xfer_flags_as_varint = compat_flags & CF_VARINT_FLIST_FLAGS ? 1 : 0; @@ -289,7 +289,7 @@ diff --git a/options.c b/options.c int update_only = 0; int open_noatime = 0; int cvs_exclude = 0; -@@ -584,6 +585,7 @@ static void print_rsync_version(enum logcode f) +@@ -585,6 +586,7 @@ static void print_rsync_version(enum logcode f) char const *simd = "no "; char const *xxhash = "no "; char const *fileflags = "no "; @@ -297,7 +297,7 @@ diff --git a/options.c b/options.c STRUCT_STAT *dumstat; #if SUBPROTOCOL_VERSION != 0 -@@ -629,6 +631,9 @@ static void print_rsync_version(enum logcode f) +@@ -630,6 +632,9 @@ static void print_rsync_version(enum logcode f) #ifdef SUPPORT_FILEFLAGS fileflags = ""; #endif @@ -307,7 +307,7 @@ diff --git a/options.c b/options.c rprintf(f, "%s version %s protocol version %d%s\n", RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol); -@@ -644,8 +649,8 @@ static void print_rsync_version(enum logcode f) +@@ -645,8 +650,8 @@ static void print_rsync_version(enum logcode f) got_socketpair, hardlinks, links, ipv6, have_inplace); rprintf(f, " %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash,\n", have_inplace, acls, xattrs, iconv, symtimes, prealloc, simd, xxhash); @@ -318,7 +318,7 @@ diff --git a/options.c b/options.c #ifdef MAINTAINER_MODE rprintf(f, "Panic Action: \"%s\"\n", get_panic_action()); -@@ -735,6 +740,9 @@ void usage(enum logcode F) +@@ -736,6 +741,9 @@ void usage(enum logcode F) rprintf(F," -t, --times preserve modification times\n"); rprintf(F," -U, --atimes preserve access (last-used) times\n"); rprintf(F," --open-noatime avoid changing the atime on opened files\n"); @@ -328,7 +328,7 @@ diff --git a/options.c b/options.c rprintf(F," -O, --omit-dir-times omit directories from --times\n"); rprintf(F," -J, --omit-link-times omit symlinks from --times\n"); rprintf(F," --super receiver attempts super-user activities\n"); -@@ -910,6 +918,11 @@ static struct poptOption long_options[] = { +@@ -911,6 +919,11 @@ static struct poptOption long_options[] = { {"no-U", 0, POPT_ARG_VAL, &preserve_atimes, 0, 0, 0 }, {"open-noatime", 0, POPT_ARG_VAL, &open_noatime, 1, 0, 0 }, {"no-open-noatime", 0, POPT_ARG_VAL, &open_noatime, 0, 0, 0 }, @@ -340,7 +340,7 @@ diff --git a/options.c b/options.c {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 1, 0, 0 }, {"no-omit-dir-times",0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 }, {"no-O", 0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 }, -@@ -2608,6 +2621,10 @@ void server_options(char **args, int *argc_p) +@@ -2609,6 +2622,10 @@ void server_options(char **args, int *argc_p) if (preserve_atimes > 1) argstr[x++] = 'U'; } diff --git a/cvs-entries.diff b/cvs-entries.diff index 29a3297..6acab24 100644 --- a/cvs-entries.diff +++ b/cvs-entries.diff @@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/exclude.c b/exclude.c --- a/exclude.c +++ b/exclude.c diff --git a/date-only.diff b/date-only.diff index 3d5ee82..246b174 100644 --- a/date-only.diff +++ b/date-only.diff @@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -47,7 +47,7 @@ diff --git a/options.c b/options.c int daemon_bwlimit = 0; int bwlimit = 0; int fuzzy_basis = 0; -@@ -774,6 +775,7 @@ void usage(enum logcode F) +@@ -775,6 +776,7 @@ void usage(enum logcode F) rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n"); rprintf(F," -M, --remote-option=OPTION send OPTION to the remote side only\n"); rprintf(F," --size-only skip files that match in size\n"); @@ -55,7 +55,7 @@ diff --git a/options.c b/options.c rprintf(F," -@, --modify-window=NUM set the accuracy for mod-time comparisons\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"); -@@ -937,6 +939,7 @@ static struct poptOption long_options[] = { +@@ -938,6 +940,7 @@ static struct poptOption long_options[] = { {"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, {"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 }, @@ -63,7 +63,7 @@ diff --git a/options.c b/options.c {"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 }, {"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, {"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, -@@ -2801,6 +2804,9 @@ void server_options(char **args, int *argc_p) +@@ -2802,6 +2805,9 @@ void server_options(char **args, int *argc_p) else if (missing_args == 1 && !am_sender) args[ac++] = "--ignore-missing-args"; diff --git a/db.diff b/db.diff index a3b20d6..9468773 100644 --- a/db.diff +++ b/db.diff @@ -21,7 +21,7 @@ To use this patch, run these commands for a successful build: ./configure make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -137,7 +137,7 @@ diff --git a/checksum.c b/checksum.c extern char *checksum_choice; #define CSUM_NONE 0 -@@ -454,6 +455,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) +@@ -310,6 +311,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) MD5_Update(&m5, (uchar *)map_ptr(buf, i, remainder), remainder); MD5_Final((uchar *)sum, &m5); @@ -146,7 +146,7 @@ diff --git a/checksum.c b/checksum.c break; } case CSUM_MD4: -@@ -493,6 +496,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) +@@ -349,6 +352,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) mdfour_update(&m, (uchar *)map_ptr(buf, i, remainder), remainder); mdfour_result(&m, (uchar *)sum); @@ -2536,14 +2536,14 @@ diff --git a/options.c b/options.c int keep_partial = 0; int safe_symlinks = 0; @@ -277,6 +282,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = { + DEBUG_WORD(CHDIR, W_CLI|W_SRV, "Debug when the current directory changes"), DEBUG_WORD(CONNECT, W_CLI, "Debug connection events (levels 1-2)"), DEBUG_WORD(CMD, W_CLI, "Debug commands+options that are issued (levels 1-2)"), - DEBUG_WORD(CSUM, W_CLI|W_SRV, "Debug checksum negotiation"), + DEBUG_WORD(DB, W_SND|W_REC, "Debug DB operations (levels 1-5)"), DEBUG_WORD(DEL, W_REC, "Debug delete actions (levels 1-3)"), DEBUG_WORD(DELTASUM, W_SND|W_REC, "Debug delta-transfer checksumming (levels 1-4)"), DEBUG_WORD(DUP, W_REC, "Debug weeding of duplicate names"), -@@ -581,6 +587,7 @@ static void print_rsync_version(enum logcode f) +@@ -582,6 +588,7 @@ static void print_rsync_version(enum logcode f) char const *ipv6 = "no "; char const *simd = "no "; char const *xxhash = "no "; @@ -2551,7 +2551,7 @@ diff --git a/options.c b/options.c STRUCT_STAT *dumstat; #if SUBPROTOCOL_VERSION != 0 -@@ -623,6 +630,12 @@ static void print_rsync_version(enum logcode f) +@@ -624,6 +631,12 @@ static void print_rsync_version(enum logcode f) #ifdef SUPPORT_XXHASH xxhash = ""; #endif @@ -2564,7 +2564,7 @@ diff --git a/options.c b/options.c rprintf(f, "%s version %s protocol version %d%s\n", RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol); -@@ -636,8 +649,10 @@ static void print_rsync_version(enum logcode f) +@@ -637,8 +650,10 @@ static void print_rsync_version(enum logcode f) (int)(sizeof (int64) * 8)); rprintf(f, " %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n", got_socketpair, hardlinks, links, ipv6, have_inplace); @@ -2576,7 +2576,7 @@ diff --git a/options.c b/options.c #ifdef MAINTAINER_MODE rprintf(f, "Panic Action: \"%s\"\n", get_panic_action()); -@@ -686,6 +701,9 @@ void usage(enum logcode F) +@@ -687,6 +702,9 @@ void usage(enum logcode F) rprintf(F," -q, --quiet suppress non-error messages\n"); rprintf(F," --no-motd suppress daemon-mode MOTD (see manpage caveat)\n"); rprintf(F," -c, --checksum skip based on checksum, not mod-time & size\n"); @@ -2586,7 +2586,7 @@ diff --git a/options.c b/options.c rprintf(F," -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)\n"); rprintf(F," --no-OPTION turn off an implied OPTION (e.g. --no-D)\n"); rprintf(F," -r, --recursive recurse into directories\n"); -@@ -838,6 +856,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, +@@ -839,6 +857,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE, OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG, @@ -2594,7 +2594,7 @@ diff --git a/options.c b/options.c OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, OPT_SERVER, OPT_REFUSED_BASE = 9000}; -@@ -985,6 +1004,10 @@ static struct poptOption long_options[] = { +@@ -986,6 +1005,10 @@ static struct poptOption long_options[] = { {"checksum", 'c', POPT_ARG_VAL, &always_checksum, 1, 0, 0 }, {"no-checksum", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 }, {"no-c", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 }, @@ -2605,7 +2605,7 @@ diff --git a/options.c b/options.c {"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 }, {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 }, {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, -@@ -1076,6 +1099,9 @@ static struct poptOption long_options[] = { +@@ -1077,6 +1100,9 @@ static struct poptOption long_options[] = { {"dparam", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 }, {"detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 }, {"no-detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 }, @@ -2615,7 +2615,7 @@ diff --git a/options.c b/options.c {0,0,0,0, 0, 0, 0} }; -@@ -1129,6 +1155,50 @@ static struct poptOption long_daemon_options[] = { +@@ -1130,6 +1156,50 @@ static struct poptOption long_daemon_options[] = { {0,0,0,0, 0, 0, 0} }; @@ -2666,7 +2666,7 @@ diff --git a/options.c b/options.c static char err_buf[200]; -@@ -1252,6 +1322,8 @@ static void set_refuse_options(void) +@@ -1253,6 +1323,8 @@ static void set_refuse_options(void) parse_one_refuse_match(0, "iconv", list_end); #endif parse_one_refuse_match(0, "log-file*", list_end); @@ -2675,7 +2675,7 @@ diff --git a/options.c b/options.c } /* Now we use the descrip values to actually mark the options for refusal. */ -@@ -1376,6 +1448,102 @@ static void create_refuse_error(int which) +@@ -1377,6 +1449,102 @@ static void create_refuse_error(int which) } } @@ -2778,7 +2778,7 @@ diff --git a/options.c b/options.c /* This is used to make sure that --daemon & --server cannot be aliased to * something else. These options have always disabled popt aliases for the * parsing of a daemon or server command-line, but we have to make sure that -@@ -1414,6 +1582,12 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1415,6 +1583,12 @@ int parse_arguments(int *argc_p, const char ***argv_p) return 0; } @@ -2791,7 +2791,7 @@ diff --git a/options.c b/options.c set_refuse_options(); #ifdef ICONV_OPTION -@@ -1535,6 +1709,12 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1536,6 +1710,12 @@ int parse_arguments(int *argc_p, const char ***argv_p) am_daemon = 1; return 1; @@ -2804,7 +2804,7 @@ diff --git a/options.c b/options.c case OPT_MODIFY_WINDOW: /* The value has already been set by popt, but * we need to remember that we're using a -@@ -1609,6 +1789,10 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1610,6 +1790,10 @@ int parse_arguments(int *argc_p, const char ***argv_p) preserve_devices = preserve_specials = 0; break; @@ -2951,12 +2951,12 @@ diff --git a/rsync.h b/rsync.h #define NDX_DONE -1 #define NDX_FLIST_EOF -2 #define NDX_DEL_STATS -3 -@@ -1318,7 +1322,8 @@ extern short info_levels[], debug_levels[]; +@@ -1330,7 +1334,8 @@ extern short info_levels[], debug_levels[]; + #define DEBUG_CHDIR (DEBUG_BIND+1) #define DEBUG_CONNECT (DEBUG_CHDIR+1) #define DEBUG_CMD (DEBUG_CONNECT+1) - #define DEBUG_CSUM (DEBUG_CMD+1) --#define DEBUG_DEL (DEBUG_CSUM+1) -+#define DEBUG_DB (DEBUG_CSUM+1) +-#define DEBUG_DEL (DEBUG_CMD+1) ++#define DEBUG_DB (DEBUG_CMD+1) +#define DEBUG_DEL (DEBUG_DB+1) #define DEBUG_DELTASUM (DEBUG_DEL+1) #define DEBUG_DUP (DEBUG_DELTASUM+1) diff --git a/detect-renamed-lax.diff b/detect-renamed-lax.diff index b356bb5..b5ced60 100644 --- a/detect-renamed-lax.diff +++ b/detect-renamed-lax.diff @@ -60,7 +60,7 @@ diff --git a/generator.c b/generator.c diff --git a/options.c b/options.c --- a/options.c +++ b/options.c -@@ -779,6 +779,8 @@ void usage(enum logcode F) +@@ -780,6 +780,8 @@ void usage(enum logcode F) 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"); rprintf(F," --detect-renamed try to find renamed files to speed up the transfer\n"); @@ -69,7 +69,7 @@ diff --git a/options.c b/options.c rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n"); rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); -@@ -991,7 +993,9 @@ static struct poptOption long_options[] = { +@@ -992,7 +994,9 @@ 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 }, @@ -80,7 +80,7 @@ diff --git a/options.c b/options.c {"fuzzy", 'y', POPT_ARG_NONE, 0, 'y', 0, 0 }, {"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, {"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, -@@ -2788,8 +2792,14 @@ void server_options(char **args, int *argc_p) +@@ -2789,8 +2793,14 @@ void server_options(char **args, int *argc_p) args[ac++] = "--super"; if (size_only) args[ac++] = "--size-only"; diff --git a/detect-renamed.diff b/detect-renamed.diff index 2bec8a3..cd6d5cf 100644 --- a/detect-renamed.diff +++ b/detect-renamed.diff @@ -38,7 +38,7 @@ TODO: a file that can't use it, while missing out on giving it to a file that could use it. -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/backup.c b/backup.c --- a/backup.c +++ b/backup.c @@ -54,7 +54,7 @@ diff --git a/backup.c b/backup.c diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -47,6 +47,7 @@ extern int checksum_seed; +@@ -38,6 +38,7 @@ extern int checksum_seed; extern int basis_dir_cnt; extern int prune_empty_dirs; extern int protocol_version; @@ -62,7 +62,7 @@ diff --git a/compat.c b/compat.c extern int protect_args; extern int preserve_uid; extern int preserve_gid; -@@ -135,6 +136,7 @@ void set_allow_inc_recurse(void) +@@ -153,6 +154,7 @@ void set_allow_inc_recurse(void) allow_inc_recurse = 0; else if (!am_sender && (delete_before || delete_after @@ -598,7 +598,7 @@ diff --git a/options.c b/options.c int implied_dirs = 1; int missing_args = 0; /* 0 = FERROR_XFER, 1 = ignore, 2 = delete */ int numeric_ids = 0; -@@ -777,6 +778,7 @@ void usage(enum logcode F) +@@ -778,6 +779,7 @@ void usage(enum logcode F) rprintf(F," -@, --modify-window=NUM set the accuracy for mod-time comparisons\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"); @@ -606,7 +606,7 @@ diff --git a/options.c b/options.c rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n"); rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); -@@ -989,6 +991,7 @@ static struct poptOption long_options[] = { +@@ -990,6 +992,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 }, @@ -614,7 +614,7 @@ diff --git a/options.c b/options.c {"fuzzy", 'y', POPT_ARG_NONE, 0, 'y', 0, 0 }, {"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, {"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, -@@ -2384,7 +2387,7 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2385,7 +2388,7 @@ int parse_arguments(int *argc_p, const char ***argv_p) inplace = 1; } @@ -623,7 +623,7 @@ diff --git a/options.c b/options.c partial_dir = tmp_partialdir; if (inplace) { -@@ -2393,6 +2396,7 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2394,6 +2397,7 @@ int parse_arguments(int *argc_p, const char ***argv_p) snprintf(err_buf, sizeof err_buf, "--%s cannot be used with --%s\n", append_mode ? "append" : "inplace", @@ -631,7 +631,7 @@ diff --git a/options.c b/options.c delay_updates ? "delay-updates" : "partial-dir"); return 0; } -@@ -2784,6 +2788,8 @@ void server_options(char **args, int *argc_p) +@@ -2785,6 +2789,8 @@ void server_options(char **args, int *argc_p) args[ac++] = "--super"; if (size_only) args[ac++] = "--size-only"; diff --git a/direct-io.diff b/direct-io.diff index bba6914..774fed9 100644 --- a/direct-io.diff +++ b/direct-io.diff @@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/options.c b/options.c --- a/options.c +++ b/options.c @@ -22,7 +22,7 @@ diff --git a/options.c b/options.c extern int module_id; extern int local_server; extern int sanitize_paths; -@@ -764,6 +765,7 @@ void usage(enum logcode F) +@@ -765,6 +766,7 @@ void usage(enum logcode F) rprintf(F," --partial keep partially transferred files\n"); rprintf(F," --partial-dir=DIR put a partially transferred file into DIR\n"); rprintf(F," --delay-updates put all updated files into place at transfer's end\n"); @@ -30,7 +30,7 @@ diff --git a/options.c b/options.c rprintf(F," -m, --prune-empty-dirs prune empty directory chains from the file-list\n"); rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n"); rprintf(F," --usermap=STRING custom username mapping\n"); -@@ -1007,6 +1009,8 @@ static struct poptOption long_options[] = { +@@ -1008,6 +1010,8 @@ static struct poptOption long_options[] = { {"partial-dir", 0, POPT_ARG_STRING, &partial_dir, 0, 0, 0 }, {"delay-updates", 0, POPT_ARG_VAL, &delay_updates, 1, 0, 0 }, {"no-delay-updates", 0, POPT_ARG_VAL, &delay_updates, 0, 0, 0 }, diff --git a/downdate.diff b/downdate.diff index 7201088..4737d02 100644 --- a/downdate.diff +++ b/downdate.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -59,7 +59,7 @@ diff --git a/options.c b/options.c int update_only = 0; int open_noatime = 0; int cvs_exclude = 0; -@@ -695,6 +696,7 @@ void usage(enum logcode F) +@@ -696,6 +697,7 @@ void usage(enum logcode F) 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); rprintf(F," -u, --update skip files that are newer on the receiver\n"); @@ -67,7 +67,7 @@ diff --git a/options.c b/options.c rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n"); rprintf(F," --append append data onto shorter files\n"); rprintf(F," --append-verify like --append, but with old data in file checksum\n"); -@@ -941,6 +943,7 @@ static struct poptOption long_options[] = { +@@ -942,6 +944,7 @@ static struct poptOption long_options[] = { {"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, {"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, {"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 }, diff --git a/fileflags.diff b/fileflags.diff index 8a96c12..2b9e20f 100644 --- a/fileflags.diff +++ b/fileflags.diff @@ -7,11 +7,11 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -47,12 +47,14 @@ extern int checksum_seed; +@@ -38,12 +38,14 @@ extern int checksum_seed; extern int basis_dir_cnt; extern int prune_empty_dirs; extern int protocol_version; @@ -26,8 +26,8 @@ diff --git a/compat.c b/compat.c extern int xfer_flags_as_varint; extern int need_messages_from_generator; extern int delete_mode, delete_before, delete_during, delete_after; -@@ -71,7 +73,7 @@ extern char *iconv_opt; - extern const char *negotiated_csum_name; +@@ -76,7 +78,7 @@ int inplace_partial = 0; + int do_negotiated_strings = 0; /* These index values are for the file-list's extra-attribute array. */ -int pathname_ndx, depth_ndx, atimes_ndx, uid_ndx, gid_ndx, acls_ndx, xattrs_ndx, unsort_ndx; @@ -35,7 +35,7 @@ diff --git a/compat.c b/compat.c int receiver_symlink_times = 0; /* receiver can set the time on a symlink */ int sender_symlink_iconv = 0; /* sender should convert symlink content */ -@@ -161,6 +163,8 @@ void setup_protocol(int f_out,int f_in) +@@ -396,6 +398,8 @@ void setup_protocol(int f_out,int f_in) uid_ndx = ++file_extra_cnt; if (preserve_gid) gid_ndx = ++file_extra_cnt; @@ -44,7 +44,7 @@ diff --git a/compat.c b/compat.c if (preserve_acls && !am_sender) acls_ndx = ++file_extra_cnt; if (preserve_xattrs) -@@ -316,6 +320,10 @@ void setup_protocol(int f_out,int f_in) +@@ -551,6 +555,10 @@ void setup_protocol(int f_out,int f_in) want_xattr_optim = protocol_version >= 31 && !(compat_flags & CF_AVOID_XATTR_OPTIM); proper_seed_order = compat_flags & CF_CHKSUM_SEED_FIX ? 1 : 0; xfer_flags_as_varint = compat_flags & CF_VARINT_FLIST_FLAGS ? 1 : 0; @@ -380,7 +380,7 @@ diff --git a/options.c b/options.c int io_timeout = 0; int prune_empty_dirs = 0; int use_qsort = 0; -@@ -581,6 +583,7 @@ static void print_rsync_version(enum logcode f) +@@ -582,6 +584,7 @@ static void print_rsync_version(enum logcode f) char const *ipv6 = "no "; char const *simd = "no "; char const *xxhash = "no "; @@ -388,7 +388,7 @@ diff --git a/options.c b/options.c STRUCT_STAT *dumstat; #if SUBPROTOCOL_VERSION != 0 -@@ -623,6 +626,9 @@ static void print_rsync_version(enum logcode f) +@@ -624,6 +627,9 @@ static void print_rsync_version(enum logcode f) #ifdef SUPPORT_XXHASH xxhash = ""; #endif @@ -398,7 +398,7 @@ diff --git a/options.c b/options.c rprintf(f, "%s version %s protocol version %d%s\n", RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol); -@@ -636,8 +642,10 @@ static void print_rsync_version(enum logcode f) +@@ -637,8 +643,10 @@ static void print_rsync_version(enum logcode f) (int)(sizeof (int64) * 8)); rprintf(f, " %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n", got_socketpair, hardlinks, links, ipv6, have_inplace); @@ -410,7 +410,7 @@ diff --git a/options.c b/options.c #ifdef MAINTAINER_MODE rprintf(f, "Panic Action: \"%s\"\n", get_panic_action()); -@@ -708,6 +716,9 @@ void usage(enum logcode F) +@@ -709,6 +717,9 @@ void usage(enum logcode F) rprintf(F," -K, --keep-dirlinks treat symlinked dir on receiver as dir\n"); rprintf(F," -H, --hard-links preserve hard links\n"); rprintf(F," -p, --perms preserve permissions\n"); @@ -420,7 +420,7 @@ diff --git a/options.c b/options.c rprintf(F," -E, --executability preserve the file's executability\n"); rprintf(F," --chmod=CHMOD affect file and/or directory permissions\n"); #ifdef SUPPORT_ACLS -@@ -757,7 +768,12 @@ void usage(enum logcode F) +@@ -758,7 +769,12 @@ void usage(enum logcode F) rprintf(F," --ignore-missing-args ignore missing source args without error\n"); rprintf(F," --delete-missing-args delete missing source args from destination\n"); rprintf(F," --ignore-errors delete even if there are I/O errors\n"); @@ -434,7 +434,7 @@ diff --git a/options.c b/options.c rprintf(F," --max-delete=NUM don't delete more than NUM files\n"); rprintf(F," --max-size=SIZE don't transfer any file larger than SIZE\n"); rprintf(F," --min-size=SIZE don't transfer any file smaller than SIZE\n"); -@@ -875,6 +891,10 @@ static struct poptOption long_options[] = { +@@ -876,6 +892,10 @@ static struct poptOption long_options[] = { {"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 }, {"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 }, {"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 }, @@ -445,7 +445,7 @@ diff --git a/options.c b/options.c {"executability", 'E', POPT_ARG_NONE, &preserve_executability, 0, 0, 0 }, {"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 }, {"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 }, -@@ -968,6 +988,14 @@ static struct poptOption long_options[] = { +@@ -969,6 +989,14 @@ static struct poptOption long_options[] = { {"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 }, {"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 }, {"no-force", 0, POPT_ARG_VAL, &force_delete, 0, 0, 0 }, @@ -460,7 +460,7 @@ diff --git a/options.c b/options.c {"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 }, {"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 }, {"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 }, -@@ -2685,6 +2713,9 @@ void server_options(char **args, int *argc_p) +@@ -2686,6 +2714,9 @@ void server_options(char **args, int *argc_p) if (xfer_dirs && !recurse && delete_mode && am_sender) args[ac++] = "--no-r"; @@ -470,7 +470,7 @@ diff --git a/options.c b/options.c if (do_compression && def_compress_level != Z_DEFAULT_COMPRESSION) { if (asprintf(&arg, "--compress-level=%d", def_compress_level) < 0) goto oom; -@@ -2778,6 +2809,16 @@ void server_options(char **args, int *argc_p) +@@ -2779,6 +2810,16 @@ void server_options(char **args, int *argc_p) args[ac++] = "--delete-excluded"; if (force_delete) args[ac++] = "--force"; diff --git a/filter-attribute-mods.diff b/filter-attribute-mods.diff index a50e162..2b5c0d7 100644 --- a/filter-attribute-mods.diff +++ b/filter-attribute-mods.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/exclude.c b/exclude.c --- a/exclude.c +++ b/exclude.c diff --git a/fsync.diff b/fsync.diff index a017333..be17f34 100644 --- a/fsync.diff +++ b/fsync.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/options.c b/options.c --- a/options.c +++ b/options.c @@ -19,7 +19,7 @@ diff --git a/options.c b/options.c int ignore_times = 0; int delete_mode = 0; int delete_during = 0; -@@ -765,6 +766,7 @@ void usage(enum logcode F) +@@ -766,6 +767,7 @@ void usage(enum logcode F) rprintf(F," --partial-dir=DIR put a partially transferred file into DIR\n"); rprintf(F," --delay-updates put all updated files into place at transfer's end\n"); rprintf(F," -m, --prune-empty-dirs prune empty directory chains from the file-list\n"); @@ -27,7 +27,7 @@ diff --git a/options.c b/options.c rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n"); rprintf(F," --usermap=STRING custom username mapping\n"); rprintf(F," --groupmap=STRING custom groupname mapping\n"); -@@ -1042,6 +1044,7 @@ static struct poptOption long_options[] = { +@@ -1043,6 +1045,7 @@ static struct poptOption long_options[] = { {"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 }, {"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 }, {"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 }, @@ -35,7 +35,7 @@ diff --git a/options.c b/options.c {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, {"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 }, -@@ -2864,6 +2867,9 @@ void server_options(char **args, int *argc_p) +@@ -2865,6 +2868,9 @@ void server_options(char **args, int *argc_p) args[ac++] = tmpdir; } diff --git a/hfs-compression.diff b/hfs-compression.diff index 24810db..4523bc6 100644 --- a/hfs-compression.diff +++ b/hfs-compression.diff @@ -256,7 +256,7 @@ diff --git a/options.c b/options.c int preserve_perms = 0; int preserve_fileflags = 0; int preserve_executability = 0; -@@ -731,6 +732,10 @@ void usage(enum logcode F) +@@ -732,6 +733,10 @@ void usage(enum logcode F) #endif #ifdef SUPPORT_XATTRS rprintf(F," -X, --xattrs preserve extended attributes\n"); @@ -267,7 +267,7 @@ diff --git a/options.c b/options.c #endif rprintf(F," -o, --owner preserve owner (super-user only)\n"); rprintf(F," -g, --group preserve group\n"); -@@ -1008,6 +1013,12 @@ static struct poptOption long_options[] = { +@@ -1009,6 +1014,12 @@ static struct poptOption long_options[] = { {"no-force-change", 0, POPT_ARG_VAL, &force_change, 0, 0, 0 }, {"force-uchange", 0, POPT_ARG_VAL, &force_change, USR_IMMUTABLE, 0, 0 }, {"force-schange", 0, POPT_ARG_VAL, &force_change, SYS_IMMUTABLE, 0, 0 }, @@ -280,7 +280,7 @@ diff --git a/options.c b/options.c #endif {"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 }, {"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 }, -@@ -2113,6 +2124,15 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2114,6 +2125,15 @@ int parse_arguments(int *argc_p, const char ***argv_p) } #endif @@ -296,7 +296,7 @@ diff --git a/options.c b/options.c if (block_size) { /* We may not know the real protocol_version at this point if this is the client * option parsing, but we still want to check it so that the client can specify -@@ -2733,6 +2753,11 @@ void server_options(char **args, int *argc_p) +@@ -2734,6 +2754,11 @@ void server_options(char **args, int *argc_p) if (preserve_fileflags) args[ac++] = "--fileflags"; diff --git a/ignore-case.diff b/ignore-case.diff index 003e1a1..82cad91 100644 --- a/ignore-case.diff +++ b/ignore-case.diff @@ -12,7 +12,7 @@ TODO: - Make this code handle multibyte character encodings, and honor the --iconv setting when converting case. -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/exclude.c b/exclude.c --- a/exclude.c +++ b/exclude.c @@ -220,7 +220,7 @@ diff --git a/options.c b/options.c int blocking_io = -1; int checksum_seed = 0; int inplace = 0; -@@ -795,6 +796,7 @@ void usage(enum logcode F) +@@ -796,6 +797,7 @@ void usage(enum logcode F) rprintf(F," -0, --from0 all *-from/filter files are delimited by 0s\n"); rprintf(F," -s, --protect-args no space-splitting; only wildcard special-chars\n"); rprintf(F," --copy-as=USER[:GROUP] specify user & optional group for the copy\n"); @@ -228,7 +228,7 @@ diff --git a/options.c b/options.c rprintf(F," --address=ADDRESS bind address for outgoing socket to daemon\n"); rprintf(F," --port=PORT specify double-colon alternate port number\n"); rprintf(F," --sockopts=OPTIONS specify custom TCP options\n"); -@@ -1027,6 +1029,8 @@ static struct poptOption long_options[] = { +@@ -1028,6 +1030,8 @@ static struct poptOption long_options[] = { {"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 }, {"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 }, @@ -237,7 +237,7 @@ diff --git a/options.c b/options.c {"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 }, {"from0", '0', POPT_ARG_VAL, &eol_nulls, 1, 0, 0}, {"no-from0", 0, POPT_ARG_VAL, &eol_nulls, 0, 0, 0}, -@@ -2814,6 +2818,9 @@ void server_options(char **args, int *argc_p) +@@ -2815,6 +2819,9 @@ void server_options(char **args, int *argc_p) args[ac++] = arg; } diff --git a/kerberos.diff b/kerberos.diff index d8e596b..63d2cab 100644 --- a/kerberos.diff +++ b/kerberos.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: ./configure make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/Makefile.in b/Makefile.in --- a/Makefile.in +++ b/Makefile.in diff --git a/link-by-hash.diff b/link-by-hash.diff index 4f7c138..74c5a18 100644 --- a/link-by-hash.diff +++ b/link-by-hash.diff @@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build: ./configure make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/Makefile.in b/Makefile.in --- a/Makefile.in +++ b/Makefile.in @@ -41,7 +41,7 @@ diff --git a/checksum.c b/checksum.c extern char *checksum_choice; #define CSUM_NONE 0 -@@ -540,7 +543,7 @@ static union { +@@ -397,7 +400,7 @@ static union { MD4_CTX m4; #endif MD5_CTX m5; @@ -50,7 +50,7 @@ diff --git a/checksum.c b/checksum.c #ifdef SUPPORT_XXHASH static XXH64_state_t* xxh64_state; #endif -@@ -557,6 +560,8 @@ void sum_init(int csum_type, int seed) +@@ -414,6 +417,8 @@ void sum_init(int csum_type, int seed) switch (csum_type) { case CSUM_MD5: MD5_Init(&ctx.m5); @@ -59,7 +59,7 @@ diff --git a/checksum.c b/checksum.c break; case CSUM_MD4: #ifdef USE_OPENSSL -@@ -607,6 +612,8 @@ void sum_update(const char *p, int32 len) +@@ -464,6 +469,8 @@ void sum_update(const char *p, int32 len) switch (cursum_type) { case CSUM_MD5: MD5_Update(&ctx.m5, (uchar *)p, len); @@ -68,7 +68,7 @@ diff --git a/checksum.c b/checksum.c break; case CSUM_MD4: #ifdef USE_OPENSSL -@@ -664,6 +671,8 @@ int sum_end(char *sum) +@@ -521,6 +528,8 @@ int sum_end(char *sum) switch (cursum_type) { case CSUM_MD5: MD5_Final((uchar *)sum, &ctx.m5); @@ -101,10 +101,10 @@ diff --git a/clientserver.c b/clientserver.c diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -62,6 +62,7 @@ extern char *dest_option; - extern char *files_from; +@@ -57,6 +57,7 @@ extern char *files_from; extern char *filesfrom_host; extern char *checksum_choice; + extern char *compress_choice; +extern char *link_by_hash_dir; extern filter_rule_list filter_list; extern int need_unsorted_flist; @@ -268,7 +268,7 @@ diff --git a/options.c b/options.c char *config_file = NULL; char *shell_cmd = NULL; char *logfile_name = NULL; -@@ -215,7 +216,7 @@ static const char *debug_verbosity[] = { +@@ -216,7 +217,7 @@ static const char *debug_verbosity[] = { /*2*/ "BIND,CMD,CONNECT,DEL,DELTASUM,DUP,FILTER,FLIST,ICONV", /*3*/ "ACL,BACKUP,CONNECT2,DELTASUM2,DEL2,EXIT,FILTER2,FLIST2,FUZZY,GENR,OWN,RECV,SEND,TIME", /*4*/ "CMD2,DELTASUM3,DEL3,EXIT2,FLIST3,ICONV2,OWN2,PROTO,TIME2", @@ -285,7 +285,7 @@ diff --git a/options.c b/options.c DEBUG_WORD(HLINK, W_SND|W_REC, "Debug hard-link actions (levels 1-3)"), DEBUG_WORD(ICONV, W_CLI|W_SRV, "Debug iconv character conversions (levels 1-2)"), DEBUG_WORD(IO, W_CLI|W_SRV, "Debug I/O routines (levels 1-4)"), -@@ -780,6 +782,7 @@ void usage(enum logcode F) +@@ -781,6 +783,7 @@ void usage(enum logcode F) rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n"); rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); @@ -293,7 +293,7 @@ diff --git a/options.c b/options.c rprintf(F," -z, --compress compress file data during the transfer\n"); rprintf(F," --compress-level=NUM explicitly set compression level\n"); rprintf(F," --skip-compress=LIST skip compressing files with a suffix in LIST\n"); -@@ -837,7 +840,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, +@@ -838,7 +841,7 @@ 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_HELP, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE, @@ -302,7 +302,7 @@ diff --git a/options.c b/options.c OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, OPT_SERVER, OPT_REFUSED_BASE = 9000}; -@@ -989,6 +992,7 @@ static struct poptOption long_options[] = { +@@ -990,6 +993,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 }, @@ -310,7 +310,7 @@ diff --git a/options.c b/options.c {"fuzzy", 'y', POPT_ARG_NONE, 0, 'y', 0, 0 }, {"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, {"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 }, -@@ -1421,6 +1425,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1422,6 +1426,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) iconv_opt = strdup(arg); #endif @@ -320,7 +320,7 @@ diff --git a/options.c b/options.c /* TODO: Call poptReadDefaultConfig; handle errors. */ /* The context leaks in case of an error, but if there's a -@@ -1904,6 +1911,21 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1905,6 +1912,21 @@ int parse_arguments(int *argc_p, const char ***argv_p) return 0; #endif @@ -342,7 +342,7 @@ diff --git a/options.c b/options.c default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -2225,6 +2247,8 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2226,6 +2248,8 @@ int parse_arguments(int *argc_p, const char ***argv_p) tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT); if (backup_dir) backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT); @@ -351,7 +351,7 @@ diff --git a/options.c b/options.c } if (daemon_filter_list.head && !am_sender) { filter_rule_list *elp = &daemon_filter_list; -@@ -2893,6 +2917,12 @@ void server_options(char **args, int *argc_p) +@@ -2894,6 +2918,12 @@ void server_options(char **args, int *argc_p) } else if (inplace) args[ac++] = "--inplace"; @@ -389,7 +389,7 @@ diff --git a/rsync.c b/rsync.c diff --git a/rsync.h b/rsync.h --- a/rsync.h +++ b/rsync.h -@@ -1327,7 +1327,8 @@ extern short info_levels[], debug_levels[]; +@@ -1339,7 +1339,8 @@ extern short info_levels[], debug_levels[]; #define DEBUG_FUZZY (DEBUG_FLIST+1) #define DEBUG_GENR (DEBUG_FUZZY+1) #define DEBUG_HASH (DEBUG_GENR+1) @@ -398,7 +398,7 @@ diff --git a/rsync.h b/rsync.h +#define DEBUG_HLINK (DEBUG_HASHLINK+1) #define DEBUG_ICONV (DEBUG_HLINK+1) #define DEBUG_IO (DEBUG_ICONV+1) - #define DEBUG_OWN (DEBUG_IO+1) + #define DEBUG_NSTR (DEBUG_IO+1) diff --git a/rsync.yo b/rsync.yo --- a/rsync.yo +++ b/rsync.yo diff --git a/nameconverter.diff b/nameconverter.diff index 714d934..4f93310 100644 --- a/nameconverter.diff +++ b/nameconverter.diff @@ -20,7 +20,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/authenticate.c b/authenticate.c --- a/authenticate.c +++ b/authenticate.c diff --git a/netgroup-auth.diff b/netgroup-auth.diff index fe8cc44..ee4bea1 100644 --- a/netgroup-auth.diff +++ b/netgroup-auth.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/access.c b/access.c --- a/access.c +++ b/access.c diff --git a/omit-dir-changes.diff b/omit-dir-changes.diff index 0cddfbb..b8af153 100644 --- a/omit-dir-changes.diff +++ b/omit-dir-changes.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -62,7 +62,7 @@ diff --git a/options.c b/options.c int one_file_system = 0; int protocol_version = PROTOCOL_VERSION; int sparse_files = 0; -@@ -726,6 +727,7 @@ void usage(enum logcode F) +@@ -727,6 +728,7 @@ void usage(enum logcode F) rprintf(F," --open-noatime avoid changing the atime on opened files\n"); rprintf(F," -O, --omit-dir-times omit directories from --times\n"); rprintf(F," -J, --omit-link-times omit symlinks from --times\n"); @@ -70,7 +70,7 @@ diff --git a/options.c b/options.c rprintf(F," --super receiver attempts super-user activities\n"); #ifdef SUPPORT_XATTRS rprintf(F," --fake-super store/recover privileged attrs using xattrs\n"); -@@ -896,6 +898,7 @@ static struct poptOption long_options[] = { +@@ -897,6 +899,7 @@ static struct poptOption long_options[] = { {"omit-link-times", 'J', POPT_ARG_VAL, &omit_link_times, 1, 0, 0 }, {"no-omit-link-times",0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 }, {"no-J", 0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 }, @@ -78,7 +78,7 @@ diff --git a/options.c b/options.c {"modify-window", '@', POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 }, {"super", 0, POPT_ARG_VAL, &am_root, 2, 0, 0 }, {"no-super", 0, POPT_ARG_VAL, &am_root, 0, 0, 0 }, -@@ -2293,6 +2296,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2294,6 +2297,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0); } @@ -88,7 +88,7 @@ diff --git a/options.c b/options.c if (preserve_times) { preserve_times = PRESERVE_FILE_TIMES; if (!omit_dir_times) -@@ -2544,6 +2550,8 @@ void server_options(char **args, int *argc_p) +@@ -2545,6 +2551,8 @@ void server_options(char **args, int *argc_p) argstr[x++] = 'O'; if (omit_link_times) argstr[x++] = 'J'; diff --git a/slow-down.diff b/slow-down.diff index 577be69..e689d97 100644 --- a/slow-down.diff +++ b/slow-down.diff @@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/flist.c b/flist.c --- a/flist.c +++ b/flist.c @@ -47,7 +47,7 @@ diff --git a/options.c b/options.c size_t bwlimit_writemax = 0; int ignore_existing = 0; int ignore_non_existing = 0; -@@ -811,6 +812,7 @@ void usage(enum logcode F) +@@ -812,6 +813,7 @@ void usage(enum logcode F) rprintf(F," --password-file=FILE read daemon-access password from FILE\n"); rprintf(F," --list-only list the files instead of copying them\n"); rprintf(F," --bwlimit=RATE limit socket I/O bandwidth\n"); @@ -55,7 +55,7 @@ diff --git a/options.c b/options.c #ifdef HAVE_SETVBUF rprintf(F," --outbuf=N|L|B set output buffering to None, Line, or Block\n"); #endif -@@ -1017,6 +1019,7 @@ static struct poptOption long_options[] = { +@@ -1018,6 +1020,7 @@ static struct poptOption long_options[] = { {"itemize-changes", 'i', POPT_ARG_NONE, 0, 'i', 0, 0 }, {"no-itemize-changes",0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 }, {"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 }, diff --git a/slp.diff b/slp.diff index d6b7db5..ff64dfe 100644 --- a/slp.diff +++ b/slp.diff @@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build: TODO: the configure changes should abort if the user requests --enable-slp and we can't honor that request. -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/Makefile.in b/Makefile.in --- a/Makefile.in +++ b/Makefile.in @@ -149,7 +149,7 @@ diff --git a/main.c b/main.c diff --git a/options.c b/options.c --- a/options.c +++ b/options.c -@@ -581,6 +581,7 @@ static void print_rsync_version(enum logcode f) +@@ -582,6 +582,7 @@ static void print_rsync_version(enum logcode f) char const *ipv6 = "no "; char const *simd = "no "; char const *xxhash = "no "; @@ -157,7 +157,7 @@ diff --git a/options.c b/options.c STRUCT_STAT *dumstat; #if SUBPROTOCOL_VERSION != 0 -@@ -623,6 +624,9 @@ static void print_rsync_version(enum logcode f) +@@ -624,6 +625,9 @@ static void print_rsync_version(enum logcode f) #ifdef SUPPORT_XXHASH xxhash = ""; #endif @@ -167,7 +167,7 @@ diff --git a/options.c b/options.c rprintf(f, "%s version %s protocol version %d%s\n", RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol); -@@ -636,8 +640,10 @@ static void print_rsync_version(enum logcode f) +@@ -637,8 +641,10 @@ static void print_rsync_version(enum logcode f) (int)(sizeof (int64) * 8)); rprintf(f, " %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n", got_socketpair, hardlinks, links, ipv6, have_inplace); diff --git a/soften-links.diff b/soften-links.diff index 19c43a6..f7e981c 100644 --- a/soften-links.diff +++ b/soften-links.diff @@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/syscall.c b/syscall.c --- a/syscall.c +++ b/syscall.c diff --git a/source-backup.diff b/source-backup.diff index 93f51e5..6e1cc81 100644 --- a/source-backup.diff +++ b/source-backup.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: -- Matt McCutchen -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/options.c b/options.c --- a/options.c +++ b/options.c @@ -21,7 +21,7 @@ diff --git a/options.c b/options.c /** * If 1, send the whole file as literal data rather than trying to -@@ -747,6 +748,7 @@ void usage(enum logcode F) +@@ -748,6 +749,7 @@ void usage(enum logcode F) rprintf(F," --existing skip creating new files on receiver\n"); rprintf(F," --ignore-existing skip updating files that already exist on receiver\n"); rprintf(F," --remove-source-files sender removes synchronized files (non-dirs)\n"); @@ -29,7 +29,7 @@ diff --git a/options.c b/options.c rprintf(F," --del an alias for --delete-during\n"); rprintf(F," --delete delete extraneous files from destination dirs\n"); rprintf(F," --delete-before receiver deletes before transfer, not during\n"); -@@ -1020,6 +1022,7 @@ static struct poptOption long_options[] = { +@@ -1021,6 +1023,7 @@ static struct poptOption long_options[] = { {"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 }, {"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 }, {"backup", 'b', POPT_ARG_VAL, &make_backups, 1, 0, 0 }, @@ -37,7 +37,7 @@ diff --git a/options.c b/options.c {"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, -@@ -2792,6 +2795,8 @@ void server_options(char **args, int *argc_p) +@@ -2793,6 +2796,8 @@ void server_options(char **args, int *argc_p) goto oom; args[ac++] = arg; } diff --git a/source-filter_dest-filter.diff b/source-filter_dest-filter.diff index 400e405..f12bad7 100644 --- a/source-filter_dest-filter.diff +++ b/source-filter_dest-filter.diff @@ -30,7 +30,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -83,7 +83,7 @@ diff --git a/options.c b/options.c char *rsync_path = RSYNC_PATH; char *backup_dir = NULL; char backup_dir_buf[MAXPATHLEN]; -@@ -774,6 +777,7 @@ void usage(enum logcode F) +@@ -775,6 +778,7 @@ void usage(enum logcode F) rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n"); rprintf(F," -M, --remote-option=OPTION send OPTION to the remote side only\n"); rprintf(F," --size-only skip files that match in size\n"); @@ -91,7 +91,7 @@ diff --git a/options.c b/options.c rprintf(F," -@, --modify-window=NUM set the accuracy for mod-time comparisons\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"); -@@ -817,6 +821,8 @@ void usage(enum logcode F) +@@ -818,6 +822,8 @@ void usage(enum logcode F) 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"); @@ -100,7 +100,7 @@ diff --git a/options.c b/options.c rprintf(F," --protocol=NUM force an older protocol version to be used\n"); #ifdef ICONV_OPTION rprintf(F," --iconv=CONVERT_SPEC request charset conversion of filenames\n"); -@@ -937,6 +943,7 @@ static struct poptOption long_options[] = { +@@ -938,6 +944,7 @@ static struct poptOption long_options[] = { {"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, {"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 }, @@ -108,7 +108,7 @@ diff --git a/options.c b/options.c {"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 }, {"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, {"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 }, -@@ -1062,6 +1069,8 @@ static struct poptOption long_options[] = { +@@ -1063,6 +1070,8 @@ static struct poptOption long_options[] = { {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, {"blocking-io", 0, POPT_ARG_VAL, &blocking_io, 1, 0, 0 }, {"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 }, @@ -117,7 +117,7 @@ diff --git a/options.c b/options.c #ifdef HAVE_SETVBUF {"outbuf", 0, POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 }, #endif -@@ -2428,6 +2437,16 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2429,6 +2438,16 @@ int parse_arguments(int *argc_p, const char ***argv_p) } } @@ -134,7 +134,7 @@ diff --git a/options.c b/options.c if (files_from) { char *h, *p; int q; -@@ -2801,6 +2820,25 @@ void server_options(char **args, int *argc_p) +@@ -2802,6 +2821,25 @@ void server_options(char **args, int *argc_p) else if (missing_args == 1 && !am_sender) args[ac++] = "--ignore-missing-args"; diff --git a/sparse-block.diff b/sparse-block.diff index eb5646a..2162e1e 100644 --- a/sparse-block.diff +++ b/sparse-block.diff @@ -18,7 +18,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/fileio.c b/fileio.c --- a/fileio.c +++ b/fileio.c @@ -50,7 +50,7 @@ diff --git a/options.c b/options.c int preallocate_files = 0; int do_compression = 0; int def_compress_level = NOT_SPECIFIED; -@@ -731,6 +732,7 @@ void usage(enum logcode F) +@@ -732,6 +733,7 @@ void usage(enum logcode F) rprintf(F," --fake-super store/recover privileged attrs using xattrs\n"); #endif rprintf(F," -S, --sparse turn sequences of nulls into sparse blocks\n"); @@ -58,7 +58,7 @@ diff --git a/options.c b/options.c #ifdef SUPPORT_PREALLOCATION rprintf(F," --preallocate allocate dest files before writing them\n"); #else -@@ -949,6 +951,7 @@ static struct poptOption long_options[] = { +@@ -950,6 +952,7 @@ static struct poptOption long_options[] = { {"sparse", 'S', POPT_ARG_VAL, &sparse_files, 1, 0, 0 }, {"no-sparse", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 }, {"no-S", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 }, @@ -66,7 +66,7 @@ diff --git a/options.c b/options.c {"preallocate", 0, POPT_ARG_NONE, &preallocate_files, 0, 0, 0}, {"inplace", 0, POPT_ARG_VAL, &inplace, 1, 0, 0 }, {"no-inplace", 0, POPT_ARG_VAL, &inplace, 0, 0, 0 }, -@@ -2718,6 +2721,12 @@ void server_options(char **args, int *argc_p) +@@ -2719,6 +2722,12 @@ void server_options(char **args, int *argc_p) args[ac++] = arg; } diff --git a/ssh-4-6-options.diff b/ssh-4-6-options.diff index 53a9fd3..566dbf0 100644 --- a/ssh-4-6-options.diff +++ b/ssh-4-6-options.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/main.c b/main.c --- a/main.c +++ b/main.c diff --git a/time-limit.diff b/time-limit.diff index 74459f7..6c22923 100644 --- a/time-limit.diff +++ b/time-limit.diff @@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/io.c b/io.c --- a/io.c +++ b/io.c @@ -53,7 +53,7 @@ diff --git a/options.c b/options.c int max_delete = INT_MIN; OFF_T max_size = -1; OFF_T min_size = -1; -@@ -811,6 +812,8 @@ void usage(enum logcode F) +@@ -812,6 +813,8 @@ void usage(enum logcode F) rprintf(F," --password-file=FILE read daemon-access password from FILE\n"); rprintf(F," --list-only list the files instead of copying them\n"); rprintf(F," --bwlimit=RATE limit socket I/O bandwidth\n"); @@ -62,7 +62,7 @@ diff --git a/options.c b/options.c #ifdef HAVE_SETVBUF rprintf(F," --outbuf=N|L|B set output buffering to None, Line, or Block\n"); #endif -@@ -839,6 +842,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, +@@ -840,6 +843,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE, OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG, OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, @@ -70,7 +70,7 @@ diff --git a/options.c b/options.c OPT_SERVER, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -1042,6 +1046,8 @@ static struct poptOption long_options[] = { +@@ -1043,6 +1047,8 @@ static struct poptOption long_options[] = { {"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 }, {"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 }, {"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 }, @@ -79,7 +79,7 @@ diff --git a/options.c b/options.c {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, {"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 }, -@@ -1904,6 +1910,36 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1905,6 +1911,36 @@ int parse_arguments(int *argc_p, const char ***argv_p) return 0; #endif @@ -116,7 +116,7 @@ diff --git a/options.c b/options.c default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -2730,6 +2766,15 @@ void server_options(char **args, int *argc_p) +@@ -2731,6 +2767,15 @@ void server_options(char **args, int *argc_p) args[ac++] = arg; } diff --git a/transliterate.diff b/transliterate.diff index 7ca3ee2..c9f3919 100644 --- a/transliterate.diff +++ b/transliterate.diff @@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/flist.c b/flist.c --- a/flist.c +++ b/flist.c @@ -88,7 +88,7 @@ diff --git a/flist.c b/flist.c diff --git a/options.c b/options.c --- a/options.c +++ b/options.c -@@ -198,6 +198,7 @@ int logfile_format_has_i = 0; +@@ -199,6 +199,7 @@ int logfile_format_has_i = 0; int logfile_format_has_o_or_i = 0; int always_checksum = 0; int list_only = 0; @@ -96,7 +96,7 @@ diff --git a/options.c b/options.c #define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */ char *batch_name = NULL; -@@ -821,6 +822,7 @@ void usage(enum logcode F) +@@ -822,6 +823,7 @@ void usage(enum logcode F) #ifdef ICONV_OPTION rprintf(F," --iconv=CONVERT_SPEC request charset conversion of filenames\n"); #endif @@ -104,7 +104,7 @@ diff --git a/options.c b/options.c rprintf(F," --checksum-seed=NUM set block/file checksum seed (advanced)\n"); rprintf(F," -4, --ipv4 prefer IPv4\n"); rprintf(F," -6, --ipv6 prefer IPv6\n"); -@@ -1049,6 +1051,7 @@ static struct poptOption long_options[] = { +@@ -1050,6 +1052,7 @@ static struct poptOption long_options[] = { {"iconv", 0, POPT_ARG_STRING, &iconv_opt, 0, 0, 0 }, {"no-iconv", 0, POPT_ARG_NONE, 0, OPT_NO_ICONV, 0, 0 }, #endif @@ -112,7 +112,7 @@ diff --git a/options.c b/options.c {"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, {"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 }, {"8-bit-output", '8', POPT_ARG_VAL, &allow_8bit_chars, 1, 0, 0 }, -@@ -2474,6 +2477,24 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -2475,6 +2478,24 @@ int parse_arguments(int *argc_p, const char ***argv_p) } } @@ -137,7 +137,7 @@ diff --git a/options.c b/options.c am_starting_up = 0; return 1; -@@ -2910,6 +2931,12 @@ void server_options(char **args, int *argc_p) +@@ -2911,6 +2932,12 @@ void server_options(char **args, int *argc_p) if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30)) args[ac++] = "--no-implied-dirs"; diff --git a/tru64.diff b/tru64.diff index 1067c42..8faf452 100644 --- a/tru64.diff +++ b/tru64.diff @@ -6,7 +6,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/syscall.c b/syscall.c --- a/syscall.c +++ b/syscall.c diff --git a/xattrs.diff b/xattrs.diff index 4b13405..e6b3169 100644 --- a/xattrs.diff +++ b/xattrs.diff @@ -14,7 +14,7 @@ based-on: patch/master/acls diff --git a/compat.c b/compat.c --- a/compat.c +++ b/compat.c -@@ -222,13 +222,6 @@ void setup_protocol(int f_out,int f_in) +@@ -457,13 +457,6 @@ void setup_protocol(int f_out,int f_in) if (protocol_version < 30) { if (append_mode == 1) append_mode = 2; diff --git a/xxhash.diff b/xxhash.diff index 93ab7ea..5d09a07 100644 --- a/xxhash.diff +++ b/xxhash.diff @@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make -based-on: 4f92fd8ddd07a94424e496384dadc98da8c3f8f7 +based-on: 2f84a6bd73e1a6e2081b1bcb965049ef83b2ce45 diff --git a/checksum.c b/checksum.c --- a/checksum.c +++ b/checksum.c @@ -19,29 +19,23 @@ diff --git a/checksum.c b/checksum.c #include "xxhash.h" #endif #ifdef USE_OPENSSL -@@ -51,8 +52,10 @@ extern char *checksum_choice; +@@ -51,10 +52,15 @@ extern char *checksum_choice; #define CSUM_MD4 4 #define CSUM_MD5 5 #define CSUM_XXH64 6 +#define CSUM_XXH3_64 7 +#define CSUM_XXH3_128 8 --#define CSUM_COUNT 7 -+#define CSUM_COUNT 9 - - struct csum_struct { - int num; -@@ -61,6 +64,9 @@ struct csum_struct { + struct name_num_obj valid_checksums = { + "checksum", NULL, NULL, 0, 0, { #ifdef SUPPORT_XXHASH - { CSUM_XXH64, "xxhash", NULL }, - { CSUM_XXH64, "xxh64", NULL }, -+ { CSUM_XXH3_64, "xxh3", NULL }, -+ { CSUM_XXH3_64, "xxh3-64", NULL }, -+ { CSUM_XXH3_128, "xxh3-128", NULL }, ++ { CSUM_XXH3_128, "xxh3-128", NULL }, ++ { CSUM_XXH3_64, "xxh3-64", NULL }, ++ { CSUM_XXH3_64, "xxh3", NULL }, + { CSUM_XXH64, "xxh64", NULL }, + { CSUM_XXH64, "xxhash", NULL }, #endif - { CSUM_MD5, "md5", NULL }, - { CSUM_MD4, "md4", NULL }, -@@ -301,7 +307,10 @@ int csum_len_for_type(int cst, BOOL flist_csum) +@@ -157,7 +163,10 @@ int csum_len_for_type(int cst, BOOL flist_csum) return MD5_DIGEST_LEN; #ifdef SUPPORT_XXHASH case CSUM_XXH64: @@ -52,7 +46,7 @@ diff --git a/checksum.c b/checksum.c #endif default: /* paranoia to prevent missing case values */ exit_cleanup(RERR_UNSUPPORTED); -@@ -419,6 +428,15 @@ void get_checksum2(char *buf, int32 len, char *sum) +@@ -275,6 +284,15 @@ void get_checksum2(char *buf, int32 len, char *sum) case CSUM_XXH64: SIVAL64(sum, 0, XXH64(buf, len, checksum_seed)); break; @@ -68,7 +62,7 @@ diff --git a/checksum.c b/checksum.c #endif default: /* paranoia to prevent missing case values */ exit_cleanup(RERR_UNSUPPORTED); -@@ -523,6 +541,65 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) +@@ -379,6 +397,65 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) XXH64_freeState(state); break; } @@ -133,8 +127,8 @@ diff --git a/checksum.c b/checksum.c + } #endif default: - rprintf(FERROR, "invalid checksum-choice for the --checksum option (%d)\n", checksum_type); -@@ -543,6 +620,7 @@ static union { + rprintf(FERROR, "Invalid checksum-choice for --checksum: %s (%d)\n", +@@ -400,6 +477,7 @@ static union { } ctx; #ifdef SUPPORT_XXHASH static XXH64_state_t* xxh64_state; @@ -142,7 +136,7 @@ diff --git a/checksum.c b/checksum.c #endif static int cursum_type; -@@ -586,6 +664,28 @@ void sum_init(int csum_type, int seed) +@@ -443,6 +521,28 @@ void sum_init(int csum_type, int seed) exit_cleanup(RERR_STREAMIO); } break; @@ -171,7 +165,7 @@ diff --git a/checksum.c b/checksum.c #endif case CSUM_NONE: break; -@@ -647,6 +747,18 @@ void sum_update(const char *p, int32 len) +@@ -504,6 +604,18 @@ void sum_update(const char *p, int32 len) exit_cleanup(RERR_STREAMIO); } break; @@ -190,7 +184,7 @@ diff --git a/checksum.c b/checksum.c #endif case CSUM_NONE: break; -@@ -684,6 +796,15 @@ int sum_end(char *sum) +@@ -541,6 +653,15 @@ int sum_end(char *sum) case CSUM_XXH64: SIVAL64(sum, 0, XXH64_digest(xxh64_state)); break; -- 2.34.1