[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
coreutils-5.0.90 released
From: |
Jim Meyering |
Subject: |
coreutils-5.0.90 released |
Date: |
Thu, 31 Jul 2003 11:34:24 +0200 |
Most notably, this version fixes a bug in each of two commands
that are usually shell built-ins: kill and `[' -- so I can hope
that few people noticed them :-)
Thanks to all who contributed, and especially to Stepan Kasal
and Paul Eggert for the sort improvements.
Jim
Here are the compressed sources:
ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.0.90.tar.gz (6.1MB)
ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.0.90.tar.bz2 (3.9MB)
http://fetish.sf.net/coreutils-5.0.90.tar.gz (6.1MB)
http://fetish.sf.net/coreutils-5.0.90.tar.bz2 (3.9MB)
And here are xdelta-style diffs:
ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.0.1-5.0.90.xdelta (748KB)
http://fetish.sf.net/coreutils-5.0.1-5.0.90.xdelta (748KB)
Here are GPG detached signatures:
ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.0.90.tar.gz.asc
ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.0.90.tar.bz2.asc
http://fetish.sf.net/coreutils-5.0.90.tar.gz.asc
http://fetish.sf.net/coreutils-5.0.90.tar.bz2.asc
Here are the MD5 and SHA1 signatures:
dbf2126651fe7f09aef0758d3c49a245 coreutils-5.0.90.tar.gz
060d313593217e0b8987ad276a043bcb coreutils-5.0.90.tar.bz2
e5d05e1043829f1216e20a3274031019 coreutils-5.0.1-5.0.90.xdelta
7cd6b8edb7bd9f1f59664c16e29ad0ff5131d7f0 coreutils-5.0.90.tar.gz
dfca42cbf59effa1cf294fe89239d3588433f37d coreutils-5.0.90.tar.bz2
98f510c277dfb2dd5691ce6e77f20008c1b3bd03 coreutils-5.0.1-5.0.90.xdelta
NEWS
* Major changes in release 5.0.90:
** New features
sort is now up to 30% more CPU-efficient in some cases
`test' is now more compatible with Bash and POSIX:
`test -t', `test --help', and `test --version' now silently exit
with status 0. To test whether standard output is a terminal, use
`test -t 1'. To get help and version info for `test', use
`[ --help' and `[ --version'.
`test' now exits with status 2 (not 1) if there is an error.
wc count field widths now are heuristically adjusted depending on the input
size, if known. If only one count is printed, it is guaranteed to
be printed without leading spaces.
Previously, wc did not align the count fields if POSIXLY_CORRECT was set,
but POSIX did not actually require this undesirable behavior, so it
has been removed.
** Bug fixes
kill no longer tries to operate on argv[0] (introduced in 5.0.1)
Why wasn't this noticed? Although many tests use kill, none of
them made an effort to avoid using the shell's built-in kill.
`[' invoked with no arguments no longer evokes a segfault
rm without --recursive (aka -r or -R) no longer prompts regarding
unwritable directories, as required by POSIX.
uniq -c now uses a SPACE, not a TAB between the count and the
corresponding line, as required by POSIX.
expr now exits with status 2 if the expression is syntactically valid,
and with status 3 if an error occurred. POSIX requires this.
expr now reports trouble if string comparison fails due to a collation error.
`sort --version' and `sort --help' fail, as they should
when their output is redirected to /dev/full.
`su --version > /dev/full' now fails, as it should.
** Fewer arbitrary limitations
cut requires 97% less memory when very large field numbers or
byte offsets are specified.
ChangeLog entries:
**********************************************************************
ChangeLog
**********************************************************************
2003-07-29 Jim Meyering <address@hidden>
* Version 5.0.90.
* README: When running tests as root, suggest using
sudo with NON_ROOT_USERNAME=$USER.
* tests/Makefile.am (all_programs): Makefile is in ../src, not
$(srcdir)/../src.
2003-07-28 Jim Meyering <address@hidden>
* Makefile.maint (GZIP_ENV): Try Debian/gzip's new --rsyncable option.
2003-07-28 Paul Eggert <address@hidden>
* lib/stdbool.hin (_Bool): Make it signed char, instead of
an enum type, so that it's guaranteed to promote to int.
* src/sort.c (sortlines_temp): Undo previous change.
2003-07-28 Jim Meyering <address@hidden>
* src/sort.c (sortlines_temp): Declare local `swap' to be `int', not
`bool'. Otherwise, at least one buggy compiler (alpha gcc-2.95.4)
would cause lines[-1 - swap] (with swap = false) to evaluate to
lines[4294967295].
2003-07-27 Jim Meyering <address@hidden>
* tests/priv-check (my_uid): Use `!', not `^' in case pattern `[!0-9]',
since /bin/sh of at least NetBSD 1.6 and OpenBSD 3.2 don't accept `^'.
* src/remove.c (prompt) [! recursive]: Don't prompt about unwritable
directories, as required by POSIX. Reported by Karl Berry.
* tests/rm/dir-no-w: New file. Test for the above fix.
* tests/rm/Makefile.am (TESTS): Add dir-no-w.
* tests/mk-script: Emit `$xx', not its expansion.
2003-07-27 Paul Eggert <address@hidden>
This change was inspired by a similar proposal by Stepan Kasal.
* src/sort.c (mergelines, sortlines_temp): New functions.
(sortlines): Use them, to reduce the number of times that
we need to copy 'struct line' values. This improved CPU
performance by about 30% on one 18 MB test.
(sort): Don't invoke sortlines unless we have 2 or more lines.
2003-07-26 Stepan Kasal <address@hidden>
* src/sort.c (sort): Don't require two `struct line's per text line,
the new sort algorithm requires just 1.5.
2003-07-27 Jim Meyering <address@hidden>
* src/pathchk.c (validate_path): Use %lu, not %ld.
From Paul Eggert.
* src/cut.c (is_printable_field): Simplify bit arithmetic.
From Paul Eggert.
* src/ls.c (sort_files): Put `volatile' in the right place.
From Paul Eggert.
2003-07-26 Jim Meyering <address@hidden>
Use only one bit per field/offset in array, not one `int'.
* src/cut.c (printable_field): Change type to `unsigned char'.
(mark_printable_field, is_printable_field): New functions.
Use them in place of all direct accesses of `printable_field'.
* src/expand.c (parse_tabstops): Detect overflow properly.
* src/cut.c (set_fields): Likewise.
* src/rm.c: Include "dirname.h".
(usage): Use base_name (program_name) in body of --help output.
This lets me...
* man/Makefile.am (.x.1): ...back out the kludge of 2003-07-22.
Idea from Brendan O'Dea, who suggested using
`program_name = basename (argv[0]);' everywhere --
can't do that, but using base_name works just fine here.
* src/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Exempt test.
2003-07-24 Paul Eggert <address@hidden>
Fix some POSIX-compliance problems with 'test'. This makes
'test' more compatible with Bash.
* NEWS, doc/coreutils.texi: Document the following.
* src/test.c: Include exitfail.h.
(TEST_FAILURE): New constant, used for exit status if 'test' fails.
(test-syntax_error): Use it.
(binary_operator): Now takes bool arg specifying whether left operand
is -l ARG, so that caller determines this rather than us.
All uses changed.
(term): Use posixtest to evaluate parenthesized subexpressions.
(unary_operator, one_argument): Remove support for -t without operand.
(one_argument): Take argument from argv[pos].
(one_argument, two_arguments, three_arguments): Advance pos.
All callers changed.
(three_arguments): Look for binary ops before "!". Then look
for parenthesized one_argument expressions, instead of trusting
expr () to do the right thing.
(posixtest): Now takes number of args. All callers changed.
Treat "( A B )" like "A B".
(main): Set exit_failure to TEST_FAILURE. Don't depend on
POSIXLY_CORRECT, as we now conform to POSIX by default.
(main) [!LBRACKET]: Do not recognize "--help" or "--verbose" unless.
* tests/test/Test.pm (test_vector): Add several tests to check
the above. Syntax errors now exit with status 2, not 1.
* man/Makefile.am (mapped_name): Use `../src/[' binary to create test.1.
2003-07-26 Jim Meyering <address@hidden>
* tests/help-version: Adjust for above change in test behavior:
`[' exits with 2, not 1, and test doesn't accept --help or --version.
* Makefile.maint (ME): Don't use trick suggested in Make manual.
It doesn't work for make-3.79.1. Reported by Christian Krackowizer.
* Makefile.maint (sc_system_h_headers): Another syntax check.
(syntax-check-rules): Add it to the list.
* src/pathchk.c (validate_path): Cast strlen value to `unsigned long'
so it matches `%ld' format even on 32-bit systems.
* src/fmt.c (flush_paragraph): Cast field width to `int' to
avoid warning on 64-bit systems.
* src/ls.c (sort_files): Make `func' volatile, so it can't be
clobbered by a `longjmp' into this function.
2003-07-25 Jim Meyering <address@hidden>
* src/pathchk.c (validate_path): Use %ld format (not %d) for size_t
value.
* tests/misc/split-fail: Disable the --line-bytes=$_4gb test,
because it'd evoke spurious failure on 64-bit systems.
2003-07-24 Jim Meyering <address@hidden>
* src/dd.c (usage): Document the fact that SIGUSR1 makes dd
output its current record counts. Reported by Jurriaan.
* tests/wc/Test.pm (test_vector): Disable the `PIPE' tests when running
`wc' with no options. This goes along with the change of 2003-07-20.
2003-07-23 Jim Meyering <address@hidden>
Don't include headers already included by system.h:
* src/tr.c: Don't include errno.h.
* src/true.c: Don't include version-etc.h.
* src/test.c: Don't include limits.h or error.h.
* src/stat.c: Don't include unistd.h or time.h.
* src/readlink.c: Don't include stdlib.h, unistd.h, or limits.h.
* src/pr.c: Don't include time.h.
* src/pathchk.c: Don't include errno.h.
* src/nice.c: Don't include sys/time.h.
* src/ls.c: Don't include stdlib.h.
* basename.c, cat.c, chroot.c, cksum.c, comm.c, csplit.c, cut.c, date.c:
* dd.c, dirname.c, echo.c, env.c, expand.c, expr.c, factor.c, fmt.c:
* fold.c, head.c, hostid.c, hostname.c, id.c, join.c, kill.c, logname.c:
* md5sum.c, nice.c, nl.c, nohup.c, od.c, paste.c, pathchk.c, pinky.c:
* pr.c, printenv.c, printf.c, ptx.c, pwd.c, seq.c, setuidgid.c, shred.c:
* sleep.c, sort.c, split.c, stat.c, stty.c, su.c, sum.c, tac.c, tail.c:
* tee.c, test.c, tr.c, true.c, tsort.c, tty.c, uname.c, unexpand.c:
* uniq.c, uptime.c, users.c, wc.c, who.c, whoami.c, yes.c:
Don't include closeout.h.
* tests/rm/fail-2eperm: Add a check for whether $NON_ROOT_USERNAME
can access the required version of rm.
* tests/rm/Makefile.am (TESTS_ENVIRONMENT): Define PACKAGE_VERSION.
* tests/cut/Test.pm (out-delim3a): New test.
* man/help2man: Update to version 1.33.
* src/expand.c (parse_tabstops): Detect overflow in tabstop sizes.
* src/dircolors.c: Include xstrndup.h.
(xstrndup): Remove function, now that it's been factored out into
it's own file.
2003-07-22 Paul Eggert <address@hidden>
* src/wc.c (wc): Fix typo in computation of file from file_x,
which caused the former to be used uninitialized if file_x was
nonzero.
2003-07-22 Jim Meyering <address@hidden>
* src/cut.c (set_fields): Use xcalloc in place of xmalloc+memset.
* man/Makefile.am (.x.1): Substitute 's,$t/$*,$*,' on output of
help2man, to avoid having `rm.td/rm' appear in rm.1. Reported by
Thomas Luzat. See http://bugs.debian.org/202413 for details.
* src/cut.c (main) [lint]: Initialize spec_list_string to avoid warning.
* src/hostid.c: Don't include <unistd.h>. system.h already does that.
* src/cut.c (set_fields): Mark all selected indices before trying to
determine range endpoints.
* tests/cut/Test.pm: New test for the above fix.
Begin to address this comment: What if someone wants to
extract the 1,000,000-th field of some huge input file?
The first step is to rearrange things so that the values
in the printable_field array are all 0/1 rather than 0/1/2.
* src/cut.c (RANGE_START_SENTINEL): Remove.
Store range-start indices in a hash table, rather than
overloading the `printable_field' array.
(range_start_ht): New global.
(hash_int, hash_compare_ints, is_range_start_index): New functions.
(print_kth): Use is_range_start_index; don't test printable_field.
(set_fields): Detect overflow.
(set_fields): Insert each range-start index into range_start_ht.
(main): Call set_fields only once, and only after
output_delimiter_specified and (if required) range_start_ht have
been defined.
2003-07-20 Paul Eggert <address@hidden>
* src/wc.c (get_input_fstatus): Fix typo: `stat' was being
invoked with a null pointer when there were no file arguments.
2003-07-20 Jim Meyering <address@hidden>
* Makefile.maint (sc_changelog): Add another nit-picky check.
* src/wc.c (write_counts): Add a comment.
(wc): Rename `file' parameter.
Set new local, `file', to be the file name, or (when it's NULL)
_("standard output") so that all uses of `file' use the proper value.
Use STREQ, not strcmp.
2003-07-20 Paul Eggert <address@hidden>
wc count field widths now are heuristically adjusted depending
on the input size, if known. If only one count is printed, it
is guaranteed to be printed without leading spaces.
Previously, wc did not align the count fields if
POSIXLY_CORRECT was set, but POSIX did not actually require
this undesirable behavior, so it has been removed.
* NEWS: Document this.
* doc/coreutils.texi (wc invocation): Likewise.
* src/wc.c (number_width): New var.
(posixly_correct): Remove.
(struct fstatus): New struct.
(write_counts): Output fields of width number_width.
Do not worry about POSIXLY_CORRECT.
Use null file, not empty-string file, to denote stdin,
since "" is a valid file name on some hosts.
(wc, wc_file): New arg fstatus. Use it to avoid invoking fstat
if possible.
(wc): Avoid problems if end_pos - current_pos overflows.
Do not print odd message if stdin has a read error.
(get_input_fstatus, compute_number_width): New functions.
(main): Use them to implement the new behavior.
Ignore POSIXLY_CORRECT.
* tests/wc/Test.pm: Adjust to the new output widths.
2003-07-19 Jim Meyering <address@hidden>
* tests/rm/fail-eperm: Don't create temporary directory --
we don't use it.
* tests/shred/remove: Don't open-code test for UID != 0.
Use priv-check's require-non-root instead.
Update to use newer framework.
* tests/help-version (expected_failure_status_expr): Record that
expr exits with status of 3 for e.g., a write error.
* tests/priv-check: Use `id -u' to see if we're running as root,
rather than trying go write to an write-protected file.
When running as root, ensure $NON_ROOT_USERNAME is valid.
When running as root with `require-non-root', ensure that `.'
is writable by $NON_ROOT_USERNAME, then reinvoke $0 set-user-ID
to $NON_ROOT_USERNAME. If `.' is not writable, then skip the test.
* src/printenv.c: Include "exitfail.h".
(main): Set exit_failure rather than calling close_stdout_set_status.
* src/date.c: Likewise.
* src/sort.c: Likewise.
* src/tty.c: Likewise.
2003-07-18 Jim Meyering <address@hidden>
* tests/touch/not-owner: Update to use newer framework.
* tests/rm/fail-eperm: Use $srcdir/../priv-check, create a temporary
directory, and remove Perl-coded `you may not run as root' test.
* tests/cp/fail-perm: Use $srcdir/../priv-check, rather than
hard-coding something not quite equivalent.
Paul Jarc reported the inconsistent diagnostics.
* src/sort.c (main): Use close_stdout via atexit.
Now `sort --version' and `sort --help' fail, as they should
when their output is redirected to /dev/full.
* src/su.c (usage): Don't call close_stdout here.
(main): Use close_stdout via atexit.
Now `su --version > /dev/full' fails, as it should.
Somehow, the change of 2000-05-07 that purports to fix this
was not checked in.
* tests/help-version (--help/--version vs. /dev/full): Special-case
`[' to protect it from expected_failure_status-`eval'.
* src/uniq.c (writeline): Use a SPACE, not a TAB between the
count and the corresponding line, as required by POSIX.
Reported by Clement Wang.
* tests/uniq/Test.pm (101, 102): Update tests of -c accordingly.
* tests/expr/basic: Add tests for when exit status is 2.
* src/nohup.c (NOHUP_FOUND_BUT_CANNOT_INVOKE, NOHUP_FAILURE):
Use an anonymous `enum', rather than #define.
2003-07-17 Paul Eggert <address@hidden>
* src/expr.c: Include "exitfail.h", "quotearg.h".
(EXPR_INVALID, EXPR_ERROR): New constants.
(nomoreargs, null, toarith, nextarg): Return bool, not int.
(syntax_error): New function, exiting with status 2. Use it
insteading of printing "syntax error" ourselves.
(main): Initialize exit_failure to EXPR_ERROR.
Exit with EXPR_INVALID on syntax error (too few arguments).
(nextarg): Use strcmp, not strcoll; strcoll might return
an undesirable 0, or might fail.
(docolon, eval4, eval3): Exit with status 3 on invalid argument type
or other such error.
(eval2): Report an error if strcoll fails in a string comparison.
* src/sort.c: Include "exitfail.h".
(main): Set exit_failure, not xalloc_exit_failure and
xmemcoll_exit_failure.
* tests/expr/basic: Invalid value exits with status 3, not 2.
2003-07-16 Jim Meyering <address@hidden>
* configure.ac (AC_INIT): Use 5.0.90 as the version, rather than 5.0.2,
per GNU maintainer guidelines. The next non-beta release will be 5.1.
This script would have caught at least two recent bugs:
those in [ and kill.
* tests/help-version: Revive this script.
It wasn't doing anything useful, since $all_programs wasn't being
defined by the invoking Makefile.am.
Reflect that nohup is no longer a script, so don't exclude it.
Add framework to handle the programs added since it was last run:
kill, stat, unlink, [, link, readlink.
Fix path-related problems deriving from the move of this script
from src/ to its present location.
* tests/Makefile.am (all_programs): Define.
(TESTS_ENVIRONMENT): Use it.
* src/kill.c (main): Fix bug introduced on 2003-05-10 (for 5.0.1)
whereby kill would always attempt to operate on argv[0] and fail.
* src/test.c (integer_expected_error): Improve diagnostic -- now,
it also matches the one from bash's builtin test.
(binary_operator): Add \n at end of diagnostic.
* tests/rm/fail-2eperm: Remove setuidgid-related code. Move it to ...
* tests/priv-check: Move setuidgid-related and
NON_ROOT_USERNAME-checking code to this file.
* README: Update section on testing as `root'.
Suggestion from Paul Jarc.
* src/test.c (AUTHORS): Replace 3-letter usernames with the actual
names of authors that I just found in bash's builtins/test.def.
Running `[' with no arguments would evoke a segfault.
* src/test.c (main) [LBRACKET]: Move initialization of argv to
precede potential use via test_syntax_error.
* src/Makefile.am (AM_CPPFLAGS): Rename from `INCLUDES', to avoid
warning from automake -Wall.
Use uintmax_t, not size_t, for file sizes.
(main): Give a better diagnostic for option arguments == 0.
**********************************************************************
lib/ChangeLog
**********************************************************************
2003-07-28 Jim Meyering <address@hidden>
* stdbool_.h: Renamed from stdbool.hin.
* Makefile.am: Reflect renaming: stdbool.hin -> stdbool_.h.
* stdbool.hin: Remove file.
2003-07-28 Paul Eggert <address@hidden>
* stdbool.hin (_Bool): Make it signed char, instead of
an enum type, so that it's guaranteed to promote to int.
2003-07-23 Jim Meyering <address@hidden>
* xstrndup.h: New file.
* xstrndup.c: New file, factored out of dircolors.c from coreutils.
* Makefile.am (libfetish_a_SOURCES): Add xstrndup.c and xstrndup.h.
2003-07-23 Jim Meyering <address@hidden>
* lstat.c, save-cwd.c, stat.c, utime.c, xgethostname.c: Normalize
naming of Sun operating systems in comments, e.g., SunOS4 -> SunOS 4,
Solaris5.9 -> Solaris 9. From Paul Eggert.
2003-07-22 Paul Eggert <address@hidden>
* xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
over-parenthesization in macros.
2003-07-18 Paul Eggert <address@hidden>
* closeout.h (close_stdout_set_status, close_stdout_status): Remove.
* closeout.c: Likewise. Include "closeout.h" right after config.h,
to test that it can stand by itself. Include "exitfail.h".
Clients should set exit_failure instead.
(EXIT_FAILURE): Remove; no longer needed. Do not include <stdlib.h>.
2003-07-18 Andreas Schwab <address@hidden>
* memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
2003-07-17 Paul Eggert <address@hidden>
* xalloca.h, xmalloc.c, xmemcoll.c, xmemcoll.h:
Merge with gnulib. Use a single exit_failure variable rather
than a separate one for each module.
2003-07-16 Jim Meyering <address@hidden>
* Makefile.am (AM_CPPFLAGS): Rename from `INCLUDES', to avoid
warning from automake -Wall.
Work even if X-Y overflows when subtracting. Make explicit the
assumption that tv_nsec must be in range.
(clock_get_realtime): Remove. All callers changed to invoke gettime,
for simplicity.
(xnanosleep): Check for gettime failure every time.
Without that change, systems lacking raise (SunOS 4) would not be
Bruno Haible <address@hidden>
(save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
__unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld.
on SunOS 4.
doesn't conflict with sparc Solaris 7's definition in
* basename.c: Include <stdio.h>, needed by assert on SunOS 4.
* xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
SunOS 4.1.4 for which gid_t is an unsigned type.
inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
**********************************************************************
m4/ChangeLog
**********************************************************************
2003-07-23 Jim Meyering <address@hidden>
* lstat.m4, mkstemp.m4, regex.m4, stat.m4: Normalize naming of Sun
operating systems in comments, e.g., SunOS4 -> SunOS 4,
Solaris5.9 -> Solaris 9. From Paul Eggert.
2003-07-18 Paul Eggert <address@hidden>
* jm-macros.m4 (jm_MACROS): Invoke gl_MEMCOLL.
* memcoll.m4: New file, from gnulib.
Based on a patch from Andreas Schwab.
SunOS 4.1.4 and Solaris 2.5.1 lose, too.
SunOS 4.1.x needs it for the declaration of `FILE'.
* iconv.m4 (jm_ICONV): Recommend GNU libiconv.
su doesn't work on Solaris 2.6.
**********************************************************************
doc/ChangeLog
**********************************************************************
2003-07-29 Jim Meyering <address@hidden>
* coreutils.texi (tail invocation): Restore two end-of-sentence words
that were mistakenly removed on 2002-09-13. Reported by Paul Worrall.
2003-07-28 Jim Meyering <address@hidden>
* coreutils.texi (dd invocation): Explain that a SIGUSR1 signal
makes dd give a progress report to stderr.
2003-07-24 Paul Eggert <address@hidden>
* coreutils.texi: Document changes of 2003-07-24.
2003-07-24 Jim Meyering <address@hidden>
* coreutils.texi (su invocation): Use address@hidden', not invalid
address@hidden'.
2003-07-17 Paul Eggert <address@hidden>
* coreutils.texi (expr invocation): Exit status is 2 if the
expression is syntactically invalid, 3 if there is some other error.
This change is for conformance to POSIX.
pgpUHaRaOD0kS.pgp
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- coreutils-5.0.90 released,
Jim Meyering <=