Fix a patch conflict.
authorWayne Davison <wayne@opencoder.net>
Mon, 1 Aug 2022 00:51:31 +0000 (17:51 -0700)
committerWayne Davison <wayne@opencoder.net>
Mon, 1 Aug 2022 00:51:31 +0000 (17:51 -0700)
28 files changed:
backup-deleted.diff
backup-dir-dels.diff
catch_crash_signals.diff
checksum-reading.diff
checksum-updating.diff
checksum-xattr.diff
clone-dest.diff
congestion.diff
date-only.diff
db.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
xxh3-safety-check.diff

index 86eaac5fdfe5a0f2f4a0ff43ad0b1dd919625f49..870adf4f551f44d5178d5657038d68e755d6c54a 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -74,7 +74,7 @@ diff --git a/receiver.c b/receiver.c
                                continue;
                        if (DEBUG_GTE(RECV, 1)) {
                                rprintf(FINFO, "renaming %s to %s\n",
-@@ -745,7 +745,7 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -748,7 +748,7 @@ int recv_files(int f_in, int f_out, char *local_name)
                } else {
                        /* Reminder: --inplace && --partial-dir are never
                         * enabled at the same time. */
@@ -86,7 +86,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
-@@ -348,6 +348,7 @@ has its own detailed description later in this manpage.
+@@ -366,6 +366,7 @@ has its own detailed description later in this manpage.
  --relative, -R           use relative path names
  --no-implied-dirs        don't send implied dirs with --relative
  --backup, -b             make backups (see --suffix & --backup-dir)
@@ -94,7 +94,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -914,6 +915,13 @@ your home directory (remove the '=' for that).
+@@ -939,6 +940,13 @@ option name from the pathname using a space if you want the shell to expand it.
      rules specify a trailing inclusion/exclusion of `*`, the auto-added rule
      would never be reached).
  
index 253b50af5c211e8242eb32ef93207a459b967492..f328f59b69c59116f9cbc1af76a96bfb7cb66f7c 100644 (file)
@@ -343,7 +343,7 @@ 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
-@@ -350,7 +350,9 @@ has its own detailed description later in this manpage.
+@@ -368,7 +368,9 @@ has its own detailed description later in this manpage.
  --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
@@ -353,7 +353,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --update, -u             skip files that are newer on the receiver
  --inplace                update destination files in-place
  --append                 append data onto shorter files
-@@ -936,6 +938,11 @@ your home directory (remove the '=' for that).
+@@ -961,6 +963,11 @@ option name from the pathname using a space if you want the shell to expand it.
      daemon is the receiver, the backup dir cannot go outside the module's path
      hierarchy, so take extra care not to delete it or copy into it.
  
index 6f99ffcc424f72e9a33f207aa04e54a9374eb637..88c92c88b955441cc414dc355efbe205a9dbb0a5 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 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)
+@@ -217,8 +217,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)
-@@ -1631,6 +1634,14 @@ void remember_children(UNUSED(int val))
+@@ -1636,6 +1639,14 @@ void remember_children(UNUSED(int val))
                                break;
                        }
                }
@@ -80,7 +80,7 @@ diff --git a/main.c b/main.c
        }
  #endif
  #ifndef HAVE_SIGACTION
-@@ -1684,6 +1695,13 @@ static void rsync_panic_handler(UNUSED(int whatsig))
+@@ -1689,6 +1700,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
-@@ -1700,7 +1718,6 @@ static void unset_env_var(const char *var)
+@@ -1705,7 +1723,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;
-@@ -1724,6 +1741,11 @@ int main(int argc,char *argv[])
+@@ -1729,6 +1746,11 @@ int main(int argc,char *argv[])
        SIGACTMASK(SIGFPE, rsync_panic_handler);
        SIGACTMASK(SIGABRT, rsync_panic_handler);
        SIGACTMASK(SIGBUS, rsync_panic_handler);
index f4c3cb8b5b76ea1169e21322ad8adf69073752dd..c8485904efbf868827ec1f0c32a4e16c8a7f8968 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -77,9 +77,9 @@ diff --git a/flist.c b/flist.c
  extern int copy_links;
  extern int copy_unsafe_links;
  extern int protocol_version;
-@@ -74,6 +77,7 @@ extern int sender_symlink_iconv;
- extern int output_needs_newline;
+@@ -75,6 +78,7 @@ extern int output_needs_newline;
  extern int sender_keeps_checksum;
+ extern int trust_sender_filter;
  extern int unsort_ndx;
 +extern char *basis_dir[];
  extern uid_t our_uid;
@@ -356,7 +356,7 @@ diff --git a/flist.c b/flist.c
  /* Call this with EITHER (1) "file, NULL, 0" to chdir() to the file's
   * F_PATHNAME(), or (2) "NULL, dir, dirlen" to chdir() to the supplied dir,
   * with dir == NULL taken to be the starting directory, and dirlen < 0
-@@ -1216,7 +1467,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1229,7 +1480,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                              STRUCT_STAT *stp, int flags, int filter_level)
  {
        static char *lastdir;
@@ -365,7 +365,7 @@ diff --git a/flist.c b/flist.c
        struct file_struct *file;
        char thisname[MAXPATHLEN];
        char linkname[MAXPATHLEN];
-@@ -1362,9 +1613,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1375,9 +1626,16 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                        memcpy(lastdir, thisname, len);
                        lastdir[len] = '\0';
                        lastdir_len = len;
@@ -383,7 +383,7 @@ diff --git a/flist.c b/flist.c
        basename_len = strlen(basename) + 1; /* count the '\0' */
  
  #ifdef SUPPORT_LINKS
-@@ -1394,11 +1652,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1407,11 +1665,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                extra_len += EXTRA_LEN;
  #endif
  
@@ -397,7 +397,7 @@ diff --git a/flist.c b/flist.c
  
  #if EXTRA_ROUNDING > 0
        if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN))
-@@ -1487,8 +1742,14 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1500,8 +1755,14 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                return NULL;
        }
  
