coreutils-9.4 released
This is to announce coreutils-9.4, a stable release.
This is a stabilization release coming about 19 weeks after the 9.3 release.
See the NEWS below for a summary of changes.
There have been 162 commits by 10 people in the 19 weeks since 9.3.
Andreas Schwab (1) Jim Meyering (1)
Bernhard Voelker (3) Paul Eggert (60)
Bruno Haible (11) Pádraig Brady (80)
Dragan Simic (3) Sylvestre Ledru (2)
Jaroslav Skarvada (1) Ville Skyttä (1)
Pádraig [on behalf of the coreutils maintainers]
Here is the GNU coreutils home page:
http://gnu.org/s/coreutils/
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.4
or run this command from a git-cloned coreutils directory:
git shortlog v9.3..v9.4
https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.gz (15MB)
https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz (5.8MB)
https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.gz.sig
https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz.sig
7dce42b8657e333ce38971d4ee512c4313b8f633 coreutils-9.4.tar.gz
X2ANkJOXOwr+JTk9m8GMRPIjJlf0yg2V6jHHAutmtzk= coreutils-9.4.tar.gz
7effa305c3f4bc0d40d79f1854515ebf5f688a18 coreutils-9.4.tar.xz
6mE6TPRGEjJukXIBu7zfvTAd4h/8O1m25cB+BAsnXlI= coreutils-9.4.tar.xz
from coreutils-9.2 or OpenBSD's cksum since 2007.
gpg --verify coreutils-9.4.tar.gz.sig
pub rsa4096/0xDF6FD971306037D9 2011-09-23 [SC]
Key fingerprint = 6C37 DC12 121A 5006 BC1D B804 DF6F D971 3060 37D9
uid [ unknown] Pádraig Brady <P@draigBrady.com>
uid [ unknown] Pádraig Brady <pixelbeat@gnu.org>
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 -
gpg --keyring gnu-keyring.gpg --verify coreutils-9.4.tar.gz.sig
Automake 1.16.5
Gnulib v0.1-6658-gbb5bb43a1e
Bison 3.8.2
* Noteworthy changes in release 9.4 (2023-08-29) [stable]
On GNU/Linux s390x and alpha, programs like 'cp' and 'ls' no longer
fail on files with inode numbers that do not fit into 32 bits.
[This bug was present in "the beginning".]
'b2sum --check' will no longer read unallocated memory when
presented with malformed checksum lines.
[bug introduced in coreutils-9.2]
'cp --parents' again succeeds when preserving mode for absolute directories.
Previously it would have failed with a "No such file or directory" error.
[bug introduced in coreutils-9.1]
'cp --sparse=never' will avoid copy-on-write (reflinking) and copy offloading,
to ensure no holes present in the destination copy.
[bug introduced in coreutils-9.0]
cksum again diagnoses read errors in its default CRC32 mode.
'cksum --check' now ensures filenames with a leading backslash character
are escaped appropriately in the status output.
This also applies to the standalone checksumming utilities.
[bug introduced in coreutils-8.25]
dd again supports more than two multipliers for numbers.
Previously numbers of the form '1024x1024x32' gave "invalid number" errors.
factor, numfmt, and tsort now diagnose read errors on the input.
'install --strip' now supports installing to files with a leading hyphen.
Previously such file names would have caused the strip process to fail.
ls now shows symlinks specified on the command line that can't be traversed.
Previously a "Too many levels of symbolic links" diagnostic was given.
pinky, uptime, users, and who no longer misbehave on 32-bit GNU/Linux
platforms like x86 and ARM where time_t was historically 32 bits.
Also see the new --enable-systemd option mentioned below.
'pr --length=1 --double-space' no longer enters an infinite loop.
shred again operates on Solaris when built for 64 bits.
Previously it would have exited with a "getrandom: Invalid argument" error.
tac now handles short reads on its input. Previously it may have exited
erroneously, especially with large input files with no separators.
'uptime' no longer incorrectly prints "0 users" on OpenBSD,
and is being built again on FreeBSD and Haiku.
[bugs introduced in coreutils-9.2]
'wc -l' and 'cksum' no longer crash with an "Illegal instruction" error
on x86 Linux kernels that disable XSAVE YMM. This was seen on Xen VMs.
'cp -v' and 'mv -v' will no longer output a message for each file skipped
due to -i, or -u. Instead they only output this information with --debug.
I.e., 'cp -u -v' etc. will have the same verbosity as before coreutils-9.3.
'cksum -b' no longer prints base64-encoded checksums. Rather that
short option is reserved to better support emulation of the standalone
checksum utilities with cksum.
'mv dir x' now complains differently if x/dir is a nonempty directory.
Previously it said "mv: cannot move 'dir' to 'x/dir': Directory not empty",
where it was unclear whether 'dir' or 'x/dir' was the problem.
Now it says "mv: cannot overwrite 'x/dir': Directory not empty".
Similarly for other renames where the destination must be the problem.
[problem introduced in coreutils-6.0]
** Improvements
cp, mv, and install now avoid copy_file_range on linux kernels before 5.3
irrespective of which kernel version coreutils is built against,
reinstating that behavior from coreutils-9.0.
comm, cut, join, od, and uniq will now exit immediately upon receiving a
write error, which is significant when reading large / unbounded inputs.
split now uses more tuned access patterns for its potentially large input.
This was seen to improve throughput by 5% when reading from SSD.
split now supports a configurable $TMPDIR for handling any temporary files.
tac now falls back to '/tmp' if a configured $TMPDIR is unavailable.
'who -a' now displays the boot time on Alpine Linux, OpenBSD,
Cygwin, Haiku, and some Android distributions
'uptime' now succeeds on some Android distributions, and now counts
VM saved/sleep time on GNU (Linux, Hurd, kFreeBSD), NetBSD, OpenBSD,
Minix, and Cygwin.
On GNU/Linux platforms where utmp-format files have 32-bit timestamps,
pinky, uptime, and who can now work for times after the year 2038,
so long as systemd is installed, you configure with a new, experimental
option --enable-systemd, and you use the programs without file arguments.
(For example, with systemd 'who /var/log/wtmp' does not work because
systemd does not support the equivalent of /var/log/wtmp.)