coreutils-8.22 released [stable]

-----BEGIN PGP SIGNED MESSAGE-----
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 http://www.pixelbeat.org/programming/avoiding_large_buffers.html
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:
http://gnu.org/s/coreutils/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=coreutils.git;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[*]:
http://ftp.gnu.org/gnu/coreutils/coreutils-8.22.tar.xzhttp://ftp.gnu.org/gnu/coreutils/coreutils-8.22.tar.xz.sig
Use a mirror for higher download bandwidth:
http://ftpmirror.gnu.org/coreutils/coreutils-8.22.tar.xzhttp://ftpmirror.gnu.org/coreutils/coreutils-8.22.tar.xz.sig
[*] 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 keys.gnupg.net --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
NEWS
* 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
permissions.
[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: https://savannah.gnu.org/forum/forum.php?forum_id=7815
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJSq0PdAAoJEN9v2XEwYDfZ3GEQALDCxQAwVHZvpg+PNilFMNuf
pse+G3T6RMg8g1n4fMQdGrlt3zggFtpvDFUfklGYt2rDnCZG4/Bsye5IC153i3LE
frjLb+JvXxdJG3mH2ljo3cIy7vtLPM0sYv/chKAdFVxFatVeqICGiznVLvsZ69/x
BC6ZC1eCpHQ0ShvaUgktfjkDJPRDDOhpoabnSeUgTMhzWriPjASrJeS3weilvMV8
GOKTF66DBAVrFeqmJsEN/dNd3yOVQWzxCRHWohTry1beGzcp6CeaUOUVkIcbt/cz
xP7qopvbdKeUogQAkL0qua9Eqyr9uwOOQgLVFQsr7Ao8zQeJ0nrkFsvK2OLeuJT8
8oWnk89cuHy223qEq+OhFgvajHVltF0h0tWthjyV3BTSpGmqHyxyLCl2OqWgK3Cu
/Y40LsYnv3suXSrtqZ+eC5XvirHyo0MqAQ7iy/YlJULc9Oy2gZ5vU8uhv5xkf/eR
FbfHkcdOfCRQW2kaTmO3009PKQKuec4lsUVxy/GxvL5KmPM0QcGi0avo3MwQvxp2
LlLZWYWdsKJ5J27SCViiuvTYZzGBqkXD3rkXzH5mC+fInJu3yEc23GlddpEpTLci
DCDEC2tOnMSK2UZI5u3+P18i1LRKDllGRPcQYGgty5S+YjSyStURce6Rc7F3bQAl
MCXSOGzV/3jaqAlMwl+K
=9Ioy
-----END PGP SIGNATURE-----