SHA256
1
0
forked from pool/coreutils
Dominique Leuenberger 2022-04-25 22:00:32 +00:00 committed by Git OBS Bridge
commit 6d251aec5a
13 changed files with 666 additions and 456 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce30acdf4a41bc5bb30dd955e9eaa75fa216b4e3deb08889ed32433c7b3b97ce
size 5612752

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEbDfcEhIaUAa8HbgE32/ZcTBgN9kFAmFN1c4ACgkQ32/ZcTBg
N9mtfw/8D8BJrt2Ver2xdPfow5FYHT/zakUQ2b3ZIHP0Es62W56+pWtGombphrZu
4PkI1x6i4S8z06O9rWPIDGMPjyPV9UJbzAiGC7Px6tW6RFHZx0M+GNsKfcjmhtf7
0v3jFF0g1IdrikFG1aYCAHZHy7n+yOm7xsfSmlYVlKcOVbCFN92ZBw0IohOSriSq
nJN6IOY8I3frhuI5kchY4wM6RMQ+ztNtG8odNvJI3kWCCL9pQFxzD8uorrvTiAcp
Qdbfz5TDnlVcXKR1gu6AAP+XThUYuxG5t/2Kghlril1zxnbDBZJsGteevyHsS7kY
grAWY4XqSvKVURGaKSSUhXlriQilPknBaichwEhAXvrUk1giviAzZ8CXB6WzzTvn
E9+ofC8RqTu345+ixkdZZu0TauOZWYIUVzKsD7W0ooQOT7OZeIQfb3+pbves/I+k
ZyiRLxfiUkAkKMUDrMr+okhqFA9fo/GCkFmHWj9m2NAc15kifEpSiCktfgoChbeG
ZiQFXQz090P+L1pk82qBXVgTjUyS5VEnXZoIkTWGzkHKySwreiaIjPQhS3cU2xAm
24i53zidj84Ib62Xa4jwxX7BzZqYRdbWAa/BUUNMov75W4dfkPlZ6qbRXtKnoOZf
u0ok3fgFvopGzwbw3l/HFp58jpaYL5S28gy10PpdOnxeO54XBn0=
=3TCC
-----END PGP SIGNATURE-----

3
coreutils-9.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423
size 5712104

16
coreutils-9.1.tar.xz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEbDfcEhIaUAa8HbgE32/ZcTBgN9kFAmJZ7qQACgkQ32/ZcTBg
N9mseQ/9HIe1s2ZCGOonUKI7HPp/x/qZXrq2R2/BL8+m9dMPfoIXa42DKu/LMpCK
amMuDIgfDbVp2Zky1cQ80d/lvYmkZXAIwUl0POrQiQkZ8fBsmZjQPKs4hTE4RmkX
7Y4n+KbOYPVkT+ROSq8O2fOL4++1kPoLFC6rkgylAR1t4836WzcNM33QCloyQlFU
CYQe57uSPfabDhswIQFraEPhIH0ZRQLAmcT2xuvlrbD8Uy9uakFrM8CFBVA9TpNu
KC7dShDErrTxfxlNfWLMD8vJu140if3hgGD45tNEM2VFSOhvQ07uoexwhLVSa+fw
cl114IAwAeBtz6ssE80vku8+pWmsAgfeqncn8DtEZ87Fa56N8u2QKuMZ/FjrxYwS
X9gHANJg5dzvVUB8ICvopGIs5iWXY5GhwaCuutSy/tsLp32Ytzv0FMtiKI1a6Msf
p8ojsFGnzQ2e4QRUBPKB2yxAZIlUvArFpsnebEPC47UBWbh4q/q6GA8omdLTF7N+
xQsaCyUCcRov3S8lD/4p/r0NfYnL2Tnjq39v6dH8gAQpDB/xDCnP3jG6mufKp7tu
mf0Q/Jws+4FKs7yVyq6DCOtFiJnx410fMhsHpDnzEegldWD1K9TIjDEW4E3yotwt
I8mGBRbgYc19TEUmTIr40MLc0vE3up7pY5/TY1kRdsYFlOPLbiA=
=Npyd
-----END PGP SIGNATURE-----

View File

