Your message dated Tue, 22 Sep 2020 12:48:53 +0000 with message-id <[email protected]> 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 [email protected] immediately.) -- 966449: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=966449 Debian Bug Tracking System Contact [email protected] 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 <[email protected]> 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 <[email protected]> +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 <[email protected]> +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 <[email protected]> +--- + 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 <[email protected]> +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 <[email protected]> +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 <[email protected]> +--- + 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
signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---Source: coreutils Source-Version: 8.32-4 Done: Michael Stone <[email protected]> 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 [email protected], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Michael Stone <[email protected]> (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 [email protected]) -----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 <[email protected]> Changed-By: Michael Stone <[email protected]> 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 ---

