newsGNU Core Utilities - News

 
 

coreutils-9.6 released [stable]

Item posted by Pádraig Brady <pixelbeat> on Fri 17 Jan 2025 03:51:19 PM UTC.


This is to announce coreutils-9.6, a stable release.
See the NEWS below for a summary of changes.

There have been 263 commits by 15 people in the 42 weeks since 9.5.
Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Bernhard Voelker (5)
  Bruce Jerrick (1)
  Bruno Haible (5)
  Collin Funk (16)
  Daniel Hofstetter (1)
  Evgeny Nizhibitsky (1)
  Lukáš Zaoral (1)
  Masatake YAMATO (1)
  Nikolaos Chatzikonstantinou (1)
  Nikolay Nechaev (3)
  Paul Eggert (123)
  Pádraig Brady (95)
  Richard Purdie (1)
  Sam Russell (2)
  Sylvestre Ledru (7)

Pádraig [on behalf of the coreutils maintainers]
==================================================================

Here is the GNU coreutils home page:
    https://gnu.org/s/coreutils/

Here are the compressed sources:
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.gz   (15MB)
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.xz   (5.9MB)

Here are the GPG detached signatures:
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.gz.sig
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.xz.sig

Use a mirror for higher download bandwidth:
  https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

  File: coreutils-9.6.tar.gz
  SHA1 sum:   1da82e96486e0eedbd5257c8190f2cf9fcb71c2e
  SHA256 sum: 2bec616375002c92c1ed5ead32a092b174fe44c14bc736d32e5961053b821d84

  File: coreutils-9.6.tar.xz
  SHA1 sum:   0ede2895e6089a02b67473b9761abcc18ce8dcb0
  SHA256 sum: 7a0124327b398fd9eb1a6abde583389821422c744ffa10734b24f557610d3283

Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify coreutils-9.6.tar.xz.sig

The signature should match the fingerprint of the following key:

  pub   rsa4096/0xDF6FD971306037D9 2011-09-23 [SC]
        Key fingerprint = 6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9
  uid                   [ultimate] Pádraig Brady <P@draigBrady.com>
  uid                   [ultimate] Pádraig Brady <pixelbeat@gnu.org>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

  gpg --locate-external-key P@draigBrady.com

  gpg --recv-keys DF6FD971306037D9

  wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=coreutils&download=1' | gpg --import -

As a last resort to find the key, you can try the official GNU
keyring:

  wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
  gpg --keyring gnu-keyring.gpg --verify coreutils-9.6.tar.xz.sig

This release is based on the coreutils git repository, available as

  git clone https://git.savannah.gnu.org/git/coreutils.git

with commit e2a405981ff5441dcfb217797699c94968218aca tagged as v9.6.

For a summary of changes and contributors, see:

  https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.6

or run this command from a git-cloned coreutils directory:

  git shortlog v9.5..v9.6

This release was bootstrapped with the following tools:
  Autoconf 2.72.70-9ff9
  Automake 1.16.5
  Gnulib 2025-01-17 2481e7a50d6535582856626b53009f419e2e05e2
  Bison 3.8.2

NEWS

* Noteworthy changes in release 9.6 (2025-01-17) [stable]

