Index: compat.c --- compat.c.orig 2020-06-16 16:46:28.000000000 +0200 +++ compat.c 2020-06-20 09:52:37.279096000 +0200 @@ -495,19 +495,21 @@ rprintf(FINFO, "(%s) Protocol versions: remote=%d, negotiated=%d\n", am_server? "Server" : "Client", remote_protocol, protocol_version); } - if (remote_protocol < MIN_PROTOCOL_VERSION - || remote_protocol > MAX_PROTOCOL_VERSION) { + if ( ( am_server && (remote_protocol < MIN_CLIENT_PROTOCOL_VERSION || remote_protocol > MAX_CLIENT_PROTOCOL_VERSION)) + || (!am_server && (remote_protocol < MIN_SERVER_PROTOCOL_VERSION || remote_protocol > MAX_SERVER_PROTOCOL_VERSION))) { rprintf(FERROR,"protocol version mismatch -- is your shell clean?\n"); rprintf(FERROR,"(see the rsync man page for an explanation)\n"); exit_cleanup(RERR_PROTOCOL); } - if (remote_protocol < OLD_PROTOCOL_VERSION) { - rprintf(FINFO,"%s is very old version of rsync, upgrade recommended.\n", - am_server? "Client" : "Server"); + if ( ( am_server && remote_protocol < OLD_CLIENT_PROTOCOL_VERSION) + || (!am_server && remote_protocol < OLD_SERVER_PROTOCOL_VERSION)) { + rprintf(FINFO,"%s is very old version (protocol %d) of rsync, upgrade recommended.\n", + am_server? "Client" : "Server", remote_protocol); } - if (protocol_version < MIN_PROTOCOL_VERSION) { + if ( ( am_server && protocol_version < MIN_SERVER_PROTOCOL_VERSION) + || (!am_server && protocol_version < MIN_CLIENT_PROTOCOL_VERSION)) { rprintf(FERROR, "--protocol must be at least %d on the %s.\n", - MIN_PROTOCOL_VERSION, am_server? "Server" : "Client"); + am_server ? MIN_SERVER_PROTOCOL_VERSION : MIN_CLIENT_PROTOCOL_VERSION, am_server? "Server" : "Client"); exit_cleanup(RERR_PROTOCOL); } if (protocol_version > PROTOCOL_VERSION) { Index: rsync.h --- rsync.h.orig 2020-06-13 20:47:08.000000000 +0200 +++ rsync.h 2020-06-20 09:52:37.279320000 +0200 @@ -132,9 +132,12 @@ * unlikely to begin by sending a byte between MIN_PROTOCL_VERSION and * MAX_PROTOCOL_VERSION. */ -#define MIN_PROTOCOL_VERSION 20 -#define OLD_PROTOCOL_VERSION 25 -#define MAX_PROTOCOL_VERSION 40 +#define MIN_SERVER_PROTOCOL_VERSION 20 +#define OLD_SERVER_PROTOCOL_VERSION 25 +#define MAX_SERVER_PROTOCOL_VERSION 40 +#define MIN_CLIENT_PROTOCOL_VERSION 25 +#define OLD_CLIENT_PROTOCOL_VERSION 27 +#define MAX_CLIENT_PROTOCOL_VERSION 40 #define MIN_FILECNT_LOOKAHEAD 1000 #define MAX_FILECNT_LOOKAHEAD 10000 Index: simd-checksum-x86_64.cpp --- simd-checksum-x86_64.cpp.orig 2020-06-18 22:20:44.000000000 +0200 +++ simd-checksum-x86_64.cpp 2020-06-20 10:09:46.916109000 +0200 @@ -61,7 +61,7 @@ #include /* Some clang versions don't like it when you use static with multi-versioned functions: linker errors */ -#ifdef __clang__ +#if 1 #define MVSTATIC #else #define MVSTATIC static