Jim Meyering [Tue, 8 Sep 2009 06:26:22 +0000 (08:26 +0200)]
tail: make the new piped-stdin test as portable as the old one
* src/tail.c (main): Adapt piped-stdin test to use the same isapipe,
test as was used in the preceding POSIXLY_CORRECT condition.
Remove the now-subsumed POSIXLY_CORRECT test.
Reported by Pádraig Brady.
* doc/coreutils.texi (tail invocation): Document this change.
* NEWS (Changes in behavior): Reclassify, clarify.
Pádraig Brady [Tue, 8 Sep 2009 09:00:01 +0000 (10:00 +0100)]
tests: tail-2/assert: reduce risk of race condition
* tests/tail2/assert: This reverts commit
be853120, 25-08-2009,
"tests: tail-2/assert: avoid risk of race condition"
kill -0 doesn't send a signal and so will only confirm that the
background process was forked, which we know already because
we have its pid.
Pádraig Brady [Mon, 7 Sep 2009 22:50:19 +0000 (23:50 +0100)]
tests: address a race condition in misc/cat-buf
* tests/misc/cat-buf: Increase the delay between writes
to decrease the chance that dd will read both at once.
Since the test is inherently racy, print a warning via
skip_test_ rather than failing outright.
Reported by Jim Meyering.
Jim Meyering [Mon, 7 Sep 2009 20:36:05 +0000 (22:36 +0200)]
tail: syntax-only: use "false", rather than equivalent, 0
* src/tail.c (record_open_fd): Initialize "->ignore" to false, not 0.
Jim Meyering [Mon, 7 Sep 2009 20:10:10 +0000 (22:10 +0200)]
tail: ignore -f for piped-stdin, as POSIX requires
* src/tail.c (main): Tailing a pipe "forever" is not useful,
and POSIX specifies that tail ignore the -f when there is no
file argument and stdin is a FIFO or pipe. So we do that.
In addition, GNU tail excludes "-" arguments from the list of files
to tail forever, when the associated file descriptor is connected
to a FIFO or pipe. Before this change, ":|tail -f" would hang.
Reported by Ren Yang and Ulrich Drepper.
* tests/tail-2/pipe-f: Test for this.
* tests/tail-2/pipe-f2: Ensure tail doesn't exit early for a fifo.
* tests/Makefile.am (TESTS): Add these tests.
* NEWS (POSIX conformance): Mention it.
Pádraig Brady [Mon, 7 Sep 2009 16:03:08 +0000 (17:03 +0100)]
tests: tail-2/flush-initial should not rely on stdbuf
* tests/tail-2/flush-initial: stdbuf is not built on all systems.
In any case it's redundant since stdout will automatically be buffered
since we're redirecting to file. So just call tail without using stdbuf.
Jim Meyering [Mon, 7 Sep 2009 18:56:38 +0000 (20:56 +0200)]
tail: don't give up on inotify mode for an already-ignored "-"
* src/tail.c (main): Adjust today's change to honor the
F[i].ignore flag that may have been set in tail_file.
Jim Meyering [Mon, 7 Sep 2009 18:23:03 +0000 (20:23 +0200)]
tests: misc/cat-buf: clean up syntax
* tests/misc/cat-buf: Don't suppress dd's stderr.
Remove useless quotes.
Jim Meyering [Mon, 7 Sep 2009 17:36:21 +0000 (19:36 +0200)]
tests: ls/color-clear-to-eol: append NL to accommodate old sed
* tests/ls/color-clear-to-eol: Some vendor sed programs fail
to operate on lines that are not NL-terminated.
This affects at least Solaris 10's /bin/sed.
Reported by Pádraig Brady.
Jim Meyering [Mon, 7 Sep 2009 09:39:19 +0000 (11:39 +0200)]
tests: tail-2/infloop-1: avoid rare test failure on a busy system
* tests/tail-2/infloop-1: Sleep 3 seconds, not 1, but in increments
of 0.1 second. Before, this test would fail ~1 time in 20 via
"make -j9 check" on a quad-core system.
Correct comment.
Jim Meyering [Mon, 7 Sep 2009 07:23:57 +0000 (09:23 +0200)]
build: update gnulib submodule to latest
Jim Meyering [Mon, 7 Sep 2009 07:23:19 +0000 (09:23 +0200)]
doc: tweak NEWS
* NEWS (dd): Tweak wording.
Two blank lines between sections.
Jim Meyering [Mon, 7 Sep 2009 06:37:08 +0000 (08:37 +0200)]
tail -f: handle "-"/stdin once again
* src/tail.c (main) [HAVE_INOTIFY]: When stdin (i.e., "-", or no args,
but not /dev/stdin) is specified on the command line, don't use inotify.
Reported by Bill Brelsford in <http://bugs.debian.org/545422>.
* tests/tail-2/follow-stdin: New file. Test for this.
* tests/Makefile.am (TESTS): Add the test.
* NEWS (Bug fixes): Mention it.
This bug was introduced in coreutils-7.5 via commit
ae494d4b,
2009-06-02, "tail: use inotify if it is available".
Jim Meyering [Sun, 6 Sep 2009 18:00:14 +0000 (20:00 +0200)]
tests: tail-2/flush-initial: correct race avoidance code
* tests/tail-2/flush-initial: Wait for the file to be nonempty,
not for the process. Based on a suggestion from Pádraig Brady.
Jim Meyering [Sun, 6 Sep 2009 16:35:40 +0000 (18:35 +0200)]
tests: ls-misc: don't let a bogus umask cause test failure
* tests/misc/ls-misc: Set umask to 022. A umask setting permitting
world-write access, e.g., umask o+w, would cause this test to fail.
Report by Mathias Brodala and analysis by Tom Fitzhenry in
<http://bugs.debian.org/544965>.
Jim Meyering [Sun, 6 Sep 2009 07:39:31 +0000 (09:39 +0200)]
tail: flush initial output before possibly blocking
* src/tail.c (main): Flush any output from tail_file,
before calling tail_forever_inotify, which can block.
* tests/tail-2/flush-initial: New file. Test for the bug.
* tests/Makefile.am (TESTS): Add tail-2/flush-initial.
* NEWS (Bug fixes): Mention it.
This bug was introduced in coreutils-7.5 via commit
ae494d4b,
2009-06-02, "tail: use inotify if it is available".
Jim Meyering [Sat, 5 Sep 2009 17:52:16 +0000 (19:52 +0200)]
maint: remove unused file: lib/fdopendir-glibc.c
* lib/fdopendir-glibc.c: Remove unused file.
2009-09-05 Jim Meyering <meyering@redhat.com>
Jim Meyering [Sat, 5 Sep 2009 17:06:31 +0000 (19:06 +0200)]
tests: ls/stat-vs-dirent: avoid spurious test failure
* tests/ls/stat-vs-dirent: Avoid test failure when run from a
directory whose name (or ancestor directory name) starts with ".".
Pádraig Brady [Fri, 4 Sep 2009 21:50:15 +0000 (22:50 +0100)]
doc: make the tail --sleep-interval help less confusing
* src/tail.c (usage): I read "approximately S seconds"
as "approximately 5 seconds" for approximately 5 seconds.
Pádraig Brady [Sat, 5 Sep 2009 16:21:17 +0000 (17:21 +0100)]
maint: remove some tab indentation from copy.c
* src/copy.c (copy_internal): Remove tabs erroneously added
in commit
3346c0af.
Pádraig Brady [Fri, 4 Sep 2009 20:41:30 +0000 (21:41 +0100)]
tests: test old tail -f method even on systems with inotify
* src/tail.c (main): Add an undocumented ---disable-inotify option
to allow disabling inotify.
* tests/tail-2/pid: Run test in both normal and "disable_inotify" modes.
* tests/tail-2/tail-n0f: Likewise.
* tests/tail-2/wait: Likewise.
* tests/tail-2/append-only: Likewise.
Jim Meyering [Sat, 5 Sep 2009 14:28:24 +0000 (16:28 +0200)]
build: update gnulib submodule to latest
Petr Salinger [Sat, 5 Sep 2009 09:15:29 +0000 (11:15 +0200)]
stty: use TAB0, TAB1, and TAB2 only if defined
* src/stty.c (mode_info) [TAB0, TAB1, TAB2]: Guard each
entry with #ifdef. Required for GNU/kFreeBSD.
Reported by Petr Salinger in http://bugs.debian.org/520368.
Eric Blake [Sat, 5 Sep 2009 02:46:01 +0000 (20:46 -0600)]
build: update from gnulib
* gnulib: Update submodule to latest.
Eric Blake [Fri, 4 Sep 2009 19:56:16 +0000 (13:56 -0600)]
ln: add comments related to POSIX 2008
* src/ln.c (ENABLE_HARD_LINK_TO_SYMLINK_WARNING): Delete.
(do_link): Update comments per POSIX; add FIXME for -L, -P.
Eric Blake [Fri, 4 Sep 2009 18:40:39 +0000 (12:40 -0600)]
mv, cp: tweak LINK_FOLLOWS_SYMLINKS logic
* gnulib: Update to latest gnulib.
* src/copy.c (copy_internal): Adjust comment in light of POSIX
2008, and deal with macro now being tri-state.
Petr Salinger [Fri, 4 Sep 2009 16:58:34 +0000 (17:58 +0100)]
tests: fix a tail-2/pid failure on GNU/kFreeBSD
* tests/tail-2/wait: Increase the file name recheck frequency to
fix a failure on systems without inotify and a file timestamp precision
of 1 second (like GNU/kFreeBSD).
Pádraig Brady [Fri, 4 Sep 2009 13:01:42 +0000 (14:01 +0100)]
tests: fix a failure when running tail-2/wait as root
* tests/tail-2/wait: Silently skip a portion of the test
when running as root, rather than failing the whole test.
This regression was introduced with commit
84b5844d, 2009-09-03,
"tests: simplify and fix a race in 2 tail --follow tests".
Mike Frysinger [Thu, 3 Sep 2009 19:31:01 +0000 (15:31 -0400)]
build: fix libcap configure flag handling
* m4/jm-macros.m4 (coreutils_MACROS): The code to handle configure-time
enabling or disabling of libcap support was broken. It would treat any
libcap configure option as --disable-libcap because it doesn't check
$enableval at all. This change makes sure we do the sane thing:
--disable-libcap -> disable and don't run any tests
--enable-libcap -> run tests and fail if not found
default -> run tests and warn if not found
Jim Meyering [Thu, 3 Sep 2009 17:36:34 +0000 (19:36 +0200)]
df: don't fail due to an unreadable argument
* src/df.c (main): If open or fstat fails when we're trying to ensure
that all arg-partitions are automounted, fall back on using stat.
Inspired by the report and patch from Olivier Fourdan in
http://bugzilla.redhat.com/520630.
* NEWS (Bug fixes): Mention it.
* tests/df/unreadable: New test for the above.
* tests/Makefile.am (TESTS): Add df/unreadable.
The bug was introduced in coreutils-7.3 via commit
dbd17157,
2009-04-28, "df: use open(2), not stat, to trigger automounting".
Kamil Dudka [Thu, 3 Sep 2009 12:08:27 +0000 (14:08 +0200)]
doc: install -C: fix bug in the texi documentation
* doc/coreutils.texi: Move the documentation for install --compare (-C)
from the section on fmt to that for install.
Reported by Florian Schlichting.
Pádraig Brady [Wed, 2 Sep 2009 23:39:17 +0000 (00:39 +0100)]
tests: simplify and fix a race in 2 tail --follow tests
* tests/tail-2/pid: Use the timeout command to determine process
longevity, rather than querying /proc/$pid/status.
The latter was racy in any case when inotify is used, as then
tail wakes up periodically even for unchanging files therefore
causing the check for "S (sleeping)" state to fail intermittently.
* tests/tail-2/wait: Likewise.
Ondřej Vašík [Wed, 2 Sep 2009 09:34:27 +0000 (10:34 +0100)]
cp: don't leak resources for each xattr preservation failure
* src/copy.c (copy_reg): Don't return from the function after an
unsuccessful and required preservation of extended attributes.
This resulted in leaking the copy buffer and file descriptors.
* NEWS (Bug fixes): Mention the fix.
The bug was introduced in coreutils-7.1 via commit
0889381c, 2009-01-23,
"cp/mv: add xattr support".
Pádraig Brady [Tue, 1 Sep 2009 11:02:13 +0000 (13:02 +0200)]
chcon, chmod, chgrp, chown, du: report fts_close failure
* src/du.c (du_files): Don't fail silently upon fts_close failure.
* src/chcon.c (process_files): Likewise.
* src/chmod.c (process_files): Likewise.
* src/chown-core.c (chown_files): Likewise.
Jim Meyering [Tue, 1 Sep 2009 09:58:10 +0000 (11:58 +0200)]
build: update from gnulib
* gnulib: Update submodule to latest.
Jim Meyering [Tue, 1 Sep 2009 09:31:14 +0000 (11:31 +0200)]
chcon, chmod, chgrp, chown, du: do not ignore fts_close failure
This is probably never visible, but who knows...
* src/chcon.c (process_files): Don't ignore fts_close failure.
* src/chmod.c (process_files): Likewise.
* src/chown-core.c (chown_files): Likewise.
* src/du.c (du_files): Likewise.
Jim Meyering [Mon, 31 Aug 2009 16:39:41 +0000 (18:39 +0200)]
maint: du: remove unnecessary initialization
* src/du.c (main): Don't set "skip_file" unnecessarily.
Jim Meyering [Mon, 31 Aug 2009 16:26:16 +0000 (18:26 +0200)]
maint: chown, chgrp, chmod, chcon: remove unnecessary initialization
* src/chown-core.c: Include "ignore-value.h".
(change_file_owner): Don't set "ent" only to ignore it.
* src/chcon.c (process_file): Likewise.
* src/chmod.c: Include "ignore-value.h".
(process_file): Don't set "ent" only to ignore it.
After diagnosing root-dev/ino failure, return false immediately:
Now that we don't set "ent" we must be sure not to use it uninitialized,
and there's no point in issuing --verbose-related output in this case.
Jim Meyering [Mon, 31 Aug 2009 15:58:53 +0000 (17:58 +0200)]
maint: shred: remove unnecessary initialization
* src/shred.c (genpattern): Value stored to "n" is never used.
Jim Meyering [Mon, 31 Aug 2009 15:05:46 +0000 (17:05 +0200)]
maint: dd: remove unnecessary initialization
* src/dd.c (skip): Remove set-but-never-used variable, soffset.
Jim Meyering [Mon, 31 Aug 2009 15:01:26 +0000 (17:01 +0200)]
maint: tail: remove unnecessary initialization
* src/tail.c (tail_bytes): Don't compute "diff" twice.
Jim Meyering [Mon, 31 Aug 2009 14:37:36 +0000 (16:37 +0200)]
maint: mbsalign.c: remove unnecessary assignment
* gl/lib/mbsalign.c (mbsalign): Remove assignment, the result of which
is never used.
Pádraig Brady [Mon, 31 Aug 2009 18:28:28 +0000 (19:28 +0100)]
timeout: remove a redundant assignment
* src/timeout.c (main): While keeping argc and argv in
sync may be marginally useful, it is redundant to update argc,
so just remove that to suppress the clang warning.
Pádraig Brady [Mon, 31 Aug 2009 18:18:27 +0000 (19:18 +0100)]
timeout: defensive handling of all wait() errors
* src/timeout.c (main): Handle all possible cases of unexpected
failures from wait(). This was prompted by the clang tool reporting
the possible non-initialization of the status variable.
Jim Meyering [Wed, 2 Jul 2008 16:01:43 +0000 (18:01 +0200)]
ls -i: print consistent inode numbers also for mount points
On most unix- and linux-based kernels, ls -i DIR_CONTAINING_MOUNT_POINT
would print the wrong inode number for any entry that is a mount point.
It would do that by relying on readdir's dirent.d_ino values, while
most readdir implementations return the inode number of the underlying,
inaccessible directory. Thus, it is not consistent with what you'd
get when applying stat to the same entry. This bug led to surprising
results like "ls -i" and "ls -i --color" printing different numbers (ls
must usually "stat" a file to colorize its name). This change makes it
so that on offending systems, ls must stat non-command-line-arguments
for which otherwise it would be able to use "for free" dirent.d_ino
values. Regardless of this change, ls is already required to stat every
command-line argument. Note: versions of GNU ls prior to coreutils-6.0
did not perform the invalid optimization, and hence always printed
correct inode numbers. Thus, for the sake of correctness, ls -i is
forgoing the readdir optimization, for any kernel (including linux!)
with POSIX-nonconforming readdir. Note that currently, only Cygwin has
been agile enough to conform.
* src/ls.c (RELIABLE_D_INO): Define.
(print_dir): Use it.
For plenty of discussion, see this long thread:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14020
This bug was introduced by the 2006-02-26 commit,
33eb3efe:
"In ls, avoid calling stat for --inode (-i), when possible."
* tests/ls/readdir-mountpoint-inode: New test.
* tests/Makefile.am (TESTS): Add it.
* tests/ls/stat-vs-dirent: Don't suppress failure of this test,
now that ls -i is fixed. Though note that it doesn't test well,
since it compares only the always-stat'd command-line arguments.
* NEWS (Bug fixes): Mention it.
Jim Meyering [Mon, 31 Aug 2009 07:44:30 +0000 (09:44 +0200)]
maint: revert my stdbuf change: the result didn't even compile
This reverts commit
c1e158489d88bad418d52ceadf37af0b6f5b2112.
Jim Meyering [Sun, 30 Aug 2009 20:29:19 +0000 (22:29 +0200)]
maint: stdbuf: move a declaration; no-semantic-change
* src/stdbuf.c (set_program_path): Move a declaration down into
the scope where it's used.
Jim Meyering [Sun, 30 Aug 2009 10:22:11 +0000 (12:22 +0200)]
build: quiet "make check" in src/
* src/Makefile.am (check-duplicate-no-install): Use $(AM_V_GEN).
(check-README): Likewise. And $(AM_V_at).
Jim Meyering [Sat, 29 Aug 2009 20:56:48 +0000 (22:56 +0200)]
doc: cp: update note on preserving symlink time stamps
* doc/coreutils.texi (cp invocation): Now, we *do* preserve time
stamps on symlinks, when possible.
Jim Meyering [Sat, 29 Aug 2009 20:18:28 +0000 (22:18 +0200)]
build: update bootstrap from gnulib
* bootstrap: Merge from gnulib.
Pádraig Brady [Sun, 30 Aug 2009 00:27:45 +0000 (01:27 +0100)]
tests: don't misbehave if $TMPDIR contains spaces
* tests/misc/xattr: Add quotes.
* tests/mv/acl: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/leak-fd: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/part-hardlink: Likewise.
* tests/mv/part-rename: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/partition-perm: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
Jim Meyering [Sat, 29 Aug 2009 07:18:45 +0000 (09:18 +0200)]
tests: other-fs-tmpdir: don't misbehave for quote-unfriendly $TMPDIR
* tests/other-fs-tmpdir: Quote uses of variables that might expand
to strings containing e.g., whitespace.
Jim Meyering [Sat, 29 Aug 2009 15:30:14 +0000 (17:30 +0200)]
build: update from gnulib
* gnulib: Update submodule to latest.
Jim Meyering [Sat, 29 Aug 2009 08:52:33 +0000 (10:52 +0200)]
tests: move a coreutils-specific test from maint.mk to Makefile.am
* Makefile.am (distcheck-hook): Make taint-distcheck here, since it's
no longer done via maint.mk.
Jim Meyering [Sat, 29 Aug 2009 06:31:26 +0000 (08:31 +0200)]
tests: cp/reflink-auto guard against a pathological $TMPDIR
* tests/cp/reflink-auto: Add quotes.
Pádraig Brady [Fri, 28 Aug 2009 23:45:15 +0000 (00:45 +0100)]
cp --reflink: preserve attributes on cloned files if asked
* src/copy.c (copy_reg): When cloning only skip the data copying
* tests/cp/reflink-perm: New test to check times and modes copied
* tests/Makefile.am: Reference the new test
* NEWS: Mention the fix
Pádraig Brady [Tue, 25 Aug 2009 23:32:43 +0000 (00:32 +0100)]
cp --reflink: add an "auto" parameter to fall back to a normal copy
* doc/coreutils.texi (cp invocation): Document the new
"auto" and "always" options to --reflink.
* src/copy.c (copy_reg): Fall back to a standard copy
when reflink() is not supported and --reflink=auto specified.
* src/copy.h [struct cp_options] (reflink): Change type s/bool/enum/.
* src/cp.c (usage): Describe the --reflink={always,auto} options
and expand a little on what --reflink does.
(main): parse the new parameters to --reflink and allow all
--sparse options with --reflink=auto.
* src/install.c (cp_option_init): Init the enum instead of bool.
* src/mv.c (cp_option_init): Likewise.
* tests/cp/reflink-auto: A new test for falling back to normal copy.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature.
Pádraig Brady [Wed, 19 Aug 2009 18:24:05 +0000 (19:24 +0100)]
stdbuf: fix a small typo in --help output
* src/stdbuf.c (usage): s/then/the/
Eric Blake [Fri, 28 Aug 2009 17:03:05 +0000 (11:03 -0600)]
build: avoid unused variable warnings on cygwin
* src/copy.c (clone_file, copy_attr_by_fd, copy_attr_by_name):
Mark up unused variables.
* src/remove.c (dirent_inode_sort_may_be_useful): Likewise.
Eric Blake [Fri, 28 Aug 2009 16:59:16 +0000 (10:59 -0600)]
dd: detect closed stderr
* src/dd.c (maybe_close_stdout): Always flush stderr; regression
introduced in commit
381e69ea.
* tests/misc/close-stdout (p): Use consistent style.
* tests/dd/stderr: New test, borrowing from misc/close-stdout.
* tests/Makefile.am (TESTS): Run it.
* NEWS: Mention this.
Jim Meyering [Fri, 28 Aug 2009 12:29:02 +0000 (14:29 +0200)]
maint: ignore only man/*.1, not all *.1 files
* .gitignore: Ignore *.1 only in man/
Jim Meyering [Thu, 27 Aug 2009 08:17:55 +0000 (10:17 +0200)]
build: prefix a few rules with $(AM_V_GEN)
* Makefile.am (.version, dist-hook, gen-ChangeLog): Use $(AM_V_GEN)
and $(AM_V_at), so that automake's silent-rules option (make V=1/V=0)
now controls whether the commands are printed at build time.
(THANKS-to-translators, check-ls-dircolors): Likewise.
Jim Meyering [Wed, 26 Aug 2009 16:20:55 +0000 (18:20 +0200)]
build: stop earlier if touching ChangeLog fails
* bootstrap.conf: Exit right away if touching ChangeLog fails.
Otherwise, the touch failure message is buried under configure output.
Jim Meyering [Wed, 26 Aug 2009 08:06:53 +0000 (10:06 +0200)]
tests: mkdir/selinux: avoid spurious failure on some SELinux systems
* tests/test-lib.sh (require_selinux_enforcing_): New function.
* tests/mkdir/selinux: Use it.
Otherwise, this test would fail on Rawhide with SELinux disabled.
Jim Meyering [Tue, 25 Aug 2009 18:43:13 +0000 (20:43 +0200)]
tests: tail-2/assert: avoid risk of race condition
* tests/tail-2/assert: Avoid spurious failure due to race condition.
Rather than sleeping for 1 second and crossing fingers,
wait explicitly for backgrounded tail process to start.
Otherwise, this test would fail under heavy load.
Jim Meyering [Sun, 14 Jun 2009 12:21:02 +0000 (14:21 +0200)]
maint: ensure we don't embed Emacs indent-tabs-mode setting lines
Now that we prohibit indentation via TABs, there's no need for
Emacs indent-tabs-mode setting lines, so prohibit those, too.
* cfg.mk (sc_prohibit_emacs__indent_tabs_mode__setting): New rule.
Jim Meyering [Fri, 27 Feb 2009 16:15:43 +0000 (17:15 +0100)]
maint: remove Local Variables: indent-tabs-mode: nil from all sources
* src/getlimits.c: Likewise.
* src/group-list.c: Likewise.
* src/groups.c: Likewise.
* src/mktemp.c: Likewise.
* src/setuidgid.c: Likewise.
* src/stdbuf.c: Likewise.
* src/timeout.c: Likewise.
* src/truncate.c: Likewise.
* gl/lib/mbsalign.c: Likewise.
* tests/test-lib.sh: Likewise.
* bootstrap: Likewise.
* README-hacking: Likewise.
Jim Meyering [Fri, 27 Feb 2009 16:10:19 +0000 (17:10 +0100)]
doc: HACKING: mention the new space-only indentation policy
Jim Meyering [Fri, 27 Feb 2009 16:32:19 +0000 (17:32 +0100)]
maint: teach "make syntax-check" the space-only indentation rule
* cfg.mk (sc_prohibit_tab_based_indentation): New rule.
* .x-sc_prohibit_tab_based_indentation: New file.
* Makefile.am (syntax_check_exceptions): Add file,
.x-sc_prohibit_tab_based_indentation.
Jim Meyering [Sat, 22 Aug 2009 16:56:06 +0000 (18:56 +0200)]
global: convert indentation-TABs to spaces
Transformed via this shell code:
t=$'\t'
git ls-files \
| grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
| grep -vE 'tests/pr/|help2man' \
| xargs grep -lE "^ *$t" \
| xargs perl -MText::Tabs -ni -le \
'$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
Jim Meyering [Mon, 24 Aug 2009 06:21:47 +0000 (08:21 +0200)]
cp: ignore obscure failure to preserve symlink time stamps,
...when run on a kernel older than what was implied by headers and
libraries tested at configure time.
* src/copy.c (utimens_symlink): Ignore failure when errno == ENOSYS.
* NEWS (Bug fixes): Mention it.
Reported by Todd Zullinger and Kamil Dudka.
Details in this thread:
http://thread.gmane.org/gmane.linux.redhat.fedora.devel/119834
Jim Meyering [Sun, 23 Aug 2009 20:02:12 +0000 (22:02 +0200)]
tests: skip (don't fail) a cp test, upon mount-related failure
* tests/cp/cp-mv-enotsup-xattr: Upon a set-up failiure, rather than
failing the test with a "framework failure" diagnostic, just skip it.
Russell Whitaker reported that this test failed on slackware.
Jim Meyering [Sun, 23 Aug 2009 08:13:36 +0000 (10:13 +0200)]
build: update from *public* gnulib
* gnulib: Update submodule to latest.
Kamil Dudka reported that bootstrap was broken.
Jim Meyering [Fri, 21 Aug 2009 07:59:10 +0000 (09:59 +0200)]
build: update from gnulib
* gnulib: Update submodule to latest.
Jim Meyering [Thu, 20 Aug 2009 19:48:45 +0000 (21:48 +0200)]
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, 20 Aug 2009 19:19:36 +0000 (21:19 +0200)]
version 7.5
* NEWS: Record release date.
Jim Meyering [Thu, 20 Aug 2009 16:27:07 +0000 (18:27 +0200)]
tests: skip the stdbuf tests when the abs build directory name is bogus
* tests/misc/stdbuf: Avoid spurious failure when the directory name
from which we'd set LD_PRELOAD contains unsafe characters.
Jim Meyering [Thu, 20 Aug 2009 08:36:30 +0000 (10:36 +0200)]
install: avoid a portability bug when compiling with non-gcc
* src/install.c (extra_mode): Be careful to return only a 0 or 1
value, since this is a "bool" function, and there are still some
compilers for which this is necessary. Without this change,
Bernhard Voelker reported that the Forte Developer 7 C 5.4 2002/03/09
compiler would produce a malfunctioning "install" binary. Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17710/focus=17760
Jim Meyering [Wed, 19 Aug 2009 15:10:23 +0000 (17:10 +0200)]
tests: make install-C slightly less prone to confusion
* tests/install/install-C: Invoke framework_failure, if necessary.
Jim Meyering [Wed, 19 Aug 2009 06:44:17 +0000 (08:44 +0200)]
build: avoid "make dist" failure in man/
Now that "make check" no longer builds programs like arch, ...
* src/Makefile.am (dist-hook): Depend on $(all_programs), so that the
subsequent build in man/ doesn't fail due to lack of a program like
arch that is not going to be installed.
Jim Meyering [Tue, 18 Aug 2009 19:07:44 +0000 (21:07 +0200)]
build: update from gnulib
* gnulib: Update submodule to latest.
Giuseppe Scrivano [Tue, 18 Aug 2009 10:22:37 +0000 (12:22 +0200)]
nl: deprecate --page-increment in favor of --line-increment
* NEWS: Mention the change.
* doc/coreutils.texi: Document the new --line-increment option.
* src/nl.c (struct option): Add --line-increment,
(usage): Describe it,
(main): Use it.
Jim Meyering [Tue, 18 Aug 2009 15:53:20 +0000 (17:53 +0200)]
tests: stdbuf: fix a bug in test script
* tests/misc/stdbuf: Use skip_test_ only after it's defined.
Reported by Berhnard Voelker.
(sc_check-AUTHORS): Rename rule from check-AUTHORS.
Jim Meyering [Tue, 18 Aug 2009 10:12:21 +0000 (12:12 +0200)]
build: perform check-AUTHORS via syntax-check, not via "make check"
* src/Makefile.am (check): Don't depend on check-AUTHORS.
That check fails on systems for which a program like stdbuf is
not built. Instead, move this check to "make syntax-check".
(sc_check-AUTHORS): Rename rule from check-AUTHORS.
* cfg.mk (sc_check-AUTHORS): New rule.
Reported by Berhnard Voelker.
Jim Meyering [Tue, 18 Aug 2009 09:01:00 +0000 (11:01 +0200)]
sort: use more portable initialization syntax
* src/sort.c (find_unit_order): Spell out 256-element static
initializer, rather than relying on C99 syntax.
Required for Forte Developer 7 C 5.4 2002/03/09 on Solaris 10.
Reported by Bernhard Voelker.
Jim Meyering [Mon, 17 Aug 2009 17:37:47 +0000 (19:37 +0200)]
build: suppress warnings due to gcc's new -Wjump-misses-init
* configure.ac: Ignore -Wjump-misses-init violations in remove.c.
Jim Meyering [Mon, 17 Aug 2009 17:17:18 +0000 (19:17 +0200)]
build: update from gnulib
* gnulib: Update submodule to latest.
Jim Meyering [Sun, 16 Aug 2009 11:52:47 +0000 (13:52 +0200)]
tests: tail-2/append-only: don't discard stderr
* tests/tail-2/append-only: Don't discard a diagnostic that
may help explain why this test fails for some. Details in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17621/focus=17641
Jim Meyering [Fri, 14 Aug 2009 19:34:05 +0000 (21:34 +0200)]
tests: skip the misc/stdbuf test if stdbuf was not built
* tests/misc/stdbuf: Skip this test when stdbuf is not built.
Reported by Eric Blake.
Jim Meyering [Thu, 13 Aug 2009 06:37:37 +0000 (08:37 +0200)]
build: use gnulib's getopt-gnu module (getopt is now deprecated)
* bootstrap.conf (gnulib_modules): Gnulib's getopt module is now
deprecated; use the new, preferred name, getopt-gnu.
* gnulib: Update to latest.
Pádraig Brady [Thu, 13 Aug 2009 09:39:10 +0000 (10:39 +0100)]
cp,mv: fix issues with preserving timestamps of copied symlinks
* src/copy.c (copy_internal): On systems without utimensat don't
use utimens on a symlink, as that would dereference the symlink.
* tests/cp/abuse: To work around possible attribute preservation
failures breaking the test, use cp -dR rather than cp -a.
Pádraig Brady [Thu, 13 Aug 2009 16:25:09 +0000 (17:25 +0100)]
doc: clarify the cp --reflink NEWS
* NEWS: Remove the description associated with the removed
experimental code which unconditionally tried to reflink() on copy.
Also clarify where --reflink works exactly.
Jim Meyering [Mon, 10 Aug 2009 07:28:45 +0000 (09:28 +0200)]
tests: raise ulimit virt-mem limit to avoid new failure
* tests/cp/link-heap: Raise limit from 16MB to ~20MB,
to avoid spurious failure on rawhide.
Pádraig Brady [Wed, 12 Aug 2009 18:01:56 +0000 (19:01 +0100)]
tail: fix tail -f failure when inotify used
* src/tail.c (tail_forever_inotify): Remove the redundant and
incorrect error check of the return from inotify_add_watch().
Also initialize the wd member of each File_spec to an invalid value.
Reported by C de-Avillez.
Pádraig Brady [Thu, 13 Aug 2009 13:37:43 +0000 (14:37 +0100)]
dd: fix a signal handling race
* src/dd.c (main): Install the signal handlers at startup
rather than just before the copy starts. In this way signals
received before the copy (like during a slow truncate for e.g.)
will be deferred and handled consistently.
* THANKS: Add Bernhard's email address.
* NEWS: Mention the fix.
Reported by Bernhard Voelker.
Pádraig Brady [Wed, 12 Aug 2009 18:46:27 +0000 (19:46 +0100)]
tests: improve one of the tail --pid tests
* tests/tail-2/pid: Speed up the test by specifying a
timeout of 100ms rather than the default 1s. Also
skip the test instead of failing in the unlikely case
were the pid required to be missing pid is present.
Jim Meyering [Mon, 10 Aug 2009 06:11:33 +0000 (08:11 +0200)]
nl, pinky: replace uses of strcat
* src/nl.c (main): Avoid strcat, on principle. Use stpcpy instead.
* src/pinky.c (print_long_entry): Likewise.
Jim Meyering [Sun, 9 Aug 2009 20:16:04 +0000 (22:16 +0200)]
build: update from gnulib, for HOST_NAME_MAX on solaris 10
* gnulib: Update submodule to latest.
Giuseppe Scrivano [Sat, 1 Aug 2009 17:36:48 +0000 (19:36 +0200)]
cp: accept the --reflink option
* NEWS: Mention it.
* doc/coreutils.texi (cp invocation): Describe it.
* src/copy.h (struct cp_options) [reflink]: New member.
* src/copy.c (usage): Describe it.
(copy_reg): If reflink is true try to clone the file.
(main): Check for --reflink.
(cp_option_init): Initialize the new member.
* src/install.c (cp_option_init): Initialize the new member.
* src/mv.c (cp_option_init): Likewise.
* tests/cp/sparse: Add a new test case.
Jim Meyering [Fri, 7 Aug 2009 14:21:35 +0000 (16:21 +0200)]
dd: preserve semantics of O_DIRECT even for final block
* src/dd.c: Include "ignore-value.h"
(iwrite): When disabling O_DIRECT, try to compensate
via POSIX_FADV_DONTNEED and fsync.
Suggested by Eric Sandeen.