@@ -414,7 +414,7 @@ diff --git a/flist.c b/flist.c
  
        if (unsort_ndx)
                F_NDX(file) = stats.num_dirs;
-@@ -2705,7 +2966,7 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2718,7 +2979,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(). */
@@ -423,7 +423,7 @@ diff --git a/flist.c b/flist.c
  
        if (protocol_version < 30) {
                /* Recv the io_error flag */
-@@ -2950,7 +3211,7 @@ void flist_free(struct file_list *flist)
+@@ -2963,7 +3224,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. */
@@ -432,7 +432,7 @@ diff --git a/flist.c b/flist.c
  {
        char fbuf[MAXPATHLEN];
        int i, prev_i;
-@@ -3001,7 +3262,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -3014,7 +3275,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. */
@@ -441,7 +441,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;
-@@ -3017,8 +3278,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -3030,8 +3291,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
                        } else
                                keep = j, drop = i;
  
@@ -452,7 +452,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);
-@@ -3040,7 +3301,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -3053,7 +3314,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
        }
        flist->high = prev_i;
  
@@ -710,7 +710,7 @@ 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
-@@ -342,6 +342,7 @@ has its own detailed description later in this manpage.
+@@ -360,6 +360,7 @@ has its own detailed description later in this manpage.
  --quiet, -q              suppress non-error messages
  --no-motd                suppress daemon-mode MOTD
  --checksum, -c           skip based on checksum, not mod-time & size
@@ -718,7 +718,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --archive, -a            archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
  --no-OPTION              turn off an implied OPTION (e.g. --no-D)
  --recursive, -r          recurse into directories
-@@ -722,6 +723,8 @@ your home directory (remove the '=' for that).
+@@ -747,6 +748,8 @@ option name from the pathname using a space if you want the shell to expand it.
      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.
  
@@ -727,7 +727,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
-@@ -733,6 +736,38 @@ your home directory (remove the '=' for that).
+@@ -758,6 +761,38 @@ option name from the pathname using a space if you want the shell to expand it.
      option or an environment variable that is discussed in that option's
      section.
  
@@ -769,7 +769,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -899,6 +899,10 @@ extern int xattrs_ndx;
+@@ -902,6 +902,10 @@ extern int xattrs_ndx;
  #define F_SUM(f) ((char*)OPT_EXTRA(f, START_BUMP(f) + HLINK_BUMP(f) \
                                    + SUM_EXTRA_CNT - 1))
  
@@ -780,7 +780,7 @@ diff --git a/rsync.h b/rsync.h
  /* Some utility defines: */
  #define F_IS_ACTIVE(f) (f)->basename[0]
  #define F_IS_HLINKED(f) ((f)->flags & FLAG_HLINKED)
-@@ -1112,6 +1116,13 @@ typedef struct {
+@@ -1115,6 +1119,13 @@ typedef struct {
  #define RELNAMECACHE_LEN (offsetof(relnamecache, fname))
  #endif
  
index 9ec3d4a28f0cb0f7a9022f20020f6e5904edf61d..e1c85e67527e8c87cec2cb7fb185e950a141026c 100644 (file)
@@ -390,7 +390,7 @@ diff --git a/flist.c b/flist.c
  }
  
  /* Call this with EITHER (1) "file, NULL, 0" to chdir() to the file's
-@@ -1568,6 +1779,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1581,6 +1792,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
        if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level)) {
                if (ignore_perishable)
                        non_perishable_cnt++;
@@ -399,7 +399,7 @@ diff --git a/flist.c b/flist.c
                return NULL;
        }
  
-@@ -1614,13 +1827,13 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1627,13 +1840,13 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                        lastdir[len] = '\0';
                        lastdir_len = len;
                        if (checksum_files && am_sender && flist)
@@ -415,7 +415,7 @@ diff --git a/flist.c b/flist.c
                }
        }
        basename_len = strlen(basename) + 1; /* count the '\0' */
-@@ -1744,7 +1957,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1757,7 +1970,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
  
        if (always_checksum && am_sender && S_ISREG(st.st_mode)) {
                if (flist && checksum_files)
@@ -424,7 +424,7 @@ diff --git a/flist.c b/flist.c
                else
                        file_checksum(thisname, &st, tmp_sum);
                if (sender_keeps_checksum)
-@@ -2136,6 +2349,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -2149,6 +2362,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". */
-@@ -2801,6 +3017,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2814,6 +3030,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        rprintf(FINFO, "[%s] flist_eof=1\n", who_am_i());
        }
  
@@ -520,7 +520,7 @@ diff --git a/io.c b/io.c
  extern int daemon_connection;
  extern int protocol_version;
  extern int remove_source_files;
-@@ -1085,6 +1086,9 @@ static void got_flist_entry_status(enum festatus status, int ndx)
+@@ -1089,6 +1090,9 @@ static void got_flist_entry_status(enum festatus status, int ndx)
                                if (inc_recurse)
                                        flist->in_progress++;
                        }
@@ -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);
-@@ -923,7 +924,7 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -926,7 +927,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
-@@ -747,9 +747,13 @@ your home directory (remove the '=' for that).
+@@ -772,9 +772,13 @@ option name from the pathname using a space if you want the shell to expand it.
  
      The MODE value is either "lax", for relaxed checking (which compares size
      and mtime), "strict" (which also compares ctime and inode), or "none" to
