info-gnu
[Top][All Lists]
Advanced

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

coreutils-6.0 released


From: Jim Meyering
Subject: coreutils-6.0 released
Date: Tue, 15 Aug 2006 17:27:40 +0200

Coreutils version 6.0 has been released.

If you haven't heard about the GNU coreutils, the FAQ is a good
place to start: http://www.gnu.org/software/coreutils/faq/

Coreutils development branched after the stable 5.92 release.
Since then, there have been five releases from the stable branch:
5.93 through 5.97.  I hope to make no more releases from that branch.

Coreutils 6.0 is the first release off the trunk since 5.92, and
considering the number and scope of the changes, I've labeled it
"unstable".  However, many of the changes have been for improved
robustness and portability, and even the bug fixes usually address
unlikely failure scenarios.  That said, the changes are numerous
enough and invasive enough that there are probably a few new bugs.

There is a new, implicit build requirement:
To build the coreutils from source, you should have a C99-conforming
compiler, due to the use of declarations after non-declaration statements
in remove.c.  There is code in configure to find and, if possible,
enable an appropriate compiler.  However, if configure doesn't find
a C99 compiler, it continues nonetheless, and your build will fail.
If that happens, simply patch remove.c with the following command,
and run make again:

  cd src && patch remove.c c99-to-c89.diff

Here are some highlights from the NEWS below:

There are six new programs:

  base64: base64 encoding and decoding (RFC 3548) functionality
    by Simon Josefsson

  sha224sum: print or check a SHA224 (224-bit) checksum
  sha256sum: print or check a SHA256 (256-bit) checksum
  sha384sum: print or check a SHA384 (384-bit) checksum
  sha512sum: print or check a SHA512 (512-bit) checksum
    by David Madore (based on work by Ulrich Drepper and Scott Miller)

  shuf: shuffle lines of text
    by Paul Eggert

We've finally added some often-requested functionality for ls,
with its new option: --group-directories-first, by Francesco Montorsi.

rm has a new -I option, added by Eric Blake:
  rm now accepts the -I (--interactive=once) option.  This new option
  prompts once if rm is invoked recursively or if more than three
  files are being deleted, which is less intrusive than -i prompting
  for every file, but provides almost the same level of protection
  against mistakes.

For the complete summary of changes, see the NEWS section below.


Special thanks to Paul Eggert for his many contributions.
Thanks to everyone else who contributed changes (attributions are
in the ChangeLog files), reported problems, and helped by fielding
questions on the mailing list.

