Updated for the latest source.
authorWayne Davison <wayne@opencoder.net>
Sat, 23 May 2020 01:11:41 +0000 (18:11 -0700)
committerWayne Davison <wayne@opencoder.net>
Sat, 23 May 2020 01:11:41 +0000 (18:11 -0700)
39 files changed:
acls.diff
adaptec_acl_mods.diff
backup-deleted.diff
backup-dir-dels.diff
catch_crash_signals.diff
checksum-reading.diff
checksum-updating.diff
checksum-xattr.diff
congestion.diff
copy-devices.diff
crtimes.diff
cvs-entries.diff
date-only.diff
db.diff
detect-renamed-lax.diff
detect-renamed.diff
direct-io.diff
downdate.diff
fileflags.diff
filter-attribute-mods.diff
fsync.diff
hfs-compression.diff
ignore-case.diff
kerberos.diff
link-by-hash.diff
nameconverter.diff
netgroup-auth.diff
omit-dir-changes.diff
slow-down.diff
slp.diff
soften-links.diff
source-backup.diff
source-filter_dest-filter.diff
sparse-block.diff
ssh-4-6-options.diff
time-limit.diff
transliterate.diff
tru64.diff
xattrs.diff

index f8f5c45ad2411ed7e6330ef09cf1f005a93c5b23..0f1ba1ddaed8dcf1a4125839092df5404ad551cf 100644 (file)
--- 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: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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
-@@ -217,13 +217,6 @@ void setup_protocol(int f_out,int f_in)
+@@ -222,13 +222,6 @@ void setup_protocol(int f_out,int f_in)
        if (protocol_version < 30) {
                if (append_mode == 1)
                        append_mode = 2;
index 7c9b8935dffef4991c448221a40b5016bdfa726f..c8e98ce2b98dbdf005c18e59abbaab2fe5841644 100644 (file)
@@ -24,7 +24,7 @@ Todo:
 Fix a bug that could lose some bits when stripping some (supposedly)
 superfluous ACL info.
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/lib/sysacls.c b/lib/sysacls.c
 --- a/lib/sysacls.c
 +++ b/lib/sysacls.c
index 66dfc99b6a10a2cff0624a90469fbbef21bf7694..bb5440d62b397abaf0190a7c3cd5670798b499d7 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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
-@@ -687,6 +687,7 @@ void usage(enum logcode F)
+@@ -692,6 +692,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");
-@@ -1014,7 +1015,8 @@ static struct poptOption long_options[] = {
+@@ -1019,7 +1020,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 },
-@@ -2745,6 +2747,10 @@ void server_options(char **args, int *argc_p)
+@@ -2750,6 +2752,10 @@ void server_options(char **args, int *argc_p)
        }
  
        if (am_sender) {
@@ -114,7 +114,7 @@ diff --git a/rsync.yo b/rsync.yo
       --backup-dir=DIR        make backups into hierarchy based in DIR
       --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
   -u, --update                skip files that are newer on the receiver
-@@ -800,6 +801,11 @@ in the list so that it has a high enough priority to be effective (e.g., if
+@@ -801,6 +802,11 @@ in the list so that it has a high enough priority to be effective (e.g., if
  your rules specify a trailing inclusion/exclusion of '*', the auto-added
  rule would never be reached).
  
index fa2f9393f27d3a9af905b58098e7d5c908f71ad0..35fc9b83c87f793dc8ee0321a3adf6eb6f1a4d38 100644 (file)
@@ -229,7 +229,7 @@ diff --git a/options.c b/options.c
  char *sockopts = NULL;
  char *usermap = NULL;
  char *groupmap = NULL;
-@@ -690,6 +696,8 @@ void usage(enum logcode F)
+@@ -695,6 +701,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");
-@@ -1019,7 +1027,9 @@ static struct poptOption long_options[] = {
+@@ -1024,7 +1032,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 },
-@@ -2223,6 +2233,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2227,6 +2237,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;
-@@ -2244,6 +2256,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2248,6 +2260,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)
-@@ -2255,6 +2275,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2259,6 +2279,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] == '/')
-@@ -2290,6 +2324,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2294,6 +2328,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;
-@@ -2731,6 +2793,10 @@ void server_options(char **args, int *argc_p)
+@@ -2736,6 +2798,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) {
-@@ -2739,6 +2805,14 @@ void server_options(char **args, int *argc_p)
+@@ -2744,6 +2810,14 @@ void server_options(char **args, int *argc_p)
                        goto oom;
                args[ac++] = arg;
        }
index af5110227db0cda0117eef0ddc94b92f1476a052..86c7d437a7e494257ad8f4a8aba99ddd79913e56 100644 (file)
@@ -25,7 +25,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                  (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/errcode.h b/errcode.h
 --- a/errcode.h
 +++ b/errcode.h
index aa14ebf21b36a57aff3af24b5c42fd7b1beda7c9..18e7d20caead392c7d569c2c0a8397043ae0815e 100644 (file)
@@ -16,7 +16,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -681,6 +682,7 @@ void usage(enum logcode F)
+@@ -686,6 +687,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");
-@@ -832,7 +834,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -837,7 +839,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};
  
-@@ -980,6 +982,7 @@ static struct poptOption long_options[] = {
+@@ -985,6 +987,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 },
-@@ -1787,6 +1790,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1792,6 +1795,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);
-@@ -2068,6 +2088,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2072,6 +2092,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        }
  #endif
  
@@ -752,9 +752,9 @@ diff --git a/rsync.yo b/rsync.yo
  Note that rsync always verifies that each em(transferred) file was
  correctly reconstructed on the receiving side by checking a whole-file
  checksum that is generated as the file is transferred, but that
-@@ -660,6 +663,36 @@ option's before-the-transfer "Does this file need to be updated?" check.
- For protocol 30 and beyond (first supported in 3.0.0), the checksum used is
MD5.  For older protocols, the checksum used is MD4.
+@@ -661,6 +664,36 @@ The checksum used is auto-negotiated between the client and the server, but
+ can be overridden using either the bf(--checksum-choice) option or an
environment variable that is discussed in that option's section.
  
 +dit(bf(--sumfiles=MODE)) This option tells rsync to make use of any cached
 +checksum information it finds in per-directory .rsyncsums files when the
index fb8a774803f2b66e9068864772f15bcb30b7d6ca..64c8a2193b3b722da6af71461fc809945079326d 100644 (file)
@@ -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
-@@ -1792,7 +1792,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1797,7 +1797,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
  
                case OPT_SUMFILES:
                        arg = poptGetOptArg(pc);
@@ -608,7 +608,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -672,9 +672,13 @@ computed just as it would be if bf(--sumfiles) was not specified.
+@@ -673,9 +673,13 @@ computed just as it would be if bf(--sumfiles) was not specified.
  
  The MODE value is either "lax", for relaxed checking (which compares size
  and mtime), "strict" (which also compares ctime and inode), or "none" to
