Pádraig Brady [Sun, 9 Oct 2011 10:25:34 +0000 (11:25 +0100)]
tests: avoid a false failure on systems without inotify
* tests/tail-2/follow-name: Exclude the inotify warning
from the comparison.
Reported by Bruno Haible.
Jim Meyering [Sun, 9 Oct 2011 16:51:53 +0000 (18:51 +0200)]
build: update gnulib to latest to fix MacOS X 10.5 test link failure
Details here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1743
Jim Meyering [Sun, 9 Oct 2011 08:52:52 +0000 (10:52 +0200)]
rm: do not resort to stat'ing very long names even on deficient systems
This change affects only systems that have neither *at function support
nor the /proc/self/fd support required to emulate those *at functions.
* src/remove.c (write_protected_non_symlink): Call faccessat
unconditionally. Thus we no longer need euidaccess_stat, which was
the sole function used here to operate on a full relative file name.
Remove full_name parameter and update caller.
* lib/euidaccess-stat.h: Remove file.
* lib/euidaccess-stat.c: Likewise.
* m4/euidaccess-stat.m4: Likewise.
* po/POTFILES.in: Remove lib/euidaccess-stat.c.
* m4/prereq.m4 (gl_PREREQ): Don't require gl_EUIDACCESS_STAT.
Prompted by a report from Bruno Haible that the rm/deep-2
test was failing on HP-UX 11.31.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1748
Jim Meyering [Sun, 9 Oct 2011 07:28:37 +0000 (09:28 +0200)]
tests: skip rather than failing when perl is not available
* tests/df/total-verify: Use require_perl_, so that this test is
skipped when perl is not available.
* tests/rm/deep-2: Likewise, and fix wording in a comment.
Reported by Bruno Haible.
Jim Meyering [Sat, 8 Oct 2011 17:57:21 +0000 (19:57 +0200)]
tests: avoid tail-2/F-vs-missing failure on NFS
* tests/tail-2/F-vs-missing: This test would fail about 80% of the
time on linux/powerpc when run in an NFS-mounted directory.
Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1727
Jim Meyering [Sat, 8 Oct 2011 15:57:01 +0000 (17:57 +0200)]
tests: avoid ls/slink-acl test failure on Solaris 10
* tests/ls/slink-acl: Use setfacl's "-m user::r" option rather than
less-portable "-m m::r". The latter did not work with Solaris 10's
version of setfacl. Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1737
Jim Meyering [Sat, 8 Oct 2011 15:11:10 +0000 (17:11 +0200)]
tests: avoid false-positive failures on linux/sparc64
* tests/init.cfg (require_strace_): Detect a version of strace
that fails on linux/sparc64 for 64-bit executables. Report and
most of the suggested fix from Bruno Haible:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1728
Bernhard Voelker [Mon, 5 Sep 2011 11:28:20 +0000 (13:28 +0200)]
build: let bootstrap resort to wget for downloading .po files
* bootstrap (download_po_files): Fallback to wget when downloading
the .po files via rsync failed. This is necessary to bootstrap behind
a strict firewall.
Jim Meyering [Wed, 5 Oct 2011 17:32:54 +0000 (19:32 +0200)]
doc: clean up NEWS
* NEWS: Mention when the sort -g infloop bug was introduced and
alphabetize entries. Clarify a sentence in the pwd-improvement entry.
Jim Meyering [Mon, 3 Oct 2011 11:49:47 +0000 (13:49 +0200)]
tests: add a test to exercise today's ls-lL-vs-ACL bug
* tests/ls/slink-acl: New file.
* tests/Makefile.am (TESTS): Add it.
* tests/init.cfg (require_setfacl_): New function.
* gnulib: Update to latest, for file-has-acl changes.
* NEWS (Bug fixes): Mention it.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28538. This
":>k; setfacl -m m::r k; ln -s k s; ls -Log s" should print e.g.,
-rw-r-----+ 1 0 Oct 5 19:22 s
With the ls from coreutils-8.13, it would print this (with "." or
nothing in place of the "+"):
-rw-r-----. 1 0 Oct 5 19:22 s
Jim Meyering [Mon, 3 Oct 2011 09:01:44 +0000 (11:01 +0200)]
build: don't use automake's obsolete AM_C_PROTOTYPES macro
* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove use of AM_C_PROTOTYPES,
now that automake rejects it.
Jim Meyering [Sat, 1 Oct 2011 17:48:17 +0000 (19:48 +0200)]
maint: clean up m4 syntax
* m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS):
Remove unnecessary backslashes and add quotes around multi-line
argument lists.
Markus Duft [Thu, 8 Sep 2011 11:09:27 +0000 (13:09 +0200)]
build: use getgr*_nomembers functions on Interix
Interix provides faster replacements for getgr{gid,nam,ent} where
group member information is not fetched from domain controllers.
This makes 'id' usable on domain controlled interix boxes.
* m4/jm-macros.m4: Check for _nomembers functions.
* src/system.h: Redefine function to _nomembers when available.
Markus Duft [Thu, 8 Sep 2011 09:18:17 +0000 (11:18 +0200)]
build: accommodate missing setgroups on Interix
Add a dummy, non-functional, always-successful replacement setgroups
function, to keep the original code untouched and simple.
* src/chroot.c (setgroups) [! HAVE_SETGROUPS]: Define.
Jim Meyering [Sat, 1 Oct 2011 12:25:54 +0000 (14:25 +0200)]
build: stop distributing gzip'd releases; xz is enough
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
* NEWS (Build-related): Mention that we're dropping .tar.gz.
Jim Meyering [Sat, 1 Oct 2011 12:26:06 +0000 (14:26 +0200)]
build: update gnulib submodule to latest
Pádraig Brady [Sat, 1 Oct 2011 01:35:32 +0000 (02:35 +0100)]
doc: mention the recent ls -L "argetm" fix in NEWS
* NEWS: Mention the bug fix
Pádraig Brady [Sat, 1 Oct 2011 00:47:53 +0000 (01:47 +0100)]
ls: fix output of dangling symlinks colored as target
This is related to commit
b7f2b51c, 2010-01-01,
"ls: fix color of broken symlinks colored as target"
which didn't handle the --dereference case.
The simplest way to reproduce the resultant
erroneous "argetm" is as follows:
$ ln -s /no-such dangle
$ env LS_COLORS=ln=target ls --dereference --color
ls: cannot access dangle: No such file or directory
argetmdangle
This is also an issue with the `tree` utility,
reported here: http://bugs.debian.org/586765
* src/ls.c (print_color_indicator): Move the handling
of 'ln=target' in $LS_COLORS (color_symlink_as_referent == true)
to a higher scope, to handle all cases where type == C_LINK.
* tests/misc/ls-misc: Add a test case for the specific issue,
and 2 further test cases to verify other code paths in this area.
Reported by Jason Glassey.
Jim Meyering [Fri, 30 Sep 2011 18:13:01 +0000 (20:13 +0200)]
ls: avoid reading beyond end of color indicator
At first this looked like a buffer overrun, since there was no test
to ensure that the buffer length was 6. However, since the LS_COLORS
string is NUL-terminated and since settings within it are separated by
":" there was neither the risk of reading beyond end of buffer nor risk
of a false-positive match.
* src/ls.c (print_color_indicator): Use color_symlink_as_referent
rather than manually comparing against "target" again.
* src/system.h (STRNCMP_LIT): Correct description in comment.
Jim Meyering [Wed, 28 Sep 2011 06:07:24 +0000 (08:07 +0200)]
tests: update gnulib to latest, to fix test link failure
Jim Meyering [Tue, 27 Sep 2011 14:32:35 +0000 (16:32 +0200)]
sort: avoid a NaN-induced infloop
These commands would fail to terminate:
yes -- -nan | head -156903 | sort -g > /dev/null
echo nan > F; sort -m -g F F
That can happen with any strtold implementation that includes
uninitialized data in its return value. The problem arises in the
mergefps function when bubble-sorting the two or more lines, each
from one of the input streams being merged: compare(a,b) returns 64,
yet compare(b,a) also returns a positive value. With a broken
comparison function like that, the bubble sort never terminates.
Why do the long-double bit strings corresponding to two identical
"nan" strings not compare equal? Because some parts of the result
are uninitialized and thus depend on the state of the stack.
For more details, see http://bugs.gnu.org/9612.
* src/sort.c (nan_compare): New function.
(general_numcompare): Use it rather than bare memcmp.
Reported by Aaron Denney in http://bugs.debian.org/642557.
* NEWS (Bug fixes): Mention it.
* tests/misc/sort-NaN-infloop: New file.
* tests/Makefile.am (TESTS): Add it.
Jim Meyering [Sat, 24 Sep 2011 11:18:30 +0000 (13:18 +0200)]
build: update gnulib submodule to latest
Jim Meyering [Mon, 19 Sep 2011 18:13:36 +0000 (20:13 +0200)]
maint: avoid new syntax-check failure
Pulling in the latest gnulib triggered a new false-positive
syntax-check failure.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_always-defined_macros):
Exempt remove.c; its definitions of DT_UNKNOWN, DT_DIR and DT_LNK are
harmless.
Bernhard Voelker [Mon, 19 Sep 2011 18:02:22 +0000 (20:02 +0200)]
tests: mention new check-expensive/check-very-expensive in test logs
* tests/init.cfg: (very_expensive_): Mention toplevel make target,
check-very-expensive.
(expensive_): Likewise for check-expensive.
Bernhard Voelker [Mon, 19 Sep 2011 18:00:56 +0000 (20:00 +0200)]
tests: introduce make targets check-expensive and check-very-expensive
* Makefile.am: add shortcuts to run (very) expensive tests.
Use "make check-expensive" to run tests with RUN_EXPENSIVE_TESTS=yes,
use "make check-very-expensive" to run tests with both
RUN_EXPENSIVE_TESTS=yes and RUN_VERY_EXPENSIVE_TESTS=yes.
Non-expensive tests are included in all cases.
Pádraig Brady [Wed, 21 Sep 2011 14:22:52 +0000 (15:22 +0100)]
timeout: handle implicitly created threads
On some systems like glibc on GNU/kFreeBSD, a thread is
implicitly created when timer_settime() is used.
This breaks our scheme to ignore signals we've
sent ourselves.
* src/timeout.c (send_sig): Change the scheme used to
ignore signals we've sent ourselves, to a more robust
but perhaps limited scheme of ignoring all signals of
a certain type after we've sent that signal to the job.
* NEWS: Mention the change in behavior.
Bruno Haible [Mon, 19 Sep 2011 17:24:35 +0000 (19:24 +0200)]
tests: init.sh: support any non-GNU diff
* tests/init.sh (compare): If "diff -c" is supported but "diff -u" is
not, use "diff -c". Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1,
Solaris 8.
Jim Meyering [Mon, 19 Sep 2011 15:10:58 +0000 (17:10 +0200)]
gnulib: update for getcwd fix on systems without openat
This fixes a bug in pwd and all getcwd-using applications (for some
uses: df, readlink, stat) when run from a directory whose absolute name
contains more than PATH_MAX / 3 components. For more details, see
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=
f6fe351fc534ae1
* gnulib: Update.
* NEWS (Improvements): Mention it.
Reuben Thomas [Sat, 17 Sep 2011 15:05:17 +0000 (16:05 +0100)]
md5sum: clarify what is meant by binary/text flag.
src/md5sum.c: Clarify that we are talking about input mode.
doc/coreutils.texi: Ditto.
Jim Meyering [Mon, 19 Sep 2011 08:53:45 +0000 (10:53 +0200)]
tests: cp-parents: don't let a failing chmod go unnoticed
* tests/cp/cp-parents: If somehow a chmod set-up command failed,
subsequent tests would fail in a harder-to-diagnose manner.
Paul Eggert [Sat, 17 Sep 2011 15:53:45 +0000 (08:53 -0700)]
randread: add FIXME comment for RDRAND
* gl/lib/randread.c: Add a FIXME comment suggesting how to improve
performance by using the RDRAND hardware instruction.
Pádraig Brady [Fri, 16 Sep 2011 10:47:35 +0000 (11:47 +0100)]
md5sum: handle BSD reversed format checksums
* src/md5sum.c (split_3): Detect and handle BSD reversed
format checksums.
* tests/misc/md5sum-bsd: Add a new test.
* tests/Makefile.am: Reference new test.
* NEWS: Mention the improvement
Suggested by Rimas Kudelis.
Eric Blake [Tue, 13 Sep 2011 22:07:11 +0000 (16:07 -0600)]
doc: improve description of join's -a option
* src/join.c (usage): Mention that -a adds to the overall output,
rather than replacing the default output.
* THANKS: Update.
Reported by Tomas Volka.
Jim Meyering [Mon, 12 Sep 2011 13:04:32 +0000 (15:04 +0200)]
build: avoid unwarranted failure w/gcc-4.6.1 and --enable-gcc-warnings
* configure.ac (gl_GCC_VERSION_IFELSE): Define new macro.
(WERROR_CFLAGS): With --enable-gcc-warnings, use it to
add -Wsuggest-attribute=pure only with gcc 4.7 or newer.
Jim Meyering [Thu, 8 Sep 2011 20:03:17 +0000 (22:03 +0200)]
doc: fix typo in test script comment
* tests/d_type-check: Fix typo in comment.
Jim Meyering [Thu, 8 Sep 2011 15:23:21 +0000 (17:23 +0200)]
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
Jim Meyering [Thu, 8 Sep 2011 15:04:42 +0000 (17:04 +0200)]
version 8.13
* NEWS: Record release date.
Jim Meyering [Thu, 8 Sep 2011 13:49:42 +0000 (15:49 +0200)]
build: update gnulib submodule to latest
Jim Meyering [Thu, 8 Sep 2011 09:52:55 +0000 (11:52 +0200)]
stat: avoid compilation failure on AIX 7.x
* src/stat.c (USE_STATVFS): Adjust definition so that it is enabled
also on AIX 7.x systems that provide statvfs64 and no statvfs.
[USE_STATVFS && ! STAT_STATVFS && STAT_STATVFS64] (STATFS): Define
to statvfs64 in that precise case.
* m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Adjust the condition
here to match the new one in stat.c, to keep them in sync.
Reported by Bruno Haible. For details, see
http://article.gmane.org/gmane.comp.gnu.coreutils.general/1668
Bernhard Voelker [Wed, 7 Sep 2011 09:58:52 +0000 (11:58 +0200)]
tests: adjust PATH to include /sbin for mkfs-using tests
* tests/init.cfg (require_mkfs_PATH_): New function to test whether mkfs
is in PATH, otherwise adding /sbin to PATH. Needed for distributions
(OpenSuSE, Solaris) in which sudo does not include /sbin in PATH.
* tests/cp/cp-a-selinux: Use require_mkfs_PATH_.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/sparse-fiemap: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/rm/read-only: Likewise.
Jim Meyering [Wed, 7 Sep 2011 09:18:20 +0000 (11:18 +0200)]
tests: avoid false-positive "make check" failure when perl is missing
* doc/Makefile.am (sc-lower-case-var): Skip this test when $(PERL)
is not usable. Reported by Bruno Haible.
Jim Meyering [Tue, 6 Sep 2011 06:02:33 +0000 (08:02 +0200)]
cp: update gnulib to get support for NFSv4 ACLs
* NEWS (Improvements): Mention the cp-vs-NFSv4-ACL improvement we
have inherited via gnulib. For details, see
http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28100
and the following messages in that thread.
* gnulib: Update to latest, for numerous ACL-related improvements.
Bruno Haible [Fri, 2 Sep 2011 08:51:52 +0000 (10:51 +0200)]
tests: init.sh: work also with any non-GNU diff that supports -u
* tests/init.sh: Relax check for diff -u support.
Rather than checking for GNU diff via --version, simply check
for support for -u itself. Useful at least on OpenBSD 4.9.
Jim Meyering [Thu, 1 Sep 2011 21:59:02 +0000 (23:59 +0200)]
tests: remove require-perl script; use function instead
* tests/require-perl: Remove file.
* tests/Makefile.am (EXTRA_DIST): Remove it from this list.
* tests/init.cfg (require_perl_): New function.
* tests/misc/pwd-long: Use the new function, not the file.
* tests/ls/nameless-uid: Likewise.
* tests/misc/sum-sysv: Likewise.
Jim Meyering [Thu, 1 Sep 2011 19:30:10 +0000 (21:30 +0200)]
tests: cut: exercise distro-added multibyte code paths
* tests/misc/cut: Repeat each test using a multibyte locale,
if the configure-time test found such a locale.
Adjust the tests so that they also accept a slightly
different diagnostic that is specific to the MB-patched cut.
Pádraig Brady [Fri, 2 Sep 2011 10:33:42 +0000 (11:33 +0100)]
doc: describe test control variables
* HACKING (Add tests): Mention the variables and default values.
* README-release (Pre-release testing): Mention that setting
the SHELL variable may be required.
Suggested by Bruno Haible.
Pádraig Brady [Thu, 1 Sep 2011 14:50:08 +0000 (15:50 +0100)]
timeout: fixup previous warning fix
* src/timeout.c (settimeout): Fix the previous commit
to test errno rather than the return value.
Pádraig Brady [Thu, 1 Sep 2011 14:43:25 +0000 (15:43 +0100)]
tests: split/l-chunk: avoid a portability issue
* tests/split/l-chunk: Don't use the `test "$var"`
idiom to test that var is set to something as
that's not supported by all shells.
The new style matches the usage is the rest of
the test in any case.
Reported by Bruno Haible on AIX 6.1 and 7.1
Jim Meyering [Thu, 1 Sep 2011 13:11:12 +0000 (15:11 +0200)]
tests: pwd-long: diagnose failure earlier
Without this change, we'd get use-of-uninit value warnings
and harder-to-diagnose failure down the road.
* tests/misc/pwd-long (normalize_to_cwd_relative): Diagnose stat
failure. This failed on AIX 6.1 and 7.1. Reported by Bruno Haible.
Jim Meyering [Thu, 1 Sep 2011 12:45:51 +0000 (14:45 +0200)]
tests: printf-surprise: avoid false-positive failure
* tests/misc/printf-surprise: Also accept a strerror-style string
after the usual 'printf: write error:' diagnostic prefix.
Otherwise, this test would fail on HP-UX 11.
Reported by Bruno Haible.
Bernhard Voelker [Thu, 1 Sep 2011 09:11:06 +0000 (11:11 +0200)]
tests: improve message in 'require_membership_in_two_groups_' function
* tests/init.cfg (require_membership_in_two_groups_): Add quotes
around the suggested groups for the COREUTILS_GROUPS variable.
Jim Meyering [Thu, 1 Sep 2011 10:14:11 +0000 (12:14 +0200)]
tests: misc/printf: accommodate alternate behavior
* tests/misc/printf: Avoid false positive failure on MacOS X 10.5
due to a slightly differing diagnostic. Reported by Bruno Haible.
Jim Meyering [Thu, 1 Sep 2011 10:09:32 +0000 (12:09 +0200)]
tests: invoke via "env printf", rather than using an absolute name
* tests/misc/printf: This results in more concise diagnostics.
Pádraig Brady [Thu, 1 Sep 2011 14:30:18 +0000 (15:30 +0100)]
timeout: suppress a redundant warning on some systems
* src/timeout.c (settimeout): Don't warn about ENOSYS
which is returned on OpenBSD 4.9 at least.
Reported by Bruno Haible
Pádraig Brady [Thu, 1 Sep 2011 14:23:17 +0000 (15:23 +0100)]
stdbuf: fix helper lib identification on some platforms
* src/stdbuf.c (main): Pass the path of `stdbuf` rather than
the command it's running to the search function. This is
significant on platforms without /proc/self/exe
Reported by Bruno Haible
Pádraig Brady [Thu, 1 Sep 2011 14:07:51 +0000 (15:07 +0100)]
build: avoid the use of strsignal() in split
... which is not available on some platforms,
and the replacement currently requires linking
with threading libraries.
* src/split.c (closeout): Remove the call to strsignal()
which is largely redundant anyway as sig2str()
is already used to map number to name in the error.
Reported by Bruno Haible on AIX 6.1 and 7.1
Jim Meyering [Tue, 30 Aug 2011 21:02:28 +0000 (23:02 +0200)]
date: support parsing of ISO-8601-with-"T" dates
Thanks to an improvement in gnulib's parse-datetime module,
commands like this now succeed (output manually indented):
$ ./date -u -d 2004-02-29T16:21:42.33+07:00 +%FT%T.%N%z
2004-02-29T09:21:42.
330000000+0000
* tests/misc/date: Add a test to exercise the new-in-gnulib
parsing of ISO8601-with-"T" dates.
* NEWS (New features): Mention it.
* gnulib: Update, to pull in this parse-datetime improvement.
Pádraig Brady [Tue, 30 Aug 2011 14:09:23 +0000 (15:09 +0100)]
build: heap.c: make possible gnulib candidate c89 compatible
* gl/lib/heap.c: Move declaration to the top of scope.
Reported by Rob McMahon and Wolfgang Steinwender
in relation to "Sun WorkShop 6 update 2 C 5.3 Patch 111679-12
2003/05/18" and "GCC 2.95.3" respectively.
Pádraig Brady [Thu, 25 Aug 2011 10:25:30 +0000 (11:25 +0100)]
timeout: revert signal propagation enhancement
This effectively reverts the unreleased commit
5a647a05
* src/timeout.c (main): Don't propagate signals from the monitored
process, as on Linux /proc/sys/kernel/core_pattern could still
handle them and cause false reports against `timeout`
Jim Meyering [Wed, 24 Aug 2011 08:40:51 +0000 (10:40 +0200)]
maint: rename a test
Lesson: do not include details like "4 million" in a file name.
* tests/rm/many-dir-entries-vs-OOM: Renamed from ...
* tests/rm/4-million-entry-dir: ...this.
* tests/Makefile.am (TESTS): Reflect renaming.
Jim Meyering [Wed, 24 Aug 2011 08:36:25 +0000 (10:36 +0200)]
tests: adjust the new, very expensive rm test to be less expensive
* tests/rm/4-million-entry-dir: Create only 200,000 files, rather
than 4 million. The latter was overkill, and was too likely to
fail due to inode exhaustion. Not everyone is using btrfs yet.
Now that this test doesn't take so long, label it as merely
"expensive", rather than "very expensive". Thanks to
Bernhard Voelker for pointing out the risk of inode exhaustion.
Pádraig Brady [Tue, 23 Aug 2011 23:09:30 +0000 (00:09 +0100)]
pr: fix so that LAST_PAGE is honored with -T
Ever since the LAST_PAGE functionality was added
in commit
ed0923a1, 1996-12-05,
"Apply big patch (patch-20) from Roland Huebner"
it was ignored when -t or -T were specified or
when -l <= 10.
* src/pr.c (print_page): Increment the current page here.
(print_header): Don't increment the current page here.
* tests/pr/pr-tests: Add a test case.
* NEWS: Mention the fix
Reported at http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9347
Erik Auerswald [Sat, 20 Aug 2011 06:12:31 +0000 (08:12 +0200)]
doc: correct typo in yesterday's NEWS entry: 30GB -> 30MB
* NEWS: s/30GB/30MB/
Jim Meyering [Fri, 19 Aug 2011 15:51:45 +0000 (17:51 +0200)]
rm, du, chmod, chown, chgrp: use much less memory for large directories
For details, see the gnulib commit,
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=
47cb657e
* tests/rm/4-million-entry-dir: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
* gnulib: Update to latest to get the required fts fixes.
Bernhard Voelker [Mon, 25 Jul 2011 16:39:28 +0000 (18:39 +0200)]
maint: remove empty statement after jump label
* src/head.c (elide_tail_bytes_pipe): Remove the empty statement, ";"
after a jump label; it is needed only when a declaration follows.
* src/kill.c (main): Likewise.
* src/od.c (main): Likewise.
* src/paste.c (collapse_escapes): Likewise.
* src/printf.c (print_formatted): Likewise.
Paul Eggert [Fri, 12 Aug 2011 08:14:45 +0000 (01:14 -0700)]
pathchk: port to hosts where mbstate_t is replaced
This problem was discovered when trying to build git coreutils on
Solaris 8 sparcv9 with Sun C 5.8: the 3rd argument to mbrlen was
of type int * (a pointer to the gnulib replacement mbstate_t) but
the system mbrlen wants the system mbstate_t *.
* bootstrap.conf (gnulib_modules): Add mbrlen.
* src/pathchk.c (mbrlen, mbstate_t) [!(HAVE_MBRLEN && HAVE_MBSTATE_T)]:
Remove macros, which are wrong now that gnulib supplies
replacements for mbstate_t and mbrlen.
Paul Eggert [Thu, 11 Aug 2011 18:42:03 +0000 (11:42 -0700)]
bootstrap: use latest gnulib bootstrap, gettext
* bootstrap: Sync from gnulib. This removes an obsolescent
gettext.m4 patch, along with some other changes that do not
seem to affect coreutils.
* bootstrap.conf (gnulib_modules): Use gettext, not gettext-h.
Current gnulib gettext seems to work without needing special hacking.
* configure.ac (AM_GNU_GETTEXT_VERSION): Now 0.18.1, not 0.17.
* gnulib: Update to latest.
Jim Meyering [Tue, 9 Aug 2011 08:28:31 +0000 (10:28 +0200)]
maint: use gnulib's new largefile modulue
* bootstrap.conf (gnulib_modules): Add largefile.
This is useful to Mac OS X 10.5 users if/when configure
is generated using autoconf prior to v2.68-80-gdb2f2e0.
* gnulib: Update to latest.
Jim Meyering [Sun, 7 Aug 2011 20:09:42 +0000 (22:09 +0200)]
tests: avoid lack-of-support du test failure on HP-UX 11.31
* tests/du/inaccessible-cwd: Skip this test on systems like HP-UX 11.31
that lack both the *at functions and the /proc/self/fd-based support
we might have used to emulate them. Reported by Bruno Haible in
http://debbugs.gnu.org/8846
Jim Meyering [Thu, 4 Aug 2011 17:31:50 +0000 (19:31 +0200)]
join: with --check-order print offending file name, line number and data
* src/join (g_names): New global (was main's "names").
(main): Update all uses of "names".
(line_no[2]): New globals.
(get_line): Increment after reading each line.
(check_order): Print the standard "file name:line_no: " prefix
as well as the offending line when reporting disorder.
Here is a sample old/new comparison:
-join: file 1 is not in sorted order
+join: in:4: is not sorted: contents-of-line-4
* tests/misc/join: Change the two affected tests to expect
the new diagnostic.
Add new tests for more coverage: mismatch in file 2,
two diagnostics, zero-length out-of-order line.
* NEWS (Improvements): Mention it.
Suggested by David Gast in http://debbugs.gnu.org/9236
Jim Meyering [Thu, 4 Aug 2011 16:46:16 +0000 (18:46 +0200)]
maint: use xcalloc rather than xmalloc+memset (no semantic change)
* src/join.c (init_linep): Use xcalloc, not xmalloc+memset.
Jim Meyering [Mon, 8 Aug 2011 07:26:18 +0000 (09:26 +0200)]
maint: add copyright notice to init.cfg
* tests/init.cfg: Add copyright. Suggested by Stefano Lattarini.
Jim Meyering [Mon, 8 Aug 2011 06:54:52 +0000 (08:54 +0200)]
maint: prevent accidental future use of the old shell function name
This is especially important for an error-handling shell function
like this that is actually called only rarely.
* cfg.mk (sc_prohibit_framework_failure): New rule, to prevent
use of the old name.
Stefano Lattarini [Thu, 4 Aug 2011 18:52:31 +0000 (20:52 +0200)]
tests: complete the renaming framework_failure -> framework_failure_
These changes were mostly mechanical, made by running the
following command:
git grep -lw framework_failure | grep -v ChangeLog \
| xargs perl -pi -e 's/\b(framework_failure)\b/${1}_/'
and then editing init.cfg and `tests/cp/cp-a-selinux' by hand.
* tests/init.cfg (framework_failure): Remove, `framework_failure_'
from init.sh should be used instead in the tests.
Remove now-obsolete "FIXME" comment.
(is_local_dir_, require_strace_, require_membership_in_two_groups_,
require_sparse_support_, skip_if_mcstransd_is_running_,
mkfifo_or_skip_) Use `framework_failure_', not `framework_failure'.
* Many test scripts: Likewise.
Paul Eggert [Mon, 8 Aug 2011 07:29:46 +0000 (00:29 -0700)]
mktemp: stir in enough entropy (Bug#6683)
* gl/lib/tempname.c.diff (gen_tempname_len):
Use x_suffix_len bytes' worth of entropy, not 8 bytes.
Stefano Lattarini [Thu, 4 Aug 2011 08:48:38 +0000 (10:48 +0200)]
tests: remove obsolete 'error_' shell function
* tests/init.cfg (framework_failure, getlimits_): Use 'fatal_'
instead of 'error_'.
(error_): Delete, it's not used anymore (and one is anyway
advised to use 'fatal_' instead).
Update heading comments.
* tests/shell-or-perl (error_): Renamed ...
(fatal_): ... to this, for consistency. Also, add a useful
comment.
Pádraig Brady [Sun, 31 Jul 2011 08:36:41 +0000 (09:36 +0100)]
doc: mention the new mirroring behavior of cp -au
* NEWS: Mention the change in behavior.
* doc/coreutils.texi (cp invocation): Likewise.
Jim Meyering [Sun, 31 Jul 2011 09:23:58 +0000 (11:23 +0200)]
maint: accommodate old-NEWS update
* cfg.mk (old_NEWS_hash): Update, to accommodate 6.12 addition.
Without this change, "make syntax-check" would fail.
Paul Eggert [Sun, 31 Jul 2011 07:21:00 +0000 (00:21 -0700)]
* NEWS: Say that 6.12 preserved ns-resolution timestamps.
Jim Meyering [Wed, 27 Jul 2011 19:48:59 +0000 (21:48 +0200)]
build: require gnulib's fclose module
* bootstrap.conf (gnulib_modules): Explicitly use the fclose module.
This is required, now that gnulib's close module no longer depends
on fclose. Without this module, we would be exposed to fclose bugs
affecting at least glibc 2.13 and FreeBSD.
Reported by Bernhard Voelker. Suggested by Eric Blake.
Jim Meyering [Wed, 27 Jul 2011 20:19:11 +0000 (22:19 +0200)]
build: update gnulib, for "make syntax-check" fix
Without the recent maint.mk fix, "make syntax-check"
would fail like this:
src/dd.c:# define SA_RESETHAND 0
src/ls.c:# define SA_RESTART 0
src/timeout.c:# define SA_RESTART 0
maint.mk: define the above via some gnulib .h file
make: *** [sc_prohibit_always-defined_macros] Error 1
Ivan Sichmann Freitas [Tue, 19 Jul 2011 02:43:19 +0000 (23:43 -0300)]
doc: add a vim indentation example
HACKING: add a vim example showing how to configure it to follow GNU
indentation in coreutils source files.
Pádraig Brady [Wed, 27 Jul 2011 12:22:39 +0000 (13:22 +0100)]
maint: copy: refactor hard link creation
* src/copy.c (create_hard_link): A new function refactored
from existing code.
(copy_internal): Call the new function from all 3 locations
that create hard links.
* tests/cp/same-file: Amend to match the adjusted diagnostic.
Pádraig Brady [Wed, 27 Jul 2011 08:32:39 +0000 (09:32 +0100)]
tests: cp/preserve-link: test all relevant paths
* tests/cp/preserve-link: Add test cases for when a missing
link in the destination tree is encountered first and second.
Also add cases for old and new separate files in the destination
tree, both to make the clobbering behavior explicit, and to
test any changes in this area in future.
Jim Meyering [Tue, 26 Jul 2011 07:24:31 +0000 (09:24 +0200)]
doc: mention cp's dir-permissions fix
* NEWS (Bug fixes): Mention yesterday's dir-permissions fix.
Jim Meyering [Tue, 26 Jul 2011 07:01:44 +0000 (09:01 +0200)]
maint: use consistent style in C and test scripts
* src/copy.c (copy_internal): Adjust formatting style to conform with
guidelines in HACKING: put braces around two one-line "else" blocks.
* tests/cp/existing-perm-dir: Use $(...), not `...`, and
stat rather than ls+cut to get the mode string.
mode=$(stat --p=%A dst/dir)
Paul Eggert [Mon, 25 Jul 2011 20:36:16 +0000 (13:36 -0700)]
cp: don't mishandle existing dir dest permissions (Bug#9170)
* src/copy.c (copy_internal): If we don't create the directory,
then we cannot have omitted permissions. Problem and trivial
fix reported by Eric Lammerts.
* tests/Makefile.am (TESTS): Add cp/existing-perm-dir.
* tests/cp/existing-perm-dir: New file.
Jim Meyering [Mon, 25 Jul 2011 09:31:01 +0000 (11:31 +0200)]
cp -up: preserve all hard links
* src/copy.c (copy_internal): With --update (-u), this function would
return early once it found that the destination is not older than the
source, *without* recording the source-dev/ino--to--dest_name mapping.
That mapping is required in order to preserve src hard links in the
destination tree, so when using cp with --update and --preserve=links
(perhaps via -p or -a), cp could fail to preserve one hard link
per inode when at least one of the hard-linked names already exists
in the destination tree.
Reported by Odd Harry Mannsverk in http://debbugs.gnu.org/8419.
* tests/cp/preserve-link: New file. Exercise the flaw/fix.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Pádraig Brady [Mon, 18 Jul 2011 09:49:17 +0000 (10:49 +0100)]
timeout: support sub-second timeouts
* src/timeout.c (settimeout): A new function to convert
from a floating point duration and call alarm() or
timer_settime() if that's available.
(parse_duration): Return a double rather than unsigned int.
(usage): Mention floating point is supported.
(main): Pass the double to settimeout() rather than
calling alarm() directly with the parsed int.
(cleanup): Likewise.
* doc/coreutils.texi (timeout invocation): Say floating point timeouts
now supported, and mention the caveat with resolution.
* bootstrap.conf: Include the timer-time gnulib module.
* tests/misc/timeout-parameters: Add a test with nanoseconds.
* NEWS: Mention the improvement.
Jim Meyering [Mon, 25 Jul 2011 06:26:06 +0000 (08:26 +0200)]
build: update gnulib to fix a build warning/error in a test program
Jim Meyering [Sun, 24 Jul 2011 20:52:34 +0000 (22:52 +0200)]
df: support partitions larger than 4 TiB on MacOS >= 10.5 & AIX >=5.2
This change derives from improvements to gnulib's fsusage module.
* NEWS (Improvements): df now supports disk partitions larger than
4 TiB on MacOS X 10.5 or newer and on AIX 5.2 or newer.
Alphabetize entries.
* gnulib: Update to latest.
Paul Eggert [Fri, 22 Jul 2011 20:40:03 +0000 (13:40 -0700)]
dd, shred: use fdatasync only if declared
* m4/jm-macros.m4 (coreutils_MACROS): Use fdatasync only if declared.
MacOS X 10.7 has an fdatasync that is not declared, and is rumored to
be ineffective. (Bug#9141)
Mike Frysinger [Wed, 20 Jul 2011 03:59:34 +0000 (23:59 -0400)]
dircolors: add screen.Eterm terminal type
* src/dircolors.hin: Add screen.Eterm.
Reported by Kfir Lavi
Pádraig Brady [Wed, 20 Jul 2011 10:36:36 +0000 (11:36 +0100)]
maint: remove a redundant call to gl_CLOCK_TIME
* m4/jm-macros.m4: Remove gl_CLOCK_TIME as it's already
done by the gettime gnulib module.
Pádraig Brady [Tue, 19 Jul 2011 08:06:37 +0000 (09:06 +0100)]
unexpand: fix misalignment when spaces span a tabstop
The following dropped the space from the first field
printf "1234567 \t1\n" | unexpand -a
Note POSIX says that spaces should not precede tabs.
Also a single trailing space should not be converted
if the next field starts with non blank characters.
So we enforce those rules too, with this change.
* src/unexpand.c (unexpand): Implement as per POSIX rules.
* tests/misc/unexpand: Add tests, and adjust existing
tests as per POSIX rules.
* NEWS: Mention the fix.
Reported by Hallvard B Furuseth
Paul Eggert [Sun, 17 Jul 2011 19:51:56 +0000 (12:51 -0700)]
* NEWS: Mention fix for Bug#9098.
Paul Eggert [Sun, 17 Jul 2011 19:47:22 +0000 (12:47 -0700)]
timeout: add regression test (Bug#9098)
* tests/misc/timeout: Check that 'timeout' is not confused when
starting off with a child.
Paul Eggert [Sat, 16 Jul 2011 19:07:46 +0000 (12:07 -0700)]
timeout: treat seconds counts like 'sleep' does
Treat fractions as a request to round up to the next representable
value, and treat out-of-range values as maximal ones. This is
consistent with how "sleep" works. And this way, "timeout
999999999999999999d FOO" and "timeout 4.5 foo" are more likely to
do what the user wants.
* src/timeout.c: Include c-strtod.h and xstrtod.h, not xstrtol.h.
(apply_time_suffix): Change it to the way sleep.c's time_suffix
does things. Maybe this function (identical in both programs,
other than its name) should be moved to a library?
(parse_duration): Return a maximal value on overflow. Return
unsigned int, not unsigned long. Allow fractions, which round
up to the next integer value.
* tests/misc/timeout-parameters: Adjust tests to match new behavior.
Add a very large number.
Paul Eggert [Sat, 16 Jul 2011 13:03:47 +0000 (06:03 -0700)]
Fix capiTalization in comments.
Paul Eggert [Sat, 16 Jul 2011 12:57:19 +0000 (05:57 -0700)]
* src/timeout.c (main): Use waitpid, not wait (Bug#9098).
Reported by Andreas Schwab.
* src/timeout.c (SA_RESTART): Define to 0 if not defined.