** Bug fixes

  cp fixes support for --update=none-fail, which would have been
  rejected as an invalid option.
  [bug introduced in coreutils-9.5]

  cp,mv --update no longer overrides --interactive or --force.
  [bug introduced in coreutils-9.3]

  csplit no longer creates empty files given empty input.
  [This bug was present in "the beginning".]

  ls and printf fix shell quoted output in the edge case of escaped
  first and last characters, and single quotes in the string.
  [bug introduced in coreutils-8.26]

  ls -l no longer outputs "Permission denied" errors on NFS
  which may happen with files without read permission, and which resulted
  in inaccurate indication of ACLs (missing '+' flag after mode).
  [bug introduced in coreutils-9.4]

  ls -l no longer outputs "Not supported" errors on virtiofs.
  [bug introduced in coreutils-9.4]

  mv works again with macFUSE file systems.  Previously it would
  have exited with a "Function not implemented" error.
  [bug introduced in coreutils-8.28]

  nproc gives more consistent results on systems with more than 1024 CPUs.
  Previously it would have ignored the affinity mask on such systems.
  [bug introduced with nproc in coreutils-8.1]

  numfmt --from=iec-i now works with numbers without a suffix.
  Previously such numbers were rejected with an error.
  [bug introduced with numfmt in coreutils-8.21]

  printf now diagnoses attempts to treat empty strings as numbers,
  as per POSIX. For example, "printf '%d' ''" now issues a diagnostic
  and fails instead of silently succeeding.
  [This bug was present in "the beginning".]

  pwd no longer outputs an erroneous double slash on systems
  where the system getcwd() was completely replaced.
  [bug introduced in coreutils-9.2]

  'shuf' generates more-random output when the output is small.
  [bug introduced in coreutils-8.6]

  `tail --follow=name` no longer waits indefinitely for watched
  file names that are moved elsewhere within the same file system.
  [bug introduced in coreutils-8.24]

  `tail --follow` without --retry, will consistently exit with failure status
  where inotify is not used, when all followed files become inaccessible.
  [This bug was present in "the beginning".]

  `tail --follow --pid=PID` will now exit when the PID dies,
  even in the presence of blocking inputs like unopened fifos.
  [This bug was present in "the beginning".]

  'tail -c 4096 /dev/zero' no longer loops forever.
  [This bug was present in "the beginning".]

** Changes in behavior

  'factor' now buffers output more efficiently in some cases.

  install -C now dereferences symlink sources when comparing,
  rather than always treating as different and performing the copy.

  kill -l and -t now list signal 0, as it's a valid signal to send.

  ls's -f option now simply acts like -aU, instead of also ignoring
  some earlier options.  For example 'ls -fl' and 'ls -lf' are now
  equivalent because -f no longer ignores an earlier -l.  The new
  behavior is more orthogonal and is compatible with FreeBSD.

  stat -f -c%T now reports the "fuseblk" file system type as "fuse",
  given that there is no longer a distinct "ctl" fuse variant file system.

** New Features

  cksum -a now supports the "crc32b" option, which calculates the CRC
  of the input as defined by ITU V.42, as used by gzip for example.
  For performance pclmul instructions are used where supported.

  ls now supports the --sort=name option,
  to explicitly select the default operation of sorting by file name.

  printf now supports indexed arguments, using the POSIX:2024 specified
  %<i>$ format, where '<i>' is an integer referencing a particular argument,
  thus allowing repetition or reordering of printf arguments.

  test supports the POSIX:2024 specified '<' and '>' operators with strings,
  to compare the string locale collating order.

  timeout now supports the POSIX:2024 specified -f, and -p short options,
  corresponding to --foreground, and --preserve-status respectively.

** Improvements

  cksum -a crc, makes use of AVX2, AVX512, and ARMv8 SIMD extensions
  for time reductions of up to 40%, 60%, and 80% respectively.

  'head -c NUM', 'head -n NUM', 'nl -l NUM', 'nproc --ignore NUM',
  'tail -c NUM', 'tail -n NUM', and 'tail --max-unchanged-stats NUM’
  no longer fail merely because NUM stands for 2**64 or more.

  sort operates more efficiently when used on pseudo files with
  an apparent size of 0, like those in /proc.

  stat and tail now know about the "bcachefs", and "pidfs" file system types.
  stat -f -c%T now reports the file system type,
  and tail -f uses inotify for these file systems.

  wc now reads a minimum of 256KiB at a time.
  This was previously 16KiB and increasing to 256KiB was seen to increase
  wc -l performance by about 10% when reading cached files on modern systems.


Back to the top

Powered by Savane 3.14-04e1.
Corresponding source code