----------------------------------------------------------------
The GNU coreutils package contains the following programs:

  [ base64 basename cat chgrp chmod chown chroot cksum comm cp csplit
  cut date dd df dir dircolors dirname du echo env expand expr factor
  false fmt fold ginstall groups head hostid hostname id join kill link
  ln logname ls md5sum mkdir mkfifo mknod mv nice nl nohup od paste
  pathchk pinky pr printenv printf ptx pwd readlink rm rmdir seq sha1sum
  sha224sum sha256sum sha384sum sha512sum shred shuf sleep sort split
  stat stty su sum sync tac tail tee test touch tr true tsort tty uname
  unexpand uniq unlink uptime users vdir wc who whoami yes

Here are the compressed sources:
  ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.0.tar.gz   (7.9MB)
  ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.0.tar.bz2   (5.1MB)

Here are the xdelta-style diffs:
  ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.92-6.0.xdelta   (1.9MB)

Here are the GPG detached signatures[*]:
  ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.0.tar.gz.sig
  ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.0.tar.bz2.sig

Here are the MD5 and SHA1 checksums:

0ebee745a7cf51f715eaa7dad3cfc389  coreutils-6.0.tar.gz
c15219721e6590fa13bf50af49e712c2  coreutils-6.0.tar.bz2
f82137b72a153e1f7eda7c3d8138df8e  coreutils-5.92-6.0.xdelta
c979e82fec580a4f86267bc8900f5a2970260fdf  coreutils-6.0.tar.gz
cc55a1bb5ce99115b8309cd75ce65221b7bc9098  coreutils-6.0.tar.bz2
ac3c7807408d547f40b32b2ee6b1270ebf1ff265  coreutils-5.92-6.0.xdelta

[*] 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.0.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 wwwkeys.pgp.net --recv-keys D333CBA1

and rerun the `gpg --verify' command.

*****************
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.0.tar.gz | tar xf -
   cd coreutils-6.0
   ./configure
   make
   make -k check >& log
   grep FAIL log

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.

For further reading, see the coreutils home page
  http://www.gnu.org/software/coreutils/
and the FAQ list:
  http://www.gnu.org/software/coreutils/faq/

*****************
NEWS
*****************

* Major changes in release 6.0 (2006-08-15) [unstable]
  [since the preceding release, 5.92, from the trunk]

** Improved robustness

  df: if the file system claims to have more available than total blocks,
  report the number of used blocks as being "total - available"
  (a negative number) rather than as garbage.

  dircolors: a new autoconf run-test for AIX's buggy strndup function
  prevents malfunction on that system;  may also affect cut, expand,
  and unexpand.

  fts no longer changes the current working directory, so its clients
  (chmod, chown, chgrp, du) no longer malfunction under extreme conditions.

  pwd and other programs using lib/getcwd.c work even on file systems
  where dirent.d_ino values are inconsistent with those from stat.st_ino.

  rm's core is now reentrant: rm --recursive (-r) now processes
  hierarchies without changing the working directory at all.

** Changes in behavior

  basename and dirname now treat // as different from / on platforms
  where the two are distinct.

  chmod, install, and mkdir now preserve a directory's set-user-ID and
  set-group-ID bits unless you explicitly request otherwise.  E.g.,
  `chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's
  set-user-ID and set-group-ID bits instead of clearing them, and
  similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'.  To
  clear the bits, mention them explicitly in a symbolic mode, e.g.,
  `mkdir -m u=rwx,go=rx,-s DIR'.  To set them, mention them explicitly
  in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR',
  `mkdir -m u=rwx,go=rx,g+s' DIR.  This change is for convenience on
  systems where these bits inherit from parents.  Unfortunately other
  operating systems are not consistent here, and portable scripts
  cannot assume the bits are set, cleared, or preserved, even when the
  bits are explicitly mentioned.  For example, OpenBSD 3.9 `mkdir -m
  777 D' preserves D's setgid bit but `chmod 777 D' clears it.
  Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and
  `chmod 0777 D' all preserve D's setgid bit, and you must use
  something like `chmod g-s D' to clear it.

  `cp --link --no-dereference' now works also on systems where the
  link system call cannot create a hard link to a symbolic link.
  This change has no effect on systems with a Linux-based kernel.

  csplit and nl now use POSIX syntax for regular expressions, not
  Emacs syntax.  As a result, character classes like [[:print:]] and
  interval expressions like A\{1,9\} now have their usual meaning,
  . no longer matches the null character, and \ must precede the + and
  ? operators.

  date: a command like date -d '2006-04-23 21 days ago' would print
  the wrong date in some time zones.  (see the test for an example)

  df now considers "none" and "proc" file systems to be dummies and
  therefore does not normally display them.  Also, inaccessible file
  systems (which can be caused by shadowed mount points or by chrooted
  bind mounts) are now dummies, too.

  expr no longer complains about leading ^ in a regular expression
  (the anchor is ignored), or about regular expressions like A** (the
  second "*" is ignored).  expr now exits with status 2 (not 3) for
  errors it detects in the expression's values; exit status 3 is now
  used only for internal errors (such as integer overflow, which expr
  now checks for).

  install and mkdir now implement the X permission symbol correctly,
  e.g., `mkdir -m a+X dir'; previously the X was ignored.

  install now creates parent directories with mode u=rwx,go=rx (755)
  instead of using the mode specified by the -m option; and it does
  not change the owner or group of parent directories.  This is for
  compatibility with BSD and closes some race conditions.

  ln now uses different (and we hope clearer) diagnostics when it fails.
  ln -v now acts more like FreeBSD, so it generates output only when
  successful and the output is easier to parse.

  ls now defaults to --time-style='locale', not --time-style='posix-long-iso'.
  However, the 'locale' time style now behaves like 'posix-long-iso'
  if your locale settings appear to be messed up.  This change
  attempts to have the default be the best of both worlds.

  mkfifo and mknod no longer set special mode bits (setuid, setgid,
  and sticky) with the -m option.

  nohup's usual diagnostic now more precisely specifies the I/O
  redirections, e.g., "ignoring input and appending output to
  nohup.out".  Also, nohup now redirects stderr to nohup.out (or
  $HOME/nohup.out) if stdout is closed and stderr is a tty; this is in
  response to Open Group XCU ERN 71.

  rm --interactive now takes an optional argument, although the
  default of using no argument still acts like -i.

  rm no longer fails to remove an empty, unreadable directory

  seq changes:

    seq defaults to a minimal fixed point format that does not lose
    information if seq's operands are all fixed point decimal numbers.
    You no longer need the `-f%.f' in `seq -f%.f 1048575 1024 1050623',
    for example, since the default format now has the same effect.

    seq now lets you use %a, %A, %E, %F, and %G formats.

    seq now uses long double internally rather than double.

  sort now reports incompatible options (e.g., -i and -n) rather than
  silently ignoring one of them.

  stat's --format=FMT option now works the way it did before 5.3.0:
  FMT is automatically newline terminated.  The first stable release
  containing this change was 5.92.

  stat accepts the new option --printf=FMT, where FMT is *not*
  automatically newline terminated.

  stat: backslash escapes are interpreted in a format string specified
  via --printf=FMT, but not one specified via --format=FMT.  That includes
  octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or
  two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t,
  \v, \", \\).

  With no operand, 'tail -f' now silently ignores the '-f' only if
  standard input is a FIFO or pipe and POSIXLY_CORRECT is set.
  Formerly, it ignored the '-f' when standard input was a FIFO, pipe,
  or socket.