@ -1,119 +0,0 @@
Upstream patch - remove with version >9.0:
chmod: fix exit status when ignoring symlinks
As a deviation from the upstream patch, the entry in the NEWS files uses a
different section header.
-------------------------------------------------------------------
Upstream patch:
https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=e8b56ebd5
From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001
From: =?UTF-8?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.
* NEWS: Mention the bug fix.
Fixes https://bugs.gnu.org/50784
---
NEWS | 9 +++++++++
src/chmod.c | 4 ++--
tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
tests/local.mk | 1 +
4 files changed, 43 insertions(+), 2 deletions(-)
Index: NEWS
===================================================================
--- NEWS.orig
+++ NEWS
@@ -1,5 +1,14 @@
GNU coreutils NEWS -*- outline -*-
+* Noteworthy downstream changes on top of release 9.0
+
+** Bug fixes
+
+ chmod -R no longer exits with error status when encountering symlinks.
+ All files would be processed correctly, but the exit status was incorrect.
+ [bug introduced in coreutils-9.0]
+
+
* Noteworthy changes in release 9.0 (2021-09-24) [stable]
** Bug fixes
Index: src/chmod.c
===================================================================
--- src/chmod.c.orig
+++ 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
Index: tests/chmod/ignore-symlink.sh
===================================================================
--- /dev/null
+++ 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
Index: tests/local.mk
===================================================================
--- tests/local.mk.orig
+++ tests/local.mk
@@ -458,6 +458,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 \

View File

@ -6,7 +6,7 @@ Index: gnulib-tests/gnulib.mk
=================================================================== ===================================================================
--- gnulib-tests/gnulib.mk.orig --- gnulib-tests/gnulib.mk.orig
+++ gnulib-tests/gnulib.mk +++ gnulib-tests/gnulib.mk
@@ -1035,10 +1035,10 @@ EXTRA_DIST += test-getloadavg.c signatur @@ -1073,10 +1073,10 @@ EXTRA_DIST += test-getloadavg.c signatur
## begin gnulib module getlogin-tests ## begin gnulib module getlogin-tests

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@ Index: gnulib-tests/gnulib.mk
=================================================================== ===================================================================
--- gnulib-tests/gnulib.mk.orig --- gnulib-tests/gnulib.mk.orig
+++ gnulib-tests/gnulib.mk +++ gnulib-tests/gnulib.mk
@@ -2615,9 +2615,10 @@ EXTRA_DIST += test-timespec.c macros.h @@ -2676,9 +2676,10 @@ EXTRA_DIST += test-timespec.c macros.h
## begin gnulib module tls-tests ## begin gnulib module tls-tests

View File

@ -6,8 +6,8 @@ Index: src/uname.c
=================================================================== ===================================================================
--- src/uname.c.orig --- src/uname.c.orig
+++ src/uname.c +++ src/uname.c
@@ -338,6 +338,36 @@ main (int argc, char **argv) @@ -341,6 +341,36 @@ main (int argc, char **argv)
# endif element = processor;
} }
#endif #endif
+ if (element == unknown) + if (element == unknown)
@ -43,7 +43,7 @@ Index: src/uname.c
if (! (toprint == UINT_MAX && element == unknown)) if (! (toprint == UINT_MAX && element == unknown))
print_element (element); print_element (element);
} }
@@ -363,6 +393,18 @@ main (int argc, char **argv) @@ -366,6 +396,18 @@ main (int argc, char **argv)
element = hardware_platform; element = hardware_platform;
} }
#endif #endif

View File

@ -16,7 +16,7 @@ Index: tests/local.mk
=================================================================== ===================================================================
--- tests/local.mk.orig --- tests/local.mk.orig
+++ tests/local.mk +++ tests/local.mk
@@ -733,14 +733,9 @@ all_tests = \ @@ -736,14 +736,9 @@ all_tests = \
# See tests/factor/create-test.sh. # See tests/factor/create-test.sh.
tf = tests/factor tf = tests/factor
factor_tests = \ factor_tests = \

View File

