Your message dated Tue, 22 Sep 2020 12:48:53 +0000
with message-id <e1kkhj3-000fzb...@fasolo.debian.org>
and subject line Bug#966449: fixed in coreutils 8.32-4
has caused the Debian Bug report #966449,
regarding coreutils 8.32-3 FTBFS on arm64 (and proposed fix)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
966449: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=966449
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: coreutils
Version: 8.32-3
Severity: serious
Tags: patch ftbfs

Hi,

The current coreutils version FTBFS on arm64:

src/ls.c: In function 'print_dir':
src/ls.c:3026:24: error: 'SYS_getdents' undeclared (first use in this 
function); did you mean 'SYS_getdents64'?
 3026 |           if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
      |                        ^~~~~~~~~~~~
      |                        SYS_getdents64
src/ls.c:3026:24: note: each undeclared identifier is reported only once for 
each function it appears in

This has been reported upstream in
<https://lists.gnu.org/archive/html/bug-coreutils/2020-03/msg00005.html>.
The fix upstream adopted is to restore the behaviour of ls on removed
directories back to what it was on 8.31.

I've backported the patches needed to fix the issue, so I'm proposing
them here.  Ubuntu coreutils is already carrying these patches and the
ARM64 build passes there.

Thanks!

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
https://sergiodj.net/

