Updating patches.
authorWayne Davison <wayned@samba.org>
Fri, 1 May 2015 22:25:15 +0000 (15:25 -0700)
committerWayne Davison <wayned@samba.org>
Fri, 1 May 2015 22:31:11 +0000 (15:31 -0700)
38 files changed:
acls.diff
adaptec_acl_mods.diff
atimes.diff
backup-deleted.diff
backup-dir-dels.diff
catch_crash_signals.diff
checksum-reading.diff
checksum-xattr.diff
congestion.diff
copy-devices.diff
crtimes.diff
cvs-entries.diff
date-only.diff
db.diff
detect-renamed-lax.diff
detect-renamed.diff
direct-io.diff
downdate.diff
fileflags.diff
filter-attribute-mods.diff
fsync.diff
hfs-compression.diff
ignore-case.diff
kerberos.diff
link-by-hash.diff
nameconverter.diff
netgroup-auth.diff
omit-dir-changes.diff
slow-down.diff
slp.diff
soften-links.diff
source-backup.diff
source-filter_dest-filter.diff
sparse-block.diff
time-limit.diff
transliterate.diff
tru64.diff
write-devices.diff

index dfbf503e58f9e769c73a33707f802974b4d0688c..8d7378f3688cb6f38249001f748f72264c0db48d 100644 (file)
--- a/acls.diff
+++ b/acls.diff
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/acls.c b/acls.c
 --- a/acls.c
 +++ b/acls.c
index 64292b0da135fed285f66515facd2a92ba766ccf..10ac505be6e06a87a53eb9c9101af8bc6c45730d 100644 (file)
@@ -24,7 +24,7 @@ Todo:
 Fix a bug that could lose some bits when stripping some (supposedly)
 superfluous ACL info.
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/lib/sysacls.c b/lib/sysacls.c
 --- a/lib/sysacls.c
 +++ b/lib/sysacls.c
index 8eaff2e69474aaf17dcf6d43ad4b875111481915..e440ae4959d06a2d34bc84fbe3a5326241294117 100644 (file)
@@ -4,7 +4,7 @@ To use this patch, run these commands for a successful build:
     ./configure                      (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -182,12 +182,17 @@ diff --git a/generator.c b/generator.c
        }
  }
  
-@@ -2050,7 +2061,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2049,8 +2060,11 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+               if (need_retouch_dir_times) {
                        STRUCT_STAT st;
                        if (link_stat(fname, &st, 0) == 0
-                        && cmp_time(st.st_mtime, file->modtime) != 0)
+-                       && cmp_time(st.st_mtime, file->modtime) != 0)
 -                              set_modtime(fname, file->modtime, F_MOD_NSEC(file), file->mode);
-+                              set_times(fname, file->modtime, F_MOD_NSEC(file), file->modtime, file->mode);
++                       && cmp_time(st.st_mtime, file->modtime) != 0) {
++                              st.st_mtime = file->modtime;
++                              st.ST_MTIME_NSEC = F_MOD_NSEC(file);
++                              set_times(fname, &st);
++                      }
                }
                if (counter >= loopchk_limit) {
                        if (allowed_lull)
@@ -277,15 +282,7 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.c b/rsync.c
 --- a/rsync.c
 +++ b/rsync.c
-@@ -458,6 +458,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
-       int updated = 0;
-       stat_x sx2;
-       int change_uid, change_gid;
-+      time_t atime, mtime;
-       mode_t new_mode = file->mode;
-       int inherit;
-@@ -543,22 +544,40 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+@@ -543,26 +543,42 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
                set_xattr(fname, file, fnamecmp, sxp);
  #endif
  
@@ -298,23 +295,25 @@ diff --git a/rsync.c b/rsync.c
 +      if (!atimes_ndx || S_ISDIR(sxp->st.st_mode))
 +              flags |= ATTRS_SKIP_ATIME;
        if (!(flags & ATTRS_SKIP_MTIME)
-           && cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
+        && (sxp->st.st_mtime != file->modtime
+ #ifdef ST_MTIME_NSEC
+         || (NSEC_BUMP(file) && (uint32)sxp->st.ST_MTIME_NSEC != F_MOD_NSEC(file))
+ #endif
+         )) {
 -              int ret = set_modtime(fname, file->modtime, F_MOD_NSEC(file), sxp->st.st_mode);
-+              mtime = file->modtime;
++              sxp->st.st_mtime = file->modtime;
++              sxp->st.ST_MTIME_NSEC = F_MOD_NSEC(file);
 +              updated = 1;
-+      } else
-+              mtime = sxp->st.st_mtime;
++      }
 +      if (!(flags & ATTRS_SKIP_ATIME)) {
 +              time_t file_atime = f_atime(file);
 +              if (cmp_time(sxp->st.st_atime, file_atime) != 0) {
-+                      atime = file_atime;
++                      sxp->st.st_atime = file_atime;
 +                      updated = 1;
-+              } else
-+                      atime = sxp->st.st_atime;
++              }
 +      } else
-+              atime = sxp->st.st_atime;
 +      if (updated) {
-+              int ret = set_times(fname, mtime, F_MOD_NSEC(file), atime, sxp->st.st_mode);
++              int ret = set_times(fname, &sxp->st);
                if (ret < 0) {
                        rsyserr(FERROR_XFER, errno, "failed to set times on %s",
                                full_fname(fname));
@@ -330,7 +329,7 @@ diff --git a/rsync.c b/rsync.c
        }
  
  #ifdef SUPPORT_ACLS
-@@ -662,7 +681,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -666,7 +682,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
  
        /* Change permissions before putting the file into place. */
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
@@ -339,7 +338,7 @@ diff --git a/rsync.c b/rsync.c
  
        /* move tmp file over real file */
        if (DEBUG_GTE(RECV, 1))
-@@ -687,7 +706,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -691,7 +707,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
  
    do_set_file_attrs:
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
@@ -393,7 +392,7 @@ diff --git a/rsync.yo b/rsync.yo
   -O, --omit-dir-times        omit directories from --times
   -J, --omit-link-times       omit symlinks from --times
       --super                 receiver attempts super-user activities
-@@ -1173,6 +1174,12 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
+@@ -1178,6 +1179,12 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
  updated (though rsync's delta-transfer algorithm will make the update fairly efficient
  if the files haven't actually changed, you're much better off using bf(-t)).
  
@@ -406,7 +405,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(-O, --omit-dir-times)) This tells rsync to omit directories when
  it is preserving modification times (see bf(--times)).  If NFS is sharing
  the directories on the receiving side, it is a good idea to use bf(-O).