@ -1,3 +1,80 @@
-------------------------------------------------------------------
Sun Apr 24 09:49:04 UTC 2022 - Bernhard Voelker <mail@bernhard-voelker.de>
- gnulib-simple-backup-fix.patch: Add patch to make simple backups in correct
directory; broken in 9.1. See https://bugs.gnu.org/55029
-------------------------------------------------------------------
Thu Apr 21 20:58:30 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 9.1:
* chmod -R no longer exits with error status when encountering symlinks.
All files would be processed correctly, but the exit status was incorrect.
* If 'cp -Z A B' checks B's status and some other process then removes B,
cp no longer creates B with a too-generous SELinux security context
before adjusting it to the correct value.
* 'cp --preserve=ownership A B' no longer ignores the umask when creating B.
Also, 'cp --preserve-xattr A B' is less likely to temporarily chmod u+w B.
* 'id xyz' now uses the name 'xyz' to determine groups, instead of xyz's uid.
* 'ls -v' and 'sort -V' no longer mishandle corner cases like "a..a" vs "a.+"
or lines containing NULs. Their behavior now matches the documentation
for file names like ".m4" that consist entirely of an extension,
and the documentation has been clarified for unusual cases.
* 'mv -T --backup=numbered A B/' no longer miscalculates the backup number
for B when A is a directory, possibly inflooping.
* cat now uses the copy_file_range syscall if available, when doing
simple copies between regular files. This may be more efficient, by avoiding
user space copies, and possibly employing copy offloading or reflinking.
* chown and chroot now warn about usages like "chown root.root f",
which have the nonstandard and long-obsolete "." separator that
causes problems on platforms where user names contain ".".
Applications should use ":" instead of ".".
* cksum no longer allows abbreviated algorithm names,
so that forward compatibility and robustness is improved.
* date +'%-N' now suppresses excess trailing digits, instead of always
padding them with zeros to 9 digits. It uses clock_getres and
clock_gettime to infer the clock resolution.
* dd conv=fsync now synchronizes output even after a write error,
and similarly for dd conv=fdatasync.
* dd now counts bytes instead of blocks if a block count ends in "B".
For example, 'dd count=100KiB' now copies 100 KiB of data, not
102,400 blocks of data. The flags count_bytes, skip_bytes and
seek_bytes are therefore obsolescent and are no longer documented,
though they still work.
* ls no longer colors files with capabilities by default, as file-based
capabilties are very rarely used, and lookup increases processing per file by
about 30%. It's best to use getcap [-r] to identify files with capabilities.
* ls no longer tries to automount files, reverting to the behavior
before the statx() call was introduced in coreutils-8.32.
* stat no longer tries to automount files by default, reverting to the
behavior before the statx() call was introduced in coreutils-8.32.
Only `stat --cached=never` will continue to automount files.
* timeout --foreground --kill-after=... will now exit with status 137
if the kill signal was sent, which is consistent with the behavior
when the --foreground option is not specified. This allows users to
distinguish if the command was more forcefully terminated.
* dd now supports the aliases iseek=N for skip=N, and oseek=N for seek=N,
like FreeBSD and other operating systems.
* dircolors takes a new --print-ls-colors option to display LS_COLORS
entries, on separate lines, colored according to the entry color code.
* dircolors will now also match COLORTERM in addition to TERM environment
variables. The default config will apply colors with any COLORTERM set.
* cp, mv, and install now use openat-like syscalls when copying to a directory.
* This avoids some race conditions and should be more efficient.
* The new 'date' option --resolution outputs the timestamp resolution.
* With conv=fdatasync or conv=fsync, dd status=progress now reports
any extra final progress just before synchronizing output data,
since synchronizing can take a long time.
* printf now supports printing the numeric value of multi-byte characters.
* sort --debug now diagnoses issues with --field-separator characters
that conflict with characters possibly used in numbers.
* 'tail -f file | filter' now exits on Solaris when filter exits.
* root invoked coreutils, that are built and run in single binary mode,
now adjust /proc/$pid/cmdline to be more specific to the utility
being run, rather than using the general "coreutils" binary name.
- coreutils-i18n.patch: Re-sync the patch with Fedora.
- drop coreutils-chmod-fix-exit-status-ign-symlinks.patch (upstream)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Oct 4 22:15:01 UTC 2021 - Bernhard Voelker <mail@bernhard-voelker.de> Mon Oct 4 22:15:01 UTC 2021 - Bernhard Voelker <mail@bernhard-voelker.de>

View File

