Updated to latest source.
authorWayne Davison <wayne@opencoder.net>
Fri, 12 Jun 2020 04:36:23 +0000 (21:36 -0700)
committerWayne Davison <wayne@opencoder.net>
Fri, 12 Jun 2020 04:39:15 +0000 (21:39 -0700)
41 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
md5p8.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
xxh3.diff

index 9cba986cdcb9c20d696332703e13e77e4da74943..22706107d7af6f66be5593200a0f10e31ffbc4ad 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 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
-@@ -532,13 +532,6 @@ void setup_protocol(int f_out,int f_in)
+@@ -530,13 +530,6 @@ void setup_protocol(int f_out,int f_in)
        if (protocol_version < 30) {
                if (append_mode == 1)
                        append_mode = 2;
index dcce2622a1a7bd5bba95cd8f9af8afc67032fc08..008a1bb4220fb0b03bae8d7d5ec7002d0ed89afb 100644 (file)
@@ -24,7 +24,7 @@ Todo:
 Fix a bug that could lose some bits when stripping some (supposedly)
 superfluous ACL info.
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/lib/sysacls.c b/lib/sysacls.c
 --- a/lib/sysacls.c
 +++ b/lib/sysacls.c
index 3db0ff1d38b050ab1cb54a241fe11cc67f25575b..1a895c273e94f68b4e5aad791832bf1158402df5 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -41,15 +41,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -741,6 +741,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");
-+  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);
-   rprintf(F," -u, --update                skip files that are newer on the receiver\n");
-@@ -1073,7 +1074,8 @@ static struct poptOption long_options[] = {
+@@ -926,7 +926,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 +51,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 },
-@@ -2817,6 +2819,10 @@ void server_options(char **args, int *argc_p)
+@@ -2657,6 +2658,10 @@ void server_options(char **args, int *argc_p)
        }
  
        if (am_sender) {
@@ -94,15 +86,15 @@ diff --git a/receiver.c b/receiver.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -341,6 +341,7 @@ detailed description below for a complete description.
- --relative, -R              use relative path names
- --no-implied-dirs           don't send implied dirs with --relative
- --backup, -b                make backups (see --suffix & --backup-dir)
-+--backup-deleted            make backups only of deleted files
- --backup-dir=DIR            make backups into hierarchy based in DIR
- --suffix=SUFFIX             backup suffix (default ~ w/o --backup-dir)
- --update, -u                skip files that are newer on the receiver
-@@ -831,6 +832,13 @@ your home directory (remove the '=' for that).
+@@ -343,6 +343,7 @@ detailed description below for a complete description.
+ --relative, -R           use relative path names
+ --no-implied-dirs        don't send implied dirs with --relative
+ --backup, -b             make backups (see --suffix & --backup-dir)
++--backup-deleted         make backups only of deleted files
+ --backup-dir=DIR         make backups into hierarchy based in DIR
+ --suffix=SUFFIX          backup suffix (default ~ w/o --backup-dir)
+ --update, -u             skip files that are newer on the receiver
+@@ -833,6 +834,13 @@ your home directory (remove the '=' for that).
      trailing inclusion/exclusion of `*`, the auto-added rule would never be
      reached).
  
index c2d831fba5d4760e5b7e059097ebb5066edf29ce..cda7c87958d5dfd9d6b61b593014243bffde8131 100644 (file)
@@ -229,16 +229,7 @@ diff --git a/options.c b/options.c
  char *sockopts = NULL;
  char *usermap = NULL;
  char *groupmap = NULL;
-@@ -744,6 +750,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);
-+  rprintf(F,"     --backup-dir-dels=DIR   backup removed files into hierarchy based in DIR\n");
-+  rprintf(F,"     --suffix-dels=SUFFIX    set removed-files suffix (def. --suffix w/o b-d-d)\n");
-   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");
-@@ -1078,7 +1086,9 @@ static struct poptOption long_options[] = {
+@@ -930,7 +936,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 +239,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 },
-@@ -2283,6 +2293,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2122,6 +2130,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 +248,7 @@ diff --git a/options.c b/options.c
        }
        if (daemon_filter_list.head && !am_sender) {
                filter_rule_list *elp = &daemon_filter_list;
-@@ -2304,6 +2316,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2143,6 +2153,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        if (check_filter(elp, FLOG, dir, 1) < 0)
                                goto options_rejected;
                }
@@ -272,7 +263,7 @@ diff --git a/options.c b/options.c
        }
  
        if (!backup_suffix)
-@@ -2315,6 +2335,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2154,6 +2172,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        backup_suffix);
                return 0;
        }
@@ -293,7 +284,7 @@ diff --git a/options.c b/options.c
        if (backup_dir) {
                size_t len;
                while (*backup_dir == '.' && backup_dir[1] == '/')
-@@ -2350,6 +2384,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2189,6 +2221,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 +319,7 @@ diff --git a/options.c b/options.c
  
        if (preserve_times) {
                preserve_times = PRESERVE_FILE_TIMES;
-@@ -2793,6 +2855,10 @@ void server_options(char **args, int *argc_p)
+@@ -2632,6 +2692,10 @@ void server_options(char **args, int *argc_p)
                args[ac++] = "--backup-dir";
                args[ac++] = backup_dir;
        }
@@ -339,7 +330,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) {
-@@ -2801,6 +2867,14 @@ void server_options(char **args, int *argc_p)
+@@ -2640,6 +2704,14 @@ void server_options(char **args, int *argc_p)
                        goto oom;
                args[ac++] = arg;
        }
