The patches for 3.3.0pre1. v3.3.0pre1
authorWayne Davison <wayne@opencoder.net>
Sat, 29 Apr 2023 16:10:03 +0000 (09:10 -0700)
committerWayne Davison <wayne@opencoder.net>
Sat, 29 Apr 2023 16:10:03 +0000 (09:10 -0700)
25 files changed:
backup-deleted.diff
backup-dir-dels.diff
catch_crash_signals.diff
checksum-reading.diff
checksum-updating.diff
clone-dest.diff
congestion.diff
date-only.diff
detect-renamed-lax.diff
detect-renamed.diff
direct-io.diff
downdate.diff
fileflags.diff
filter-attribute-mods.diff
ignore-case.diff
kerberos.diff
link-by-hash.diff
omit-dir-changes.diff
slow-down.diff
slp.diff
soften-links.diff
source-backup.diff
source-filter_dest-filter.diff
sparse-block.diff
transliterate.diff

index 407a811ce5bd0be7a35207d0f3f79a503645abc9..6a08ebd4e69a1af6db8994565553ca48a5b8ab29 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -41,7 +41,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -775,7 +775,8 @@ static struct poptOption long_options[] = {
+@@ -776,7 +776,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 },
@@ -51,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 },
-@@ -2783,6 +2784,10 @@ void server_options(char **args, int *argc_p)
+@@ -2803,6 +2804,10 @@ void server_options(char **args, int *argc_p)
                args[ac++] = safe_arg("--compress-choice", compress_choice);
  
        if (am_sender) {
index 807bb9eb2a5ffea2ce056154d2c2cebbc7251f3d..a6274a766ae17b1c0121eca2b0f12e88966f8e9a 100644 (file)
@@ -229,7 +229,7 @@ diff --git a/options.c b/options.c
  char *sockopts = NULL;
  char *usermap = NULL;
  char *groupmap = NULL;
-@@ -779,7 +785,9 @@ static struct poptOption long_options[] = {
+@@ -780,7 +786,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 },
@@ -239,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 },
-@@ -2234,6 +2242,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2251,6 +2259,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);
@@ -248,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;
-@@ -2255,6 +2265,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2272,6 +2282,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        if (check_filter(elp, FLOG, dir, 1) < 0)
                                goto options_rejected;
                }
@@ -263,9 +263,9 @@ diff --git a/options.c b/options.c
        }
  
        if (!backup_suffix)
-@@ -2266,6 +2284,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2283,6 +2301,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        backup_suffix);
-               return 0;
+               goto cleanup;
        }
 +      /* --suffix-dels defaults to --suffix, or empty for a client given an
 +       * explicit --backup-dir-dels (just as --suffix defaults to empty when
@@ -284,7 +284,7 @@ diff --git a/options.c b/options.c
        if (backup_dir) {
                size_t len;
                make_backups = 1; /* --backup-dir implies --backup */
-@@ -2302,6 +2334,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2319,6 +2351,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);
        }
@@ -319,7 +319,7 @@ diff --git a/options.c b/options.c
  
        if (make_backups && !backup_dir)
                omit_dir_times = -1; /* Implied, so avoid -O to sender. */
-@@ -2768,11 +2828,20 @@ void server_options(char **args, int *argc_p)
+@@ -2788,11 +2848,20 @@ void server_options(char **args, int *argc_p)
                args[ac++] = "--backup-dir";
                args[ac++] = safe_arg("", backup_dir);
        }
index a9e19d9d1500907dff2864ac3510f1432e46412b..226d58c2863d511e60dc92c85dcbb0e71d4b39a4 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/errcode.h b/errcode.h
 --- a/errcode.h
 +++ b/errcode.h
@@ -52,7 +52,7 @@ diff --git a/log.c b/log.c
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -216,8 +216,11 @@ static void wait_process_with_flush(pid_t pid, int *exit_code_ptr)
+@@ -218,8 +218,11 @@ static void wait_process_with_flush(pid_t pid, int *exit_code_ptr)
                        *exit_code_ptr = RERR_TERMINATED;
                else
                        *exit_code_ptr = RERR_WAITCHILD;
@@ -65,7 +65,7 @@ diff --git a/main.c b/main.c
  }
  
  void write_del_stats(int f)
-@@ -1646,6 +1649,14 @@ void remember_children(UNUSED(int val))
+@@ -1637,6 +1640,14 @@ void remember_children(UNUSED(int val))
                                break;
                        }
                }
@@ -80,7 +80,7 @@ diff --git a/main.c b/main.c
        }
  #endif
  #ifndef HAVE_SIGACTION
