From: Randy MacLeod <[email protected]>

From:
   https://lists.gnu.org/archive/html/coreutils-announce/2026-02/msg00000.html

Notable changes include:
- Options in man pages link directly into the full web docs
- timeout(1) now kills the command for all terminating signals
- paste(1) is now multi-byte character aware
- cp(1) fixes an unlikely infinite loop introduced in v9.9
- The multi-call binary is 3.2% smaller

Drop the 2 backported patches which are now part of 9.10.

License-Update: copyright years refreshed

For ptests, also install coreutils.texi which is used for a new test that 
ensures
there is an anchor for each --help option for all of coreutils' programs. See:
   
https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?h=v9.10&id=77e6b5d8f8d1ebc3125d6585a266a912a1123791

+---------+--------+-------+------+------+
| Version | Libc   | TOTAL | PASS | SKIP |
+---------+--------+-------+------+------+
| 9.10    | glibc  |  705  |  543 |  162 |
| 9.9     | glibc  |  683  |  527 |  156 |
+---------+--------+-------+------+------+
| diff    | glibc  |   22  |   16 |    6 |
+---------+--------+-------+------+------+
| 9.10    | musl   |  703  |  544 |  159 |
| 9.10    | musl   |  681  |  529 |  152 |
+---------+--------+-------+------+------+
| diff    | musl   |   22  |   15 |    7 |
+---------+--------+-------+------+------+

Most of the skipped tests are due to being "very expensive" according to the 
coreutils developers.
The other skipped tests need strace, gdb, etc or locale dependencies which has 
not yet been added.

Signed-off-by: Randy MacLeod <[email protected]>
---
 .../coreutils/0001-fix-lseek-copy-loop.patch  | 35 -----------
 .../coreutils/0002-fix-lseek-copy-loop.patch  | 58 -------------------
 .../{coreutils_9.9.bb => coreutils_9.10.bb}   |  7 +--
 3 files changed, 3 insertions(+), 97 deletions(-)
 delete mode 100644 
meta/recipes-core/coreutils/coreutils/0001-fix-lseek-copy-loop.patch
 delete mode 100644 
meta/recipes-core/coreutils/coreutils/0002-fix-lseek-copy-loop.patch
 rename meta/recipes-core/coreutils/{coreutils_9.9.bb => coreutils_9.10.bb} 
(97%)

