int preserve_perms = 0;
int preserve_executability = 0;
int preserve_devices = 0;
-@@ -198,6 +199,7 @@ static void print_rsync_version(enum log
+@@ -199,6 +200,7 @@ static void print_rsync_version(enum log
char const *got_socketpair = "no ";
char const *have_inplace = "no ";
char const *hardlinks = "no ";
char const *links = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
-@@ -214,6 +216,10 @@ static void print_rsync_version(enum log
+@@ -215,6 +217,10 @@ static void print_rsync_version(enum log
hardlinks = "";
#endif
#ifdef SUPPORT_LINKS
links = "";
#endif
-@@ -227,9 +233,9 @@ static void print_rsync_version(enum log
+@@ -228,9 +234,9 @@ static void print_rsync_version(enum log
rprintf(f, "Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.\n");
rprintf(f, "<http://rsync.samba.org/>\n");
rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
-@@ -282,7 +288,7 @@ void usage(enum logcode F)
- rprintf(F," -v, --verbose increase verbosity\n");
+@@ -284,7 +290,7 @@ void usage(enum logcode F)
rprintf(F," -q, --quiet suppress non-error messages\n");
+ rprintf(F," --no-motd suppress daemon-mode MOTD (see manpage caveat)\n");
rprintf(F," -c, --checksum skip based on checksum, not mod-time & size\n");
- rprintf(F," -a, --archive archive mode; same as -rlptgoD (no -H)\n");
+ rprintf(F," -a, --archive archive mode; same as -rlptgoD (no -H, -A)\n");
rprintf(F," --no-OPTION turn off an implied OPTION (e.g. --no-D)\n");
rprintf(F," -r, --recursive recurse into directories\n");
rprintf(F," -R, --relative use relative path names\n");
-@@ -304,6 +310,9 @@ void usage(enum logcode F)
+@@ -306,6 +312,9 @@ void usage(enum logcode F)
rprintf(F," -p, --perms preserve permissions\n");
rprintf(F," -E, --executability preserve the file's executability\n");
rprintf(F," --chmod=CHMOD affect file and/or directory permissions\n");
rprintf(F," -o, --owner preserve owner (super-user only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," --devices preserve device files (super-user only)\n");
-@@ -421,6 +430,9 @@ static struct poptOption long_options[]
+@@ -425,6 +434,9 @@ static struct poptOption long_options[]
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"executability", 'E', POPT_ARG_NONE, &preserve_executability, 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 },
-@@ -1085,6 +1097,24 @@ int parse_arguments(int *argc, const cha
+@@ -1089,6 +1101,24 @@ int parse_arguments(int *argc, const cha
usage(FINFO);
exit_cleanup(0);
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1526,6 +1556,10 @@ void server_options(char **args,int *arg
+@@ -1530,6 +1560,10 @@ void server_options(char **args,int *arg
if (preserve_hard_links)
argstr[x++] = 'H';
/* We have replacement versions of these if they're missing. */
--- old/rsync.yo
+++ new/rsync.yo
-@@ -300,7 +300,7 @@ to the detailed description below for a
- -v, --verbose increase verbosity
+@@ -301,7 +301,7 @@ to the detailed description below for a
-q, --quiet suppress non-error messages
+ --no-motd suppress daemon-mode MOTD (see caveat)
-c, --checksum skip based on checksum, not mod-time & size
- -a, --archive archive mode; same as -rlptgoD (no -H)
+ -a, --archive archive mode; same as -rlptgoD (no -H, -A)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
-@@ -322,6 +322,7 @@ to the detailed description below for a
+@@ -323,6 +323,7 @@ to the detailed description below for a
-p, --perms preserve permissions
-E, --executability preserve executability
--chmod=CHMOD affect file and/or directory permissions
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
-@@ -745,7 +746,9 @@ quote(itemization(
+@@ -753,7 +754,9 @@ quote(itemization(
permissions, though the bf(--executability) option might change just
the execute permission for the file.
it() New files get their "normal" permission bits set to the source
their special permission bits disabled except in the case where a new
directory inherits a setgid bit from its parent directory.
))
-@@ -776,9 +779,11 @@ The preservation of the destination's se
+@@ -784,9 +787,11 @@ The preservation of the destination's se
directories when bf(--perms) is off was added in rsync 2.6.7. Older rsync
versions erroneously preserved the three special permission bits for
newly-created files when bf(--perms) was off, while overriding the
dit(bf(-E, --executability)) This option causes rsync to preserve the
executability (or non-executability) of regular files when bf(--perms) is
-@@ -796,6 +801,15 @@ quote(itemization(
+@@ -804,6 +809,15 @@ quote(itemization(
If bf(--perms) is enabled, this option is ignored.
dit(bf(--chmod)) This option tells rsync to apply one or more
comma-separated "chmod" strings to the permission of the files in the
transfer. The resulting value is treated as though it was the permissions
-@@ -1381,8 +1395,8 @@ if the receiving rsync is at least versi
+@@ -1389,8 +1403,8 @@ if the receiving rsync is at least versi
with older versions of rsync, but that also turns on the output of other
verbose messages).
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.
-@@ -1431,7 +1445,11 @@ quote(itemization(
+@@ -1439,7 +1453,11 @@ 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).
extern unsigned int file_struct_len;
/* === ACL structures === */
-@@ -743,6 +744,10 @@ void receive_acl(struct file_struct *fil
+@@ -740,6 +741,10 @@ void receive_acl(struct file_struct *fil
type = SMB_ACL_TYPE_ACCESS;
racl_list = &access_acl_list;
ndx_ptr = (char*)file + file_struct_len;
do {
char tag = read_byte(f);
int ndx;
-@@ -801,6 +806,10 @@ void cache_acl(struct file_struct *file,
+@@ -799,6 +804,10 @@ void cache_acl(struct file_struct *file,
racl = sxp->acc_acl;
racl_list = &access_acl_list;
ndx_ptr = (char*)file + file_struct_len;
do {
if (!racl)
ndx = -1;
-@@ -916,6 +925,10 @@ int set_acl(const char *fname, const str
+@@ -914,6 +923,10 @@ int set_acl(const char *fname, const str
type = SMB_ACL_TYPE_ACCESS;
ndx_ptr = (char*)file + file_struct_len;
int preserve_perms = 0;
int preserve_executability = 0;
int preserve_devices = 0;
-@@ -200,6 +201,7 @@ static void print_rsync_version(enum log
+@@ -201,6 +202,7 @@ static void print_rsync_version(enum log
char const *have_inplace = "no ";
char const *hardlinks = "no ";
char const *acls = "no ";
char const *links = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
-@@ -219,7 +221,9 @@ static void print_rsync_version(enum log
+@@ -220,7 +222,9 @@ static void print_rsync_version(enum log
#ifdef SUPPORT_ACLS
acls = "";
#endif
#ifdef SUPPORT_LINKS
links = "";
#endif
-@@ -233,9 +237,9 @@ static void print_rsync_version(enum log
+@@ -234,9 +238,9 @@ static void print_rsync_version(enum log
rprintf(f, "Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.\n");
rprintf(f, "<http://rsync.samba.org/>\n");
rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
-@@ -288,7 +292,7 @@ void usage(enum logcode F)
- rprintf(F," -v, --verbose increase verbosity\n");
+@@ -290,7 +294,7 @@ void usage(enum logcode F)
rprintf(F," -q, --quiet suppress non-error messages\n");
+ rprintf(F," --no-motd suppress daemon-mode MOTD (see manpage caveat)\n");
rprintf(F," -c, --checksum skip based on checksum, not mod-time & size\n");
- rprintf(F," -a, --archive archive mode; same as -rlptgoD (no -H, -A)\n");
+ rprintf(F," -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)\n");
rprintf(F," --no-OPTION turn off an implied OPTION (e.g. --no-D)\n");
rprintf(F," -r, --recursive recurse into directories\n");
rprintf(F," -R, --relative use relative path names\n");
-@@ -313,6 +317,9 @@ void usage(enum logcode F)
+@@ -315,6 +319,9 @@ void usage(enum logcode F)
#ifdef SUPPORT_ACLS
rprintf(F," -A, --acls preserve ACLs (implies --perms)\n");
#endif
rprintf(F," -o, --owner preserve owner (super-user only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," --devices preserve device files (super-user only)\n");
-@@ -433,6 +440,9 @@ static struct poptOption long_options[]
+@@ -437,6 +444,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 },
{"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 },
-@@ -1114,6 +1124,17 @@ int parse_arguments(int *argc, const cha
+@@ -1118,6 +1128,17 @@ int parse_arguments(int *argc, const cha
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
-@@ -1560,6 +1581,10 @@ void server_options(char **args,int *arg
+@@ -1564,6 +1585,10 @@ void server_options(char **args,int *arg
if (preserve_acls)
argstr[x++] = 'A';
#endif
#define ACL_READY(sx) ((sx).acc_acl != NULL)
--- old/rsync.yo
+++ new/rsync.yo
-@@ -300,7 +300,7 @@ to the detailed description below for a
- -v, --verbose increase verbosity
+@@ -301,7 +301,7 @@ to the detailed description below for a
-q, --quiet suppress non-error messages
+ --no-motd suppress daemon-mode MOTD (see caveat)
-c, --checksum skip based on checksum, not mod-time & size
- -a, --archive archive mode; same as -rlptgoD (no -H, -A)
+ -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
-@@ -323,6 +323,7 @@ to the detailed description below for a
+@@ -324,6 +324,7 @@ to the detailed description below for a
-E, --executability preserve executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies -p) [non-standard]
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
-@@ -810,6 +811,11 @@ version makes it incompatible with sendi
+@@ -818,6 +819,11 @@ version makes it incompatible with sendi
rsync unless you double the bf(--acls) option (e.g. bf(-AA)). This
doubling is not needed when pulling files from an older rsync.