-@@ -1699,6 +1710,13 @@ static void rsync_panic_handler(UNUSED(int whatsig))
+@@ -1690,6 +1701,13 @@ static void rsync_panic_handler(UNUSED(int whatsig))
  }
  #endif
  
@@ -94,7 +94,7 @@ diff --git a/main.c b/main.c
  static void unset_env_var(const char *var)
  {
  #ifdef HAVE_UNSETENV
-@@ -1715,7 +1733,6 @@ static void unset_env_var(const char *var)
+@@ -1706,7 +1724,6 @@ static void unset_env_var(const char *var)
  #endif
  }
  
@@ -102,7 +102,7 @@ diff --git a/main.c b/main.c
  int main(int argc,char *argv[])
  {
        int ret;
-@@ -1739,6 +1756,11 @@ int main(int argc,char *argv[])
+@@ -1730,6 +1747,11 @@ int main(int argc,char *argv[])
        SIGACTMASK(SIGFPE, rsync_panic_handler);
        SIGACTMASK(SIGABRT, rsync_panic_handler);
        SIGACTMASK(SIGBUS, rsync_panic_handler);
index 5127bf3ba60f5c1c93784a148987909f06ade04e..c2479a61297a18883f6aec041e8a83f862044fc0 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -656,7 +656,7 @@ diff --git a/options.c b/options.c
  int max_delete = INT_MIN;
  OFF_T max_size = -1;
  OFF_T min_size = -1;
-@@ -581,7 +582,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -582,7 +583,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, OPT_BLOCK_SIZE,
@@ -665,7 +665,7 @@ diff --git a/options.c b/options.c
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS, OPT_OLD_ARGS,
        OPT_STOP_AFTER, OPT_STOP_AT,
        OPT_REFUSED_BASE = 9000};
-@@ -738,6 +739,7 @@ static struct poptOption long_options[] = {
+@@ -739,6 +740,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 },
@@ -673,7 +673,7 @@ diff --git a/options.c b/options.c
    {"block-size",      'B', POPT_ARG_STRING, 0, OPT_BLOCK_SIZE, 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 },
-@@ -1746,6 +1748,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1751,6 +1753,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        }
                        break;
  
@@ -697,7 +697,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);
-@@ -2099,6 +2118,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2116,6 +2135,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        }
  #endif
  
@@ -797,7 +797,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
-@@ -449,6 +449,19 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -453,6 +453,19 @@ in the values of parameters.  See that section for details.
      the max connections limit is not exceeded for the modules sharing the lock
      file.  The default is `/var/run/rsyncd.lock`.
  
index f89acd29975dd58a02a2715a9a49a4406e872c7d..5d2fef404c3d47763ec3ef74961eea44a8a95761 100644 (file)
@@ -547,7 +547,7 @@ diff --git a/loadparm.c b/loadparm.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -1750,7 +1750,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1755,7 +1755,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
  
                case OPT_SUMFILES:
                        arg = poptGetOptArg(pc);
@@ -630,7 +630,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
-@@ -454,13 +454,15 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -458,13 +458,15 @@ in the values of parameters.  See that section for 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 5fbaee62658e9c6bfd3f17f49470e316a407020b..1bca3d442fa719dc40de070f6666963bf5c03188 100644 (file)
@@ -13,7 +13,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -79,7 +79,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -581,7 +581,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -582,7 +582,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, OPT_BLOCK_SIZE,
@@ -88,7 +88,7 @@ diff --git a/options.c b/options.c
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS, OPT_OLD_ARGS,
        OPT_STOP_AFTER, OPT_STOP_AT,
        OPT_REFUSED_BASE = 9000};
-@@ -742,6 +742,7 @@ static struct poptOption long_options[] = {
+@@ -743,6 +743,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 },
@@ -96,7 +96,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 },
-@@ -1003,6 +1004,9 @@ static void set_refuse_options(void)
+@@ -1004,6 +1005,9 @@ static void set_refuse_options(void)
  #ifndef SUPPORT_HARD_LINKS
        parse_one_refuse_match(0, "link-dest", list_end);
  #endif
@@ -106,7 +106,7 @@ diff --git a/options.c b/options.c
  #ifndef HAVE_MKTIME
        parse_one_refuse_match(0, "stop-at", list_end);
  #endif
-@@ -1332,6 +1336,8 @@ char *alt_dest_opt(int type)
+@@ -1333,6 +1337,8 @@ char *alt_dest_opt(int type)
                return "--copy-dest";
        case LINK_DEST:
                return "--link-dest";