diff --git 
a/meta/recipes-core/coreutils/coreutils/0001-fix-lseek-copy-loop.patch 
b/meta/recipes-core/coreutils/coreutils/0001-fix-lseek-copy-loop.patch
deleted file mode 100644
index 04380a575f..0000000000
--- a/meta/recipes-core/coreutils/coreutils/0001-fix-lseek-copy-loop.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From bd528f923482223649aa84be7d131e69356149da Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
-Date: Sun, 4 Jan 2026 12:45:46 +0000
-Subject: [PATCH] copy: fix possible infinite loop with SEEK_HOLE
-
-Commit v9.8-95-g4c0cf3864 intended to initialize
-ext_start to src_pos, as was described at:
-https://lists.gnu.org/r/coreutils/2025-11/msg00035.html
-However ipos was inadvertently used, which is only
-valid the first time through the loop.
-
-* src/copy-file-data.c (lseek_copy): Use scan_inference->hole_start
-only with the initial offset passed to lseek_copy().
-* NEWS: Mention the bug fix.
-Reported at https://github.com/coreutils/coreutils/issues/159
-
-Upstream-Status: Backport [commit bd528f923482223649aa84be7d131e69356149da]
-  - Removed changes to NEWS as they don't apply.
-
-Signed-off-by: Paul Barker <[email protected]>
----
-
-diff --git a/src/copy-file-data.c b/src/copy-file-data.c
-index 927a6e0480..56b669fe72 100644
---- a/src/copy-file-data.c
-+++ b/src/copy-file-data.c
-@@ -338,7 +338,7 @@ lseek_copy (int src_fd, int dest_fd, char **abuf, idx_t 
buf_size,
-   for (off_t ext_start = scan_inference->ext_start;
-        0 <= ext_start && ext_start < max_ipos; )
-     {
--      off_t ext_end = (ext_start == ipos
-+      off_t ext_end = (ext_start == src_pos
-                        ? scan_inference->hole_start
-                        : lseek (src_fd, ext_start, SEEK_HOLE));
-       if (0 <= ext_end)
diff --git 
a/meta/recipes-core/coreutils/coreutils/0002-fix-lseek-copy-loop.patch 
b/meta/recipes-core/coreutils/coreutils/0002-fix-lseek-copy-loop.patch
deleted file mode 100644
index f247b6412d..0000000000
--- a/meta/recipes-core/coreutils/coreutils/0002-fix-lseek-copy-loop.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 33bc44e1ba3aa4c70f3cd16aa9c41331543986dd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
-Date: Mon, 5 Jan 2026 14:46:33 +0000
-Subject: [PATCH] copy: protect against infinite loop due to pathological race
-
-Consider:
-
-1. In infer_scantype():
-    - SEEK_DATA returns 0
-      - hole punched at 0
-    - SEEK_HOLE returns 0 (now a hole)
-    - Cache scan_inference->hole_start = 0
-2. In lseek_copy():
-      - data written at 0
-    - ext_start = 0, use cached hole_start = 0
-    - ext_len = 0
-    - now loop doesn't progress
-
-* src/copy-file-data.c (lseek_copy): Apply a more defensive check
-to ensure we only use the cached offsets in SCAN_INFERENCE once.
-This protects against an infinite loop where an extent (at SRC_POS)
-flip flops between data and hole extent while infer_scantype()
-and lseek_copy() are inspecting it.  I.e. ensure we use SEEK_HOLE
-to progress the copy.
-
-Upstream-Status: Backport [commit 33bc44e1ba3aa4c70f3cd16aa9c41331543986dd]
-Signed-off-by: Paul Barker <[email protected]>
----
- src/copy-file-data.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/src/copy-file-data.c b/src/copy-file-data.c
-index 56b669fe72..9bc4311af4 100644
---- a/src/copy-file-data.c
-+++ b/src/copy-file-data.c
-@@ -335,12 +335,19 @@ lseek_copy (int src_fd, int dest_fd, char **abuf, idx_t 
buf_size,
- 
-   debug->sparse_detection = COPY_DEBUG_EXTERNAL;
- 
-+  bool used_scan_inference = false;
-+
-   for (off_t ext_start = scan_inference->ext_start;
-        0 <= ext_start && ext_start < max_ipos; )
-     {
--      off_t ext_end = (ext_start == src_pos
--                       ? scan_inference->hole_start
--                       : lseek (src_fd, ext_start, SEEK_HOLE));
-+      off_t ext_end;
-+      if (ext_start == src_pos && ! used_scan_inference)
-+        {
-+          ext_end = scan_inference->hole_start;
-+          used_scan_inference = true;
-+        }
-+      else
-+        ext_end = lseek (src_fd, ext_start, SEEK_HOLE);
-       if (0 <= ext_end)
-         ext_end = MIN (ext_end, max_ipos);
-       else
diff --git a/meta/recipes-core/coreutils/coreutils_9.9.bb 
b/meta/recipes-core/coreutils/coreutils_9.10.bb
similarity index 97%
rename from meta/recipes-core/coreutils/coreutils_9.9.bb
rename to meta/recipes-core/coreutils/coreutils_9.10.bb
index 1a017cb0bb..984c5b5292 100644
--- a/meta/recipes-core/coreutils/coreutils_9.9.bb
+++ b/meta/recipes-core/coreutils/coreutils_9.10.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.gnu.org/software/coreutils/";
 BUGTRACKER = "http://debbugs.gnu.org/coreutils";
 LICENSE = "GPL-3.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
-                    
file://src/ls.c;beginline=1;endline=15;md5=824c1997414aea9f344747bd81cf5a31 \
+                    
file://src/ls.c;beginline=1;endline=15;md5=f3bf23485dbd07e6c14bd74401b744c6\
                     "
 DEPENDS = "gmp libcap"
 DEPENDS:class-native = ""
@@ -15,11 +15,9 @@ inherit autotools gettext texinfo
 
 SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
            file://remove-usr-local-lib-from-m4.patch \
-           file://0001-fix-lseek-copy-loop.patch \
-           file://0002-fix-lseek-copy-loop.patch \
            file://run-ptest \
            "
-SRC_URI[sha256sum] = 
"19bcb6ca867183c57d77155eae946c5eced88183143b45ca51ad7d26c628ca75"
+SRC_URI[sha256sum] = 
"16535a9adf0b10037364e2d612aad3d9f4eca3a344949ced74d12faf4bd51d25"
 
 # 
http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
 #
@@ -179,6 +177,7 @@ do_install_ptest () {
     cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests
     install -d ${D}${PTEST_PATH}/build-aux
     install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
+    install -Dm 0644 ${S}/doc/coreutils.texi 
${D}${PTEST_PATH}/doc/coreutils.texi
     install -Dm 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/config.h
     cp ${B}/Makefile ${D}${PTEST_PATH}/
     cp ${S}/init.cfg ${D}${PTEST_PATH}/
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#231439): 
https://lists.openembedded.org/g/openembedded-core/message/231439
Mute This Topic: https://lists.openembedded.org/mt/117898089/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to