* update coreutils to 9.4-2
This commit is contained in:
parent
bee2ccb766
commit
644a1b81b8
@ -1,92 +0,0 @@
|
||||
From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001
|
||||
From: =?utf8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Fri, 24 Sep 2021 20:57:41 +0100
|
||||
Subject: [PATCH] chmod: fix exit status when ignoring symlinks
|
||||
|
||||
* src/chmod.c: Reorder enum so CH_NOT_APPLIED
|
||||
can be treated as a non error.
|
||||
* tests/chmod/ignore-symlink.sh: A new test.
|
||||
* tests/local.mk: Reference the new test.
|
||||
Fixes https://bugs.gnu.org/50784
|
||||
---
|
||||
src/chmod.c | 4 ++--
|
||||
tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
|
||||
tests/local.mk | 1 +
|
||||
4 files changed, 40 insertions(+), 2 deletions(-)
|
||||
create mode 100755 tests/chmod/ignore-symlink.sh
|
||||
|
||||
diff --git a/src/chmod.c b/src/chmod.c
|
||||
index 37b04f5..57ac47f 100644
|
||||
--- a/src/chmod.c
|
||||
+++ b/src/chmod.c
|
||||
@@ -44,8 +44,8 @@ struct change_status
|
||||
enum
|
||||
{
|
||||
CH_NO_STAT,
|
||||
- CH_NOT_APPLIED,
|
||||
CH_FAILED,
|
||||
+ CH_NOT_APPLIED,
|
||||
CH_NO_CHANGE_REQUESTED,
|
||||
CH_SUCCEEDED
|
||||
}
|
||||
@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent)
|
||||
if ( ! recurse)
|
||||
fts_set (fts, ent, FTS_SKIP);
|
||||
|
||||
- return CH_NO_CHANGE_REQUESTED <= ch.status;
|
||||
+ return CH_NOT_APPLIED <= ch.status;
|
||||
}
|
||||
|
||||
/* Recursively change the modes of the specified FILES (the last entry
|
||||
diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh
|
||||
new file mode 100755
|
||||
index 0000000..5ce3de8
|
||||
--- /dev/null
|
||||
+++ b/tests/chmod/ignore-symlink.sh
|
||||
@@ -0,0 +1,31 @@
|
||||
+#!/bin/sh
|
||||
+# Test for proper exit code of chmod on a processed symlink.
|
||||
+
|
||||
+# Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software: you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation, either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
+
|
||||
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||
+print_ver_ chmod
|
||||
+
|
||||
+mkdir dir || framework_failure_
|
||||
+touch dir/f || framework_failure_
|
||||
+ln -s f dir/l || framework_failure_
|
||||
+
|
||||
+# This operation ignores symlinks but should succeed.
|
||||
+chmod u+w -R dir 2> out || fail=1
|
||||
+
|
||||
+compare /dev/null out || fail=1
|
||||
+
|
||||
+Exit $fail
|
||||
diff --git a/tests/local.mk b/tests/local.mk
|
||||
index 228d0e3..b5b893f 100644
|
||||
--- a/tests/local.mk
|
||||
+++ b/tests/local.mk
|
||||
@@ -456,6 +456,7 @@ all_tests = \
|
||||
tests/chmod/c-option.sh \
|
||||
tests/chmod/equal-x.sh \
|
||||
tests/chmod/equals.sh \
|
||||
+ tests/chmod/ignore-symlink.sh \
|
||||
tests/chmod/inaccessible.sh \
|
||||
tests/chmod/octal.sh \
|
||||
tests/chmod/setgid.sh \
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,20 +1,21 @@
|
||||
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
||||
# Maintainer: Sébastien "Seblu" Luttringer
|
||||
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
|
||||
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
|
||||
# Contributor: Allan McRae <allan@archlinux.org>
|
||||
# Contributor: judd <jvinet@zeroflux.org>
|
||||
|
||||
pkgname=coreutils
|
||||
pkgver=9.3
|
||||
pkgrel=1
|
||||
pkgver=9.4
|
||||
pkgrel=2
|
||||
pkgdesc='The basic file, shell and text manipulation utilities of the GNU operating system'
|
||||
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
|
||||
license=('GPL3')
|
||||
license=('GPL-3.0-or-later' 'GFDL-1.3-or-later')
|
||||
url='https://www.gnu.org/software/coreutils/'
|
||||
depends=('glibc' 'acl' 'attr' 'gmp' 'libcap' 'openssl')
|
||||
source=("https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig})
|
||||
validpgpkeys=('6C37DC12121A5006BC1DB804DF6FD971306037D9') # Pádraig Brady
|
||||
sha256sums=('adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa'
|
||||
sha256sums=('ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52'
|
||||
'SKIP')
|
||||
|
||||
prepare() {
|
||||
|
@ -1,136 +0,0 @@
|
||||
From 093a8b4bfaba60005f14493ce7ef11ed665a0176 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Thu, 23 Mar 2023 13:19:04 +0000
|
||||
Subject: copy: fix --reflink=auto to fallback in more cases
|
||||
|
||||
On restricted systems like android or some containers,
|
||||
FICLONE could return EPERM, EACCES, or ENOTTY,
|
||||
which would have induced the command to fail to copy
|
||||
rather than falling back to a more standard copy.
|
||||
|
||||
* src/copy.c (is_terminal_failure): A new function refactored
|
||||
from handle_clone_fail().
|
||||
(is_CLONENOTSUP): Merge in the handling of EACCES, ENOTTY, EPERM
|
||||
as they also pertain to determination of whether cloning is supported
|
||||
if we ever use this function in that context.
|
||||
(handle_clone_fail): Use is_terminal_failure() in all cases,
|
||||
so that we assume a terminal failure in less errno cases.
|
||||
* NEWS: Mention the bug fix.
|
||||
Addresses https://bugs.gnu.org/62404
|
||||
---
|
||||
NEWS | 8 ++++++++
|
||||
src/copy.c | 62 +++++++++++++++++++++++++++++++++++---------------------------
|
||||
2 files changed, 43 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/src/copy.c b/src/copy.c
|
||||
index 3919787..f8ba058 100644
|
||||
--- a/src/copy.c
|
||||
+++ b/src/copy.c
|
||||
@@ -278,15 +278,27 @@ create_hole (int fd, char const *name, bool punch_holes, off_t size)
|
||||
}
|
||||
|
||||
|
||||
-/* Whether the errno from FICLONE, or copy_file_range
|
||||
- indicates operation is not supported for this file or file system. */
|
||||
+/* Whether the errno indicates the operation is a transient failure.
|
||||
+ I.e., a failure that would indicate the operation _is_ supported,
|
||||
+ but has failed in a terminal way. */
|
||||
+
|
||||
+static bool
|
||||
+is_terminal_error (int err)
|
||||
+{
|
||||
+ return err == EIO || err == ENOMEM || err == ENOSPC || err == EDQUOT;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* Whether the errno from FICLONE, or copy_file_range indicates
|
||||
+ the operation is not supported/allowed for this file or process. */
|
||||
|
||||
static bool
|
||||
is_CLONENOTSUP (int err)
|
||||
{
|
||||
- return err == ENOSYS || is_ENOTSUP (err)
|
||||
+ return err == ENOSYS || err == ENOTTY || is_ENOTSUP (err)
|
||||
|| err == EINVAL || err == EBADF
|
||||
- || err == EXDEV || err == ETXTBSY;
|
||||
+ || err == EXDEV || err == ETXTBSY
|
||||
+ || err == EPERM || err == EACCES;
|
||||
}
|
||||
|
||||
|
||||
@@ -339,20 +351,18 @@ sparse_copy (int src_fd, int dest_fd, char **abuf, size_t buf_size,
|
||||
{
|
||||
copy_debug.offload = COPY_DEBUG_UNSUPPORTED;
|
||||
|
||||
- if (is_CLONENOTSUP (errno))
|
||||
- break;
|
||||
-
|
||||
- /* copy_file_range might not be enabled in seccomp filters,
|
||||
- so retry with a standard copy. EPERM can also occur
|
||||
- for immutable files, but that would only be in the edge case
|
||||
- where the file is made immutable after creating/truncating,
|
||||
+ /* Consider operation unsupported only if no data copied.
|
||||
+ For example, EPERM could occur if copy_file_range not enabled
|
||||
+ in seccomp filters, so retry with a standard copy. EPERM can
|
||||
+ also occur for immutable files, but that would only be in the
|
||||
+ edge case where the file is made immutable after creating,
|
||||
in which case the (more accurate) error is still shown. */
|
||||
- if (errno == EPERM && *total_n_read == 0)
|
||||
+ if (*total_n_read == 0 && is_CLONENOTSUP (errno))
|
||||
break;
|
||||
|
||||
/* ENOENT was seen sometimes across CIFS shares, resulting in
|
||||
no data being copied, but subsequent standard copies succeed. */
|
||||
- if (errno == ENOENT && *total_n_read == 0)
|
||||
+ if (*total_n_read == 0 && errno == ENOENT)
|
||||
break;
|
||||
|
||||
if (errno == EINTR)
|
||||
@@ -1172,17 +1182,15 @@ handle_clone_fail (int dst_dirfd, char const* dst_relname,
|
||||
char const* src_name, char const* dst_name,
|
||||
int dest_desc, bool new_dst, enum Reflink_type reflink_mode)
|
||||
{
|
||||
- /* If the clone operation is creating the destination,
|
||||
- then don't try and cater for all non transient file system errors,
|
||||
- and instead only cater for specific transient errors. */
|
||||
- bool transient_failure;
|
||||
- if (dest_desc < 0) /* currently for fclonefileat(). */
|
||||
- transient_failure = errno == EIO || errno == ENOMEM
|
||||
- || errno == ENOSPC || errno == EDQUOT;
|
||||
- else /* currently for FICLONE. */
|
||||
- transient_failure = ! is_CLONENOTSUP (errno);
|
||||
-
|
||||
- if (reflink_mode == REFLINK_ALWAYS || transient_failure)
|
||||
+ /* When the clone operation fails, report failure only with errno values
|
||||
+ known to mean trouble when the clone is supported and called properly.
|
||||
+ Do not report failure merely because !is_CLONENOTSUP (errno),
|
||||
+ as systems may yield oddball errno values here with FICLONE.
|
||||
+ Also is_CLONENOTSUP() is not appropriate for the range of errnos
|
||||
+ possible from fclonefileat(), so it's more consistent to avoid. */
|
||||
+ bool report_failure = is_terminal_error (errno);
|
||||
+
|
||||
+ if (reflink_mode == REFLINK_ALWAYS || report_failure)
|
||||
error (0, errno, _("failed to clone %s from %s"),
|
||||
quoteaf_n (0, dst_name), quoteaf_n (1, src_name));
|
||||
|
||||
@@ -1190,14 +1198,14 @@ handle_clone_fail (int dst_dirfd, char const* dst_relname,
|
||||
but cloned no data. */
|
||||
if (new_dst /* currently not for fclonefileat(). */
|
||||
&& reflink_mode == REFLINK_ALWAYS
|
||||
- && ((! transient_failure) || lseek (dest_desc, 0, SEEK_END) == 0)
|
||||
+ && ((! report_failure) || lseek (dest_desc, 0, SEEK_END) == 0)
|
||||
&& unlinkat (dst_dirfd, dst_relname, 0) != 0 && errno != ENOENT)
|
||||
error (0, errno, _("cannot remove %s"), quoteaf (dst_name));
|
||||
|
||||
- if (! transient_failure)
|
||||
+ if (! report_failure)
|
||||
copy_debug.reflink = COPY_DEBUG_UNSUPPORTED;
|
||||
|
||||
- if (reflink_mode == REFLINK_ALWAYS || transient_failure)
|
||||
+ if (reflink_mode == REFLINK_ALWAYS || report_failure)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 1a80fab339d52db7e284b4f2f41068d5d8dd7e4e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Mon, 3 Apr 2023 18:12:33 +0100
|
||||
Subject: [PATCH] tests: cp: test --backup with subdirectories
|
||||
|
||||
* tests/cp/backup-dir.sh: Add a test to ensure
|
||||
we rename appropriately when backing up through subdirs.
|
||||
* NEWS: Mention the bug fix.
|
||||
Addresses https://bugs.gnu.org/62607
|
||||
---
|
||||
NEWS | 5 +++++
|
||||
tests/cp/backup-dir.sh | 8 +++++++-
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/cp/backup-dir.sh b/tests/cp/backup-dir.sh
|
||||
index 6573d58e0..5c17498cf 100755
|
||||
--- a/tests/cp/backup-dir.sh
|
||||
+++ b/tests/cp/backup-dir.sh
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
-# Ensure that cp -b doesn't back up directories.
|
||||
+# Ensure that cp -b handles directories appropriately
|
||||
|
||||
# Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
|
||||
@@ -29,4 +29,10 @@ cp -ab x y || fail=1
|
||||
test -d y/x || fail=1
|
||||
test -d y/x~ && fail=1
|
||||
|
||||
+# Bug 62607.
|
||||
+# This would fail to backup using rename, and thus fail to replace the file
|
||||
+mkdir -p {src,dst}/foo || framework_failure_
|
||||
+touch {src,dst}/foo/bar || framework_failure_
|
||||
+cp --recursive --backup src/* dst || fail=1
|
||||
+
|
||||
Exit $fail
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 418aa564ebff70c1d118a5d3307a6d0b147ff7a2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Mon, 3 Apr 2023 18:06:22 +0100
|
||||
Subject: [PATCH] backupfile: fix bug when renaming from subdirectory
|
||||
|
||||
* lib/backupfile.c (backup_internal): Ensure we use the
|
||||
appropriate offset if operating on a subdirectory,
|
||||
i.e., on an updated sdir.
|
||||
Fixes https://bugs.gnu.org/62607
|
||||
---
|
||||
ChangeLog | 8 ++++++++
|
||||
lib/backupfile.c | 7 ++++---
|
||||
2 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/backupfile.c b/lib/backupfile.c
|
||||
index 9cca271343..5bcf924414 100644
|
||||
--- a/lib/backupfile.c
|
||||
+++ b/lib/backupfile.c
|
||||
@@ -331,7 +331,7 @@ backupfile_internal (int dir_fd, char const *file,
|
||||
return s;
|
||||
|
||||
DIR *dirp = NULL;
|
||||
- int sdir = dir_fd;
|
||||
+ int sdir = -1;
|
||||
idx_t base_max = 0;
|
||||
while (true)
|
||||
{
|
||||
@@ -370,9 +370,10 @@ backupfile_internal (int dir_fd, char const *file,
|
||||
if (! rename)
|
||||
break;
|
||||
|
||||
- idx_t offset = backup_type == simple_backups ? 0 : base_offset;
|
||||
+ dir_fd = sdir < 0 ? dir_fd : sdir;
|
||||
+ idx_t offset = sdir < 0 ? 0 : base_offset;
|
||||
unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE;
|
||||
- if (renameatu (sdir, file + offset, sdir, s + offset, flags) == 0)
|
||||
+ if (renameatu (dir_fd, file + offset, dir_fd, s + offset, flags) == 0)
|
||||
break;
|
||||
int e = errno;
|
||||
if (! (e == EEXIST && extended))
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,75 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=HaQo
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
Loading…
x
Reference in New Issue
Block a user