public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Randy.MacLeod@windriver.com
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 2/2] coreutils: upgrade 9.9 -> 9.10
Date: Thu, 19 Feb 2026 14:12:20 -0500	[thread overview]
Message-ID: <20260219191220.460166-2-Randy.MacLeod@windriver.com> (raw)
In-Reply-To: <20260219191220.460166-1-Randy.MacLeod@windriver.com>

From: Randy MacLeod <Randy.MacLeod@windriver.com>

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 <Randy.MacLeod@windriver.com>
---
 .../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?= <P@draigBrady.com>
-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 <paul@pbarker.dev>
----
-
-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?= <P@draigBrady.com>
-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 <paul@pbarker.dev>
----
- 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



      reply	other threads:[~2026-02-19 19:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-19 19:12 [PATCH 1/2] coreutils: kill and uptime are no longer installed Randy.MacLeod
2026-02-19 19:12 ` Randy.MacLeod [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260219191220.460166-2-Randy.MacLeod@windriver.com \
    --to=randy.macleod@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox