[Top][All Lists]

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

coreutils-6.10 released (stable)

From: Jim Meyering
Subject: coreutils-6.10 released (stable)
Date: Tue, 22 Jan 2008 22:18:42 +0100

Coreutils version 6.10 has been released.  This is a stable release.

Since the previous stable release, 6.9, there have been three test
releases: 6.9.90,91,92 and almost 500 change sets in coreutils proper.
That doesn't include the 1100+ change sets in gnulib (most of the
files in coreutils/{lib,m4} come from gnulib).

Thanks to everyone who has contributed to this release.
For a summary of changes and contributors, see:;a=shortlog;h=v6.10
or run this command from a git-cloned work area:
  git shortlog v6.9..v6.10

If you haven't heard about the GNU coreutils, the FAQ is a good
place to start: <>.

Here are the compressed sources:     (8.8MB)   (3.6MB)

Here are the GPG detached signatures[*]:

For more information on LZMA compression, see <>.
Since the lzma-compressed tarball is 2MB smaller than the .bz2 one,
and since it decompresses twice as fast, I no longer create bzip2-
compressed tarballs.

[*] You can use either of the above signature files 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-6.10.tar.gz.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 B9AB9A16

and rerun the `gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.61a.336-e6742
  Automake 1.10.1
  Bison 2.3a
  Gnulib v0.0-215-g16c6ed6

How can you help?
If you're interested in lending a hand, or just want to use
the latest versions right now, you can build these programs
and run the test suite like this:

   gzip -dc coreutils-6.10.tar.gz | tar xf -
   cd coreutils-6.10
   make -k check >& log
   grep FAIL log

[If you downloaded the much-smaller .lzma tarball, then just
 substitute this for the gzip... line above:
   lzma -dc coreutils-6.10.tar.lzma | tar xf -
 If you don't have "lzma" installed yet, first try getting it via
 your distribution, e.g., "aptitude install lzma" or "yum install lzma"]

Be sure to use make's -k option so that make doesn't stop
just because one of the earlier tests fails.
Please report any build problems or test failures to the
address@hidden mailing list.
There are detailed instructions in the `Reporting bugs:' section
of the README file.

NEWS (since coreutils-6.9)

GNU coreutils NEWS                                    -*- outline -*-

* Noteworthy changes in release 6.10 (2008-01-22) [stable]

** Bug fixes

  Fix a non-portable use of sed in
  [bug introduced in coreutils-6.9.92]

* Noteworthy changes in release 6.9.92 (2008-01-12) [beta]

** Bug fixes

  cp --parents no longer uses uninitialized memory when restoring the
  permissions of a just-created destination directory.
  [bug introduced in coreutils-6.9.90]

  tr's case conversion would fail in a locale with differing numbers
  of lower case and upper case characters.  E.g., this would fail:
  env LC_CTYPE=en_US.ISO-8859-1 tr '[:upper:]' '[:lower:]'
  [bug introduced in coreutils-6.9.90]

** Improvements

  "touch -d now writable-but-owned-by-someone-else" now succeeds
  whenever that same command would succeed without "-d now".
  Before, it would work fine with no -d option, yet it would
  fail with the ostensibly-equivalent "-d now".

* Noteworthy changes in release 6.9.91 (2007-12-15) [beta]

** Bug fixes

  "ls -l" would not output "+" on SELinux hosts unless -Z was also given.

  "rm" would fail to unlink a non-directory when run in an environment
  in which the user running rm is capable of unlinking a directory.
  [bug introduced in coreutils-6.9]

* Noteworthy changes in release 6.9.90 (2007-12-01) [beta]

** New programs

  arch: equivalent to uname -m, not installed by default
  But don't install this program on Solaris systems.

  chcon: change the SELinux security context of a file

  mktemp: create a temporary file or directory (or names)

  runcon: run a program in a different SELinux security context

** Programs no longer installed by default

  hostname, su

** Changes in behavior

  cp, by default, refuses to copy through a dangling destination symlink
  Set POSIXLY_CORRECT if you require the old, risk-prone behavior.

  pr -F no longer suppresses the footer or the first two blank lines in
  the header.  This is for compatibility with BSD and POSIX.

  tr now warns about an unescaped backslash at end of string.
  The tr from coreutils-5.2.1 and earlier would fail for such usage,
  and Solaris' tr ignores that final byte.

** New features

  Add SELinux support, based on the patch from Fedora:
  * cp accepts new --preserve=context option.
  * "cp -a" works with SELinux:
  Now, cp -a attempts to preserve context, but failure to do so does
  not change cp's exit status.  However "cp --preserve=context" is
  similar, but failure *does* cause cp to exit with nonzero status.
  * install accepts new "-Z, --context=C" option.
  * id accepts new "-Z" option.
  * stat honors the new %C format directive: SELinux security context string
  * ls accepts a slightly modified -Z option.
  * ls: contrary to Fedora version, does not accept --lcontext and --scontext

  cp -p tries to preserve the GID of a file even if preserving the UID
  is not possible.

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

  wc no longer warns about character decoding errors in multibyte locales.
  This means for example that "wc /bin/sh" now produces normal output
  (though the word count will have no real meaning) rather than many
  error messages.

