--- /dev/null
+From 8c022656320592dbad146f5d3a3ae1875f419446 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Thu, 5 Mar 2020 17:25:29 -0800
+Subject: [PATCH 1/2] ls: restore 8.31 behavior on removed directories
+
+* NEWS: Mention this.
+* src/ls.c: Do not include <sys/sycall.h>
+(print_dir): Don't worry about whether the directory is removed.
+* tests/ls/removed-directory.sh: Adjust to match new (i.e., old)
+behavior.
+
+Upstream-commit: 10fcb97bd728f09d4a027eddf8ad2900f0819b0a
+Signed-off-by: Kamil Dudka <kdudka@redhat.com>
+---
+ src/ls.c | 22 ----------------------
+ tests/ls/removed-directory.sh | 10 ++--------
+ 2 files changed, 2 insertions(+), 30 deletions(-)
+
+diff --git a/src/ls.c b/src/ls.c
+index 9d25f62..850ecc2 100644
+--- a/src/ls.c
++++ b/src/ls.c
+@@ -49,10 +49,6 @@
+ # include <sys/ptem.h>
+ #endif
+
+-#ifdef __linux__
+-# include <sys/syscall.h>
+-#endif
+-
+ #include <stdio.h>
+ #include <assert.h>
+ #include <setjmp.h>
+@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ struct dirent *next;
+ uintmax_t total_blocks = 0;
+ static bool first = true;
+- bool found_any_entries = false;
+
+ errno = 0;
+ dirp = opendir (name);
+@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ next = readdir (dirp);
+ if (next)
+ {
+- found_any_entries = true;
+ if (! file_ignored (next->d_name))
+ {
+ enum filetype type = unknown;
+@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ if (errno != EOVERFLOW)
+ break;
+ }
+-#ifdef __linux__
+- else if (! found_any_entries)
+- {
+- /* If readdir finds no directory entries at all, not even "." or
+- "..", then double check that the directory exists. */
+- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
+- && errno != EINVAL)
+- {
+- /* We exclude EINVAL as that pertains to buffer handling,
+- and we've passed NULL as the buffer for simplicity.
+- ENOENT is returned if appropriate before buffer handling. */
+- file_failure (command_line_arg, _("reading directory %s"), name);
+- }
+- break;
+- }
+-#endif
+ else
+ break;
+
+diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh
+index e8c835d..fe8f929 100755
+--- a/tests/ls/removed-directory.sh
++++ b/tests/ls/removed-directory.sh
+@@ -26,20 +26,14 @@ case $host_triplet in
+ *) skip_ 'non linux kernel' ;;
+ esac
+
+-LS_FAILURE=2
+-
+-cat <<\EOF >exp-err || framework_failure_
+-ls: reading directory '.': No such file or directory
+-EOF
+-
+ cwd=$(pwd)
+ mkdir d || framework_failure_
+ cd d || framework_failure_
+ rmdir ../d || framework_failure_
+
+-returns_ $LS_FAILURE ls >../out 2>../err || fail=1
++ls >../out 2>../err || fail=1
+ cd "$cwd" || framework_failure_
+ compare /dev/null out || fail=1
+-compare exp-err err || fail=1
++compare /dev/null err || fail=1
+
+ Exit $fail
+--
+2.21.1
+
+
+From 847324a0debd9d12062c79e7a7a9d3d8ce76390d Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sat, 7 Mar 2020 10:29:51 -0800
+Subject: [PATCH 2/2] ls: improve removed-directory test
+
+* tests/ls/removed-directory.sh: Remove host_triplet test.
+Skip this test if one cannot remove the working directory.
+From a suggestion by Bernhard Voelker (Bug#39929).
+
+Upstream-commit: 672819c73f2e94e61386dc0584bddf9da860cc26
+Signed-off-by: Kamil Dudka <kdudka@redhat.com>
+---
+ tests/ls/removed-directory.sh | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh
+index fe8f929..63b209d 100755
+--- a/tests/ls/removed-directory.sh
++++ b/tests/ls/removed-directory.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# If ls is asked to list a removed directory (e.g. the parent process's
+-# current working directory that has been removed by another process), it
+-# emits an error message.
++# If ls is asked to list a removed directory (e.g., the parent process's
++# current working directory has been removed by another process), it
++# should not emit an error message merely because the directory is removed.
+
+ # Copyright (C) 2020 Free Software Foundation, Inc.
+
+@@ -21,15 +21,10 @@
+ . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
+ print_ver_ ls
+
+-case $host_triplet in
+- *linux*) ;;
+- *) skip_ 'non linux kernel' ;;
+-esac
+-
+ cwd=$(pwd)
+ mkdir d || framework_failure_
+ cd d || framework_failure_
+-rmdir ../d || framework_failure_
++rmdir ../d || skip_ "can't remove working directory on this platform"
+
+ ls >../out 2>../err || fail=1
+ cd "$cwd" || framework_failure_
+--
+2.21.1
+
-diff -ruN coreutils-8.27.orig/README coreutils-8.27/README
---- coreutils-8.27.orig/README 2017-01-21 15:53:43.000000000 +0100
-+++ coreutils-8.27/README 2017-06-10 20:34:17.945208906 +0200
+diff -urNp -x '*.orig' coreutils-8.32.org/README coreutils-8.32/README
+--- coreutils-8.32.org/README 2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32/README 2021-03-21 00:28:40.313899186 +0100
@@ -9,7 +9,7 @@ The programs that can be built with this
[ arch b2sum base32 base64 basename basenc cat chcon chgrp chmod chown
id install join kill link ln logname ls md5sum mkdir mkfifo mknod mktemp
mv nice nl nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx
pwd readlink realpath rm rmdir runcon seq sha1sum sha224sum sha256sum
-diff -ruN coreutils-8.27.orig/build-aux/gen-lists-of-programs.sh coreutils-8.27/build-aux/gen-lists-of-programs.sh
---- coreutils-8.27.orig/build-aux/gen-lists-of-programs.sh 2017-02-10 06:53:47.000000000 +0100
-+++ coreutils-8.27/build-aux/gen-lists-of-programs.sh 2017-06-10 20:32:44.126465035 +0200
-@@ -70,6 +70,7 @@
+diff -urNp -x '*.orig' coreutils-8.32.org/build-aux/gen-lists-of-programs.sh coreutils-8.32/build-aux/gen-lists-of-programs.sh
+--- coreutils-8.32.org/build-aux/gen-lists-of-programs.sh 2018-12-31 13:19:23.000000000 +0100
++++ coreutils-8.32/build-aux/gen-lists-of-programs.sh 2021-03-21 00:28:40.314899186 +0100
+@@ -71,6 +71,7 @@ normal_progs='
false
fmt
fold
ginstall
groups
head
-diff -ruN coreutils-8.27.orig/man/getgid.1 coreutils-8.27/man/getgid.1
---- coreutils-8.27.orig/man/getgid.1 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.27/man/getgid.1 2017-06-10 20:32:44.116465062 +0200
+diff -urNp -x '*.orig' coreutils-8.32.org/man/getgid.1 coreutils-8.32/man/getgid.1
+--- coreutils-8.32.org/man/getgid.1 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.32/man/getgid.1 2021-03-21 00:28:40.314899186 +0100
@@ -0,0 +1,22 @@
+.TH GETGID "1" "October 2002" "getgid (coreutils) 4.5.3" "User Commands"
+.SH NAME
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH "SEE ALSO"
+.BR id (1)
-diff -ruN coreutils-8.27.orig/man/getgid.x coreutils-8.27/man/getgid.x
---- coreutils-8.27.orig/man/getgid.x 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.27/man/getgid.x 2017-06-10 20:32:44.116465062 +0200
+diff -urNp -x '*.orig' coreutils-8.32.org/man/getgid.x coreutils-8.32/man/getgid.x
+--- coreutils-8.32.org/man/getgid.x 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.32/man/getgid.x 2021-03-21 00:28:40.314899186 +0100
@@ -0,0 +1,4 @@
+[NAME]
+getgid \- print ID of given group
+[DESCRIPTION]
+.\" Add any additional description here
-diff -ruN coreutils-8.27.orig/man/pl/getgid.1 coreutils-8.27/man/pl/getgid.1
---- coreutils-8.27.orig/man/pl/getgid.1 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.27/man/pl/getgid.1 2017-06-10 20:32:44.117465059 +0200
+diff -urNp -x '*.orig' coreutils-8.32.org/man/pl/getgid.1 coreutils-8.32/man/pl/getgid.1
+--- coreutils-8.32.org/man/pl/getgid.1 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.32/man/pl/getgid.1 2021-03-21 00:28:40.314899186 +0100
@@ -0,0 +1,22 @@
+.TH GETGID "1" "Pa?dziernik 2002" "getgid (coreutils) 4.5.3" "Polecenia u?ytkownika"
+.SH NAZWA
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH ZOBACZ TAK?E
+.BR id (1)
-diff -ruN coreutils-8.27.orig/po/POTFILES.in coreutils-8.27/po/POTFILES.in
---- coreutils-8.27.orig/po/POTFILES.in 2017-02-18 04:37:23.000000000 +0100
-+++ coreutils-8.27/po/POTFILES.in 2017-06-10 20:32:44.118465057 +0200
-@@ -65,6 +65,7 @@
+diff -urNp -x '*.orig' coreutils-8.32.org/po/POTFILES.in coreutils-8.32/po/POTFILES.in
+--- coreutils-8.32.org/po/POTFILES.in 2020-01-01 15:13:12.000000000 +0100
++++ coreutils-8.32/po/POTFILES.in 2021-03-21 00:28:40.314899186 +0100
+@@ -66,6 +66,7 @@ src/false.c
src/find-mount-point.c
src/fmt.c
src/fold.c
src/getlimits.c
src/group-list.c
src/groups.c
-diff -ruN coreutils-8.27.orig/po/pl.po coreutils-8.27/po/pl.po
---- coreutils-8.27.orig/po/pl.po 2017-03-09 06:02:56.000000000 +0100
-+++ coreutils-8.27/po/pl.po 2017-06-10 20:32:44.124465040 +0200
-@@ -4128,6 +4128,15 @@
+diff -urNp -x '*.orig' coreutils-8.32.org/po/pl.po coreutils-8.32/po/pl.po
+--- coreutils-8.32.org/po/pl.po 2021-03-21 00:28:39.617899186 +0100
++++ coreutils-8.32/po/pl.po 2021-03-21 00:28:40.316899186 +0100
+@@ -4199,6 +4199,15 @@ msgstr "przy czytaniu nazw na wejściu p
msgid "invalid zero-length file name"
msgstr "błędna nazwa pliku o zerowej długości"
+"\t%s nazwa-grupy\n"
+
#. This is a proper name. See the gettext manual, section Names.
- #: src/echo.c:26
+ #: src/echo.c:27
msgid "Brian Fox"
-diff -ruN coreutils-8.27.orig/src/getgid.c coreutils-8.27/src/getgid.c
---- coreutils-8.27.orig/src/getgid.c 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.27/src/getgid.c 2017-06-10 20:32:44.125465038 +0200
+diff -urNp -x '*.orig' coreutils-8.32.org/src/getgid.c coreutils-8.32/src/getgid.c
+--- coreutils-8.32.org/src/getgid.c 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.32/src/getgid.c 2021-03-21 00:28:40.317899186 +0100
@@ -0,0 +1,88 @@
+/* getgid - print GID of given group
+ Copyright (C) 1999 Artur Frysiak <wiget@pld-linux.org>
+ printf("%lu\n", (unsigned long int) gr->gr_gid);
+ exit(EXIT_SUCCESS);
+}
-diff -ruN coreutils-8.27.orig/src/local.mk coreutils-8.27/src/local.mk
---- coreutils-8.27.orig/src/local.mk 2017-03-08 06:34:11.000000000 +0100
-+++ coreutils-8.27/src/local.mk 2017-06-10 20:32:44.124465040 +0200
-@@ -128,6 +128,7 @@
+diff -urNp -x '*.orig' coreutils-8.32.org/src/local.mk coreutils-8.32/src/local.mk
+--- coreutils-8.32.org/src/local.mk 2020-02-25 13:54:28.000000000 +0100
++++ coreutils-8.32/src/local.mk 2021-03-21 00:28:40.317899186 +0100
+@@ -130,6 +130,7 @@ src_factor_LDADD = $(LDADD)
src_false_LDADD = $(LDADD)
src_fmt_LDADD = $(LDADD)
src_fold_LDADD = $(LDADD)
-diff -urN coreutils-5.2.1-orig/src/uname.c coreutils-5.2.1/src/uname.c
---- coreutils-5.2.1-orig/src/uname.c 2005-01-15 19:15:36.193346304 +0100
-+++ coreutils-5.2.1/src/uname.c 2005-01-15 19:19:06.918311240 +0100
-@@ -77,6 +77,8 @@
+diff -urNp -x '*.orig' coreutils-8.32.org/src/uname.c coreutils-8.32/src/uname.c
+--- coreutils-8.32.org/src/uname.c 2020-02-04 20:27:08.000000000 +0100
++++ coreutils-8.32/src/uname.c 2021-03-21 00:28:54.006899186 +0100
+@@ -86,6 +86,8 @@
/* Operating system. */
#define PRINT_OPERATING_SYSTEM 128
static struct option const uname_long_options[] =
{
{"all", no_argument, NULL, 'a'},
-@@ -243,13 +245,9 @@
+@@ -301,13 +303,9 @@ main (int argc, char **argv)
if (toprint & PRINT_PROCESSOR)
{
char const *element = unknown;
+ element = processor;
#ifdef UNAME_PROCESSOR
if (element == unknown)
- {
-@@ -294,3 +292,38 @@
+ {
+@@ -374,3 +372,38 @@ main (int argc, char **argv)
- exit (EXIT_SUCCESS);
+ return EXIT_SUCCESS;
}
+
+
Patch1: %{name}-getgid.patch
Patch2: %{name}-uname-cpuinfo.patch
Patch3: %{name}-date-man.patch
+Patch4: %{name}-8.32-ls-removed-dir.patch
Patch6: %{name}-fmt-wchars.patch
Patch7: %{name}-sparc64.patch
BuildRequires: libcap-devel
BuildRequires: libselinux-devel
BuildRequires: rpmbuild(find_lang) >= 1.24
-BuildRequires: smack-devel
+#BuildRequires: smack-devel
BuildRequires: tar >= 1:1.22
BuildRequires: texinfo >= 4.2
BuildRequires: xz
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%patch6 -p1
%ifarch sparc64