newsGNU Core Utilities - News


coreutils-8.32 released [stable]

Item posted by Pádraig Brady <pixelbeat> on Thu 05 Mar 2020 02:37:33 PM UTC.

This is to announce coreutils-8.32, a stable release.
See the NEWS below for more details.

Thanks to everyone who has contributed!
There have been 100 commits by 18 people in the 51 weeks since 8.31
  Akim Demaille (1)       Jeff Layton (3)
  Andreas Dilger (1)      Jim Meyering (1)
  Assaf Gordon (6)        Kamil Dudka (4)
  Bernhard Voelker (6)    Kevin Locke (1)
  Bruno Haible (3)        Martin Castillo (2)
  Chris Meyering (1)      Mike Swanson (1)
  Colin Watson (1)        Paul Eggert (31)
  Emil Engler (1)         Pádraig Brady (38)
  Jan Nieuwenhuizen (1)   Shugo Maeda (1)

Pádraig [on behalf of the coreutils maintainers]


Here is the GNU coreutils home page:

For a summary of changes and contributors, see:;a=shortlog;h=v8.32
or run this command from a git-cloned coreutils directory:
  git shortlog v8.31..v8.32

To summarize the 867 gnulib-related changes, run these commands
from a git-cloned coreutils directory:
  git checkout v8.32
  git submodule summary v8.31


Here are the compressed sources:   (13MB)   (5.3MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

[*] 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-8.32.tar.xz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver --recv-keys DF6FD971306037D9

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.16.1
  Gnulib v0.1-3322-gd279bc6d9
  Bison 3.4.1


* Noteworthy changes in release 8.32 (2020-03-05) [stable]

** Bug fixes

  cp now copies /dev/fd/N correctly on platforms like Solaris where
  it is a character-special file whose minor device number is N.
  [bug introduced in fileutils-4.1.6]

  dd conv=fdatasync no longer reports a "Bad file descriptor" error
  when fdatasync is interrupted, and dd now retries interrupted calls
  to close, fdatasync, fstat and fsync instead of incorrectly
  reporting an "Interrupted system call" error.
  [bugs introduced in coreutils-6.0]

  df now correctly parses the /proc/self/mountinfo file for unusual entries
  like ones with '\r' in a field value ("mount -t tmpfs tmpfs /foo$'\r'bar"),
  when the source field is empty ('mount -t tmpfs "" /mnt'), and when the
  filesystem type contains characters like a blank which need escaping.
  [bugs introduced in coreutils-8.24 with the introduction of reading
   the /proc/self/mountinfo file]

  factor again outputs immediately when stdout is a tty but stdin is not.
  [bug introduced in coreutils-8.24]

  ln works again on old systems without O_DIRECTORY support (like Solaris 10),
  and on systems where symlink ("x", ".") fails with errno == EINVAL
  (like Solaris 10 and Solaris 11).
  [bug introduced in coreutils-8.31]

  rmdir --ignore-fail-on-non-empty now works correctly for directories
  that fail to be removed due to permission issues.  Previously the exit status
  was reversed, failing for non empty and succeeding for empty directories.
  [bug introduced in coreutils-6.11]

  'shuf -r -n 0 file' no longer mistakenly reads from standard input.
  [bug introduced with the --repeat feature in coreutils-8.22]

  split no longer reports a "output file suffixes exhausted" error
  when the specified number of files is evenly divisible by 10, 16, 26,
  for --numeric, --hex, or default alphabetic suffixes respectively.
  [bug introduced in coreutils-8.24]

  seq no longer prints an extra line under certain circumstances (such as
  'seq -f "%g " 1000000 1000000').
  [bug introduced in coreutils-6.10]

** Changes in behavior

  Several programs now check that numbers end properly.  For example,
  'du -d 1x' now reports an error instead of silently ignoring the 'x'.
  Affected programs and options include du -d, expr's numeric operands
  on non-GMP builds, install -g and -o, ls's TABSIZE environment
  variable, mknod b and c, ptx -g and -w, shuf -n, and sort --batch-size
  and --parallel.

  date now parses military time zones in accordance with common usage:
    "A" to "M"  are equivalent to UTC+1 to UTC+12
    "N" to "Y"  are equivalent to UTC-1 to UTC-12
    "Z" is "zulu" time (UTC).
  For example, 'date -d "09:00B" is now equivalent to 9am in UTC+2 time zone.
  Previously, military time zones were parsed according to the obsolete
  rfc822, with their value negated (e.g., "B" was equivalent to UTC-2).
  [The old behavior was introduced in sh-utils 2.0.15 ca. 1999, predating
  coreutils package.]

  ls issues an error message on a removed directory, on GNU/Linux systems.
  Previously no error and no entries were output, and so indistinguishable
  from an empty directory, with default ls options.

  uniq no longer uses strcoll() to determine string equivalence,
  and so will operate more efficiently and consistently.

** New Features

  ls now supports the --time=birth option to display and sort by
  file creation time, where available.

  od --skip-bytes now can use lseek even if the input is not a regular
  file, greatly improving performance in some cases.

  stat(1) supports a new --cached= option, used on systems with statx(2)
  to control cache coherency of file system attributes,
  useful on network file systems.

** Improvements

  stat and ls now use the statx() system call where available, which can
  operate more efficiently by only retrieving requested attributes.

  stat and tail now know about the "binderfs", "dma-buf-fs", "erofs",
  "ppc-cmm-fs", and "z3fold" file systems.
  stat -f -c%T now reports the file system type, and tail -f uses inotify.

** Build-related

  gzip-compressed tarballs are distributed once again

Back to the top

Powered by Savane 3.13-b921.
Corresponding source code