** New build options

  By default, "make install" no longer attempts to install (or even build) su.
  To change that, use ./configure --enable-install-program=su.
  If you also want to install the new "arch" program, do this:
  ./configure --enable-install-program=arch,su.

  You can inhibit the compilation and installation of selected programs
  at configure time.  For example, to avoid installing "hostname" and
  "uptime", use ./configure --enable-no-install-program=hostname,uptime
  Note: currently, "make check" passes, even when arch and su are not
  built (that's the new default).  However, if you inhibit the building
  and installation of other programs, don't be surprised if some parts
  of "make check" fail.

** Remove deprecated options

  df no longer accepts the --kilobytes option.
  du no longer accepts the --kilobytes or --megabytes options.
  ls no longer accepts the --kilobytes option.
  ptx longer accepts the --copyright option.
  who no longer accepts -i or --idle.

** Improved robustness

  ln -f can no longer silently clobber a just-created hard link.
  In some cases, ln could be seen as being responsible for data loss.
  For example, given directories a, b, c, and files a/f and b/f, we
  should be able to do this safely: ln -f a/f b/f c && rm -f a/f b/f
  However, before this change, ln would succeed, and thus cause the
  loss of the contents of a/f.

  stty no longer silently accepts certain invalid hex values
  in its 35-colon commmand-line argument

** Bug fixes

  chmod no longer ignores a dangling symlink.  Now, chmod fails
  with a diagnostic saying that it cannot operate on such a file.
  [bug introduced in coreutils-5.1.0]

  cp attempts to read a regular file, even if stat says it is empty.
  Before, "cp /proc/cpuinfo c" would create an empty file when the kernel
  reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work",
  and create a nonempty one. [bug introduced in coreutils-6.0]

  cp --parents no longer mishandles symlinks to directories in file
  name components in the source, e.g., "cp --parents symlink/a/b d"
  no longer fails.  Also, 'cp' no longer considers a destination
  symlink to be the same as the referenced file when copying links
  or making backups.  For example, if SYM is a symlink to FILE,
  "cp -l FILE SYM" now reports an error instead of silently doing
  nothing.  The behavior of 'cp' is now better documented when the
  destination is a symlink.

  "cp -i --update older newer" no longer prompts; same for mv

  "cp -i" now detects read errors on standard input, and no longer consumes
  too much seekable input; same for ln, install, mv, and rm.

  cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid;
  before, it would treat it as if it started with 1 (-f 1-2).

  "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-"

  cut now diagnoses the '-' in "cut -f -" as an invalid range, rather
  than interpreting it as the unlimited range, "1-".

  date -d now accepts strings of the form e.g., 'YYYYMMDD +N days',
  in addition to the usual 'YYYYMMDD N days'.

  du -s now includes the size of any stat'able-but-inaccessible directory
  in the total size.

  du (without -s) prints whatever it knows of the size of an inaccessible
  directory.  Before, du would print nothing for such a directory.

  ls -x DIR would sometimes output the wrong string in place of the
  first entry.  [introduced in coreutils-6.8]

  ls --color would mistakenly color a dangling symlink as if it were
  a regular symlink.  This would happen only when the dangling symlink
  was not a command-line argument and in a directory with d_type support.
  [introduced in coreutils-6.0]

  ls --color, (with a custom LS_COLORS envvar value including the
  ln=target attribute) would mistakenly output the string "target"
  before the name of each symlink.  [introduced in coreutils-6.0]

  od's --skip (-j) option now works even when the kernel says that a
  nonempty regular file has stat.st_size = 0.  This happens at least
  with files in /proc and linux-2.6.22.

  "od -j L FILE" had a bug: when the number of bytes to skip, L, is exactly
  the same as the length of FILE, od would skip *no* bytes.  When the number
  of bytes to skip is exactly the sum of the lengths of the first N files,
  od would skip only the first N-1 files. [introduced in textutils-2.0.9]

  ./printf %.10000000f 1 could get an internal ENOMEM error and generate
  no output, yet erroneously exit with status 0.  Now it diagnoses the error
  and exits with nonzero status.  [present in initial implementation]

  seq no longer mishandles obvious cases like "seq 0 0.000001 0.000003",
  so workarounds like "seq 0 0.000001 0.0000031" are no longer needed.

  seq would mistakenly reject some valid format strings containing %%,
  and would mistakenly accept some invalid ones. e.g., %g%% and %%g, resp.

  "seq .1 .1" would mistakenly generate no output on some systems

  Obsolete sort usage with an invalid ordering-option character, e.g.,
  "env _POSIX2_VERSION=199209 sort +1x" no longer makes sort free an
  invalid pointer [introduced in coreutils-6.5]

  sorting very long lines (relative to the amount of available memory)
  no longer provokes unaligned memory access

  split --line-bytes=N (-C N) no longer creates an empty file
  [this bug is present at least as far back as textutils-1.22 (Jan, 1997)]

  tr -c no longer aborts when translating with Set2 larger than the
  complement of Set1.  [present in the original version, in 1992]

  tr no longer rejects an unmatched [:lower:] or [:upper:] in SET1.
  [present in the original version]

Attachment: pgppZM2e64Vsu.pgp
Description: PGP signature

reply via email to

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