@ -1,7 +1,7 @@
# #
# spec file # spec file
# #
# Copyright (c) 2021 SUSE LLC # Copyright (c) 2022 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -19,16 +19,20 @@
# there are more fancy ways to define a package name using magic # there are more fancy ways to define a package name using magic
# macros but OBS and the bots that rely on parser information from # macros but OBS and the bots that rely on parser information from
# OBS can't deal with all of them # OBS can't deal with all of them
%define flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
%bcond_with ringdisabled %bcond_with ringdisabled
%if "%{flavor}" != ""
%define name_suffix -%{flavor}
%if %{with ringdisabled} %if %{with ringdisabled}
ExclusiveArch: do_not_build ExclusiveArch: do_not_build
%endif %endif
%if "%{flavor}" != ""
%define psuffix -%{flavor}
%else
%define psuffix %{nil}
%endif %endif
Name: coreutils%{?name_suffix} Name: coreutils%{psuffix}
Version: 9.0 Version: 9.1
Release: 0 Release: 0
Summary: GNU Core Utilities Summary: GNU Core Utilities
License: GPL-3.0-or-later License: GPL-3.0-or-later
@ -59,11 +63,14 @@ Patch303: coreutils-tests-shorten-extreme-factor-tests.patch
Patch304: coreutils-use-python3.patch Patch304: coreutils-use-python3.patch
Patch500: coreutils-disable_tests.patch Patch500: coreutils-disable_tests.patch
Patch501: coreutils-test_without_valgrind.patch Patch501: coreutils-test_without_valgrind.patch
# Upstream patch - remove with version >9.0:
# chmod: fix exit status when ignoring symlinks # Downstream patch to skip a test failing on OBS.
Patch800: coreutils-chmod-fix-exit-status-ign-symlinks.patch
# tests: skip tests/rm/ext3-perf.sh temporarily as it hangs on OBS. # tests: skip tests/rm/ext3-perf.sh temporarily as it hangs on OBS.
Patch810: coreutils-skip-tests-rm-ext3-perf.patch Patch810: coreutils-skip-tests-rm-ext3-perf.patch
# Upstream patch - remove with version >9.1:
Patch850: gnulib-simple-backup-fix.patch
BuildRequires: automake BuildRequires: automake
BuildRequires: gmp-devel BuildRequires: gmp-devel
BuildRequires: libacl-devel BuildRequires: libacl-devel
@ -134,7 +141,7 @@ This package contains the documentation for the GNU Core Utilities.
%prep %prep
%setup -q -n coreutils-%{version} %setup -q -n coreutils-%{version}
%patch4 %patch4 -p1
%patch1 %patch1
%patch3 %patch3
%patch8 %patch8
@ -157,8 +164,8 @@ This package contains the documentation for the GNU Core Utilities.
%patch500 %patch500
%patch501 %patch501
%patch800
%patch810 %patch810
%patch850
# ================================================ # ================================================
%build %build

View File

@ -0,0 +1,93 @@
Upstream patch on top of coreutils-9.1; remove with >9.1.
Fixes: https://bugs.gnu.org/55029
Two commits:
* https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=e087525091b
commit e087525091b8f0a15eb2354f71032597d5271599
Author: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed Apr 20 19:44:56 2022 -0700
mv: test Bug#55029
* tests/mv/backup-dir.sh: New test for Bug#55029,
reported by Steve Ward.
* https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=7347caeb9d90
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
---
NEWS | 8 ++++++++
lib/backupfile.c | 7 +++----
tests/mv/backup-dir.sh | 6 ++++++
3 files changed, 17 insertions(+), 4 deletions(-)
Index: lib/backupfile.c
===================================================================
--- lib/backupfile.c.orig
+++ lib/backupfile.c
@@ -332,7 +332,7 @@ backupfile_internal (int dir_fd, char co
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 co
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))
Index: tests/mv/backup-dir.sh
===================================================================
--- tests/mv/backup-dir.sh.orig
+++ tests/mv/backup-dir.sh
@@ -36,4 +36,10 @@ mkdir C D E || framework_failure_
mv -T --backup=numbered C E/ || fail=1
mv -T --backup=numbered D E/ || fail=1
+# Bug#55029
+mkdir F && echo 1 >1 && echo 2 >2 && cp 1 F/X && cp 2 X || framework_failure_
+mv --backup=simple X F/ || fail=1
+compare 1 F/X~ || fail=1
+compare 2 F/X || fail=1
+
Exit $fail
Index: NEWS
===================================================================
--- NEWS.orig
+++ NEWS
@@ -1,5 +1,13 @@
GNU coreutils NEWS -*- outline -*-
+* Downstream changes on top of release 9.1
+
+** Bug fixes
+
+ 'mv --backup=simple f d/' no longer mistakenly backs up d/f to f~.
+ [bug introduced in coreutils-9.1]
+
+
* Noteworthy changes in release 9.1 (2022-04-15) [stable]
** Bug fixes