diff -Nru coreutils-8.32/debian/changelog coreutils-8.32/debian/changelog
--- coreutils-8.32/debian/changelog	2020-07-20 14:09:06.000000000 -0400
+++ coreutils-8.32/debian/changelog	2020-07-28 10:50:52.000000000 -0400
@@ -1,3 +1,16 @@
+coreutils (8.32-3.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTBFS on ARM64.
+    - d/p/restore-ls-behavior-8.31.patch: Upstream patch to restore
+      coreutils ls' 8.31 behavior on removed directories, which is
+      necessary to prevent using SYS_getdents that doesn't exist on
+      ARM64.
+    - d/p/improve-removed-directory-test.patch: Upstream patch to
+      improve ls' removed-directory test.
+
+ -- Sergio Durigan Junior <sergi...@debian.org>  Tue, 28 Jul 2020 10:50:52 -0400
+
 coreutils (8.32-3) unstable; urgency=low
 
   * build with libgmp now that apt pulls it in anyway (Closes: #64527)
diff -Nru coreutils-8.32/debian/patches/improve-removed-directory-test.patch coreutils-8.32/debian/patches/improve-removed-directory-test.patch
--- coreutils-8.32/debian/patches/improve-removed-directory-test.patch	1969-12-31 19:00:00.000000000 -0500
+++ coreutils-8.32/debian/patches/improve-removed-directory-test.patch	2020-07-28 10:50:23.000000000 -0400
@@ -0,0 +1,49 @@
+From: Paul Eggert <egg...@cs.ucla.edu>
+Date: Sat, 7 Mar 2020 10:29:51 -0800
+Subject: 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).
+
+Author: Paul Eggert <egg...@cs.ucla.edu>
+Origin: upstream, https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=672819c73f2e94e61386dc0584bddf9da860cc26
+Bug: https://lists.gnu.org/archive/html/bug-coreutils/2020-03/msg00005.html
+Last-Updated: 2020-07-24
+Reviewed-By: Sergio Durigan Junior <sergio.duri...@canonical.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_
diff -Nru coreutils-8.32/debian/patches/restore-ls-behavior-8.31.patch coreutils-8.32/debian/patches/restore-ls-behavior-8.31.patch
--- coreutils-8.32/debian/patches/restore-ls-behavior-8.31.patch	1969-12-31 19:00:00.000000000 -0500
+++ coreutils-8.32/debian/patches/restore-ls-behavior-8.31.patch	2020-07-28 10:50:23.000000000 -0400
@@ -0,0 +1,126 @@
+From: Paul Eggert <egg...@cs.ucla.edu>
+Date: Thu, 5 Mar 2020 17:25:29 -0800
+Subject: 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.
+
+This patch is needed because coreutils 8.32 fails to build on ARM64
+with:
+
+src/ls.c: In function 'print_dir':
+src/ls.c:3026:24: error: 'SYS_getdents' undeclared (first use in this function); did you mean 'SYS_getdents64'?
+ 3026 |           if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
+      |                        ^~~~~~~~~~~~
+      |                        SYS_getdents64
+
+Author: Paul Eggert <egg...@cs.ucla.edu>
+Origin: upstream, https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=10fcb97bd728f09d4a027eddf8ad2900f0819b0a
+Bug: https://lists.gnu.org/archive/html/bug-coreutils/2020-03/msg00005.html
+Last-Updated: 2020-07-24
+Reviewed-By: Sergio Durigan Junior <sergio.duri...@canonical.com>
+---
+ NEWS                          |  4 ----
+ src/ls.c                      | 22 ----------------------
+ tests/ls/removed-directory.sh | 10 ++--------
+ 3 files changed, 2 insertions(+), 34 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 3e44c0c..3b419cb 100644
+--- a/NEWS
++++ b/NEWS
+@@ -65,10 +65,6 @@ GNU coreutils NEWS                                    -*- outline -*-
+   [The old behavior was introduced in sh-utils 2.0.15 ca. 1999, predating
+   coreutils package.]
+ 
+-  ls issues an error message on a removed directory, on GNU/Linux systems.
+-  Previously no error and no entries were output, and so indistinguishable
+-  from an empty directory, with default ls options.
+-
+   uniq no longer uses strcoll() to determine string equivalence,
+   and so will operate more efficiently and consistently.
+ 
+diff --git a/src/ls.c b/src/ls.c
+index 24b9832..4acf5f4 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
diff -Nru coreutils-8.32/debian/patches/series coreutils-8.32/debian/patches/series
--- coreutils-8.32/debian/patches/series	2020-06-22 14:41:01.000000000 -0400
+++ coreutils-8.32/debian/patches/series	2020-07-28 10:50:29.000000000 -0400
@@ -3,3 +3,5 @@
 72_id_checkngroups.patch
 85_timer_settime.patch
 99_kfbsd_fstat_patch.patch
+restore-ls-behavior-8.31.patch
+improve-removed-directory-test.patch

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Source: coreutils
Source-Version: 8.32-4
Done: Michael Stone <mst...@debian.org>

We believe that the bug you reported is fixed in the latest version of
coreutils, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 966...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Stone <mst...@debian.org> (supplier of updated coreutils package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 22 Sep 2020 08:17:17 -0400
Source: coreutils
Binary: coreutils coreutils-dbgsym
Architecture: source amd64
Version: 8.32-4
Distribution: unstable
Urgency: low
Maintainer: Michael Stone <mst...@debian.org>
Changed-By: Michael Stone <mst...@debian.org>
Description:
 coreutils  - GNU core utilities
Closes: 966449
Changes:
 coreutils (8.32-4) unstable; urgency=low
 .
   * Fix FTBFS on ARM64. (Closes: #966449)
     - d/p/restore-ls-behavior-8.31.patch: Upstream patch to restore
       coreutils ls' 8.31 behavior on removed directories, which is
       necessary to prevent using SYS_getdents that doesn't exist on
       ARM64.
Checksums-Sha1:
 6a35ccf40965485dd811779d0d0e11cb0543a30a 2096 coreutils_8.32-4.dsc
 3d26ddf39875d2eb7335fb5b11df6c88d8fa420b 33028 coreutils_8.32-4.debian.tar.xz
 e89da104c06c12a216e0b5aa7aec6be609e56b2b 6432420 
coreutils-dbgsym_8.32-4_amd64.deb
 6e1479ca27c848f28cb3b5eeb7bea0020bcff449 7385 coreutils_8.32-4_amd64.buildinfo
 8b8d3a122dc0504b724465b27de5403c7c9c194f 2865712 coreutils_8.32-4_amd64.deb
Checksums-Sha256:
 ea8cafd14b693ec2d8b6e33ee8564c1fa5f102e65574252b0d524aaee04ba7e9 2096 
coreutils_8.32-4.dsc
 2d5337067b675e0b3fa7c88df164e7738ed4715a39e88e1e82dc9185e4e1b951 33028 
coreutils_8.32-4.debian.tar.xz
 17e236b3ccbbef0db458fb70a9cd0c0cd066aced6ed8bfb791d399dbf0521b6b 6432420 
coreutils-dbgsym_8.32-4_amd64.deb
 766b6973b19dc2be38992c9011b5b9b2563f88a1c959d098c63e94dd69439f2c 7385 
coreutils_8.32-4_amd64.buildinfo
 d426a77431e8f4758ed899ac2ffdc628177629cad5cf9f55b9f77befbefb4fc9 2865712 
coreutils_8.32-4_amd64.deb
Files:
 5ca78b8ed361eceb316a16b1b2de5734 2096 utils required coreutils_8.32-4.dsc
 c908d81c17ca3b21b06316b68e9ce922 33028 utils required 
coreutils_8.32-4.debian.tar.xz
 14fcf5c64d9323a1b5aef1a40dcc0ca7 6432420 debug optional 
coreutils-dbgsym_8.32-4_amd64.deb
 d0cb31781c3d34bfe889e999c644c1f4 7385 utils required 
coreutils_8.32-4_amd64.buildinfo
 2e8a11bb896dacc66426b0db0a7bd546 2865712 utils required 
coreutils_8.32-4_amd64.deb

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEAtUxX/EfGGGGDh4C9hqs3PoR/94FAl9p7MQACgkQ9hqs3PoR
/97EKRAApOeUG8yFhigaYeRw4IF7F6ST5iy/PBUwb0wOkFgCzpZJI1kmcBbIOZ8s
+ZXKyZxiQ1GvQ/X3ZwZZv+WeFmIV+aVH5iLiK9+PnT+OJer0Ndst9pNbfZOPUmHZ
Vk1dpigcUVDLz2YRk5JMjmxkxAOJThea9PUj4XUv7VxP6IWYb/7ASV2uutxDo1Am
Xno41MapEe2g0tm4Vv/i541sOM3qa80TsBmCoOIn8GXTK/CS/KoKteDFM/C3fPkq
awp/DgEXRxPkshqXNM1CmfpIadtriOZo/evx8+3S4dCp0Uom04PSdbLu00MZEUpe
NNC5jKIOacA1Go5wBOV+FUIjC/Plq0M9yDBR3iHC20iq/++OaX43hlftKoJlo4EC
KfeEm2/qifMsKO0R2Hpugpyvjwvh8J0KEPdPfDaraULiQ1aWHQuFprt488D5NcQ2
94ia7tNnZzoLQRZ/X5PWXMHxUsnMvOJi+LO52iOMnzEWZiC1MogfwtRhenNBWSlG
BbLLBC58pDPC+57eq+TGhYnmIN0mKz6mi93ValWgYWEvGRmbu27ppwVDSC4xYoWp
+hMvPuvKO3EQGQSnVT1h0V8AZppwas1VbP61PetvBpVNjscIbFCGvXFizmUnYKCH
BQJPB4och8hmd1N72bnoefTnGRTsIcy2YtfxKaQiRSAN9pPIbAY=
=ETha
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to