Fixed failing hunks.
authorWayne Davison <wayned@samba.org>
Sat, 27 Aug 2005 21:30:33 +0000 (21:30 +0000)
committerWayne Davison <wayned@samba.org>
Sat, 27 Aug 2005 21:30:33 +0000 (21:30 +0000)
16 files changed:
acls.diff
atimes.diff
backup-dir-dels.diff
chmod-option.diff
date-only.diff
fname-convert.diff
fsync.diff
ignore-case.diff
links-depth.diff
md5.diff
min-size.diff
openssl-support.diff
owner-group-mod.diff
source-filter_dest-filter.diff
time-limit.diff
xattrs.diff

index d5ef5e4d0658dee64bcec72c1f432a234f22a5dd..cc45f6f5cbfae3b25a06916e5e48699ebee9add2 100644 (file)
--- a/acls.diff
+++ b/acls.diff
@@ -1284,7 +1284,7 @@ ACLs to a non-ACL-supporting disk should complain.
  AC_CONFIG_FILES([Makefile lib/dummy zlib/dummy popt/dummy shconfig])
  AC_OUTPUT
  
---- orig/flist.c       2005-07-27 23:31:12
+--- orig/flist.c       2005-08-17 06:45:07
 +++ flist.c    2005-07-29 02:49:06
 @@ -974,6 +974,8 @@ static struct file_struct *send_file_nam
        file = make_file(fname, flist, f == -2 ? SERVER_FILTERS : ALL_FILTERS);
@@ -1306,7 +1306,7 @@ ACLs to a non-ACL-supporting disk should complain.
        }
        return file;
  }
-@@ -1318,6 +1324,8 @@ struct file_list *recv_file_list(int f)
+@@ -1327,6 +1333,8 @@ struct file_list *recv_file_list(int f)
                        flags |= read_byte(f) << 8;
                file = receive_file_entry(flist, flags, f);
  
@@ -1315,7 +1315,7 @@ ACLs to a non-ACL-supporting disk should complain.
                if (S_ISREG(file->mode))
                        stats.total_size += file->length;
  
-@@ -1340,6 +1348,8 @@ struct file_list *recv_file_list(int f)
+@@ -1349,6 +1357,8 @@ struct file_list *recv_file_list(int f)
  
        clean_flist(flist, relative_paths, 1);
  