index 8ba4f757f9b4b692ec237f635b70b6f02e1ac531..28ce33cf1b0d93ad5201e6dab3f52daddf9cc713 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 537870290ea9123bdf98799fb6445f3301eb4a4a..1ddef76a86ef9677aac435cc1720ae298a862242 100644 (file)
@@ -27,7 +27,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -793,6 +795,8 @@ void usage(enum logcode F)
+@@ -798,6 +800,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");
-@@ -1062,6 +1066,8 @@ static struct poptOption long_options[] = {
+@@ -1067,6 +1071,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 },
-@@ -1089,6 +1095,8 @@ static void daemon_usage(enum logcode F)
+@@ -1094,6 +1100,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");
index 2feab41271185e3a60e4f73d904c288505923066..1e20475886a94161b6362d86ac57cf333c76258d 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                      (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -714,6 +715,7 @@ void usage(enum logcode F)
+@@ -719,6 +720,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");
-@@ -905,6 +907,7 @@ static struct poptOption long_options[] = {
+@@ -910,6 +912,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 },
-@@ -2913,6 +2916,9 @@ void server_options(char **args, int *argc_p)
+@@ -2918,6 +2921,9 @@ void server_options(char **args, int *argc_p)
        else if (remove_source_files)
                args[ac++] = "--remove-sent-files";
  
index 0c06f6960ce3cc143b7f27fa6d518936bdd0e4bf..5a7da4814f68e6355966f224ccd5681ffa2589af 100644 (file)
@@ -12,7 +12,7 @@ based-on: patch/master/fileflags
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
-@@ -51,6 +51,7 @@ extern int protect_args;
+@@ -52,6 +52,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;
-@@ -70,7 +71,7 @@ extern char *iconv_opt;
- #endif
+@@ -73,7 +74,7 @@ extern char *iconv_opt;
+ extern const char *negotiated_csum_name;
  
  /* 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 */
-@@ -150,6 +151,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -155,6 +156,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
-@@ -303,6 +306,10 @@ void setup_protocol(int f_out,int f_in)
+@@ -320,6 +323,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,15 +289,15 @@ diff --git a/options.c b/options.c
  int update_only = 0;
  int open_noatime = 0;
  int cvs_exclude = 0;
-@@ -582,6 +583,7 @@ static void print_rsync_version(enum logcode f)
-       char const *ipv6 = "no ";
-       char const *sse2 = "no ";
+@@ -584,6 +585,7 @@ static void print_rsync_version(enum logcode f)
+       char const *simd = "no ";
+       char const *xxhash = "no ";
        char const *fileflags = "no ";
 +      char const *crtimes = "no ";
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -624,6 +626,9 @@ static void print_rsync_version(enum logcode f)
+@@ -629,6 +631,9 @@ static void print_rsync_version(enum logcode f)
  #ifdef SUPPORT_FILEFLAGS
        fileflags = "";
  #endif
@@ -307,10 +307,10 @@ 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);
-@@ -639,8 +644,8 @@ static void print_rsync_version(enum logcode f)
+@@ -644,8 +649,8 @@ static void print_rsync_version(enum logcode f)
                got_socketpair, hardlinks, links, ipv6, have_inplace);
-       rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2,\n",
-               have_inplace, acls, xattrs, iconv, symtimes, prealloc, sse2);
+       rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash,\n",
+               have_inplace, acls, xattrs, iconv, symtimes, prealloc, simd, xxhash);
 -      rprintf(f, "    %sfile-flags\n",
 -              fileflags);
 +      rprintf(f, "    %sfile-flags, %scrtimes\n",
@@ -318,7 +318,7 @@ diff --git a/options.c b/options.c
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
-@@ -730,6 +735,9 @@ void usage(enum logcode F)
+@@ -735,6 +740,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");
-@@ -905,6 +913,11 @@ static struct poptOption long_options[] = {
+@@ -910,6 +918,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 },
-@@ -2604,6 +2617,10 @@ void server_options(char **args, int *argc_p)
+@@ -2608,6 +2621,10 @@ void server_options(char **args, int *argc_p)
                if (preserve_atimes > 1)
                        argstr[x++] = 'U';
        }
@@ -473,7 +473,7 @@ diff --git a/rsync.yo b/rsync.yo
   -O, --omit-dir-times        omit directories from --times
   -J, --omit-link-times       omit symlinks from --times
       --super                 receiver attempts super-user activities
-@@ -1289,6 +1290,9 @@ flag then rsync will silently ignore this option. Note also that some
+@@ -1290,6 +1291,9 @@ flag then rsync will silently ignore this option. Note also that some
  filesystems are mounted to avoid updating the atime on read access even
  without the O_NOATIME flag being set.
  
@@ -483,7 +483,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(-O, --omit-dir-times)) This tells rsync to omit directories when
  it is preserving modification times (see bf(--times)).  If NFS is sharing
  the directories on the receiving side, it is a good idea to use bf(-O).