-@@ -2130,7 +2137,10 @@ quote(itemization(
+@@ -2135,7 +2142,10 @@ quote(itemization(
    sender's value (requires bf(--owner) and super-user privileges).
    it() A bf(g) means the group is different and is being updated to the
    sender's value (requires bf(--group) and the authority to set the group).
@@ -697,27 +696,28 @@ diff --git a/util.c b/util.c
  /* This returns 0 for success, 1 for a symlink if symlink time-setting
   * is not possible, or -1 for any other error. */
 -int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode)
-+int set_times(const char *fname, time_t modtime, uint32 mod_nsec, time_t atime, mode_t mode)
++int set_times(const char *fname, STRUCT_STAT *stp)
  {
        static int switch_step = 0;
  
        if (DEBUG_GTE(TIME, 1)) {
 -              rprintf(FINFO, "set modtime of %s to (%ld) %s",
+-                      fname, (long)modtime,
+-                      asctime(localtime(&modtime)));
 +              char mtimebuf[200];
 +
-+              strlcpy(mtimebuf, timestring(modtime), sizeof mtimebuf);
++              strlcpy(mtimebuf, timestring(stp->st_mtime), sizeof mtimebuf);
 +              rprintf(FINFO,
 +                      "set modtime, atime of %s to (%ld) %s, (%ld) %s\n",
-                       fname, (long)modtime,
--                      asctime(localtime(&modtime)));
-+                      mtimebuf, (long)atime, timestring(atime));
++                      fname, (long)stp->st_mtime,
++                      mtimebuf, (long)stp->st_atime, timestring(stp->st_atime));
        }
  
        switch (switch_step) {
  #ifdef HAVE_UTIMENSAT
  #include "case_N.h"
 -              if (do_utimensat(fname, modtime, mod_nsec) == 0)
-+              if (do_utimensat(fname, modtime, mod_nsec, atime, 0) == 0)
++              if (do_utimensat(fname, stp->st_mtime, stp->ST_MTIME_NSEC, stp->st_atime, 0) == 0)
                        break;
                if (errno != ENOSYS)
                        return -1;
@@ -726,20 +726,28 @@ diff --git a/util.c b/util.c
  #ifdef HAVE_LUTIMES
  #include "case_N.h"
 -              if (do_lutimes(fname, modtime, mod_nsec) == 0)
-+              if (do_lutimes(fname, modtime, mod_nsec, atime, 0) == 0)
++              if (do_lutimes(fname, stp->st_mtime, stp->ST_MTIME_NSEC, stp->st_atime, 0) == 0)
                        break;
                if (errno != ENOSYS)
                        return -1;
-@@ -159,10 +163,10 @@ int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode)
+@@ -152,17 +156,17 @@ int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode)
+               switch_step++;
+               if (preserve_times & PRESERVE_LINK_TIMES) {
+                       preserve_times &= ~PRESERVE_LINK_TIMES;
+-                      if (S_ISLNK(mode))
++                      if (S_ISLNK(stp->st_mode))
+                               return 1;
+               }
+               /* FALLTHROUGH */
  
  #include "case_N.h"
  #ifdef HAVE_UTIMES
 -              if (do_utimes(fname, modtime, mod_nsec) == 0)
-+              if (do_utimes(fname, modtime, mod_nsec, atime, 0) == 0)
++              if (do_utimes(fname, stp->st_mtime, stp->ST_MTIME_NSEC, stp->st_atime, 0) == 0)
                        break;
  #else
 -              if (do_utime(fname, modtime, mod_nsec) == 0)
-+              if (do_utime(fname, modtime, mod_nsec, atime, 0) == 0)
++              if (do_utime(fname, stp->st_mtime, stp->ST_MTIME_NSEC, stp->st_atime, 0) == 0)
                        break;
  #endif
  
index 884e7a57a3e27f3906eb5b831ad35cdd88b04fd7..da24ba56089f0ac42bc160a29e52317b711ca967 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 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
    {"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 },
-@@ -2596,6 +2598,10 @@ void server_options(char **args, int *argc_p)
+@@ -2599,6 +2601,10 @@ void server_options(char **args, int *argc_p)
        }
  
        if (am_sender) {
@@ -94,7 +94,7 @@ diff --git a/receiver.c b/receiver.c
 diff --git a/rsync.c b/rsync.c
 --- a/rsync.c
 +++ b/rsync.c
-@@ -652,7 +652,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -656,7 +656,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
                goto do_set_file_attrs;
        }
  
index e798864fe0757f71977000d28f462df53d2eaa87..8a6cfd47601b57fefacf9697bdd8e31ad82851d6 100644 (file)
@@ -322,7 +322,7 @@ diff --git a/options.c b/options.c
  
        if (preserve_times) {
                preserve_times = PRESERVE_FILE_TIMES;
-@@ -2588,6 +2650,10 @@ void server_options(char **args, int *argc_p)
+@@ -2591,6 +2653,10 @@ void server_options(char **args, int *argc_p)
                args[ac++] = "--backup-dir";
                args[ac++] = backup_dir;
        }
@@ -333,7 +333,7 @@ diff --git a/options.c b/options.c
  
        /* Only send --suffix if it specifies a non-default value. */
        if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) {
-@@ -2596,7 +2662,14 @@ void server_options(char **args, int *argc_p)
+@@ -2599,7 +2665,14 @@ void server_options(char **args, int *argc_p)
                        goto oom;
                args[ac++] = arg;
        }
index 974baab32b3d434199d8ed8fe4565c69dea017a6..5b0cca9fe9944cbd60155cc7495a75ddb379f3b6 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/errcode.h b/errcode.h
 --- a/errcode.h
 +++ b/errcode.h
index c0d786e2e41ec28fdbe8b838591a5e9c3bea241f..3c2dc379795e4243b44914fd890ceab8253eec09 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -405,7 +405,7 @@ diff --git a/flist.c b/flist.c
  
        if (unsort_ndx)
                F_NDX(file) = stats.num_dirs;
-@@ -2566,7 +2830,7 @@ struct file_list *recv_file_list(int f)
+@@ -2584,7 +2848,7 @@ struct file_list *recv_file_list(int f, int dir_ndx)
        /* The --relative option sends paths with a leading slash, so we need
         * to specify the strip_root option here.  We rejected leading slashes
         * for a non-relative transfer in recv_file_entry(). */