@@ -616,7 +616,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -1118,6 +1118,8 @@ typedef struct {
+@@ -1121,6 +1121,8 @@ typedef struct {
  
  #define CSF_ENABLE (1<<1)
  #define CSF_LAX (1<<2)
index 1cb388242e551f6c70ee93969766c3d8a075c80f..e9ce7500e91f91a0a729d92fdc64afe4566908f8 100644 (file)
@@ -8,11 +8,11 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
-@@ -1395,7 +1395,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1408,7 +1408,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
  #endif
  
        if (always_checksum && am_sender && S_ISREG(st.st_mode)) {
index 41e1666617814e2c98915eb27b79f01adc684021..ee49b50f10420b30b8934e84345a04bf69f47e47 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -129,7 +129,7 @@ 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
-@@ -430,6 +430,7 @@ has its own detailed description later in this manpage.
+@@ -448,6 +448,7 @@ has its own detailed description later in this manpage.
  --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
@@ -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)
-@@ -2532,6 +2533,18 @@ your home directory (remove the '=' for that).
+@@ -2585,6 +2586,18 @@ option name from the pathname using a space if you want the shell to expand it.
      this bug by avoiding the `-o` option (or using `--no-o`) when sending to an
      old rsync.
  
index 7a72fdf26e78f3d06f998c50581e308153f4092e..1d46cfa50b6dbba1d178d70d02a987e72256a2c1 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/daemon-parm.txt b/daemon-parm.txt
 --- a/daemon-parm.txt
 +++ b/daemon-parm.txt
@@ -71,7 +71,7 @@ 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
-@@ -450,6 +450,8 @@ has its own detailed description later in this manpage.
+@@ -468,6 +468,8 @@ has its own detailed description later in this manpage.
  --address=ADDRESS        bind address for outgoing socket to daemon
  --port=PORT              specify double-colon alternate port number
  --sockopts=OPTIONS       specify custom TCP options
index 08376c84227f2ef008871c9fb4af1bf058723e08..8ccbfc4492339351aded01d58cd1061ac43b74a0 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -68,7 +68,7 @@ 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
-@@ -424,6 +424,7 @@ has its own detailed description later in this manpage.
+@@ -442,6 +442,7 @@ has its own detailed description later in this manpage.
  --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
@@ -76,7 +76,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -684,6 +685,14 @@ your home directory (remove the '=' for that).
+@@ -709,6 +710,14 @@ option name from the pathname using a space if you want the shell to expand it.
      after using another mirroring system which may not preserve timestamps
      exactly.
  
diff --git a/db.diff b/db.diff
index cd1f865f428e64f5979e9613384b730727b04466..8a5060b1dacfb7d604fdfa349627e648360dc756 100644 (file)
--- a/db.diff
+++ b/db.diff
@@ -21,7 +21,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/.gitignore b/.gitignore
 --- a/.gitignore
 +++ b/.gitignore
@@ -230,7 +230,7 @@ diff --git a/configure.ac b/configure.ac
      netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h mcheck.h \
      sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h dl.h \
      popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netgroup.h \
-@@ -1433,6 +1434,48 @@ if test x"$enable_acl_support" = x"no" || test x"$enable_xattr_support" = x"no"
+@@ -1434,6 +1435,48 @@ if test x"$enable_acl_support" = x"no" || test x"$enable_xattr_support" = x"no"
      fi
  fi
  
@@ -2257,7 +2257,7 @@ diff --git a/flist.c b/flist.c
  extern int eol_nulls;
  extern int atimes_ndx;
  extern int crtimes_ndx;
-@@ -1394,11 +1395,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1407,11 +1408,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                extra_len += EXTRA_LEN;
  #endif
  
@@ -2271,7 +2271,7 @@ diff --git a/flist.c b/flist.c
  
  #if EXTRA_ROUNDING > 0
        if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN))
-@@ -1487,8 +1485,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1500,8 +1498,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                return NULL;
        }
  
@@ -2286,7 +2286,7 @@ diff --git a/flist.c b/flist.c
  
        if (unsort_ndx)
                F_NDX(file) = stats.num_dirs;
-@@ -2172,6 +2174,9 @@ void send_extra_file_list(int f, int at_least)
+@@ -2185,6 +2187,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);
@@ -2296,7 +2296,7 @@ diff --git a/flist.c b/flist.c
  }
  
  struct file_list *send_file_list(int f, int argc, char *argv[])
-@@ -2195,6 +2200,13 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2208,6 +2213,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;
  
@@ -2310,7 +2310,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");
-@@ -2540,6 +2552,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2553,6 +2565,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        rprintf(FINFO, "[%s] flist_eof=1\n", who_am_i());
        }
  
@@ -2378,7 +2378,7 @@ diff --git a/io.c b/io.c
  extern int io_error;
  extern int batch_fd;
  extern int eol_nulls;
-@@ -1513,6 +1515,32 @@ static void read_a_msg(void)
+@@ -1517,6 +1519,32 @@ static void read_a_msg(void)
                if (am_sender)
                        maybe_send_keepalive(time(NULL), MSK_ALLOW_FLUSH);
                break;
@@ -2411,7 +2411,7 @@ diff --git a/io.c b/io.c
        case MSG_DELETED:
                if (msg_bytes >= sizeof data)
                        goto overflow;
-@@ -1666,6 +1694,7 @@ static void read_a_msg(void)
+@@ -1670,6 +1698,7 @@ static void read_a_msg(void)
                 * with a duplicate exit message. */
                _exit_cleanup(val, __FILE__, 0 - __LINE__);
        default:
@@ -2438,7 +2438,7 @@ diff --git a/main.c b/main.c
  extern int mkpath_dest_arg;
  extern int file_total;
  extern int recurse;
-@@ -95,6 +97,7 @@ extern char *logfile_format;
+@@ -96,6 +98,7 @@ extern char *logfile_format;
  extern char *filesfrom_host;
  extern char *partial_dir;
  extern char *rsync_path;
@@ -2446,7 +2446,7 @@ diff --git a/main.c b/main.c
  extern char *shell_cmd;
  extern char *password_file;
  extern char *backup_dir;
-@@ -1237,6 +1240,9 @@ void start_server(int f_in, int f_out, int argc, char *argv[])
+@@ -1239,6 +1242,9 @@ void start_server(int f_in, int f_out, int argc, char *argv[])
        if (am_daemon && io_timeout && protocol_version >= 31)
                send_msg_int(MSG_IO_TIMEOUT, io_timeout);
  
