[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Mon Jul 27 04:06:54 UTC 2020
The branch, master has been updated
via f6967eca Complain about a missing/non-dir `--temp-dir`.
via 8455bf66 Don't include config.h in proto.h rule.
via 00e59e01 Mention awk/gawk/nawk dependency.
from 91eaffe1 Mention `--protect-args` in `--chown` info.
https://git.samba.org/?p=rsync.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f6967eca58c7438ebc99a435a49549487bb9af75
Author: Wayne Davison <wayne at opencoder.net>
Date: Sun Jul 26 01:56:30 2020 -0700
Complain about a missing/non-dir `--temp-dir`.
commit 8455bf66c28d8e180cab72f3c9fa99ee2397fb52
Author: Wayne Davison <wayne at opencoder.net>
Date: Sun Jul 26 01:40:55 2020 -0700
Don't include config.h in proto.h rule.
commit 00e59e01e3a76e97bce79d24da27a1ee8ee8dd9a
Author: Wayne Davison <wayne at opencoder.net>
Date: Sun Jul 26 01:40:43 2020 -0700
Mention awk/gawk/nawk dependency.
-----------------------------------------------------------------------
Summary of changes:
INSTALL.md | 15 ++++++++-------
Makefile.in | 2 +-
NEWS.md | 3 +++
main.c | 18 ++++++++++++++++++
4 files changed, 30 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/INSTALL.md b/INSTALL.md
index 3e57db7d..02628c69 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -10,11 +10,12 @@ features (the impatient can skip down to the package summary):
## The basic setup
You need to have a C compiler installed and optionally a C++ compiler in order
-to try to build some hardware-accelerated checksum routines. If you're
-installing from the git repo (instead of a release tar file) you'll also need
-the GNU autotools (autoconf & automake) and your choice of 2 python3 markdown
-libraries: cmarkgfm or commonmark (needed to generate the man pages).
+to try to build some hardware-accelerated checksum routines. Rsync also needs
+a modern awk, which might be provides via gawk or nawk on some OSes.
+If you're installing from the git repo (instead of a release tar file) you'll
+also need the GNU autotools (autoconf & automake) and your choice of 2 python3
+markdown libraries: cmarkgfm or commonmark (needed to generate the man pages).
If your OS doesn't provide a python3-cmarkgfm or python3-commonmark package,
you can run the following to install the commonmark python library for your
build user (after installing python3's pip package):
@@ -80,7 +81,7 @@ like.
- For Debian and Ubuntu (Debian Buster users may want to briefly(?) enable
buster-backports to update zstd from 1.3 to 1.4):
- > sudo apt install -y gcc g++ autoconf automake python3-cmarkgfm
+ > sudo apt install -y gcc g++ gawk autoconf automake python3-cmarkgfm
> sudo apt install -y acl libacl1-dev
> sudo apt install -y attr libattr1-dev
> sudo apt install -y libxxhash-dev
@@ -91,7 +92,7 @@ like.
- For CentOS (use EPEL for python3-pip):
> sudo yum -y install epel-release
- > sudo yum -y install gcc g++ autoconf automake python3-pip
+ > sudo yum -y install gcc g++ gawk autoconf automake python3-pip
> sudo yum -y install acl libacl-devel
> sudo yum -y install attr libattr-devel
> sudo yum -y install xxhash-devel
@@ -117,7 +118,7 @@ like.
- For Cygwin (with all cygwin programs stopped, run the appropriate setup program from a cmd shell):
- > .\setup-x86_64.exe --quiet-mode -P make,autoconf,automake,gcc-core,python3,python36-commonmark
+ > .\setup-x86_64.exe --quiet-mode -P make,gawk,autoconf,automake,gcc-core,python3,python36-commonmark
> .\setup-x86_64.exe --quiet-mode -P attr,libattr-devel
> .\setup-x86_64.exe --quiet-mode -P libzstd-devel
> .\setup-x86_64.exe --quiet-mode -P liblz4-devel
diff --git a/Makefile.in b/Makefile.in
index a6ce0366..1c040172 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -231,7 +231,7 @@ proto: proto.h-tstamp
proto.h: proto.h-tstamp
@if test -f proto.h; then :; else cp -p $(srcdir)/proto.h .; fi
-proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h daemon-parm.h
+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
diff --git a/NEWS.md b/NEWS.md
index 03c0e5cb..66b88758 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -23,6 +23,9 @@
get out of sync between the sender and the receiver, which could cause a
device to get created with the wrong major value in its major,minor pair.
+ - Rsync now complains about a missing `--temp-dir` before starting any file
+ transfers.
+
### ENHANCEMENTS:
- Allow `--max-alloc=0` to specify no limit to the alloc sanity check.
diff --git a/main.c b/main.c
index e68d73c4..bfb69797 100644
--- a/main.c
+++ b/main.c
@@ -97,6 +97,7 @@ extern char *shell_cmd;
extern char *password_file;
extern char *backup_dir;
extern char *copy_as;
+extern char *tmpdir;
extern char curr_dir[MAXPATHLEN];
extern char backup_dir_buf[MAXPATHLEN];
extern char *basis_dir[MAX_BASIS_DIRS+1];
@@ -1002,6 +1003,23 @@ static int do_recv(int f_in, int f_out, char *local_name)
backup_dir_buf[backup_dir_len-1] = '/';
}
+ if (tmpdir) {
+ STRUCT_STAT st;
+ int ret = do_stat(tmpdir, &st);
+ if (ret < 0 || !S_ISDIR(st.st_mode)) {
+ if (ret == 0) {
+ rprintf(FERROR, "The temp-dir is not a directory: %s\n", tmpdir);
+ exit_cleanup(RERR_SYNTAX);
+ }
+ if (errno == ENOENT) {
+ rprintf(FERROR, "The temp-dir does not exist: %s\n", tmpdir);
+ exit_cleanup(RERR_SYNTAX);
+ }
+ rprintf(FERROR, "Failed to stat temp-dir %s: %s\n", tmpdir, strerror(errno));
+ exit_cleanup(RERR_FILEIO);
+ }
+ }
+
io_flush(FULL_FLUSH);
if ((pid = do_fork()) == -1) {
--
The rsync repository.
More information about the rsync-cvs
mailing list