#5334 closed enhancement (fixed)

coreutils-9.4

Reported by: Douglas R. Reno Owned by: Bruce Dubbs
Priority: normal Milestone: 12.1
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New minor version

Change History (4)

comment:2 by Xi Ruoyao, 16 months ago

  • Noteworthy changes in release 9.4 (2023-08-29) [stable]

Bug fixes

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. [bug introduced in coreutils-9.0]

'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. [bug introduced in coreutils-9.1]

factor, numfmt, and tsort now diagnose read errors on the input. [This bug was present in "the beginning".]

'install --strip' now supports installing to files with a leading hyphen. Previously such file names would have caused the strip process to fail. [This bug was present in "the beginning".]

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. [This bug was present in "the beginning".]

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. [bug introduced in coreutils-9.0]

'pr --length=1 --double-space' no longer enters an infinite loop. [This bug was present in "the beginning".]

shred again operates on Solaris when built for 64 bits. Previously it would have exited with a "getrandom: Invalid argument" error. [bug introduced in coreutils-9.0]

tac now handles short reads on its input. Previously it may have exited erroneously, especially with large input files with no separators. [This bug was present in "the beginning".]

'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. [bug introduced in coreutils-9.0]

Changes in behavior

'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.)

comment:3 by Bruce Dubbs, 16 months ago

Owner: changed from lfs-book to Bruce Dubbs
Status: newassigned

comment:4 by Bruce Dubbs, 16 months ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.