-@@ -2261,7 +2265,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -2285,7 +2289,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -492,7 +492,7 @@ diff --git a/rsync.yo b/rsync.yo
  type of update being done, bf(X) is replaced by the file-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -2323,6 +2327,8 @@ quote(itemization(
+@@ -2347,6 +2351,8 @@ quote(itemization(
    when a symlink or directory is updated.
    it() The bf(a) means that the ACL information changed.
    it() The bf(x) means that the extended attribute information changed.
index 250ee0e85226d51454e44bcd2cbe8b2ad9d4cfd3..d31ddb5c1a8bd2c8f864f6c7de4d7f50dac51c2a 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
index 87488b04fa48c5a650208edbc3e429ed6028480f..07f146c3144633eb8e2afdc8fc5a520284e7be16 100644 (file)
@@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -769,6 +770,7 @@ void usage(enum logcode F)
+@@ -774,6 +775,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");
-@@ -932,6 +934,7 @@ static struct poptOption long_options[] = {
+@@ -937,6 +939,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 },
-@@ -2796,6 +2799,9 @@ void server_options(char **args, int *argc_p)
+@@ -2801,6 +2804,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 e5118a749a8122df2daee2f23295b34a79b05f91..e291e747cb56dbddb97bc29067df11caf37ea72e 100644 (file)
--- 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: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/.gitignore b/.gitignore
 --- a/.gitignore
 +++ b/.gitignore
@@ -44,25 +44,25 @@ diff --git a/Makefile.in b/Makefile.in
  mandir=@mandir@
  
  LIBS=@LIBS@
-@@ -31,7 +32,7 @@ VERSION=@RSYNC_VERSION@
- .SUFFIXES:
.SUFFIXES: .c .o
+@@ -33,7 +34,7 @@ VERSION=@RSYNC_VERSION@
SIMD_x86_64=simd-checksum-x86_64.o
  
 -GENFILES=configure.sh aclocal.m4 config.h.in proto.h proto.h-tstamp rsync.1 rsync-ssl.1 rsyncd.conf.5
 +GENFILES=configure.sh aclocal.m4 config.h.in proto.h proto.h-tstamp rsync.1 rsync-ssl.1 rsyncdb.1 rsyncd.conf.5
  HEADERS=byteorder.h config.h errcode.h proto.h rsync.h ifuncs.h itypes.h inums.h \
        lib/pool_alloc.h
  LIBOBJ=lib/wildmatch.o lib/compat.o lib/snprintf.o lib/mdfour.o lib/md5.o \
-@@ -41,7 +42,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
+@@ -43,7 +44,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
  OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
 -      fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
 +      fileio.o batch.o clientname.o chmod.o db.o acls.o xattrs.o
  OBJS3=progress.o pipe.o
- CXXOBJ=@CXXOBJ@
  DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
-@@ -66,17 +67,20 @@ CHECK_OBJS=tls.o testrun.o getgroups.o getfsdev.o t_stub.o t_unsafe.o trimslash.
+ popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
+@@ -67,17 +68,20 @@ CHECK_OBJS=tls.o testrun.o getgroups.o getfsdev.o t_stub.o t_unsafe.o trimslash.
        $(CC) -I. -I$(srcdir) $(CFLAGS) $(CPPFLAGS) -c $< @CC_SHOBJ_FLAG@
  @OBJ_RESTORE@
  
@@ -85,7 +85,7 @@ diff --git a/Makefile.in b/Makefile.in
        if test -f rsyncd.conf.5; then ${INSTALLMAN} -m 644 rsyncd.conf.5 ${DESTDIR}${mandir}/man5; fi
  
  install-ssl-daemon: stunnel-rsyncd.conf
-@@ -94,6 +98,9 @@ install-strip:
+@@ -95,6 +99,9 @@ install-strip:
  rsync$(EXEEXT): $(OBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
  
@@ -95,7 +95,7 @@ diff --git a/Makefile.in b/Makefile.in
  $(OBJS): $(HEADERS)
  $(CHECK_OBJS): $(HEADERS)
  options.o: latest-year.h
-@@ -209,10 +216,10 @@ proto.h: proto.h-tstamp
+@@ -210,10 +217,10 @@ proto.h: proto.h-tstamp
  proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
        awk -f $(srcdir)/mkproto.awk $(srcdir)/*.c $(srcdir)/lib/compat.c
  
@@ -108,7 +108,7 @@ diff --git a/Makefile.in b/Makefile.in
            if test -f $$fn; then \
                : ; \
            elif test -f $(srcdir)/$$fn; then \
-@@ -231,12 +238,16 @@ rsync-ssl.1: rsync-ssl.yo
+@@ -232,12 +239,16 @@ rsync-ssl.1: rsync-ssl.yo
        yodl2man -o rsync-ssl.1 $(srcdir)/rsync-ssl.yo
        -$(srcdir)/tweak_manpage rsync-ssl.1
  
@@ -129,7 +129,7 @@ diff --git a/Makefile.in b/Makefile.in
 diff --git a/checksum.c b/checksum.c
 --- a/checksum.c
 +++ b/checksum.c
-@@ -24,6 +24,7 @@
+@@ -31,6 +31,7 @@ extern int read_batch;
  extern int checksum_seed;
  extern int protocol_version;
  extern int proper_seed_order;
@@ -137,7 +137,7 @@ diff --git a/checksum.c b/checksum.c
  extern char *checksum_choice;
  
  #define CSUM_NONE 0
-@@ -221,6 +222,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -396,6 +397,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
                        md5_update(&m, (uchar *)map_ptr(buf, i, remainder), remainder);
  
                md5_result(&m, (uchar *)sum);
@@ -146,15 +146,15 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
          case CSUM_MD4_OLD:
-@@ -241,6 +244,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -416,6 +419,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);
 +              if (use_db)
 +                      db_set_checksum(4, st_p, sum);
                break;
-         default:
-               rprintf(FERROR, "invalid checksum-choice for the --checksum option (%d)\n", checksum_type);
+ #ifdef SUPPORT_XXHASH
+         case CSUM_XXHASH: {
 diff --git a/cleanup.c b/cleanup.c
 --- a/cleanup.c
 +++ b/cleanup.c
@@ -222,7 +222,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -367,6 +367,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
+@@ -378,6 +378,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
      unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \
      sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \
      sys/un.h sys/attr.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \
@@ -230,7 +230,7 @@ diff --git a/configure.ac b/configure.ac
      netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h \
      sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h \
      popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netinet/ip.h \
-@@ -1132,6 +1133,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
+@@ -1155,6 +1156,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
      fi
  fi
  
@@ -2535,25 +2535,25 @@ diff --git a/options.c b/options.c
  int connect_timeout = 0;
  int keep_partial = 0;
  int safe_symlinks = 0;
-@@ -276,6 +281,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
-       DEBUG_WORD(CHDIR, W_CLI|W_SRV, "Debug when the current directory changes"),
+@@ -277,6 +282,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
        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"),
-@@ -579,6 +585,7 @@ static void print_rsync_version(enum logcode f)
-       char const *iconv = "no ";
+@@ -581,6 +587,7 @@ static void print_rsync_version(enum logcode f)
        char const *ipv6 = "no ";
-       char const *sse2 = "no ";
+       char const *simd = "no ";
+       char const *xxhash = "no ";
 +      char const *db = "no ";
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -618,6 +625,12 @@ static void print_rsync_version(enum logcode f)
- #ifdef ENABLE_SSE2
-       sse2 = "";
+@@ -623,6 +630,12 @@ static void print_rsync_version(enum logcode f)
+ #ifdef SUPPORT_XXHASH
+       xxhash = "";
  #endif
 +#if defined HAVE_MYSQL_MYSQL_H && defined HAVE_LIBMYSQLCLIENT
 +      db = "";
@@ -2564,19 +2564,19 @@ 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);
-@@ -631,8 +644,10 @@ static void print_rsync_version(enum logcode f)
+@@ -636,8 +649,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);
--      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2\n",
-+      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2,\n",
-               have_inplace, acls, xattrs, iconv, symtimes, prealloc, sse2);
-+      rprintf(f, "    %sdb\n",
+-      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash\n",
++      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash,\n",
+               have_inplace, acls, xattrs, iconv, symtimes, prealloc, simd, xxhash);
++      rprintf(f, "    %sDB\n",
 +              db);
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
-@@ -681,6 +696,9 @@ void usage(enum logcode F)
+@@ -686,6 +701,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");
-@@ -833,6 +851,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -838,6 +856,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};
  
-@@ -980,6 +999,10 @@ static struct poptOption long_options[] = {
+@@ -985,6 +1004,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 },
-@@ -1071,6 +1094,9 @@ static struct poptOption long_options[] = {
+@@ -1076,6 +1099,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}
  };
  
-@@ -1124,6 +1150,50 @@ static struct poptOption long_daemon_options[] = {
+@@ -1129,6 +1155,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];
  
-@@ -1247,6 +1317,8 @@ static void set_refuse_options(void)
+@@ -1252,6 +1322,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. */
-@@ -1371,6 +1443,102 @@ static void create_refuse_error(int which)
+@@ -1376,6 +1448,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
-@@ -1409,6 +1577,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1414,6 +1582,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
-@@ -1530,6 +1704,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1535,6 +1709,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
-@@ -1604,6 +1784,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1609,6 +1789,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
-@@ -1317,7 +1321,8 @@ extern short info_levels[], debug_levels[];
- #define DEBUG_CHDIR (DEBUG_BIND+1)
+@@ -1318,7 +1322,8 @@ extern short info_levels[], debug_levels[];
  #define DEBUG_CONNECT (DEBUG_CHDIR+1)
  #define DEBUG_CMD (DEBUG_CONNECT+1)
--#define DEBUG_DEL (DEBUG_CMD+1)
-+#define DEBUG_DB (DEBUG_CMD+1)
+ #define DEBUG_CSUM (DEBUG_CMD+1)
+-#define DEBUG_DEL (DEBUG_CSUM+1)
++#define DEBUG_DB (DEBUG_CSUM+1)
 +#define DEBUG_DEL (DEBUG_DB+1)
  #define DEBUG_DELTASUM (DEBUG_DEL+1)
  #define DEBUG_DUP (DEBUG_DELTASUM+1)
@@ -2974,9 +2974,9 @@ diff --git a/rsync.yo b/rsync.yo
   -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
       --no-OPTION             turn off an implied OPTION (e.g. --no-D)
   -r, --recursive             recurse into directories
-@@ -660,6 +663,67 @@ option's before-the-transfer "Does this file need to be updated?" check.
- For protocol 30 and beyond (first supported in 3.0.0), the checksum used is
MD5.  For older protocols, the checksum used is MD4.
+@@ -661,6 +664,67 @@ The checksum used is auto-negotiated between the client and the server, but
+ can be overridden using either the bf(--checksum-choice) option or an
environment variable that is discussed in that option's section.
  
 +dit(bf(--db=CONFIG_FILE))  This option specifies a CONFIG_FILE to read
 +that holds connection details for a database of checksum information.
index f85ed0a41b7a73cc0bbd88de1d682dbb823fc90d..b356bb5c5bf6b14a98c3b3d9d883be715a55fd1a 100644 (file)
@@ -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
-@@ -774,6 +774,8 @@ void usage(enum logcode F)
+@@ -779,6 +779,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");
-@@ -986,7 +988,9 @@ static struct poptOption long_options[] = {
+@@ -991,7 +993,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 },
-@@ -2783,8 +2787,14 @@ void server_options(char **args, int *argc_p)
+@@ -2788,8 +2792,14 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -109,7 +109,7 @@ diff --git a/rsync.yo b/rsync.yo
       --compare-dest=DIR      also compare received files relative to DIR
       --copy-dest=DIR         ... and include copies of unchanged files
       --link-dest=DIR         hardlink to files in DIR when unchanged
-@@ -1963,6 +1965,17 @@ the bf(--partial-dir) option, that directory will be used instead.  These
+@@ -1987,6 +1989,17 @@ the bf(--partial-dir) option, that directory will be used instead.  These
  potential alternate-basis files will be removed as the transfer progresses.
  This option conflicts with bf(--inplace) and bf(--append).
  
index 8139fcf02acda62b13bcbc4e25ec5da724e46ca4..de5efb3268e64e187bfb804650bc03492ff2e426 100644 (file)
@@ -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: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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
-@@ -46,6 +46,7 @@ extern int checksum_seed;
+@@ -47,6 +47,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;
-@@ -132,6 +133,7 @@ void set_allow_inc_recurse(void)
+@@ -135,6 +136,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;
-@@ -772,6 +773,7 @@ void usage(enum logcode F)
+@@ -777,6 +778,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");
-@@ -984,6 +986,7 @@ static struct poptOption long_options[] = {
+@@ -989,6 +991,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 },
-@@ -2380,7 +2383,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2384,7 +2387,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) {
-@@ -2389,6 +2392,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2393,6 +2396,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;
                }
-@@ -2779,6 +2783,8 @@ void server_options(char **args, int *argc_p)
+@@ -2784,6 +2788,8 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -683,7 +683,7 @@ diff --git a/rsync.yo b/rsync.yo
       --compare-dest=DIR      also compare received files relative to DIR
       --copy-dest=DIR         ... and include copies of unchanged files
       --link-dest=DIR         hardlink to files in DIR when unchanged
-@@ -1947,6 +1948,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
+@@ -1971,6 +1972,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
  fuzzy-match files, so either use bf(--delete-after) or specify some
  filename exclusions if you need to prevent this.
  
index 0f4b501d6a5a03b8586c0428231f0797063588cc..6743f7b3c09a706306f94949f13149fb78d7b314 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -759,6 +760,7 @@ void usage(enum logcode F)
+@@ -764,6 +765,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");
-@@ -1002,6 +1004,8 @@ static struct poptOption long_options[] = {
+@@ -1007,6 +1009,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 },
@@ -50,7 +50,7 @@ diff --git a/rsync.yo b/rsync.yo
   -m, --prune-empty-dirs      prune empty directory chains from file-list
       --numeric-ids           don't map uid/gid values by user/group name
       --usermap=STRING        custom username mapping
-@@ -2533,6 +2534,14 @@ See also the "atomic-rsync" perl script in the "support" subdir for an
+@@ -2557,6 +2558,14 @@ See also the "atomic-rsync" perl script in the "support" subdir for an
  update algorithm that is even more atomic (it uses bf(--link-dest) and a
  parallel hierarchy of files).
  
index 6c619dbe38af077bb23f7270a196fb348efba78d..1b6c2abc38adb13b4667f4862ff19cf9697a4d77 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -690,6 +691,7 @@ void usage(enum logcode F)
+@@ -695,6 +696,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");
-@@ -936,6 +938,7 @@ static struct poptOption long_options[] = {
+@@ -941,6 +943,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 },
index aa83320c451ce6d32f5c2d985de4c5d5d3c0de23..73c3c352b0989ddb70819eceafb7c633e45fc008 100644 (file)
@@ -7,11 +7,11 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
-@@ -46,12 +46,14 @@ extern int checksum_seed;
+@@ -47,12 +47,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;
-@@ -68,7 +70,7 @@ extern char *iconv_opt;
- #endif
+@@ -71,7 +73,7 @@ extern char *iconv_opt;
+ extern const char *negotiated_csum_name;
  
  /* 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 */
-@@ -156,6 +158,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -161,6 +163,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)
-@@ -299,6 +303,10 @@ void setup_protocol(int f_out,int f_in)
+@@ -316,6 +320,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,17 +380,17 @@ diff --git a/options.c b/options.c
  int io_timeout = 0;
  int prune_empty_dirs = 0;
  int use_qsort = 0;
-@@ -579,6 +581,7 @@ static void print_rsync_version(enum logcode f)
-       char const *iconv = "no ";
+@@ -581,6 +583,7 @@ static void print_rsync_version(enum logcode f)
        char const *ipv6 = "no ";
-       char const *sse2 = "no ";
+       char const *simd = "no ";
+       char const *xxhash = "no ";
 +      char const *fileflags = "no ";
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -618,6 +621,9 @@ static void print_rsync_version(enum logcode f)
- #ifdef ENABLE_SSE2
-       sse2 = "";
+@@ -623,6 +626,9 @@ static void print_rsync_version(enum logcode f)
+ #ifdef SUPPORT_XXHASH
+       xxhash = "";
  #endif
 +#ifdef SUPPORT_FILEFLAGS
 +      fileflags = "";
@@ -398,19 +398,19 @@ 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);
-@@ -631,8 +637,10 @@ static void print_rsync_version(enum logcode f)
+@@ -636,8 +642,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);
--      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2\n",
-+      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2,\n",
-               have_inplace, acls, xattrs, iconv, symtimes, prealloc, sse2);
+-      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash\n",
++      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash,\n",
+               have_inplace, acls, xattrs, iconv, symtimes, prealloc, simd, xxhash);
 +      rprintf(f, "    %sfile-flags\n",
 +              fileflags);
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
-@@ -703,6 +711,9 @@ void usage(enum logcode F)
+@@ -708,6 +716,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
-@@ -752,7 +763,12 @@ void usage(enum logcode F)
+@@ -757,7 +768,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");
-@@ -870,6 +886,10 @@ static struct poptOption long_options[] = {
+@@ -875,6 +891,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 },
-@@ -963,6 +983,14 @@ static struct poptOption long_options[] = {
+@@ -968,6 +988,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 },
-@@ -2680,6 +2708,9 @@ void server_options(char **args, int *argc_p)
+@@ -2685,6 +2713,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;
-@@ -2773,6 +2804,16 @@ void server_options(char **args, int *argc_p)
+@@ -2778,6 +2809,16 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--delete-excluded";
                if (force_delete)
                        args[ac++] = "--force";
