[arch-dev-public] [signoff] coreutils 6.10-1

Andreas Radke a.radke at arcor.de
Sat Feb 2 07:50:15 EST 2008

it's in testing for both arches. it is an essential package where
usually each time something gets broken. so please test it carefully.



GNU coreutils NEWS                                    -*- outline -*-

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

** Bug fixes

  Fix a non-portable use of sed in configure.ac.
  [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

  "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
  * ls accepts a slightly modified -Z option.
  * ls: contrary to Fedora version, does not accept --lcontext and

  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

  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

  ./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

  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,

  "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,

  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]

More information about the arch-dev-public mailing list