@@ -354,3 +345,16 @@ diff --git a/options.c b/options.c
  
        if (checksum_choice) {
                if (asprintf(&arg, "--checksum-choice=%s", checksum_choice) < 0)
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -345,7 +345,9 @@ detailed description below for a complete description.
+ --backup, -b             make backups (see --suffix & --backup-dir)
+ --backup-deleted         make backups only of deleted files
+ --backup-dir=DIR         make backups into hierarchy based in DIR
++--backup-dir-dels=DIR    backup removed files into hierarchy based in DIR
+ --suffix=SUFFIX          backup suffix (default ~ w/o --backup-dir)
++--suffix-dels=SUFFIX     set removed-files suffix (def. --suffix w/o b-d-d)
+ --update, -u             skip files that are newer on the receiver
+ --inplace                update destination files in-place
+ --append                 append data onto shorter files
index 77ed1fc75cfa8157422d303de56713c819179a80..12fb8be63710236800c96dd375523922fa374779 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/errcode.h b/errcode.h
 --- a/errcode.h
 +++ b/errcode.h
index b2c5d5c956e8d991e990ea604bb3a773f8b79e48..db280b371f681ab1546a5f8189b6cbbbcbf2707f 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -226,7 +226,7 @@ diff --git a/flist.c b/flist.c
 +                      if (*cp == '=')
 +                              while (*++cp == '=') {}
 +                      else
-+                              while (isXDigit(cp)) cp++;
++                              while (isHexDigit(cp)) cp++;
 +                      if (cp - alt_sum != MD4_DIGEST_LEN*2 || *cp != ' ')
 +                              break;
 +                      while (*++cp == ' ') {}
@@ -237,7 +237,7 @@ diff --git a/flist.c b/flist.c
 +              } else {
 +                      for (i = 0; i < flist_csum_len*2; i++, cp++) {
 +                              int x;
-+                              if (isXDigit(cp)) {
++                              if (isHexDigit(cp)) {
 +                                      if (isDigit(cp))
 +                                              x = *cp - '0';
 +                                      else
@@ -261,7 +261,7 @@ diff --git a/flist.c b/flist.c
 +                      if (*cp == '=')
 +                              while (*++cp == '=') {}
 +                      else
-+                              while (isXDigit(cp)) cp++;
++                              while (isHexDigit(cp)) cp++;
 +                      if (cp - alt_sum != MD5_DIGEST_LEN*2 || *cp != ' ')
 +                              break;
 +                      while (*++cp == ' ') {}
@@ -405,7 +405,7 @@ diff --git a/flist.c b/flist.c
  
        if (unsort_ndx)
                F_NDX(file) = stats.num_dirs;
-@@ -2619,7 +2883,7 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2633,7 +2897,7 @@ struct file_list *recv_file_list(int f, int dir_ndx)
        /* The --relative option sends paths with a leading slash, so we need
         * to specify the strip_root option here.  We rejected leading slashes
         * for a non-relative transfer in recv_file_entry(). */
@@ -414,7 +414,7 @@ diff --git a/flist.c b/flist.c
  
        if (protocol_version < 30) {
                /* Recv the io_error flag */
-@@ -2870,7 +3134,7 @@ void flist_free(struct file_list *flist)
+@@ -2884,7 +3148,7 @@ void flist_free(struct file_list *flist)
  
  /* This routine ensures we don't have any duplicate names in our file list.
   * duplicate names can cause corruption because of the pipelining. */
@@ -423,7 +423,7 @@ diff --git a/flist.c b/flist.c
  {
        char fbuf[MAXPATHLEN];
        int i, prev_i;
-@@ -2921,7 +3185,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2935,7 +3199,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
                        /* If one is a dir and the other is not, we want to
                         * keep the dir because it might have contents in the
                         * list.  Otherwise keep the first one. */
@@ -432,7 +432,7 @@ diff --git a/flist.c b/flist.c
                                struct file_struct *fp = flist->sorted[j];
                                if (!S_ISDIR(fp->mode))
                                        keep = i, drop = j;
-@@ -2937,8 +3201,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2951,8 +3215,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
                        } else
                                keep = j, drop = i;
  
@@ -443,7 +443,7 @@ diff --git a/flist.c b/flist.c
                                        rprintf(FINFO,
                                            "removing duplicate name %s from file list (%d)\n",
                                            f_name(file, fbuf), drop + flist->ndx_start);
-@@ -2960,7 +3224,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2974,7 +3238,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
        }
        flist->high = prev_i;
  
@@ -583,26 +583,10 @@ diff --git a/hlink.c b/hlink.c
                                continue;
                        statret = 1;
                        if (unchanged_attrs(cmpbuf, file, &alt_sx))
-diff --git a/itypes.h b/itypes.h
---- a/itypes.h
-+++ b/itypes.h
-@@ -22,6 +22,12 @@ isDigit(const char *ptr)
-       return isdigit(*(unsigned char *)ptr);
- }
-+static inline int
-+isXDigit(const char *ptr)
-+{
-+      return isxdigit(*(unsigned char *)ptr);
-+}
-+
- static inline int
- isPrint(const char *ptr)
- {
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -175,6 +175,7 @@ typedef struct {
+@@ -177,6 +177,7 @@ typedef struct {
        BOOL temp_dir_EXP;
        BOOL uid_EXP;
  
@@ -610,7 +594,7 @@ diff --git a/loadparm.c b/loadparm.c
        int max_connections;
        int max_verbosity;
        int syslog_facility;
-@@ -290,6 +291,7 @@ static const all_vars Defaults = {
+@@ -294,6 +295,7 @@ static const all_vars Defaults = {
   /* temp_dir_EXP; */          False,
   /* uid_EXP; */                       False,
  
@@ -618,7 +602,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* max_connections; */               0,
   /* max_verbosity; */         1,
   /* syslog_facility; */               LOG_DAEMON,
-@@ -392,6 +394,13 @@ static struct enum_list enum_facilities[] = {
+@@ -396,6 +398,13 @@ static struct enum_list enum_facilities[] = {
        { -1, NULL }
  };
  
@@ -632,7 +616,7 @@ diff --git a/loadparm.c b/loadparm.c
  static struct parm_struct parm_table[] =
  {
   {"address",           P_STRING, P_GLOBAL,&Vars.g.bind_address,        NULL,0},
-@@ -406,6 +415,7 @@ static struct parm_struct parm_table[] =
+@@ -411,6 +420,7 @@ static struct parm_struct parm_table[] =
  
   {"auth users",        P_STRING, P_LOCAL, &Vars.l.auth_users,          NULL,0},
   {"charset",           P_STRING, P_LOCAL, &Vars.l.charset,             NULL,0},
@@ -640,7 +624,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"comment",           P_STRING, P_LOCAL, &Vars.l.comment,             NULL,0},
   {"dont compress",     P_STRING, P_LOCAL, &Vars.l.dont_compress,       NULL,0},
   {"early exec",        P_STRING, P_LOCAL, &Vars.l.early_exec,          NULL,0},
-@@ -572,6 +582,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
+@@ -579,6 +589,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
  FN_LOCAL_STRING(lp_temp_dir, temp_dir)
  FN_LOCAL_STRING(lp_uid, uid)
  
@@ -659,15 +643,7 @@ diff --git a/options.c b/options.c
  int max_delete = INT_MIN;
  OFF_T max_size = -1;
  OFF_T min_size = -1;
-@@ -735,6 +736,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");
-+  rprintf(F,"     --sumfiles=MODE         use .rsyncsums to speedup --checksum mode\n");
-   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");
-@@ -886,7 +888,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -739,7 +740,7 @@ enum {OPT_SERVER = 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,
@@ -676,7 +652,7 @@ diff --git a/options.c b/options.c
        OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
        OPT_REFUSED_BASE = 9000};
-@@ -1037,6 +1039,7 @@ static struct poptOption long_options[] = {
+@@ -890,6 +891,7 @@ static struct poptOption long_options[] = {
    {"no-c",             0,  POPT_ARG_VAL,    &always_checksum, 0, 0, 0 },
    {"checksum-choice",  0,  POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
    {"cc",               0,  POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
@@ -684,7 +660,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 },
-@@ -1859,6 +1862,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1699,6 +1701,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        }
                        break;
  
@@ -708,7 +684,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);
-@@ -2128,6 +2148,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1968,6 +1987,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        }
  #endif
  
@@ -721,15 +697,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -335,6 +335,7 @@ detailed description below for a complete description.
- --quiet, -q                 suppress non-error messages
- --no-motd                   suppress daemon-mode MOTD (see caveat)
- --checksum, -c              skip based on checksum, not mod-time & size
-+--sumfiles=MODE             use .rsyncsums to speedup --checksum mode
- --archive, -a               archive mode; equals -rlptgoD (no -H,-A,-X)
- --no-OPTION                 turn off an implied OPTION (e.g. --no-D)
- --recursive, -r             recurse into directories
-@@ -673,6 +674,8 @@ your home directory (remove the '=' for that).
+@@ -337,6 +337,7 @@ detailed description below for a complete description.
+ --quiet, -q              suppress non-error messages
+ --no-motd                suppress daemon-mode MOTD
+ --checksum, -c           skip based on checksum, not mod-time & size
++--sumfiles=MODE          use .rsyncsums to speedup --checksum mode
+ --archive, -a            archive mode; equals -rlptgoD (no -H,-A,-X)
+ --no-OPTION              turn off an implied OPTION (e.g. --no-D)
+ --recursive, -r          recurse into directories
+@@ -675,6 +676,8 @@ your home directory (remove the '=' for that).
      file that has the same size as the corresponding sender's file: files with
      either a changed size or a changed checksum are selected for transfer.
  
@@ -738,7 +714,7 @@ diff --git a/rsync.1.md b/rsync.1.md
      Note that rsync always verifies that each _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 automatic
-@@ -683,6 +686,38 @@ your home directory (remove the '=' for that).
+@@ -685,6 +688,38 @@ your home directory (remove the '=' for that).
      can be overridden using either the `--checksum-choice` option or an
      environment variable that is discussed in that option's section.
  
@@ -808,7 +784,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -380,6 +380,19 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -404,6 +404,19 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      the max connections limit is not exceeded for the modules sharing the lock
      file.  The default is `/var/run/rsyncd.lock`.
  
index 7f19f7280ab5bfcd1f3453d1aec50c011e3086ec..e047319d7f5bbdff8cd833f8aaf4cc56c0b0f240 100644 (file)
@@ -424,7 +424,7 @@ diff --git a/flist.c b/flist.c
                else
                        file_checksum(thisname, &st, tmp_sum);
                if (sender_keeps_checksum)
-@@ -2050,6 +2263,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -2064,6 +2277,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
  
        closedir(d);
  
@@ -434,7 +434,7 @@ diff --git a/flist.c b/flist.c
        if (f >= 0 && recurse && !divert_dirs) {
                int i, end = flist->used - 1;
                /* send_if_directory() bumps flist->used, so use "end". */
-@@ -2719,6 +2935,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2733,6 +2949,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        rprintf(FINFO, "[%s] flist_eof=1\n", who_am_i());
        }
  
@@ -533,7 +533,7 @@ diff --git a/io.c b/io.c
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -398,6 +398,10 @@ static struct enum_list enum_csum_modes[] = {
+@@ -402,6 +402,10 @@ static struct enum_list enum_csum_modes[] = {
        { CSF_IGNORE_FILES, "none" },
        { CSF_LAX_MODE, "lax" },
        { CSF_STRICT_MODE, "strict" },
@@ -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
-@@ -1864,7 +1864,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1703,7 +1703,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
  
                case OPT_SUMFILES:
                        arg = poptGetOptArg(pc);
@@ -584,7 +584,7 @@ diff --git a/receiver.c b/receiver.c
                                 || (preserve_hard_links && F_IS_HLINKED(file)))
                                        send_msg_int(MSG_SUCCESS, ndx);
                                handle_partial_dir(partialptr, PDIR_DELETE);
-@@ -919,7 +920,7 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -908,7 +909,7 @@ int recv_files(int f_in, int f_out, char *local_name)
                case 2:
                        break;
                case 1:
@@ -596,7 +596,7 @@ diff --git a/receiver.c b/receiver.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -697,9 +697,13 @@ your home directory (remove the '=' for that).
+@@ -699,9 +699,13 @@ your home directory (remove the '=' for that).
  
      The MODE value is either "lax", for relaxed checking (which compares size
      and mtime), "strict" (which also compares ctime and inode), or "none" to
@@ -628,7 +628,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -385,13 +385,15 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -409,13 +409,15 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      This parameter tells rsync to make use of any cached checksum information
      it finds in per-directory .rsyncsums files when the current transfer is
      using the `--checksum` option.  The value can be set to either "lax",
index a6521efb97b4ea050845fae44c7979558fb6f03a..7a1e2ab3f4a55aa2dd363f86580dc1b6914db3bc 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 12ebee930265bc708de4dc0d590039f52a68cf14..dae05ee30bf242afc2e4adabe9a2f9432418f78a 100644 (file)
@@ -27,11 +27,11 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -121,6 +121,7 @@ typedef struct {
+@@ -123,6 +123,7 @@ typedef struct {
        char *auth_users;
        char *charset;
        char *comment;
@@ -39,7 +39,7 @@ diff --git a/loadparm.c b/loadparm.c
        char *dont_compress;
        char *early_exec;
        char *exclude;
-@@ -150,6 +151,7 @@ typedef struct {
+@@ -152,6 +153,7 @@ typedef struct {
        BOOL auth_users_EXP;
        BOOL charset_EXP;
        BOOL comment_EXP;
@@ -47,7 +47,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL dont_compress_EXP;
        BOOL early_exec_EXP;
        BOOL exclude_EXP;
-@@ -175,6 +177,7 @@ typedef struct {
+@@ -177,6 +179,7 @@ typedef struct {
        BOOL temp_dir_EXP;
        BOOL uid_EXP;
  
@@ -55,7 +55,7 @@ diff --git a/loadparm.c b/loadparm.c
        int max_connections;
        int max_verbosity;
        int syslog_facility;
-@@ -237,6 +240,7 @@ static const all_vars Defaults = {
+@@ -241,6 +244,7 @@ static const all_vars Defaults = {
   /* auth_users; */            NULL,
   /* charset; */               NULL,
   /* comment; */               NULL,
@@ -63,7 +63,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* dont_compress; */         DEFAULT_DONT_COMPRESS,
   /* early_exec; */            NULL,
   /* exclude; */               NULL,
-@@ -265,6 +269,7 @@ static const all_vars Defaults = {
+@@ -269,6 +273,7 @@ static const all_vars Defaults = {
   /* auth_users_EXP; */                False,
   /* charset_EXP; */           False,
   /* comment_EXP; */           False,
@@ -71,7 +71,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* dont_compress_EXP; */     False,
   /* early_exec_EXP; */                False,
   /* exclude_EXP; */           False,
-@@ -290,6 +295,7 @@ static const all_vars Defaults = {
+@@ -294,6 +299,7 @@ static const all_vars Defaults = {
   /* temp_dir_EXP; */          False,
   /* uid_EXP; */                       False,
  
@@ -79,7 +79,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* max_connections; */               0,
   /* max_verbosity; */         1,
   /* syslog_facility; */               LOG_DAEMON,
-@@ -407,6 +413,8 @@ static struct parm_struct parm_table[] =
+@@ -412,6 +418,8 @@ static struct parm_struct parm_table[] =
   {"auth users",        P_STRING, P_LOCAL, &Vars.l.auth_users,          NULL,0},
   {"charset",           P_STRING, P_LOCAL, &Vars.l.charset,             NULL,0},
   {"comment",           P_STRING, P_LOCAL, &Vars.l.comment,             NULL,0},
@@ -88,7 +88,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"dont compress",     P_STRING, P_LOCAL, &Vars.l.dont_compress,       NULL,0},
   {"early exec",        P_STRING, P_LOCAL, &Vars.l.early_exec,          NULL,0},
   {"exclude from",      P_STRING, P_LOCAL, &Vars.l.exclude_from,        NULL,0},
-@@ -547,6 +555,7 @@ FN_GLOBAL_INTEGER(lp_rsync_port, rsync_port)
+@@ -554,6 +562,7 @@ FN_GLOBAL_BOOL(lp_haproxy_header, haproxy_header)
  FN_LOCAL_STRING(lp_auth_users, auth_users)
  FN_LOCAL_STRING(lp_charset, charset)
  FN_LOCAL_STRING(lp_comment, comment)
@@ -96,7 +96,7 @@ diff --git a/loadparm.c b/loadparm.c
  FN_LOCAL_STRING(lp_dont_compress, dont_compress)
  FN_LOCAL_STRING(lp_early_exec, early_exec)
  FN_LOCAL_STRING(lp_exclude, exclude)
-@@ -572,6 +581,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
+@@ -579,6 +588,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
  FN_LOCAL_STRING(lp_temp_dir, temp_dir)
  FN_LOCAL_STRING(lp_uid, uid)
  
@@ -116,16 +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;
-@@ -847,6 +849,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");
-+  rprintf(F,"     --diffserv=[0-63]       specify diffserv setting \n");
-+  rprintf(F,"     --congestion-alg=STRING choose a congestion algo\n");
-   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");
-@@ -1121,6 +1125,8 @@ static struct poptOption long_options[] = {
+@@ -974,6 +976,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,15 +125,18 @@ 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 },
-@@ -1148,6 +1154,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");
-+  rprintf(F,"     --diffserv=[0-63]       specify diffserv setting \n");
-+  rprintf(F,"     --congestion-alg=STRING choose a congestion algo\n");
-   rprintf(F," -v, --verbose               increase verbosity\n");
-   rprintf(F," -4, --ipv4                  prefer IPv4\n");
-   rprintf(F," -6, --ipv6                  prefer IPv6\n");
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -438,6 +438,8 @@ detailed description below for a complete description.
+ --address=ADDRESS        bind address for outgoing socket to daemon
+ --port=PORT              specify double-colon alternate port number
+ --sockopts=OPTIONS       specify custom TCP options
++--diffserv=[0-63]        specify diffserv setting
++--congestion-alg=STRING  choose a congestion algo
+ --blocking-io            use blocking I/O for the remote shell
+ --outbuf=N|L|B           set out buffering to None, Line, or Block
+ --stats                  give some file-transfer stats
 diff --git a/socket.c b/socket.c
 --- a/socket.c
 +++ b/socket.c
index ff324c2b8ad00694d9eaf6fc132e5e68f4e2bf7a..8b50e1ed6bdfbf433c96785c18d168a5909c3d1b 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: c117fa4bf9976f3e5e284b87a2304398e4428208
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -50,15 +50,7 @@ diff --git a/options.c b/options.c
  int write_devices = 0;
  int preserve_links = 0;
  int preserve_hard_links = 0;
-@@ -768,6 +769,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");
-+  rprintf(F,"     --copy-devices          copy device contents as regular file\n");
-   rprintf(F,"     --specials              preserve special files\n");
-   rprintf(F," -D                          same as --devices --specials\n");
-   rprintf(F," -t, --times                 preserve modification times\n");
-@@ -961,6 +963,7 @@ static struct poptOption long_options[] = {
+@@ -814,6 +815,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 },
@@ -66,7 +58,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 },
-@@ -1281,8 +1284,10 @@ static void set_refuse_options(void)
+@@ -1121,8 +1123,10 @@ static void set_refuse_options(void)
        }
        assert(list_end != NULL);
  
@@ -78,7 +70,7 @@ diff --git a/options.c b/options.c
  
        while (1) {
                while (*ref == ' ') ref++;
-@@ -2981,6 +2986,9 @@ void server_options(char **args, int *argc_p)
+@@ -2821,6 +2825,9 @@ void server_options(char **args, int *argc_p)
        else if (remove_source_files)
                args[ac++] = "--remove-sent-files";
  
@@ -88,6 +80,17 @@ diff --git a/options.c b/options.c
        if (preallocate_files && am_sender)
                args[ac++] = "--preallocate";
  
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -366,6 +366,7 @@ detailed description below for a complete description.
+ --owner, -o              preserve owner (super-user only)
+ --group, -g              preserve group
+ --devices                preserve device files (super-user only)
++--copy-devices           copy device contents as regular file
+ --specials               preserve special files
+ -D                       same as --devices --specials
+ --times, -t              preserve modification times
 diff --git a/rsync.c b/rsync.c
 --- a/rsync.c
 +++ b/rsync.c
index fcd8deae4d7a7b3952c9a5634cdab61b25920972..1e247d4010a26b0a3a7a9722747609d5238b73f5 100644 (file)
@@ -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 */
-@@ -465,6 +466,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -463,6 +464,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
-@@ -630,6 +633,10 @@ void setup_protocol(int f_out,int f_in)
+@@ -628,6 +631,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;
@@ -301,17 +301,7 @@ diff --git a/options.c b/options.c
                NULL
        };
  
-@@ -783,6 +789,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");
-+#ifdef SUPPORT_CRTIMES
-+  rprintf(F," -N, --crtimes               preserve create times (newness)\n");
-+#endif
-   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");
-@@ -960,6 +969,11 @@ static struct poptOption long_options[] = {
+@@ -805,6 +811,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 },
@@ -323,7 +313,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 },
-@@ -2664,6 +2678,10 @@ void server_options(char **args, int *argc_p)
+@@ -2496,6 +2507,10 @@ void server_options(char **args, int *argc_p)
                if (preserve_atimes > 1)
                        argstr[x++] = 'U';
        }
@@ -337,15 +327,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -370,6 +370,7 @@ detailed description below for a complete description.
- --times, -t                 preserve modification times
- --atimes, -U                preserve access (use) times
- --open-noatime              avoid changing the atime on opened files
-+--crtimes, -N               preserve create times (newness)
- --omit-dir-times, -O        omit directories from --times
- --omit-link-times, -J       omit symlinks from --times
- --super                     receiver attempts super-user activities
-@@ -1360,6 +1361,11 @@ your home directory (remove the '=' for that).
+@@ -372,6 +372,7 @@ detailed description below for a complete description.
+ --times, -t              preserve modification times
+ --atimes, -U             preserve access (use) times
+ --open-noatime           avoid changing the atime on opened files
++--crtimes, -N            preserve create times (newness)
+ --omit-dir-times, -O     omit directories from --times
+ --omit-link-times, -J    omit symlinks from --times
+ --super                  receiver attempts super-user activities
+@@ -1362,6 +1363,11 @@ your home directory (remove the '=' for that).
      mounted to avoid updating the atime on read access even without the
      O_NOATIME flag being set.
  
@@ -357,7 +347,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  0.  `--omit-dir-times`, `-O`
  
      This tells rsync to omit directories when it is preserving modification
-@@ -2521,7 +2527,7 @@ your home directory (remove the '=' for that).
+@@ -2523,7 +2529,7 @@ your home directory (remove the '=' for that).
      output of other verbose messages).
  
      The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -366,7 +356,7 @@ diff --git a/rsync.1.md b/rsync.1.md
      of update being done, **X** is replaced by the file-type, and the other
      letters represent attributes that may be output if they are being modified.
  
-@@ -2578,6 +2584,8 @@ your home directory (remove the '=' for that).
+@@ -2580,6 +2586,8 @@ your home directory (remove the '=' for that).
        happens when a symlink or directory is updated.
      - The `a` means that the ACL information changed.
      - The `x` means that the extended attribute information changed.
index 99b35181457ac3ca03e7c6fb6b2fdd2f4ed1e8c9..f95a5c4bb4b6c7b672f700aa435987e5b677c3d3 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
index c61ef815331428b03c4456a332d1c276934a821e..bdf76405e35a1c3aa56d3b0420d52945e9f6e315 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -47,15 +47,7 @@ diff --git a/options.c b/options.c
  int daemon_bwlimit = 0;
  int bwlimit = 0;
  int fuzzy_basis = 0;
-@@ -823,6 +824,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");
-+  rprintf(F,"     --date-only             skip files that match in mod-time\n");
-   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");
-@@ -988,6 +990,7 @@ static struct poptOption long_options[] = {
+@@ -841,6 +842,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 +55,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 },
-@@ -2868,6 +2871,9 @@ void server_options(char **args, int *argc_p)
+@@ -2708,6 +2710,9 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
@@ -76,15 +68,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -412,6 +412,7 @@ detailed description below for a complete description.
- --contimeout=SECONDS        set daemon connection timeout in seconds
- --ignore-times, -I          don't skip files that match size and time
- --size-only                 skip files that match in size
-+--date-only                 skip files that match in mod-time
- --modify-window=NUM, -@     set the accuracy for mod-time comparisons
- --temp-dir=DIR, -T          create temporary files in directory DIR
- --fuzzy, -y                 find similar file for basis if no dest file
-@@ -635,6 +636,14 @@ your home directory (remove the '=' for that).
+@@ -414,6 +414,7 @@ detailed description below for a complete description.
+ --contimeout=SECONDS     set daemon connection timeout in seconds
+ --ignore-times, -I       don't skip files that match size and time
+ --size-only              skip files that match in size
++--date-only              skip files that match in mod-time
+ --modify-window=NUM, -@  set the accuracy for mod-time comparisons
+ --temp-dir=DIR, -T       create temporary files in directory DIR
+ --fuzzy, -y              find similar file for basis if no dest file
+@@ -637,6 +638,14 @@ your home directory (remove the '=' for that).
      after using another mirroring system which may not preserve timestamps
      exactly.
  
diff --git a/db.diff b/db.diff
index a022ea0e4e4e49ce6bcb69c392cf6f9113b0f2b8..3be5723cd7fac44bca2d2873e4f1b5d8e1538438 100644 (file)
--- a/db.diff
+++ b/db.diff
@@ -21,11 +21,11 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/.gitignore b/.gitignore
 --- a/.gitignore
 +++ b/.gitignore
-@@ -26,6 +26,7 @@ aclocal.m4
+@@ -27,6 +27,7 @@ aclocal.m4
  /getgroups
  /gmon.out
  /rsync
@@ -64,10 +64,10 @@ diff --git a/Makefile.in b/Makefile.in
  OBJS3=progress.o pipe.o
  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 \
-@@ -78,10 +80,12 @@ install: all
+@@ -76,10 +78,12 @@ install: all
+       -${MKDIR_P} ${DESTDIR}${bindir}
        ${INSTALLCMD} ${INSTALL_STRIP} -m 755 rsync$(EXEEXT) ${DESTDIR}${bindir}
        ${INSTALLCMD} -m 755 rsync-ssl ${DESTDIR}${bindir}
-       ${INSTALLCMD} -m 755 ssl-rsh ${DESTDIR}${libdir}
 +      rsync -ilt rsyncdb$(EXEEXT) ${DESTDIR}${bindir}/
        -${MKDIR_P} ${DESTDIR}${mandir}/man1
        -${MKDIR_P} ${DESTDIR}${mandir}/man5
@@ -77,7 +77,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
-@@ -99,6 +103,9 @@ install-strip:
+@@ -97,6 +101,9 @@ install-strip:
  rsync$(EXEEXT): $(OBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
  
@@ -86,8 +86,8 @@ diff --git a/Makefile.in b/Makefile.in
 +
  $(OBJS): $(HEADERS)
  $(CHECK_OBJS): $(HEADERS)
- options.o: latest-year.h
-@@ -222,7 +229,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
+ options.o: latest-year.h help-rsync.h help-rsyncd.h
+@@ -240,7 +247,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
        awk -f $(srcdir)/mkproto.awk $(srcdir)/*.c $(srcdir)/lib/compat.c
  
  .PHONY: man
@@ -96,7 +96,7 @@ diff --git a/Makefile.in b/Makefile.in
  
  rsync.1: rsync.1.md md2man NEWS.md Makefile
        @$(srcdir)/maybe-make-man $(srcdir) rsync.1.md
-@@ -233,9 +240,12 @@ rsync-ssl.1: rsync-ssl.1.md md2man NEWS.md Makefile
+@@ -251,9 +258,12 @@ rsync-ssl.1: rsync-ssl.1.md md2man NEWS.md Makefile
  rsyncd.conf.5: rsyncd.conf.5.md md2man NEWS.md Makefile
        @$(srcdir)/maybe-make-man $(srcdir) rsyncd.conf.5.md
  
@@ -107,7 +107,7 @@ diff --git a/Makefile.in b/Makefile.in
  clean: cleantests
 -      rm -f *~ $(OBJS) $(CHECK_PROGS) $(CHECK_OBJS) $(CHECK_SYMLINKS) \
 +      rm -f *~ $(OBJS) $(CHECK_PROGS) $(CHECK_OBJS) $(CHECK_SYMLINKS) rsyncdb$(EXEEXT) \
-               rounding rounding.h *.old
+               rounding rounding.h *.old rsync*.1 rsync*.5 rsync*.html
  
  .PHONY: cleantests
 diff --git a/checksum.c b/checksum.c
@@ -2251,7 +2251,7 @@ diff --git a/flist.c b/flist.c
  
        if (unsort_ndx)
                F_NDX(file) = stats.num_dirs;
-@@ -2087,6 +2089,9 @@ void send_extra_file_list(int f, int at_least)
+@@ -2101,6 +2103,9 @@ void send_extra_file_list(int f, int at_least)
    finish:
        if (io_error != save_io_error && protocol_version == 30 && !ignore_errors)
                send_msg_int(MSG_IO_ERROR, io_error);
@@ -2261,7 +2261,7 @@ diff --git a/flist.c b/flist.c
  }
  
  struct file_list *send_file_list(int f, int argc, char *argv[])
-@@ -2110,6 +2115,13 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2124,6 +2129,13 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                     | (eol_nulls || reading_remotely ? RL_EOL_NULLS : 0);
        int implied_dot_dir = 0;
  
@@ -2275,7 +2275,7 @@ diff --git a/flist.c b/flist.c
        rprintf(FLOG, "building file list\n");
        if (show_filelist_progress)
                start_filelist_progress("building file list");
-@@ -2455,6 +2467,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2469,6 +2481,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        rprintf(FINFO, "[%s] flist_eof=1\n", who_am_i());
        }
  
@@ -2388,7 +2388,7 @@ diff --git a/io.c b/io.c
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -121,6 +121,7 @@ typedef struct {
+@@ -123,6 +123,7 @@ typedef struct {
        char *auth_users;
        char *charset;
        char *comment;
@@ -2396,7 +2396,7 @@ diff --git a/loadparm.c b/loadparm.c
        char *dont_compress;
        char *early_exec;
        char *exclude;
-@@ -150,6 +151,7 @@ typedef struct {
+@@ -152,6 +153,7 @@ typedef struct {
        BOOL auth_users_EXP;
        BOOL charset_EXP;
        BOOL comment_EXP;
@@ -2404,7 +2404,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL dont_compress_EXP;
        BOOL early_exec_EXP;
        BOOL exclude_EXP;
-@@ -180,6 +182,7 @@ typedef struct {
+@@ -182,6 +184,7 @@ typedef struct {
        int syslog_facility;
        int timeout;
  
@@ -2412,7 +2412,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL fake_super;
        BOOL forward_lookup;
        BOOL ignore_errors;
-@@ -237,6 +240,7 @@ static const all_vars Defaults = {
+@@ -241,6 +244,7 @@ static const all_vars Defaults = {
   /* auth_users; */            NULL,
   /* charset; */               NULL,
   /* comment; */               NULL,
@@ -2420,7 +2420,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* dont_compress; */         DEFAULT_DONT_COMPRESS,
   /* early_exec; */            NULL,
   /* exclude; */               NULL,
-@@ -265,6 +269,7 @@ static const all_vars Defaults = {
+@@ -269,6 +273,7 @@ static const all_vars Defaults = {
   /* auth_users_EXP; */                False,
   /* charset_EXP; */           False,
   /* comment_EXP; */           False,
@@ -2428,7 +2428,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* dont_compress_EXP; */     False,
   /* early_exec_EXP; */                False,
   /* exclude_EXP; */           False,
-@@ -295,6 +300,7 @@ static const all_vars Defaults = {
+@@ -299,6 +304,7 @@ static const all_vars Defaults = {
   /* syslog_facility; */               LOG_DAEMON,
   /* timeout; */                       0,
  
@@ -2436,7 +2436,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* fake_super; */            False,
   /* forward_lookup; */                True,
   /* ignore_errors; */         False,
-@@ -407,6 +413,8 @@ static struct parm_struct parm_table[] =
+@@ -412,6 +418,8 @@ static struct parm_struct parm_table[] =
   {"auth users",        P_STRING, P_LOCAL, &Vars.l.auth_users,          NULL,0},
   {"charset",           P_STRING, P_LOCAL, &Vars.l.charset,             NULL,0},
   {"comment",           P_STRING, P_LOCAL, &Vars.l.comment,             NULL,0},
@@ -2445,7 +2445,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"dont compress",     P_STRING, P_LOCAL, &Vars.l.dont_compress,       NULL,0},
   {"early exec",        P_STRING, P_LOCAL, &Vars.l.early_exec,          NULL,0},
   {"exclude from",      P_STRING, P_LOCAL, &Vars.l.exclude_from,        NULL,0},
-@@ -547,6 +555,7 @@ FN_GLOBAL_INTEGER(lp_rsync_port, rsync_port)
+@@ -554,6 +562,7 @@ FN_GLOBAL_BOOL(lp_haproxy_header, haproxy_header)
  FN_LOCAL_STRING(lp_auth_users, auth_users)
  FN_LOCAL_STRING(lp_charset, charset)
  FN_LOCAL_STRING(lp_comment, comment)
@@ -2453,7 +2453,7 @@ diff --git a/loadparm.c b/loadparm.c
  FN_LOCAL_STRING(lp_dont_compress, dont_compress)
  FN_LOCAL_STRING(lp_early_exec, early_exec)
  FN_LOCAL_STRING(lp_exclude, exclude)
-@@ -577,6 +586,7 @@ FN_LOCAL_INTEGER(lp_max_verbosity, max_verbosity)
+@@ -584,6 +593,7 @@ FN_LOCAL_INTEGER(lp_max_verbosity, max_verbosity)
  FN_LOCAL_INTEGER(lp_syslog_facility, syslog_facility)
  FN_LOCAL_INTEGER(lp_timeout, timeout)
  
@@ -2562,17 +2562,7 @@ diff --git a/options.c b/options.c
                NULL
        };
  
-@@ -735,6 +751,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");
-+  rprintf(F,"     --db=CONFIG_FILE        specify a CONFIG_FILE for DB checksums\n");
-+  rprintf(F,"     --db-only=CONFIG_FILE   behave like rsyncdb\n");
-+  rprintf(F,"     --db-lax                ignore ctime changes (use with CAUTION)\n");
-   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");
-@@ -887,6 +906,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -740,6 +756,7 @@ enum {OPT_SERVER = 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,
@@ -2580,7 +2570,7 @@ diff --git a/options.c b/options.c
        OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
        OPT_REFUSED_BASE = 9000};
-@@ -1037,6 +1057,10 @@ static struct poptOption long_options[] = {
+@@ -890,6 +907,10 @@ static struct poptOption long_options[] = {
    {"no-c",             0,  POPT_ARG_VAL,    &always_checksum, 0, 0, 0 },
    {"checksum-choice",  0,  POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
    {"cc",               0,  POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
@@ -2591,7 +2581,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 },
-@@ -1130,6 +1154,9 @@ static struct poptOption long_options[] = {
+@@ -983,6 +1004,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 },
@@ -2601,7 +2591,7 @@ diff --git a/options.c b/options.c
    {0,0,0,0, 0, 0, 0}
  };
  
-@@ -1183,6 +1210,50 @@ static struct poptOption long_daemon_options[] = {
+@@ -1023,6 +1047,50 @@ static struct poptOption long_daemon_options[] = {
    {0,0,0,0, 0, 0, 0}
  };
  
@@ -2652,7 +2642,7 @@ diff --git a/options.c b/options.c
  
  static char err_buf[200];
  
-@@ -1306,6 +1377,8 @@ static void set_refuse_options(void)
+@@ -1146,6 +1214,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);
@@ -2661,7 +2651,7 @@ diff --git a/options.c b/options.c
        }
  
        /* Now we use the descrip values to actually mark the options for refusal. */
-@@ -1430,6 +1503,102 @@ static void create_refuse_error(int which)
+@@ -1270,6 +1340,102 @@ static void create_refuse_error(int which)
        }
  }
  
@@ -2764,7 +2754,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
-@@ -1468,6 +1637,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1308,6 +1474,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                return 0;
        }
  
@@ -2777,7 +2767,7 @@ diff --git a/options.c b/options.c
        set_refuse_options();
  
  #ifdef ICONV_OPTION
-@@ -1589,6 +1764,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1429,6 +1601,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        am_daemon = 1;
                        return 1;
  
@@ -2790,7 +2780,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
-@@ -1663,6 +1844,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1503,6 +1681,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        preserve_devices = preserve_specials = 0;
                        break;
  
@@ -2879,7 +2869,7 @@ diff --git a/receiver.c b/receiver.c
        progress_init();
  
        while (1) {
-@@ -891,6 +901,8 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -880,6 +890,8 @@ int recv_files(int f_in, int f_out, char *local_name)
                                        do_unlink(partialptr);
                                handle_partial_dir(partialptr, PDIR_DELETE);
                        }
@@ -2888,7 +2878,7 @@ diff --git a/receiver.c b/receiver.c
                } else if (keep_partial && partialptr && !one_inplace) {
                        if (!handle_partial_dir(partialptr, PDIR_CREATE)) {
                                rprintf(FERROR,
-@@ -904,6 +916,8 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -893,6 +905,8 @@ int recv_files(int f_in, int f_out, char *local_name)
                                recv_ok = -1;
                        else if (delay_updates && recv_ok) {
                                bitbag_set_bit(delayed_bits, ndx);
@@ -2897,6 +2887,19 @@ diff --git a/receiver.c b/receiver.c
                                recv_ok = 2;
                        } else
                                partialptr = NULL;
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -381,6 +381,9 @@ detailed description below for a complete description.
+ --dry-run, -n            perform a trial run with no changes made
+ --whole-file, -W         copy files whole (w/o delta-xfer algorithm)
+ --checksum-choice=STR    choose the checksum algorithms
++--db=CONFIG_FILE         specify a CONFIG_FILE for DB checksums
++--db-only=CONFIG_FILE    behave like rsyncdb
++--db-lax                 ignore ctime changes (use with CAUTION)
+ --one-file-system, -x    don't cross filesystem boundaries
+ --block-size=SIZE, -B    force a fixed checksum block-size
+ --rsh=COMMAND, -e        specify the remote shell to use
 diff --git a/rsync.c b/rsync.c
 --- a/rsync.c
 +++ b/rsync.c
index c175eb0db3dd8dc1004df1db071e82abe948778d..3ff4a023b832dc3929d024cfab3073d745faa946 100644 (file)
@@ -60,16 +60,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -828,6 +828,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");
-+  rprintf(F,"     --detect-renamed-lax    ... and assume identical to source files (risky!)\n");
-+  rprintf(F,"     --detect-moved          ... only if basenames match (less risky)\n");
-   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");
-@@ -1043,7 +1045,9 @@ static struct poptOption long_options[] = {
+@@ -895,7 +895,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 +71,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 },
-@@ -2855,8 +2859,14 @@ void server_options(char **args, int *argc_p)
+@@ -2694,8 +2696,14 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -100,16 +91,16 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -416,6 +416,8 @@ detailed description below for a complete description.
- --temp-dir=DIR, -T          create temporary files in directory DIR
- --fuzzy, -y                 find similar file for basis if no dest file
- --detect-renamed            try to find renamed files to speed the xfer
-+--detect-renamed-lax        ...& assume identical to src files (risky!)
-+--detect-moved              ... only if basenames match (less risky)
- --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
-@@ -2167,6 +2169,17 @@ your home directory (remove the '=' for that).
+@@ -418,6 +418,8 @@ detailed description below for a complete description.
+ --temp-dir=DIR, -T       create temporary files in directory DIR
+ --fuzzy, -y              find similar file for basis if no dest file
+ --detect-renamed         try to find renamed files to speed the xfer
++--detect-renamed-lax     ...& assume identical to src files (risky!)
++--detect-moved           ... only if basenames match (less risky)
+ --compare-dest=DIR       also compare destination files relative to DIR
+ --copy-dest=DIR          ... and include copies of unchanged files
+ --link-dest=DIR          hardlink to files in DIR when unchanged
+@@ -2169,6 +2171,17 @@ your home directory (remove the '=' for that).
      otential alternate-basis files will be removed as the transfer progresses.
      This option conflicts with `--inplace` and `--append`.
  
index 21a92eb672663b52d05d5bab5773023814e5d50f..b4cdac4872b0a11b1ad8568a302a56b4e295b5ae 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/backup.c b/backup.c
 --- a/backup.c
 +++ b/backup.c
@@ -62,7 +62,7 @@ diff --git a/compat.c b/compat.c
  extern int protect_args;
  extern int preserve_uid;
  extern int preserve_gid;
-@@ -158,6 +159,7 @@ void set_allow_inc_recurse(void)
+@@ -156,6 +157,7 @@ void set_allow_inc_recurse(void)
                allow_inc_recurse = 0;
        else if (!am_sender
         && (delete_before || delete_after
@@ -195,7 +195,7 @@ diff --git a/flist.c b/flist.c
  static void send_directory(int f, struct file_list *flist,
                           char *fbuf, int len, int flags);
  
-@@ -2621,6 +2663,25 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2635,6 +2677,25 @@ struct file_list *recv_file_list(int f, int dir_ndx)
         * for a non-relative transfer in recv_file_entry(). */
        flist_sort_and_clean(flist, relative_paths);
  
@@ -598,15 +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;
-@@ -826,6 +827,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");
-+  rprintf(F,"     --detect-renamed        try to find renamed files to speed up the transfer\n");
-   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");
-@@ -1041,6 +1043,7 @@ static struct poptOption long_options[] = {
+@@ -894,6 +895,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 +606,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 },
-@@ -2440,7 +2443,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2280,7 +2282,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                inplace = 1;
        }
  
@@ -623,7 +615,7 @@ diff --git a/options.c b/options.c
                partial_dir = tmp_partialdir;
  
        if (inplace) {
-@@ -2449,6 +2452,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2289,6 +2291,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 +623,7 @@ diff --git a/options.c b/options.c
                                 delay_updates ? "delay-updates" : "partial-dir");
                        return 0;
                }
-@@ -2851,6 +2855,8 @@ void server_options(char **args, int *argc_p)
+@@ -2691,6 +2694,8 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -655,15 +647,15 @@ diff --git a/receiver.c b/receiver.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -415,6 +415,7 @@ detailed description below for a complete description.
- --modify-window=NUM, -@     set the accuracy for mod-time comparisons
- --temp-dir=DIR, -T          create temporary files in directory DIR
- --fuzzy, -y                 find similar file for basis if no dest file
-+--detect-renamed            try to find renamed files to speed the xfer
- --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
-@@ -2150,6 +2151,22 @@ your home directory (remove the '=' for that).
+@@ -417,6 +417,7 @@ detailed description below for a complete description.
+ --modify-window=NUM, -@  set the accuracy for mod-time comparisons
+ --temp-dir=DIR, -T       create temporary files in directory DIR
+ --fuzzy, -y              find similar file for basis if no dest file
++--detect-renamed         try to find renamed files to speed the xfer
+ --compare-dest=DIR       also compare destination files relative to DIR
+ --copy-dest=DIR          ... and include copies of unchanged files
+ --link-dest=DIR          hardlink to files in DIR when unchanged
+@@ -2152,6 +2153,22 @@ your home directory (remove the '=' for that).
      fuzzy-match files, so either use `--delete-after` or specify some filename
      exclusions if you need to prevent this.
  
index 2673d78f2e05baaaf73dc9bc1f47598e880deae3..22142e40b859f577e8d62f2b673d752da02fbd5d 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -22,15 +22,7 @@ diff --git a/options.c b/options.c
  extern int module_id;
  extern int local_server;
  extern int sanitize_paths;
-@@ -813,6 +814,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");
-+  rprintf(F,"     --direct-io             don't use buffer cache for xfer file I/O\n");
-   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");
-@@ -1061,6 +1063,8 @@ static struct poptOption long_options[] = {
+@@ -914,6 +915,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 },
@@ -42,15 +34,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -403,6 +403,7 @@ detailed description below for a complete description.
- --partial                   keep partially transferred files
- --partial-dir=DIR           put a partially transferred file into DIR
- --delay-updates             put all updated files into place at end
-+--direct-io                 don't use buffer cache for xfer file I/O
- --prune-empty-dirs, -m      prune empty directory chains from file-list
- --numeric-ids               don't map uid/gid values by user/group name
- --usermap=STRING            custom username mapping
-@@ -2797,6 +2798,16 @@ your home directory (remove the '=' for that).
+@@ -405,6 +405,7 @@ detailed description below for a complete description.
+ --partial                keep partially transferred files
+ --partial-dir=DIR        put a partially transferred file into DIR
+ --delay-updates          put all updated files into place at end
++--direct-io              don't use buffer cache for xfer file I/O
+ --prune-empty-dirs, -m   prune empty directory chains from file-list
+ --numeric-ids            don't map uid/gid values by user/group name
+ --usermap=STRING         custom username mapping
+@@ -2799,6 +2800,16 @@ your home directory (remove the '=' for that).
      update algorithm that is even more atomic (it uses `--link-dest` and a
      parallel hierarchy of files).
  
index 9e11f9f7a49e64d2bcc5038de2800d5998a01d7f..a9ad042de23e8585383a1c401ad4633465e4ab52 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -59,15 +59,7 @@ diff --git a/options.c b/options.c
  int update_only = 0;
  int open_noatime = 0;
  int cvs_exclude = 0;
-@@ -744,6 +745,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");
-+  rprintf(F," -w, --downdate              skip files that are older 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");
-   rprintf(F,"     --append-verify         like --append, but with old data in file checksum\n");
-@@ -992,6 +994,7 @@ static struct poptOption long_options[] = {
+@@ -845,6 +846,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 },
@@ -75,3 +67,14 @@ diff --git a/options.c b/options.c
    {"existing",         0,  POPT_ARG_NONE,   &ignore_non_existing, 0, 0, 0 },
    {"ignore-non-existing",0,POPT_ARG_NONE,   &ignore_non_existing, 0, 0, 0 },
    {"ignore-existing",  0,  POPT_ARG_NONE,   &ignore_existing, 0, 0, 0 },
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -346,6 +346,7 @@ detailed description below for a complete description.
+ --backup-dir=DIR         make backups into hierarchy based in DIR
+ --suffix=SUFFIX          backup suffix (default ~ w/o --backup-dir)
+ --update, -u             skip files that are newer on the receiver
++--downdate, -w           skip files that are older on the receiver
+ --inplace                update destination files in-place
+ --append                 append data onto shorter files
+ --append-verify          --append w/old data in file checksum
index 695aec392bf714674954776ccd213558ebd6f0cf..70affb6bb11369e033b4b0444a8f45c597710b0f 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -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 */
-@@ -471,6 +473,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -469,6 +471,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)
-@@ -626,6 +630,10 @@ void setup_protocol(int f_out,int f_in)
+@@ -624,6 +628,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;
@@ -392,31 +392,7 @@ diff --git a/options.c b/options.c
                NULL
        };
  
-@@ -757,6 +764,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");
-+#ifdef SUPPORT_FILEFLAGS
-+  rprintf(F,"     --fileflags             preserve file-flags (aka chflags)\n");
-+#endif
-   rprintf(F," -E, --executability         preserve the file's executability\n");
-   rprintf(F,"     --chmod=CHMOD           affect file and/or directory permissions\n");
- #ifdef SUPPORT_ACLS
-@@ -806,7 +816,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");
--  rprintf(F,"     --force                 force deletion of directories even if not empty\n");
-+  rprintf(F,"     --force-delete          force deletion of directories even if not empty\n");
-+#ifdef SUPPORT_FORCE_CHANGE
-+  rprintf(F,"     --force-change          affect user-/system-immutable files/dirs\n");
-+  rprintf(F,"     --force-uchange         affect user-immutable files/dirs\n");
-+  rprintf(F,"     --force-schange         affect system-immutable files/dirs\n");
-+#endif
-   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");
-@@ -926,6 +941,10 @@ static struct poptOption long_options[] = {
+@@ -779,6 +786,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 },
@@ -427,7 +403,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 },
-@@ -1019,6 +1038,14 @@ static struct poptOption long_options[] = {
+@@ -872,6 +883,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 },
@@ -442,7 +418,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 },
-@@ -2742,6 +2769,9 @@ void server_options(char **args, int *argc_p)
+@@ -2582,6 +2601,9 @@ void server_options(char **args, int *argc_p)
        if (xfer_dirs && !recurse && delete_mode && am_sender)
                args[ac++] = "--no-r";
  
@@ -452,7 +428,7 @@ diff --git a/options.c b/options.c
        if (do_compression && do_compression_level != CLVL_NOT_SPECIFIED) {
                if (asprintf(&arg, "--compress-level=%d", do_compression_level) < 0)
                        goto oom;
-@@ -2845,6 +2875,16 @@ void server_options(char **args, int *argc_p)
+@@ -2685,6 +2707,16 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--delete-excluded";
                if (force_delete)
                        args[ac++] = "--force";
@@ -472,27 +448,27 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -357,6 +357,7 @@ detailed description below for a complete description.
- --keep-dirlinks, -K         treat symlinked dir on receiver as dir
- --hard-links, -H            preserve hard links
- --perms, -p                 preserve permissions
-+--fileflags                 preserve file-flags (aka chflags)
- --executability, -E         preserve executability
- --chmod=CHMOD               affect file and/or directory permissions
- --acls, -A                  preserve ACLs (implies -p)
-@@ -396,7 +397,10 @@ detailed description below for a complete description.
- --ignore-missing-args       ignore missing source args without error
- --delete-missing-args       delete missing source args from destination
- --ignore-errors             delete even if there are I/O errors
----force                     force deletion of dirs even if not empty
-+--force-delete              force deletion of dirs even if not empty
-+--force-change              affect user/system immutable files/dirs
-+--force-uchange             affect user-immutable files/dirs
-+--force-schange             affect system-immutable files/dirs
- --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
-@@ -692,6 +696,8 @@ your home directory (remove the '=' for that).
+@@ -359,6 +359,7 @@ detailed description below for a complete description.
+ --keep-dirlinks, -K      treat symlinked dir on receiver as dir
+ --hard-links, -H         preserve hard links
+ --perms, -p              preserve permissions
++--fileflags              preserve file-flags (aka chflags)
+ --executability, -E      preserve executability
+ --chmod=CHMOD            affect file and/or directory permissions
+ --acls, -A               preserve ACLs (implies --perms)
+@@ -398,7 +399,10 @@ detailed description below for a complete description.
+ --ignore-missing-args    ignore missing source args without error
+ --delete-missing-args    delete missing source args from destination
+ --ignore-errors          delete even if there are I/O errors
+---force                  force deletion of dirs even if not empty
++--force-delete           force deletion of directories even if not empty
++--force-change           affect user-/system-immutable files/dirs
++--force-uchange          affect user-immutable files/dirs
++--force-schange          affect system-immutable files/dirs
+ --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
+@@ -694,6 +698,8 @@ your home directory (remove the '=' for that).
  
      Note that `-a` **does not preserve hardlinks**, because finding
      multiply-linked files is expensive.  You must separately specify `-H`.
@@ -501,7 +477,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
  0.  `--no-OPTION`
  
-@@ -1030,7 +1036,7 @@ your home directory (remove the '=' for that).
+@@ -1032,7 +1038,7 @@ your home directory (remove the '=' for that).
      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
@@ -510,7 +486,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
      See also `--keep-dirlinks` for an analogous option for the receiving side.
  
-@@ -1216,6 +1222,29 @@ your home directory (remove the '=' for that).
+@@ -1218,6 +1224,29 @@ your home directory (remove the '=' for that).
      those used by `--fake-super`) unless you repeat the option (e.g. `-XX`).
      This "copy all xattrs" mode cannot be used with `--fake-super`.
  
@@ -540,7 +516,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  0.  `--chmod`
  
      This option tells rsync to apply one or more comma-separated "chmod" modes
-@@ -1670,7 +1699,7 @@ your home directory (remove the '=' for that).
+@@ -1672,7 +1701,7 @@ your home directory (remove the '=' for that).
      option a step farther: each missing arg will become a deletion request of
      the corresponding destination file on the receiving side (should it exist).
      If the destination file is a non-empty directory, it will only be
@@ -549,7 +525,7 @@ diff --git a/rsync.1.md b/rsync.1.md
      that, this option is independent of any other type of delete processing.
  
      The missing source files are represented by special file-list entries which
-@@ -1681,15 +1710,16 @@ your home directory (remove the '=' for that).
+@@ -1683,15 +1712,16 @@ your home directory (remove the '=' for that).
      Tells `--delete` to go ahead and delete files even when there are I/O
      errors.
  
@@ -570,7 +546,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
  0.  `--max-delete=NUM`
  
-@@ -2491,7 +2521,7 @@ your home directory (remove the '=' for that).
+@@ -2493,7 +2523,7 @@ your home directory (remove the '=' for that).
      output of other verbose messages).
  
      The "%i" escape has a cryptic output that is 11 letters long.  The general
index 229fc03b15d3268958add3a19f2d1a2c94e077e5..2f627a4d922f768e124e0df0a7945304da7adb0e 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -291,7 +291,7 @@ diff --git a/flist.c b/flist.c
  
        if (S_ISDIR(st.st_mode)) {
                if (!xfer_dirs) {
-@@ -1431,12 +1438,23 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
+@@ -1445,12 +1452,23 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
                                          int flags, int filter_level)
  {
        struct file_struct *file;
@@ -316,7 +316,7 @@ diff --git a/flist.c b/flist.c
                file->mode = tweak_mode(file->mode, chmod_modes);
  
        if (f >= 0) {
-@@ -2341,7 +2359,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2355,7 +2373,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        struct file_struct *file;
                        file = send_file_name(f, flist, fbuf, &st,
                                              FLAG_TOP_DIR | FLAG_CONTENT_DIR | flags,
@@ -325,7 +325,7 @@ diff --git a/flist.c b/flist.c
                        if (!file)
                                continue;
                        if (inc_recurse) {
-@@ -2355,7 +2373,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2369,7 +2387,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        } else
                                send_if_directory(f, flist, file, fbuf, len, flags);
                } else
@@ -337,7 +337,7 @@ diff --git a/flist.c b/flist.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -1239,7 +1239,9 @@ your home directory (remove the '=' for that).
+@@ -1241,7 +1241,9 @@ your home directory (remove the '=' for that).
      >     --chmod=D2775,F664
  
      It is also legal to specify multiple `--chmod` options, as each additional
@@ -348,7 +348,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
      See the `--perms` and `--executability` options for how the resulting
      permission value can be applied to the files in the transfer.
-@@ -2428,6 +2430,10 @@ your home directory (remove the '=' for that).
+@@ -2430,6 +2432,10 @@ your home directory (remove the '=' for that).
      If you specify "--chown=foo:bar, this is exactly the same as specifying
      "`--usermap=*:foo --groupmap=*:bar`", only easier.
  
@@ -359,7 +359,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  0.  `--timeout=TIMEOUT`
  
      This option allows you to set a maximum I/O timeout in seconds.  If no data
-@@ -3351,6 +3357,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
+@@ -3353,6 +3359,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
    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.
@@ -375,7 +375,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  - An `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 used
-@@ -3408,6 +3423,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
+@@ -3410,6 +3425,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
    rules in the file must not specify sides (via a modifier or a rule prefix
    such as `hide`).
  
index 068a7b3565969c9d617f53a1d65ab9c5f0d9d7ed..291c4e61c849fe4d3d43a4fa79719c625b0398dc 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -19,15 +19,7 @@ diff --git a/options.c b/options.c
  int ignore_times = 0;
  int delete_mode = 0;
  int delete_during = 0;
-@@ -814,6 +815,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");
-+  rprintf(F,"     --fsync                 fsync every written file\n");
-   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");
-@@ -1096,6 +1098,7 @@ static struct poptOption long_options[] = {
+@@ -949,6 +950,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 +27,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 },
-@@ -2931,6 +2934,9 @@ void server_options(char **args, int *argc_p)
+@@ -2771,6 +2773,9 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = tmpdir;
                }
  
@@ -69,6 +61,17 @@ diff --git a/receiver.c b/receiver.c
        if (mapbuf)
                unmap_file(mapbuf);
  
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -406,6 +406,7 @@ detailed description below for a complete description.
+ --partial-dir=DIR        put a partially transferred file into DIR
+ --delay-updates          put all updated files into place at end
+ --prune-empty-dirs, -m   prune empty directory chains from file-list
++--fsync                  fsync every written file
+ --numeric-ids            don't map uid/gid values by user/group name
+ --usermap=STRING         custom username mapping
+ --groupmap=STRING        custom groupname mapping
 diff --git a/t_stub.c b/t_stub.c
 --- a/t_stub.c
 +++ b/t_stub.c
index 5b6a0acb6c6f766886922580c6ac1502ab0d1088..133d94872d49ad143065fee93911d7663e2d9c06 100644 (file)
@@ -22,7 +22,7 @@ based-on: patch/master/crtimes
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
-@@ -1611,6 +1611,9 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
+@@ -1625,6 +1625,9 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
  #ifdef SUPPORT_XATTRS
                if (preserve_xattrs) {
                        sx.st.st_mode = file->mode;
@@ -256,18 +256,7 @@ diff --git a/options.c b/options.c
  int preserve_perms = 0;
  int preserve_fileflags = 0;
  int preserve_executability = 0;
-@@ -780,6 +781,10 @@ void usage(enum logcode F)
- #endif
- #ifdef SUPPORT_XATTRS
-   rprintf(F," -X, --xattrs                preserve extended attributes\n");
-+#endif
-+#ifdef SUPPORT_HFS_COMPRESSION
-+  rprintf(F,"     --hfs-compression       preserve HFS compression if supported\n");
-+  rprintf(F,"     --protect-decmpfs       preserve HFS compression as xattrs\n");
- #endif
-   rprintf(F," -o, --owner                 preserve owner (super-user only)\n");
-   rprintf(F," -g, --group                 preserve group\n");
-@@ -1059,6 +1064,12 @@ static struct poptOption long_options[] = {
+@@ -901,6 +902,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 +269,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 },
-@@ -2169,6 +2180,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1998,6 +2005,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        }
  #endif
  
@@ -296,7 +285,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
-@@ -2790,6 +2810,11 @@ void server_options(char **args, int *argc_p)
+@@ -2619,6 +2635,11 @@ void server_options(char **args, int *argc_p)
        if (preserve_fileflags)
                args[ac++] = "--fileflags";
  
@@ -311,16 +300,16 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -362,6 +362,8 @@ detailed description below for a complete description.
- --chmod=CHMOD               affect file and/or directory permissions
- --acls, -A                  preserve ACLs (implies -p)
- --xattrs, -X                preserve extended attributes
-+--hfs-compression           preserve HFS compression if supported
-+--protect-decmpfs           preserve HFS compression as xattrs
- --owner, -o                 preserve owner (super-user only)
- --group, -g                 preserve group
- --devices                   preserve device files (super-user only)
-@@ -1246,6 +1248,47 @@ your home directory (remove the '=' for that).
+@@ -364,6 +364,8 @@ detailed description below for a complete description.
+ --chmod=CHMOD            affect file and/or directory permissions
+ --acls, -A               preserve ACLs (implies --perms)
+ --xattrs, -X             preserve extended attributes
++--hfs-compression        preserve HFS compression if supported
++--protect-decmpfs        preserve HFS compression as xattrs
+ --owner, -o              preserve owner (super-user only)
+ --group, -g              preserve group
+ --devices                preserve device files (super-user only)
+@@ -1248,6 +1250,47 @@ your home directory (remove the '=' for that).
      receiving side.  It does not try to affect user flags.  This option
      overrides `--force-change` and `--force-uchange`.
  
index 6955d26a2e45422dc3062c7ab14d96a7584b9aef..509fb2af194782c01bc6750d4f28225fbf65038d 100644 (file)
@@ -12,7 +12,7 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -56,7 +56,7 @@ diff --git a/flist.c b/flist.c
  extern int ignore_errors;
  extern int numeric_ids;
  extern int quiet;
-@@ -3110,6 +3111,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3124,6 +3125,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
  {
        int dif;
        const uchar *c1, *c2;
@@ -64,7 +64,7 @@ diff --git a/flist.c b/flist.c
        enum fnc_state state1, state2;
        enum fnc_type type1, type2;
        enum fnc_type t_path = protocol_version >= 29 ? t_PATH : t_ITEM;
-@@ -3220,7 +3222,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3234,7 +3236,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
                        if (type1 != type2)
                                return type1 == t_PATH ? 1 : -1;
                }
@@ -220,15 +220,7 @@ diff --git a/options.c b/options.c
  int blocking_io = -1;
  int checksum_seed = 0;
  int inplace = 0;
-@@ -844,6 +845,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");
-+  rprintf(F,"     --ignore-case           ignore case when comparing filenames\n");
-   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");
-@@ -1081,6 +1083,8 @@ static struct poptOption long_options[] = {
+@@ -934,6 +935,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 +229,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},
-@@ -2881,6 +2885,9 @@ void server_options(char **args, int *argc_p)
+@@ -2721,6 +2724,9 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -250,15 +242,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -433,6 +433,7 @@ detailed description below for a complete description.
- --from0, -0                 all *from/filter files are delimited by 0s
- --protect-args, -s          no space-splitting; wildcard chars only
- --copy-as=USER[:GROUP]      specify user & optional group for the copy
-+--ignore-case               ignore case when comparing filenames
- --address=ADDRESS           bind address for outgoing socket to daemon
- --port=PORT                 specify double-colon alternate port number
- --sockopts=OPTIONS          specify custom TCP options
-@@ -2098,6 +2099,12 @@ your home directory (remove the '=' for that).
+@@ -435,6 +435,7 @@ detailed description below for a complete description.
+ --from0, -0              all *-from/filter files are delimited by 0s
+ --protect-args, -s       no space-splitting; wildcard chars only
+ --copy-as=USER[:GROUP]   specify user & optional group for the copy
++--ignore-case            ignore case when comparing filenames
+ --address=ADDRESS        bind address for outgoing socket to daemon
+ --port=PORT              specify double-colon alternate port number
+ --sockopts=OPTIONS       specify custom TCP options
+@@ -2100,6 +2101,12 @@ your home directory (remove the '=' for that).
  
      >     sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
  
index 459eaccc9c84aa0804a894a275eff4eab2ae7614..1b4c5858b9f689cfff87d0f801257f0c050f0d62 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -460,7 +460,7 @@ new file mode 100644
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -192,6 +192,7 @@ typedef struct {
+@@ -194,6 +194,7 @@ typedef struct {
        BOOL strict_modes;
        BOOL transfer_logging;
        BOOL use_chroot;
@@ -468,7 +468,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL write_only;
  } local_vars;
  
-@@ -307,6 +308,7 @@ static const all_vars Defaults = {
+@@ -311,6 +312,7 @@ static const all_vars Defaults = {
   /* strict_modes; */          True,
   /* transfer_logging; */      False,
   /* use_chroot; */            True,
@@ -476,7 +476,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* write_only; */            False,
   }
  };
-@@ -449,6 +451,7 @@ static struct parm_struct parm_table[] =
+@@ -454,6 +456,7 @@ static struct parm_struct parm_table[] =
   {"transfer logging",  P_BOOL,   P_LOCAL, &Vars.l.transfer_logging,    NULL,0},
   {"uid",               P_STRING, P_LOCAL, &Vars.l.uid,                 NULL,0},
   {"use chroot",        P_BOOL,   P_LOCAL, &Vars.l.use_chroot,          NULL,0},
@@ -484,7 +484,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"write only",        P_BOOL,   P_LOCAL, &Vars.l.write_only,          NULL,0},
   {NULL,                P_BOOL,   P_NONE,  NULL,                        NULL,0}
  };
-@@ -589,6 +592,7 @@ FN_LOCAL_BOOL(lp_reverse_lookup, reverse_lookup)
+@@ -596,6 +599,7 @@ FN_LOCAL_BOOL(lp_reverse_lookup, reverse_lookup)
  FN_LOCAL_BOOL(lp_strict_modes, strict_modes)
  FN_LOCAL_BOOL(lp_transfer_logging, transfer_logging)
  FN_LOCAL_BOOL(lp_use_chroot, use_chroot)
index d08dda2b558d212ec5a2afc909b50193076c3bc8..faa9f87e93c12fa886e90cd6666e7b6714d6fdce 100644 (file)
@@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -194,7 +194,7 @@ new file mode 100644
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -132,6 +132,7 @@ typedef struct {
+@@ -134,6 +134,7 @@ typedef struct {
        char *include;
        char *include_from;
        char *incoming_chmod;
@@ -202,7 +202,7 @@ diff --git a/loadparm.c b/loadparm.c
        char *lock_file;
        char *log_file;
        char *log_format;
-@@ -161,6 +162,7 @@ typedef struct {
+@@ -163,6 +164,7 @@ typedef struct {
        BOOL include_EXP;
        BOOL include_from_EXP;
        BOOL incoming_chmod_EXP;
@@ -210,7 +210,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL lock_file_EXP;
        BOOL log_file_EXP;
        BOOL log_format_EXP;
-@@ -248,6 +250,7 @@ static const all_vars Defaults = {
+@@ -252,6 +254,7 @@ static const all_vars Defaults = {
   /* include; */                       NULL,
   /* include_from; */          NULL,
   /* incoming_chmod; */                NULL,
@@ -218,7 +218,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* lock_file; */             DEFAULT_LOCK_FILE,
   /* log_file; */              NULL,
   /* log_format; */            "%o %h [%a] %m (%u) %f %l",
-@@ -276,6 +279,7 @@ static const all_vars Defaults = {
+@@ -280,6 +283,7 @@ static const all_vars Defaults = {
   /* include_EXP; */           False,
   /* include_from_EXP; */      False,
   /* incoming_chmod_EXP; */    False,
@@ -226,7 +226,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* lock_file_EXP; */         False,
   /* log_file_EXP; */          False,
   /* log_format_EXP; */                False,
-@@ -422,6 +426,7 @@ static struct parm_struct parm_table[] =
+@@ -427,6 +431,7 @@ static struct parm_struct parm_table[] =
   {"include from",      P_STRING, P_LOCAL, &Vars.l.include_from,        NULL,0},
   {"include",           P_STRING, P_LOCAL, &Vars.l.include,             NULL,0},
   {"incoming chmod",    P_STRING, P_LOCAL, &Vars.l.incoming_chmod,      NULL,0},
@@ -234,7 +234,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"list",              P_BOOL,   P_LOCAL, &Vars.l.list,                NULL,0},
   {"lock file",         P_STRING, P_LOCAL, &Vars.l.lock_file,           NULL,0},
   {"log file",          P_STRING, P_LOCAL, &Vars.l.log_file,            NULL,0},
-@@ -558,6 +563,7 @@ FN_LOCAL_STRING(lp_hosts_deny, hosts_deny)
+@@ -565,6 +570,7 @@ FN_LOCAL_STRING(lp_hosts_deny, hosts_deny)
  FN_LOCAL_STRING(lp_include, include)
  FN_LOCAL_STRING(lp_include_from, include_from)
  FN_LOCAL_STRING(lp_incoming_chmod, incoming_chmod)
@@ -270,15 +270,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)"),
-@@ -829,6 +831,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");
-+  rprintf(F,"     --link-by-hash=DIR      create hardlinks by hash into DIR\n");
-   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");
-@@ -886,7 +889,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -739,7 +741,7 @@ enum {OPT_SERVER = 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,
@@ -287,7 +279,7 @@ diff --git a/options.c b/options.c
        OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
        OPT_REFUSED_BASE = 9000};
-@@ -1041,6 +1044,7 @@ static struct poptOption long_options[] = {
+@@ -894,6 +896,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 },
@@ -295,7 +287,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 },
-@@ -1475,6 +1479,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1315,6 +1318,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                iconv_opt = strdup(arg);
  #endif
  
@@ -305,7 +297,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
-@@ -1971,6 +1978,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1811,6 +1817,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        return 0;
  #endif
  
@@ -327,7 +319,7 @@ diff --git a/options.c b/options.c
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -2281,6 +2303,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2121,6 +2142,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);
@@ -336,7 +328,7 @@ diff --git a/options.c b/options.c
        }
        if (daemon_filter_list.head && !am_sender) {
                filter_rule_list *elp = &daemon_filter_list;
-@@ -2956,6 +2980,12 @@ void server_options(char **args, int *argc_p)
+@@ -2796,6 +2819,12 @@ void server_options(char **args, int *argc_p)
        } else if (inplace)
                args[ac++] = "--inplace";
  
@@ -352,15 +344,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -418,6 +418,7 @@ detailed description below for a complete description.
- --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
-+--link-by-hash=DIR          create hardlinks by hash into DIR
- --compress, -z              compress file data during the transfer
- --compress-level=NUM        explicitly set compression level
- --skip-compress=LIST        skip compressing files with suffix in LIST
-@@ -2234,6 +2235,50 @@ your home directory (remove the '=' for that).
+@@ -420,6 +420,7 @@ detailed description below for a complete description.
+ --compare-dest=DIR       also compare destination files relative to DIR
+ --copy-dest=DIR          ... and include copies of unchanged files
+ --link-dest=DIR          hardlink to files in DIR when unchanged
++--link-by-hash=DIR       create hardlinks by hash into DIR
+ --compress, -z           compress file data during the transfer
+ --compress-level=NUM     explicitly set compression level
+ --skip-compress=LIST     skip compressing files with suffix in LIST
+@@ -2236,6 +2237,50 @@ your home directory (remove the '=' for that).
      specified (or implied by `-a`).  You can work-around this bug by avoiding
      the `-o` option when sending to an old rsync.
  
@@ -449,7 +441,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -315,6 +315,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -339,6 +339,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      is 0, which means no limit.  A negative value disables the module.  See
      also the "lock file" parameter.
  
index e7e62ea2064d7e330785b820343f450ad0326635..0807e4f32b538dd6b0d8ab63ebac8c3de4822ee0 100644 (file)
@@ -18,7 +18,7 @@ xxHash is still preferred (and faster), but this provides a reasonably
 fast fallback for the case where xxHash libraries are not available at
 build time.
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -38,7 +38,7 @@ diff --git a/Makefile.in b/Makefile.in
        lib/permstring.o lib/pool_alloc.o lib/sysacls.o lib/sysxattrs.o @LIBOBJS@
  zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
        zlib/trees.o zlib/zutil.o zlib/adler32.o zlib/compress.o zlib/crc32.o
-@@ -126,6 +126,9 @@ rounding.h: rounding.c rsync.h proto.h
+@@ -144,6 +144,9 @@ rounding.h: rounding.c rsync.h proto.h
  simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
  
index aa579ce87c94bfcee22cb24f4a35f6fb06018a4a..741d070076f96858a9f82b4bf22bbcc47fd61d65 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/authenticate.c b/authenticate.c
 --- a/authenticate.c
 +++ b/authenticate.c
@@ -182,7 +182,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
-@@ -136,6 +136,7 @@ typedef struct {
+@@ -138,6 +138,7 @@ typedef struct {
        char *log_file;
        char *log_format;
        char *name;
@@ -190,7 +190,7 @@ diff --git a/loadparm.c b/loadparm.c
        char *outgoing_chmod;
        char *path;
        char *postxfer_exec;
-@@ -165,6 +166,7 @@ typedef struct {
+@@ -167,6 +168,7 @@ typedef struct {
        BOOL log_file_EXP;
        BOOL log_format_EXP;
        BOOL name_EXP;
@@ -198,7 +198,7 @@ diff --git a/loadparm.c b/loadparm.c
        BOOL outgoing_chmod_EXP;
        BOOL path_EXP;
        BOOL postxfer_exec_EXP;
-@@ -252,6 +254,7 @@ static const all_vars Defaults = {
+@@ -256,6 +258,7 @@ static const all_vars Defaults = {
   /* log_file; */              NULL,
   /* log_format; */            "%o %h [%a] %m (%u) %f %l",
   /* name; */                  NULL,
@@ -206,7 +206,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* outgoing_chmod; */                NULL,
   /* path; */                  NULL,
   /* postxfer_exec; */         NULL,
-@@ -280,6 +283,7 @@ static const all_vars Defaults = {
+@@ -284,6 +287,7 @@ static const all_vars Defaults = {
   /* log_file_EXP; */          False,
   /* log_format_EXP; */                False,
   /* name_EXP; */              False,
@@ -214,7 +214,7 @@ diff --git a/loadparm.c b/loadparm.c
   /* outgoing_chmod_EXP; */    False,
   /* path_EXP; */              False,
   /* postxfer_exec_EXP; */     False,
-@@ -430,6 +434,7 @@ static struct parm_struct parm_table[] =
+@@ -435,6 +439,7 @@ static struct parm_struct parm_table[] =
   {"max verbosity",     P_INTEGER,P_LOCAL, &Vars.l.max_verbosity,       NULL,0},
   {"munge symlinks",    P_BOOL,   P_LOCAL, &Vars.l.munge_symlinks,      NULL,0},
   {"name",              P_STRING, P_LOCAL, &Vars.l.name,                NULL,0},
@@ -222,7 +222,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"numeric ids",       P_BOOL,   P_LOCAL, &Vars.l.numeric_ids,         NULL,0},
   {"outgoing chmod",    P_STRING, P_LOCAL, &Vars.l.outgoing_chmod,      NULL,0},
   {"path",              P_PATH,   P_LOCAL, &Vars.l.path,                NULL,0},
-@@ -566,6 +571,7 @@ FN_LOCAL_STRING(lp_outgoing_chmod, outgoing_chmod)
+@@ -573,6 +578,7 @@ FN_LOCAL_STRING(lp_outgoing_chmod, outgoing_chmod)
  FN_LOCAL_STRING(lp_path, path)
  FN_LOCAL_STRING(lp_postxfer_exec, postxfer_exec)
  FN_LOCAL_STRING(lp_prexfer_exec, prexfer_exec)
@@ -233,7 +233,7 @@ diff --git a/loadparm.c b/loadparm.c
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -292,6 +292,29 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -316,6 +316,29 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      There are tricky ways to work around this, though, so you had better trust
      your users if you choose this combination of parameters.
  
index bbd652ae2d868d376bfd2340c10cb5c42819af4e..1cfb26a78906a5586d34f6a12f831f265fac2577 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/access.c b/access.c
 --- a/access.c
 +++ b/access.c
index 39f27e54838f5314d8c37ff6539c3c2adfebf575..5d4faedf183273bba8b0941e91ed78dc8ff1c1c6 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -62,15 +62,7 @@ diff --git a/options.c b/options.c
  int one_file_system = 0;
  int protocol_version = PROTOCOL_VERSION;
  int sparse_files = 0;
-@@ -775,6 +776,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");
-+  rprintf(F,"     --omit-dir-changes      omit directories from any attribute changes\n");
-   rprintf(F,"     --super                 receiver attempts super-user activities\n");
- #ifdef SUPPORT_XATTRS
-   rprintf(F,"     --fake-super            store/recover privileged attrs using xattrs\n");
-@@ -947,6 +949,7 @@ static struct poptOption long_options[] = {
+@@ -800,6 +801,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 +70,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 },
-@@ -2349,6 +2352,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2189,6 +2191,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 +80,7 @@ diff --git a/options.c b/options.c
        if (preserve_times) {
                preserve_times = PRESERVE_FILE_TIMES;
                if (!omit_dir_times)
-@@ -2601,6 +2607,8 @@ void server_options(char **args, int *argc_p)
+@@ -2441,6 +2446,8 @@ void server_options(char **args, int *argc_p)
                        argstr[x++] = 'O';
                if (omit_link_times)
                        argstr[x++] = 'J';
@@ -100,15 +92,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -371,6 +371,7 @@ detailed description below for a complete description.
- --open-noatime              avoid changing the atime on opened files
- --omit-dir-times, -O        omit directories from --times
- --omit-link-times, -J       omit symlinks from --times
-+--omit-dir-changes          omit directories from any attribute changes
- --super                     receiver attempts super-user activities
- --fake-super                store/recover privileged attrs using xattrs
- --sparse, -S                turn sequences of nulls into sparse blocks
-@@ -1354,6 +1355,11 @@ your home directory (remove the '=' for that).
+@@ -373,6 +373,7 @@ detailed description below for a complete description.
+ --open-noatime           avoid changing the atime on opened files
+ --omit-dir-times, -O     omit directories from --times
+ --omit-link-times, -J    omit symlinks from --times
++--omit-dir-changes       omit directories from any attribute changes
+ --super                  receiver attempts super-user activities
+ --fake-super             store/recover privileged attrs using xattrs
+ --sparse, -S             turn sequences of nulls into sparse blocks
+@@ -1356,6 +1357,11 @@ your home directory (remove the '=' for that).
      This tells rsync to omit symlinks when it is preserving modification times
      (see `--times`).
  
index 036460a88823212cbc4c019760351b55883547e5..295edf90453172bcd6469739029a605bcb1dbf9f 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -26,7 +26,7 @@ diff --git a/flist.c b/flist.c
  extern uid_t our_uid;
  extern struct stats stats;
  extern char *filesfrom_host;
-@@ -1775,6 +1776,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -1789,6 +1790,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
                }
  
                send_file_name(f, flist, fbuf, NULL, flags, filter_level);
@@ -47,15 +47,7 @@ diff --git a/options.c b/options.c
  size_t bwlimit_writemax = 0;
  int ignore_existing = 0;
  int ignore_non_existing = 0;
-@@ -860,6 +861,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");
-+  rprintf(F,"     --slow-down=USECs       sleep N usec while creating the filelist\n");
- #ifdef HAVE_SETVBUF
-   rprintf(F,"     --outbuf=N|L|B          set output buffering to None, Line, or Block\n");
- #endif
-@@ -1071,6 +1073,7 @@ static struct poptOption long_options[] = {
+@@ -924,6 +925,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 },
@@ -63,3 +55,14 @@ diff --git a/options.c b/options.c
    {"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 },
+diff --git a/rsync.1.md b/rsync.1.md
+--- a/rsync.1.md
++++ b/rsync.1.md
+@@ -453,6 +453,7 @@ detailed description below for a complete description.
+ --password-file=FILE     read daemon-access password from FILE
+ --list-only              list the files instead of copying them
+ --bwlimit=RATE           limit socket I/O bandwidth
++--slow-down=USECs        sleep N usec while creating the filelist
+ --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
index 98bb57afc65803ada9b3d8ee4f0d41634d79143b..cabb49dcc21aaea3297e45a43925f369168f4972 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -32,7 +32,7 @@ diff --git a/Makefile.in b/Makefile.in
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
        popt/popthelp.o popt/poptparse.o
  OBJS=$(OBJS1) $(OBJS2) $(OBJS3) @SIMD@ $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
-@@ -97,7 +99,7 @@ install-strip:
+@@ -95,7 +97,7 @@ install-strip:
        $(MAKE) INSTALL_STRIP='-s' install
  
  rsync$(EXEEXT): $(OBJS)
@@ -44,7 +44,7 @@ diff --git a/Makefile.in b/Makefile.in
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
-@@ -1350,6 +1350,13 @@ int daemon_main(void)
+@@ -1353,6 +1353,13 @@ int daemon_main(void)
         * address too.  In fact, why not just do getnameinfo on the
         * local address??? */
  
@@ -101,10 +101,10 @@ diff --git a/loadparm.c b/loadparm.c
 +#ifdef HAVE_LIBSLP
 +      int slp_refresh;
 +#endif
- } global_vars;
  
- /* This structure describes a single section.  Their order must match the
-@@ -402,6 +405,9 @@ static struct parm_struct parm_table[] =
+       BOOL haproxy_header;
+ } global_vars;
+@@ -406,6 +409,9 @@ static struct parm_struct parm_table[] =
   {"motd file",         P_STRING, P_GLOBAL,&Vars.g.motd_file,           NULL,0},
   {"pid file",          P_STRING, P_GLOBAL,&Vars.g.pid_file,            NULL,0},
   {"port",              P_INTEGER,P_GLOBAL,&Vars.g.rsync_port,          NULL,0},
@@ -112,9 +112,9 @@ diff --git a/loadparm.c b/loadparm.c
 + {"slp refresh",       P_INTEGER,P_GLOBAL,&Vars.g.slp_refresh,         NULL,0},
 +#endif
   {"socket options",    P_STRING, P_GLOBAL,&Vars.g.socket_options,      NULL,0},
+  {"haproxy header",    P_BOOL,   P_LOCAL, &Vars.g.haproxy_header,      NULL,0},
  
-  {"auth users",        P_STRING, P_LOCAL, &Vars.l.auth_users,          NULL,0},
-@@ -543,6 +549,9 @@ FN_GLOBAL_STRING(lp_socket_options, socket_options)
+@@ -548,6 +554,9 @@ FN_GLOBAL_STRING(lp_socket_options, socket_options)
  
  FN_GLOBAL_INTEGER(lp_listen_backlog, listen_backlog)
  FN_GLOBAL_INTEGER(lp_rsync_port, rsync_port)
@@ -122,8 +122,8 @@ diff --git a/loadparm.c b/loadparm.c
 +FN_GLOBAL_INTEGER(lp_slp_refresh, slp_refresh)
 +#endif
  
- FN_LOCAL_STRING(lp_auth_users, auth_users)
- FN_LOCAL_STRING(lp_charset, charset)
+ FN_GLOBAL_BOOL(lp_haproxy_header, haproxy_header)
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
index 86ec0da9138e8e7517363e64f7e3676e50025118..51a8431ae5b57437363129071989ce9e69f10c70 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index fffb829443fc7c2e3e8e4cf9b509ff25b22d8288..c00074fa7306e970fa8ddc0e2f1ad70596241006 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -21,15 +21,7 @@ diff --git a/options.c b/options.c
  
  /**
   * If 1, send the whole file as literal data rather than trying to
-@@ -796,6 +797,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");
-+  rprintf(F,"     --source-backup         ... and backs up those files\n");
-   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");
-@@ -1074,6 +1076,7 @@ static struct poptOption long_options[] = {
+@@ -927,6 +928,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 +29,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 },
-@@ -2859,6 +2862,8 @@ void server_options(char **args, int *argc_p)
+@@ -2699,6 +2701,8 @@ void server_options(char **args, int *argc_p)
                                goto oom;
                        args[ac++] = arg;
                }
@@ -49,15 +41,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -386,6 +386,7 @@ detailed description below for a complete description.
- --existing                  skip creating new files on receiver
- --ignore-existing           skip updating files that exist on receiver
- --remove-source-files       sender removes synchronized files (non-dir)
-+--source-backup             ... and backs up those files
- --del                       an alias for --delete-during
- --delete                    delete extraneous files from dest dirs
- --delete-before             receiver deletes before xfer, not during
-@@ -1561,6 +1562,16 @@ your home directory (remove the '=' for that).
+@@ -388,6 +388,7 @@ detailed description below for a complete description.
+ --existing               skip creating new files on receiver
+ --ignore-existing        skip updating files that exist on receiver
+ --remove-source-files    sender removes synchronized files (non-dir)
++--source-backup          ... and backs up those files
+ --del                    an alias for --delete-during
+ --delete                 delete extraneous files from dest dirs
+ --delete-before          receiver deletes before xfer, not during
+@@ -1563,6 +1564,16 @@ your home directory (remove the '=' for that).
      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 b3e1d7df7788b08e789d06e1b9ec5c9baf60a76a..db30e9a9f9a42fd7fdcabd129119abf0c66ffb52 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -83,24 +83,7 @@ diff --git a/options.c b/options.c
  char *rsync_path = RSYNC_PATH;
  char *backup_dir = NULL;
  char backup_dir_buf[MAXPATHLEN];
-@@ -823,6 +826,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");
-+  rprintf(F,"     --times-only            skip files that match in mod-time\n");
-   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");
-@@ -866,6 +870,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");
-+  rprintf(F,"     --source-filter=COMMAND filter file through COMMAND at source\n");
-+  rprintf(F,"     --dest-filter=COMMAND   filter file through COMMAND at destination\n");
-   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");
-@@ -988,6 +994,7 @@ static struct poptOption long_options[] = {
+@@ -841,6 +844,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 +91,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 },
-@@ -1116,6 +1123,8 @@ static struct poptOption long_options[] = {
+@@ -969,6 +973,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 +100,7 @@ diff --git a/options.c b/options.c
  #ifdef HAVE_SETVBUF
    {"outbuf",           0,  POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
  #endif
-@@ -2484,6 +2493,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2324,6 +2330,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                }
        }
  
@@ -134,7 +117,7 @@ diff --git a/options.c b/options.c
        if (files_from) {
                char *h, *p;
                int q;
-@@ -2868,6 +2887,25 @@ void server_options(char **args, int *argc_p)
+@@ -2708,6 +2724,25 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
@@ -300,7 +283,7 @@ diff --git a/receiver.c b/receiver.c
        progress_init();
  
        while (1) {
-@@ -865,6 +885,9 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -854,6 +874,9 @@ int recv_files(int f_in, int f_out, char *local_name)
                else if (!am_server && INFO_GTE(NAME, 1) && INFO_EQ(PROGRESS, 1))
                        rprintf(FINFO, "%s\n", fname);
  
@@ -310,7 +293,7 @@ diff --git a/receiver.c b/receiver.c
                /* recv file data */
                recv_ok = receive_data(f_in, fnamecmp, fd1, st.st_size, fname, fd2, file, inplace || one_inplace);
  
-@@ -880,6 +903,16 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -869,6 +892,16 @@ int recv_files(int f_in, int f_out, char *local_name)
                        exit_cleanup(RERR_FILEIO);
                }
  
@@ -330,24 +313,24 @@ diff --git a/receiver.c b/receiver.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -412,6 +412,7 @@ detailed description below for a complete description.
- --contimeout=SECONDS        set daemon connection timeout in seconds
- --ignore-times, -I          don't skip files that match size and time
- --size-only                 skip files that match in size
-+--times-only                skip files that match in mod-time
- --modify-window=NUM, -@     set the accuracy for mod-time comparisons
- --temp-dir=DIR, -T          create temporary files in directory DIR
- --fuzzy, -y                 find similar file for basis if no dest file
-@@ -454,6 +455,8 @@ detailed description below for a complete description.
- --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
-+--source-filter=COMMAND     filter file through COMMAND at source
-+--dest-filter=COMMAND       filter file through COMMAND at destination
- --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)
-@@ -3008,6 +3011,36 @@ your home directory (remove the '=' for that).
+@@ -414,6 +414,7 @@ detailed description below for a complete description.
+ --contimeout=SECONDS     set daemon connection timeout in seconds
+ --ignore-times, -I       don't skip files that match size and time
+ --size-only              skip files that match in size
++--times-only             skip files that match in mod-time
+ --modify-window=NUM, -@  set the accuracy for mod-time comparisons
+ --temp-dir=DIR, -T       create temporary files in directory DIR
+ --fuzzy, -y              find similar file for basis if no dest file
+@@ -456,6 +457,8 @@ detailed description below for a complete description.
+ --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
++--source-filter=COMMAND  filter file through COMMAND at source
++--dest-filter=COMMAND    filter file through COMMAND at destination
+ --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)
+@@ -3010,6 +3013,36 @@ your home directory (remove the '=' for that).
      `--write-batch`.  If _FILE_ is `-`, the batch data will be read from
      standard input. See the "BATCH MODE" section for details.
  
index 53e40ec33b92390357ecdd1ab3c41da968549961..4ecec67bf4ab8745d6a621f93d3c4cb6f9b25b42 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
@@ -50,15 +50,7 @@ diff --git a/options.c b/options.c
  int preallocate_files = 0;
  int do_compression = 0;
  int do_compression_level = CLVL_NOT_SPECIFIED;
-@@ -780,6 +781,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");
-+  rprintf(F,"     --sparse-block=SIZE     set the block size used to handle sparse files\n");
- #ifdef SUPPORT_PREALLOCATION
-   rprintf(F,"     --preallocate           allocate dest files before writing them\n");
- #else
-@@ -1000,6 +1002,7 @@ static struct poptOption long_options[] = {
+@@ -853,6 +854,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 +58,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 },
-@@ -2775,6 +2778,12 @@ void server_options(char **args, int *argc_p)
+@@ -2615,6 +2617,12 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -82,15 +74,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -374,6 +374,7 @@ detailed description below for a complete description.
- --super                     receiver attempts super-user activities
- --fake-super                store/recover privileged attrs using xattrs
- --sparse, -S                turn sequences of nulls into sparse blocks
-+--sparse-block=SIZE         set block size used to handle sparse files
- --preallocate               allocate dest files before writing
- --write-devices             write to devices as files (implies --inplace)
- --dry-run, -n               perform a trial run with no changes made
-@@ -1426,6 +1427,18 @@ your home directory (remove the '=' for that).
+@@ -376,6 +376,7 @@ detailed description below for a complete description.
+ --super                  receiver attempts super-user activities
+ --fake-super             store/recover privileged attrs using xattrs
+ --sparse, -S             turn sequences of nulls into sparse blocks
++--sparse-block=SIZE      set block size used to handle sparse files
+ --preallocate            allocate dest files before writing them
+ --write-devices          write to devices as files (implies --inplace)
+ --dry-run, -n            perform a trial run with no changes made
+@@ -1428,6 +1429,18 @@ your home directory (remove the '=' for that).
      opposed to allocated sequences of null bytes) if the kernel version and
      filesystem type support creating holes in the allocated data.
  
index fdf917f6021415d59c384deb18e5111375bf6202..ce427afd1b1a694b255afc8daf47965ad1e24587 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 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.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -3052,14 +3052,20 @@ your home directory (remove the '=' for that).
+@@ -3054,14 +3054,20 @@ your home directory (remove the '=' for that).
  
  0. `--ipv4`, `-4` or `--ipv6`, `-6`
  
index 821b361f5a7e7b7a4291449f0e90fabb8b8703a2..aeaa73e6767dcdca21346dab7537f4613ee47547 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/io.c b/io.c
 --- a/io.c
 +++ b/io.c
@@ -53,16 +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;
-@@ -860,6 +861,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");
-+  rprintf(F,"     --stop-at=y-m-dTh:m     Stop rsync at year-month-dayThour:minute\n");
-+  rprintf(F,"     --time-limit=MINS       Stop rsync after MINS minutes have elapsed\n");
- #ifdef HAVE_SETVBUF
-   rprintf(F,"     --outbuf=N|L|B          set output buffering to None, Line, or Block\n");
- #endif
-@@ -889,6 +892,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -742,6 +743,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
        OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
        OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
@@ -70,7 +61,7 @@ diff --git a/options.c b/options.c
        OPT_REFUSED_BASE = 9000};
  
  static struct poptOption long_options[] = {
-@@ -1096,6 +1100,8 @@ static struct poptOption long_options[] = {
+@@ -949,6 +951,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 +70,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 },
-@@ -1971,6 +1977,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1811,6 +1815,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        return 0;
  #endif
  
@@ -116,7 +107,7 @@ diff --git a/options.c b/options.c
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -2787,6 +2823,15 @@ void server_options(char **args, int *argc_p)
+@@ -2627,6 +2661,15 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -135,16 +126,16 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -451,6 +451,8 @@ detailed description below for a complete description.
- --password-file=FILE        read daemon-access password from FILE
- --list-only                 list the files instead of copying them
- --bwlimit=RATE              limit socket I/O bandwidth
-+--stop-at=y-m-dTh:m         Stop rsync at year-month-dayThour:minute
-+--time-limit=MINS           Stop rsync after MINS minutes have elapsed
- --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
-@@ -2977,6 +2979,22 @@ your home directory (remove the '=' for that).
+@@ -453,6 +453,8 @@ detailed description below for a complete description.
+ --password-file=FILE     read daemon-access password from FILE
+ --list-only              list the files instead of copying them
+ --bwlimit=RATE           limit socket I/O bandwidth
++--stop-at=y-m-dTh:m      Stop rsync at year-month-dayThour:minute
++--time-limit=MINS        Stop rsync after MINS minutes have elapsed
+ --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
+@@ -2979,6 +2981,22 @@ your home directory (remove the '=' for that).
      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 a25f47c31098e2550a359dd7dc1210c9347c9cbc..286ceafbb2f15d2104ae6bf7ca7f4ab252863f7a 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -69,7 +69,7 @@ diff --git a/flist.c b/flist.c
        if (*thisname
         && (clean_fname(thisname, CFN_REFUSE_DOT_DOT_DIRS) < 0 || (!relative_paths && *thisname == '/'))) {
                rprintf(FERROR, "ABORTING due to unsafe pathname from sender: %s\n", thisname);
-@@ -2475,6 +2499,15 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2489,6 +2513,15 @@ struct file_list *recv_file_list(int f, int dir_ndx)
                        parse_name_map(usermap, True);
                if (groupmap)
                        parse_name_map(groupmap, False);
@@ -96,15 +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;
-@@ -870,6 +871,7 @@ void usage(enum logcode F)
- #ifdef ICONV_OPTION
-   rprintf(F,"     --iconv=CONVERT_SPEC    request charset conversion of filenames\n");
- #endif
-+  rprintf(F,"     --tr=BAD/GOOD           transliterate filenames\n");
-   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");
-@@ -1103,6 +1105,7 @@ static struct poptOption long_options[] = {
+@@ -956,6 +957,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 +104,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 },
-@@ -2530,6 +2533,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2370,6 +2372,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                }
        }
  
@@ -137,7 +129,7 @@ diff --git a/options.c b/options.c
        am_starting_up = 0;
  
        return 1;
-@@ -2973,6 +2994,12 @@ void server_options(char **args, int *argc_p)
+@@ -2813,6 +2833,12 @@ void server_options(char **args, int *argc_p)
        if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
                args[ac++] = "--no-implied-dirs";
  
@@ -153,15 +145,15 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -456,6 +456,7 @@ detailed description below for a complete description.
- --read-batch=FILE           read a batched update from FILE
- --protocol=NUM              force an older protocol version to be used
- --iconv=CONVERT_SPEC        request charset conversion of filenames
-+--tr=BAD/GOOD               transliterate filenames
- --checksum-seed=NUM         set block/file checksum seed (advanced)
- --ipv4, -4                  prefer IPv4
- --ipv6, -6                  prefer IPv6
-@@ -3050,6 +3051,25 @@ your home directory (remove the '=' for that).
+@@ -458,6 +458,7 @@ detailed description below for a complete description.
+ --read-batch=FILE        read a batched update from FILE
+ --protocol=NUM           force an older protocol version to be used
+ --iconv=CONVERT_SPEC     request charset conversion of filenames
++--tr=BAD/GOOD            transliterate filenames
+ --checksum-seed=NUM      set block/file checksum seed (advanced)
+ --ipv4, -4               prefer IPv4
+ --ipv6, -6               prefer IPv6
+@@ -3052,6 +3053,25 @@ your home directory (remove the '=' for that).
      free to specify just the local charset for a daemon transfer (e.g.
      `--iconv=utf8`).
  
index 1d6e4bd3bbd27787d05171d2704a5fe1425668a0..95f64de9dbfc9a1ad0ab23710e7623b237f9122f 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: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 0cac8bd809d7be61d1796ac4921d6dcbe03d0de9..500c27fb89f97d8ace88222f1d4ec95c6cdfc6e8 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
-@@ -532,13 +532,6 @@ void setup_protocol(int f_out,int f_in)
+@@ -530,13 +530,6 @@ void setup_protocol(int f_out,int f_in)
        if (protocol_version < 30) {
                if (append_mode == 1)
                        append_mode = 2;
index 1f1d5dc6e136b42b00f61abf5eaddca10df9556c..d9d8391c22438d9fd9073f8749247c09a8762360 100644 (file)
--- a/xxh3.diff
+++ b/xxh3.diff
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: a3377921ebe651cb7d2b969853cb9fe0e135ff75
+based-on: 34141954c7179438f3b3c5e11f55089e5aee5a8e
 diff --git a/checksum.c b/checksum.c
 --- a/checksum.c
 +++ b/checksum.c