@@ -697,7 +697,7 @@ diff --git a/rsync.yo b/rsync.yo
       --max-delete=NUM        don't delete more than NUM files
       --max-size=SIZE         don't transfer any file larger than SIZE
       --min-size=SIZE         don't transfer any file smaller than SIZE
-@@ -668,7 +672,8 @@ specified, in which case bf(-r) is not implied.
+@@ -669,7 +673,8 @@ specified, in which case bf(-r) is not implied.
  
  Note that bf(-a) bf(does not preserve hardlinks), because
  finding multiply-linked files is expensive.  You must separately
@@ -707,7 +707,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  dit(--no-OPTION) You may turn off one or more implied options by prefixing
  the option name with "no-".  Not all options may be prefixed with a "no-":
-@@ -981,7 +986,7 @@ they would be using bf(--copy-links).
+@@ -982,7 +987,7 @@ they would be using bf(--copy-links).
  Without this option, if the sending side has replaced a directory with a
  symlink to a directory, the receiving side will delete anything that is in
  the way of the new symlink, including a directory hierarchy (as long as
@@ -716,7 +716,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  See also bf(--keep-dirlinks) for an analogous option for the receiving
  side.
-@@ -1165,6 +1170,29 @@ Note that the bf(-X) option does not copy rsync's special xattr values (e.g.
+@@ -1166,6 +1171,29 @@ Note that the bf(-X) option does not copy rsync's special xattr values (e.g.
  those used by bf(--fake-super)) unless you repeat the option (e.g. -XX).
  This "copy all xattrs" mode cannot be used with bf(--fake-super).
  