** Scheduled for removal

  ptx's --copyright (-C) option is scheduled for removal in 2007, and
  now evokes a warning.  Use --version instead.

  rm's --directory (-d) option is scheduled for removal in 2006.  This
  option has been silently ignored since coreutils 5.0.  On systems
  that support unlinking of directories, you can use the "unlink"
  command to unlink a directory.

  Similarly, we are considering the removal of ln's --directory (-d,
  -F) option in 2006.  Please write to <address@hidden> if this
  would cause a problem for you.  On systems that support hard links
  to directories, you can use the "link" command to create one.

** New programs

  base64: base64 encoding and decoding (RFC 3548) functionality.
  sha224sum: print or check a SHA224 (224-bit) checksum
  sha256sum: print or check a SHA256 (256-bit) checksum
  sha384sum: print or check a SHA384 (384-bit) checksum
  sha512sum: print or check a SHA512 (512-bit) checksum
  shuf: Shuffle lines of text.

** New features

  chgrp now supports --preserve-root, --no-preserve-root (default),
  as it was documented to do, and just as chmod, chown, and rm do.

  New dd iflag= and oflag= flags:

    'directory' causes dd to fail unless the file is a directory, on
    hosts that support this (e.g., Linux kernels, version 2.1.126 and
    later).  This has limited utility but is present for completeness.

    'noatime' causes dd to read a file without updating its access
    time, on hosts that support this (e.g., Linux kernels, version
    2.6.8 and later).

    'nolinks' causes dd to fail if the file has multiple hard links,
    on hosts that support this (e.g., Solaris 10 and later).

  ls accepts the new option --group-directories-first, to make it
  list directories before files.

  rm now accepts the -I (--interactive=once) option.  This new option
  prompts once if rm is invoked recursively or if more than three
  files are being deleted, which is less intrusive than -i prompting
  for every file, but provides almost the same level of protection
  against mistakes.

  shred and sort now accept the --random-source option.

  sort now accepts the --random-sort (-R) option and `R' ordering option.

  sort now supports obsolete usages like "sort +1 -2" unless
  POSIXLY_CORRECT is set.  However, when conforming to POSIX
  1003.1-2001 "sort +1" still sorts the file named "+1".

  wc accepts a new option --files0-from=FILE, where FILE contains a
  list of NUL-terminated file names.

** Bug fixes

  cat with any of the options, -A -v -e -E -T, when applied to a
  file in /proc or /sys (linux-specific), would truncate its output,
  usually printing nothing.

  cp -p would fail in a /proc-less chroot, on some systems

  When `cp -RL' encounters the same directory more than once in the
  hierarchy beneath a single command-line argument, it no longer confuses
  them with hard-linked directories.

  fts-using tools (chmod, chown, chgrp, du) no longer fail due to
  a double-free bug -- it could be triggered by making a directory
  inaccessible while e.g., du is traversing the hierarchy under it.

  fts-using tools (chmod, chown, chgrp, du) no longer misinterpret
  a very long symlink chain as a dangling symlink.  Before, such a
  misinterpretation would cause these tools not to diagnose an ELOOP error.

  ls --indicator-style=file-type would sometimes stat a symlink
  unnecessarily.

  ls --file-type worked like --indicator-style=slash (-p),
  rather than like --indicator-style=file-type.

  mv: moving a symlink into the place of an existing non-directory is
  now done atomically;  before, mv would first unlink the destination.

  mv -T DIR EMPTY_DIR no longer fails unconditionally.  Also, mv can
  now remove an empty destination directory: mkdir -p a b/a; mv a b

  rm (on systems with openat) can no longer exit before processing
  all command-line arguments.

  rm is no longer susceptible to a few low-probability memory leaks.

  rm -r no longer fails to remove an inaccessible and empty directory

  rm -r's cycle detection code can no longer be tricked into reporting
  a false positive (introduced in fileutils-4.1.9).

  shred --remove FILE no longer segfaults on Gentoo systems

  sort would fail for large inputs (~50MB) on systems with a buggy
  mkstemp function.  sort and tac now use the replacement mkstemp
  function, and hence are no longer subject to limitations (of 26 or 32,
  on the maximum number of files from a given template) on HP-UX 10.20,
  SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1.

  tail -f once again works on a file with the append-only
  attribute (affects at least Linux ext2, ext3, xfs file systems)

Attachment: pgpJnREnpVL2m.pgp
Description: PGP signature


reply via email to

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