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
|
Summary: A program for synchronizing files over a network
|
||||||
Name: rsync
|
Name: rsync
|
||||||
Version: 3.2.3
|
Version: 3.2.3
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
URL: http://rsync.samba.org/
|
URL: http://rsync.samba.org/
|
||||||
|
|
||||||
Source0: https://download.samba.org/pub/rsync/src/rsync-%{version}%{?prerelease}.tar.gz
|
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
|
Patch0: rsync-3.2.2-ssl-verify-hostname.patch
|
||||||
#Added due to rhbz#1873975 - default-acls test fail on s390x due to libacl
|
#Added due to rhbz#1873975 - default-acls test fail on s390x due to libacl
|
||||||
Patch1: rsync-3.2.2-runtests.patch
|
Patch1: rsync-3.2.2-runtests.patch
|
||||||
|
Patch2: rsync-3.2.3-lchmod.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Rsync uses a reliable algorithm to bring remote and host files into
|
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
|
%patch0 -p1 -b .verify-hostname
|
||||||
%patch1 -p1 -b .runtests
|
%patch1 -p1 -b .runtests
|
||||||
|
%patch2 -p1 -b .lchmod
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
%configure --disable-xxhash
|
%configure --disable-xxhash
|
||||||
# --with-included-zlib=no temporary disabled because of #1043965
|
# --with-included-zlib=no temporary disabled because of #1043965
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ chmod -x support/*
|
|||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
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 %{SOURCE3} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd.service
|
||||||
install -D -m644 %{SOURCE2} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd.socket
|
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
|
%systemd_postun_with_restart rsyncd.service
|
||||||
|
|
||||||
%changelog
|
%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
|
* Fri Nov 20 2020 Michal Ruprich <mruprich@redhat.com> - 3.2.3-3
|
||||||
- Disabling LTO as a temporary measure for rhbz#1898912
|
- Disabling LTO as a temporary measure for rhbz#1898912
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user