please test: coreutils-5.90-1

Eric Blake ebb9@byu.net
Sun Oct 2 03:35:00 GMT 2005


I've uploaded a test version of coreutils, 5.90-1.  This is a new, unstable 
upstream release, with a number of changes from 5.3.0.  In particular, quite 
a few changes have been made upstream in regards to text vs. binary mode, so 
some feedback on this list would be appreciated before I promote the version 
to current (5.3.0-9 will remain current at least as long as cygwin-1.5.18-1 
stays current).  A full list from the NEWS file appears below.  I think 
5.90-1 will work with 1.5.18, but my testing to date has only been on cygwin 
snapshots.  As coreutils provides quite a bit of programs in daily use, I 
would recommend that you not upgrade to the test version UNLESS you are 
willing to cope with and report regressions.

-- 
Someday, I might put a cute statement here.

Eric Blake             ebb9@byu.net
volunteer cygwin coreutils maintainer

* Major changes in release 5.90 (2005-09-29) [unstable]

** Bring back support for `head -NUM', `tail -NUM', etc. even when
   conforming to POSIX 1003.1-2001.  The following changes apply only
   when conforming to POSIX 1003.1-2001; there is no effect when
   conforming to older POSIX versions.

   The following usages now behave just as when conforming to older POSIX:

     date -I
     expand -TAB1[,TAB2,...]
     fold -WIDTH
     head -NUM
     join -j FIELD
     join -j1 FIELD
     join -j2 FIELD
     join -o FIELD_NAME1 FIELD_NAME2...
     nice -NUM
     od -w
     pr -S
     split -NUM
     tail -[NUM][bcl][f] [FILE]

   The following usages no longer work, due to the above changes:

     date -I TIMESPEC  (use `date -ITIMESPEC' instead)
     od -w WIDTH       (use `od -wWIDTH' instead)
     pr -S STRING      (use `pr -SSTRING' instead)

   A few usages still have behavior that depends on which POSIX standard is
   being conformed to, and portable applications should beware these
   problematic usages.  These include:

     Problematic       Standard-conforming replacement, depending on
        usage            whether you prefer the behavior of:
                       POSIX 1003.2-1992    POSIX 1003.1-2001
     sort +4           sort -k 5            sort ./+4
     tail +4           tail -n +4           tail ./+4
     tail - main.c     tail main.c          tail -- - main.c
     tail -c 4         tail -c 10 ./4       tail -c4
     touch 12312359 f  touch -t 12312359 f  touch ./12312359 f
     uniq +4           uniq -s 4            uniq ./+4

   These changes are in response to decisions taken in the January 2005
   Austin Group standardization meeting.  For more details, please see
   "Utility Syntax Guidelines" in the Minutes of the January 2005
   Meeting <http://www.opengroup.org/austin/docs/austin_239.html>.

** Binary input and output are now implemented more consistently.
   These changes affect only platforms like MS-DOS that distinguish
   between binary and text files.

   The following programs now always use text input/output:

     expand unexpand

   The following programs now always use binary input/output to copy data:

     cp install mv shred

   The following programs now always use binary input/output to copy
   data, except for stdin and stdout when it is a terminal.

     head tac tail tee tr
     (cat behaves similarly, unless one of the options -bensAE is used.)

   cat's --binary or -B option has been removed.  It existed only on
   MS-DOS-like platforms, and didn't work as documented there.

   md5sum and sha1sum now obey the -b or --binary option, even if
   standard input is a terminal, and they no longer report files to be
   binary if they actually read them in text mode.

** Changes for better conformance to POSIX

   cp, ln, mv, rm changes:

     Leading white space is now significant in responses to yes-or-no questions.
     For example, if "rm" asks "remove regular file `foo'?" and you respond
     with " y" (i.e., space before "y"), it counts as "no".

   dd changes:

     On a QUIT or PIPE signal, dd now exits without printing statistics.

     On hosts lacking the INFO signal, dd no longer treats the USR1
     signal as if it were INFO when POSIXLY_CORRECT is set.

     If the file F is non-seekable and contains fewer than N blocks,
     then before copying "dd seek=N of=F" now extends F with zeroed
     blocks until F contains N blocks.

   fold changes:

     When POSIXLY_CORRECT is set, "fold file -3" is now equivalent to
     "fold file ./-3", not the obviously-erroneous "fold file ./-w3".

   ls changes:

     -p now marks only directories; it is equivalent to the new option
     --indicator-style=slash.  Use --file-type or
     --indicator-style=file-type to get -p's old behavior.

   nice changes:

     Documentation and diagnostics now refer to "nicenesses" (commonly
     in the range -20...19) rather than "nice values" (commonly 0...39).

   nohup changes:

     nohup now ignores the umask when creating nohup.out.

     nohup now closes stderr if it is a terminal and stdout is closed.

     nohup now exits with status 127 (not 1) when given an invalid option.

   pathchk changes:

     It now rejects the empty name in the normal case.  That is,
     "pathchk -p ''" now fails, and "pathchk ''" fails unless the
     current host (contra POSIX) allows empty file names.

     The new -P option checks whether a file name component has leading "-",
     as suggested in interpretation "Austin-039:XCU:pathchk:pathchk -p"
     <http://www.opengroup.org/austin/interps/doc.tpl?gdid=6232>.
     It also rejects the empty name even if the current host accepts it; see
     <http://www.opengroup.org/austin/interps/doc.tpl?gdid=6233>.

     The --portability option is now equivalent to -p -P.

** Bug fixes

   chmod, mkdir, mkfifo, and mknod formerly mishandled rarely-used symbolic
   permissions like =xX and =u, and did not properly diagnose some invalid
   strings like g+gr, ug,+x, and +1.  These bugs have been fixed.

   csplit could produce corrupt output, given input lines longer than 8KB

   dd now computes statistics using a realtime clock (if available)
   rather than the time-of-day clock, to avoid glitches if the
   time-of-day is changed while dd is running.  Also, it avoids
   using unsafe code in signal handlers; this fixes some core dumps.

   expr and test now correctly compare integers of unlimited magnitude.

   expr now detects integer overflow when converting strings to integers,
   rather than silently wrapping around.

   ls now refuses to generate time stamps containing more than 1000 bytes, to
   foil potential denial-of-service attacks on hosts with very large stacks.

   "mkdir -m =+x dir" no longer ignores the umask when evaluating "+x",
   and similarly for mkfifo and mknod.

   "mkdir -p /tmp/a/b dir" no longer attempts to create the `.'-relative
   directory, dir (in /tmp/a), when, after creating /tmp/a/b, it is unable
   to return to its initial working directory.  Similarly for "install -D
   file /tmp/a/b/file".

   "pr -D FORMAT" now accepts the same formats that "date +FORMAT" does.

   stat now exits nonzero if a file operand does not exist

** Improved robustness

   Date no longer needs to allocate virtual memory to do its job,
   so it can no longer fail due to an out-of-memory condition,
   no matter how large the result.

** Improved portability

   hostid now prints exactly 8 hexadecimal digits, possibly with leading zeros,
   and without any spurious leading "fff..." on 64-bit hosts.

   nice now works on Darwin 7.7.0 in spite of its invalid definition of NZERO.

   `rm -r' can remove all entries in a directory even when it is on a
   file system for which readdir is buggy and that was not checked by
   coreutils' old configure-time run-test.

   sleep no longer fails when resumed after being suspended on linux-2.6.8.1,
   in spite of that kernel's buggy nanosleep implementation.

** New features

   chmod -w now complains if its behavior differs from what chmod a-w
   would do, and similarly for chmod -r, chmod -x, etc.

   cp and mv: the --reply=X option is deprecated

   date accepts the new option --rfc-3339=TIMESPEC.  The old --iso-8602 (-I)
   option is deprecated; it still works, but new applications should avoid it.
   date, du, ls, and pr's time formats now support new %:z, %::z, %:::z
   specifiers for numeric time zone offsets like -07:00, -07:00:00, and -07.

   dd has new iflag= and oflag= flags "binary" and "text", which have an
   effect only on nonstandard platforms that distinguish text from binary I/O.

   du accepts new options: --time[=TYPE] and --time-style=STYLE

   join now supports a NUL field separator, e.g., "join -t '\0'".
   join now detects and reports incompatible options, e.g., "join -t x -t y",

   ls no longer outputs an extra space between the mode and the link count
   when none of the listed files has an ACL.

   md5sum --check now accepts multiple input files, and similarly for sha1sum.

   If stdin is a terminal, nohup now redirects it from /dev/null to
   prevent the command from tying up an OpenSSH session after you logout.

   "rm -FOO" now suggests "rm ./-FOO" if the file "-FOO" exists and
   "-FOO" is not a valid option.

   stat -f -c %S outputs the fundamental block size (used for block counts).
   stat -f's default output format has been changed to output this size as well.
   stat -f recognizes file systems of type XFS and JFS

   "touch -" now touches standard output, not a file named "-".

   uname -a no longer generates the -p and -i outputs if they are unknown.



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list