diff --git a/backport-Work-around-glibc-lchmod-issue-a-better-way.patch b/backport-Work-around-glibc-lchmod-issue-a-better-way.patch new file mode 100644 index 0000000000000000000000000000000000000000..68b4941fd677c8f6f566b0ca79ef3ac842e12a90 --- /dev/null +++ b/backport-Work-around-glibc-lchmod-issue-a-better-way.patch @@ -0,0 +1,65 @@ +From 9dd62525f3b98d692e031f22c02be8f775966503 Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Sun, 29 Nov 2020 09:33:54 -0800 +Subject: [PATCH] Work around glibc's lchmod() issue a better way. + +--- + syscall.c | 34 +++++++++++++++++++++------------- + 1 files changed, 21 insertions(+), 13 deletions(-) + +diff --git a/syscall.c b/syscall.c +index b9c3b4e..11d10e4 100644 +--- a/syscall.c ++++ b/syscall.c +@@ -227,27 +227,35 @@ int do_open(const char *pathname, int flags, mode_t mode) + #ifdef HAVE_CHMOD + int do_chmod(const char *path, mode_t mode) + { ++ static int switch_step = 0; + int code; + if (dry_run) return 0; + RETURN_ERROR_IF_RO_OR_LO; ++ switch (switch_step) { + #ifdef HAVE_LCHMOD +- code = lchmod(path, mode & CHMOD_BITS); +-#else +- if (S_ISLNK(mode)) { ++#include "case_N.h" ++ if ((code = lchmod(path, mode & CHMOD_BITS)) == 0 || errno != ENOTSUP) ++ break; ++ switch_step++; ++#endif ++ ++#include "case_N.h" ++ if (S_ISLNK(mode)) { + # if defined HAVE_SETATTRLIST +- struct attrlist attrList; +- uint32_t m = mode & CHMOD_BITS; /* manpage is wrong: not mode_t! */ ++ struct attrlist attrList; ++ uint32_t m = mode & CHMOD_BITS; /* manpage is wrong: not mode_t! */ + +- memset(&attrList, 0, sizeof attrList); +- attrList.bitmapcount = ATTR_BIT_MAP_COUNT; +- attrList.commonattr = ATTR_CMN_ACCESSMASK; +- code = setattrlist(path, &attrList, &m, sizeof m, FSOPT_NOFOLLOW); ++ memset(&attrList, 0, sizeof attrList); ++ attrList.bitmapcount = ATTR_BIT_MAP_COUNT; ++ attrList.commonattr = ATTR_CMN_ACCESSMASK; ++ code = setattrlist(path, &attrList, &m, sizeof m, FSOPT_NOFOLLOW); + # else +- code = 1; ++ code = 1; + # endif +- } else +- code = chmod(path, mode & CHMOD_BITS); /* DISCOURAGED FUNCTION */ +-#endif /* !HAVE_LCHMOD */ ++ } else ++ code = chmod(path, mode & CHMOD_BITS); /* DISCOURAGED FUNCTION */ ++ break; ++ } + if (code != 0 && (preserve_perms || preserve_executability)) + return code; + return 0; +-- +1.8.3.1 + diff --git a/rsync-3.2.1.tar.gz b/rsync-3.2.1.tar.gz deleted file mode 100644 index 6ef72410aaadd557d4e2e1376ca7c5da46b06727..0000000000000000000000000000000000000000 Binary files a/rsync-3.2.1.tar.gz and /dev/null differ diff --git a/rsync-3.2.3.tar.gz b/rsync-3.2.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a3ecb71ad81e0e8b77720ef9356a368999ae9490 Binary files /dev/null and b/rsync-3.2.3.tar.gz differ diff --git a/rsync-patches-3.2.1.tar.gz b/rsync-patches-3.2.1.tar.gz deleted file mode 100644 index 766ae2ef7bab1d95b9aa8bddfd3e1f79fbcaee78..0000000000000000000000000000000000000000 Binary files a/rsync-patches-3.2.1.tar.gz and /dev/null differ diff --git a/rsync-patches-3.2.3.tar.gz b/rsync-patches-3.2.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7f5b9f2ce8ad35b228d5ccd6755e157cd9e063bf Binary files /dev/null and b/rsync-patches-3.2.3.tar.gz differ diff --git a/rsync.spec b/rsync.spec index 1f3b8467722b01d165327a3e297d0293c597abb4..8720323b1e0694ab4ff5a0ab675bdb37024966ea 100644 --- a/rsync.spec +++ b/rsync.spec @@ -1,5 +1,5 @@ Name: rsync -Version: 3.2.1 +Version: 3.2.3 Release: 1 Summary: Fast incremental file transfer utility License: GPLv3+ @@ -18,6 +18,8 @@ Provides: bundled(zlib) = 1.2.8 rsync-daemon Obsoletes: rsync-daemon %{?systemd_requires} +Patch1: backport-Work-around-glibc-lchmod-issue-a-better-way.patch + %description Rsync is an open source utility that provides fast incremental file transfer. It uses the "rsync algorithm" which provides a very fast method for bringing @@ -30,12 +32,10 @@ at one of the ends of the link beforehand. %prep %autosetup -b 1 -n %{name}-%{version} -p1 -patch -p1 -i patches/acls.diff -patch -p1 -i patches/xattrs.diff patch -p1 -i patches/copy-devices.diff %build -%configure -disable-xxhash +%configure --disable-xxhash %make_build %check @@ -79,6 +79,12 @@ install -D -m644 %{SOURCE6} %{buildroot}/%{_unitdir}/rsyncd@.service %{_mandir}/man5/rsyncd.conf.5* %changelog +* Fri Jan 22 2021 yixiangzhike - 3.2.3-1 +- Type:requirement +- ID:NA +- SUG:NA +- DESC:update to 3.2.3 + * Tue Jul 28 2020 Liquor - 3.2.1-1 - Type:bugfix - ID:NA