@@ -2456,7 +2456,7 @@ diff --git a/main.c b/main.c
        if (am_sender) {
                keep_dirlinks = 0; /* Must be disabled on the sender. */
                if (need_messages_from_generator)
-@@ -1531,6 +1537,9 @@ static int start_client(int argc, char *argv[])
+@@ -1536,6 +1542,9 @@ static int start_client(int argc, char *argv[])
        else
                env_port = rsync_port;
  
@@ -2791,7 +2791,7 @@ diff --git a/receiver.c b/receiver.c
        progress_init();
  
        while (1) {
-@@ -895,6 +905,8 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -898,6 +908,8 @@ int recv_files(int f_in, int f_out, char *local_name)
                                        do_unlink(partialptr);
                                handle_partial_dir(partialptr, PDIR_DELETE);
                        }
@@ -2800,7 +2800,7 @@ diff --git a/receiver.c b/receiver.c
                } else if (keep_partial && partialptr && (!one_inplace || delay_updates)) {
                        if (!handle_partial_dir(partialptr, PDIR_CREATE)) {
                                rprintf(FERROR,
-@@ -908,6 +920,8 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -911,6 +923,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);
@@ -2812,7 +2812,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
-@@ -390,6 +390,9 @@ has its own detailed description later in this manpage.
+@@ -408,6 +408,9 @@ has its own detailed description later in this manpage.
  --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 algorithm (aka --cc)
@@ -2863,7 +2863,7 @@ diff --git a/rsync.h b/rsync.h
  #define NDX_DONE -1
  #define NDX_FLIST_EOF -2
  #define NDX_DEL_STATS -3
-@@ -1438,7 +1442,8 @@ extern short info_levels[], debug_levels[];
+@@ -1441,7 +1445,8 @@ extern short info_levels[], debug_levels[];
  #define DEBUG_CHDIR (DEBUG_BIND+1)
  #define DEBUG_CONNECT (DEBUG_CHDIR+1)
  #define DEBUG_CMD (DEBUG_CONNECT+1)
index 4b8a4f77058eefd08258c771b992302c3edfdffb..7ea637f7b15ce454a563439791afc780e8ffbe57 100644 (file)
@@ -91,7 +91,7 @@ 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
-@@ -428,6 +428,8 @@ has its own detailed description later in this manpage.
+@@ -446,6 +446,8 @@ has its own detailed description later in this manpage.
  --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
@@ -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
-@@ -2464,6 +2466,20 @@ your home directory (remove the '=' for that).
+@@ -2517,6 +2519,20 @@ option name from the pathname using a space if you want the shell to expand it.
      otential alternate-basis files will be removed as the transfer progresses.
      This option conflicts with [`--inplace`](#opt) and [`--append`](#opt).
  
index 5e139038942228c14b06000019a7308144f60225..6344758f4865c507daa34b2afa70745f458c342c 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/backup.c b/backup.c
 --- a/backup.c
 +++ b/backup.c
@@ -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);
  
-@@ -2707,6 +2749,23 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2720,6 +2762,23 @@ 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);
  
@@ -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
-@@ -715,7 +715,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -717,7 +717,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;
@@ -658,7 +658,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
-@@ -427,6 +427,7 @@ has its own detailed description later in this manpage.
+@@ -445,6 +445,7 @@ has its own detailed description later in this manpage.
  --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
@@ -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
-@@ -2447,6 +2448,22 @@ your home directory (remove the '=' for that).
+@@ -2500,6 +2501,22 @@ option name from the pathname using a space if you want the shell to expand it.
      potential fuzzy-match files, so either use [`--delete-after`](#opt) or
      specify some filename exclusions if you need to prevent this.
  
index 721859791c1c9a90d93bdb653ec3e0d74dc55546..982f71c2d0de57cd85133c8868a306470ad5a3e1 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -34,7 +34,7 @@ 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
-@@ -415,6 +415,7 @@ has its own detailed description later in this manpage.
+@@ -433,6 +433,7 @@ has its own detailed description later in this manpage.
  --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
@@ -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
-@@ -3247,6 +3248,17 @@ your home directory (remove the '=' for that).
+@@ -3300,6 +3301,17 @@ option name from the pathname using a space if you want the shell to expand it.
      update algorithm that is even more atomic (it uses [`--link-dest`](#opt)
      and a parallel hierarchy of files).
  
index c7b5b276b2701af85b3c32cda38f36a5121d1a2c..36c3db9b1e9ad1497534ff2491865acc7b71e934 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -70,7 +70,7 @@ 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
-@@ -351,6 +351,7 @@ has its own detailed description later in this manpage.
+@@ -369,6 +369,7 @@ has its own detailed description later in this manpage.
  --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
index 561c91c6489d4df7824d9594394edbe9718bb8f9..d23f5e7484f0191a26e472de6d5ca45f323a691f 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -180,7 +180,7 @@ diff --git a/flist.c b/flist.c
  
        if (preserve_uid && !(xflags & XMIT_SAME_UID)) {
                if (protocol_version < 30)
-@@ -1042,6 +1069,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
+@@ -1055,6 +1082,10 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
        }
  #endif
        file->mode = mode;
@@ -191,7 +191,7 @@ diff --git a/flist.c b/flist.c
        if (preserve_uid)
                F_OWNER(file) = uid;
        if (preserve_gid) {
-@@ -1455,6 +1486,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1468,6 +1499,10 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
        }
  #endif
        file->mode = st.st_mode;
@@ -341,7 +341,7 @@ diff --git a/main.c b/main.c
  extern int msgs2stderr;
  extern int module_id;
  extern int read_only;
-@@ -966,6 +970,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
+@@ -968,6 +972,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;
  
@@ -450,7 +450,7 @@ 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
-@@ -366,6 +366,7 @@ has its own detailed description later in this manpage.
+@@ -384,6 +384,7 @@ has its own detailed description later in this manpage.
  --keep-dirlinks, -K      treat symlinked dir on receiver as dir
  --hard-links, -H         preserve hard links
  --perms, -p              preserve permissions
@@ -458,7 +458,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --executability, -E      preserve executability
  --chmod=CHMOD            affect file and/or directory permissions
  --acls, -A               preserve ACLs (implies --perms)
-@@ -407,7 +408,10 @@ has its own detailed description later in this manpage.
+@@ -425,7 +426,10 @@ has its own detailed description later in this manpage.
  --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
@@ -470,7 +470,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -739,6 +743,7 @@ your home directory (remove the '=' for that).
+@@ -764,6 +768,7 @@ option name from the pathname using a space if you want the shell to expand it.
      recursion and want to preserve almost everything.  Be aware that it does
      **not** include preserving ACLs (`-A`), xattrs (`-X`), atimes (`-U`),
      crtimes (`-N`), nor the finding and preserving of hardlinks (`-H`).
@@ -478,7 +478,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
      The only exception to the above equivalence is when [`--files-from`](#opt)
      is specified, in which case [`-r`](#opt) is not implied.
-@@ -1199,7 +1204,7 @@ your home directory (remove the '=' for that).
+@@ -1223,7 +1228,7 @@ option name from the pathname using a space if you want the shell to expand it.
      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
@@ -487,7 +487,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  
      See also [`--keep-dirlinks`](#opt) for an analogous option for the
      receiving side.
-@@ -1394,6 +1399,37 @@ your home directory (remove the '=' for that).
+@@ -1418,6 +1423,37 @@ option name from the pathname using a space if you want the shell to expand it.
      those used by [`--fake-super`](#opt)) unless you repeat the option (e.g. `-XX`).
      This "copy all xattrs" mode cannot be used with [`--fake-super`](#opt).
  
@@ -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
-@@ -1897,8 +1933,8 @@ your home directory (remove the '=' for that).
+@@ -1931,8 +1967,8 @@ option name from the pathname using a space if you want the shell to 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
-@@ -1909,14 +1945,14 @@ your home directory (remove the '=' for that).
+@@ -1943,14 +1979,14 @@ option name from the pathname using a space if you want the shell to 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`
-@@ -2913,7 +2949,7 @@ your home directory (remove the '=' for that).
+@@ -2966,7 +3002,7 @@ option name from the pathname using a space if you want the shell to 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
@@ -701,7 +701,7 @@ diff --git a/rsync.h b/rsync.h
  #define ITEM_REPORT_CRTIME (1<<10)
  #define ITEM_BASIS_TYPE_FOLLOWS (1<<11)
  #define ITEM_XNAME_FOLLOWS (1<<12)
-@@ -590,6 +592,31 @@ typedef unsigned int size_t;
+@@ -593,6 +595,31 @@ typedef unsigned int size_t;
  #define SUPPORT_CRTIMES 1
  #endif
  
@@ -733,7 +733,7 @@ diff --git a/rsync.h b/rsync.h
  /* Find a variable that is either exactly 32-bits or longer.
   * If some code depends on 32-bit truncation, it will need to
   * take special action in a "#if SIZEOF_INT32 > 4" section. */
-@@ -821,6 +848,7 @@ extern int pathname_ndx;
+@@ -824,6 +851,7 @@ extern int pathname_ndx;
  extern int depth_ndx;
  extern int uid_ndx;
  extern int gid_ndx;
@@ -741,7 +741,7 @@ diff --git a/rsync.h b/rsync.h
  extern int acls_ndx;
  extern int xattrs_ndx;
  
-@@ -875,6 +903,11 @@ extern int xattrs_ndx;
+@@ -878,6 +906,11 @@ extern int xattrs_ndx;
  /* When the associated option is on, all entries will have these present: */
  #define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
  #define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
index 9cd743b05464d419b2c7d91cdead15768e06f9b3..17df22fea2bf4a518a4422384a343d5b9fdca7de 100644 (file)
@@ -9,17 +9,18 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
-@@ -45,10 +45,13 @@ filter_rule_list filter_list = { .debug_type = "" };
- filter_rule_list cvs_filter_list = { .debug_type = " [global CVS]" };
+@@ -52,11 +52,14 @@ filter_rule_list cvs_filter_list = { .debug_type = " [global CVS]" };
  filter_rule_list daemon_filter_list = { .debug_type = " [daemon]" };
+ filter_rule_list implied_filter_list = { .debug_type = " [implied]" };
  
 +filter_rule *last_hit_filter_rule;
 +
  int saw_xattr_filter = 0;
+ int trust_sender_filter = 0;
  
 -/* Need room enough for ":MODS " prefix plus some room to grow. */
 -#define MAX_RULE_PREFIX (16)
@@ -29,7 +30,7 @@ diff --git a/exclude.c b/exclude.c
  
  #define SLASH_WILD3_SUFFIX "/***"
  
-@@ -127,8 +130,27 @@ static void teardown_mergelist(filter_rule *ex)
+@@ -135,8 +138,27 @@ static void teardown_mergelist(filter_rule *ex)
                mergelist_cnt--;
  }
  
@@ -57,7 +58,7 @@ diff --git a/exclude.c b/exclude.c
        if (ex->rflags & FILTRULE_PERDIR_MERGE)
                teardown_mergelist(ex);
        free(ex->pattern);
-@@ -726,7 +748,9 @@ static void report_filter_result(enum logcode code, char const *name,
+@@ -853,7 +875,9 @@ static void report_filter_result(enum logcode code, char const *name,
  
  /* This function is used to check if a file should be included/excluded
   * from the list of files based on its name and type etc.  The value of
@@ -68,7 +69,7 @@ diff --git a/exclude.c b/exclude.c
  int name_is_excluded(const char *fname, int name_flags, int filter_level)
  {
        if (daemon_filter_list.head && check_filter(&daemon_filter_list, FLOG, fname, name_flags) < 0) {
-@@ -735,6 +759,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
+@@ -862,6 +886,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
                return 1;
        }
  
@@ -78,7 +79,7 @@ diff --git a/exclude.c b/exclude.c
        if (filter_level != ALL_FILTERS)
                return 0;
  
-@@ -745,7 +772,8 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
+@@ -872,7 +899,8 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
  }
  
  /* Return -1 if file "name" is defined to be excluded by the specified
@@ -88,7 +89,7 @@ diff --git a/exclude.c b/exclude.c
  int check_filter(filter_rule_list *listp, enum logcode code,
                 const char *name, int name_flags)
  {
-@@ -768,10 +796,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
+@@ -895,10 +923,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
                }
                if (rule_matches(name, ent, name_flags)) {
                        report_filter_result(code, name, ent, name_flags, listp->debug_type);
@@ -101,7 +102,7 @@ diff --git a/exclude.c b/exclude.c
        return 0;
  }
  
-@@ -788,9 +818,45 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
+@@ -915,9 +945,45 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
        return NULL;
  }
  
@@ -148,7 +149,7 @@ diff --git a/exclude.c b/exclude.c
  
  /* Gets the next include/exclude rule from *rulestr_ptr and advances
   * *rulestr_ptr to point beyond it.  Stores the pattern's start (within
-@@ -805,6 +871,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -932,6 +998,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
                                   const char **pat_ptr, unsigned int *pat_len_ptr)
  {
        const uchar *s = (const uchar *)*rulestr_ptr;
@@ -156,7 +157,7 @@ diff --git a/exclude.c b/exclude.c
        filter_rule *rule;
        unsigned int len;
  
-@@ -823,6 +890,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -950,6 +1017,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
        /* Inherit from the template.  Don't inherit FILTRULES_SIDES; we check
         * that later. */
        rule->rflags = template->rflags & FILTRULES_FROM_CONTAINER;
@@ -169,7 +170,7 @@ diff --git a/exclude.c b/exclude.c
  
        /* Figure out what kind of a filter rule "s" is pointing at.  Note
         * that if FILTRULE_NO_PREFIXES is set, the rule is either an include
-@@ -968,11 +1041,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -1096,11 +1169,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
                                        goto invalid;
                                rule->rflags |= FILTRULE_EXCLUDE_SELF;
                                break;
@@ -233,7 +234,7 @@ diff --git a/exclude.c b/exclude.c
                        case 'p':
                                rule->rflags |= FILTRULE_PERISHABLE;
                                break;
-@@ -1286,6 +1411,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
+@@ -1414,6 +1539,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
                else if (am_sender)
                        return NULL;
        }
@@ -260,15 +261,15 @@ diff --git a/exclude.c b/exclude.c
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
-@@ -85,6 +85,7 @@ extern struct chmod_mode_struct *chmod_modes;
+@@ -85,6 +85,7 @@ extern char curr_dir[MAXPATHLEN];
+ extern struct chmod_mode_struct *chmod_modes;
  
- extern filter_rule_list filter_list;
- extern filter_rule_list daemon_filter_list;
+ extern filter_rule_list filter_list, implied_filter_list, daemon_filter_list;
 +extern filter_rule *last_hit_filter_rule;
  
  #ifdef ICONV_OPTION
  extern int filesfrom_convert;
-@@ -1244,7 +1245,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1257,7 +1258,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
        } else if (readlink_stat(thisname, &st, linkname) != 0) {
                int save_errno = errno;
                /* See if file is excluded before reporting an error. */
@@ -277,7 +278,7 @@ diff --git a/flist.c b/flist.c
                 && (is_excluded(thisname, 0, filter_level)
                  || is_excluded(thisname, 1, filter_level))) {
                        if (ignore_perishable && save_errno != ENOENT)
-@@ -1289,6 +1290,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1302,6 +1303,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
  
        if (filter_level == NO_FILTERS)
                goto skip_filters;
@@ -290,7 +291,7 @@ diff --git a/flist.c b/flist.c
  
        if (S_ISDIR(st.st_mode)) {
                if (!xfer_dirs) {
-@@ -1521,12 +1528,23 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
+@@ -1534,12 +1541,23 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
                                          int flags, int filter_level)
  {
        struct file_struct *file;
@@ -315,7 +316,7 @@ diff --git a/flist.c b/flist.c
                file->mode = tweak_mode(file->mode, chmod_modes);
  
        if (f >= 0) {
-@@ -2428,7 +2446,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2441,7 +2459,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,
@@ -324,7 +325,7 @@ diff --git a/flist.c b/flist.c
                        if (!file)
                                continue;
                        if (inc_recurse) {
-@@ -2442,7 +2460,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2455,7 +2473,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        } else
                                send_if_directory(f, flist, file, fbuf, len, flags);
                } else
@@ -336,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
-@@ -1417,7 +1417,9 @@ your home directory (remove the '=' for that).
+@@ -1441,7 +1441,9 @@ option name from the pathname using a space if you want the shell to expand it.
      >     --chmod=D2775,F664
  
      It is also legal to specify multiple `--chmod` options, as each additional
@@ -347,7 +348,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.
-@@ -2847,6 +2849,10 @@ your home directory (remove the '=' for that).
+@@ -2900,6 +2902,10 @@ option name from the pathname using a space if you want the shell to expand it.
      avoid a complaint about wildcard characters, but a modern rsync handles
      this automatically.
  
@@ -358,7 +359,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
-@@ -3910,6 +3916,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
+@@ -4052,6 +4058,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.
@@ -374,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
-@@ -3967,6 +3982,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
+@@ -4109,6 +4124,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`).
  
@@ -400,7 +401,7 @@ diff --git a/rsync.h b/rsync.h
  
  #define XFLG_FATAL_ERRORS     (1<<0)
  #define XFLG_OLD_PREFIXES     (1<<1)
-@@ -984,6 +987,8 @@ struct map_struct {
+@@ -987,6 +990,8 @@ struct map_struct {
        int status;             /* first errno from read errors         */
  };
  
@@ -409,7 +410,7 @@ diff --git a/rsync.h b/rsync.h
  #define NAME_IS_FILE          (0)    /* filter name as a file */
  #define NAME_IS_DIR           (1<<0) /* filter name as a dir */
  #define NAME_IS_XATTR         (1<<2) /* filter name as an xattr */
-@@ -1009,8 +1014,18 @@ struct map_struct {
+@@ -1012,8 +1017,18 @@ struct map_struct {
  #define FILTRULE_CLEAR_LIST   (1<<18)/* this item is the "!" token */
  #define FILTRULE_PERISHABLE   (1<<19)/* perishable if parent dir goes away */
  #define FILTRULE_XATTR                (1<<20)/* rule only applies to xattr names */
@@ -428,7 +429,7 @@ diff --git a/rsync.h b/rsync.h
  
  typedef struct filter_struct {
        struct filter_struct *next;
-@@ -1020,6 +1035,11 @@ typedef struct filter_struct {
+@@ -1023,6 +1038,11 @@ typedef struct filter_struct {
                int slash_cnt;
                struct filter_list_struct *mergelist;
        } u;
index 9df36097b04f6cbbf12a5369e22adc84c0df0045..38f0d356c808582cb25723db28e656cf31338a52 100644 (file)
@@ -12,11 +12,11 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
-@@ -687,16 +687,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
+@@ -814,16 +814,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
                if (litmatch_array(pattern, strings, slash_handling))
                        return ret_match;
        } else if (anchored_match) {
@@ -48,7 +48,7 @@ diff --git a/flist.c b/flist.c
  extern int ignore_errors;
  extern int numeric_ids;
  extern int quiet;
-@@ -2623,7 +2624,8 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2636,7 +2637,8 @@ struct file_list *recv_file_list(int f, int dir_ndx)
                                cur_dir++;
                        if (cur_dir != good_dirname) {
                                const char *d = dir_ndx >= 0 ? f_name(dir_flist->files[dir_ndx], NULL) : empty_dir;
@@ -58,7 +58,7 @@ diff --git a/flist.c b/flist.c
                                        rprintf(FERROR,
                                                "ABORTING due to invalid path from sender: %s/%s\n",
                                                cur_dir, file->basename);
-@@ -3190,6 +3192,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3203,6 +3205,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
  {
        int dif;
        const uchar *c1, *c2;
@@ -66,7 +66,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;
-@@ -3300,7 +3303,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3313,7 +3316,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
                        if (type1 != type2)
                                return type1 == t_PATH ? 1 : -1;
                }
@@ -244,7 +244,7 @@ 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
-@@ -447,6 +447,7 @@ has its own detailed description later in this manpage.
+@@ -465,6 +465,7 @@ has its own detailed description later in this manpage.
  --old-args               disable the modern arg-protection idiom
  --protect-args, -s       no space-splitting; wildcard chars only
  --copy-as=USER[:GROUP]   specify user & optional group for the copy
@@ -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
-@@ -2395,6 +2396,12 @@ your home directory (remove the '=' for that).
+@@ -2448,6 +2449,12 @@ option name from the pathname using a space if you want the shell to expand it.
  
      >     sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
  
index 78895c9baeb462b84d32690fbbc73586322ae6b9..b115eb40ff992ab387692c772762af4cc447a8a6 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -78,7 +78,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -966,6 +966,31 @@ if test x"$enable_iconv" != x"no"; then
+@@ -967,6 +967,31 @@ if test x"$enable_iconv" != x"no"; then
        AC_DEFINE(UTF8_CHARSET, "UTF-8", [String to pass to iconv() for the UTF-8 charset.])
  fi
  
@@ -463,7 +463,7 @@ new file mode 100644
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -1574,7 +1574,7 @@ static int start_client(int argc, char *argv[])
+@@ -1579,7 +1579,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;
@@ -475,7 +475,7 @@ diff --git a/main.c b/main.c
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -532,6 +532,15 @@ enum delret {
+@@ -535,6 +535,15 @@ enum delret {
  #define iconv_t int
  #endif
  
index 136415b6a2fc74bff9ea0f511170e6c050af3df5..f0b81f2269eda7350b204aee374bcf7b16aefccd 100644 (file)
@@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -303,7 +303,7 @@ 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
-@@ -430,6 +430,7 @@ has its own detailed description later in this manpage.
+@@ -448,6 +448,7 @@ has its own detailed description later in this manpage.
  --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
@@ -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)
-@@ -2532,6 +2533,50 @@ your home directory (remove the '=' for that).
+@@ -2585,6 +2586,50 @@ option name from the pathname using a space if you want the shell to expand it.
      this bug by avoiding the `-o` option (or using `--no-o`) when sending to an
      old rsync.
  
@@ -387,7 +387,7 @@ diff --git a/rsync.c b/rsync.c
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -1447,7 +1447,8 @@ extern short info_levels[], debug_levels[];
+@@ -1450,7 +1450,8 @@ extern short info_levels[], debug_levels[];
  #define DEBUG_FUZZY (DEBUG_FLIST+1)
  #define DEBUG_GENR (DEBUG_FUZZY+1)
  #define DEBUG_HASH (DEBUG_GENR+1)
index d8d054a980b2384c7624d7840478cb1222b397f4..e909b8a757c6565a435b663e967db2cac311379a 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -88,7 +88,7 @@ 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
-@@ -383,6 +383,7 @@ has its own detailed description later in this manpage.
+@@ -401,6 +401,7 @@ has its own detailed description later in this manpage.
  --crtimes, -N            preserve create times (newness)
  --omit-dir-times, -O     omit directories from --times
  --omit-link-times, -J    omit symlinks from --times
@@ -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
-@@ -1549,6 +1550,11 @@ your home directory (remove the '=' for that).
+@@ -1573,6 +1574,11 @@ option name from the pathname using a space if you want the shell to expand it.
      This tells rsync to omit symlinks when it is preserving modification,
      access, and create times.
  
index 1a0e0e217837ba9f346b43aa6e2a7e9c60a5f38f..9f3a1762ab3043b57ca7b34ea713ece6d1b86cf6 100644 (file)
@@ -14,19 +14,19 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
-@@ -74,6 +74,7 @@ extern int sender_symlink_iconv;
- extern int output_needs_newline;
+@@ -75,6 +75,7 @@ extern int output_needs_newline;
  extern int sender_keeps_checksum;
+ extern int trust_sender_filter;
  extern int unsort_ndx;
 +extern unsigned long sleep_asec;
  extern uid_t our_uid;
  extern struct stats stats;
  extern char *filesfrom_host;
-@@ -1864,6 +1865,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -1877,6 +1878,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);
@@ -58,7 +58,7 @@ 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
-@@ -466,6 +466,7 @@ has its own detailed description later in this manpage.
+@@ -484,6 +484,7 @@ has its own detailed description later in this manpage.
  --early-input=FILE       use FILE for daemon's early exec input
  --list-only              list the files instead of copying them
  --bwlimit=RATE           limit socket I/O bandwidth
index dec27fc18c9a425619f737581e74263dcb925694..9a86f079031b628856cdff0d95d4326fd80aecf1 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -61,7 +61,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1034,6 +1034,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -1035,6 +1035,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
      AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
  fi
  
@@ -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
-@@ -1401,6 +1401,22 @@ static int start_client(int argc, char *argv[])
+@@ -1403,6 +1403,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);
@@ -153,7 +153,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 +
 +See the following section for even more usage details.
  
- ## ADVANCED USAGE
+ ## SORTED TRANSFER ORDER
  
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
index fe93cd14438cd4c46cb6cc5cd2ecc7c194d98ac9..18c05d82bdfc6aea6439250386d1c14915fad40f 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 13011c3bcf879855ed68ea25e555fb7ba937c6b6..a3d3313cf288704a048204085cbb150f7f8b8375 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -41,7 +41,7 @@ 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
-@@ -397,6 +397,7 @@ has its own detailed description later in this manpage.
+@@ -415,6 +415,7 @@ has its own detailed description later in this manpage.
  --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)
@@ -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
-@@ -1783,6 +1784,17 @@ your home directory (remove the '=' for that).
+@@ -1805,6 +1806,17 @@ option name from the pathname using a space if you want the shell to expand it.
      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 b844d93f703420071396f78db4e95514e09337b0..f4ac8054fbb0776cf658e6cad90b9a9b2943fb93 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 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)
+@@ -190,7 +190,7 @@ int shell_exec(const char *cmd)
  }
  
  /* Wait for a process to exit, calling io_flush while waiting. */
@@ -283,7 +283,7 @@ diff --git a/receiver.c b/receiver.c
        progress_init();
  
        while (1) {
-@@ -870,6 +890,9 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -873,6 +893,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);
  
@@ -293,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);
  
-@@ -885,6 +908,16 @@ int recv_files(int f_in, int f_out, char *local_name)
+@@ -888,6 +911,16 @@ int recv_files(int f_in, int f_out, char *local_name)
                        exit_cleanup(RERR_FILEIO);
                }
  
@@ -313,7 +313,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
-@@ -424,6 +424,7 @@ has its own detailed description later in this manpage.
+@@ -442,6 +442,7 @@ has its own detailed description later in this manpage.
  --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
@@ -321,7 +321,7 @@ diff --git a/rsync.1.md b/rsync.1.md
  --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
-@@ -472,6 +473,8 @@ has its own detailed description later in this manpage.
+@@ -490,6 +491,8 @@ has its own detailed description later in this manpage.
  --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
@@ -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)
-@@ -3525,6 +3528,36 @@ your home directory (remove the '=' for that).
+@@ -3576,6 +3579,36 @@ option name from the pathname using a space if you want the shell to 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 4f3638970b1b414669c9ba5980ebe7dcfa477559..3c8c10555e4fb9352bfe9206689e434a102bc04a 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: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
@@ -74,7 +74,7 @@ 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 @@ has its own detailed description later in this manpage.
+@@ -404,6 +404,7 @@ has its own detailed description later in this manpage.
  --super                  receiver attempts super-user activities
  --fake-super             store/recover privileged attrs using xattrs
  --sparse, -S             turn sequences of nulls into sparse blocks
@@ -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)
-@@ -1623,6 +1624,18 @@ your home directory (remove the '=' for that).
+@@ -1647,6 +1648,18 @@ option name from the pathname using a space if you want the shell to 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 1d9132ae28a46399be19d3674c1c519f318e4e65..2c8fe786420ffd4142385ba52434650152739b2b 100644 (file)
@@ -10,11 +10,11 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
-@@ -78,6 +78,7 @@ extern uid_t our_uid;
+@@ -79,6 +79,7 @@ extern uid_t our_uid;
  extern struct stats stats;
  extern char *filesfrom_host;
  extern char *usermap, *groupmap;
@@ -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);
-@@ -2560,6 +2584,15 @@ struct file_list *recv_file_list(int f, int dir_ndx)
+@@ -2573,6 +2597,15 @@ struct file_list *recv_file_list(int f, int dir_ndx)
                        parse_name_map(usermap, True);
                if (groupmap)
                        parse_name_map(groupmap, False);
@@ -145,7 +145,7 @@ 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
-@@ -474,6 +474,7 @@ has its own detailed description later in this manpage.
+@@ -492,6 +492,7 @@ has its own detailed description later in this manpage.
  --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
@@ -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
-@@ -3567,6 +3568,25 @@ your home directory (remove the '=' for that).
+@@ -3618,6 +3619,25 @@ option name from the pathname using a space if you want the shell to expand it.
      free to specify just the local charset for a daemon transfer (e.g.
      `--iconv=utf8`).
  
index 0bcef1a7a46f03bfc1c9bb4834c36385d3f05d6b..b0bef668367ef77f9db1da004b5d7cef95048821 100644 (file)
@@ -6,7 +6,7 @@ To use this patch, run these commands for a successful build:
     patch -p1 <patches/xxh3-safety-check.diff
     make
 
-based-on: 0ac7ebceef70417355f25daf9e2fd94e84c49749
+based-on: 43f70b961e92d88387fecd3c7f6dbefc044ce4a3
 diff --git a/checksum.c b/checksum.c
 --- a/checksum.c
 +++ b/checksum.c