int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
-@@ -651,6 +652,11 @@ static void print_capabilities(enum logcode f)
+@@ -647,6 +648,11 @@ static void print_capabilities(enum logcode f)
#endif
"file-flags",
+#endif
+ "crtimes",
+
- NULL
- };
-
-@@ -800,6 +806,9 @@ static struct poptOption long_options[] = {
+ "*"
+ #ifndef HAVE_SIMD
+ "no "
+@@ -827,6 +833,9 @@ static struct poptOption long_options[] = {
{"no-U", 0, POPT_ARG_VAL, &preserve_atimes, 0, 0, 0 },
{"open-noatime", 0, POPT_ARG_VAL, &open_noatime, 1, 0, 0 },
{"no-open-noatime", 0, POPT_ARG_VAL, &open_noatime, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 1, 0, 0 },
{"no-omit-dir-times",0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
{"no-O", 0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
-@@ -1175,6 +1184,9 @@ static void set_refuse_options(void)
+@@ -1202,6 +1211,9 @@ static void set_refuse_options(void)
parse_one_refuse_match(0, "force-uchange", list_end);
parse_one_refuse_match(0, "force-schange", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2516,6 +2528,10 @@ void server_options(char **args, int *argc_p)
+@@ -2548,6 +2560,10 @@ void server_options(char **args, int *argc_p)
if (preserve_atimes > 1)
argstr[x++] = 'U';
}
./configure
make
-based-on: 6b237b0fe9b0941c51afc9e880a28c47583a11de
+based-on: 6884ccbd2f4f1cf9d350969e51bb6aca58a35da7
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -472,6 +472,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
+@@ -473,6 +473,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \
sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \
sys/un.h sys/attr.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \
netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h \
sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h \
popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netinet/ip.h \
-@@ -1321,6 +1322,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
+@@ -1322,6 +1323,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
fi
fi
DEBUG_WORD(DEL, W_REC, "Debug delete actions (levels 1-3)"),
DEBUG_WORD(DELTASUM, W_SND|W_REC, "Debug delta-transfer checksumming (levels 1-4)"),
DEBUG_WORD(DUP, W_REC, "Debug weeding of duplicate names"),
-@@ -652,6 +658,16 @@ static void print_capabilities(enum logcode f)
+@@ -640,6 +646,16 @@ static void print_capabilities(enum logcode f)
#endif
"prealloc",
+#endif
+ "SQLite",
+
- NULL
- };
-
-@@ -751,6 +767,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+ "*"
+ #ifndef HAVE_SIMD
+ "no "
+@@ -764,6 +780,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -901,6 +918,10 @@ static struct poptOption long_options[] = {
+@@ -914,6 +931,10 @@ static struct poptOption long_options[] = {
{"no-c", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 },
{"checksum-choice", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"cc", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
{"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
-@@ -990,6 +1011,9 @@ static struct poptOption long_options[] = {
+@@ -1003,6 +1024,9 @@ static struct poptOption long_options[] = {
{"dparam", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
{"detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 },
{"no-detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 },
{0,0,0,0, 0, 0, 0}
};
-@@ -1030,6 +1054,39 @@ static struct poptOption long_daemon_options[] = {
+@@ -1043,6 +1067,39 @@ static struct poptOption long_daemon_options[] = {
{0,0,0,0, 0, 0, 0}
};
static char err_buf[200];
-@@ -1155,6 +1212,8 @@ static void set_refuse_options(void)
+@@ -1168,6 +1225,8 @@ static void set_refuse_options(void)
parse_one_refuse_match(0, "iconv", list_end);
#endif
parse_one_refuse_match(0, "log-file*", list_end);
}
#ifndef SUPPORT_HARD_LINKS
-@@ -1293,6 +1352,102 @@ static void create_refuse_error(int which)
+@@ -1306,6 +1365,102 @@ static void create_refuse_error(int which)
snprintf(err_buf + n, sizeof err_buf - n, " (-%c)\n", op->shortName);
}
/* This is used to make sure that --daemon & --server cannot be aliased to
* something else. These options have always disabled popt aliases for the
* parsing of a daemon or server command-line, but we have to make sure that
-@@ -1349,6 +1504,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1362,6 +1517,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
}
set_refuse_options();
#ifdef ICONV_OPTION
-@@ -1467,6 +1628,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1480,6 +1641,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
am_daemon = 1;
return 1;
case OPT_MODIFY_WINDOW:
/* The value has already been set by popt, but
* we need to remember that we're using a
-@@ -1541,6 +1708,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1554,6 +1721,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
preserve_devices = preserve_specials = 0;
break;
./configure (optional if already run)
make
-based-on: 6b237b0fe9b0941c51afc9e880a28c47583a11de
+based-on: 6884ccbd2f4f1cf9d350969e51bb6aca58a35da7
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
int io_timeout = 0;
int prune_empty_dirs = 0;
int use_qsort = 0;
-@@ -652,6 +654,11 @@ static void print_capabilities(enum logcode f)
+@@ -640,6 +642,11 @@ static void print_capabilities(enum logcode f)
#endif
"prealloc",
+#endif
+ "file-flags",
+
- NULL
- };
-
-@@ -790,6 +797,8 @@ static struct poptOption long_options[] = {
+ "*"
+ #ifndef HAVE_SIMD
+ "no "
+@@ -803,6 +810,8 @@ static struct poptOption long_options[] = {
{"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 },
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"executability", 'E', POPT_ARG_NONE, &preserve_executability, 0, 0, 0 },
{"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 },
{"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 },
-@@ -883,6 +892,12 @@ static struct poptOption long_options[] = {
+@@ -896,6 +905,12 @@ static struct poptOption long_options[] = {
{"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 },
{"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 },
{"no-force", 0, POPT_ARG_VAL, &force_delete, 0, 0, 0 },
{"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -1166,6 +1181,14 @@ static void set_refuse_options(void)
+@@ -1179,6 +1194,14 @@ static void set_refuse_options(void)
#ifndef HAVE_SETVBUF
parse_one_refuse_match(0, "outbuf", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2617,6 +2640,9 @@ void server_options(char **args, int *argc_p)
+@@ -2630,6 +2653,9 @@ void server_options(char **args, int *argc_p)
if (xfer_dirs && !recurse && delete_mode && am_sender)
args[ac++] = "--no-r";
if (do_compression && do_compression_level != CLVL_NOT_SPECIFIED) {
if (asprintf(&arg, "--compress-level=%d", do_compression_level) < 0)
goto oom;
-@@ -2720,6 +2746,16 @@ void server_options(char **args, int *argc_p)
+@@ -2733,6 +2759,16 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--delete-excluded";
if (force_delete)
args[ac++] = "--force";
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 6b237b0fe9b0941c51afc9e880a28c47583a11de
+based-on: 6884ccbd2f4f1cf9d350969e51bb6aca58a35da7
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -970,6 +970,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -971,6 +971,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
fi
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -652,6 +652,11 @@ static void print_capabilities(enum logcode f)
+@@ -640,6 +640,11 @@ static void print_capabilities(enum logcode f)
#endif
"prealloc",
+#endif
+ "SLP",
+
- NULL
- };
-
+ "*"
+ #ifndef HAVE_SIMD
+ "no "
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md