@@ -1324,7 +1324,7 @@ ACLs to a non-ACL-supporting disk should complain.
        if (f >= 0) {
                /* Now send the uid/gid list. This was introduced in
                 * protocol version 15 */
---- orig/generator.c   2005-07-28 01:46:25
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2005-05-12 23:34:00
 @@ -725,6 +725,10 @@ static void recv_generator(char *fname, 
                if (set_perms(fname, file, statret ? NULL : &st, 0)
@@ -4624,9 +4624,9 @@ ACLs to a non-ACL-supporting disk should complain.
    next;
  }
  
---- orig/options.c     2005-07-28 01:46:25
-+++ options.c  2005-05-12 23:34:38
-@@ -44,6 +44,7 @@ int keep_dirlinks = 0;
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:15:29
+@@ -43,6 +43,7 @@ int keep_dirlinks = 0;
  int copy_links = 0;
  int preserve_links = 0;
  int preserve_hard_links = 0;
@@ -4634,7 +4634,7 @@ ACLs to a non-ACL-supporting disk should complain.
  int preserve_perms = 0;
  int preserve_devices = 0;
  int preserve_uid = 0;
-@@ -182,6 +183,7 @@ static void print_rsync_version(enum log
+@@ -181,6 +182,7 @@ static void print_rsync_version(enum log
        char const *got_socketpair = "no ";
        char const *have_inplace = "no ";
        char const *hardlinks = "no ";
@@ -4642,7 +4642,7 @@ ACLs to a non-ACL-supporting disk should complain.
        char const *links = "no ";
        char const *ipv6 = "no ";
        STRUCT_STAT *dumstat;
-@@ -198,6 +200,10 @@ static void print_rsync_version(enum log
+@@ -197,6 +199,10 @@ static void print_rsync_version(enum log
        hardlinks = "";
  #endif
  
@@ -4653,7 +4653,7 @@ ACLs to a non-ACL-supporting disk should complain.
  #ifdef SUPPORT_LINKS
        links = "";
  #endif
-@@ -212,9 +218,9 @@ static void print_rsync_version(enum log
+@@ -211,9 +217,9 @@ static void print_rsync_version(enum log
                "Copyright (C) 1996-2005 by Andrew Tridgell and others\n");
        rprintf(f, "<http://rsync.samba.org/>\n");
        rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
@@ -4665,7 +4665,7 @@ ACLs to a non-ACL-supporting disk should complain.
  
        /* Note that this field may not have type ino_t.  It depends
         * on the complicated interaction between largefile feature
-@@ -285,6 +291,7 @@ void usage(enum logcode F)
+@@ -284,6 +290,7 @@ void usage(enum logcode F)
    rprintf(F," -H, --hard-links            preserve hard links\n");
    rprintf(F," -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n");
    rprintf(F," -p, --perms                 preserve permissions\n");
@@ -4673,15 +4673,17 @@ ACLs to a non-ACL-supporting disk should complain.
    rprintf(F," -o, --owner                 preserve owner (root only)\n");
    rprintf(F," -g, --group                 preserve group\n");
    rprintf(F," -D, --devices               preserve devices (root only)\n");
-@@ -412,6 +419,7 @@ static struct poptOption long_options[] 
-   {"no-whole-file",    0,  POPT_ARG_VAL,    &whole_file, 0, 0, 0 },
-   {"copy-unsafe-links",0,  POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
-   {"perms",           'p', POPT_ARG_NONE,   &preserve_perms, 0, 0, 0 },
-+  {"acls",            'A', POPT_ARG_NONE,   0,              'A', 0, 0 },
-   {"owner",           'o', POPT_ARG_NONE,   &preserve_uid, 0, 0, 0 },
-   {"group",           'g', POPT_ARG_NONE,   &preserve_gid, 0, 0, 0 },
-   {"devices",         'D', POPT_ARG_NONE,   &preserve_devices, 0, 0, 0 },
-@@ -882,6 +890,24 @@ int parse_arguments(int *argc, const cha
+@@ -385,6 +392,9 @@ static struct poptOption long_options[] 
+   {"perms",           'p', POPT_ARG_VAL,    &preserve_perms, 1, 0, 0 },
+   {"no-perms",         0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
+   {"no-p",             0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
++  {"acls",            'A', POPT_ARG_NONE,   0, 'A', 0, 0 },
++  {"no-acls",          0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
++  {"no-A",             0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
+   {"times",           't', POPT_ARG_VAL,    &preserve_times, 1, 0, 0 },
+   {"no-times",         0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
+   {"no-t",             0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
+@@ -916,6 +926,24 @@ int parse_arguments(int *argc, const cha
                        basis_dir[basis_dir_cnt++] = (char *)arg;
                        break;
  
@@ -4689,6 +4691,7 @@ ACLs to a non-ACL-supporting disk should complain.
 +#ifdef SUPPORT_ACLS
 +                      preserve_acls = 1;
 +                      preserve_perms = 1;
++                      break;
 +#else
 +                      /* FIXME: this should probably be ignored with a
 +                       * warning and then countermeasures taken to
@@ -4700,13 +4703,12 @@ ACLs to a non-ACL-supporting disk should complain.
 +                               am_server ? "server" : "client");
 +                      return 0;
 +#endif /* SUPPORT_ACLS */
-+                      break;
 +
 +
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -1305,6 +1331,8 @@ void server_options(char **args,int *arg
+@@ -1329,6 +1357,8 @@ void server_options(char **args,int *arg
  
        if (preserve_hard_links)
                argstr[x++] = 'H';
@@ -4732,9 +4734,9 @@ ACLs to a non-ACL-supporting disk should complain.
        if (verbose > 1 && flags & PERMS_REPORT) {
                enum logcode code = daemon_log_format_has_i || dry_run
                                  ? FCLIENT : FINFO;
---- orig/rsync.h       2005-05-03 17:11:01
+--- orig/rsync.h       2005-08-17 06:45:08
 +++ rsync.h    2005-07-29 02:25:55
-@@ -638,6 +638,44 @@ struct stats {
+@@ -646,6 +646,44 @@ struct stats {
  #include "lib/permstring.h"
  #include "lib/addrinfo.h"
  
@@ -4779,9 +4781,9 @@ ACLs to a non-ACL-supporting disk should complain.
  #include "proto.h"
  
  /* We have replacement versions of these if they're missing. */
---- orig/rsync.yo      2005-07-29 02:47:20
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2004-07-03 20:11:58
-@@ -316,6 +316,7 @@ to the detailed description below for a 
+@@ -318,6 +318,7 @@ to the detailed description below for a 
   -H, --hard-links            preserve hard links
   -K, --keep-dirlinks         treat symlinked dir on receiver as dir
   -p, --perms                 preserve permissions
@@ -4789,7 +4791,7 @@ ACLs to a non-ACL-supporting disk should complain.
   -o, --owner                 preserve owner (root only)
   -g, --group                 preserve group
   -D, --devices               preserve devices (root only)
-@@ -636,6 +637,11 @@ based on the source file's permissions, 
+@@ -665,6 +666,11 @@ based on the source file's permissions, 
  umask setting
  (which is the same behavior as other file-copy utilities, such as cp).
  
index 9aea9ac4463dabd30a9f89e8022ab0f9d889a435..caa01c13979a0e12f1d77c03b529c2782a7ea14c 100644 (file)
@@ -15,7 +15,7 @@ command before "make":
                rprintf(FINFO, "flist->length=%.0f\n",
                        (double) fptr[i]->length);
                rprintf(FINFO, "flist->mode=%#o\n", (int) fptr[i]->mode);
---- orig/flist.c       2005-07-27 23:31:12
+--- orig/flist.c       2005-08-17 06:45:07
 +++ flist.c    2005-07-28 00:16:34
 @@ -50,6 +50,7 @@ extern int preserve_perms;
  extern int preserve_devices;
@@ -127,7 +127,7 @@ command before "make":
        file->length = st.st_size;
        file->mode = st.st_mode;
        file->uid = st.st_uid;
---- orig/generator.c   2005-07-27 23:31:12
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2005-07-28 00:14:43
 @@ -44,6 +44,7 @@ extern int preserve_uid;
  extern int preserve_gid;
@@ -137,7 +137,7 @@ command before "make":
  extern int delete_before;
  extern int delete_during;
  extern int delete_after;
-@@ -323,9 +324,21 @@ void itemize(struct file_struct *file, i
+@@ -324,9 +325,21 @@ void itemize(struct file_struct *file, i
                            : S_ISDIR(file->mode) ? !omit_dir_times
                            : !S_ISLNK(file->mode);
  
@@ -160,7 +160,7 @@ command before "make":
                                iflags |= ITEM_REPORT_TIME;
                        if (preserve_perms
                         && (file->mode & CHMOD_BITS) != (st->st_mode & CHMOD_BITS))
-@@ -377,7 +390,7 @@ static int unchanged_file(char *fn, stru
+@@ -378,7 +391,7 @@ static int unchanged_file(char *fn, stru
        if (ignore_times)
                return 0;
  
@@ -169,7 +169,7 @@ command before "make":
  }
  
  
-@@ -530,7 +543,7 @@ static int find_fuzzy(struct file_struct
+@@ -538,7 +551,7 @@ static int find_fuzzy(struct file_struct
                name = fp->basename;
  
                if (fp->length == file->length
@@ -178,7 +178,7 @@ command before "make":
                        if (verbose > 4) {
                                rprintf(FINFO,
                                        "fuzzy size/modtime match for %s\n",
-@@ -851,7 +864,7 @@ static void recv_generator(char *fname, 
+@@ -881,7 +894,7 @@ static void recv_generator(char *fname, 
        }
  
        if (update_only && statret == 0
@@ -217,8 +217,8 @@ command before "make":
  
                        if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) {
                                char ch = iflags & ITEM_IS_NEW ? '+' : '?';
---- orig/options.c     2005-07-27 23:31:12
-+++ options.c  2005-07-28 01:00:24
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:16:51
 @@ -49,6 +49,7 @@ int preserve_uid = 0;
  int preserve_gid = 0;
  int preserve_times = 0;
@@ -227,7 +227,7 @@ command before "make":
  int update_only = 0;
  int cvs_exclude = 0;
  int dry_run = 0;
-@@ -285,8 +286,9 @@ void usage(enum logcode F)
+@@ -287,8 +288,9 @@ void usage(enum logcode F)
    rprintf(F," -o, --owner                 preserve owner (root only)\n");
    rprintf(F," -g, --group                 preserve group\n");
    rprintf(F," -D, --devices               preserve devices (root only)\n");
@@ -239,15 +239,17 @@ command before "make":
    rprintf(F," -S, --sparse                handle sparse files efficiently\n");
    rprintf(F," -n, --dry-run               show what would have been transferred\n");
    rprintf(F," -W, --whole-file            copy files whole (without rsync algorithm)\n");
-@@ -413,6 +415,7 @@ static struct poptOption long_options[] 
-   {"devices",         'D', POPT_ARG_NONE,   &preserve_devices, 0, 0, 0 },
-   {"times",           't', POPT_ARG_NONE,   &preserve_times, 0, 0, 0 },
+@@ -388,6 +390,9 @@ static struct poptOption long_options[] 
+   {"times",           't', POPT_ARG_VAL,    &preserve_times, 1, 0, 0 },
+   {"no-times",         0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
+   {"no-t",             0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
++  {"atimes",          'A', POPT_ARG_VAL,    &preserve_atimes, 1, 0, 0 },
++  {"no-atimes",        0,  POPT_ARG_VAL,    &preserve_atimes, 0, 0, 0 },
++  {"no-A",             0,  POPT_ARG_VAL,    &preserve_atimes, 0, 0, 0 },
    {"omit-dir-times",  'O', POPT_ARG_VAL,    &omit_dir_times, 2, 0, 0 },
-+  {"atimes",          'A', POPT_ARG_NONE,   &preserve_atimes, 0, 0, 0 },
-   {"checksum",        'c', POPT_ARG_NONE,   &always_checksum, 0, 0, 0 },
-   {"verbose",         'v', POPT_ARG_NONE,   0, 'v', 0, 0 },
-   {"quiet",           'q', POPT_ARG_NONE,   0, 'q', 0, 0 },
-@@ -1292,6 +1295,8 @@ void server_options(char **args,int *arg
+   {"modify-window",    0,  POPT_ARG_INT,    &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
+   {"owner",           'o', POPT_ARG_VAL,    &preserve_uid, 1, 0, 0 },
+@@ -1337,6 +1342,8 @@ void server_options(char **args,int *arg
                argstr[x++] = 'D';
        if (preserve_times)
                argstr[x++] = 't';
@@ -308,7 +310,7 @@ command before "make":
        }
  
        change_uid = am_root && preserve_uid && st->st_uid != file->uid;
---- orig/rsync.h       2005-05-03 17:11:01
+--- orig/rsync.h       2005-08-17 06:45:08
 +++ rsync.h    2005-07-28 00:04:51
 @@ -54,6 +54,7 @@
  #define XMIT_HAS_IDEV_DATA (1<<9)
@@ -334,7 +336,7 @@ command before "make":
  #define ITEM_REPORT_CHECKSUM (1<<1)
  #define ITEM_REPORT_SIZE (1<<2)
  #define ITEM_REPORT_TIME (1<<3)
-@@ -509,6 +512,7 @@ struct file_struct {
+@@ -517,6 +520,7 @@ struct file_struct {
                struct hlink *links;
        } link_u;
        time_t modtime;
@@ -342,9 +344,9 @@ command before "make":
        uid_t uid;
        gid_t gid;
        mode_t mode;
---- orig/rsync.yo      2005-07-07 23:11:09
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-07-28 01:04:09
-@@ -309,8 +309,9 @@ to the detailed description below for a 
+@@ -321,8 +321,9 @@ to the detailed description below for a 
   -o, --owner                 preserve owner (root only)
   -g, --group                 preserve group
   -D, --devices               preserve devices (root only)
@@ -355,7 +357,7 @@ command before "make":
   -S, --sparse                handle sparse files efficiently
   -n, --dry-run               show what would have been transferred
   -W, --whole-file            copy files whole (without rsync algorithm)
-@@ -648,6 +649,12 @@ it is preserving modification times (see
+@@ -695,6 +696,12 @@ it is preserving modification times (see
  the directories on the receiving side, it is a good idea to use bf(-O).
  This option is inferred if you use bf(--backup) without bf(--backup-dir).
  
@@ -368,7 +370,7 @@ command before "make":
  dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers,
  instead it will just report the actions it would have taken.
  
-@@ -1055,7 +1062,7 @@ changes that are being made to each file
+@@ -1103,7 +1110,7 @@ changes that are being made to each file
  This is exactly the same as specifying bf(--log-format='%i %n%L').
  
  The "%i" escape has a cryptic output that is 9 letters long.  The general
@@ -377,7 +379,7 @@ command before "make":
  kind 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.
-@@ -1094,17 +1101,22 @@ quote(itemize(
+@@ -1142,17 +1149,22 @@ quote(itemize(
    by the file transfer.
    it() A bf(t) means the modification time is different and is being updated
    to the sender's value (requires bf(--times)).  An alternate value of bf(T)
@@ -736,7 +738,7 @@ command before "make":
  
        return 0;
  }
---- orig/util.c        2005-07-27 23:31:12
+--- orig/util.c        2005-08-17 06:45:08
 +++ util.c     2005-07-27 23:37:27
 @@ -128,7 +128,7 @@ void overflow_exit(char *str)
  
@@ -787,7 +789,7 @@ command before "make":
                t[1] = modtime;
                return utime(fname,t);
  #else
-@@ -1167,8 +1171,8 @@ int msleep(int t)
+@@ -1166,8 +1170,8 @@ int msleep(int t)
  
  
  /**
@@ -798,7 +800,7 @@ command before "make":
   * --modify-window).
   *
   * @retval 0 if the times should be treated as the same
-@@ -1177,7 +1181,7 @@ int msleep(int t)
+@@ -1176,7 +1180,7 @@ int msleep(int t)
   *
   * @retval -1 if the 2nd is later
   **/
index 844bf6986bcdae700d4ce7e5a241bc4d117fd04a..37066289480d734ea1d439205a687d6cbf71039a 100644 (file)
@@ -13,7 +13,7 @@ suffix.
 
 Marc St-Onge
 
---- orig/backup.c      2005-02-22 01:57:58
+--- orig/backup.c      2005-06-10 21:33:27
 +++ backup.c   2005-02-22 02:11:15
 @@ -22,11 +22,17 @@
  
@@ -92,7 +92,7 @@ Marc St-Onge
                return 0;
  
        /* Check to see if this is a device file, or link */
-@@ -277,3 +304,13 @@ int make_backup(char *fname)
+@@ -278,3 +305,13 @@ int make_backup(char *fname)
                return keep_backup(fname);
        return make_simple_backup(fname);
  }
@@ -106,9 +106,9 @@ Marc St-Onge
 +      deleting = 0;
 +      return ret;
 +}
---- orig/generator.c   2005-05-22 20:53:34
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2005-03-11 11:22:38
-@@ -86,16 +86,23 @@ extern dev_t filesystem_dev;
+@@ -87,16 +87,23 @@ extern dev_t filesystem_dev;
  extern char *backup_dir;
  extern char *backup_suffix;
  extern int backup_suffix_len;
@@ -133,7 +133,7 @@ Marc St-Onge
  }
  
  
-@@ -112,8 +119,8 @@ static int delete_item(char *fname, int 
+@@ -113,8 +120,8 @@ static int delete_item(char *fname, int 
        if (!S_ISDIR(mode)) {
                if (max_delete && ++deletion_count > max_delete)
                        return 0;
@@ -144,7 +144,7 @@ Marc St-Onge
                else
                        ok = robust_unlink(fname) == 0;
                if (ok) {
-@@ -136,9 +143,9 @@ static int delete_item(char *fname, int 
+@@ -137,9 +144,9 @@ static int delete_item(char *fname, int 
            || (dry_run && zap_dir)) {
                ok = 0;
                errno = ENOTEMPTY;
@@ -156,8 +156,8 @@ Marc St-Onge
        else
                ok = do_rmdir(fname) == 0;
        if (ok) {
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-03-01 01:25:39
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:17:50
 @@ -128,10 +128,14 @@ int no_detach
  int write_batch = 0;
  int read_batch = 0;
@@ -183,7 +183,7 @@ Marc St-Onge
  int rsync_port = 0;
  int compare_dest = 0;
  int copy_dest = 0;
-@@ -272,6 +278,8 @@ void usage(enum logcode F)
+@@ -273,6 +279,8 @@ void usage(enum logcode F)
    rprintf(F," -b, --backup                make backups (see --suffix & --backup-dir)\n");
    rprintf(F,"     --backup-dir=DIR        make backups into hierarchy based in DIR\n");
    rprintf(F,"     --suffix=SUFFIX         set backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
@@ -191,24 +191,18 @@ Marc St-Onge
 +  rprintf(F,"     --suffix-dels=SUFFIX    set removed-files suffix (defaults to --suffix)\n");
    rprintf(F," -u, --update                skip files that are newer on the receiver\n");
    rprintf(F,"     --inplace               update destination files in-place (SEE MAN PAGE)\n");
-   rprintf(F," -d, --dirs                  transfer directories without recursing\n");
-@@ -370,6 +378,7 @@ static struct poptOption long_options[] 
-   /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
-   {"version",          0,  POPT_ARG_NONE,   0, OPT_VERSION, 0, 0},
-   {"suffix",           0,  POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-+  {"suffix-dels",      0,  POPT_ARG_STRING, &backup_suffix_dels, 0, 0, 0 },
-   {"rsync-path",       0,  POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
-   {"password-file",    0,  POPT_ARG_STRING, &password_file, 0, 0, 0 },
-   {"ignore-times",    'I', POPT_ARG_NONE,   &ignore_times, 0, 0, 0 },
-@@ -451,6 +460,7 @@ static struct poptOption long_options[] 
-   {"itemize-changes", 'i', POPT_ARG_NONE,   &itemize_changes, 0, 0, 0 },
+   rprintf(F,"     --append                append data onto shorter files\n");
+@@ -460,7 +468,9 @@ static struct poptOption long_options[] 
    {"bwlimit",          0,  POPT_ARG_INT,    &bwlimit, 0, 0, 0 },
+   {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
    {"backup-dir",       0,  POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
 +  {"backup-dir-dels",  0,  POPT_ARG_STRING, &backup_dir_dels, 0, 0, 0 },
-   {"hard-links",      'H', POPT_ARG_NONE,   &preserve_hard_links, 0, 0, 0 },
+   {"suffix",           0,  POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
++  {"suffix-dels",      0,  POPT_ARG_STRING, &backup_suffix_dels, 0, 0, 0 },
+   {"list-only",        0,  POPT_ARG_VAL,    &list_only, 2, 0, 0 },
    {"read-batch",       0,  POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
    {"write-batch",      0,  POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 },
-@@ -1021,6 +1031,8 @@ int parse_arguments(int *argc, const cha
+@@ -1053,6 +1063,8 @@ int parse_arguments(int *argc, const cha
                        partial_dir = sanitize_path(NULL, partial_dir, NULL, 0);
                if (backup_dir)
                        backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
@@ -217,7 +211,7 @@ Marc St-Onge
        }
        if (server_filter_list.head && !am_sender) {
                struct filter_list_struct *elp = &server_filter_list;
-@@ -1055,6 +1067,14 @@ int parse_arguments(int *argc, const cha
+@@ -1087,6 +1099,14 @@ int parse_arguments(int *argc, const cha
                                return 0;
                        }
                }
@@ -232,7 +226,7 @@ Marc St-Onge
        }
  
        if (!backup_suffix)
-@@ -1066,6 +1086,16 @@ int parse_arguments(int *argc, const cha
+@@ -1098,6 +1118,16 @@ int parse_arguments(int *argc, const cha
                        backup_suffix);
                return 0;
        }
@@ -249,7 +243,7 @@ Marc St-Onge
        if (backup_dir) {
                backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf);
                backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len;
-@@ -1087,6 +1117,31 @@ int parse_arguments(int *argc, const cha
+@@ -1119,6 +1149,31 @@ int parse_arguments(int *argc, const cha
                        "--suffix cannot be a null string without --backup-dir\n");
                return 0;
        }
@@ -281,7 +275,7 @@ Marc St-Onge
        if (make_backups && !backup_dir)
                omit_dir_times = 1;
  
-@@ -1369,6 +1424,10 @@ void server_options(char **args,int *arg
+@@ -1416,6 +1471,10 @@ void server_options(char **args,int *arg
                args[ac++] = "--backup-dir";
                args[ac++] = backup_dir;
        }
@@ -292,7 +286,7 @@ Marc St-Onge
  
        /* Only send --suffix if it specifies a non-default value. */
        if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) {
-@@ -1377,7 +1436,13 @@ void server_options(char **args,int *arg
+@@ -1424,7 +1483,13 @@ void server_options(char **args,int *arg
                        goto oom;
                args[ac++] = arg;
        }
index efceaf07c323b1c674f182718fd20deaa608d2d4..4add86db1cb1bed32fdedd8e3945322deed32e81 100644 (file)
@@ -213,7 +213,7 @@ command before "make":
 +      }
 +      return 0;
 +}
---- orig/flist.c       2005-07-07 20:35:47
+--- orig/flist.c       2005-08-17 06:45:07
 +++ flist.c    2004-09-18 01:51:11
 @@ -62,6 +62,8 @@ extern struct file_list *the_file_list;
  
@@ -236,8 +236,8 @@ command before "make":
        file->uid = st.st_uid;
        file->gid = st.st_gid;
  
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-03-01 01:26:56
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:18:52
 @@ -141,6 +141,7 @@ char *log_format = NULL;
  char *password_file = NULL;
  char *rsync_path = RSYNC_PATH;
@@ -255,7 +255,7 @@ command before "make":
  static int daemon_opt;   /* sets am_daemon after option error-reporting */
  static int F_option_cnt = 0;
  static int modify_window_set;
-@@ -287,6 +290,7 @@ void usage(enum logcode F)
+@@ -289,6 +292,7 @@ void usage(enum logcode F)
    rprintf(F," -D, --devices               preserve devices (root only)\n");
    rprintf(F," -t, --times                 preserve times\n");
    rprintf(F," -O, --omit-dir-times        omit directories when preserving times\n");
@@ -263,15 +263,15 @@ command before "make":
    rprintf(F," -S, --sparse                handle sparse files efficiently\n");
    rprintf(F," -n, --dry-run               show what would have been transferred\n");
    rprintf(F," -W, --whole-file            copy files whole (without rsync algorithm)\n");
-@@ -410,6 +414,7 @@ static struct poptOption long_options[] 
-   {"perms",           'p', POPT_ARG_NONE,   &preserve_perms, 0, 0, 0 },
-   {"owner",           'o', POPT_ARG_NONE,   &preserve_uid, 0, 0, 0 },
-   {"group",           'g', POPT_ARG_NONE,   &preserve_gid, 0, 0, 0 },
+@@ -411,6 +415,7 @@ static struct poptOption long_options[] 
+   {"no-relative",      0,  POPT_ARG_VAL,    &relative_paths, 0, 0, 0 },
+   {"no-R",             0,  POPT_ARG_VAL,    &relative_paths, 0, 0, 0 },
+   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
 +  {"chmod",            0,  POPT_ARG_STRING, &chmod_mode, 0, 0, 0 },
-   {"devices",         'D', POPT_ARG_NONE,   &preserve_devices, 0, 0, 0 },
-   {"times",           't', POPT_ARG_NONE,   &preserve_times, 0, 0, 0 },
-   {"omit-dir-times",  'O', POPT_ARG_VAL,    &omit_dir_times, 2, 0, 0 },
-@@ -1090,6 +1095,13 @@ int parse_arguments(int *argc, const cha
+   {"ignore-times",    'I', POPT_ARG_NONE,   &ignore_times, 0, 0, 0 },
+   {"size-only",        0,  POPT_ARG_NONE,   &size_only, 0, 0, 0 },
+   {"one-file-system", 'x', POPT_ARG_NONE,   &one_file_system, 0, 0, 0 },
+@@ -1122,6 +1127,13 @@ int parse_arguments(int *argc, const cha
        if (make_backups && !backup_dir)
                omit_dir_times = 1;
  
@@ -285,7 +285,7 @@ command before "make":
        if (log_format) {
                if (log_format_has(log_format, 'i'))
                        log_format_has_i = 1;
-@@ -1458,6 +1470,11 @@ void server_options(char **args,int *arg
+@@ -1507,6 +1519,11 @@ void server_options(char **args,int *arg
                }
        }
  
@@ -297,9 +297,9 @@ command before "make":
        if (files_from && (!am_sender || filesfrom_host)) {
                if (filesfrom_host) {
                        args[ac++] = "--files-from";
---- orig/rsync.yo      2005-07-07 23:11:09
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-01-24 01:48:43
-@@ -311,6 +311,7 @@ to the detailed description below for a 
+@@ -323,6 +323,7 @@ to the detailed description below for a 
   -D, --devices               preserve devices (root only)
   -t, --times                 preserve times
   -O, --omit-dir-times        omit directories when preserving times
@@ -307,7 +307,7 @@ command before "make":
   -S, --sparse                handle sparse files efficiently
   -n, --dry-run               show what would have been transferred
   -W, --whole-file            copy files whole (without rsync algorithm)
-@@ -648,6 +649,14 @@ it is preserving modification times (see
+@@ -695,6 +696,14 @@ it is preserving modification times (see
  the directories on the receiving side, it is a good idea to use bf(-O).
  This option is inferred if you use bf(--backup) without bf(--backup-dir).
  
index 35421ef00949d782f34cdcbf0df92d08b55f35a8..032b754a0bb5d61f3aa3d9ea60a82fbb89d0a143 100644 (file)
@@ -15,9 +15,9 @@ Jeremy Bornstein
 
 [Patched update to have context and apply to latest CVS source.]
 
---- orig/generator.c   2005-05-22 20:53:34
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2004-11-11 22:15:27
-@@ -57,6 +57,7 @@ extern int inplace;
+@@ -58,6 +58,7 @@ extern int append_mode;
  extern int make_backups;
  extern int csum_length;
  extern int ignore_times;
@@ -25,7 +25,7 @@ Jeremy Bornstein
  extern int size_only;
  extern OFF_T max_size;
  extern int io_error;
-@@ -357,6 +358,8 @@ void itemize(struct file_struct *file, i
+@@ -360,6 +361,8 @@ void itemize(struct file_struct *file, i
  /* Perform our quick-check heuristic for determining if a file is unchanged. */
  static int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st)
  {
@@ -34,8 +34,8 @@ Jeremy Bornstein
        if (st->st_size != file->length)
                return 0;
  
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-01-28 19:14:15
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:19:31
 @@ -90,6 +90,7 @@ int keep_partial = 0;
  int safe_symlinks = 0;
  int copy_unsafe_links = 0;
@@ -44,7 +44,7 @@ Jeremy Bornstein
  int daemon_bwlimit = 0;
  int bwlimit = 0;
  int fuzzy_basis = 0;
-@@ -315,6 +316,7 @@ void usage(enum logcode F)
+@@ -316,6 +317,7 @@ void usage(enum logcode F)
    rprintf(F,"     --timeout=TIME          set I/O timeout in seconds\n");
    rprintf(F," -I, --ignore-times          don't skip files that match in size and mod-time\n");
    rprintf(F,"     --size-only             skip files that match in size\n");
@@ -52,15 +52,15 @@ Jeremy Bornstein
    rprintf(F,"     --modify-window=NUM     compare mod-times with reduced accuracy\n");
    rprintf(F," -T, --temp-dir=DIR          create temporary files in directory DIR\n");
    rprintf(F," -y, --fuzzy                 find similar file for basis if no dest file\n");
-@@ -374,6 +376,7 @@ static struct poptOption long_options[] 
-   {"password-file",    0,  POPT_ARG_STRING, &password_file, 0, 0, 0 },
+@@ -413,6 +415,7 @@ static struct poptOption long_options[] 
+   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
    {"ignore-times",    'I', POPT_ARG_NONE,   &ignore_times, 0, 0, 0 },
    {"size-only",        0,  POPT_ARG_NONE,   &size_only, 0, 0, 0 },
 +  {"date-only",        0,  POPT_ARG_NONE,   &date_only, 0, 0, 0 },
-   {"modify-window",    0,  POPT_ARG_INT,    &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
    {"one-file-system", 'x', POPT_ARG_NONE,   &one_file_system, 0, 0, 0 },
+   {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
    {"existing",         0,  POPT_ARG_NONE,   &only_existing, 0, 0, 0 },
-@@ -1398,6 +1401,9 @@ void server_options(char **args,int *arg
+@@ -1445,6 +1448,9 @@ void server_options(char **args,int *arg
        if (size_only)
                args[ac++] = "--size-only";
  
@@ -70,7 +70,7 @@ Jeremy Bornstein
        if (modify_window_set) {
                if (asprintf(&arg, "--modify-window=%d", modify_window) < 0)
                        goto oom;
---- orig/rsync.yo      2005-05-22 20:53:34
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-02-11 22:49:10
 @@ -350,6 +350,7 @@ to the detailed description below for a 
       --timeout=TIME          set I/O timeout in seconds
@@ -80,7 +80,7 @@ Jeremy Bornstein
       --modify-window=NUM     compare mod-times with reduced accuracy
   -T, --temp-dir=DIR          create temporary files in directory DIR
   -y, --fuzzy                 find similar file for basis if no dest file
-@@ -449,6 +450,12 @@ regardless of timestamp. This is useful 
+@@ -448,6 +449,12 @@ regardless of timestamp. This is useful 
  after using another mirroring system which may not preserve timestamps
  exactly.
  
index 55bc3b58cb463f15adea6b9aa1b0b83887867cc6..4ff573fbf4267cd414394ca16748823a1f46424d 100644 (file)
@@ -87,7 +87,7 @@ Note that you'll need to run 'make proto' after applying this patch.
  
  #define RERR_SIGNAL     20      /* status returned when sent SIGUSR1, SIGINT */
  #define RERR_WAITCHILD  21      /* some error returned by waitpid() */
---- orig/flist.c       2005-07-27 23:31:12
+--- orig/flist.c       2005-08-17 06:45:07
 +++ flist.c    2005-03-05 00:29:08
 @@ -57,6 +57,7 @@ extern int copy_unsafe_links;
  extern int protocol_version;
@@ -129,7 +129,7 @@ Note that you'll need to run 'make proto' after applying this patch.
        flist = flist_new(WITH_HLINK, "send_file_list");
  
        io_start_buffering_out();
-@@ -1279,6 +1289,9 @@ struct file_list *send_file_list(int f, 
+@@ -1288,6 +1298,9 @@ struct file_list *send_file_list(int f, 
        stats.flist_size = stats.total_written - start_write;
        stats.num_files = flist->count;
  
@@ -139,7 +139,7 @@ Note that you'll need to run 'make proto' after applying this patch.
        if (verbose > 3)
                output_flist(flist);
  
-@@ -1300,6 +1313,9 @@ struct file_list *recv_file_list(int f)
+@@ -1309,6 +1322,9 @@ struct file_list *recv_file_list(int f)
  
        start_read = stats.total_read;
  
@@ -149,7 +149,7 @@ Note that you'll need to run 'make proto' after applying this patch.
        flist = flist_new(WITH_HLINK, "recv_file_list");
  
        flist->count = 0;
-@@ -1352,6 +1368,9 @@ struct file_list *recv_file_list(int f)
+@@ -1361,6 +1377,9 @@ struct file_list *recv_file_list(int f)
                        io_error |= read_int(f);
        }
  
@@ -382,7 +382,7 @@ Note that you'll need to run 'make proto' after applying this patch.
 +      if (verbose > 2)
 +              rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest);
 +}
---- orig/generator.c   2005-07-28 01:46:25
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2005-03-05 00:29:37
 @@ -593,7 +593,13 @@ static int phase = 0;
   * start sending checksums.
@@ -420,9 +420,9 @@ Note that you'll need to run 'make proto' after applying this patch.
  
        if (dir)
                free(dir);
---- orig/options.c     2005-07-28 01:46:25
-+++ options.c  2005-02-14 02:50:32
-@@ -139,6 +139,7 @@ char *basis_dir[MAX_BASIS_DIRS+1];
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:20:59
+@@ -138,6 +138,7 @@ char *basis_dir[MAX_BASIS_DIRS+1];
  char *config_file = NULL;
  char *shell_cmd = NULL;
  char *log_format = NULL;
@@ -430,7 +430,7 @@ Note that you'll need to run 'make proto' after applying this patch.
  char *password_file = NULL;
  char *rsync_path = RSYNC_PATH;
  char *backup_dir = NULL;
-@@ -324,6 +325,7 @@ void usage(enum logcode F)
+@@ -322,6 +323,7 @@ void usage(enum logcode F)
    rprintf(F,"     --compare-dest=DIR      also compare destination files relative to DIR\n");
    rprintf(F,"     --copy-dest=DIR         ... and include copies of unchanged files\n");
    rprintf(F,"     --link-dest=DIR         hardlink to files in DIR when unchanged\n");
@@ -438,14 +438,14 @@ Note that you'll need to run 'make proto' after applying this patch.
    rprintf(F," -z, --compress              compress file data during the transfer\n");
    rprintf(F," -C, --cvs-exclude           auto-ignore files the same way CVS does\n");
    rprintf(F," -f, --filter=RULE           add a file-filtering RULE\n");
-@@ -437,6 +439,7 @@ static struct poptOption long_options[] 
+@@ -447,6 +449,7 @@ static struct poptOption long_options[] 
    {"copy-dest",        0,  POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
    {"link-dest",        0,  POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
    {"fuzzy",           'y', POPT_ARG_NONE,   &fuzzy_basis, 0, 0, 0 },
 +  {"fname-convert",    0,  POPT_ARG_STRING, &fname_convert_cmd, 0, 0, 0 },
-   /* TODO: Should this take an optional int giving the compression level? */
    {"compress",        'z', POPT_ARG_NONE,   &do_compression, 0, 0, 0 },
-   {"stats",            0,  POPT_ARG_NONE,   &do_stats, 0, 0, 0 },
+   {0,                 'P', POPT_ARG_NONE,   0, 'P', 0, 0 },
+   {"progress",         0,  POPT_ARG_VAL,    &do_progress, 1, 0, 0 },
 --- orig/pipe.c        2005-04-09 18:00:29
 +++ pipe.c     2004-07-03 20:18:02
 @@ -23,7 +23,6 @@
@@ -514,9 +514,9 @@ Note that you'll need to run 'make proto' after applying this patch.
 +
 +      return result;
 +}
---- orig/util.c        2005-07-27 23:31:12
+--- orig/util.c        2005-08-17 06:45:08
 +++ util.c     2004-07-03 20:18:02
-@@ -1349,3 +1349,55 @@ uint32 fuzzy_distance(const char *s1, in
+@@ -1348,3 +1348,55 @@ uint32 fuzzy_distance(const char *s1, in
  
        return a[len2-1];
  }
index f14a026b051efb7a095b21e8db17a51098207eff..f6674ab67018d8ead4c265cef25acb545d5632fd 100644 (file)
@@ -1,17 +1,17 @@
 This patch from Sami Farin lets you specify --fsync if you want fsync()
 to be called on every file we write.
 
---- orig/options.c     2005-07-28 01:46:25
-+++ options.c  2005-07-28 01:47:53
-@@ -42,6 +42,7 @@ int append_mode = 0;
- int archive_mode = 0;
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:21:34
+@@ -41,6 +41,7 @@ int whole_file = -1;
+ int append_mode = 0;
  int keep_dirlinks = 0;
  int copy_links = 0;
 +int do_fsync = 0;
  int preserve_links = 0;
  int preserve_hard_links = 0;
  int preserve_perms = 0;
-@@ -314,6 +315,7 @@ void usage(enum logcode F)
+@@ -312,6 +313,7 @@ void usage(enum logcode F)
    rprintf(F,"     --partial               keep partially transferred files\n");
    rprintf(F,"     --partial-dir=DIR       put a partially transferred file into DIR\n");
    rprintf(F,"     --delay-updates         put all updated files into place at transfer's end\n");
@@ -19,15 +19,15 @@ to be called on every file we write.
    rprintf(F,"     --numeric-ids           don't map uid/gid values by user/group name\n");
    rprintf(F,"     --timeout=TIME          set I/O timeout in seconds\n");
    rprintf(F," -I, --ignore-times          don't skip files that match in size and mod-time\n");
-@@ -398,6 +400,7 @@ static struct poptOption long_options[] 
-   {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
-   {"help",            'h', POPT_ARG_NONE,   0, 'h', 0, 0 },
-   {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
+@@ -467,6 +469,7 @@ static struct poptOption long_options[] 
+   {"only-write-batch", 0,  POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 },
+   {"files-from",       0,  POPT_ARG_STRING, &files_from, 0, 0, 0 },
+   {"from0",           '0', POPT_ARG_NONE,   &eol_nulls, 0, 0, 0},
 +  {"fsync",            0,  POPT_ARG_NONE,   &do_fsync, 0, 0, 0 },
-   {"dry-run",         'n', POPT_ARG_NONE,   &dry_run, 0, 0, 0 },
-   {"sparse",          'S', POPT_ARG_NONE,   &sparse_files, 0, 0, 0 },
-   {"cvs-exclude",     'C', POPT_ARG_NONE,   &cvs_exclude, 0, 0, 0 },
-@@ -1471,6 +1474,9 @@ void server_options(char **args,int *arg
+   {"numeric-ids",      0,  POPT_ARG_NONE,   &numeric_ids, 0, 0, 0 },
+   {"timeout",          0,  POPT_ARG_INT,    &io_timeout, 0, 0, 0 },
+   {"rsh",             'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
+@@ -1495,6 +1498,9 @@ void server_options(char **args,int *arg
                args[ac++] = tmpdir;
        }
  
@@ -37,7 +37,7 @@ to be called on every file we write.
        if (basis_dir[0] && am_sender) {
                /* the server only needs this option if it is not the sender,
                 *   and it may be an older version that doesn't know this
---- orig/receiver.c    2005-07-28 01:46:25
+--- orig/receiver.c    2005-08-17 06:45:08
 +++ receiver.c 2005-02-20 00:17:37
 @@ -38,6 +38,7 @@ extern int keep_dirlinks;
  extern int preserve_hard_links;
@@ -47,7 +47,7 @@ to be called on every file we write.
  extern int basis_dir_cnt;
  extern int make_backups;
  extern int cleanup_got_literal;
-@@ -314,6 +315,12 @@ static int receive_data(int f_in, char *
+@@ -318,6 +319,12 @@ static int receive_data(int f_in, char *
                exit_cleanup(RERR_FILEIO);
        }
  
@@ -70,7 +70,7 @@ to be called on every file we write.
  char *partial_dir;
  struct filter_list_struct server_filter_list;
  
---- orig/util.c        2005-07-27 23:31:12
+--- orig/util.c        2005-08-17 06:45:08
 +++ util.c     2004-07-03 20:18:13
 @@ -33,6 +33,7 @@ extern int module_id;
  extern int modify_window;
index 5a0b6cbb2b2ba5b70f8939b94b1822964997dd03..732c2ee8c3b9ec5054d856799a3878cc483eaa87 100644 (file)
@@ -35,8 +35,8 @@ in a case-insensitive manner.
          case '?':
            /* Match anything but '/'. */
            if (*text == '/')
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-05-03 16:47:52
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:22:04
 @@ -101,6 +101,7 @@ int max_delete = 0;
  OFF_T max_size = 0;
  int ignore_errors = 0;
@@ -45,7 +45,7 @@ in a case-insensitive manner.
  int blocking_io = -1;
  int checksum_seed = 0;
  int inplace = 0;
-@@ -332,6 +333,7 @@ void usage(enum logcode F)
+@@ -333,6 +334,7 @@ void usage(enum logcode F)
    rprintf(F,"     --include-from=FILE     read include patterns from FILE\n");
    rprintf(F,"     --files-from=FILE       read list of source-file names from FILE\n");
    rprintf(F," -0, --from0                 all *-from/filter files are delimited by 0s\n");
@@ -53,15 +53,15 @@ in a case-insensitive manner.
    rprintf(F,"     --address=ADDRESS       bind address for outgoing socket to daemon\n");
    rprintf(F,"     --port=PORT             specify double-colon alternate port number\n");
    rprintf(F,"     --blocking-io           use blocking I/O for the remote shell\n");
-@@ -392,6 +394,7 @@ static struct poptOption long_options[] 
-   {"include",          0,  POPT_ARG_STRING, 0, OPT_INCLUDE, 0, 0 },
-   {"exclude-from",     0,  POPT_ARG_STRING, 0, OPT_EXCLUDE_FROM, 0, 0 },
-   {"include-from",     0,  POPT_ARG_STRING, 0, OPT_INCLUDE_FROM, 0, 0 },
+@@ -417,6 +419,7 @@ static struct poptOption long_options[] 
+   {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
+   {"existing",         0,  POPT_ARG_NONE,   &only_existing, 0, 0, 0 },
+   {"ignore-existing",  0,  POPT_ARG_NONE,   &opt_ignore_existing, 0, 0, 0 },
 +  {"ignore-case",      0,  POPT_ARG_NONE,   &ignore_case, 0, 0, 0 },
-   {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
-   {"help",            'h', POPT_ARG_NONE,   0, 'h', 0, 0 },
-   {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
-@@ -1410,6 +1413,9 @@ void server_options(char **args,int *arg
+   {"max-size",         0,  POPT_ARG_STRING, &max_size_arg,  OPT_MAX_SIZE, 0, 0 },
+   {"sparse",          'S', POPT_ARG_NONE,   &sparse_files, 0, 0, 0 },
+   {"inplace",          0,  POPT_ARG_NONE,   &inplace, 0, 0, 0 },
+@@ -1457,6 +1460,9 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
@@ -81,7 +81,7 @@ in a case-insensitive manner.
  char *partial_dir;
  struct filter_list_struct server_filter_list;
  
---- orig/util.c        2005-05-03 16:47:33
+--- orig/util.c        2005-08-17 06:45:08
 +++ util.c     2004-08-13 16:40:34
 @@ -31,6 +31,7 @@ extern int verbose;
  extern int dry_run;
@@ -91,7 +91,7 @@ in a case-insensitive manner.
  extern char *partial_dir;
  extern struct filter_list_struct server_filter_list;
  
-@@ -1029,11 +1030,23 @@ int u_strcmp(const char *cs1, const char
+@@ -1039,11 +1040,23 @@ int u_strcmp(const char *cs1, const char
  {
        const uchar *s1 = (const uchar *)cs1;
        const uchar *s2 = (const uchar *)cs2;
index 90bc544c3b707b3f568659c56910367e8d0620ed..bf4d031c9cc2f4454428389f6e9b0d943a4c8f32 100644 (file)
@@ -6,7 +6,7 @@ with the latest codebase, but even in its original form it didn't
 handle relative symlinks properly, and that has not yet been fixed
 in this modified version.
 
---- orig/flist.c       2005-05-28 08:24:57
+--- orig/flist.c       2005-08-17 06:45:07
 +++ flist.c    2004-07-16 16:58:04
 @@ -45,6 +45,7 @@ extern int filesfrom_fd;
  extern int one_file_system;
@@ -62,9 +62,9 @@ in this modified version.
  #else
        linkname_len = 0;
  #endif
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-01-28 19:33:24
-@@ -42,6 +42,7 @@ int archive_mode = 0;
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:22:39
+@@ -42,6 +42,7 @@ int append_mode = 0;
  int keep_dirlinks = 0;
  int copy_links = 0;
  int preserve_links = 0;
@@ -72,8 +72,8 @@ in this modified version.
  int preserve_hard_links = 0;
  int preserve_perms = 0;
  int preserve_devices = 0;
-@@ -276,6 +277,7 @@ void usage(enum logcode F)
-   rprintf(F,"     --inplace               update destination files in-place (SEE MAN PAGE)\n");
+@@ -278,6 +279,7 @@ void usage(enum logcode F)
+   rprintf(F,"     --append                append data onto shorter files\n");
    rprintf(F," -d, --dirs                  transfer directories without recursing\n");
    rprintf(F," -l, --links                 copy symlinks as symlinks\n");
 +  rprintf(F,"     --links-depth=NUM       follow symlinks up to NUM depth\n");
@@ -81,17 +81,17 @@ in this modified version.
    rprintf(F,"     --copy-unsafe-links     only \"unsafe\" symlinks are transformed\n");
    rprintf(F,"     --safe-links            ignore symlinks that point outside the source tree\n");
 @@ -402,6 +404,7 @@ static struct poptOption long_options[] 
-   {"inplace",          0,  POPT_ARG_NONE,   &inplace, 0, 0, 0 },
-   {"dirs",            'd', POPT_ARG_VAL,    &xfer_dirs, 2, 0, 0 },
-   {"links",           'l', POPT_ARG_NONE,   &preserve_links, 0, 0, 0 },
+   {"links",           'l', POPT_ARG_VAL,    &preserve_links, 1, 0, 0 },
+   {"no-links",         0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
+   {"no-l",             0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
 +  {"links-depth",      0,  POPT_ARG_INT,    &follow_links_depth , 0, 0, 0 },
    {"copy-links",      'L', POPT_ARG_NONE,   &copy_links, 0, 0, 0 },
-   {"keep-dirlinks",   'K', POPT_ARG_NONE,   &keep_dirlinks, 0, 0, 0 },
-   {"whole-file",      'W', POPT_ARG_VAL,    &whole_file, 1, 0, 0 },
---- orig/rsync.yo      2005-05-22 20:53:34
+   {"copy-unsafe-links",0,  POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
+   {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-01-28 19:33:40
-@@ -311,6 +311,7 @@ to the detailed description below for a 
-      --inplace               update destination files in-place
+@@ -312,6 +312,7 @@ to the detailed description below for a 
+      --append                append data onto shorter files
   -d, --dirs                  transfer directories without recursing
   -l, --links                 copy symlinks as symlinks
 +     --links-depth=NUM       follow symlinks up to NUM depth
index f9c5cd3ce2606cb11a22dd0cf911a997b96604a0..8bbc974ceb3dd5d8641c3fd88fb680909c35d675 100644 (file)
--- a/md5.diff
+++ b/md5.diff
 +void md5_finish(md5_context *ctx, uchar digest[16]);
 +
 +#endif /* md5.h */
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-06-14 02:21:26
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:23:04
 @@ -107,6 +107,7 @@ int inplace = 0;
  int delay_updates = 0;
  long block_size = 0; /* "long" because popt can't set an int32. */
  #ifdef INET6
    rprintf(F," -4, --ipv4                  prefer IPv4\n");
    rprintf(F," -6, --ipv6                  prefer IPv6\n");
-@@ -460,6 +462,7 @@ static struct poptOption long_options[] 
-   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
-   {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
-   {"checksum-seed",    0,  POPT_ARG_INT,    &checksum_seed, 0, 0, 0 },
+@@ -441,6 +443,7 @@ static struct poptOption long_options[] 
+   {"whole-file",      'W', POPT_ARG_VAL,    &whole_file, 1, 0, 0 },
+   {"no-whole-file",    0,  POPT_ARG_VAL,    &whole_file, 0, 0, 0 },
+   {"no-W",             0,  POPT_ARG_VAL,    &whole_file, 0, 0, 0 },
 +  {"md5",              0,  POPT_ARG_NONE,   &use_md5, 0, 0, 0 },
- #ifdef INET6
-   {"ipv4",            '4', POPT_ARG_VAL,    &default_af_hint, AF_INET, 0, 0 },
-   {"ipv6",            '6', POPT_ARG_VAL,    &default_af_hint, AF_INET6, 0, 0 },
-@@ -1365,6 +1368,9 @@ void server_options(char **args,int *arg
+   {"checksum",        'c', POPT_ARG_NONE,   &always_checksum, 0, 0, 0 },
+   {"block-size",      'B', POPT_ARG_LONG,   &block_size, 0, 0, 0 },
+   {"compare-dest",     0,  POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
+@@ -1412,6 +1415,9 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
index 95b522ca1e8e9cfb1d0fc85761f3324724f098e4..54938555d1b509902ec3540484ed077971632e86 100644 (file)
@@ -1,4 +1,4 @@
---- orig/generator.c   2005-07-28 01:46:25
+--- orig/generator.c   2005-08-17 06:45:07
 +++ generator.c        2005-04-28 16:19:24
 @@ -59,6 +59,7 @@ extern int make_backups;
  extern int csum_length;
@@ -8,7 +8,7 @@
  extern OFF_T max_size;
  extern int io_error;
  extern int allowed_lull;
-@@ -842,6 +843,15 @@ static void recv_generator(char *fname, 
+@@ -864,6 +865,15 @@ static void recv_generator(char *fname, 
                return;
        }
  
@@ -24,7 +24,7 @@
        if (max_size && file->length > max_size) {
                if (verbose > 1) {
                        if (the_file_list->count == 1)
-@@ -1247,7 +1257,7 @@ void generate_files(int f_out, struct fi
+@@ -1269,7 +1279,7 @@ void generate_files(int f_out, struct fi
  
        phase++;
        csum_length = SUM_LENGTH;
@@ -33,9 +33,9 @@
        update_only = always_checksum = size_only = 0;
        ignore_times = 1;
        if (append_mode)  /* resend w/o append mode */
---- orig/options.c     2005-07-28 01:46:25
-+++ options.c  2005-07-28 01:48:23
-@@ -99,6 +99,7 @@ int only_existing = 0;
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:23:36
+@@ -98,6 +98,7 @@ int only_existing = 0;
  int opt_ignore_existing = 0;
  int need_messages_from_generator = 0;
  int max_delete = 0;
@@ -43,7 +43,7 @@
  OFF_T max_size = 0;
  int ignore_errors = 0;
  int modify_window = 0;
-@@ -168,7 +169,7 @@ static int itemize_changes = 0;
+@@ -167,7 +168,7 @@ static int itemize_changes = 0;
  static int refused_delete, refused_archive_part;
  static int refused_partial, refused_progress, refused_delete_before;
  static int refused_inplace;
@@ -52,7 +52,7 @@
  static char partialdir_for_delayupdate[] = ".~tmp~";
  
  /** Local address to bind.  As a character string because it's
-@@ -310,6 +311,7 @@ void usage(enum logcode F)
+@@ -308,6 +309,7 @@ void usage(enum logcode F)
    rprintf(F,"     --ignore-errors         delete even if there are I/O errors\n");
    rprintf(F,"     --force                 force deletion of directories even if not empty\n");
    rprintf(F,"     --max-delete=NUM        don't delete more than NUM files\n");
@@ -60,7 +60,7 @@
    rprintf(F,"     --max-size=SIZE         don't transfer any file larger than SIZE\n");
    rprintf(F,"     --partial               keep partially transferred files\n");
    rprintf(F,"     --partial-dir=DIR       put a partially transferred file into DIR\n");
-@@ -365,7 +367,7 @@ void usage(enum logcode F)
+@@ -362,7 +364,7 @@ void usage(enum logcode F)
  
  enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
        OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
        OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
        OPT_REFUSED_BASE = 9000};
  
-@@ -430,6 +432,7 @@ static struct poptOption long_options[] 
-   {"rsh",             'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
-   {"block-size",      'B', POPT_ARG_LONG,   &block_size, 0, 0, 0 },
-   {"max-delete",       0,  POPT_ARG_INT,    &max_delete, 0, 0, 0 },
+@@ -417,6 +419,7 @@ static struct poptOption long_options[] 
+   {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
+   {"existing",         0,  POPT_ARG_NONE,   &only_existing, 0, 0, 0 },
+   {"ignore-existing",  0,  POPT_ARG_NONE,   &opt_ignore_existing, 0, 0, 0 },
 +  {"min-size",         0,  POPT_ARG_STRING, &min_size_arg,  OPT_MIN_SIZE, 0, 0 },
    {"max-size",         0,  POPT_ARG_STRING, &max_size_arg,  OPT_MAX_SIZE, 0, 0 },
-   {"timeout",          0,  POPT_ARG_INT,    &io_timeout, 0, 0, 0 },
-   {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -840,6 +843,15 @@ int parse_arguments(int *argc, const cha
+   {"sparse",          'S', POPT_ARG_NONE,   &sparse_files, 0, 0, 0 },
+   {"inplace",          0,  POPT_ARG_NONE,   &inplace, 0, 0, 0 },
+@@ -874,6 +877,15 @@ int parse_arguments(int *argc, const cha
                        read_batch = 1;
                        break;
  
@@ -93,7 +93,7 @@
                case OPT_MAX_SIZE:
                        if ((max_size = parse_size_arg(max_size_arg)) <= 0) {
                                snprintf(err_buf, sizeof err_buf,
-@@ -1371,6 +1383,11 @@ void server_options(char **args,int *arg
+@@ -1395,6 +1407,11 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
        if (max_size && am_sender) {
                args[ac++] = "--max-size";
                args[ac++] = max_size_arg;
---- orig/rsync.yo      2005-07-28 01:46:25
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-05-06 19:12:35
-@@ -332,6 +332,7 @@ to the detailed description below for a 
+@@ -342,6 +342,7 @@ to the detailed description below for a 
       --ignore-errors         delete even if there are I/O errors
       --force                 force deletion of dirs even if not empty
       --max-delete=NUM        don't delete more than NUM files
       --max-size=SIZE         don't transfer any file larger than SIZE
       --partial               keep partially transferred files
       --partial-dir=DIR       put a partially transferred file into DIR
-@@ -756,10 +757,16 @@ dit(bf(--max-delete=NUM)) This tells rsy
+@@ -794,10 +795,16 @@ dit(bf(--max-delete=NUM)) This tells rsy
  files or directories (NUM must be non-zero).
  This is useful when mirroring very large trees to prevent disasters.
  
index 2fc4f95c997d8418c3526be4bb95290236cab03f..d6ee76d2103223d238aeae58477d2ef4ea3a89db 100644 (file)
@@ -37,9 +37,9 @@ All warnings apply; I don't do C programming all that often, so I
 can't say if I've left any cleanup/compatibility errors in the code.
 
 
---- orig/Makefile.in   2004-11-02 16:47:15
+--- orig/Makefile.in   2005-07-07 23:11:07
 +++ Makefile.in        2004-10-08 20:17:06
-@@ -39,7 +39,7 @@ OBJS3=progress.o pipe.o
+@@ -38,7 +38,7 @@ 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 \
        popt/popthelp.o popt/poptparse.o
@@ -72,7 +72,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
        if (verbose > 3) {
                rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
                        code, safe_fname(file), line);
---- orig/clientserver.c        2005-05-19 08:52:42
+--- orig/clientserver.c        2005-08-17 06:45:07
 +++ clientserver.c     2005-04-09 17:39:57
 @@ -44,6 +44,9 @@ extern int io_timeout;
  extern int orig_umask;
@@ -160,7 +160,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
                        return -1;
                }
  
-@@ -541,6 +589,7 @@ static void send_listing(int fd)
+@@ -597,6 +645,7 @@ static void send_listing(int fd)
                io_printf(fd,"@RSYNCD: EXIT\n");
  }
  
@@ -168,7 +168,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
  /* this is called when a connection is established to a client
     and we want to start talking. The setup of the system is done from
     here */
-@@ -590,6 +639,9 @@ int start_daemon(int f_in, int f_out)
+@@ -646,6 +695,9 @@ int start_daemon(int f_in, int f_out)
        if (protocol_version > remote_protocol)
                protocol_version = remote_protocol;
  
@@ -178,7 +178,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
        line[0] = 0;
        if (!read_line(f_in, line, sizeof line - 1))
                return -1;
-@@ -599,6 +651,20 @@ int start_daemon(int f_in, int f_out)
+@@ -655,6 +707,20 @@ int start_daemon(int f_in, int f_out)
                return -1;
        }
  
@@ -199,9 +199,9 @@ can't say if I've left any cleanup/compatibility errors in the code.
        if (*line == '#') {
                /* it's some sort of command that I don't understand */
                io_printf(f_out, "@ERROR: Unknown command '%s'\n", line);
---- orig/configure.in  2005-05-28 08:24:57
+--- orig/configure.in  2005-07-29 02:47:19
 +++ configure.in       2004-07-03 20:22:28
-@@ -284,6 +284,21 @@ yes
+@@ -293,6 +293,21 @@ yes
        AC_SEARCH_LIBS(getaddrinfo, inet6)
  fi
  
@@ -223,8 +223,8 @@ can't say if I've left any cleanup/compatibility errors in the code.
  AC_MSG_CHECKING([whether to call shutdown on all sockets])
  case $host_os in
        *cygwin* ) AC_MSG_RESULT(yes)
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-05-19 08:58:46
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:24:31
 @@ -157,6 +157,14 @@ int log_format_has_o_or_i = 0;
  int always_checksum = 0;
  int list_only = 0;
@@ -240,7 +240,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
  #define MAX_BATCH_NAME_LEN 256        /* Must be less than MAXPATHLEN-13 */
  char *batch_name = NULL;
  
-@@ -182,6 +190,7 @@ static void print_rsync_version(enum log
+@@ -183,6 +191,7 @@ static void print_rsync_version(enum log
        char const *hardlinks = "no ";
        char const *links = "no ";
        char const *ipv6 = "no ";
@@ -248,7 +248,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
        STRUCT_STAT *dumstat;
  
  #ifdef HAVE_SOCKETPAIR
-@@ -204,6 +213,10 @@ static void print_rsync_version(enum log
+@@ -205,6 +214,10 @@ static void print_rsync_version(enum log
        ipv6 = "";
  #endif
  
@@ -259,7 +259,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
        rprintf(f, "%s  version %s  protocol version %d\n",
                RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
        rprintf(f,
-@@ -217,10 +230,10 @@ static void print_rsync_version(enum log
+@@ -218,10 +231,10 @@ static void print_rsync_version(enum log
        /* Note that this field may not have type ino_t.  It depends
         * on the complicated interaction between largefile feature
         * macros. */
@@ -295,10 +295,10 @@ can't say if I've left any cleanup/compatibility errors in the code.
        OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
        OPT_REFUSED_BASE = 9000};
  
-@@ -464,6 +484,13 @@ static struct poptOption long_options[] 
-   {"ipv4",            '4', POPT_ARG_VAL,    &default_af_hint, AF_INET, 0, 0 },
-   {"ipv6",            '6', POPT_ARG_VAL,    &default_af_hint, AF_INET6, 0, 0 },
- #endif
+@@ -485,6 +505,13 @@ static struct poptOption long_options[] 
+   {"checksum-seed",    0,  POPT_ARG_INT,    &checksum_seed, 0, 0, 0 },
+   {"server",           0,  POPT_ARG_NONE,   &am_server, 0, 0, 0 },
+   {"sender",           0,  POPT_ARG_NONE,   0, OPT_SENDER, 0, 0 },
 +#if HAVE_OPENSSL
 +  {"ssl",              0,  POPT_ARG_NONE,   0, OPT_USE_SSL, 0, 0},
 +  {"ssl-cert",         0,  POPT_ARG_STRING, &ssl_cert_path, OPT_USE_SSL, 0, 0},
@@ -306,10 +306,10 @@ can't say if I've left any cleanup/compatibility errors in the code.
 +  {"ssl-key-passwd",   0,  POPT_ARG_STRING, &ssl_key_passwd, OPT_USE_SSL, 0, 0},
 +  {"ssl-ca-certs",     0,  POPT_ARG_STRING, &ssl_ca_path, OPT_USE_SSL, 0, 0},
 +#endif
-   /* All these options switch us into daemon-mode option-parsing. */
+   /* All the following options switch us into daemon-mode option-parsing. */
    {"config",           0,  POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
    {"daemon",           0,  POPT_ARG_NONE,   0, OPT_DAEMON, 0, 0 },
-@@ -876,6 +903,12 @@ int parse_arguments(int *argc, const cha
+@@ -916,6 +943,12 @@ int parse_arguments(int *argc, const cha
                        basis_dir[basis_dir_cnt++] = (char *)arg;
                        break;
  
@@ -322,7 +322,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -1129,6 +1162,17 @@ int parse_arguments(int *argc, const cha
+@@ -1174,6 +1207,17 @@ int parse_arguments(int *argc, const cha
        if (delay_updates && !partial_dir)
                partial_dir = partialdir_for_delayupdate;
  
@@ -340,7 +340,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
        if (inplace) {
  #ifdef HAVE_FTRUNCATE
                if (partial_dir) {
-@@ -1498,11 +1542,28 @@ char *check_for_hostspec(char *s, char *
+@@ -1547,11 +1591,28 @@ char *check_for_hostspec(char *s, char *
  {
        char *p;
        int not_host;
@@ -371,7 +371,7 @@ can't say if I've left any cleanup/compatibility errors in the code.
                if ((p = strchr(s, '/')) != NULL) {
                        hostlen = p - s;
                        path = p + 1;
---- orig/rsync.h       2005-05-03 17:11:01
+--- orig/rsync.h       2005-08-17 06:45:08
 +++ rsync.h    2004-10-08 21:01:33
 @@ -32,6 +32,7 @@
  
index c2f7d74983c15d5a4e5f54457a1fe70f46ffa377..af3b4fb62fd9bcf5968536ec550fdbb4665be586 100644 (file)
@@ -34,20 +34,32 @@ groups, even if they weren't returned by getgroups().  E.g.:
 +                      preserve_gid = 2;
 +      }
  }
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2004-09-09 01:59:08
-@@ -408,8 +408,8 @@ static struct poptOption long_options[] 
-   {"no-whole-file",    0,  POPT_ARG_VAL,    &whole_file, 0, 0, 0 },
-   {"copy-unsafe-links",0,  POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
-   {"perms",           'p', POPT_ARG_NONE,   &preserve_perms, 0, 0, 0 },
--  {"owner",           'o', POPT_ARG_NONE,   &preserve_uid, 0, 0, 0 },
--  {"group",           'g', POPT_ARG_NONE,   &preserve_gid, 0, 0, 0 },
-+  {"owner",           'o', POPT_ARG_NONE,   0,               'o', 0, 0 },
-+  {"group",           'g', POPT_ARG_NONE,   0,               'g', 0, 0 },
-   {"devices",         'D', POPT_ARG_NONE,   &preserve_devices, 0, 0, 0 },
-   {"times",           't', POPT_ARG_NONE,   &preserve_times, 0, 0, 0 },
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:26:04
+@@ -390,10 +390,10 @@ static struct poptOption long_options[] 
+   {"no-t",             0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
    {"omit-dir-times",  'O', POPT_ARG_VAL,    &omit_dir_times, 2, 0, 0 },
-@@ -781,6 +781,14 @@ int parse_arguments(int *argc, const cha
+   {"modify-window",    0,  POPT_ARG_INT,    &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
+-  {"owner",           'o', POPT_ARG_VAL,    &preserve_uid, 1, 0, 0 },
++  {"owner",           'o', POPT_ARG_NONE,   0, 'o', 0, 0 },
+   {"no-owner",         0,  POPT_ARG_VAL,    &preserve_uid, 0, 0, 0 },
+   {"no-o",             0,  POPT_ARG_VAL,    &preserve_uid, 0, 0, 0 },
+-  {"group",           'g', POPT_ARG_VAL,    &preserve_gid, 1, 0, 0 },
++  {"group",           'g', POPT_ARG_NONE,   0, 'g', 0, 0 },
+   {"no-group",         0,  POPT_ARG_VAL,    &preserve_gid, 0, 0, 0 },
+   {"no-g",             0,  POPT_ARG_VAL,    &preserve_gid, 0, 0, 0 },
+   {"devices",         'D', POPT_ARG_VAL,    &preserve_devices, 1, 0, 0 },
+@@ -812,7 +812,8 @@ int parse_arguments(int *argc, const cha
+ #endif
+                       preserve_perms = 1;
+                       preserve_times = 1;
+-                      preserve_gid = 1;
++                      preserve_uid |= 1;
++                      preserve_gid |= 1;
+                       preserve_uid = 1;
+                       preserve_devices = 1;
+                       break;
+@@ -821,6 +822,14 @@ int parse_arguments(int *argc, const cha
                        usage(FINFO);
                        exit_cleanup(0);
  
@@ -62,18 +74,7 @@ groups, even if they weren't returned by getgroups().  E.g.:
                case 'v':
                        verbose++;
                        break;
-@@ -963,8 +971,8 @@ int parse_arguments(int *argc, const cha
- #endif
-               preserve_perms = 1;
-               preserve_times = 1;
--              preserve_gid = 1;
--              preserve_uid = 1;
-+              preserve_uid |= 1;
-+              preserve_gid |= 1;
-               preserve_devices = 1;
-       }
-@@ -1282,10 +1290,16 @@ void server_options(char **args,int *arg
+@@ -1329,10 +1338,16 @@ void server_options(char **args,int *arg
  
        if (preserve_hard_links)
                argstr[x++] = 'H';
@@ -92,7 +93,7 @@ groups, even if they weren't returned by getgroups().  E.g.:
        if (preserve_devices)
                argstr[x++] = 'D';
        if (preserve_times)
---- orig/rsync.c       2005-03-16 02:19:30
+--- orig/rsync.c       2005-07-27 23:31:12
 +++ rsync.c    2005-02-01 10:46:04
 @@ -27,7 +27,6 @@ extern int dry_run;
  extern int daemon_log_format_has_i;
@@ -102,8 +103,8 @@ groups, even if they weren't returned by getgroups().  E.g.:
  extern int am_server;
  extern int am_sender;
  extern int am_generator;
-@@ -81,7 +80,7 @@ int set_perms(char *fname,struct file_st
-               updated = 1;
+@@ -82,7 +81,7 @@ int set_perms(char *fname,struct file_st
+                       updated = 1;
        }
  
 -      change_uid = am_root && preserve_uid && st->st_uid != file->uid;
index 36b426b232d3a1eacad9c7e90f74057ad947918b..e48f8845f22f41dc2d5f0e4acdbd9a87d0ed6781 100644 (file)
@@ -44,9 +44,9 @@ You should run "make proto" before running "make".
                return 0;
  
        /* if always checksum is set then we use the checksum instead
---- orig/options.c     2005-07-28 01:46:25
-+++ options.c  2005-08-17 07:47:00
-@@ -91,6 +91,7 @@ int keep_partial = 0;
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:27:17
+@@ -90,6 +90,7 @@ int keep_partial = 0;
  int safe_symlinks = 0;
  int copy_unsafe_links = 0;
  int size_only = 0;
@@ -54,7 +54,7 @@ You should run "make proto" before running "make".
  int daemon_bwlimit = 0;
  int bwlimit = 0;
  int fuzzy_basis = 0;
-@@ -139,6 +140,8 @@ char *basis_dir[MAX_BASIS_DIRS+1];
+@@ -138,6 +139,8 @@ char *basis_dir[MAX_BASIS_DIRS+1];
  char *config_file = NULL;
  char *shell_cmd = NULL;
  char *log_format = NULL;
@@ -63,7 +63,7 @@ You should run "make proto" before running "make".
  char *password_file = NULL;
  char *rsync_path = RSYNC_PATH;
  char *backup_dir = NULL;
-@@ -318,6 +321,7 @@ void usage(enum logcode F)
+@@ -316,6 +319,7 @@ void usage(enum logcode F)
    rprintf(F,"     --timeout=TIME          set I/O timeout in seconds\n");
    rprintf(F," -I, --ignore-times          don't skip files that match in size and mod-time\n");
    rprintf(F,"     --size-only             skip files that match in size\n");
@@ -71,7 +71,7 @@ You should run "make proto" before running "make".
    rprintf(F,"     --modify-window=NUM     compare mod-times with reduced accuracy\n");
    rprintf(F," -T, --temp-dir=DIR          create temporary files in directory DIR\n");
    rprintf(F," -y, --fuzzy                 find similar file for basis if no dest file\n");
-@@ -350,6 +354,8 @@ void usage(enum logcode F)
+@@ -347,6 +351,8 @@ void usage(enum logcode F)
    rprintf(F,"     --write-batch=FILE      write a batched update to FILE\n");
    rprintf(F,"     --only-write-batch=FILE like --write-batch but w/o updating destination\n");
    rprintf(F,"     --read-batch=FILE       read a batched update from FILE\n");
@@ -80,24 +80,24 @@ You should run "make proto" before running "make".
    rprintf(F,"     --protocol=NUM          force an older protocol version to be used\n");
  #ifdef INET6
    rprintf(F," -4, --ipv4                  prefer IPv4\n");
-@@ -377,6 +383,7 @@ static struct poptOption long_options[] 
-   {"password-file",    0,  POPT_ARG_STRING, &password_file, 0, 0, 0 },
+@@ -413,6 +419,7 @@ static struct poptOption long_options[] 
+   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
    {"ignore-times",    'I', POPT_ARG_NONE,   &ignore_times, 0, 0, 0 },
    {"size-only",        0,  POPT_ARG_NONE,   &size_only, 0, 0, 0 },
 +  {"times-only",       0,  POPT_ARG_NONE,   &times_only , 0, 0, 0 },
-   {"modify-window",    0,  POPT_ARG_INT,    &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
    {"one-file-system", 'x', POPT_ARG_NONE,   &one_file_system, 0, 0, 0 },
+   {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
    {"existing",         0,  POPT_ARG_NONE,   &only_existing, 0, 0, 0 },
-@@ -462,6 +469,8 @@ static struct poptOption long_options[] 
-   {"files-from",       0,  POPT_ARG_STRING, &files_from, 0, 0, 0 },
-   {"from0",           '0', POPT_ARG_NONE,   &eol_nulls, 0, 0, 0},
-   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
+@@ -481,6 +488,8 @@ static struct poptOption long_options[] 
+   {"password-file",    0,  POPT_ARG_STRING, &password_file, 0, 0, 0 },
+   {"blocking-io",      0,  POPT_ARG_VAL,    &blocking_io, 1, 0, 0 },
+   {"no-blocking-io",   0,  POPT_ARG_VAL,    &blocking_io, 0, 0, 0 },
 +  {"source-filter",    0,  POPT_ARG_STRING, &source_filter, 0, 0, 0 },
 +  {"dest-filter",      0,  POPT_ARG_STRING, &dest_filter, 0, 0, 0 },
    {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
    {"checksum-seed",    0,  POPT_ARG_INT,    &checksum_seed, 0, 0, 0 },
- #ifdef INET6
-@@ -1195,6 +1204,16 @@ int parse_arguments(int *argc, const cha
+   {"server",           0,  POPT_ARG_NONE,   &am_server, 0, 0, 0 },
+@@ -1219,6 +1228,16 @@ int parse_arguments(int *argc, const cha
                }
        }
  
@@ -114,7 +114,7 @@ You should run "make proto" before running "make".
        if (files_from) {
                char *h, *p;
                int q;
-@@ -1418,6 +1437,25 @@ void server_options(char **args,int *arg
+@@ -1442,6 +1461,25 @@ void server_options(char **args,int *arg
                        args[ac++] = "--only-write-batch=X";
        }
  
@@ -302,9 +302,9 @@ You should run "make proto" before running "make".
  #define MAX_BASIS_DIRS 20
  #define MAX_SERVER_ARGS (MAX_BASIS_DIRS*2 + 100)
  
---- orig/rsync.yo      2005-08-17 06:45:08
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-08-17 07:08:21
-@@ -351,6 +351,7 @@ to the detailed description below for a 
+@@ -350,6 +350,7 @@ to the detailed description below for a 
       --timeout=TIME          set I/O timeout in seconds
   -I, --ignore-times          don't skip files that match size and time
       --size-only             skip files that match in size
@@ -312,7 +312,7 @@ You should run "make proto" before running "make".
       --modify-window=NUM     compare mod-times with reduced accuracy
   -T, --temp-dir=DIR          create temporary files in directory DIR
   -y, --fuzzy                 find similar file for basis if no dest file
-@@ -383,6 +384,8 @@ to the detailed description below for a 
+@@ -381,6 +382,8 @@ to the detailed description below for a 
       --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
@@ -321,7 +321,7 @@ You should run "make proto" before running "make".
       --protocol=NUM          force an older protocol version to be used
       --checksum-seed=NUM     set block/file checksum seed (advanced)
   -4, --ipv4                  prefer IPv4
-@@ -1332,6 +1335,33 @@ file previously generated by bf(--write-
+@@ -1346,6 +1349,33 @@ file previously generated by bf(--write-
  If em(FILE) is "-" the batch data will be read from standard input.
  See the "BATCH MODE" section for details.
  
index ff072736833a852c88cd3408229418cae0bd494e..cb110c9922c1484c886bacf3d1cf4fe3b20d6d7a 100644 (file)
@@ -3,7 +3,7 @@ to be simpler and more efficient by Wayne Davison.
 
 Do we need configure support for mktime()?
 
---- orig/io.c  2005-05-19 08:52:42
+--- orig/io.c  2005-08-17 06:45:07
 +++ io.c       2005-05-19 09:01:27
 @@ -57,6 +57,7 @@ extern int remove_sent_files;
  extern int preserve_hard_links;
@@ -41,8 +41,8 @@ Do we need configure support for mktime()?
        if (t - last_io_in >= io_timeout) {
                if (!am_server && !am_daemon) {
                        rprintf(FERROR, "io timeout after %d seconds -- exiting\n",
---- orig/options.c     2005-05-19 08:52:42
-+++ options.c  2005-05-19 09:01:55
+--- orig/options.c     2005-08-27 21:11:26
++++ options.c  2005-08-27 21:27:57
 @@ -106,6 +106,7 @@ int checksum_seed = 0;
  int inplace = 0;
  int delay_updates = 0;
@@ -68,16 +68,16 @@ Do we need configure support for mktime()?
        OPT_REFUSED_BASE = 9000};
  
  static struct poptOption long_options[] = {
-@@ -450,6 +454,8 @@ static struct poptOption long_options[] 
+@@ -458,6 +462,8 @@ static struct poptOption long_options[] 
    {"log-format",       0,  POPT_ARG_STRING, &log_format, 0, 0, 0 },
    {"itemize-changes", 'i', POPT_ARG_NONE,   &itemize_changes, 0, 0, 0 },
    {"bwlimit",          0,  POPT_ARG_INT,    &bwlimit, 0, 0, 0 },
 +  {"stop-at",          0,  POPT_ARG_STRING, 0, OPT_STOP_AT, 0, 0 },
 +  {"time-limit",       0,  POPT_ARG_STRING, 0, OPT_TIME_LIMIT, 0, 0 },
+   {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
    {"backup-dir",       0,  POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
-   {"hard-links",      'H', POPT_ARG_NONE,   &preserve_hard_links, 0, 0, 0 },
-   {"read-batch",       0,  POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
-@@ -876,6 +882,36 @@ int parse_arguments(int *argc, const cha
+   {"suffix",           0,  POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
+@@ -916,6 +922,36 @@ int parse_arguments(int *argc, const cha
                        basis_dir[basis_dir_cnt++] = (char *)arg;
                        break;
  
@@ -114,7 +114,7 @@ Do we need configure support for mktime()?
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -1365,6 +1401,15 @@ void server_options(char **args,int *arg
+@@ -1412,6 +1448,15 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
@@ -130,9 +130,9 @@ Do we need configure support for mktime()?
        if (backup_dir) {
                args[ac++] = "--backup-dir";
                args[ac++] = backup_dir;
---- orig/rsync.yo      2005-05-22 20:53:34
+--- orig/rsync.yo      2005-08-27 21:05:12
 +++ rsync.yo   2005-02-01 10:46:35
-@@ -379,6 +379,8 @@ to the detailed description below for a 
+@@ -378,6 +378,8 @@ to the detailed description below for a 
       --password-file=FILE    read password from FILE
       --list-only             list the files instead of copying them
       --bwlimit=KBPS          limit I/O bandwidth; KBytes per second
@@ -141,7 +141,7 @@ Do we need configure support for mktime()?
       --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
-@@ -1283,6 +1285,19 @@ transfer was too fast, it will wait befo
+@@ -1320,6 +1322,19 @@ transfer was too fast, it will wait befo
  result is an average transfer rate equaling the specified limit. A value
  of zero specifies no limit.
  
@@ -161,9 +161,9 @@ Do we need configure support for mktime()?
  dit(bf(--write-batch=FILE)) Record a file that can later be applied to
  another identical destination with bf(--read-batch). See the "BATCH MODE"
  section for details, and also the bf(--only-write-batch) option.
---- orig/util.c        2005-05-03 16:47:33
+--- orig/util.c        2005-08-17 06:45:08
 +++ util.c     2004-07-03 20:23:22
-@@ -126,6 +126,132 @@ void overflow(char *str)
+@@ -126,6 +126,132 @@ void overflow_exit(char *str)
        exit_cleanup(RERR_MALLOC);
  }
  
@@ -295,4 +295,4 @@ Do we need configure support for mktime()?
 +}
  
  
- int set_modtime(char *fname, time_t modtime)
+ int set_modtime(char *fname, time_t modtime, mode_t mode)
index 18419567c5db9932af5d241b6f8bbd831ffeb069..4b052521983d09af9521bf059b9ea5550438c206 100644 (file)
@@ -54,7 +54,7 @@ After applying this patch, run these commands for a successful build:
        if (verbose > 1) {
 --- orig/configure.in  2004-08-19 19:53:27
 +++ configure.in       2005-05-12 22:57:53
-@@ -821,6 +821,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
+@@ -822,6 +822,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
    AC_MSG_RESULT(no)
  )
  
@@ -85,11 +85,11 @@ After applying this patch, run these commands for a successful build:
  AC_CONFIG_FILES([Makefile lib/dummy zlib/dummy popt/dummy shconfig])
  AC_OUTPUT
  
---- orig/flist.c       2005-03-16 02:24:11
+--- orig/flist.c       2005-07-29 02:49:06
 +++ flist.c    2005-05-12 22:55:41
 @@ -976,6 +976,8 @@ static struct file_struct *send_file_nam
                return NULL;
-       if (!MAKE_ACL(file, fname))
+       if (MAKE_ACL(file, fname) < 0)
                return NULL;
 +      if (!MAKE_XATTR(file, fname))
 +              return NULL;
@@ -108,7 +108,7 @@ After applying this patch, run these commands for a successful build:
        }
        return file;
  }
-@@ -1325,6 +1329,7 @@ struct file_list *recv_file_list(int f)
+@@ -1334,6 +1338,7 @@ struct file_list *recv_file_list(int f)
                file = receive_file_entry(flist, flags, f);
  
                RECEIVE_ACL(file, f);
@@ -116,7 +116,7 @@ After applying this patch, run these commands for a successful build:
  
                if (S_ISREG(file->mode))
                        stats.total_size += file->length;
-@@ -1349,6 +1354,7 @@ struct file_list *recv_file_list(int f)
+@@ -1358,6 +1363,7 @@ struct file_list *recv_file_list(int f)
        clean_flist(flist, relative_paths, 1);
  
        SORT_FILE_ACL_INDEX_LISTS();
@@ -126,7 +126,7 @@ After applying this patch, run these commands for a successful build:
                /* Now send the uid/gid list. This was introduced in
 --- orig/generator.c   2005-05-12 23:34:00
 +++ generator.c        2005-05-12 23:21:08
-@@ -720,6 +720,10 @@ static void recv_generator(char *fname, 
+@@ -729,6 +729,10 @@ static void recv_generator(char *fname, 
                if (f_out == -1)
                        SET_ACL(fname, file);
  #endif
@@ -193,8 +193,8 @@ After applying this patch, run these commands for a successful build:
 +#else
 +
 +#endif /* No xattrs */
---- orig/options.c     2005-05-12 23:34:38
-+++ options.c  2005-05-12 23:21:25
+--- orig/options.c     2005-08-27 21:15:29
++++ options.c  2005-08-27 21:29:40
 @@ -44,6 +44,7 @@ int copy_links = 0;
  int preserve_links = 0;
  int preserve_hard_links = 0;
@@ -203,7 +203,7 @@ After applying this patch, run these commands for a successful build:
  int preserve_perms = 0;
  int preserve_devices = 0;
  int preserve_uid = 0;
-@@ -182,6 +183,7 @@ static void print_rsync_version(enum log
+@@ -183,6 +184,7 @@ static void print_rsync_version(enum log
        char const *have_inplace = "no ";
        char const *hardlinks = "no ";
        char const *acls = "no ";
@@ -211,7 +211,7 @@ After applying this patch, run these commands for a successful build:
        char const *links = "no ";
        char const *ipv6 = "no ";
        STRUCT_STAT *dumstat;
-@@ -201,7 +203,9 @@ static void print_rsync_version(enum log
+@@ -202,7 +204,9 @@ static void print_rsync_version(enum log
  #ifdef SUPPORT_ACLS
        acls = "";
  #endif
@@ -222,7 +222,7 @@ After applying this patch, run these commands for a successful build:
  #ifdef SUPPORT_LINKS
        links = "";
  #endif
-@@ -216,9 +220,9 @@ static void print_rsync_version(enum log
+@@ -217,9 +221,9 @@ static void print_rsync_version(enum log
                "Copyright (C) 1996-2005 by Andrew Tridgell and others\n");
        rprintf(f, "<http://rsync.samba.org/>\n");
        rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
@@ -234,7 +234,7 @@ After applying this patch, run these commands for a successful build:
  
        /* Note that this field may not have type ino_t.  It depends
         * on the complicated interaction between largefile feature
-@@ -289,6 +293,7 @@ void usage(enum logcode F)
+@@ -291,6 +295,7 @@ void usage(enum logcode F)
    rprintf(F," -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n");
    rprintf(F," -p, --perms                 preserve permissions\n");
    rprintf(F," -A, --acls                  preserve ACLs (implies --perms)\n");
@@ -242,33 +242,35 @@ After applying this patch, run these commands for a successful build:
    rprintf(F," -o, --owner                 preserve owner (root only)\n");
    rprintf(F," -g, --group                 preserve group\n");
    rprintf(F," -D, --devices               preserve devices (root only)\n");
-@@ -416,6 +421,7 @@ static struct poptOption long_options[] 
-   {"copy-unsafe-links",0,  POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
-   {"perms",           'p', POPT_ARG_NONE,   &preserve_perms, 0, 0, 0 },
-   {"acls",            'A', POPT_ARG_NONE,   0,              'A', 0, 0 },
-+  {"xattrs",          'X', POPT_ARG_NONE,   0,              'X', 0, 0 },
-   {"owner",           'o', POPT_ARG_NONE,   &preserve_uid, 0, 0, 0 },
-   {"group",           'g', POPT_ARG_NONE,   &preserve_gid, 0, 0, 0 },
-   {"devices",         'D', POPT_ARG_NONE,   &preserve_devices, 0, 0, 0 },
-@@ -901,6 +907,17 @@ int parse_arguments(int *argc, const cha
+@@ -395,6 +400,9 @@ static struct poptOption long_options[] 
+   {"acls",            'A', POPT_ARG_NONE,   0, 'A', 0, 0 },
+   {"no-acls",          0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
+   {"no-A",             0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
++  {"xattrs",          'X', POPT_ARG_NONE,   0, 'X', 0, 0 },
++  {"no-xattrs",        0,  POPT_ARG_VAL,    &preserve_xattrs, 0, 0, 0 },
++  {"no-X",             0,  POPT_ARG_VAL,    &preserve_xattrs, 0, 0, 0 },
+   {"times",           't', POPT_ARG_VAL,    &preserve_times, 1, 0, 0 },
+   {"no-times",         0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
+   {"no-t",             0,  POPT_ARG_VAL,    &preserve_times, 0, 0, 0 },
+@@ -943,6 +951,17 @@ int parse_arguments(int *argc, const cha
+                       return 0;
  #endif /* SUPPORT_ACLS */
-                       break;
  
 +              case 'X':
 +#ifdef SUPPORT_XATTRS
 +                      preserve_xattrs = 1;
 +                      preserve_perms = 1;
++                      break;
 +#else
 +                      snprintf(err_buf,sizeof(err_buf),
 +                               "extended attributes are not supported on this %s\n",
 +                               am_server ? "server" : "client");
 +                      return 0;
 +#endif /* SUPPORT_XATTRS */
-+                      break;
  
                default:
                        /* A large opt value means that set_refuse_options()
-@@ -1310,6 +1327,8 @@ void server_options(char **args,int *arg
+@@ -1359,6 +1378,8 @@ void server_options(char **args,int *arg
                argstr[x++] = 'H';
        if (preserve_acls)
                argstr[x++] = 'A';
@@ -279,7 +281,7 @@ After applying this patch, run these commands for a successful build:
        if (preserve_gid)
 --- orig/rsync.c       2004-07-03 20:11:58
 +++ rsync.c    2005-03-03 01:31:22
-@@ -144,6 +144,14 @@ int set_perms(char *fname,struct file_st
+@@ -146,6 +146,14 @@ int set_perms(char *fname,struct file_st
                if (SET_ACL(fname, file) == 0)
                        updated = 1;
        }
@@ -294,9 +296,9 @@ After applying this patch, run these commands for a successful build:
  
        if (verbose > 1 && flags & PERMS_REPORT) {
                enum logcode code = daemon_log_format_has_i || dry_run
---- orig/rsync.h       2005-05-12 23:32:56
+--- orig/rsync.h       2005-07-29 02:25:55
 +++ rsync.h    2005-05-12 23:19:46
-@@ -676,6 +676,38 @@ struct stats {
+@@ -684,6 +684,38 @@ struct stats {
  #endif /* SUPPORT_ACLS */
  #include "smb_acls.h"
  
@@ -337,7 +339,7 @@ After applying this patch, run these commands for a successful build:
  /* We have replacement versions of these if they're missing. */
 --- orig/rsync.yo      2004-07-03 20:11:58
 +++ rsync.yo   2005-03-03 01:33:53
-@@ -307,6 +307,7 @@ to the detailed description below for a 
+@@ -319,6 +319,7 @@ to the detailed description below for a 
   -K, --keep-dirlinks         treat symlinked dir on receiver as dir
   -p, --perms                 preserve permissions
   -A, --acls                  preserve ACLs (implies -p) [local option]
@@ -345,7 +347,7 @@ After applying this patch, run these commands for a successful build:
   -o, --owner                 preserve owner (root only)
   -g, --group                 preserve group
   -D, --devices               preserve devices (root only)
-@@ -624,6 +625,11 @@ ACLs to be the same as the local ACLs.  
+@@ -671,6 +672,11 @@ ACLs to be the same as the local ACLs.  
  remote machine's rsync supports this option also. This is a non-standard
  option.