@@ -115,7 +115,7 @@ diff --git a/options.c b/options.c
        default:
                NOISY_DEATH("Unknown alt_dest_opt type");
        }
-@@ -1709,6 +1715,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1714,6 +1720,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        want_dest_type = LINK_DEST;
                        goto set_dest_dir;
  
@@ -137,7 +137,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --compress, -z           compress file data during the transfer
  --compress-choice=STR    choose the compression algorithm (aka --zc)
  --compress-level=NUM     explicitly set compression level (aka --zl)
-@@ -2717,6 +2718,18 @@ expand it.
+@@ -2719,6 +2720,18 @@ expand it.
      this bug by avoiding the `-o` option (or using `--no-o`) when sending to an
      old rsync.
  
index 42cbe4df93d64703edd6f3c8381ec9ecaf8bbc00..095847defd42f29a839ce8bed8ead2452fe98151 100644 (file)
@@ -27,7 +27,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/daemon-parm.txt b/daemon-parm.txt
 --- a/daemon-parm.txt
 +++ b/daemon-parm.txt
@@ -59,7 +59,7 @@ diff --git a/options.c b/options.c
  int remove_source_files = 0;
  int one_file_system = 0;
  int protocol_version = PROTOCOL_VERSION;
-@@ -831,6 +833,8 @@ static struct poptOption long_options[] = {
+@@ -832,6 +834,8 @@ static struct poptOption long_options[] = {
    {"outbuf",           0,  POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
    {"remote-option",   'M', POPT_ARG_STRING, 0, 'M', 0, 0 },
    {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
index 3f1ab76d2061c4df6d6fbe803d7d060f8c3afd94..9a249d27300902a9c63aef0416018e5bc542d768 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -47,7 +47,7 @@ diff --git a/options.c b/options.c
  int daemon_bwlimit = 0;
  int bwlimit = 0;
  int fuzzy_basis = 0;
-@@ -688,6 +689,7 @@ static struct poptOption long_options[] = {
+@@ -689,6 +690,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 },
@@ -55,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 },
-@@ -2830,6 +2832,9 @@ void server_options(char **args, int *argc_p)
+@@ -2850,6 +2852,9 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
index f034f59c9a3712d5f795042812e33b5d91f78b12..c02c2624270108ae9ef3ae36929313d0811fa47c 100644 (file)
@@ -60,7 +60,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -743,7 +743,9 @@ static struct poptOption long_options[] = {
+@@ -744,7 +744,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 },
@@ -71,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 },
-@@ -2816,8 +2818,14 @@ void server_options(char **args, int *argc_p)
+@@ -2836,8 +2838,14 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -100,7 +100,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -2649,6 +2651,20 @@ expand it.
+@@ -2651,6 +2653,20 @@ expand it.
      otential alternate-basis files will be removed as the transfer progresses.
      This option conflicts with [`--inplace`](#opt) and [`--append`](#opt).
  
index 0289076383c9b081e7e2002da705bd078b0ea448..1329ab93ede74d1dfc027f96726bb8b966515c8f 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/backup.c b/backup.c
 --- a/backup.c
 +++ b/backup.c
@@ -589,7 +589,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -724,7 +724,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -726,7 +726,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
  
        if (mkpath_dest_arg && statret < 0 && (cp || file_total > 1)) {
                int save_errno = errno;
@@ -609,7 +609,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;
-@@ -742,6 +743,7 @@ static struct poptOption long_options[] = {
+@@ -743,6 +744,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 },
@@ -617,7 +617,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 },
-@@ -2381,7 +2383,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2398,7 +2400,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                inplace = 1;
        }
  
@@ -626,15 +626,15 @@ diff --git a/options.c b/options.c
                partial_dir = tmp_partialdir;
  
        if (inplace) {
-@@ -2390,6 +2392,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2407,6 +2409,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",
 +                               detect_renamed ? "detect-renamed" :
                                 delay_updates ? "delay-updates" : "partial-dir");
-                       return 0;
+                       goto cleanup;
                }
-@@ -2813,6 +2816,8 @@ void server_options(char **args, int *argc_p)
+@@ -2833,6 +2836,8 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -666,7 +666,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -2632,6 +2633,22 @@ expand it.
+@@ -2634,6 +2635,22 @@ expand it.
      potential fuzzy-match files, so either use [`--delete-after`](#opt) or
      specify some filename exclusions if you need to prevent this.
  
index 505aff22e7b8bdc64396614d107ebaf40c71ce29..9b1be3edc34d55eebc3a2cda47a6fda305428cdc 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -22,7 +22,7 @@ diff --git a/options.c b/options.c
  extern int module_id;
  extern int local_server;
  extern int sanitize_paths;
-@@ -763,6 +764,8 @@ static struct poptOption long_options[] = {
+@@ -764,6 +765,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,7 +42,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -3430,6 +3431,17 @@ expand it.
+@@ -3432,6 +3433,17 @@ expand it.
      update algorithm that is even more atomic (it uses [`--link-dest`](#opt)
      and a parallel hierarchy of files).
  
index fcc3b044d7e1bbc75b34e30a8321d81f91585240..1ee88a15f6968802469017e75e551a0a1ffaea89 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -59,7 +59,7 @@ diff --git a/options.c b/options.c
  int open_noatime = 0;
  int cvs_exclude = 0;
  int dry_run = 0;
-@@ -692,6 +693,7 @@ static struct poptOption long_options[] = {
+@@ -693,6 +694,7 @@ static struct poptOption long_options[] = {
    {"no-one-file-system",0, POPT_ARG_VAL,    &one_file_system, 0, 0, 0 },
    {"no-x",             0,  POPT_ARG_VAL,    &one_file_system, 0, 0, 0 },
    {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
index c24baf6f4a1a2ad072f2e15b6c2d66e5ef2af98b..bc7111f9a952f7db0865a4e6c9d0cf9d5cbe77c5 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -341,7 +341,7 @@ diff --git a/main.c b/main.c
  extern int msgs2stderr;
  extern int module_id;
  extern int read_only;
-@@ -975,6 +979,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
+@@ -977,6 +981,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
         * points to an identical file won't be replaced by the referent. */
        copy_links = copy_dirlinks = copy_unsafe_links = 0;
  
@@ -383,7 +383,7 @@ diff --git a/options.c b/options.c
  int io_timeout = 0;
  int prune_empty_dirs = 0;
  int use_qsort = 0;
-@@ -622,6 +624,8 @@ static struct poptOption long_options[] = {
+@@ -623,6 +625,8 @@ 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 },
@@ -392,7 +392,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 },
-@@ -720,6 +724,12 @@ static struct poptOption long_options[] = {
+@@ -721,6 +725,12 @@ 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 },
@@ -405,7 +405,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 },
-@@ -1015,6 +1025,14 @@ static void set_refuse_options(void)
+@@ -1016,6 +1026,14 @@ static void set_refuse_options(void)
  #ifndef SUPPORT_CRTIMES
        parse_one_refuse_match(0, "crtimes", list_end);
  #endif
@@ -420,7 +420,7 @@ diff --git a/options.c b/options.c
  
        /* Now we use the descrip values to actually mark the options for refusal. */
        for (op = long_options; op != list_end; op++) {
-@@ -2712,6 +2730,9 @@ void server_options(char **args, int *argc_p)
+@@ -2732,6 +2750,9 @@ void server_options(char **args, int *argc_p)
        if (xfer_dirs && !recurse && delete_mode && am_sender)
                args[ac++] = "--no-r";
  
@@ -430,7 +430,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;
-@@ -2807,6 +2828,16 @@ void server_options(char **args, int *argc_p)
+@@ -2827,6 +2848,16 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--delete-excluded";
                if (force_delete)
                        args[ac++] = "--force";
@@ -525,7 +525,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  0.  `--chmod=CHMOD`
  
      This option tells rsync to apply one or more comma-separated "chmod" modes
-@@ -2017,8 +2053,8 @@ expand it.
+@@ -2019,8 +2055,8 @@ expand it.
      [`--ignore-missing-args`](#opt) 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
@@ -536,7 +536,7 @@ diff --git a/rsync.1.md b/rsync.1.md
      independent of any other type of delete processing.
  
      The missing source files are represented by special file-list entries which
-@@ -2029,14 +2065,14 @@ expand it.
+@@ -2031,14 +2067,14 @@ expand it.
      Tells [`--delete`](#opt) to go ahead and delete files even when there are
      I/O errors.
  
@@ -554,7 +554,7 @@ diff --git a/rsync.1.md b/rsync.1.md
      [`--recursive`](#opt) option was also enabled.
  
  0.  `--max-delete=NUM`
-@@ -3096,7 +3132,7 @@ expand it.
+@@ -3098,7 +3134,7 @@ expand it.
      also turns on the output of other verbose messages).
  
      The "%i" escape has a cryptic output that is 11 letters long.  The general
index d50ee2915298a0ec43b58932a7911cfa1cb5e1c2..fce3fdadc4e82aa52abf5c6667e339074ad59751 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -349,7 +349,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
      See the [`--perms`](#opt) and [`--executability`](#opt) options for how the
      resulting permission value can be applied to the files in the transfer.
-@@ -3030,6 +3032,10 @@ expand it.
+@@ -3032,6 +3034,10 @@ expand it.
      An older rsync client may need to use [`-s`](#opt) to avoid a complaint
      about wildcard characters, but a modern rsync handles this automatically.
  
@@ -360,7 +360,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  0.  `--timeout=SECONDS`
  
      This option allows you to set a maximum I/O timeout in seconds.  If no data
-@@ -4184,6 +4190,15 @@ The following modifiers are accepted after an include (+) or exclude (-) rule:
+@@ -4186,6 +4192,15 @@ The following modifiers are accepted after an include (+) or exclude (-) rule:
    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.
@@ -376,7 +376,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
-@@ -4241,6 +4256,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
+@@ -4243,6 +4258,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 5448d179e34485d3ceea46aab0148449db5ba53c..39dff430e1a8ea2046d891806e653fc5dda5f893 100644 (file)
@@ -12,7 +12,7 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -222,7 +222,7 @@ diff --git a/options.c b/options.c
  int blocking_io = -1;
  int checksum_seed = 0;
  int inplace = 0;
-@@ -783,6 +784,8 @@ static struct poptOption long_options[] = {
+@@ -784,6 +785,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 },
@@ -231,7 +231,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},
-@@ -2843,6 +2846,9 @@ void server_options(char **args, int *argc_p)
+@@ -2863,6 +2866,9 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -252,7 +252,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --address=ADDRESS        bind address for outgoing socket to daemon
  --port=PORT              specify double-colon alternate port number
  --sockopts=OPTIONS       specify custom TCP options
-@@ -2580,6 +2581,12 @@ expand it.
+@@ -2582,6 +2583,12 @@ expand it.
  
      >     sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
  
index f47117f2bff6b5e50c369f44f756da9065a58b0d..83dac1092643142ea6102daf49aa28a9277fb844 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -463,7 +463,7 @@ new file mode 100644
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -1589,7 +1589,7 @@ static int start_client(int argc, char *argv[])
+@@ -1580,7 +1580,7 @@ static int start_client(int argc, char *argv[])
         * remote shell command, we need to do the RSYNCD protocol first */
        if (daemon_connection) {
                int tmpret;
index 0b37ffce579bf664dabf1d214f70f483c9ae361a..f8134cf9445cbdbfdab48a78e267c65e76a54a5e 100644 (file)
@@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -37,7 +37,7 @@ diff --git a/checksum.c b/checksum.c
  extern const char *checksum_choice;
  
  #define NNI_BUILTIN (1<<0)
-@@ -538,7 +540,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -539,7 +541,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
  }
  
  static int32 sumresidue;
@@ -46,7 +46,7 @@ diff --git a/checksum.c b/checksum.c
  #ifdef SUPPORT_XXHASH
  static XXH64_state_t* xxh64_state;
  #endif
-@@ -596,6 +598,8 @@ int sum_init(struct name_num_item *nni, int seed)
+@@ -597,6 +599,8 @@ int sum_init(struct name_num_item *nni, int seed)
  #endif
          case CSUM_MD5:
                md5_begin(&ctx_md);
@@ -55,7 +55,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
                mdfour_begin(&ctx_md);
-@@ -642,6 +646,8 @@ void sum_update(const char *p, int32 len)
+@@ -643,6 +647,8 @@ void sum_update(const char *p, int32 len)
  #endif
          case CSUM_MD5:
                md5_update(&ctx_md, (uchar *)p, len);
@@ -64,7 +64,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
          case CSUM_MD4_OLD:
-@@ -708,6 +714,8 @@ void sum_end(char *sum)
+@@ -709,6 +715,8 @@ void sum_end(char *sum)
  #endif
          case CSUM_MD5:
                md5_result(&ctx_md, (uchar *)sum);
@@ -213,7 +213,7 @@ diff --git a/options.c b/options.c
  char *config_file = NULL;
  char *shell_cmd = NULL;
  char *logfile_name = NULL;
-@@ -230,7 +231,7 @@ static const char *debug_verbosity[] = {
+@@ -231,7 +232,7 @@ static const char *debug_verbosity[] = {
        /*2*/ "BIND,CMD,CONNECT,DEL,DELTASUM,DUP,FILTER,FLIST,ICONV",
        /*3*/ "ACL,BACKUP,CONNECT2,DELTASUM2,DEL2,EXIT,FILTER2,FLIST2,FUZZY,GENR,OWN,RECV,SEND,TIME",
        /*4*/ "CMD2,DELTASUM3,DEL3,EXIT2,FLIST3,ICONV2,OWN2,PROTO,TIME2",
@@ -222,7 +222,7 @@ diff --git a/options.c b/options.c
  };
  
  #define MAX_VERBOSITY ((int)(sizeof debug_verbosity / sizeof debug_verbosity[0]) - 1)
-@@ -301,6 +302,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
+@@ -302,6 +303,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
        DEBUG_WORD(FUZZY, W_REC, "Debug fuzzy scoring (levels 1-2)"),
        DEBUG_WORD(GENR, W_REC, "Debug generator functions"),
        DEBUG_WORD(HASH, W_SND|W_REC, "Debug hashtable code"),
@@ -230,7 +230,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)"),
-@@ -581,7 +583,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -582,7 +584,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, OPT_BLOCK_SIZE,
@@ -239,7 +239,7 @@ diff --git a/options.c b/options.c
        OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS, OPT_OLD_ARGS,
        OPT_STOP_AFTER, OPT_STOP_AT,
        OPT_REFUSED_BASE = 9000};
-@@ -742,6 +744,7 @@ static struct poptOption long_options[] = {
+@@ -743,6 +745,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 },
@@ -247,7 +247,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 },
-@@ -989,6 +992,9 @@ static void set_refuse_options(void)
+@@ -990,6 +993,9 @@ static void set_refuse_options(void)
                ref = cp + 1;
        }
  
@@ -257,8 +257,8 @@ diff --git a/options.c b/options.c
        if (am_daemon) {
  #ifdef ICONV_OPTION
                if (!*lp_charset(module_id))
-@@ -1862,6 +1868,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
-                       return 0;
+@@ -1867,6 +1873,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+                       goto cleanup;
  #endif
  
 +                case OPT_LINK_BY_HASH:
@@ -278,7 +278,7 @@ diff --git a/options.c b/options.c
                case OPT_STOP_AFTER: {
                        long val;
                        arg = poptGetOptArg(pc);
-@@ -2233,6 +2253,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2250,6 +2270,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);
@@ -287,7 +287,7 @@ diff --git a/options.c b/options.c
        }
        if (daemon_filter_list.head && !am_sender) {
                filter_rule_list *elp = &daemon_filter_list;
-@@ -2919,6 +2941,12 @@ void server_options(char **args, int *argc_p)
+@@ -2939,6 +2961,12 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--no-W";
        }
  
@@ -311,7 +311,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --compress, -z           compress file data during the transfer
  --compress-choice=STR    choose the compression algorithm (aka --zc)
  --compress-level=NUM     explicitly set compression level (aka --zl)
-@@ -2717,6 +2718,50 @@ expand it.
+@@ -2719,6 +2720,50 @@ expand it.
      this bug by avoiding the `-o` option (or using `--no-o`) when sending to an
      old rsync.
  
@@ -400,7 +400,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
-@@ -384,6 +384,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -388,6 +388,23 @@ in the values of parameters.  See that section for details.
      is 0, which means no limit.  A negative value disables the module.  See
      also the "[lock file](#)" parameter.
  
index b6bb957741562500ed6c2742a41b192b15e4e1bb..8831f97afe1e917d22f2fcac71ef4e3631e377d9 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -59,7 +59,7 @@ diff --git a/options.c b/options.c
  int omit_dir_times = 0;
  int omit_link_times = 0;
  int trust_sender = 0;
-@@ -646,6 +647,7 @@ static struct poptOption long_options[] = {
+@@ -647,6 +648,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 },
@@ -67,7 +67,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 },
-@@ -2302,7 +2304,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2319,7 +2321,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0);
        }
  
@@ -76,7 +76,7 @@ diff --git a/options.c b/options.c
                omit_dir_times = -1; /* Implied, so avoid -O to sender. */
  
        if (stdout_format) {
-@@ -2815,6 +2817,8 @@ void server_options(char **args, int *argc_p)
+@@ -2835,6 +2837,8 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--size-only";
                if (do_stats)
                        args[ac++] = "--stats";
@@ -96,7 +96,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --super                  receiver attempts super-user activities
  --fake-super             store/recover privileged attrs using xattrs
  --sparse, -S             turn sequences of nulls into sparse blocks
-@@ -1654,6 +1655,11 @@ expand it.
+@@ -1656,6 +1657,11 @@ expand it.
      This tells rsync to omit symlinks when it is preserving modification,
      access, and create times.
  
index 82f64c0f4ec06bd90803d54844ee35f06a329fc9..43992c84d62162bfb48d817eed3745307101610b 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -47,7 +47,7 @@ diff --git a/options.c b/options.c
  size_t bwlimit_writemax = 0;
  int ignore_existing = 0;
  int ignore_non_existing = 0;
-@@ -773,6 +774,7 @@ static struct poptOption long_options[] = {
+@@ -774,6 +775,7 @@ static struct poptOption long_options[] = {
    {"itemize-changes", 'i', POPT_ARG_NONE,   0, 'i', 0, 0 },
    {"no-itemize-changes",0, POPT_ARG_VAL,    &itemize_changes, 0, 0, 0 },
    {"no-i",             0,  POPT_ARG_VAL,    &itemize_changes, 0, 0, 0 },
index 8f68e43c3961ae91ba4886c5718a3dee8cdb1653..53ffbdc7cf000c5ec491f97f1d6c465661618c40 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -108,7 +108,7 @@ diff --git a/daemon-parm.txt b/daemon-parm.txt
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -1411,6 +1411,22 @@ static int start_client(int argc, char *argv[])
+@@ -1400,6 +1400,22 @@ static int start_client(int argc, char *argv[])
  
        if (!read_batch) { /* for read_batch, NO source is specified */
                char *path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
@@ -176,7 +176,7 @@ new file mode 100644
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -138,6 +138,21 @@ a literal % into a value is to use %%.
+@@ -120,6 +120,21 @@ parameters:
      You can override the default backlog value when the daemon listens for
      connections.  It defaults to 5.
  
@@ -195,10 +195,10 @@ diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 +    65535, then 65535 is used (which is a limitation of SLP).  Using 3600
 +    (one hour) is a good number if you tend to change your configuration.
 +
- ## MODULE PARAMETERS
- After the global parameters you should define a number of modules, each module
-@@ -1204,6 +1219,7 @@ A more sophisticated example would be:
+ You may also include any [MODULE PARAMETERS](#) in the global part of the
+ config file, in which case the supplied value will override the default for
+ that parameter.
+@@ -1208,6 +1223,7 @@ A more sophisticated example would be:
  > max connections = 4
  > syslog facility = local5
  > pid file = /var/run/rsyncd.pid
index ae900ec1260270bfdc12550ef8a65c90f8fe27b9..c6934561fd1ac534ec711c6deadab905b2856f5a 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 5d1616de0486b42949e4eab4c1dd040e6fb746e0..c557f954c54c72176d76c2a4566dcaa964a1c8de 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -21,7 +21,7 @@ diff --git a/options.c b/options.c
  
  /**
   * If 1, send the whole file as literal data rather than trying to
-@@ -776,6 +777,7 @@ static struct poptOption long_options[] = {
+@@ -777,6 +778,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 },
@@ -29,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 },
-@@ -2818,6 +2820,8 @@ void server_options(char **args, int *argc_p)
+@@ -2838,6 +2840,8 @@ void server_options(char **args, int *argc_p)
        } else {
                if (skip_compress)
                        args[ac++] = safe_arg("--skip-compress", skip_compress);
@@ -49,7 +49,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --del                    an alias for --delete-during
  --delete                 delete extraneous files from dest dirs
  --delete-before          receiver deletes before xfer, not during
-@@ -1891,6 +1892,17 @@ expand it.
+@@ -1893,6 +1894,17 @@ expand it.
      not remove a file the receiver just verified, such as when the user
      accidentally makes the source and destination directory the same path.
  
index 0088c55a070741b4813d07995b9c0310bbb6064e..f8998f19ae88831e9bfaeddbcc2db3d7ab8dd8a0 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -54,7 +54,7 @@ diff --git a/generator.c b/generator.c
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -189,7 +189,7 @@ int shell_exec(const char *cmd)
+@@ -191,7 +191,7 @@ int shell_exec(const char *cmd)
  }
  
  /* Wait for a process to exit, calling io_flush while waiting. */
@@ -83,7 +83,7 @@ diff --git a/options.c b/options.c
  char *early_input_file = NULL;
  char *rsync_path = RSYNC_PATH;
  char *backup_dir = NULL;
-@@ -688,6 +691,7 @@ static struct poptOption long_options[] = {
+@@ -689,6 +692,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 },
@@ -91,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 },
-@@ -828,6 +832,8 @@ static struct poptOption long_options[] = {
+@@ -829,6 +833,8 @@ static struct poptOption long_options[] = {
    {"early-input",      0,  POPT_ARG_STRING, &early_input_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 },
@@ -100,7 +100,7 @@ diff --git a/options.c b/options.c
    {"outbuf",           0,  POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
    {"remote-option",   'M', POPT_ARG_STRING, 0, 'M', 0, 0 },
    {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
-@@ -2425,6 +2431,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2442,6 +2448,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                }
        }
  
@@ -117,7 +117,7 @@ diff --git a/options.c b/options.c
        if (files_from) {
                char *h, *p;
                int q;
-@@ -2830,6 +2846,25 @@ void server_options(char **args, int *argc_p)
+@@ -2850,6 +2866,25 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
@@ -330,7 +330,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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)
-@@ -3710,6 +3713,36 @@ expand it.
+@@ -3712,6 +3715,36 @@ expand it.
      [`--write-batch`](#opt).  If _FILE_ is `-`, the batch data will be read
      from standard input. See the "BATCH MODE" section for details.
  
index 4f7df2e6903e998649b733c1c09d6ee28cc1cc6a..dbce782555192482d8d143b2f50c79db8cfbc27c 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
@@ -30,7 +30,7 @@ diff --git a/fileio.c b/fileio.c
  
  OFF_T preallocated_len = 0;
  
-@@ -149,7 +150,7 @@ int write_file(int f, int use_seek, OFF_T offset, const char *buf, int len)
+@@ -153,7 +154,7 @@ int write_file(int f, int use_seek, OFF_T offset, const char *buf, int len)
        while (len > 0) {
                int r1;
                if (sparse_files > 0) {
@@ -50,7 +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;
-@@ -701,6 +702,7 @@ static struct poptOption long_options[] = {
+@@ -702,6 +703,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 },
@@ -58,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 },
-@@ -2750,6 +2752,12 @@ void server_options(char **args, int *argc_p)
+@@ -2770,6 +2772,12 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -82,7 +82,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --preallocate            allocate dest files before writing them
  --dry-run, -n            perform a trial run with no changes made
  --whole-file, -W         copy files whole (w/o delta-xfer algorithm)
-@@ -1728,6 +1729,18 @@ expand it.
+@@ -1730,6 +1731,18 @@ expand it.
      (as opposed to allocated sequences of null bytes) if the kernel version and
      filesystem type support creating holes in the allocated data.
  
index 4878a36bf31162fb9deb507057b8ce07de355abc..50ac6cf9c113c4839ce1fca54004034cc923e5fc 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: 6b5ae825db985e9d1c98576651b50c8e490ddb97
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -88,7 +88,7 @@ diff --git a/flist.c b/flist.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -210,6 +210,7 @@ int logfile_format_has_i = 0;
+@@ -211,6 +211,7 @@ int logfile_format_has_i = 0;
  int logfile_format_has_o_or_i = 0;
  int always_checksum = 0;
  int list_only = 0;
@@ -96,7 +96,7 @@ diff --git a/options.c b/options.c
  
  #define MAX_BATCH_NAME_LEN 256        /* Must be less than MAXPATHLEN-13 */
  char *batch_name = NULL;
-@@ -812,6 +813,7 @@ static struct poptOption long_options[] = {
+@@ -813,6 +814,7 @@ static struct poptOption long_options[] = {
    {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
    {"iconv",            0,  POPT_ARG_STRING, &iconv_opt, 0, 0, 0 },
    {"no-iconv",         0,  POPT_ARG_NONE,   0, OPT_NO_ICONV, 0, 0 },
@@ -104,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 },
-@@ -2471,6 +2473,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2488,6 +2490,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                }
        }
  
@@ -129,7 +129,7 @@ diff --git a/options.c b/options.c
        if (trust_sender || am_server || read_batch)
                trust_sender_args = trust_sender_filter = 1;
        else if (old_style_args || filesfrom_host != NULL)
-@@ -2936,6 +2956,12 @@ void server_options(char **args, int *argc_p)
+@@ -2956,6 +2976,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,7 +153,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --checksum-seed=NUM      set block/file checksum seed (advanced)
  --ipv4, -4               prefer IPv4
  --ipv6, -6               prefer IPv6
-@@ -3752,6 +3753,22 @@ expand it.
+@@ -3754,6 +3755,22 @@ expand it.
      free to specify just the local charset for a daemon transfer (e.g.
      `--iconv=utf8`).