[packages/rsync] - up to 3.2.3; disabled fadvise/noatime patches (need updating); dropped acl/xattrs patches (upstrea
arekm
arekm at pld-linux.org
Tue Sep 22 14:38:02 CEST 2020
commit 9a0f13f9b24b5c7b67a06d8bf75b9a52ff4af91d
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Tue Sep 22 14:37:48 2020 +0200
- up to 3.2.3; disabled fadvise/noatime patches (need updating); dropped acl/xattrs patches (upstream: Dump some patches that have outlived their usefulness.)
CVE-2016-9840.patch | 71 ----------------
CVE-2016-9841.patch | 224 --------------------------------------------------
CVE-2016-9842.patch | 29 -------
CVE-2016-9843.patch | 49 -----------
rsync-config.patch | 153 +++++++---------------------------
rsync-fixes.patch | 231 ----------------------------------------------------
rsync-noatime.patch | 53 ++++++++++++
rsync.spec | 30 +++----
8 files changed, 92 insertions(+), 748 deletions(-)
---
diff --git a/rsync.spec b/rsync.spec
index 0100981..8ee6ed8 100644
--- a/rsync.spec
+++ b/rsync.spec
@@ -4,7 +4,8 @@
#
# Conditional build:
%bcond_with rsh # set remote shell command to rsh instead of ssh (old behaviour)
-%bcond_without fadvise # apply fadvise patch
+%bcond_with fadvise # apply fadvise patch
+%bcond_with noatime # apply noatime patch
%bcond_with tests # perform "make test"
#
%ifarch alpha
@@ -20,33 +21,29 @@ Summary(uk.UTF-8): Програма для ефективного віддале
Summary(zh_CN.UTF-8): [通讯]传输工具
Summary(zh_TW.UTF-8): [喙啪]$(B6G?i火(c(B
Name: rsync
-Version: 3.1.3
-Release: 4
+Version: 3.2.3
+Release: 1
Epoch: 1
License: GPL v3+
Group: Networking/Utilities
Source0: https://rsync.samba.org/ftp/rsync/%{name}-%{version}.tar.gz
-# Source0-md5: 1581a588fde9d89f6bc6201e8129afaf
+# Source0-md5: 209f8326f5137d8817a6276d9577a2f1
Source1: https://rsync.samba.org/ftp/rsync/%{name}-patches-%{version}.tar.gz
-# Source1-md5: 753fc37ffc277571c69135e8bc5fae9d
+# Source1-md5: 884c872b55c7431f4c4e8d8bf182fafa
Source2: %{name}.inet
Source3: %{name}.init
Source4: %{name}.sysconfig
Source5: %{name}d.logrotate
-Patch100: %{name}-fixes.patch
Patch0: %{name}-config.patch
Patch1: %{name}-fadvise.patch
Patch2: %{name}-noatime.patch
-Patch3: CVE-2016-9840.patch
-Patch4: CVE-2016-9841.patch
-Patch5: CVE-2016-9842.patch
-Patch6: CVE-2016-9843.patch
URL: https://rsync.samba.org/
BuildRequires: acl-devel
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: popt-devel
BuildRequires: rpmbuild(macros) >= 1.318
+BuildRequires: xxHash-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _duplicate_files_terminate_build 0
@@ -166,18 +163,11 @@ techniczna nowego algorytmu została również dołączona do pakietu.
%prep
%setup -q -b1
-%patch100 -p1
%patch0 -p1
%{?with_fadvise:%patch1 -p1}
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
+%{?with_noatime:%patch2 -p1}
-# for compat with previous patched version
-patch -p1 -i patches/acls.diff || exit 1
-patch -p1 -i patches/xattrs.diff || exit 1
+sed -i -e 's|#!/usr/bin/env bash|#!/bin/bash|' rsync-ssl
%build
cp -f /usr/share/automake/config.sub .
@@ -259,7 +249,7 @@ fi
%files
%defattr(644,root,root,755)
-%doc README NEWS OLDNEWS TODO support
+%doc README.md NEWS.md TODO support
%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/CVSIGNORE
%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PASSWORD
%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PROXY
diff --git a/CVE-2016-9840.patch b/CVE-2016-9840.patch
deleted file mode 100644
index 83a14df..0000000
--- a/CVE-2016-9840.patch
+++ /dev/null
@@ -1,71 +0,0 @@
->From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler at alumni.caltech.edu>
-Date: Wed, 21 Sep 2016 23:35:50 -0700
-Subject: [PATCH] Remove offset pointer optimization in inftrees.c.
-
-inftrees.c was subtracting an offset from a pointer to an array,
-in order to provide a pointer that allowed indexing starting at
-the offset. This is not compliant with the C standard, for which
-the behavior of a pointer decremented before its allocated memory
-is undefined. Per the recommendation of a security audit of the
-zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this tiny optimization was removed, in order
-to avoid the possibility of undefined behavior.
----
- inftrees.c | 18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/zlib/inftrees.c b/zlib/inftrees.c
-index 22fcd666..0d2670d5 100644
---- a/zlib/inftrees.c
-+++ b/zlib/inftrees.c
-@@ -54,7 +54,7 @@ unsigned short FAR *work;
- code FAR *next; /* next available space in table */
- const unsigned short FAR *base; /* base value table to use */
- const unsigned short FAR *extra; /* extra bits table to use */
-- int end; /* use base and extra for symbol > end */
-+ unsigned match; /* use base and extra for symbol >= match */
- unsigned short count[MAXBITS+1]; /* number of codes of each length */
- unsigned short offs[MAXBITS+1]; /* offsets in table for each length */
- static const unsigned short lbase[31] = { /* Length codes 257..285 base */
-@@ -181,19 +181,17 @@ unsigned short FAR *work;
- switch (type) {
- case CODES:
- base = extra = work; /* dummy value--not used */
-- end = 19;
-+ match = 20;
- break;
- case LENS:
- base = lbase;
-- base -= 257;
- extra = lext;
-- extra -= 257;
-- end = 256;
-+ match = 257;
- break;
- default: /* DISTS */
- base = dbase;
- extra = dext;
-- end = -1;
-+ match = 0;
- }
-
- /* initialize state for loop */
-@@ -216,13 +214,13 @@ unsigned short FAR *work;
- for (;;) {
- /* create table entry */
- here.bits = (unsigned char)(len - drop);
-- if ((int)(work[sym]) < end) {
-+ if (work[sym] + 1 < match) {
- here.op = (unsigned char)0;
- here.val = work[sym];
- }
-- else if ((int)(work[sym]) > end) {
-- here.op = (unsigned char)(extra[work[sym]]);
-- here.val = base[work[sym]];
-+ else if (work[sym] >= match) {
-+ here.op = (unsigned char)(extra[work[sym] - match]);
-+ here.val = base[work[sym] - match];
- }
- else {
- here.op = (unsigned char)(32 + 64); /* end of block */
diff --git a/CVE-2016-9841.patch b/CVE-2016-9841.patch
deleted file mode 100644
index f8291b3..0000000
--- a/CVE-2016-9841.patch
+++ /dev/null
@@ -1,224 +0,0 @@
->From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler at alumni.caltech.edu>
-Date: Wed, 21 Sep 2016 22:25:21 -0700
-Subject: [PATCH] Use post-increment only in inffast.c.
-
-An old inffast.c optimization turns out to not be optimal anymore
-with modern compilers, and furthermore was not compliant with the
-C standard, for which decrementing a pointer before its allocated
-memory is undefined. Per the recommendation of a security audit of
-the zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this "optimization" was removed, in order to
-avoid the possibility of undefined behavior.
----
- inffast.c | 81 +++++++++++++++++++++----------------------------------
- 1 file changed, 31 insertions(+), 50 deletions(-)
-
-diff --git a/zlib/inffast.c b/zlib/inffast.c
-index bda59ceb..f0d163db 100644
---- a/zlib/inffast.c
-+++ b/zlib/inffast.c
-@@ -10,25 +10,6 @@
-
- #ifndef ASMINF
-
--/* Allow machine dependent optimization for post-increment or pre-increment.
-- Based on testing to date,
-- Pre-increment preferred for:
-- - PowerPC G3 (Adler)
-- - MIPS R5000 (Randers-Pehrson)
-- Post-increment preferred for:
-- - none
-- No measurable difference:
-- - Pentium III (Anderson)
-- - M68060 (Nikl)
-- */
--#ifdef POSTINC
--# define OFF 0
--# define PUP(a) *(a)++
--#else
--# define OFF 1
--# define PUP(a) *++(a)
--#endif
--
- /*
- Decode literal, length, and distance codes and write out the resulting
- literal and match bytes until either not enough input or output is
-@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
-
- /* copy state to local variables */
- state = (struct inflate_state FAR *)strm->state;
-- in = strm->next_in - OFF;
-+ in = strm->next_in;
- last = in + (strm->avail_in - 5);
-- out = strm->next_out - OFF;
-+ out = strm->next_out;
- beg = out - (start - strm->avail_out);
- end = out + (strm->avail_out - 257);
- #ifdef INFLATE_STRICT
-@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- input data or output space */
- do {
- if (bits < 15) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- here = lcode[hold & lmask];
-@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
- "inflate: literal '%c'\n" :
- "inflate: literal 0x%02x\n", here.val));
-- PUP(out) = (unsigned char)(here.val);
-+ *out++ = (unsigned char)(here.val);
- }
- else if (op & 16) { /* length base */
- len = (unsigned)(here.val);
- op &= 15; /* number of extra bits */
- if (op) {
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- len += (unsigned)hold & ((1U << op) - 1);
-@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- }
- Tracevv((stderr, "inflate: length %u\n", len));
- if (bits < 15) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- here = dcode[hold & dmask];
-@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- dist = (unsigned)(here.val);
- op &= 15; /* number of extra bits */
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- }
-@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
- if (len <= op - whave) {
- do {
-- PUP(out) = 0;
-+ *out++ = 0;
- } while (--len);
- continue;
- }
- len -= op - whave;
- do {
-- PUP(out) = 0;
-+ *out++ = 0;
- } while (--op > whave);
- if (op == 0) {
- from = out - dist;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--len);
- continue;
- }
- #endif
- }
-- from = window - OFF;
-+ from = window;
- if (wnext == 0) { /* very common case */
- from += wsize - op;
- if (op < len) { /* some from window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
-@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- if (op < len) { /* some from end of window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
-- from = window - OFF;
-+ from = window;
- if (wnext < len) { /* some from start of window */
- op = wnext;
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
-@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- if (op < len) { /* some from window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
- }
- while (len > 2) {
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
-+ *out++ = *from++;
-+ *out++ = *from++;
- len -= 3;
- }
- if (len) {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- if (len > 1)
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- }
- }
- else {
- from = out - dist; /* copy direct from output */
- do { /* minimum length is three */
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
-+ *out++ = *from++;
-+ *out++ = *from++;
- len -= 3;
- } while (len > 2);
- if (len) {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- if (len > 1)
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- }
- }
- }
-@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- hold &= (1U << bits) - 1;
-
- /* update state and return */
-- strm->next_in = in + OFF;
-- strm->next_out = out + OFF;
-+ strm->next_in = in;
-+ strm->next_out = out;
- strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
- strm->avail_out = (unsigned)(out < end ?
- 257 + (end - out) : 257 - (out - end));
diff --git a/CVE-2016-9842.patch b/CVE-2016-9842.patch
deleted file mode 100644
index 0cf57e3..0000000
--- a/CVE-2016-9842.patch
+++ /dev/null
@@ -1,29 +0,0 @@
->From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler at alumni.caltech.edu>
-Date: Sat, 5 Sep 2015 17:45:55 -0700
-Subject: [PATCH] Avoid shifts of negative values inflateMark().
-
-The C standard says that bit shifts of negative integers is
-undefined. This casts to unsigned values to assure a known
-result.
----
- inflate.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/zlib/inflate.c b/zlib/inflate.c
-index 2889e3a0..a7184167 100644
---- a/zlib/inflate.c
-+++ b/zlib/inflate.c
-@@ -1506,9 +1506,10 @@ z_streamp strm;
- {
- struct inflate_state FAR *state;
-
-- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
-+ if (strm == Z_NULL || strm->state == Z_NULL)
-+ return (long)(((unsigned long)0 - 1) << 16);
- state = (struct inflate_state FAR *)strm->state;
-- return ((long)(state->back) << 16) +
-+ return (long)(((unsigned long)((long)state->back)) << 16) +
- (state->mode == COPY ? state->length :
- (state->mode == MATCH ? state->was - state->length : 0));
- }
diff --git a/CVE-2016-9843.patch b/CVE-2016-9843.patch
deleted file mode 100644
index 9327b2c..0000000
--- a/CVE-2016-9843.patch
+++ /dev/null
@@ -1,49 +0,0 @@
->From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler at alumni.caltech.edu>
-Date: Wed, 28 Sep 2016 20:20:25 -0700
-Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation.
-
-There was a small optimization for PowerPCs to pre-increment a
-pointer when accessing a word, instead of post-incrementing. This
-required prefacing the loop with a decrement of the pointer,
-possibly pointing before the object passed. This is not compliant
-with the C standard, for which decrementing a pointer before its
-allocated memory is undefined. When tested on a modern PowerPC
-with a modern compiler, the optimization no longer has any effect.
-Due to all that, and per the recommendation of a security audit of
-the zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this "optimization" was removed, in order to
-avoid the possibility of undefined behavior.
----
- crc32.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/zlib/crc32.c b/zlib/crc32.c
-index 979a7190..05733f4e 100644
---- a/zlib/crc32.c
-+++ b/zlib/crc32.c
-@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len)
- }
-
- /* ========================================================================= */
--#define DOBIG4 c ^= *++buf4; \
-+#define DOBIG4 c ^= *buf4++; \
- c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
- crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
- #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len)
- }
-
- buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-- buf4--;
- while (len >= 32) {
- DOBIG32;
- len -= 32;
-@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len)
- DOBIG4;
- len -= 4;
- }
-- buf4++;
- buf = (const unsigned char FAR *)buf4;
-
- if (len) do {
diff --git a/rsync-config.patch b/rsync-config.patch
index 6ce3958..f756a29 100644
--- a/rsync-config.patch
+++ b/rsync-config.patch
@@ -1,24 +1,3 @@
-diff -ur rsync-3.0.8.orig/rsync.1 rsync-3.0.8/rsync.1
---- rsync-3.0.8.orig/rsync.1 2011-03-26 22:37:52.000000000 +0100
-+++ rsync-3.0.8/rsync.1 2011-04-07 10:27:01.761502719 +0200
-@@ -2566,7 +2566,7 @@
- .IP "\fB\-\-config=FILE\fP"
- This specifies an alternate config file than
- the default. This is only relevant when \fB\-\-daemon\fP is specified.
--The default is /etc/rsyncd.conf unless the daemon is running over
-+The default is /etc/rsyncd/rsyncd.conf unless the daemon is running over
- a remote shell program and the remote user is not the super\-user; in that case
- the default is rsyncd.conf in the current directory (typically $HOME).
- .IP
-@@ -3474,7 +3474,7 @@
- .SH "FILES"
-
- .PP
--/etc/rsyncd.conf or rsyncd.conf
-+/etc/rsyncd/rsyncd.conf or rsyncd.conf
- .PP
- .SH "SEE ALSO"
-
diff -ur rsync-3.0.8.orig/rsync.h rsync-3.0.8/rsync.h
--- rsync-3.0.8.orig/rsync.h 2011-02-21 20:32:51.000000000 +0100
+++ rsync-3.0.8/rsync.h 2011-04-07 10:21:07.794002236 +0200
@@ -31,121 +10,47 @@ diff -ur rsync-3.0.8.orig/rsync.h rsync-3.0.8/rsync.h
#define URL_PREFIX "rsync://"
#define SYMLINK_PREFIX "/rsyncd-munged/" /* This MUST have a trailing slash! */
-diff -ur rsync-3.0.8.orig/rsync.yo rsync-3.0.8/rsync.yo
---- rsync-3.0.8.orig/rsync.yo 2011-03-26 22:34:18.000000000 +0100
-+++ rsync-3.0.8/rsync.yo 2011-04-07 10:21:07.798002324 +0200
-@@ -2220,7 +2220,7 @@
- If standard input is a socket then rsync will assume that it is being
- run via inetd, otherwise it will detach from the current terminal and
- become a background daemon. The daemon will read the config file
--(rsyncd.conf) on each connect made by a client and respond to
-+(/etc/rsyncd/rsyncd.conf) on each connect made by a client and respond to
- requests accordingly. See the bf(rsyncd.conf)(5) man page for more
- details.
-
-@@ -2238,7 +2238,7 @@
-
- dit(bf(--config=FILE)) This specifies an alternate config file than
- the default. This is only relevant when bf(--daemon) is specified.
--The default is /etc/rsyncd.conf unless the daemon is running over
-+The default is /etc/rsyncd/rsyncd.conf unless the daemon is running over
- a remote shell program and the remote user is not the super-user; in that case
- the default is rsyncd.conf in the current directory (typically $HOME).
-
-@@ -2972,7 +2972,7 @@
-
- manpagefiles()
-
--/etc/rsyncd.conf or rsyncd.conf
-+/etc/rsyncd/rsyncd.conf or rsyncd.conf
-
- manpageseealso()
-
diff -ur rsync-3.0.8.orig/rsyncd.conf.5 rsync-3.0.8/rsyncd.conf.5
--- rsync-3.0.8.orig/rsyncd.conf.5 2011-03-26 22:37:52.000000000 +0100
+++ rsync-3.0.8/rsyncd.conf.5 2011-04-07 10:21:07.789502107 +0200
-@@ -315,7 +315,7 @@
- support the \(dq\&max connections\(dq\& parameter. The rsync daemon uses record
- locking on this file to ensure that the max connections limit is not
- exceeded for the modules sharing the lock file.
--The default is \f(CW/var/run/rsyncd.lock\fP.
-+The default is \f(CW/var/lock/rsyncd.lock\fP.
- .IP
- .IP "\fBread only\fP"
- This parameter determines whether clients
-@@ -460,7 +460,7 @@
+@@ -632,7 +632,7 @@ require that you specify a group passwor
passwords.
- .IP
- There is no default for the \(dq\&secrets file\(dq\& parameter, you must choose a name
--(such as \f(CW/etc/rsyncd.secrets\fP). The file must normally not be readable
-+(such as \f(CW/etc/rsyncd/rsyncd.secrets\fP). The file must normally not be readable
- by \(dq\&other\(dq\&; see \(dq\&strict modes\(dq\&. If the file is not found or is rejected, no
- logins for a \(dq\&user auth\(dq\& module will be possible.
- .IP
-@@ -785,12 +785,12 @@
+ .IP
+ There is no default for the "secrets file" parameter, you must choose a
+-name (such as \fB/etc/rsyncd.secrets\fP). The file must normally not be
++name (such as \fB/etc/rsyncd/rsyncd.secrets\fP). The file must normally not be
+ readable by "other"; see "strict modes". If the file is not found or is
+ rejected, no logins for a "user auth" module will be possible.
+ .IP "\fBstrict\ modes\fP"
+@@ -1092,7 +1092,7 @@ that can be included into multiple modul
+ global values that will affect connections (such as \fBmotd\ file\fP), or globals
+ that will affect other include files.
+ .P
+-For example, this is a useful /etc/rsyncd.conf file:
++For example, this is a useful /etc/rsyncd/rsyncd.conf file:
+ .RS 4
+ .P
+ .nf
+@@ -1219,11 +1219,11 @@ pid file = /var/run/rsyncd.pid
path = /data/cvs
comment = CVS repository (requires authentication)
auth users = tridge, susan
- secrets file = /etc/rsyncd.secrets
+ secrets file = /etc/rsyncd/rsyncd.secrets
-
- .fi
-
- .PP
+ .fi
+ .RE
+ .P
-The /etc/rsyncd.secrets file would look something like this:
+The /etc/rsyncd/rsyncd.secrets file would look something like this:
- .PP
- .RS
- \f(CWtridge:mypass\fP
-@@ -803,7 +803,7 @@
+ .RS 4
+ .P
+ .nf
+@@ -1234,7 +1234,7 @@ susan:herpass
+ .P
.SH "FILES"
-
- .PP
+ .P
-/etc/rsyncd.conf or rsyncd.conf
+/etc/rsyncd/rsyncd.conf or rsyncd.conf
- .PP
+ .P
.SH "SEE ALSO"
-
-diff -ur rsync-3.0.8.orig/rsyncd.conf.yo rsync-3.0.8/rsyncd.conf.yo
---- rsync-3.0.8.orig/rsyncd.conf.yo 2011-03-26 22:34:18.000000000 +0100
-+++ rsync-3.0.8/rsyncd.conf.yo 2011-04-07 10:21:07.792002183 +0200
-@@ -66,7 +66,7 @@
- reread its config file.
-
- Note that you should bf(not) send the rsync daemon a HUP signal to force
--it to reread the tt(rsyncd.conf) file. The file is re-read on each client
-+it to reread the tt(/etc/rsyncd/rsyncd.conf) file. The file is re-read on each client
- connection.
-
- manpagesection(GLOBAL PARAMETERS)
-@@ -125,7 +125,7 @@
-
- dit(bf(path)) This parameter specifies the directory in the daemon's
- filesystem to make available in this module. You must specify this parameter
--for each module in tt(rsyncd.conf).
-+for each module in tt(/etc/rsyncd/rsyncd.conf).
-
- dit(bf(use chroot)) If "use chroot" is true, the rsync daemon will chroot
- to the "path" before starting the file transfer with the client. This has
-@@ -409,7 +409,7 @@
- passwords.
-
- There is no default for the "secrets file" parameter, you must choose a name
--(such as tt(/etc/rsyncd.secrets)). The file must normally not be readable
-+(such as tt(/etc/rsyncd/rsyncd.secrets)). The file must normally not be readable
- by "other"; see "strict modes". If the file is not found or is rejected, no
- logins for a "user auth" module will be possible.
-
-@@ -673,10 +673,10 @@
- path = /data/cvs
- comment = CVS repository (requires authentication)
- auth users = tridge, susan
-- secrets file = /etc/rsyncd.secrets
-+ secrets file = /etc/rsyncd/rsyncd.secrets
- )
-
--The /etc/rsyncd.secrets file would look something like this:
-+The /etc/rsyncd/rsyncd.secrets file would look something like this:
-
- quote(
- tt(tridge:mypass)nl()
+ .P
diff --git a/rsync-fixes.patch b/rsync-fixes.patch
deleted file mode 100644
index 2903bb8..0000000
--- a/rsync-fixes.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-commit 1eb7a7061af2f91149233937f3db066d303c7684
-Author: Wayne Davison <wayned at samba.org>
-Date: Thu Jun 14 15:19:34 2018 -0700
-
- Need to mark xattr rules in get_rule_prefix().
-
- This fixes the bug of xattr filters getting sent as a normal filter rule
- (since the 'x' was dropped in the prefix).
-
-diff --git a/exclude.c b/exclude.c
-index 7989fb3e..a0090b29 100644
---- a/exclude.c
-+++ b/exclude.c
-@@ -1286,6 +1286,8 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
- }
- if (rule->rflags & FILTRULE_EXCLUDE_SELF)
- *op++ = 'e';
-+ if (rule->rflags & FILTRULE_XATTR)
-+ *op++ = 'x';
- if (rule->rflags & FILTRULE_SENDER_SIDE
- && (!for_xfer || protocol_version >= 29))
- *op++ = 's';
-commit 4aeb093206d55c3d886cbcec062f7aa93d0b968e
-Author: Wayne Davison <wayned at samba.org>
-Date: Tue Nov 20 12:45:36 2018 -0800
-
- Fix itemizing of wrong dir name on some --iconv transfers.
-
- Fixes bug #13492.
-
-diff --git a/flist.c b/flist.c
-index 499440cc..60e843cc 100644
---- a/flist.c
-+++ b/flist.c
-@@ -1636,6 +1636,7 @@ static void add_dirs_to_tree(int parent_ndx, struct file_list *from_flist,
- int32 *parent_dp = parent_ndx < 0 ? NULL
- : F_DIR_NODE_P(dir_flist->sorted[parent_ndx]);
-
-+ /* The sending side is adding entries to dir_flist in sorted order, so sorted & files are the same. */
- flist_expand(dir_flist, dir_cnt);
- dir_flist->sorted = dir_flist->files;
-
-@@ -1970,7 +1971,7 @@ void send_extra_file_list(int f, int at_least)
- else
- dir_ndx = send_dir_ndx;
- write_ndx(f, NDX_FLIST_OFFSET - dir_ndx);
-- flist->parent_ndx = dir_ndx;
-+ flist->parent_ndx = send_dir_ndx; /* the sending side must remember the sorted ndx value */
-
- send1extra(f, file, flist);
- prev_flags = file->flags;
-commit a3668685354e7457ac3e29634083906ee5435bf2
-Author: Wayne Davison <wayned at samba.org>
-Date: Sat Dec 15 16:52:53 2018 -0800
-
- Avoid a potential out-of-bounds read in daemon mode if argc is 0.
-
-diff --git a/options.c b/options.c
-index 1c5b42d0..a07c8e13 100644
---- a/options.c
-+++ b/options.c
-@@ -1315,6 +1315,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
- int opt;
- int orig_protect_args = protect_args;
-
-+ if (argc == 0) {
-+ strlcpy(err_buf, "argc is zero!\n", sizeof err_buf);
-+ return 0;
-+ }
- if (ref && *ref)
- set_refuse_options(ref);
- if (am_daemon) {
-commit c2da3809f714d936dec1cab6d5bf8b724b9cd113
-Author: Wayne Davison <wayned at samba.org>
-Date: Tue Jan 15 08:51:08 2019 -0800
-
- Fix --prealloc to keep file-size 0 when possible.
-
-diff --git a/syscall.c b/syscall.c
-index dbd556b8..0d1221b3 100644
---- a/syscall.c
-+++ b/syscall.c
-@@ -462,7 +462,7 @@ int do_utime(const char *fname, time_t modtime, UNUSED(uint32 mod_nsec))
-
- OFF_T do_fallocate(int fd, OFF_T offset, OFF_T length)
- {
-- int opts = inplace || preallocate_files ? 0 : DO_FALLOC_OPTIONS;
-+ int opts = inplace || preallocate_files ? DO_FALLOC_OPTIONS : 0;
- int ret;
- RETURN_ERROR_IF(dry_run, 0);
- RETURN_ERROR_IF_RO_OR_LO;
-commit f233dffbd6bf65a08d0d6ce1050eb9c6ed7723cb
-Author: Wayne Davison <wayned at samba.org>
-Date: Tue Jan 15 10:38:00 2019 -0800
-
- Avoid leaving a file open on error return.
-
-diff --git a/util.c b/util.c
-index fbbfd8ba..235afa82 100644
---- a/util.c
-+++ b/util.c
-@@ -342,6 +342,7 @@ int copy_file(const char *source, const char *dest, int ofd, mode_t mode)
- if (robust_unlink(dest) && errno != ENOENT) {
- int save_errno = errno;
- rsyserr(FERROR_XFER, errno, "unlink %s", full_fname(dest));
-+ close(ifd);
- errno = save_errno;
- return -1;
- }
-commit 79332c0d66d933369a28c63b096addb67514cb38
-Author: Wayne Davison <wayned at samba.org>
-Date: Sat Mar 16 09:09:09 2019 -0700
-
- Fix --remove-source-files sanity check w/--copy-links the right way.
- Fixes bug #10494.
-
-diff --git a/sender.c b/sender.c
-index 03e4aadd..9b432ed9 100644
---- a/sender.c
-+++ b/sender.c
-@@ -32,6 +32,7 @@ extern int logfile_format_has_i;
- extern int want_xattr_optim;
- extern int csum_length;
- extern int append_mode;
-+extern int copy_links;
- extern int io_error;
- extern int flist_eof;
- extern int allowed_lull;
-@@ -138,17 +139,16 @@ void successful_send(int ndx)
- return;
- f_name(file, fname);
-
-- if (do_lstat(fname, &st) < 0) {
-+ if ((copy_links ? do_stat(fname, &st) : do_lstat(fname, &st)) < 0) {
- failed_op = "re-lstat";
- goto failed;
- }
-
-- if (S_ISREG(file->mode) /* Symlinks & devices don't need this check: */
-- && (st.st_size != F_LENGTH(file) || st.st_mtime != file->modtime
-+ if (st.st_size != F_LENGTH(file) || st.st_mtime != file->modtime
- #ifdef ST_MTIME_NSEC
- || (NSEC_BUMP(file) && (uint32)st.ST_MTIME_NSEC != F_MOD_NSEC(file))
- #endif
-- )) {
-+ ) {
- rprintf(FERROR_XFER, "ERROR: Skipping sender remove for changed file: %s\n", fname);
- return;
- }
-commit d47d3792160210ce14700e38a223eaa0059f3551
-Author: Wayne Davison <wayned at samba.org>
-Date: Sat Mar 16 11:12:53 2019 -0700
-
- Fix bug in try_dests_reg that Florian Zumbiehl pointed out.
-
- If the alternate-destination code was scanning multiple alt dirs and it
- found the right size/mtime/checksum info but not the right xattrs, it
- would keep scanning the other dirs for a better xattr match, but it
- would omit the unchanged-file check that needs to happen first.
-
-diff --git a/generator.c b/generator.c
-index 6021a220..5538a92d 100644
---- a/generator.c
-+++ b/generator.c
-@@ -876,27 +876,22 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
- pathjoin(cmpbuf, MAXPATHLEN, basis_dir[j], fname);
- if (link_stat(cmpbuf, &sxp->st, 0) < 0 || !S_ISREG(sxp->st.st_mode))
- continue;
-- switch (match_level) {
-- case 0:
-+ if (match_level == 0) {
- best_match = j;
- match_level = 1;
-- /* FALL THROUGH */
-- case 1:
-- if (!unchanged_file(cmpbuf, file, &sxp->st))
-- continue;
-+ }
-+ if (!unchanged_file(cmpbuf, file, &sxp->st))
-+ continue;
-+ if (match_level == 1) {
- best_match = j;
- match_level = 2;
-- /* FALL THROUGH */
-- case 2:
-- if (!unchanged_attrs(cmpbuf, file, sxp)) {
-- free_stat_x(sxp);
-- continue;
-- }
-+ }
-+ if (unchanged_attrs(cmpbuf, file, sxp)) {
- best_match = j;
- match_level = 3;
- break;
- }
-- break;
-+ free_stat_x(sxp);
- } while (basis_dir[++j] != NULL);
-
- if (!match_level)
-commit c0c6a97c35e8e4fb56ba26dc9c8447e26d94de06
-Author: Wayne Davison <wayned at samba.org>
-Date: Sat Mar 16 11:49:53 2019 -0700
-
- Try to fix the iconv crash in bug 11338.
-
- Applying Michal Ruprich's suggested patch for the rwrite() function that
- should hopefully help with a bug that I couldn't reproduce.
-
-diff --git a/log.c b/log.c
-index 21bcdfd9..a86edd74 100644
---- a/log.c
-+++ b/log.c
-@@ -378,10 +378,13 @@ output_msg:
- filtered_fwrite(f, convbuf, outbuf.len, 0);
- outbuf.len = 0;
- }
-- if (!ierrno || ierrno == E2BIG)
-- continue;
-- fprintf(f, "\\#%03o", CVAL(inbuf.buf, inbuf.pos++));
-- inbuf.len--;
-+ /* Log one byte of illegal/incomplete sequence and continue with
-+ * the next character. Check that the buffer is non-empty for the
-+ * sake of robustness. */
-+ if ((ierrno == EILSEQ || ierrno == EINVAL) && inbuf.len) {
-+ fprintf(f, "\\#%03o", CVAL(inbuf.buf, inbuf.pos++));
-+ inbuf.len--;
-+ }
- }
- } else
- #endif
diff --git a/rsync-noatime.patch b/rsync-noatime.patch
index 9ca27a8..85626ef 100644
--- a/rsync-noatime.patch
+++ b/rsync-noatime.patch
@@ -92,3 +92,56 @@ index c46a8b4..6620563 100644
return open(pathname, flags | O_BINARY, mode);
}
+Index: rsync/tls.c
+===================================================================
+--- rsync.orig/tls.c
++++ rsync/tls.c
+@@ -53,6 +53,7 @@ int preserve_perms = 0;
+ int preserve_executability = 0;
+ int preallocate_files = 0;
+ int inplace = 0;
++int noatime = 0;
+
+ #ifdef SUPPORT_XATTRS
+
+Index: rsync/t_unsafe.c
+===================================================================
+--- rsync.orig/t_unsafe.c
++++ rsync/t_unsafe.c
+@@ -33,6 +33,10 @@ int preserve_perms = 0;
+ int preserve_executability = 0;
+ short info_levels[COUNT_INFO], debug_levels[COUNT_DEBUG];
+
++/* This is to make syscall.o shut up. */
++int noatime = 0;
++
++
+ int
+ main(int argc, char **argv)
+ {
+Index: rsync/wildtest.c
+===================================================================
+--- rsync.orig/wildtest.c
++++ rsync/wildtest.c
+@@ -32,6 +32,9 @@ int fnmatch_errors = 0;
+
+ int wildmatch_errors = 0;
+
++/* This is to make syscall.o shut up. */
++int noatime = 0;
++
+ typedef char bool;
+
+ int output_iterations = 0;
+Index: rsync/trimslash.c
+===================================================================
+--- rsync.orig/trimslash.c
++++ rsync/trimslash.c
+@@ -30,6 +30,7 @@ int preserve_perms = 0;
+ int preserve_executability = 0;
+ int preallocate_files = 0;
+ int inplace = 0;
++int noatime = 0;
+
+ int
+ main(int argc, char **argv)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rsync.git/commitdiff/9a0f13f9b24b5c7b67a06d8bf75b9a52ff4af91d
More information about the pld-cvs-commit
mailing list