make simple backups in correct dir; broken in 9.1
From https://bugs.gnu.org/55029
This commit is contained in:
parent
cc30dec8eb
commit
f672fec436
@ -1,7 +1,7 @@
|
|||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 9.1
|
Version: 9.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Url: https://www.gnu.org/software/coreutils/
|
Url: https://www.gnu.org/software/coreutils/
|
||||||
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||||
@ -17,6 +17,9 @@ Source106: coreutils-colorls.csh
|
|||||||
# do not make coreutils-single depend on /usr/bin/coreutils
|
# do not make coreutils-single depend on /usr/bin/coreutils
|
||||||
%global __requires_exclude ^%{_bindir}/coreutils$
|
%global __requires_exclude ^%{_bindir}/coreutils$
|
||||||
|
|
||||||
|
# Make simple backups in correct dir; broken in 9.1
|
||||||
|
Patch1: gnulib-simple-backup-fix.patch
|
||||||
|
|
||||||
# disable the test-lock gnulib test prone to deadlock
|
# disable the test-lock gnulib test prone to deadlock
|
||||||
Patch100: coreutils-8.26-test-lock.patch
|
Patch100: coreutils-8.26-test-lock.patch
|
||||||
|
|
||||||
@ -262,6 +265,9 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
|||||||
%license COPYING
|
%license COPYING
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Apr 23 2022 Pádraig Brady <P@draigBrady.com> - 9.1-2
|
||||||
|
- make simple backups in correct dir; broken in 9.1
|
||||||
|
|
||||||
* Tue Apr 19 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-1
|
* Tue Apr 19 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-1
|
||||||
- new upstream release 9.1
|
- new upstream release 9.1
|
||||||
|
|
||||||
|
36
gnulib-simple-backup-fix.patch
Normal file
36
gnulib-simple-backup-fix.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
commit 7347caeb9d902d3fca2c11f69a55a3e578d93bfe
|
||||||
|
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
Date: Wed Apr 20 19:34:57 2022 -0700
|
||||||
|
|
||||||
|
backupfile: fix bug when renaming simple backups
|
||||||
|
|
||||||
|
* lib/backupfile.c (backupfile_internal): Fix bug when RENAME
|
||||||
|
and when doing simple backups. Problem reported by Steve Ward in:
|
||||||
|
https://bugs.gnu.org/55029
|
||||||
|
|
||||||
|
diff --git a/lib/backupfile.c b/lib/backupfile.c
|
||||||
|
index 1e9290a187..d9f465a3e0 100644
|
||||||
|
--- a/lib/backupfile.c
|
||||||
|
+++ b/lib/backupfile.c
|
||||||
|
@@ -332,7 +332,7 @@ backupfile_internal (int dir_fd, char const *file,
|
||||||
|
return s;
|
||||||
|
|
||||||
|
DIR *dirp = NULL;
|
||||||
|
- int sdir = AT_FDCWD;
|
||||||
|
+ int sdir = dir_fd;
|
||||||
|
idx_t base_max = 0;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
@@ -371,10 +371,9 @@ backupfile_internal (int dir_fd, char const *file,
|
||||||
|
if (! rename)
|
||||||
|
break;
|
||||||
|
|
||||||
|
- int olddirfd = sdir < 0 ? dir_fd : sdir;
|
||||||
|
- idx_t offset = sdir < 0 ? 0 : base_offset;
|
||||||
|
+ idx_t offset = backup_type == simple_backups ? 0 : base_offset;
|
||||||
|
unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE;
|
||||||
|
- if (renameatu (olddirfd, file + offset, sdir, s + offset, flags) == 0)
|
||||||
|
+ if (renameatu (sdir, file + offset, sdir, s + offset, flags) == 0)
|
||||||
|
break;
|
||||||
|
int e = errno;
|
||||||
|
if (! (e == EEXIST && extended))
|
Loading…
Reference in New Issue
Block a user