[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Tue Jul 21 19:38:09 UTC 2020


The branch, master has been updated
       via  96be713f Update NEWS.
       via  13d8fc95 Avoid some extraneous parent-dir warnings
       via  f74473b1 Don't create a path for a file marked as missing.
       via  5eda68f1 Tweak include syntax.
       via  f6352073 Save the build into an artifact.
       via  64f7e893 Ignore *.exe files (for Cygwin builds).
       via  31556ec7 Use just $(...) instead of a mix of that and ${...}.
       via  9ad3f438 Make the daily build happen a few hours later.
      from  e9899dbd Add strict (no-skipping) checks and use them.

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 96be713fd23bb1c39a66a031596bfee04be7995b
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Jul 21 12:35:45 2020 -0700

    Update NEWS.

commit 13d8fc9542a1441dd93bc2c4ca1348b1b2b1a9e8
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Jul 21 11:42:32 2020 -0700

    Avoid some extraneous parent-dir warnings
    
    Don't complain about an absent parent dir if the current file is marked
    as missing and there is a marked-as-missing entry for the parent dir.

commit f74473b15141416be399018b019340c82d3657ea
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Jul 21 11:22:24 2020 -0700

    Don't create a path for a file marked as missing.

commit 5eda68f11bf6efe782cca60a2415191f4532c3b5
Author: Wayne Davison <wayne at opencoder.net>
Date:   Mon Jul 20 18:44:37 2020 -0700

    Tweak include syntax.

commit f63520734708d98573aa9269808985d206684e6e
Author: Wayne Davison <wayne at opencoder.net>
Date:   Mon Jul 20 14:43:28 2020 -0700

    Save the build into an artifact.

commit 64f7e893f3b133b2c340b21e1a32f6fec2b06a1f
Author: Wayne Davison <wayne at opencoder.net>
Date:   Mon Jul 20 14:43:06 2020 -0700

    Ignore *.exe files (for Cygwin builds).

commit 31556ec7a8f7dd781f8ac29ffe5f517af09778e0
Author: Wayne Davison <wayne at opencoder.net>
Date:   Mon Jul 20 14:42:13 2020 -0700

    Use just $(...) instead of a mix of that and ${...}.

commit 9ad3f4385f055e2a9abbde0058a92eef169c6699
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jul 18 23:17:25 2020 -0700

    Make the daily build happen a few hours later.

-----------------------------------------------------------------------

Summary of changes:
 .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++++--
 .gitignore                  |  1 +
 Makefile.in                 | 22 +++++++++++-----------
 NEWS.md                     |  6 +++++-
 checksum.c                  |  2 +-
 generator.c                 | 15 ++++++++++-----
 6 files changed, 60 insertions(+), 20 deletions(-)


Changeset truncated at 500 lines:

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 182fa6c9..812171dc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -6,11 +6,11 @@ on:
   pull_request:
     branches: [ master ]
   schedule:
-    - cron: '42 5 * * *'
+    - cron: '42 8 * * *'
 
 jobs:
 
-  linux-build:
+  ubuntu-build:
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout at v2
@@ -34,6 +34,16 @@ jobs:
       run: sudo make strict_check29
     - name: ssl file list
       run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
+    - name: save artifact
+      uses: actions/upload-artifact at v2
+      with:
+        name: ubuntu-bin
+        path: |
+          rsync
+          rsync-ssl
+          rsync.1
+          rsync-ssl.1
+          rsyncd.conf.5
 
   macos-build:
     runs-on: macos-latest
@@ -56,6 +66,16 @@ jobs:
       run: sudo make check
     - name: ssl file list
       run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
+    - name: save artifact
+      uses: actions/upload-artifact at v2
+      with:
+        name: macos-bin
+        path: |
+          rsync
+          rsync-ssl
+          rsync.1
+          rsync-ssl.1
+          rsyncd.conf.5
 
   cygwin-build:
     runs-on: windows-latest
@@ -81,3 +101,13 @@ jobs:
       run: bash -c 'make check'
     - name: ssl file list
       run: bash -c 'PATH="/usr/local/bin:$PATH" rsync-ssl --no-motd download.samba.org::rsyncftp/ || true'
+    - name: save artifact
+      uses: actions/upload-artifact at v2
+      with:
+        name: cygwin-bin
+        path: |
+          rsync.exe
+          rsync-ssl.exe
+          rsync.1
+          rsync-ssl.1
+          rsyncd.conf.5
diff --git a/.gitignore b/.gitignore
index b8e90ca4..6fb512ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,4 @@ aclocal.m4
 /build
 /auto-build-save
 .deps
+/*.exe
diff --git a/Makefile.in b/Makefile.in
index 07479ca2..513b2f8c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -72,23 +72,23 @@ all: Makefile rsync$(EXEEXT) stunnel-rsyncd.conf @MAKE_MAN@
 
 .PHONY: install
 install: all
-	-${MKDIR_P} ${DESTDIR}${bindir}
-	${INSTALLCMD} ${INSTALL_STRIP} -m 755 rsync$(EXEEXT) ${DESTDIR}${bindir}
-	${INSTALLCMD} -m 755 $(srcdir)/rsync-ssl ${DESTDIR}${bindir}
-	-${MKDIR_P} ${DESTDIR}${mandir}/man1
-	-${MKDIR_P} ${DESTDIR}${mandir}/man5
-	if test -f rsync.1; then ${INSTALLMAN} -m 644 rsync.1 ${DESTDIR}${mandir}/man1; fi
-	if test -f rsync-ssl.1; then ${INSTALLMAN} -m 644 rsync-ssl.1 ${DESTDIR}${mandir}/man1; fi
-	if test -f rsyncd.conf.5; then ${INSTALLMAN} -m 644 rsyncd.conf.5 ${DESTDIR}${mandir}/man5; fi
+	-$(MKDIR_P) $(DESTDIR)$(bindir)
+	$(INSTALLCMD) $(INSTALL_STRIP) -m 755 rsync$(EXEEXT) $(DESTDIR)$(bindir)
+	$(INSTALLCMD) -m 755 $(srcdir)/rsync-ssl $(DESTDIR)$(bindir)
+	-$(MKDIR_P) $(DESTDIR)$(mandir)/man1
+	-$(MKDIR_P) $(DESTDIR)$(mandir)/man5
+	if test -f rsync.1; then $(INSTALLMAN) -m 644 rsync.1 $(DESTDIR)$(mandir)/man1; fi
+	if test -f rsync-ssl.1; then $(INSTALLMAN) -m 644 rsync-ssl.1 $(DESTDIR)$(mandir)/man1; fi
+	if test -f rsyncd.conf.5; then $(INSTALLMAN) -m 644 rsyncd.conf.5 $(DESTDIR)$(mandir)/man5; fi
 
 install-ssl-daemon: stunnel-rsyncd.conf
-	-${MKDIR_P} ${DESTDIR}/etc/stunnel
-	${INSTALLCMD} -m 644 stunnel-rsyncd.conf ${DESTDIR}/etc/stunnel/rsyncd.conf
+	-$(MKDIR_P) $(DESTDIR)/etc/stunnel
+	$(INSTALLCMD) -m 644 stunnel-rsyncd.conf $(DESTDIR)/etc/stunnel/rsyncd.conf
 	@if ! ls /etc/rsync-ssl/certs/server.* >/dev/null 2>/dev/null; then \
 	    echo "Note that you'll need to install the certificate used by /etc/stunnel/rsyncd.conf"; \
 	fi
 
-install-all: install install-ssl-client install-ssl-daemon
+install-all: install install-ssl-daemon
 
 install-strip:
 	$(MAKE) INSTALL_STRIP='-s' install
diff --git a/NEWS.md b/NEWS.md
index 6ab53861..3ae5f74c 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -15,6 +15,10 @@
  - Restored the ability to use --bwlimit=0 to specify no bandwidth limit.  (It
    was accidentally broken in 3.2.2.)
 
+ - Fix a bug when combining `--delete-missing-args` with `--no-implied-dirs` &
+   `-R` where rsync might create the destination path of a missing arg.  The
+   code also avoids some superfluous warnings for nested paths of removed args.
+
 ### ENHANCEMENTS:
 
  - Allow `--max-alloc=0` to specify no limit to the alloc sanity check.
@@ -33,7 +37,7 @@
    user & group names inside a chrooted daemon module.  This is based on the
    nameconverter patch with some improvements, including a tweak to the request
    protocol (so if you used this patch in the past, be sure to update your
-   converter script).
+   converter script to use newlines instead of null chars).
 
  - Added the ability to specify "@netgroup" names to the `hosts allow` and
    `hosts deny` daemon parameters.  This is a finalized version of the
diff --git a/checksum.c b/checksum.c
index 6dabfb08..1ed76828 100644
--- a/checksum.c
+++ b/checksum.c
@@ -29,7 +29,7 @@
 #include "rsync.h"
 
 #ifdef SUPPORT_XXHASH
-#include "xxhash.h"
+#include <xxhash.h>
 # if XXH_VERSION_NUMBER >= 800
 #  define SUPPORT_XXH3 1
 # endif
diff --git a/generator.c b/generator.c
index adb3307c..1648db1c 100644
--- a/generator.c
+++ b/generator.c
@@ -1277,20 +1277,25 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
 			 * this function was asked to process in the file list. */
 			if (!inc_recurse
 			 && (*dn != '.' || dn[1]) /* Avoid an issue with --relative and the "." dir. */
-			 && (!prior_dir_file || strcmp(dn, f_name(prior_dir_file, NULL)) != 0)
-			 && flist_find_name(cur_flist, dn, 1) < 0) {
+			 && (!prior_dir_file || strcmp(dn, f_name(prior_dir_file, NULL)) != 0)) {
+				int ok = 0, j = flist_find_name(cur_flist, dn, -1);
+				if (j >= 0) {
+					struct file_struct *f = cur_flist->sorted[j];
+					if (S_ISDIR(f->mode) || (missing_args == 2 && !file->mode && !f->mode))
+						ok = 1;
+				}
 				/* The --delete-missing-args option can actually put invalid entries into
 				 * the file list, so if that option was specified, we'll just complain about
 				 * it and allow it. */
-				if (missing_args == 2 && file->mode == 0)
+				if (!ok && missing_args == 2 && file->mode == 0 && j < 0)
 					rprintf(FERROR, "WARNING: parent dir is absent in the file list: %s\n", dn);
-				else {
+				else if (!ok) {
 					rprintf(FERROR, "ABORTING due to invalid path from sender: %s/%s\n",
 						dn, file->basename);
 					exit_cleanup(RERR_PROTOCOL);
 				}
 			}
-			if (relative_paths && !implied_dirs
+			if (relative_paths && !implied_dirs && file->mode != 0
 			 && do_stat(dn, &sx.st) < 0) {
 				if (dry_run)
 					goto parent_is_dry_missing;


-- 
The rsync repository.



More information about the rsync-cvs mailing list