@@ -746,7 +746,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(--chmod)) This option tells rsync to apply one or more
  comma-separated "chmod" modes to the permission of the files in the
  transfer.  The resulting value is treated as though it were the permissions
-@@ -1549,12 +1577,13 @@ display as a "*missing" entry in the bf(--list-only) output.
+@@ -1573,12 +1601,13 @@ display as a "*missing" entry in the bf(--list-only) output.
  dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
  even when there are I/O errors.
  
@@ -763,7 +763,7 @@ diff --git a/rsync.yo b/rsync.yo
  bf(--recursive) option was also enabled.
  
  dit(bf(--max-delete=NUM)) This tells rsync not to delete more than NUM
-@@ -2232,7 +2261,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -2256,7 +2285,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
index c6d069b98fc1017486dd8bd501659407b55ab27f..9ca9a4a8cac64dd6b3e7fb4fc84491530f9d76da 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -390,7 +390,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -1187,6 +1187,8 @@ quote(--chmod=D2775,F664)
+@@ -1188,6 +1188,8 @@ quote(--chmod=D2775,F664)
  
  It is also legal to specify multiple bf(--chmod) options, as each
  additional option is just appended to the list of changes to make.
@@ -399,7 +399,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  See the bf(--perms) and bf(--executability) options for how the resulting
  permission value can be applied to the files in the transfer.
-@@ -2182,6 +2184,10 @@ be omitted, but if USER is empty, a leading colon must be supplied.
+@@ -2206,6 +2208,10 @@ be omitted, but if USER is empty, a leading colon must be supplied.
  If you specify "--chown=foo:bar, this is exactly the same as specifying
  "--usermap=*:foo --groupmap=*:bar", only easier.
  
@@ -410,7 +410,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(--timeout=TIMEOUT)) This option allows you to set a maximum I/O
  timeout in seconds. If no data is transferred for the specified time
  then rsync will exit. The default is 0, which means no timeout.