@@ -414,7 +414,7 @@ diff --git a/flist.c b/flist.c
  
        if (protocol_version < 30) {
                /* Recv the io_error flag */
-@@ -2789,7 +3053,7 @@ void flist_free(struct file_list *flist)
+@@ -2807,7 +3071,7 @@ void flist_free(struct file_list *flist)
  
  /* This routine ensures we don't have any duplicate names in our file list.
   * duplicate names can cause corruption because of the pipelining. */
@@ -423,7 +423,7 @@ diff --git a/flist.c b/flist.c
  {
        char fbuf[MAXPATHLEN];
        int i, prev_i;
-@@ -2840,7 +3104,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2858,7 +3122,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
                        /* If one is a dir and the other is not, we want to
                         * keep the dir because it might have contents in the
                         * list.  Otherwise keep the first one. */
@@ -432,7 +432,7 @@ diff --git a/flist.c b/flist.c
                                struct file_struct *fp = flist->sorted[j];
                                if (!S_ISDIR(fp->mode))
                                        keep = i, drop = j;
-@@ -2856,8 +3120,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2874,8 +3138,8 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
                        } else
                                keep = j, drop = i;
  
@@ -443,7 +443,7 @@ diff --git a/flist.c b/flist.c
                                        rprintf(FINFO,
                                            "removing duplicate name %s from file list (%d)\n",
                                            f_name(file, fbuf), drop + flist->ndx_start);
-@@ -2879,7 +3143,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
+@@ -2897,7 +3161,7 @@ static void flist_sort_and_clean(struct file_list *flist, int strip_root)
        }
        flist->high = prev_i;
  
index 35e510e6df8f89951c6abd076dd45403f0132d87..b839a6419c0c951a5f1aff20c44ed0f8ae6af71e 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 6971c0476154e0958b09cd4a964986e02dc24df9..0b5b7aacc90501fbd0e3723f839ec47ce33f77e6 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/loadparm.c b/loadparm.c
 --- a/loadparm.c
 +++ b/loadparm.c
