1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-19 18:26:32 +02:00
Commit Graph

25745 Commits

Author SHA1 Message Date
Jim Meyering
a977dbbe78 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.
2009-09-01 07:07:45 +02:00
Jim Meyering
a4e123abd3 maint: revert my stdbuf change: the result didn't even compile
This reverts commit c1e158489d.
2009-08-31 09:44:30 +02:00
Jim Meyering
c1e158489d 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.
2009-08-30 22:34:06 +02:00
Jim Meyering
12a104b45e build: quiet "make check" in src/
* src/Makefile.am (check-duplicate-no-install): Use $(AM_V_GEN).
(check-README): Likewise.  And $(AM_V_at).
2009-08-30 12:22:30 +02:00
Jim Meyering
e3ccc324d3 doc: cp: update note on preserving symlink time stamps
* doc/coreutils.texi (cp invocation): Now, we *do* preserve time
stamps on symlinks, when possible.
2009-08-30 12:02:02 +02:00
Jim Meyering
a10ba58f3c build: update bootstrap from gnulib
* bootstrap: Merge from gnulib.
2009-08-30 12:02:02 +02:00
Pádraig Brady
56300b1dc2 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.
2009-08-30 10:58:13 +01:00
Jim Meyering
0a859a6cb0 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.
2009-08-29 19:19:37 +02:00
Jim Meyering
450df0f26d build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-29 17:30:14 +02:00
Jim Meyering
98ec4beba5 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.
2009-08-29 17:29:45 +02:00
Jim Meyering
6c497c6c2d tests: cp/reflink-auto guard against a pathological $TMPDIR
* tests/cp/reflink-auto: Add quotes.
2009-08-29 17:29:32 +02:00
Pádraig Brady
9e59f8c47c 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
2009-08-29 01:37:05 +01:00
Pádraig Brady
72f98388c3 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.
2009-08-29 00:24:49 +01:00
Pádraig Brady
f296cf4052 stdbuf: fix a small typo in --help output
* src/stdbuf.c (usage): s/then/the/
2009-08-28 23:35:48 +01:00
Eric Blake
359fa92f2a 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.
2009-08-28 12:56:53 -06:00
Eric Blake
31fa922e57 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.
2009-08-28 12:56:51 -06:00
Jim Meyering
59a6ddfca3 maint: ignore only man/*.1, not all *.1 files
* .gitignore: Ignore *.1 only in man/
2009-08-28 14:29:02 +02:00
Jim Meyering
de619c8fa5 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.
2009-08-27 10:18:08 +02:00
Jim Meyering
847359b11d 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.
2009-08-26 18:21:12 +02:00
Jim Meyering
d6639ee63b 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.
2009-08-26 10:06:53 +02:00
Jim Meyering
be8531206b 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.
2009-08-26 09:25:21 +02:00
Jim Meyering
899c1d00fa 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.
2009-08-25 09:21:00 +02:00
Jim Meyering
e2808a3999 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.
2009-08-25 09:21:00 +02:00
Jim Meyering
ddfcccce51 doc: HACKING: mention the new space-only indentation policy 2009-08-25 09:21:00 +02:00
Jim Meyering
1130e181ee 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.
2009-08-25 09:21:00 +02:00
Jim Meyering
5e778f7c8d 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 : $_'
2009-08-25 09:21:00 +02:00
Jim Meyering
2bc0f3caaa 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
2009-08-24 12:44:13 +02:00
Jim Meyering
831acb987e 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.
2009-08-23 22:05:58 +02:00
Jim Meyering
1d651b954f build: update from *public* gnulib
* gnulib: Update submodule to latest.
Kamil Dudka reported that bootstrap was broken.
2009-08-23 10:13:36 +02:00
Jim Meyering
99e607b910 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-22 16:12:26 +02:00
Jim Meyering
04a31ad99d post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2009-08-20 21:48:45 +02:00
Jim Meyering
af1996dde2 version 7.5
* NEWS: Record release date.
v7.5
2009-08-20 21:19:36 +02:00
Jim Meyering
7f242fadfa 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.
2009-08-20 19:47:12 +02:00
Jim Meyering
3db7c2c03c 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
2009-08-20 10:46:22 +02:00
Jim Meyering
a70ac4ef32 tests: make install-C slightly less prone to confusion
* tests/install/install-C: Invoke framework_failure, if necessary.
2009-08-19 17:10:23 +02:00
Jim Meyering
112bccb26b 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.
2009-08-19 08:44:40 +02:00
Jim Meyering
611870a8f3 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-18 21:07:44 +02:00
Giuseppe Scrivano
718b2790c0 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.
2009-08-18 18:40:41 +02:00
Jim Meyering
6f6599a006 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.
2009-08-18 17:53:20 +02:00
Jim Meyering
d25101cc30 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.
2009-08-18 12:16:36 +02:00
Jim Meyering
ea57d46482 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.
2009-08-18 11:02:36 +02:00
Jim Meyering
eca6a4a21a build: suppress warnings due to gcc's new -Wjump-misses-init
* configure.ac: Ignore -Wjump-misses-init violations in remove.c.
2009-08-17 19:37:47 +02:00
Jim Meyering
60d0413fe6 build: update from gnulib
* gnulib: Update submodule to latest.
2009-08-17 19:17:18 +02:00
Jim Meyering
dc1618fbd8 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
2009-08-16 13:54:40 +02:00
Jim Meyering
e4dcb20e83 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.
2009-08-14 21:34:05 +02:00
Jim Meyering
ea5b7124b4 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.
2009-08-14 17:15:50 +02:00
Pádraig Brady
f0a1f0df22 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.
2009-08-14 17:10:53 +02:00
Pádraig Brady
8574c74325 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.
2009-08-14 10:48:07 +01:00
Jim Meyering
11ccbdab27 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.
2009-08-13 17:25:39 +02:00
Pádraig Brady
f43f028652 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.
2009-08-13 16:09:27 +01:00