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 <wa...@opencoder.net> Date: Tue Jul 21 12:35:45 2020 -0700 Update NEWS. commit 13d8fc9542a1441dd93bc2c4ca1348b1b2b1a9e8 Author: Wayne Davison <wa...@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 <wa...@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 <wa...@opencoder.net> Date: Mon Jul 20 18:44:37 2020 -0700 Tweak include syntax. commit f63520734708d98573aa9269808985d206684e6e Author: Wayne Davison <wa...@opencoder.net> Date: Mon Jul 20 14:43:28 2020 -0700 Save the build into an artifact. commit 64f7e893f3b133b2c340b21e1a32f6fec2b06a1f Author: Wayne Davison <wa...@opencoder.net> Date: Mon Jul 20 14:43:06 2020 -0700 Ignore *.exe files (for Cygwin builds). commit 31556ec7a8f7dd781f8ac29ffe5f517af09778e0 Author: Wayne Davison <wa...@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 <wa...@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@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@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@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@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. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs