Resolves: #2079639 - rsync --atimes doesn't work
This commit is contained in:
parent
9893fc5094
commit
baa76886b8
48
rsync-3.2.3-atimes.patch
Normal file
48
rsync-3.2.3-atimes.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/rsync.c b/rsync.c
|
||||||
|
index bcecac63..ff9489be 100644
|
||||||
|
--- a/rsync.c
|
||||||
|
+++ b/rsync.c
|
||||||
|
@@ -63,8 +63,7 @@ extern char *iconv_opt;
|
||||||
|
#define UPDATED_ATIME (1<<3)
|
||||||
|
#define UPDATED_ACLS (1<<4)
|
||||||
|
#define UPDATED_MODE (1<<5)
|
||||||
|
-
|
||||||
|
-#define UPDATED_TIMES (UPDATED_MTIME|UPDATED_ATIME)
|
||||||
|
+#define UPDATED_CRTIME (1<<6)
|
||||||
|
|
||||||
|
#ifdef ICONV_CONST
|
||||||
|
iconv_t ic_chck = (iconv_t)-1;
|
||||||
|
@@ -576,10 +575,11 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
|
||||||
|
set_xattr(fname, file, fnamecmp, sxp);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if (!preserve_times
|
||||||
|
- || (!(preserve_times & PRESERVE_DIR_TIMES) && S_ISDIR(sxp->st.st_mode))
|
||||||
|
- || (!(preserve_times & PRESERVE_LINK_TIMES) && S_ISLNK(sxp->st.st_mode)))
|
||||||
|
- flags |= ATTRS_SKIP_MTIME | ATTRS_SKIP_ATIME;
|
||||||
|
+ if (!preserve_times)
|
||||||
|
+ flags |= ATTRS_SKIP_MTIME | (atimes_ndx ? 0 : ATTRS_SKIP_ATIME) | (crtimes_ndx ? 0 : ATTRS_SKIP_CRTIME);
|
||||||
|
+ else if ((!(preserve_times & PRESERVE_DIR_TIMES) && S_ISDIR(sxp->st.st_mode))
|
||||||
|
+ || (!(preserve_times & PRESERVE_LINK_TIMES) && S_ISLNK(sxp->st.st_mode)))
|
||||||
|
+ flags |= ATTRS_SKIP_MTIME | ATTRS_SKIP_ATIME | ATTRS_SKIP_CRTIME;
|
||||||
|
else if (sxp != &sx2)
|
||||||
|
memcpy(&sx2.st, &sxp->st, sizeof (sx2.st));
|
||||||
|
if (!atimes_ndx || S_ISDIR(sxp->st.st_mode))
|
||||||
|
@@ -606,7 +606,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
|
||||||
|
updated |= UPDATED_ATIME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (updated & UPDATED_TIMES) {
|
||||||
|
+ if (updated & (UPDATED_MTIME|UPDATED_ATIME)) {
|
||||||
|
int ret = set_times(fname, &sx2.st);
|
||||||
|
if (ret < 0) {
|
||||||
|
rsyserr(FERROR_XFER, errno, "failed to set times on %s",
|
||||||
|
@@ -614,7 +614,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (ret > 0) { /* ret == 1 if symlink could not be set */
|
||||||
|
- updated &= ~UPDATED_TIMES;
|
||||||
|
+ updated &= ~(UPDATED_MTIME|UPDATED_ATIME);
|
||||||
|
file->flags |= FLAG_TIME_FAILED;
|
||||||
|
}
|
||||||
|
}
|
@ -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: 12%{?dist}
|
Release: 13%{?dist}
|
||||||
URL: https://rsync.samba.org/
|
URL: https://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
|
||||||
@ -37,6 +37,7 @@ Patch2: rsync-3.2.3-lchmod.patch
|
|||||||
Patch3: rsync-3.2.3-append-mode.patch
|
Patch3: rsync-3.2.3-append-mode.patch
|
||||||
Patch4: rsync-3.2.3-xattr.patch
|
Patch4: rsync-3.2.3-xattr.patch
|
||||||
Patch5: rsync-3.2.3-segfault.patch
|
Patch5: rsync-3.2.3-segfault.patch
|
||||||
|
Patch6: rsync-3.2.3-atimes.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
|
||||||
@ -76,6 +77,7 @@ patch -p1 -i patches/copy-devices.diff
|
|||||||
%patch3 -p1 -b .append-mode
|
%patch3 -p1 -b .append-mode
|
||||||
%patch4 -p1 -b .xattr
|
%patch4 -p1 -b .xattr
|
||||||
%patch5 -p1 -b .segfault
|
%patch5 -p1 -b .segfault
|
||||||
|
%patch6 -p1 -b .atimes
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --disable-xxhash
|
%configure --disable-xxhash
|
||||||
@ -122,6 +124,9 @@ install -D -m644 %{SOURCE6} $RPM_BUILD_ROOT/%{_unitdir}/rsyncd@.service
|
|||||||
%systemd_postun_with_restart rsyncd.service
|
%systemd_postun_with_restart rsyncd.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed May 11 2022 Michal Ruprich <mruprich@redhat.com> - 3.2.3-13
|
||||||
|
- Resolves: #2079639 - rsync --atimes doesn't work
|
||||||
|
|
||||||
* Tue May 03 2022 Michal Ruprich <mruprich@redhat.com> - 3.2.3-12
|
* Tue May 03 2022 Michal Ruprich <mruprich@redhat.com> - 3.2.3-12
|
||||||
- Resolves: #2081296 - Enable fmf tests in centos stream
|
- Resolves: #2081296 - Enable fmf tests in centos stream
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user