-@@ -3076,6 +3082,15 @@ itemization(
+@@ -3100,6 +3106,15 @@ itemization(
    option's default rules that exclude things like "CVS" and "*.o" are
    marked as perishable, and will not prevent a directory that was removed
    on the source from being deleted on the destination.
@@ -426,7 +426,7 @@ diff --git a/rsync.yo b/rsync.yo
    it() An bf(x) indicates that a rule affects xattr names in xattr copy/delete
    operations (and is thus ignored when matching file/dir names). If no
    xattr-matching rules are specified, a default xattr filtering rule is
-@@ -3141,6 +3156,12 @@ itemization(
+@@ -3165,6 +3180,12 @@ itemization(
    a rule prefix such as bf(hide)).
  )
  
index 3ef207c7ed93eb1430df9381be9d47f9607a8008..f4799bbd51aa86c8891b548a1cb986598bd4d3e9 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -760,6 +761,7 @@ void usage(enum logcode F)
+@@ -765,6 +766,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");
-@@ -1037,6 +1039,7 @@ static struct poptOption long_options[] = {
+@@ -1042,6 +1044,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 },
-@@ -2859,6 +2862,9 @@ void server_options(char **args, int *argc_p)
+@@ -2864,6 +2867,9 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = tmpdir;
                }
  
index 3e68a90681db33a479bc310518b556a3deb5f02b..24810db954886469072fadcd9cb6c1bd649da634 100644 (file)
@@ -256,7 +256,7 @@ diff --git a/options.c b/options.c
  int preserve_perms = 0;
  int preserve_fileflags = 0;
  int preserve_executability = 0;
-@@ -726,6 +727,10 @@ void usage(enum logcode F)
+@@ -731,6 +732,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");
-@@ -1003,6 +1008,12 @@ static struct poptOption long_options[] = {
+@@ -1008,6 +1013,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 },
-@@ -2109,6 +2120,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2113,6 +2124,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
-@@ -2728,6 +2748,11 @@ void server_options(char **args, int *argc_p)
+@@ -2733,6 +2753,11 @@ void server_options(char **args, int *argc_p)
        if (preserve_fileflags)
                args[ac++] = "--fileflags";
  
@@ -387,7 +387,7 @@ diff --git a/rsync.yo b/rsync.yo
   -o, --owner                 preserve owner (super-user only)
   -g, --group                 preserve group
       --devices               preserve device files (super-user only)
-@@ -1194,6 +1196,42 @@ flags on files and directories that are being updated or deleted on the
+@@ -1195,6 +1197,42 @@ flags on files and directories that are being updated or deleted on the
  receiving side.  It does not try to affect user flags.  This option overrides
  bf(--force-change) and bf(--force-uchange).
  
index e7eba86df9ef0e672ff09d594f7e84a528568522..ee61d5d7daba5a62d460e7cae53398b46cb9c2e1 100644 (file)
@@ -12,7 +12,7 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -790,6 +791,7 @@ void usage(enum logcode F)
+@@ -795,6 +796,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");
-@@ -1022,6 +1024,8 @@ static struct poptOption long_options[] = {
+@@ -1027,6 +1029,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},
-@@ -2809,6 +2813,9 @@ void server_options(char **args, int *argc_p)
+@@ -2814,6 +2818,9 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -258,7 +258,7 @@ diff --git a/rsync.yo b/rsync.yo
       --address=ADDRESS       bind address for outgoing socket to daemon
       --port=PORT             specify double-colon alternate port number
       --sockopts=OPTIONS      specify custom TCP options
-@@ -1898,6 +1899,10 @@ available to that user, and makes it impossible for the joe user to do a timed
+@@ -1922,6 +1923,10 @@ available to that user, and makes it impossible for the joe user to do a timed
  exploit of the path to induce a change to a file that the joe user has no
  permissions to change.
  
index 22098e3dcbfb76331992738237962e99d0e983b9..9a27f7b69e4fed68e3c75f303041fc4958cceb37 100644 (file)
@@ -9,19 +9,19 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -42,7 +42,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -44,7 +44,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
 -OBJS3=progress.o pipe.o
 +OBJS3=progress.o pipe.o gss-auth.o
- CXXOBJ=@CXXOBJ@
  DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
+       popt/popthelp.o popt/poptparse.o
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -78,7 +78,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -722,6 +722,31 @@ if test x"$enable_iconv" != x"no"; then
+@@ -745,6 +745,31 @@ if test x"$enable_iconv" != x"no"; then
        AC_DEFINE(UTF8_CHARSET, "UTF-8", [String to pass to iconv() for the UTF-8 charset.])
  fi
  
index fe2a1311ce81c48266ef59a790366cce95ba8635..99b6299d658fef9df6a1d32f2e8cdc26f96d9683 100644 (file)
@@ -12,26 +12,26 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -42,7 +42,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -44,7 +44,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
 -OBJS3=progress.o pipe.o
 +OBJS3=progress.o pipe.o hashlink.o
- CXXOBJ=@CXXOBJ@
  DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
+       popt/popthelp.o popt/poptparse.o
 diff --git a/checksum.c b/checksum.c
 --- a/checksum.c
 +++ b/checksum.c
-@@ -21,9 +21,12 @@
- #include "rsync.h"
+@@ -28,9 +28,12 @@ extern int am_server;
+ extern int local_server;
+ extern int whole_file;
+ extern int read_batch;
 +extern int checksum_len;
  extern int checksum_seed;
  extern int protocol_version;
@@ -41,16 +41,16 @@ diff --git a/checksum.c b/checksum.c
  extern char *checksum_choice;
  
  #define CSUM_NONE 0
-@@ -252,7 +255,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -455,7 +458,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
  }
  
  static int32 sumresidue;
 -static md_context md;
 +static md_context md, md2;
  static int cursum_type;
- void sum_init(int csum_type, int seed)
-@@ -266,6 +269,8 @@ void sum_init(int csum_type, int seed)
+ #ifdef SUPPORT_XXHASH
+ XXH64_state_t* xxh64_state = NULL;
+@@ -472,6 +475,8 @@ void sum_init(int csum_type, int seed)
        switch (csum_type) {
          case CSUM_MD5:
                md5_begin(&md);
@@ -59,7 +59,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
                mdfour_begin(&md);
-@@ -299,6 +304,8 @@ void sum_update(const char *p, int32 len)
+@@ -518,6 +523,8 @@ void sum_update(const char *p, int32 len)
        switch (cursum_type) {
          case CSUM_MD5:
                md5_update(&md, (uchar *)p, len);
@@ -68,7 +68,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
          case CSUM_MD4_OLD:
-@@ -344,6 +351,8 @@ int sum_end(char *sum)
+@@ -571,6 +578,8 @@ int sum_end(char *sum)
        switch (cursum_type) {
          case CSUM_MD5:
                md5_result(&md, (uchar *)sum);
@@ -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
-@@ -60,6 +60,7 @@ extern char *partial_dir;
- extern char *dest_option;
+@@ -62,6 +62,7 @@ extern char *dest_option;
  extern char *files_from;
  extern char *filesfrom_host;
+ extern char *checksum_choice;
 +extern char *link_by_hash_dir;
  extern filter_rule_list filter_list;
  extern int need_unsorted_flist;
@@ -277,7 +277,7 @@ diff --git a/options.c b/options.c
  };
  
  #define MAX_VERBOSITY ((int)(sizeof debug_verbosity / sizeof debug_verbosity[0]) - 1)
-@@ -285,6 +286,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
+@@ -286,6 +287,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
        DEBUG_WORD(FUZZY, W_REC, "Debug fuzzy scoring (levels 1-2)"),
        DEBUG_WORD(GENR, W_REC, "Debug generator functions"),
        DEBUG_WORD(HASH, W_SND|W_REC, "Debug hashtable code"),
@@ -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)"),
-@@ -775,6 +777,7 @@ void usage(enum logcode F)
+@@ -780,6 +782,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");
-@@ -832,7 +835,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -837,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,
@@ -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};
  
