./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/errcode.h b/errcode.h
--- a/errcode.h
+++ b/errcode.h
}
void write_del_stats(int f)
-@@ -1635,6 +1638,14 @@ void remember_children(UNUSED(int val))
+@@ -1630,6 +1633,14 @@ void remember_children(UNUSED(int val))
break;
}
}
}
#endif
#ifndef HAVE_SIGACTION
-@@ -1688,6 +1699,13 @@ static void rsync_panic_handler(UNUSED(int whatsig))
+@@ -1683,6 +1694,13 @@ static void rsync_panic_handler(UNUSED(int whatsig))
}
#endif
static void unset_env_var(const char *var)
{
#ifdef HAVE_UNSETENV
-@@ -1704,7 +1722,6 @@ static void unset_env_var(const char *var)
+@@ -1699,7 +1717,6 @@ static void unset_env_var(const char *var)
#endif
}
int main(int argc,char *argv[])
{
int ret;
-@@ -1728,6 +1745,11 @@ int main(int argc,char *argv[])
+@@ -1723,6 +1740,11 @@ int main(int argc,char *argv[])
SIGACTMASK(SIGFPE, rsync_panic_handler);
SIGACTMASK(SIGABRT, rsync_panic_handler);
SIGACTMASK(SIGBUS, rsync_panic_handler);
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
-@@ -896,6 +896,10 @@ extern int xattrs_ndx;
+@@ -901,6 +901,10 @@ extern int xattrs_ndx;
#define F_SUM(f) ((char*)OPT_EXTRA(f, START_BUMP(f) + HLINK_BUMP(f) \
+ SUM_EXTRA_CNT - 1))
/* Some utility defines: */
#define F_IS_ACTIVE(f) (f)->basename[0]
#define F_IS_HLINKED(f) ((f)->flags & FLAG_HLINKED)
-@@ -1109,6 +1113,13 @@ typedef struct {
+@@ -1114,6 +1118,13 @@ typedef struct {
#define RELNAMECACHE_LEN (offsetof(relnamecache, fname))
#endif
extern int daemon_connection;
extern int protocol_version;
extern int remove_source_files;
-@@ -1066,6 +1067,9 @@ static void got_flist_entry_status(enum festatus status, int ndx)
+@@ -1084,6 +1085,9 @@ static void got_flist_entry_status(enum festatus status, int ndx)
if (inc_recurse)
flist->in_progress++;
}
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
-@@ -1115,6 +1115,8 @@ typedef struct {
+@@ -1120,6 +1120,8 @@ typedef struct {
#define CSF_ENABLE (1<<1)
#define CSF_LAX (1<<2)
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
# Programs we must have to run the test cases
CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) getfsdev$(EXEEXT) \
-@@ -163,7 +163,7 @@ getgroups$(EXEEXT): getgroups.o
+@@ -166,7 +166,7 @@ getgroups$(EXEEXT): getgroups.o
getfsdev$(EXEEXT): getfsdev.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ getfsdev.o $(LIBS)
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/daemon-parm.txt b/daemon-parm.txt
--- a/daemon-parm.txt
+++ b/daemon-parm.txt
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
-@@ -31,6 +31,7 @@ aclocal.m4
+@@ -32,6 +32,7 @@ aclocal.m4
/gists
/gmon.out
/rsync
if test -f rsyncd.conf.5; then $(INSTALLMAN) -m 644 rsyncd.conf.5 $(DESTDIR)$(mandir)/man5; fi
if test "$(with_rrsync)" = yes; then \
$(INSTALLCMD) -m 755 $(srcdir)/support/rrsync $(DESTDIR)$(bindir); \
-@@ -101,10 +104,13 @@ install-strip:
- rsync$(EXEEXT): $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+@@ -104,10 +107,13 @@ rsync$(EXEEXT): $(OBJS)
+ rrsync: support/rrsync
+ cp -p $(srcdir)/support/rrsync rrsync
+rsyncdb$(EXEEXT): rsync$(EXEEXT)
+ ln -s rsync$(EXEEXT) rsyncdb$(EXEEXT)
loadparm.o: default-dont-compress.h daemon-parm.h
flist.o: rounding.h
-@@ -115,6 +121,9 @@ default-cvsignore.h default-dont-compress.h: rsync.1.md define-from-md.awk
+@@ -118,6 +124,9 @@ default-cvsignore.h default-dont-compress.h: rsync.1.md define-from-md.awk
help-rsync.h help-rsyncd.h: rsync.1.md help-from-md.awk
$(AWK) -f $(srcdir)/help-from-md.awk -v hfile=$@ $(srcdir)/rsync.1.md
daemon-parm.h: daemon-parm.txt daemon-parm.awk
$(AWK) -f $(srcdir)/daemon-parm.awk $(srcdir)/daemon-parm.txt
-@@ -252,7 +261,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c daemon-parm.h
+@@ -255,7 +264,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c daemon-parm.h
$(AWK) -f $(srcdir)/mkproto.awk $(srcdir)/*.c $(srcdir)/lib/compat.c daemon-parm.h
.PHONY: man
-man: rsync.1 rsync-ssl.1 rsyncd.conf.5 rrsync.1
+man: rsync.1 rsync-ssl.1 rsyncd.conf.5 rrsync.1 rsyncdb.1
- rsync.1: rsync.1.md md2man version.h Makefile
+ rsync.1: rsync.1.md md-convert version.h Makefile
@$(srcdir)/maybe-make-man $(srcdir) rsync.1.md
-@@ -266,9 +275,12 @@ rsyncd.conf.5: rsyncd.conf.5.md md2man version.h Makefile
- rrsync.1: support/rrsync.1.md md2man Makefile
+@@ -269,9 +278,12 @@ rsyncd.conf.5: rsyncd.conf.5.md md-convert version.h Makefile
+ rrsync.1: support/rrsync.1.md md-convert Makefile
@$(srcdir)/maybe-make-man $(srcdir) support/rrsync.1.md
-+rsyncdb.1: rsyncdb.1.md md2man NEWS.md Makefile
++rsyncdb.1: rsyncdb.1.md md-convert NEWS.md Makefile
+ @$(srcdir)/maybe-make-man $(srcdir) rsyncdb.1.md
+
.PHONY: clean
extern int io_error;
extern int batch_fd;
extern int eol_nulls;
-@@ -1492,6 +1494,32 @@ static void read_a_msg(void)
+@@ -1512,6 +1514,32 @@ static void read_a_msg(void)
if (am_sender)
maybe_send_keepalive(time(NULL), MSK_ALLOW_FLUSH);
break;
case MSG_DELETED:
if (msg_bytes >= sizeof data)
goto overflow;
-@@ -1643,6 +1671,7 @@ static void read_a_msg(void)
+@@ -1665,6 +1693,7 @@ static void read_a_msg(void)
* with a duplicate exit message. */
_exit_cleanup(val, __FILE__, 0 - __LINE__);
default:
extern char *shell_cmd;
extern char *password_file;
extern char *backup_dir;
-@@ -1245,6 +1248,9 @@ void start_server(int f_in, int f_out, int argc, char *argv[])
+@@ -1240,6 +1243,9 @@ void start_server(int f_in, int f_out, int argc, char *argv[])
if (am_daemon && io_timeout && protocol_version >= 31)
send_msg_int(MSG_IO_TIMEOUT, io_timeout);
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
if (need_messages_from_generator)
-@@ -1535,6 +1541,9 @@ static int start_client(int argc, char *argv[])
+@@ -1530,6 +1536,9 @@ static int start_client(int argc, char *argv[])
else
env_port = rsync_port;
#define NDX_DONE -1
#define NDX_FLIST_EOF -2
#define NDX_DEL_STATS -3
-@@ -1431,7 +1435,8 @@ extern short info_levels[], debug_levels[];
+@@ -1436,7 +1440,8 @@ extern short info_levels[], debug_levels[];
#define DEBUG_CHDIR (DEBUG_BIND+1)
#define DEBUG_CONNECT (DEBUG_CHDIR+1)
#define DEBUG_CMD (DEBUG_CONNECT+1)
a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/backup.c b/backup.c
--- a/backup.c
+++ b/backup.c
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
-@@ -723,7 +723,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -718,7 +718,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
if (mkpath_dest_arg && statret < 0 && (cp || file_total > 1)) {
int save_errno = errno;
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
extern int msgs2stderr;
extern int module_id;
extern int read_only;
-@@ -974,6 +978,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
+@@ -969,6 +973,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
* points to an identical file won't be replaced by the referent. */
copy_links = copy_dirlinks = copy_unsafe_links = 0;
/* Find a variable that is either exactly 32-bits or longer.
* If some code depends on 32-bit truncation, it will need to
* take special action in a "#if SIZEOF_INT32 > 4" section. */
-@@ -818,6 +845,7 @@ extern int pathname_ndx;
+@@ -823,6 +850,7 @@ extern int pathname_ndx;
extern int depth_ndx;
extern int uid_ndx;
extern int gid_ndx;
extern int acls_ndx;
extern int xattrs_ndx;
-@@ -872,6 +900,11 @@ extern int xattrs_ndx;
+@@ -877,6 +905,11 @@ extern int xattrs_ndx;
/* When the associated option is on, all entries will have these present: */
#define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
#define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
#define XFLG_FATAL_ERRORS (1<<0)
#define XFLG_OLD_PREFIXES (1<<1)
-@@ -981,6 +984,8 @@ struct map_struct {
+@@ -986,6 +989,8 @@ struct map_struct {
int status; /* first errno from read errors */
};
#define NAME_IS_FILE (0) /* filter name as a file */
#define NAME_IS_DIR (1<<0) /* filter name as a dir */
#define NAME_IS_XATTR (1<<2) /* filter name as an xattr */
-@@ -1006,8 +1011,18 @@ struct map_struct {
+@@ -1011,8 +1016,18 @@ struct map_struct {
#define FILTRULE_CLEAR_LIST (1<<18)/* this item is the "!" token */
#define FILTRULE_PERISHABLE (1<<19)/* perishable if parent dir goes away */
#define FILTRULE_XATTR (1<<20)/* rule only applies to xattr names */
typedef struct filter_struct {
struct filter_struct *next;
-@@ -1017,6 +1032,11 @@ typedef struct filter_struct {
+@@ -1022,6 +1037,11 @@ typedef struct filter_struct {
int slash_cnt;
struct filter_list_struct *mergelist;
} u;
int raw_argc, cooked_argc;
char **raw_argv, **cooked_argv;
-@@ -672,6 +678,43 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in
+@@ -667,6 +673,43 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in
return pid;
}
/* The receiving side operates in one of two modes:
*
* 1. it receives any number of files into a destination directory,
-@@ -752,6 +795,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -747,6 +790,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
exit_cleanup(RERR_FILESELECT);
}
filesystem_dev = st.st_dev; /* ensures --force works right w/-x */
return NULL;
}
if (file_total > 1) {
-@@ -809,7 +855,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -804,7 +850,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
full_fname(dest_path));
exit_cleanup(RERR_FILESELECT);
}
return NULL;
}
-@@ -829,6 +877,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
+@@ -824,6 +872,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
full_fname(dest_path));
exit_cleanup(RERR_FILESELECT);
}
- Make this code handle multibyte character encodings, and honor the
--iconv setting when converting case.
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
./configure
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
-@@ -1578,7 +1578,7 @@ static int start_client(int argc, char *argv[])
+@@ -1573,7 +1573,7 @@ static int start_client(int argc, char *argv[])
* remote shell command, we need to do the RSYNCD protocol first */
if (daemon_connection) {
int tmpret;
./configure
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
-@@ -1440,7 +1440,8 @@ extern short info_levels[], debug_levels[];
+@@ -1445,7 +1445,8 @@ extern short info_levels[], debug_levels[];
#define DEBUG_FUZZY (DEBUG_FLIST+1)
#define DEBUG_GENR (DEBUG_FUZZY+1)
#define DEBUG_HASH (DEBUG_GENR+1)
fast fallback for the case where xxHash libraries are not available at
build time.
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
lib/permstring.o lib/pool_alloc.o lib/sysacls.o lib/sysxattrs.o @LIBOBJS@
zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
zlib/trees.o zlib/zutil.o zlib/adler32.o zlib/compress.o zlib/crc32.o
-@@ -148,6 +148,9 @@ simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
+@@ -151,6 +151,9 @@ simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
simd-checksum-avx2.o: simd-checksum-avx2.S
@$(srcdir)/cmd-or-msg disable-asm $(CC) $(CFLAGS) --include=$(srcdir)/rsync.h -DAVX2_ASM -I. @NOEXECSTACK@ -c -o $@ $(srcdir)/simd-checksum-avx2.S
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(LIBSLP)
- $(OBJS): $(HEADERS)
- $(CHECK_OBJS): $(HEADERS)
+ rrsync: support/rrsync
+ cp -p $(srcdir)/support/rrsync rrsync
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
-@@ -1409,6 +1409,22 @@ static int start_client(int argc, char *argv[])
+@@ -1404,6 +1404,22 @@ static int start_client(int argc, char *argv[])
if (!read_batch) { /* for read_batch, NO source is specified */
char *path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/fileio.c b/fileio.c
--- a/fileio.c
+++ b/fileio.c
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/NEWS.md b/NEWS.md
--- a/NEWS.md
+++ b/NEWS.md
./configure (optional if already run)
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
patch -p1 <patches/xxh3-safety-check.diff
make
-based-on: 72adf49ba8cb81426e2b9799fbd43c6284b013a9
+based-on: a2b630c0bb586c9761fd5fc53dc4c212b6dd25df
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c