Update to coreutils-8.22

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.xz
  http://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.xz
  http://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]
This commit is contained in:
richard 2014-02-02 07:08:24 +00:00
parent e4387b3523
commit 8a3b577799
7 changed files with 39 additions and 101 deletions

View file

@ -1,8 +1,7 @@
# $NetBSD: Makefile,v 1.60 2013/05/31 12:41:59 wiz Exp $
# $NetBSD: Makefile,v 1.61 2014/02/02 07:08:24 richard Exp $
.include "../../sysutils/coreutils/Makefile.common"
PKGREVISION= 6
CONFIGURE_ARGS+= --without-gmp
@ -34,10 +33,10 @@ PROGS= [ base64 basename cat chcon chgrp chmod chown chroot cksum comm \
cp csplit cut date dd df dir dircolors dirname du hostid echo env \
expand expr factor false fmt fold groups head id install join kill \
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl \
nohup nproc od paste pathchk pinky pr printenv printf ptx pwd \
readlink rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum \
sha512sum shred shuf sleep sort split stat stdbuf stty sum sync tac \
tail tee test timeout touch tr true truncate tsort tty uname \
nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd \
readlink realpath rm rmdir runcon seq sha1sum sha224sum sha256sum \
sha384sum sha512sum shred shuf sleep sort split stat stdbuf stty sum \
sync tac tail tee test timeout touch tr true truncate tsort tty uname \
unexpand uniq unlink uptime users vdir wc who whoami yes
AUTO_MKDIRS= yes

View file

@ -1,10 +1,11 @@
# $NetBSD: Makefile.common,v 1.6 2012/10/23 19:50:56 asau Exp $
# $NetBSD: Makefile.common,v 1.7 2014/02/02 07:08:24 richard Exp $
# used by sysutils/coreutils/Makefile
# used by misc/gnuls/Makefile
DISTNAME= coreutils-8.13
DISTNAME= coreutils-8.22
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_GNU:=coreutils/}
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/coreutils/

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.16 2012/06/02 09:32:30 cheusov Exp $
@comment $NetBSD: PLIST,v 1.17 2014/02/02 07:08:24 richard Exp $
bin/g[
bin/gbase64
bin/gbasename
@ -49,6 +49,7 @@ bin/gnice
bin/gnl
bin/gnohup
bin/gnproc
bin/gnumfmt
bin/god
bin/gpaste
bin/gpathchk
@ -59,6 +60,7 @@ bin/gprintf
bin/gptx
bin/gpwd
bin/greadlink
bin/grealpath
bin/grm
bin/grmdir
bin/gruncon
@ -150,6 +152,7 @@ gnu/bin/nice
gnu/bin/nl
gnu/bin/nohup
gnu/bin/nproc
gnu/bin/numfmt
gnu/bin/od
gnu/bin/paste
gnu/bin/pathchk
@ -160,6 +163,7 @@ gnu/bin/printf
gnu/bin/ptx
gnu/bin/pwd
gnu/bin/readlink
gnu/bin/realpath
gnu/bin/rm
gnu/bin/rmdir
gnu/bin/runcon
@ -250,6 +254,7 @@ gnu/man/man1/nice.1
gnu/man/man1/nl.1
gnu/man/man1/nohup.1
gnu/man/man1/nproc.1
gnu/man/man1/numfmt.1
gnu/man/man1/od.1
gnu/man/man1/paste.1
gnu/man/man1/pathchk.1
@ -260,6 +265,7 @@ gnu/man/man1/printf.1
gnu/man/man1/ptx.1
gnu/man/man1/pwd.1
gnu/man/man1/readlink.1
gnu/man/man1/realpath.1
gnu/man/man1/rm.1
gnu/man/man1/rmdir.1
gnu/man/man1/runcon.1
@ -352,6 +358,7 @@ man/man1/gnice.1
man/man1/gnl.1
man/man1/gnohup.1
man/man1/gnproc.1
man/man1/gnumfmt.1
man/man1/god.1
man/man1/gpaste.1
man/man1/gpathchk.1
@ -362,6 +369,7 @@ man/man1/gprintf.1
man/man1/gptx.1
man/man1/gpwd.1
man/man1/greadlink.1
man/man1/grealpath.1
man/man1/grm.1
man/man1/grmdir.1
man/man1/gruncon.1
@ -419,7 +427,9 @@ share/locale/fi/LC_MESSAGES/coreutils.mo
share/locale/fr/LC_MESSAGES/coreutils.mo
share/locale/ga/LC_MESSAGES/coreutils.mo
share/locale/gl/LC_MESSAGES/coreutils.mo
share/locale/hr/LC_MESSAGES/coreutils.mo
share/locale/hu/LC_MESSAGES/coreutils.mo
share/locale/ia/LC_MESSAGES/coreutils.mo
share/locale/id/LC_MESSAGES/coreutils.mo
share/locale/it/LC_MESSAGES/coreutils.mo
share/locale/ja/LC_MESSAGES/coreutils.mo
@ -459,7 +469,9 @@ share/locale/fi/LC_TIME/coreutils.mo
share/locale/fr/LC_TIME/coreutils.mo
share/locale/ga/LC_TIME/coreutils.mo
share/locale/gl/LC_TIME/coreutils.mo
share/locale/hr/LC_TIME/coreutils.mo
share/locale/hu/LC_TIME/coreutils.mo
share/locale/ia/LC_TIME/coreutils.mo
share/locale/id/LC_TIME/coreutils.mo
share/locale/it/LC_TIME/coreutils.mo
share/locale/ja/LC_TIME/coreutils.mo

View file

@ -1,8 +1,7 @@
$NetBSD: distinfo,v 1.23 2013/04/30 22:28:22 joerg Exp $
$NetBSD: distinfo,v 1.24 2014/02/02 07:08:24 richard Exp $
SHA1 (coreutils-8.13.tar.gz) = 83b7e25661c439ecac55e99ff0dd816b9ff478a5
RMD160 (coreutils-8.13.tar.gz) = fb24a15641581ba57482f4c1c1ecfc32752dbd9d
Size (coreutils-8.13.tar.gz) = 11660808 bytes
SHA1 (patch-configure) = bfe96fde14c73b2836f539cc2e9dad3a77b05c4b
SHA1 (patch-lib-fflush.c) = e52e0da2127c5debbb14e967b1e206226efdaa4a
SHA1 (patch-lib-fseeko.c) = ab62b8c7faa9a601191475c040c7466e1bd52fe1
SHA1 (coreutils-8.22.tar.xz) = cc7fe47b21eb49dd2ee4cdb707570f42fb2c8cc6
RMD160 (coreutils-8.22.tar.xz) = c3da7ade1d3ac82e97ac4a24c70376af8b9b503b
Size (coreutils-8.22.tar.xz) = 5335124 bytes
SHA1 (patch-lib-fflush.c) = 106e9c7d05fff290f24cb69e1b2c80d0077c62bd
SHA1 (patch-lib-fseeko.c) = 9f4b0294698648011c64869fc0e642f910e9d47f

View file

@ -1,73 +0,0 @@
$NetBSD: patch-configure,v 1.1 2013/04/30 22:28:22 joerg Exp $
--- configure.orig 2013-04-30 19:22:56.000000000 +0000
+++ configure
@@ -38704,30 +38704,30 @@ fi
LIB_PTHREAD=
if test $ac_cv_header_pthread_h = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_join" >&5
-$as_echo_n "checking for library containing pthread_join... " >&6; }
-if ${gl_cv_search_pthread_join+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5
+$as_echo_n "checking for library containing pthread_create... " >&6; }
+if ${gl_cv_search_pthread_create+:} false; then :
$as_echo_n "(cached) " >&6
else
gl_saved_libs="$LIBS"
- gl_cv_search_pthread_join=
+ gl_cv_search_pthread_create=
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
main ()
{
-pthread_join (pthread_self (), (void **) 0);
+pthread_create (NULL, NULL, NULL, NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gl_cv_search_pthread_join="none required"
+ gl_cv_search_pthread_create="none required"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- if test -z "$gl_cv_search_pthread_join"; then
+ if test -z "$gl_cv_search_pthread_create"; then
LIBS="-lpthread $gl_saved_libs"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38735,13 +38735,13 @@ rm -f core conftest.err conftest.$ac_obj
int
main ()
{
-pthread_join (pthread_self (), (void **) 0);
+pthread_create (NULL, NULL, NULL, NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gl_cv_search_pthread_join="-lpthread"
+ gl_cv_search_pthread_create="-lpthread"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
@@ -38749,10 +38749,10 @@ rm -f core conftest.err conftest.$ac_obj
LIBS="$gl_saved_libs"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_search_pthread_join" >&5
-$as_echo "$gl_cv_search_pthread_join" >&6; }
- if test "$gl_cv_search_pthread_join" != "none required"; then
- LIB_PTHREAD="$gl_cv_search_pthread_join"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_search_pthread_create" >&5
+$as_echo "$gl_cv_search_pthread_create" >&6; }
+ if test "$gl_cv_search_pthread_create" != "none required"; then
+ LIB_PTHREAD="$gl_cv_search_pthread_create"
fi
fi

View file

@ -1,13 +1,13 @@
$NetBSD: patch-lib-fflush.c,v 1.1 2012/03/06 23:38:04 joerg Exp $
$NetBSD: patch-lib-fflush.c,v 1.2 2014/02/02 07:08:25 richard Exp $
--- lib/fflush.c.orig 2011-08-19 16:09:37.000000000 +0000
--- lib/fflush.c.orig 2013-12-04 14:53:33.000000000 +0000
+++ lib/fflush.c
@@ -91,7 +91,7 @@ static inline void
update_fpos_cache (FILE *fp, off_t pos)
@@ -96,7 +96,7 @@ update_fpos_cache (FILE *fp _GL_UNUSED_P
off_t pos _GL_UNUSED_PARAMETER)
{
#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
-# if defined __CYGWIN__
+# if defined(__CYGWIN__) || defined(__NetBSD__)
# if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
-# if defined __CYGWIN__
+# if defined(__CYGWIN__) || defined(__NetBSD__)
/* fp_->_offset is typed as an integer. */
fp_->_offset = pos;
# else
# else

View file

@ -1,11 +1,11 @@
$NetBSD: patch-lib-fseeko.c,v 1.1 2012/03/06 23:38:04 joerg Exp $
$NetBSD: patch-lib-fseeko.c,v 1.2 2014/02/02 07:08:25 richard Exp $
--- lib/fseeko.c.orig 2011-08-12 08:05:46.000000000 +0000
--- lib/fseeko.c.orig 2013-12-04 15:02:00.000000000 +0000
+++ lib/fseeko.c
@@ -111,7 +111,7 @@ fseeko (FILE *fp, off_t offset, int when
@@ -125,7 +125,7 @@ fseeko (FILE *fp, off_t offset, int when
fp->_flags &= ~_IO_EOF_SEEN;
fp->_offset = pos;
#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
-# if defined __CYGWIN__
+# if defined(__CYGWIN__) || defined(__NetBSD__)
/* fp_->_offset is typed as an integer. */