-@@ -984,6 +987,7 @@ static struct poptOption long_options[] = {
+@@ -989,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 },
@@ -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 },
-@@ -1416,6 +1420,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1421,6 +1425,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
-@@ -1899,6 +1906,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1904,6 +1911,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. */
-@@ -2221,6 +2243,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2225,6 +2247,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;
-@@ -2888,6 +2912,12 @@ void server_options(char **args, int *argc_p)
+@@ -2893,6 +2917,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
-@@ -1326,7 +1326,8 @@ extern short info_levels[], debug_levels[];
+@@ -1327,7 +1327,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)
@@ -410,7 +410,7 @@ diff --git a/rsync.yo b/rsync.yo
   -z, --compress              compress file data during the transfer
       --compress-level=NUM    explicitly set compression level
       --skip-compress=LIST    skip compressing files with suffix in LIST
-@@ -2028,6 +2029,48 @@ bf(--link-dest) from working properly for a non-super-user when bf(-o) was
+@@ -2052,6 +2053,48 @@ bf(--link-dest) from working properly for a non-super-user when bf(-o) was
  specified (or implied by bf(-a)).  You can work-around this bug by avoiding
  the bf(-o) option when sending to an old rsync.
  
index 6915662dbbe1a15b67dc8aa390f7d6d154b0c5be..0dc5142654994f5a82f68028f0c13da908a10f66 100644 (file)
@@ -20,7 +20,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/authenticate.c b/authenticate.c
 --- a/authenticate.c
 +++ b/authenticate.c
index c2d8d69cac043f6f5380c6d7b743ce47d578a664..82cca25b024587876f014b9178f38bb70270404d 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/access.c b/access.c
 --- a/access.c
 +++ b/access.c
index 0faec0a55631f9ceaec3f1592e77fa8acd5d10f6..cb07a8cd4f6b67944cc2c32837ce3759e52d15c0 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                              (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -721,6 +722,7 @@ void usage(enum logcode F)
+@@ -726,6 +727,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");
-@@ -891,6 +893,7 @@ static struct poptOption long_options[] = {
+@@ -896,6 +898,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 },
-@@ -2289,6 +2292,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2293,6 +2296,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)
-@@ -2540,6 +2546,8 @@ void server_options(char **args, int *argc_p)
+@@ -2544,6 +2550,8 @@ void server_options(char **args, int *argc_p)
                        argstr[x++] = 'O';
                if (omit_link_times)
                        argstr[x++] = 'J';
@@ -133,7 +133,7 @@ diff --git a/rsync.yo b/rsync.yo
       --super                 receiver attempts super-user activities
       --fake-super            store/recover privileged attrs using xattrs
   -S, --sparse                turn sequences of nulls into sparse blocks
-@@ -1280,6 +1281,10 @@ directories.
+@@ -1281,6 +1282,10 @@ directories.
  dit(bf(-J, --omit-link-times)) This tells rsync to omit symlinks when
  it is preserving modification times (see bf(--times)).
  
index 39c969ff230ab64ece68c11e090544ba60e0cb61..7bae7103683d5902bf911eca9cbb468849b67a5d 100644 (file)
@@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -806,6 +807,7 @@ void usage(enum logcode F)
+@@ -811,6 +812,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
-@@ -1012,6 +1014,7 @@ static struct poptOption long_options[] = {
+@@ -1017,6 +1019,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 },
index ab1658515bd0af24fcb6bbc9693982a54ea55499..a5dbd9e4f8d3b2c6072a2f2eddc5e287644a22dd 100644 (file)
--- 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: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -23,16 +23,16 @@ diff --git a/Makefile.in b/Makefile.in
  LIBOBJDIR=lib/
  
  INSTALLCMD=@INSTALL@
-@@ -44,7 +46,7 @@ OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
+@@ -45,7 +47,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+ OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
  OBJS3=progress.o pipe.o
- CXXOBJ=@CXXOBJ@
 -DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
 +DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o $(SLPOBJ)
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
        popt/popthelp.o popt/poptparse.o
- OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(CXXOBJ) $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
-@@ -92,7 +94,7 @@ install-strip:
+ OBJS=$(OBJS1) $(OBJS2) $(OBJS3) @SIMD@ $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
+@@ -93,7 +95,7 @@ install-strip:
        $(MAKE) INSTALL_STRIP='-s' install
  
  rsync$(EXEEXT): $(OBJS)
@@ -61,7 +61,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -781,6 +781,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -804,6 +804,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
      AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
  fi
  
@@ -149,17 +149,17 @@ diff --git a/main.c b/main.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -579,6 +579,7 @@ static void print_rsync_version(enum logcode f)
-       char const *iconv = "no ";
+@@ -581,6 +581,7 @@ static void print_rsync_version(enum logcode f)
        char const *ipv6 = "no ";
-       char const *sse2 = "no ";
+       char const *simd = "no ";
+       char const *xxhash = "no ";
 +      char const *slp = "no ";
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -618,6 +619,9 @@ static void print_rsync_version(enum logcode f)
- #ifdef ENABLE_SSE2
-       sse2 = "";
+@@ -623,6 +624,9 @@ static void print_rsync_version(enum logcode f)
+ #ifdef SUPPORT_XXHASH
+       xxhash = "";
  #endif
 +#if HAVE_LIBSLP
 +      slp = "";
@@ -167,13 +167,13 @@ 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);
-@@ -631,8 +635,10 @@ static void print_rsync_version(enum logcode f)
+@@ -636,8 +640,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);
--      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2\n",
-+      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %ssse2,\n",
-               have_inplace, acls, xattrs, iconv, symtimes, prealloc, sse2);
+-      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash\n",
++      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sprealloc, %sSIMD, %sxxhash,\n",
+               have_inplace, acls, xattrs, iconv, symtimes, prealloc, simd, xxhash);
 +      rprintf(f, "    %sSLP\n",
 +              slp);
  
index ba488c20b9b0380f76e64c5643c702154f150d5b..d4a5e82f1159d27e3b275643d266e947ea901aba 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 1e9644f8add8c6658a4db9e5013422e53f9ccfd2..d6db8c8512d91c63a063bb4242983345d207f2b9 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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
-@@ -742,6 +743,7 @@ void usage(enum logcode F)
+@@ -747,6 +748,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");
-@@ -1015,6 +1017,7 @@ static struct poptOption long_options[] = {
+@@ -1020,6 +1022,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 },
-@@ -2787,6 +2790,8 @@ void server_options(char **args, int *argc_p)
+@@ -2792,6 +2795,8 @@ void server_options(char **args, int *argc_p)
                                goto oom;
                        args[ac++] = arg;
                }
@@ -57,7 +57,7 @@ diff --git a/rsync.yo b/rsync.yo
       --del                   an alias for --delete-during
       --delete                delete extraneous files from dest dirs
       --delete-before         receiver deletes before xfer, not during
