[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

coreutils-8.22 released [stable]

From: Pádraig Brady
Subject: coreutils-8.22 released [stable]
Date: Fri, 13 Dec 2013 17:29:19 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

Hash: SHA1

This is to announce coreutils-8.22, a stable release.

There have been 195 commits by 32 people in the 10 months since 8.21

Executive summary: 8.22 is mainly a bug fix and performance improvement release.
tail(1) has fixes for handling initially non existent files, and df now has
better handling of specified disk device nodes.  On the performance side,
there have been many improvements to the memory usage of various tools, which
are detailed at
There have been large throughput improvements in cut(1) and base64 encoding.
Also the md5sum and sha*sum utilities have support for using architecture
specific routines to improve performance, if allowed on your distribution.
There are also new features available, including SELinux "restorecon" support
in various file creation utilities through the -Z option, and shred has a new
- --repeat option to continually select random items from the input.

See the NEWS below for more details.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Andreas Mohr (1)
  Anton Ovchinnikov (2)
  Assaf Gordon (8)
  Benno Schulenberg (2)
  Bernhard Voelker (28)
  Cojocaru Alexandru (4)
  Colin Leitner (1)
  D. Hugh Redelmeier (1)
  Daniel J Walsh (1)
  Enrico Scholz (1)
  Eric Blake (1)
  FUJIWARA Katsunori (1)
  Filipus Klutiero (1)
  Gian Piero Carrubba (1)
  Jarkko Sakkinen (4)
  Javier López (1)
  Jim Meyering (6)
  Joachim Schmitz (2)
  John (1)
  Karl Berry (1)
  Ken Booth (1)
  Mike Frysinger (1)
  Ondrej Oprala (2)
  Ondřej Vašík (2)
  Paul Eggert (10)
  Pádraig Brady (106)
  Rasmus Villemoes (1)
  Rémy Lefevre (1)
  Sergio Durigan Junior (1)
  Stefano Lattarini (3)
  Tiger Lee (1)
  Torbjörn Granlund (1)

Special thanks to Bernhard Voelker for his many considered patches and reviews,
and to Assaf Gordon for his work on new (and future) features.

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.22
or run this command from a git-cloned coreutils directory:
  git shortlog v8.21..v8.22

To summarize the 255 gnulib-related changes, run these commands
- From a git-cloned coreutils directory:
  git checkout v8.22
  git submodule summary v8.21


Here are the compressed sources and a GPG detached signature[*]:

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.22.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.13.4
  Gnulib v0.1-38-g0658e50
  Bison 2.7


* Noteworthy changes in release 8.22 (2013-12-13) [stable]

** Bug fixes

  df now processes the mount list correctly in the presence of unstatable
  mount points.  Previously it may have failed to output some mount points.
  [bug introduced in coreutils-8.21]

  df now processes symbolic links and relative paths to special files containing
  a mounted file system correctly.  Previously df displayed the statistics about
  the file system the file is stored on rather than the one inside.
  [This bug was present in "the beginning".]

  df now processes disk device nodes correctly in the presence of bind mounts.
  Now df shows the base mounted file system rather than the last one mounted.
  [This bug was present in "the beginning".]

  install now removes the target file if the strip program failed for any
  reason.  Before, that file was left behind, sometimes even with wrong
  [This bug was present in "the beginning".]

  ln --relative now updates existing symlinks correctly.  Previously it based
  the relative link on the dereferenced path of an existing link.
  [This bug was introduced when --relative was added in coreutils-8.16.]

  ls --recursive will no longer exit with "serious" exit code (2), if there
  is an error reading a directory not specified on the command line.
  [Bug introduced in coreutils-5.3.0]

  mkdir, mkfifo, and mknod now work better when creating a file in a directory
  with a default ACL whose umask disagrees with the process's umask, on a
  system such as GNU/Linux where directory ACL umasks override process umasks.
  [bug introduced in coreutils-6.0]

  mv will now replace empty directories in the destination with directories
  from the source, when copying across file systems.
  [This bug was present in "the beginning".]

  od -wN with N larger than 64K on a system with 32-bit size_t would
  print approximately 2*N bytes of extraneous padding.
  [Bug introduced in coreutils-7.0]

  rm -I now prompts for confirmation before removing a write protected file.
  [Bug introduced in coreutils-6.8]

  shred once again uses direct I/O on systems requiring aligned buffers.
  Also direct I/O failures for odd sized writes at end of file are now handled.
  [The "last write" bug was introduced in coreutils-5.3.0 but masked
   by the alignment bug introduced in coreutils-6.0]

  tail --retry -f now waits for the files specified to appear.  Before, tail
  would immediately exit when such a file is initially inaccessible.
  [This bug was introduced when inotify support was added in coreutils-7.5]

  tail -F has improved handling of symlinks.  Previously tail didn't respond
  to the symlink target (re)appearing after being (re)created.
  [This bug was introduced when inotify support was added in coreutils-7.5]

** New features

  cp, install, mkdir, mknod, mkfifo and mv now support "restorecon"
  functionality through the -Z option, to set the SELinux context
  appropriate for the new item location in the file system.

  csplit accepts a new option: --suppressed-matched, to elide the lines
  used to identify the split points.

  df --output now accepts a 'file' field, to propagate a specified
  command line argument through to the output.

  du accepts a new option: --inodes to show the number of inodes instead
  of the blocks used.

  id accepts a new option: --zero (-z) to delimit the output entries by
  a NUL instead of a white space character.

  id and ls with -Z report the SMACK security context where available.
  mkdir, mkfifo and mknod with -Z set the SMACK context where available.

  id can now lookup by user ID, in addition to the existing name lookup.

  join accepts a new option: --zero-terminated (-z). As with the sort,uniq
  option of the same name, this makes join consume and produce NUL-terminated
  lines rather than newline-terminated lines.

  uniq accepts a new option: --group to print all items, while separating
  unique groups with empty lines.

  shred accepts new parameters to the --remove option to give greater
  control over that operation, which can greatly reduce sync overhead.

  shuf accepts a new option: --repeat (-r), which can repeat items in
  the output.

** Changes in behavior

  cp --link now dereferences a symbolic link as source before creating the
  hard link in the destination unless the -P,--no-deref option is specified.
  Previously, it would create a hard link of the symbolic link, even when
  the dereferencing options -L or -H were specified.

  cp, install, mkdir, mknod and mkfifo no longer accept an argument to the
  short -Z option.  The --context equivalent still takes an optional argument.

  dd status=none now suppresses all non fatal diagnostic messages,
  not just the transfer counts.

  df no longer accepts the long-obsolescent --megabytes option.

  stdbuf now requires at least one buffering mode option to be specified,
  as per the documented interface.

** Improvements

  base64 encoding throughput for bulk data is increased by about 60%.

  md5sum can use libcrypto hash routines where allowed to potentially
  get better performance through using more system specific logic.
  sha1sum for example has improved throughput by 40% on an i3-2310M.
  This also affects sha1sum, sha224sum, sha256sum, sha384sum and sha512sum.

  stat and tail work better with EFIVARFS, EXOFS, F2FS, HOSTFS, SMACKFS, SNFS
  and UBIFS.  stat -f --format=%T now reports the file system type, and tail -f
  now uses inotify for files on all those except SNFS, rather than the default
  (for unknown file system types) of issuing a warning and reverting to polling.

  shuf outputs subsets of large inputs much more efficiently.
  Reservoir sampling is used to limit memory usage based on the number of
  outputs, rather than the number of inputs.

  shred increases the default write block size from 12KiB to 64KiB
  to align with other utilities and reduce the system call overhead.

  split --line-bytes=SIZE, now only allocates memory as needed rather
  than allocating SIZE bytes at program start.

  stty now supports configuring "stick" (mark/space) parity where available.

** Build-related

  factor now builds on aarch64 based systems [bug introduced in coreutils-8.20]

- -----
also posted at:
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird -


reply via email to

[Prev in Thread] Current Thread [Next in Thread]