Resolves: #1894485 - rsync is unable to set permissions when chrooted
Getting rid of deprecated makeinstall macro
This commit is contained in:
parent
320db6693c
commit
fc6927906b
53
rsync-3.2.3-lchmod.patch
Normal file
53
rsync-3.2.3-lchmod.patch
Normal file
@ -0,0 +1,53 @@
|
||||
diff --git a/syscall.c b/syscall.c
|
||||
index b9c3b4ef..11d10e4a 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;
|
11
rsync.spec
11
rsync.spec
@ -10,7 +10,7 @@
|
||||
Summary: A program for synchronizing files over a network
|
||||
Name: rsync
|
||||
Version: 3.2.3
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
URL: http://rsync.samba.org/
|
||||
|
||||
Source0: https://download.samba.org/pub/rsync/src/rsync-%{version}%{?prerelease}.tar.gz
|
||||
@ -32,6 +32,7 @@ License: GPLv3+
|
||||
Patch0: rsync-3.2.2-ssl-verify-hostname.patch
|
||||
#Added due to rhbz#1873975 - default-acls test fail on s390x due to libacl
|
||||
Patch1: rsync-3.2.2-runtests.patch
|
||||
Patch2: rsync-3.2.3-lchmod.patch
|
||||
|
||||
%description
|
||||
Rsync uses a reliable algorithm to bring remote and host files into
|
||||
@ -67,9 +68,9 @@ patch -p1 -i patches/copy-devices.diff
|
||||
|
||||
%patch0 -p1 -b .verify-hostname
|
||||
%patch1 -p1 -b .runtests
|
||||
%patch2 -p1 -b .lchmod
|
||||
|
||||
%build
|
||||
|
||||
%configure --disable-xxhash
|
||||
# --with-included-zlib=no temporary disabled because of #1043965
|
||||
|
||||
@ -82,7 +83,7 @@ chmod -x support/*
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%makeinstall INSTALLCMD='install -p' INSTALLMAN='install -p'
|
||||
%{make_install} INSTALLCMD='install -p' INSTALLMAN='install -p'
|
||||
|
||||
install -D -m644 %{SOURCE3} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd.service
|
||||
install -D -m644 %{SOURCE2} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd.socket
|
||||
@ -117,6 +118,10 @@ install -D -m644 %{SOURCE6} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd@.service
|
||||
%systemd_postun_with_restart rsyncd.service
|
||||
|
||||
%changelog
|
||||
* Tue Dec 08 2020 Michal Ruprich <mruprich@redhat.com> - 3.2.3-4
|
||||
- Resolves: #1894485 - rsync is unable to set permissions when chrooted
|
||||
- Getting rid of deprecated makeinstall macro
|
||||
|
||||
* Fri Nov 20 2020 Michal Ruprich <mruprich@redhat.com> - 3.2.3-3
|
||||
- Disabling LTO as a temporary measure for rhbz#1898912
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user