-@@ -1446,6 +1447,14 @@ bf(--exclude='*.new') for the rsync transfer).
+@@ -1470,6 +1471,14 @@ bf(--exclude='*.new') for the rsync transfer).
  Starting with 3.1.0, rsync will skip the sender-side removal (and output an
  error) if the file's size or modify time has not stayed unchanged.
  
index 5f91b805ffb6bf3664401f414b5bb918d4c9d61a..9a82590d05f610dbcb33e94b1d21699b1e4c1b18 100644 (file)
@@ -30,7 +30,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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];
-@@ -769,6 +772,7 @@ void usage(enum logcode F)
+@@ -774,6 +777,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");
-@@ -812,6 +816,8 @@ void usage(enum logcode F)
+@@ -817,6 +821,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");
-@@ -932,6 +938,7 @@ static struct poptOption long_options[] = {
+@@ -937,6 +943,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 },
-@@ -1057,6 +1064,8 @@ static struct poptOption long_options[] = {
+@@ -1062,6 +1069,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
-@@ -2424,6 +2433,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2428,6 +2437,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;
-@@ -2796,6 +2815,25 @@ void server_options(char **args, int *argc_p)
+@@ -2801,6 +2820,25 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
@@ -358,7 +358,7 @@ diff --git a/rsync.yo b/rsync.yo
       --protocol=NUM          force an older protocol version to be used
       --iconv=CONVERT_SPEC    request charset conversion of filenames
       --checksum-seed=NUM     set block/file checksum seed (advanced)
-@@ -2727,6 +2730,33 @@ file previously generated by bf(--write-batch).
+@@ -2751,6 +2754,33 @@ file previously generated by bf(--write-batch).
  If em(FILE) is bf(-), the batch data will be read from standard input.
  See the "BATCH MODE" section for details.
  
index 8f2408f060edd37c58031cf429ea0c73535e9e94..78f3841b54e7403ac0bcf4a5048c8b031566f08e 100644 (file)
@@ -18,7 +18,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -726,6 +727,7 @@ void usage(enum logcode F)
+@@ -731,6 +732,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
-@@ -944,6 +946,7 @@ static struct poptOption long_options[] = {
+@@ -949,6 +951,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 },
-@@ -2713,6 +2716,12 @@ void server_options(char **args, int *argc_p)
+@@ -2718,6 +2721,12 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -90,7 +90,7 @@ diff --git a/rsync.yo b/rsync.yo
       --preallocate           allocate dest files before writing
       --write-devices         write to devices as files (implies --inplace)
   -n, --dry-run               perform a trial run with no changes made
-@@ -1346,6 +1347,15 @@ If combined with bf(--sparse), the file will only have sparse blocks (as
+@@ -1347,6 +1348,15 @@ If combined with bf(--sparse), the file will only have sparse blocks (as
  opposed to allocated sequences of null bytes) if the kernel version and
  filesystem type support creating holes in the allocated data.
  
index e639e62e8c59047e850bce194290b65cb3bac817..9234447c07fb7aa83858d798c407a2f97e63e039 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
@@ -69,7 +69,7 @@ diff --git a/main.c b/main.c
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -2769,14 +2769,18 @@ regardless of the remote charset you actually pass.  Thus, you may feel free to
+@@ -2793,14 +2793,18 @@ regardless of the remote charset you actually pass.  Thus, you may feel free to
  specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).
  
  dit(bf(-4, --ipv4) or bf(-6, --ipv6)) Tells rsync to prefer IPv4/IPv6
index 4d8a6fe48af24537dae99df74d429b793185fc2f..6c0589fd382fd3701251ac0435a93cc0dd869c9b 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure                              (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 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;
-@@ -806,6 +807,8 @@ void usage(enum logcode F)
+@@ -811,6 +812,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
-@@ -834,6 +837,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -839,6 +842,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[] = {
-@@ -1037,6 +1041,8 @@ static struct poptOption long_options[] = {
+@@ -1042,6 +1046,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 },
-@@ -1899,6 +1905,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1904,6 +1910,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. */
-@@ -2725,6 +2761,15 @@ void server_options(char **args, int *argc_p)
+@@ -2730,6 +2766,15 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -144,7 +144,7 @@ diff --git a/rsync.yo b/rsync.yo
       --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
-@@ -2701,6 +2703,19 @@ files can show up as being rapidly sent when the data is quickly buffered,
+@@ -2725,6 +2727,19 @@ files can show up as being rapidly sent when the data is quickly buffered,
  while other can show up as very slow when the flushing of the output buffer
  occurs.  This may be fixed in a future version.
  
index 3cfb8dab0fff2960c1ad18d6259ad09184f621e1..2225c7bd7ab8da2d4466998a76344e6a4f956a3a 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -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;
-@@ -816,6 +817,7 @@ void usage(enum logcode F)
+@@ -821,6 +822,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");
-@@ -1044,6 +1046,7 @@ static struct poptOption long_options[] = {
+@@ -1049,6 +1051,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 },
-@@ -2470,6 +2473,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2474,6 +2477,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;
-@@ -2905,6 +2926,12 @@ void server_options(char **args, int *argc_p)
+@@ -2910,6 +2931,12 @@ void server_options(char **args, int *argc_p)
        if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
                args[ac++] = "--no-implied-dirs";
  
@@ -161,7 +161,7 @@ diff --git a/rsync.yo b/rsync.yo
       --checksum-seed=NUM     set block/file checksum seed (advanced)
   -4, --ipv4                  prefer IPv4
   -6, --ipv6                  prefer IPv6
-@@ -2768,6 +2769,22 @@ daemon uses the charset specified in its "charset" configuration parameter
+@@ -2792,6 +2793,22 @@ daemon uses the charset specified in its "charset" configuration parameter
  regardless of the remote charset you actually pass.  Thus, you may feel free to
  specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).
  
index 6c1e32e3c1e31a62d0226666edce4b3110bcb903..c2b4e685bf82dd9753c2960d963304d57a07872b 100644 (file)
@@ -6,7 +6,7 @@ To use this patch, run these commands for a successful build:
     ./configure                          (optional if already run)
     make
 
-based-on: 70c6b408dc299f7aa00dd3452ae82b56d6c17f80
+based-on: a28bc3ebf672113cdd90432ef0270782d8ab6c2c
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 32f7d4c8450d63e129c811d23e7c9045a41cffef..4b13405f309d2c566e2f9b6af8880c21bbf529cd 100644 (file)
@@ -14,7 +14,7 @@ based-on: patch/master/acls
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
-@@ -217,13 +217,6 @@ void setup_protocol(int f_out,int f_in)
+@@ -222,13 +222,6 @@ void setup_protocol(int f_out,int f_in)
        if (protocol_version < 30) {
                if (append_mode == 1)
                        append_mode = 2;