index b2d8db3c609355ed8984b1b14f2c8d3b42370231..83c2b0d6018c6bab46092e8842ada08ddc76ee9f 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                      (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -56,7 +56,7 @@ diff --git a/options.c b/options.c
    {"specials",         0,  POPT_ARG_VAL,    &preserve_specials, 1, 0, 0 },
    {"no-specials",      0,  POPT_ARG_VAL,    &preserve_specials, 0, 0, 0 },
    {"links",           'l', POPT_ARG_VAL,    &preserve_links, 1, 0, 0 },
-@@ -2760,6 +2763,9 @@ void server_options(char **args, int *argc_p)
+@@ -2763,6 +2766,9 @@ void server_options(char **args, int *argc_p)
        else if (remove_source_files)
                args[ac++] = "--remove-sent-files";
  
index 1b7e7a20d825796076a6bc91e71d906cc806c500..dcf62e2b11a8f7c8274604b0cb651563e8162c3b 100644 (file)
@@ -329,9 +329,9 @@ diff --git a/rsync.c b/rsync.c
 +      if (sxp->st.st_ino == 2 && S_ISDIR(sxp->st.st_mode))
 +              flags |= ATTRS_SKIP_CRTIME;
        if (!(flags & ATTRS_SKIP_MTIME)
-           && cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
-               int ret = set_modtime(fname, file->modtime, F_MOD_NSEC(file), sxp->st.st_mode, ST_FLAGS(sxp->st));
-@@ -594,6 +597,14 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+        && (sxp->st.st_mtime != file->modtime
+ #ifdef ST_MTIME_NSEC
+@@ -598,6 +601,14 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
                else
                        file->flags |= FLAG_TIME_FAILED;
        }
@@ -346,7 +346,7 @@ diff --git a/rsync.c b/rsync.c
  
  #ifdef SUPPORT_ACLS
        /* It's OK to call set_acl() now, even for a dir, as the generator
-@@ -710,7 +721,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -714,7 +725,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
        /* Change permissions before putting the file into place. */
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
                       ATTRS_DELAY_IMMUTABLE
@@ -355,7 +355,7 @@ diff --git a/rsync.c b/rsync.c
  
        /* move tmp file over real file */
        if (DEBUG_GTE(RECV, 1))
-@@ -739,7 +750,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -743,7 +754,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
  
    do_set_file_attrs:
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
@@ -429,7 +429,7 @@ diff --git a/rsync.yo b/rsync.yo
   -O, --omit-dir-times        omit directories from --times
   -J, --omit-link-times       omit symlinks from --times
       --super                 receiver attempts super-user activities
-@@ -1201,6 +1202,9 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
+@@ -1206,6 +1207,9 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
  updated (though rsync's delta-transfer algorithm will make the update fairly efficient
  if the files haven't actually changed, you're much better off using bf(-t)).
  
@@ -439,7 +439,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(-O, --omit-dir-times)) This tells rsync to omit directories when
  it is preserving modification times (see bf(--times)).  If NFS is sharing
  the directories on the receiving side, it is a good idea to use bf(-O).
-@@ -2103,7 +2107,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -2108,7 +2112,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -448,7 +448,7 @@ diff --git a/rsync.yo b/rsync.yo
  type of update being done, bf(X) is replaced by the file-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -2162,6 +2166,8 @@ quote(itemization(
+@@ -2167,6 +2171,8 @@ quote(itemization(
    it() The bf(f) means that the fileflags information changed.
    it() The bf(a) means that the ACL information changed.
    it() The bf(x) means that the extended attribute information changed.
index e9df0f41313ae6e46f4ee85debaea6c3d840e2da..941cdb7f8ab5c55d9eb648a3f22a433d92021003 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
index 55a048b14c45a990062b6c353434cb4d75e1122f..758a59826134ed05b326633f591b41ffe52d3a89 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -63,7 +63,7 @@ diff --git a/options.c b/options.c
    {"one-file-system", 'x', POPT_ARG_NONE,   0, 'x', 0, 0 },
    {"no-one-file-system",0, POPT_ARG_VAL,    &one_file_system, 0, 0, 0 },
    {"no-x",             0,  POPT_ARG_VAL,    &one_file_system, 0, 0, 0 },
-@@ -2647,6 +2650,9 @@ void server_options(char **args, int *argc_p)
+@@ -2650,6 +2653,9 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
diff --git a/db.diff b/db.diff
index b44898fad9e6db9123c1c2e84a3876fea37587e9..d7e0cd3b2fed8c17bcc7124c612c849d965ac5bd 100644 (file)
--- a/db.diff
+++ b/db.diff
@@ -21,11 +21,11 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 6fe798392bdbdeb34d01b15de7f0123df3bbe850
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/.gitignore b/.gitignore
 --- a/.gitignore
 +++ b/.gitignore
-@@ -15,6 +15,7 @@ config.status
+@@ -16,6 +16,7 @@ aclocal.m4
  /proto.h
  /proto.h-tstamp
  /rsync.1
@@ -33,7 +33,7 @@ diff --git a/.gitignore b/.gitignore
  /rsyncd.conf.5
  /autom4te*.cache
  /confdefs.h
-@@ -23,6 +24,7 @@ config.status
+@@ -24,6 +25,7 @@ aclocal.m4
  /getgroups
  /gmon.out
  /rsync
@@ -52,16 +52,16 @@ diff --git a/Makefile.in b/Makefile.in
  mandir=@mandir@
  
  LIBS=@LIBS@
-@@ -28,7 +29,7 @@ VERSION=@RSYNC_VERSION@
+@@ -29,7 +30,7 @@ VERSION=@RSYNC_VERSION@
  .SUFFIXES:
  .SUFFIXES: .c .o
  
--GENFILES=configure.sh config.h.in proto.h proto.h-tstamp rsync.1 rsyncd.conf.5
-+GENFILES=configure.sh config.h.in proto.h proto.h-tstamp rsync.1 rsyncdb.1 rsyncd.conf.5
+-GENFILES=configure.sh aclocal.m4 config.h.in proto.h proto.h-tstamp rsync.1 rsyncd.conf.5
++GENFILES=configure.sh aclocal.m4 config.h.in proto.h proto.h-tstamp rsync.1 rsyncdb.1 rsyncd.conf.5
  HEADERS=byteorder.h config.h errcode.h proto.h rsync.h ifuncs.h itypes.h inums.h \
        lib/pool_alloc.h
  LIBOBJ=lib/wildmatch.o lib/compat.o lib/snprintf.o lib/mdfour.o lib/md5.o \
-@@ -38,7 +39,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
+@@ -39,7 +40,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
  OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
@@ -70,7 +70,7 @@ diff --git a/Makefile.in b/Makefile.in
  OBJS3=progress.o pipe.o
  DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
-@@ -62,14 +63,17 @@ CHECK_OBJS=tls.o testrun.o getgroups.o getfsdev.o t_stub.o t_unsafe.o trimslash.
+@@ -63,14 +64,17 @@ CHECK_OBJS=tls.o testrun.o getgroups.o getfsdev.o t_stub.o t_unsafe.o trimslash.
        $(CC) -I. -I$(srcdir) $(CFLAGS) $(CPPFLAGS) -c $< @CC_SHOBJ_FLAG@
  @OBJ_RESTORE@
  
@@ -90,7 +90,7 @@ diff --git a/Makefile.in b/Makefile.in
        if test -f rsyncd.conf.5; then ${INSTALLMAN} -m 644 rsyncd.conf.5 ${DESTDIR}${mandir}/man5; fi
  
  install-ssl-client: rsync-ssl stunnel-rsync
-@@ -92,6 +96,9 @@ install-strip:
+@@ -93,6 +97,9 @@ install-strip:
  rsync$(EXEEXT): $(OBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
  
@@ -100,7 +100,7 @@ diff --git a/Makefile.in b/Makefile.in
  $(OBJS): $(HEADERS)
  $(CHECK_OBJS): $(HEADERS)
  
-@@ -208,22 +215,27 @@ proto.h: proto.h-tstamp
+@@ -212,22 +219,27 @@ proto.h: proto.h-tstamp
  proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
        perl $(srcdir)/mkproto.pl $(srcdir)/*.c $(srcdir)/lib/compat.c
  
@@ -164,7 +164,7 @@ diff --git a/checksum.c b/checksum.c
 diff --git a/cleanup.c b/cleanup.c
 --- a/cleanup.c
 +++ b/cleanup.c
-@@ -26,6 +26,7 @@ extern int am_server;
+@@ -27,6 +27,7 @@ extern int am_server;
  extern int am_daemon;
  extern int am_receiver;
  extern int io_error;
@@ -172,7 +172,7 @@ diff --git a/cleanup.c b/cleanup.c
  extern int keep_partial;
  extern int got_xfer_error;
  extern int protocol_version;
-@@ -141,6 +142,12 @@ NORETURN void _exit_cleanup(int code, const char *file, int line)
+@@ -142,6 +143,12 @@ NORETURN void _exit_cleanup(int code, const char *file, int line)
  #include "case_N.h"
                switch_step++;
  
@@ -228,7 +228,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -345,6 +345,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
+@@ -351,6 +351,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
      unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \
      sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \
      sys/un.h sys/attr.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \
@@ -236,7 +236,7 @@ diff --git a/configure.ac b/configure.ac
      netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h \
      sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h \
      popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netinet/ip.h \
-@@ -1100,6 +1101,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
+@@ -1103,6 +1104,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
      fi
  fi
  
@@ -2905,7 +2905,7 @@ diff --git a/rsync.c b/rsync.c
  extern int am_starting_up;
  extern int allow_8bit_chars;
  extern int protocol_version;
-@@ -738,6 +739,8 @@ struct file_list *flist_for_ndx(int ndx, const char *fatal_error_loc)
+@@ -742,6 +743,8 @@ struct file_list *flist_for_ndx(int ndx, const char *fatal_error_loc)
  
  const char *who_am_i(void)
  {
index d908e62dac49cd2ced5861246c60fc2b72564d33..803f9876994b1c80f94a07fd1ed584b876c58102 100644 (file)
@@ -80,7 +80,7 @@ diff --git a/options.c b/options.c
    {"fuzzy",           'y', POPT_ARG_NONE,   0, 'y', 0, 0 },
    {"no-fuzzy",         0,  POPT_ARG_VAL,    &fuzzy_basis, 0, 0, 0 },
    {"no-y",             0,  POPT_ARG_VAL,    &fuzzy_basis, 0, 0, 0 },
-@@ -2634,8 +2638,14 @@ void server_options(char **args, int *argc_p)
+@@ -2637,8 +2641,14 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -109,7 +109,7 @@ diff --git a/rsync.yo b/rsync.yo
       --compare-dest=DIR      also compare received files relative to DIR
       --copy-dest=DIR         ... and include copies of unchanged files
       --link-dest=DIR         hardlink to files in DIR when unchanged
-@@ -1809,6 +1811,17 @@ the bf(--partial-dir) option, that directory will be used instead.  These
+@@ -1814,6 +1816,17 @@ the bf(--partial-dir) option, that directory will be used instead.  These
  potential alternate-basis files will be removed as the transfer progresses.
  This option conflicts with bf(--inplace) and bf(--append).
  
index 4d452bd82a82133197edff9b1cd8c4be3b6f30c2..262a250f78bc8ed24eeeefa04f9b536377367d89 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -183,7 +183,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);
  
-@@ -2568,6 +2610,25 @@ struct file_list *recv_file_list(int f)
+@@ -2586,6 +2628,25 @@ struct file_list *recv_file_list(int f, int dir_ndx)
         * for a non-relative transfer in recv_file_entry(). */
        flist_sort_and_clean(flist, relative_paths);
  
@@ -630,7 +630,7 @@ diff --git a/options.c b/options.c
                                 delay_updates ? "delay-updates" : "partial-dir");
                        return 0;
                }
-@@ -2630,6 +2634,8 @@ void server_options(char **args, int *argc_p)
+@@ -2633,6 +2637,8 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--super";
                if (size_only)
                        args[ac++] = "--size-only";
@@ -682,7 +682,7 @@ diff --git a/rsync.yo b/rsync.yo
       --compare-dest=DIR      also compare received files relative to DIR
       --copy-dest=DIR         ... and include copies of unchanged files
       --link-dest=DIR         hardlink to files in DIR when unchanged
-@@ -1793,6 +1794,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
+@@ -1798,6 +1799,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
  fuzzy-match files, so either use bf(--delete-after) or specify some
  filename exclusions if you need to prevent this.
  
index 1d10e11e1c92e57336774b65752035ce17e55fe5..96d971d1ed5b3eeec6e98585ebf2bf6f3a3e3139 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -50,7 +50,7 @@ diff --git a/rsync.yo b/rsync.yo
   -m, --prune-empty-dirs      prune empty directory chains from file-list
       --numeric-ids           don't map uid/gid values by user/group name
       --usermap=STRING        custom username mapping
-@@ -2362,6 +2363,14 @@ See also the "atomic-rsync" perl script in the "support" subdir for an
+@@ -2367,6 +2368,14 @@ See also the "atomic-rsync" perl script in the "support" subdir for an
  update algorithm that is even more atomic (it uses bf(--link-dest) and a
  parallel hierarchy of files).
  
index a297c7be222671758679b21389a29c1df3cc3e0a..52a7d06c6d82ae9a0609280f1bce77bdee57283e 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
index cec7418770ae6358cdbda813b5f8da286231c0a0..3771bfc7dfa126d306e7f397b65b463487c2381b 100644 (file)
@@ -8,11 +8,11 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -45,7 +45,7 @@ popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
+@@ -46,7 +46,7 @@ popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
        popt/popthelp.o popt/poptparse.o
  OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
  
@@ -21,7 +21,7 @@ diff --git a/Makefile.in b/Makefile.in
  
  # Programs we must have to run the test cases
  CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) getfsdev$(EXEEXT) \
-@@ -127,7 +127,7 @@ getgroups$(EXEEXT): getgroups.o
+@@ -128,7 +128,7 @@ getgroups$(EXEEXT): getgroups.o
  getfsdev$(EXEEXT): getfsdev.o
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ getfsdev.o $(LIBS)
  
@@ -66,7 +66,7 @@ diff --git a/compat.c b/compat.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -597,6 +597,7 @@ AC_FUNC_UTIME_NULL
+@@ -600,6 +600,7 @@ AC_FUNC_UTIME_NULL
  AC_FUNC_ALLOCA
  AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
      fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
@@ -470,7 +470,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 },
-@@ -2537,6 +2563,9 @@ void server_options(char **args, int *argc_p)
+@@ -2540,6 +2566,9 @@ void server_options(char **args, int *argc_p)
        if (xfer_dirs && !recurse && delete_mode && am_sender)
                args[ac++] = "--no-r";
  
@@ -480,7 +480,7 @@ diff --git a/options.c b/options.c
        if (do_compression && def_compress_level != Z_DEFAULT_COMPRESSION) {
                if (asprintf(&arg, "--compress-level=%d", def_compress_level) < 0)
                        goto oom;
-@@ -2624,6 +2653,16 @@ void server_options(char **args, int *argc_p)
+@@ -2627,6 +2656,16 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--delete-excluded";
                if (force_delete)
                        args[ac++] = "--force";
@@ -557,16 +557,16 @@ diff --git a/rsync.c b/rsync.c
                                /* We shouldn't have attempted to change uid
                                 * or gid unless have the privilege. */
                                rsyserr(FERROR_XFER, errno, "%s %s failed",
-@@ -549,7 +583,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
-               flags |= ATTRS_SKIP_MTIME;
-       if (!(flags & ATTRS_SKIP_MTIME)
-           && cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
+@@ -553,7 +587,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+         || (NSEC_BUMP(file) && (uint32)sxp->st.ST_MTIME_NSEC != F_MOD_NSEC(file))
+ #endif
+         )) {
 -              int ret = set_modtime(fname, file->modtime, F_MOD_NSEC(file), sxp->st.st_mode);
 +              int ret = set_modtime(fname, file->modtime, F_MOD_NSEC(file), sxp->st.st_mode, ST_FLAGS(sxp->st));
                if (ret < 0) {
                        rsyserr(FERROR_XFER, errno, "failed to set times on %s",
                                full_fname(fname));
-@@ -576,7 +610,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+@@ -580,7 +614,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
  
  #ifdef HAVE_CHMOD
        if (!BITS_EQUAL(sxp->st.st_mode, new_mode, CHMOD_BITS)) {
@@ -575,7 +575,7 @@ diff --git a/rsync.c b/rsync.c
                if (ret < 0) {
                        rsyserr(FERROR_XFER, errno,
                                "failed to set permissions on %s",
-@@ -588,6 +622,19 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+@@ -592,6 +626,19 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
        }
  #endif
  
@@ -595,7 +595,7 @@ diff --git a/rsync.c b/rsync.c
        if (INFO_GTE(NAME, 2) && flags & ATTRS_REPORT) {
                if (updated)
                        rprintf(FCLIENT, "%s\n", fname);
-@@ -662,7 +709,8 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -666,7 +713,8 @@ int finish_transfer(const char *fname, const char *fnametmp,
  
        /* Change permissions before putting the file into place. */
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
@@ -605,7 +605,7 @@ diff --git a/rsync.c b/rsync.c
  
        /* move tmp file over real file */
        if (DEBUG_GTE(RECV, 1))
-@@ -679,6 +727,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -683,6 +731,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
        }
        if (ret == 0) {
                /* The file was moved into place (not copied), so it's done. */
@@ -725,7 +725,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  dit(--no-OPTION) You may turn off one or more implied options by prefixing
  the option name with "no-".  Not all options may be prefixed with a "no-":
-@@ -943,7 +948,7 @@ they would be using bf(--copy-links).
+@@ -948,7 +953,7 @@ they would be using bf(--copy-links).
  Without this option, if the sending side has replaced a directory with a
  symlink to a directory, the receiving side will delete anything that is in
  the way of the new symlink, including a directory hierarchy (as long as
@@ -734,7 +734,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  See also bf(--keep-dirlinks) for an analogous option for the receiving
  side.
-@@ -1106,6 +1111,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
+@@ -1111,6 +1116,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
  used by bf(--fake-super)) unless you repeat the option (e.g. -XX).  This
  "copy all xattrs" mode cannot be used with bf(--fake-super).
  
@@ -764,7 +764,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(--chmod)) This option tells rsync to apply one or more
  comma-separated "chmod" modes to the permission of the files in the
  transfer.  The resulting value is treated as though it were the permissions
-@@ -1435,12 +1463,13 @@ display as a "*missing" entry in the bf(--list-only) output.
+@@ -1440,12 +1468,13 @@ display as a "*missing" entry in the bf(--list-only) output.
  dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
  even when there are I/O errors.
  
@@ -781,7 +781,7 @@ diff --git a/rsync.yo b/rsync.yo
  bf(--recursive) option was also enabled.
  
  dit(bf(--max-delete=NUM)) This tells rsync not to delete more than NUM
-@@ -2074,7 +2103,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -2079,7 +2108,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -790,7 +790,7 @@ diff --git a/rsync.yo b/rsync.yo
  type of update being done, bf(X) is replaced by the file-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -2130,7 +2159,7 @@ quote(itemization(
+@@ -2135,7 +2164,7 @@ quote(itemization(
    sender's value (requires bf(--owner) and super-user privileges).
    it() A bf(g) means the group is different and is being updated to the
    sender's value (requires bf(--group) and the authority to set the group).
index f47f2e73226ab9fb7d8c17b81625387b1504067d..bec6a523c94828cb53a14173d1fd26e1839ad08c 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -386,7 +386,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -1128,6 +1128,8 @@ quote(--chmod=D2775,F664)
+@@ -1133,6 +1133,8 @@ quote(--chmod=D2775,F664)
  
  It is also legal to specify multiple bf(--chmod) options, as each
  additional option is just appended to the list of changes to make.
@@ -395,7 +395,7 @@ diff --git a/rsync.yo b/rsync.yo
  
  See the bf(--perms) and bf(--executability) options for how the resulting
  permission value can be applied to the files in the transfer.
-@@ -2024,6 +2026,10 @@ be omitted, but if USER is empty, a leading colon must be supplied.
+@@ -2029,6 +2031,10 @@ be omitted, but if USER is empty, a leading colon must be supplied.
  If you specify "--chown=foo:bar, this is exactly the same as specifying
  "--usermap=*:foo --groupmap=*:bar", only easier.
  
@@ -406,7 +406,7 @@ diff --git a/rsync.yo b/rsync.yo
  dit(bf(--timeout=TIMEOUT)) This option allows you to set a maximum I/O
  timeout in seconds. If no data is transferred for the specified time
  then rsync will exit. The default is 0, which means no timeout.
-@@ -2883,6 +2889,15 @@ itemization(
+@@ -2888,6 +2894,15 @@ itemization(
    option's default rules that exclude things like "CVS" and "*.o" are
    marked as perishable, and will not prevent a directory that was removed
    on the source from being deleted on the destination.
@@ -422,7 +422,7 @@ diff --git a/rsync.yo b/rsync.yo
  )
  
  manpagesection(MERGE-FILE FILTER RULES)
-@@ -2944,6 +2959,12 @@ itemization(
+@@ -2949,6 +2964,12 @@ itemization(
    a rule prefix such as bf(hide)).
  )
  
index 13cbe2a0eed67dff1b2d67b89a664f54d5495c6f..6e2867d921843488bfe7ac4ff73d8affa68bc57c 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -35,7 +35,7 @@ diff --git a/options.c b/options.c
    {"rsh",             'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
    {"rsync-path",       0,  POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
    {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -2709,6 +2712,9 @@ void server_options(char **args, int *argc_p)
+@@ -2712,6 +2715,9 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = tmpdir;
                }
  
index 1ca904b06d1fe1957f775a38f7eae90de51b30c6..7be354124f72ca4c935b1b484f716e726471b3e4 100644 (file)
@@ -296,7 +296,7 @@ diff --git a/options.c b/options.c
        if (block_size > MAX_BLOCK_SIZE) {
                snprintf(err_buf, sizeof err_buf,
                         "--block-size=%lu is too large (max: %u)\n", block_size, MAX_BLOCK_SIZE);
-@@ -2573,6 +2593,11 @@ void server_options(char **args, int *argc_p)
+@@ -2576,6 +2596,11 @@ void server_options(char **args, int *argc_p)
        if (preserve_fileflags)
                args[ac++] = "--fileflags";
  
@@ -332,12 +332,12 @@ diff --git a/rsync.c b/rsync.c
                flags |= ATTRS_SKIP_CRTIME;
        if (!(flags & ATTRS_SKIP_MTIME)
 +#ifdef SUPPORT_HFS_COMPRESSION
-+          && !(sxp->st.st_flags & UF_COMPRESSED) /* setting this alters mtime, so defer to after set_fileflags */
++       && !(sxp->st.st_flags & UF_COMPRESSED) /* setting this alters mtime, so defer to after set_fileflags */
 +#endif
-           && cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
-               int ret = set_modtime(fname, file->modtime, F_MOD_NSEC(file), sxp->st.st_mode, ST_FLAGS(sxp->st));
-               if (ret < 0) {
-@@ -643,6 +652,16 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+        && (sxp->st.st_mtime != file->modtime
+ #ifdef ST_MTIME_NSEC
+         || (NSEC_BUMP(file) && (uint32)sxp->st.ST_MTIME_NSEC != F_MOD_NSEC(file))
+@@ -647,6 +656,16 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
                 && !set_fileflags(fname, fileflags))
                        goto cleanup;
                updated = 1;
@@ -387,7 +387,7 @@ diff --git a/rsync.yo b/rsync.yo
   -o, --owner                 preserve owner (super-user only)
   -g, --group                 preserve group
       --devices               preserve device files (super-user only)
-@@ -1135,6 +1137,42 @@ flags on files and directories that are being updated or deleted on the
+@@ -1140,6 +1142,42 @@ flags on files and directories that are being updated or deleted on the
  receiving side.  It does not try to affect user flags.  This option overrides
  bf(--force-change) and bf(--force-uchange).
  
index 518a68aa34eae6824f8be7c8094ba26800e7622d..32e892214c4f951decfd5af9961a60e4fbfee9d7 100644 (file)
@@ -12,7 +12,7 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -56,7 +56,7 @@ diff --git a/flist.c b/flist.c
  extern int ignore_errors;
  extern int numeric_ids;
  extern int recurse;
-@@ -3030,6 +3031,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3048,6 +3049,7 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
  {
        int dif;
        const uchar *c1, *c2;
@@ -64,7 +64,7 @@ diff --git a/flist.c b/flist.c
        enum fnc_state state1, state2;
        enum fnc_type type1, type2;
        enum fnc_type t_path = protocol_version >= 29 ? t_PATH : t_ITEM;
-@@ -3140,7 +3142,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
+@@ -3158,7 +3160,15 @@ int f_name_cmp(const struct file_struct *f1, const struct file_struct *f2)
                        if (type1 != type2)
                                return type1 == t_PATH ? 1 : -1;
                }
@@ -237,7 +237,7 @@ diff --git a/options.c b/options.c
    {"files-from",       0,  POPT_ARG_STRING, &files_from, 0, 0, 0 },
    {"from0",           '0', POPT_ARG_VAL,    &eol_nulls, 1, 0, 0},
    {"no-from0",         0,  POPT_ARG_VAL,    &eol_nulls, 0, 0, 0},
-@@ -2659,6 +2663,9 @@ void server_options(char **args, int *argc_p)
+@@ -2662,6 +2666,9 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -258,7 +258,7 @@ diff --git a/rsync.yo b/rsync.yo
       --address=ADDRESS       bind address for outgoing socket to daemon
       --port=PORT             specify double-colon alternate port number
       --sockopts=OPTIONS      specify custom TCP options
-@@ -1744,6 +1745,10 @@ default (with is overridden by both the environment and the command-line).
+@@ -1749,6 +1750,10 @@ default (with is overridden by both the environment and the command-line).
  This option will eventually become a new default setting at some
  as-yet-undetermined point in the future.
  
index e2b80a6ed9d7c5654d29658b04d711a185673f43..861716e30c9f8f53dd57d88b7a66358b42486eb4 100644 (file)
@@ -9,11 +9,11 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 962f8b90045ab331fc04c9e65f80f1a53e68243b
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -39,7 +39,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -40,7 +40,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
@@ -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
-@@ -675,6 +675,31 @@ if test x"$enable_iconv" != x"no"; then
+@@ -678,6 +678,31 @@ if test x"$enable_iconv" != x"no"; then
        AC_DEFINE(UTF8_CHARSET, "UTF-8", [String to pass to iconv() for the UTF-8 charset.])
  fi
  
index caff5f50678f507a4bf8dd241a5881fd46e86ba0..8a608c9c51880cbfbe58c004027ec321da90978d 100644 (file)
@@ -12,11 +12,11 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -39,7 +39,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -40,7 +40,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
        util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
@@ -336,7 +336,7 @@ diff --git a/options.c b/options.c
        }
        if (daemon_filter_list.head && !am_sender) {
                filter_rule_list *elp = &daemon_filter_list;
-@@ -2738,6 +2762,12 @@ void server_options(char **args, int *argc_p)
+@@ -2741,6 +2765,12 @@ void server_options(char **args, int *argc_p)
        } else if (inplace)
                args[ac++] = "--inplace";
  
@@ -360,7 +360,7 @@ diff --git a/rsync.c b/rsync.c
  extern struct file_list *cur_flist, *first_flist, *dir_flist;
  extern struct chmod_mode_struct *daemon_chmod_modes;
  #ifdef ICONV_OPTION
-@@ -679,6 +680,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -683,6 +684,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
        }
        if (ret == 0) {
                /* The file was moved into place (not copied), so it's done. */
@@ -395,7 +395,7 @@ diff --git a/rsync.yo b/rsync.yo
   -z, --compress              compress file data during the transfer
       --compress-level=NUM    explicitly set compression level
       --skip-compress=LIST    skip compressing files with suffix in LIST
-@@ -1874,6 +1875,48 @@ bf(--link-dest) from working properly for a non-super-user when bf(-o) was
+@@ -1879,6 +1880,48 @@ bf(--link-dest) from working properly for a non-super-user when bf(-o) was
  specified (or implied by bf(-a)).  You can work-around this bug by avoiding
  the bf(-o) option when sending to an old rsync.
  
index f808dd8aeeefbb83ebf65825729e78c8b6bc7698..7ee33f1d7d36de126f2a284ce8349402e143af6d 100644 (file)
@@ -20,7 +20,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/authenticate.c b/authenticate.c
 --- a/authenticate.c
 +++ b/authenticate.c
index 63b0fab3f6b4179217e08f15d6d0b44f20678c39..15df3baf573799513bba3d45a378ef2fd225c955 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/access.c b/access.c
 --- a/access.c
 +++ b/access.c
index 445c1fed1528c57b5d0a6ff4438ae31854751d0b..650c5ebfe1185a824ac063d9298c87521975731e 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -133,7 +133,7 @@ diff --git a/rsync.yo b/rsync.yo
       --super                 receiver attempts super-user activities
       --fake-super            store/recover privileged attrs using xattrs
   -S, --sparse                handle sparse files efficiently
-@@ -1192,6 +1193,10 @@ directories.
+@@ -1197,6 +1198,10 @@ directories.
  dit(bf(-J, --omit-link-times)) This tells rsync to omit symlinks when
  it is preserving modification times (see bf(--times)).
  
index ec16a4f864646dd500b96382c1c078ab01f5e333..8f73ab4490fbd6f765346dc3c46c095e1b2546a9 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 97d977cea9097b0a83076fe6b88ae89c6ece4032..5f2268039964f7b2725c2e9c726c920bb0cb0bc8 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -20,10 +20,10 @@ diff --git a/Makefile.in b/Makefile.in
  LDFLAGS=@LDFLAGS@
 +LIBSLP=@LIBSLP@
 +SLPOBJ=@SLPOBJ@
+ LIBOBJDIR=lib/
  
  INSTALLCMD=@INSTALL@
- INSTALLMAN=@INSTALL@
-@@ -40,7 +42,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -41,7 +43,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
  OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
        fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
  OBJS3=progress.o pipe.o
@@ -32,7 +32,7 @@ diff --git a/Makefile.in b/Makefile.in
  popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
        popt/popthelp.o popt/poptparse.o
  OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
-@@ -90,7 +92,7 @@ install-strip:
+@@ -91,7 +93,7 @@ install-strip:
        $(MAKE) INSTALL_STRIP='-s' install
  
  rsync$(EXEEXT): $(OBJS)
@@ -61,7 +61,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.ac b/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
-@@ -734,6 +734,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -737,6 +737,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
  
index 91268fc8fd5c65a24c6ab71cf9510c6b2a1b5141..895519af9a4b8a01c508b67f08e115525107526e 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index f2b6dfa3097500ee9082f1108f09a37d28203fd6..ecb2d42ee20d0a7c2ac48b6a477e5badf6c350e0 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
@@ -37,7 +37,7 @@ diff --git a/options.c b/options.c
    {"no-backup",        0,  POPT_ARG_VAL,    &make_backups, 0, 0, 0 },
    {"backup-dir",       0,  POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
    {"suffix",           0,  POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -2638,6 +2641,8 @@ void server_options(char **args, int *argc_p)
+@@ -2641,6 +2644,8 @@ void server_options(char **args, int *argc_p)
                                goto oom;
                        args[ac++] = arg;
                }
@@ -57,7 +57,7 @@ diff --git a/rsync.yo b/rsync.yo
       --del                   an alias for --delete-during
       --delete                delete extraneous files from dest dirs
       --delete-before         receiver deletes before xfer, not during
-@@ -1332,6 +1333,14 @@ bf(--exclude='*.new') for the rsync transfer).
+@@ -1337,6 +1338,14 @@ bf(--exclude='*.new') for the rsync transfer).
  Starting with 3.1.0, rsync will skip the sender-side removal (and output an
  error) if the file's size or modify time has not stayed unchanged.
  
index c750d2da1554dc8299c2786669dd1be14281dc05..a3727d44237deb022be92fa4cf75c41397e87c93 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -134,7 +134,7 @@ diff --git a/options.c b/options.c
        if (files_from) {
                char *h, *p;
                int q;
-@@ -2647,6 +2666,25 @@ void server_options(char **args, int *argc_p)
+@@ -2650,6 +2669,25 @@ void server_options(char **args, int *argc_p)
        else if (missing_args == 1 && !am_sender)
                args[ac++] = "--ignore-missing-args";
  
@@ -351,7 +351,7 @@ diff --git a/rsync.yo b/rsync.yo
       --protocol=NUM          force an older protocol version to be used
       --iconv=CONVERT_SPEC    request charset conversion of filenames
       --checksum-seed=NUM     set block/file checksum seed (advanced)
-@@ -2543,6 +2546,33 @@ file previously generated by bf(--write-batch).
+@@ -2548,6 +2551,33 @@ file previously generated by bf(--write-batch).
  If em(FILE) is bf(-), the batch data will be read from standard input.
  See the "BATCH MODE" section for details.
  
index 4c6b75c4b6e7b792268ecd9c8feab0273cba2417..45cd62eb41f5c842a94f74fcfc7a69535bf533a9 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
@@ -66,7 +66,7 @@ diff --git a/options.c b/options.c
    {"preallocate",      0,  POPT_ARG_NONE,   &preallocate_files, 0, 0, 0},
    {"inplace",          0,  POPT_ARG_VAL,    &inplace, 1, 0, 0 },
    {"no-inplace",       0,  POPT_ARG_VAL,    &inplace, 0, 0, 0 },
-@@ -2570,6 +2573,12 @@ void server_options(char **args, int *argc_p)
+@@ -2573,6 +2576,12 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -90,7 +90,7 @@ diff --git a/rsync.yo b/rsync.yo
       --preallocate           allocate dest files before writing
   -n, --dry-run               perform a trial run with no changes made
   -W, --whole-file            copy files whole (w/o delta-xfer algorithm)
-@@ -1248,6 +1249,15 @@ filesystem, but with this option rsync will probably copy more slowly.  If the
+@@ -1253,6 +1254,15 @@ filesystem, but with this option rsync will probably copy more slowly.  If the
  destination is not an extent-supporting filesystem (such as ext4, xfs, NTFS,
  etc.), this option may have no positive effect at all.
  
index 15c28dd7f0e73429fa72730c939587cb2baaeeb1..560accf9618113bb945a3321c15d5373a53259f4 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/io.c b/io.c
 --- a/io.c
 +++ b/io.c
@@ -116,7 +116,7 @@ diff --git a/options.c b/options.c
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -2582,6 +2618,15 @@ void server_options(char **args, int *argc_p)
+@@ -2585,6 +2621,15 @@ void server_options(char **args, int *argc_p)
                args[ac++] = arg;
        }
  
@@ -144,7 +144,7 @@ diff --git a/rsync.yo b/rsync.yo
       --write-batch=FILE      write a batched update to FILE
       --only-write-batch=FILE like --write-batch but w/o updating dest
       --read-batch=FILE       read a batched update from FILE
-@@ -2517,6 +2519,19 @@ files can show up as being rapidly sent when the data is quickly buffered,
+@@ -2522,6 +2524,19 @@ files can show up as being rapidly sent when the data is quickly buffered,
  while other can show up as very slow when the flushing of the output buffer
  occurs.  This may be fixed in a future version.
  
index 19d6393537903a1fb7d5581b8216b999fa82a450..0ba878eb407ebab000239aaba5c7d32e661f0731 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: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
@@ -69,7 +69,7 @@ diff --git a/flist.c b/flist.c
        if (*thisname
         && (clean_fname(thisname, CFN_REFUSE_DOT_DOT_DIRS) < 0 || (!relative_paths && *thisname == '/'))) {
                rprintf(FERROR, "ABORTING due to unsafe pathname from sender: %s\n", thisname);
-@@ -2451,6 +2475,15 @@ struct file_list *recv_file_list(int f)
+@@ -2452,6 +2476,15 @@ struct file_list *recv_file_list(int f, int dir_ndx)
                        parse_name_map(usermap, True);
                if (groupmap)
                        parse_name_map(groupmap, False);
@@ -137,7 +137,7 @@ diff --git a/options.c b/options.c
        am_starting_up = 0;
  
        return 1;
-@@ -2755,6 +2776,12 @@ void server_options(char **args, int *argc_p)
+@@ -2758,6 +2779,12 @@ void server_options(char **args, int *argc_p)
        if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
                args[ac++] = "--no-implied-dirs";
  
@@ -161,7 +161,7 @@ diff --git a/rsync.yo b/rsync.yo
       --checksum-seed=NUM     set block/file checksum seed (advanced)
   -4, --ipv4                  prefer IPv4
   -6, --ipv6                  prefer IPv6
-@@ -2581,6 +2582,22 @@ daemon uses the charset specified in its "charset" configuration parameter
+@@ -2586,6 +2587,22 @@ daemon uses the charset specified in its "charset" configuration parameter
  regardless of the remote charset you actually pass.  Thus, you may feel free to
  specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).
  
index 410432f27204715f62a68d2ae2c9386aeee1b532..8418ab8bd6ab7d2269458870add8da7856f838c8 100644 (file)
@@ -6,7 +6,7 @@ To use this patch, run these commands for a successful build:
     ./configure                          (optional if already run)
     make
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index aff513af790c348f14828c9fbe842ddb2ca90851..38a89666917430ec86408211cd5b82741269f953 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
 This patch has not yet been tested by me (Wayne), but was provided
 Darryl Dixon.  Thanks!
 
-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
+based-on: 2ac35b45071c7bfd8be6be41bfd45326f1f57bce
 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
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -2755,6 +2763,9 @@ void server_options(char **args, int *argc_p)
+@@ -2758,6 +2766,9 @@ void server_options(char **args, int *argc_p)
        if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
                args[ac++] = "--no-implied-dirs";