platform/upstream/coreutils.git
12 years agomaint: append many lib/ and m4/ names to .gitignore
Jim Meyering [Tue, 22 Nov 2011 21:36:39 +0000 (22:36 +0100)]
maint: append many lib/ and m4/ names to .gitignore

12 years agobuild: update gnulib submodule to latest for fixed stdalign test
Jim Meyering [Thu, 24 Nov 2011 21:07:37 +0000 (22:07 +0100)]
build: update gnulib submodule to latest for fixed stdalign test

12 years agoscripts: commit-msg: tweak 72-column test to avoid a false-positive
Jim Meyering [Wed, 23 Nov 2011 08:02:51 +0000 (09:02 +0100)]
scripts: commit-msg: tweak 72-column test to avoid a false-positive

* scripts/git-hooks/commit-msg: Don't warn about a line that is
longer than 72 if it is a comment.  Git-generated comments would
occasionally trigger this.

12 years agobuild: update gnulib and tests/init.sh
Jim Meyering [Wed, 23 Nov 2011 07:43:18 +0000 (08:43 +0100)]
build: update gnulib and tests/init.sh

* gnulib: Update.
* tests/init.sh: Update from gnulib.

12 years agobuild: --enable-gcc-warnings: disable some new warnings
Jim Meyering [Tue, 22 Nov 2011 20:45:24 +0000 (21:45 +0100)]
build: --enable-gcc-warnings: disable some new warnings

* configure.ac: Disable some new warning options pulled in via
an update to gnulib's manywarnings module: -Wformat-nonliteral,
-Wunsuffixed-float-constants, -Wdouble-promotion.

12 years agotests: use "compare exp out", not "compare out exp"
Jim Meyering [Tue, 22 Nov 2011 09:08:04 +0000 (10:08 +0100)]
tests: use "compare exp out", not "compare out exp"

Likewise, when an empty file is expected, use "compare /dev/null out",
not "compare out /dev/null". I.e., specify the expected/desired contents
via the first file name.  Prompted by a suggestion from Bruno Haible
in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154

Run these commands:

    git grep -l -E 'compare [^ ]+ exp' \
      |xargs perl -pi -e 's/(compare) (\S+) (exp\S*)/$1 $3 $2/'
    git grep -l -E 'compare [^ ]+ /dev/null' \
      |xargs perl -pi -e 's/(compare) (\S+) (\/dev\/null)/$1 $3 $2/'

* tests/chgrp/no-x: As above.
* tests/chmod/no-x: Likewise.
* tests/chmod/silent: Likewise.
* tests/chmod/thru-dangling: Likewise.
* tests/chown/basic: Likewise.
* tests/chown/deref: Likewise.
* tests/chown/preserve-root: Likewise.
* tests/cp/abuse: Likewise.
* tests/cp/backup-is-src: Likewise.
* tests/cp/cp-a-selinux: Likewise.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/fail-perm: Likewise.
* tests/cp/into-self: Likewise.
* tests/cp/proc-zero-len: Likewise.
* tests/cp/src-base-dot: Likewise.
* tests/cp/thru-dangling: Likewise.
* tests/dd/reblock: Likewise.
* tests/dd/unblock-sync: Likewise.
* tests/du/2g: Likewise.
* tests/du/8gb: Likewise.
* tests/du/basic: Likewise.
* tests/du/bigtime: Likewise.
* tests/du/deref-args: Likewise.
* tests/du/exclude: Likewise.
* tests/du/files0-from-dir: Likewise.
* tests/du/hard-link: Likewise.
* tests/du/inacc-dest: Likewise.
* tests/du/inacc-dir: Likewise.
* tests/du/long-sloop: Likewise.
* tests/du/max-depth: Likewise.
* tests/du/move-dir-while-traversing: Likewise.
* tests/du/no-deref: Likewise.
* tests/du/no-x: Likewise.
* tests/du/one-file-system: Likewise.
* tests/du/slash: Likewise.
* tests/du/trailing-slash: Likewise.
* tests/install/strip-program: Likewise.
* tests/ln/hard-backup: Likewise.
* tests/ls/block-size: Likewise.
* tests/ls/color-clear-to-eol: Likewise.
* tests/ls/color-dtype-dir: Likewise.
* tests/ls/color-norm: Likewise.
* tests/ls/dangle: Likewise.
* tests/ls/dired: Likewise.
* tests/ls/file-type: Likewise.
* tests/ls/follow-slink: Likewise.
* tests/ls/infloop: Likewise.
* tests/ls/m-option: Likewise.
* tests/ls/no-arg: Likewise.
* tests/ls/recursive: Likewise.
* tests/ls/rt-1: Likewise.
* tests/ls/stat-dtype: Likewise.
* tests/ls/stat-failed: Likewise.
* tests/ls/stat-free-symlinks: Likewise.
* tests/ls/x-option: Likewise.
* tests/misc/arch: Likewise.
* tests/misc/cat-buf: Likewise.
* tests/misc/cat-proc: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/csplit: Likewise.
* tests/misc/df-P: Likewise.
* tests/misc/fmt-long-line: Likewise.
* tests/misc/groups-dash: Likewise.
* tests/misc/groups-version: Likewise.
* tests/misc/head-pos: Likewise.
* tests/misc/nl: Likewise.
* tests/misc/od-N: Likewise.
* tests/misc/od-multiple-t: Likewise.
* tests/misc/od-x8: Likewise.
* tests/misc/printf: Likewise.
* tests/misc/printf-hex: Likewise.
* tests/misc/pwd-option: Likewise.
* tests/misc/readlink-fp-loop: Likewise.
* tests/misc/runcon-no-reorder: Likewise.
* tests/misc/seq-long-double: Likewise.
* tests/misc/sort-NaN-infloop: Likewise.
* tests/misc/sort-benchmark-random: Likewise.
* tests/misc/sort-debug-keys: Likewise.
* tests/misc/sort-float: Likewise.
* tests/misc/sort-merge-fdlimit: Likewise.
* tests/misc/sort-unique-segv: Likewise.
* tests/misc/stat-hyphen: Likewise.
* tests/misc/stat-slash: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/misc/sum-sysv: Likewise.
* tests/misc/tac-2-nonseekable: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/misc/tr-case-class: Likewise.
* tests/misc/truncate-fail-diag: Likewise.
* tests/misc/wc-files0: Likewise.
* tests/mkdir/selinux: Likewise.
* tests/mv/backup-dir: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/diag: Likewise.
* tests/mv/dir2dir: Likewise.
* tests/mv/dup-source: Likewise.
* tests/mv/force: Likewise.
* tests/mv/hard-verbose: Likewise.
* tests/mv/i-link-no: Likewise.
* tests/mv/into-self: Likewise.
* tests/mv/into-self-2: Likewise.
* tests/mv/into-self-3: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/perm-1: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/mv/trailing-slash: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/rm/cycle: Likewise.
* tests/rm/dir-no-w: Likewise.
* tests/rm/dir-nonrecur: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/rm/fail-eacces: Likewise.
* tests/rm/i-never: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/isatty: Likewise.
* tests/rm/one-file-system: Likewise.
* tests/rm/rm3: Likewise.
* tests/rm/rm5: Likewise.
* tests/rm/unread2: Likewise.
* tests/rm/v-slash: Likewise.
* tests/sample-test: Likewise.
* tests/split/b-chunk: Likewise.
* tests/split/fail: Likewise.
* tests/split/l-chunk: Likewise.
* tests/split/lines: Likewise.
* tests/split/r-chunk: Likewise.
* tests/split/suffix-length: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/tail-2/follow-name: Likewise.
* tests/tail-2/follow-stdin: Likewise.
* tests/tail-2/pipe-f: Likewise.
* tests/tail-2/pipe-f2: Likewise.
* tests/tail-2/start-middle: Likewise.
* tests/touch/60-seconds: Likewise.
* tests/touch/fail-diag: Likewise.
* tests/touch/not-owner: Likewise.
* tests/touch/relative: Likewise.

12 years agotests: use compare, not "diff", in a few stray tests
Jim Meyering [Tue, 22 Nov 2011 09:18:30 +0000 (10:18 +0100)]
tests: use compare, not "diff", in a few stray tests

* tests/install/basic-1: Use compare, not diff.
* tests/mkdir/p-v: Likewise.
* tests/mv/part-fail: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/touch/not-owner: Likewise.

12 years agomaint: revert "build: update gnulib submodule to latest"
Jim Meyering [Sun, 20 Nov 2011 22:58:13 +0000 (23:58 +0100)]
maint: revert "build: update gnulib submodule to latest"

Don't update to latest from gnulib just yet.
This reverts commit 173f4d9bd628fb771eaeca3d2fef97dcd71fedb8.
In particular, manywarnings is too aggressive.

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Sun, 20 Nov 2011 22:38:03 +0000 (23:38 +0100)]
build: update gnulib submodule to latest

12 years agomaint: make generated THANKS file read-only
Jim Meyering [Sun, 20 Nov 2011 20:33:48 +0000 (21:33 +0100)]
maint: make generated THANKS file read-only

* Makefile.am (THANKS): Make generated file read-only.

12 years agodoc: clarify ln's --help output
Jim Meyering [Sun, 20 Nov 2011 20:18:53 +0000 (21:18 +0100)]
doc: clarify ln's --help output

* src/ln.c (usage): Use TARGET, not "source" in description.
Reported by Michael J Daniel in http://bugs.gnu.org/9896.

12 years agoport to GNU hosts, where getuid and friends can fail
Paul Eggert [Sun, 20 Nov 2011 22:08:33 +0000 (14:08 -0800)]
port to GNU hosts, where getuid and friends can fail

* src/groups.c (main):
* src/install.c (need_copy):
* src/su.c (log_su):
* src/test.c (unary_operator):
* src/whoami.c (main):
Don't assume that getuid and friends always succeed.
This fixes the same problem that we recently fixed with 'id'.

12 years agomaint: avoid gitlog-to-changelog diagnostic about unused entries
Jim Meyering [Sun, 20 Nov 2011 14:34:59 +0000 (15:34 +0100)]
maint: avoid gitlog-to-changelog diagnostic about unused entries

* build-aux/git-log-fix: Comment out two unused entries.
Each of those two entries does indicate an error in a commit log,
but precedes the cut-off date, so has an actual VC'd ChangeLog entry.
I.e., gitlog-to-changelog generates ChangeLog entries since 2008-02,
and these two predate that.
* ChangeLog-2008: Make the indicated correction.

12 years agoln: fix position of --backup values description
Erik Auerswald [Sat, 19 Nov 2011 21:07:29 +0000 (22:07 +0100)]
ln: fix position of --backup values description

* src/ln.c (usage): A paragraph describing interactions of -s
with -L and -P somehow snuck in between the description of the
--backup option and the values used to control it. Fix this by
moving the value description up.

12 years agoscripts: rewrite git commit-msg hook in Perl
Jim Meyering [Fri, 18 Nov 2011 14:33:56 +0000 (15:33 +0100)]
scripts: rewrite git commit-msg hook in Perl

* scripts/git-hooks/commit-msg: Rewrite in perl.
This is still a work in progress in that it hard-codes coreutils-
specific program names and policies that should be easy to selectively
enable or disable without modifying the script.

12 years agosort: clarify wording on -k syntax
Eric Blake [Wed, 16 Nov 2011 17:09:12 +0000 (10:09 -0700)]
sort: clarify wording on -k syntax

* src/sort.c (usage): Use KEYDEF instead of POS, and call out the
specific OPTS that can occur in KEYDEF.
Based on a report by Lars Noodén, http://bugs.gnu.org/10019

12 years agoid: fix bug when euid != ruid
Paul Eggert [Tue, 15 Nov 2011 21:23:24 +0000 (13:23 -0800)]
id: fix bug when euid != ruid

* src/id.c (main): Report an error if no args are given and getuid
fails, because print_full_info needs ruid.  Redo code so that
getuid and friends are invoked only when needed; this makes the
code easier to follow, and is how I found the above bug.

12 years agols: another reword of generic size note
Ruediger Meier [Tue, 15 Nov 2011 18:55:23 +0000 (11:55 -0700)]
ls: another reword of generic size note

* src/system.h (emit_size_note): Use "unit" rather than "suffix",
and move multiplication to example instead of in suffix list.
See additional discussion in Bug#9939.

12 years agoid: tweak comment
Eric Blake [Tue, 15 Nov 2011 18:48:51 +0000 (11:48 -0700)]
id: tweak comment

* src/id.c (main): Replace confusing use of "etc.".

12 years agoid: handle (uid_t) -1 more portably
Paul Eggert [Tue, 15 Nov 2011 17:30:49 +0000 (09:30 -0800)]
id: handle (uid_t) -1 more portably

* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for nonzero errno, rather than having a compile-time
GETID_MAY_FAIL guess.  Suggested by Roland McGrath in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10021#47>.
Also, the old code was incorrect if uid_t was narrower than int.
(print_full_info): Remove unnecessary cast to -1.

12 years agoid: undo previous commit, which was done by mistake
Paul Eggert [Tue, 15 Nov 2011 16:41:16 +0000 (08:41 -0800)]
id: undo previous commit, which was done by mistake

* src/id.c (GETID_MAY_FAIL, main, print_full_info): Undo previous change.

12 years agodoc: update for ISO/IEC 80000-13
Paul Eggert [Tue, 15 Nov 2011 16:20:59 +0000 (08:20 -0800)]
doc: update for ISO/IEC 80000-13

* doc/coreutils.texi (Block size): IEC 60027-2 has been superseded
by ISO/IEC 80000-13, so prefer the newer standard but also mention
the old.  The new standard specifies Zi and Yi, so they are no
longer GNU extensions.  Fix stale URL to BIPM.

2011-11-14  Paul Eggert  <eggert@cs.ucla.edu>

id: handle (uid_t) -1 more portably
* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for negative return values, not for -1.
The old code was incorrect if uid_t was narrower than int,
regardless of whether we were on a GNU or a POSIX platform.
The new code is simpler and doesn't need GETID_MAY_FAIL.
(print_full_info): Remove unnecessary cast to -1.

12 years agoid: fail when getuid, getgid, etc. fail, e.g., on GNU/Hurd
Ludovic Courtès [Sat, 12 Nov 2011 00:25:45 +0000 (01:25 +0100)]
id: fail when getuid, getgid, etc. fail, e.g., on GNU/Hurd

POSIX-conforming getuid, geteuid, etc. functions cannot fail,
but on GNU/Hurd systems and some others, they may.
* src/id.c (main) [__GNU__]: Detect and diagnose any such failure.
* tests/id/gnu-zero-uids: New file.
* tests/Makefile.am (TESTS): Add it to the list.
* tests/init.cfg (require_gnu_): New function.

12 years agotests: avoid rare fp failure in du/move-dir-while-traversing
Nix [Sun, 13 Nov 2011 18:15:10 +0000 (18:15 +0000)]
tests: avoid rare fp failure in du/move-dir-while-traversing

* tests/du/move-dir-while-traversing: Boost the mkdir iteration count
yet again.

12 years agomaint: adjust git hook to allow "copy: ..." on line 1 of commit message
Jim Meyering [Sun, 13 Nov 2011 19:00:08 +0000 (20:00 +0100)]
maint: adjust git hook to allow "copy: ..." on line 1 of commit message

* scripts/git-hooks/commit-msg: Add "copy" to the list of valid
command-name-like summary line prefixes.

12 years agomaint: id, groups: use conforming diagnostics
Jim Meyering [Sun, 13 Nov 2011 09:46:40 +0000 (10:46 +0100)]
maint: id, groups: use conforming diagnostics

* src/groups.c (main): Don't capitalize the first word of diagnostic.
* src/id.c (main): Likewise.
Reported by Ludovic Courtès.

12 years agomaint: avoid new syntax-check failure due to indentation with TABs
Jim Meyering [Sun, 13 Nov 2011 09:39:32 +0000 (10:39 +0100)]
maint: avoid new syntax-check failure due to indentation with TABs

* cfg.mk (tbi_2): Exempt pre-applypatch, since it too is from git.

12 years agomaint: install customized git hooks to keep commit logs consistent
Jim Meyering [Sat, 12 Nov 2011 21:48:12 +0000 (22:48 +0100)]
maint: install customized git hooks to keep commit logs consistent

* bootstrap.conf (buildreq): Copy (with backup) coreutils-supplied
git hooks into .git/hooks, to help keep commit logs normalized.

12 years agomaint: add rule to ensure that our commit hook copies are up to date
Jim Meyering [Sat, 12 Nov 2011 21:23:09 +0000 (22:23 +0100)]
maint: add rule to ensure that our commit hook copies are up to date

* Makefile.am (check-git-hook-script-sync): New rule -- not used
anywhere, because it depends on having very recent git.
* scripts/git-hooks/pre-applypatch: New file.

12 years agomaint: sync pre-commit script with git's
Jim Meyering [Sat, 12 Nov 2011 13:00:18 +0000 (14:00 +0100)]
maint: sync pre-commit script with git's

* scripts/git-hooks/pre-commit (allownonascii): Remove double quotes
around $(...) construct, to make this file identical to git's
sample hook script.

12 years agobuild: update gnulib for fstatat cross-compile improvement
Jim Meyering [Sat, 12 Nov 2011 12:32:30 +0000 (13:32 +0100)]
build: update gnulib for fstatat cross-compile improvement

12 years agomaint: adjust the URL that will appear in the generated announcement
Jim Meyering [Thu, 10 Nov 2011 08:27:17 +0000 (09:27 +0100)]
maint: adjust the URL that will appear in the generated announcement

* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
for the first link listed in the generated announcement.
announce-gen now provides the faster mirror link automatically.

12 years agols: plug a per-argument leak
Jim Meyering [Tue, 8 Nov 2011 18:03:39 +0000 (19:03 +0100)]
ls: plug a per-argument leak

Using ls -l on an SELinux-enabled system would leak one SELinux
context string per non-empty-directory command-line argument.
* src/ls.c (free_ent): New function, factored out of...
(clear_files): ...here.  Use it.
(extract_dirs_from_files): Call free_ent (f), rather than simply
free (f->name).  The latter failed to free the possibly-malloc'd
linkname and scontext members, and thus could leak one of those
strings per command-line argument.
* THANKS.in: Update.
* NEWS (Bug fixes): Mention it.
Reported by Juraj Marko in http://bugzilla.redhat.com/751974.

12 years ago* tests/misc/sort-continue: Port to Fedora 15.
Paul Eggert [Sat, 12 Nov 2011 08:20:01 +0000 (00:20 -0800)]
* tests/misc/sort-continue: Port to Fedora 15.

Redirect with the shell command, not in a separate 'exec'.
Without this patch, Fedora 15 x86-64 /bin/sh (i.e., Bash 4.2.10)
complained about running out of file descriptors in the shell.

12 years ago* tests/ls/block-size: Make it executable.
Paul Eggert [Sat, 12 Nov 2011 08:11:22 +0000 (00:11 -0800)]
* tests/ls/block-size: Make it executable.

12 years ago* src/system.h (emit_size_note): Reword for clarity.
Paul Eggert [Sat, 12 Nov 2011 07:36:47 +0000 (23:36 -0800)]
* src/system.h (emit_size_note): Reword for clarity.

See discussion in Bug#9939.

12 years agols: -k no longer affects -l's file sizes
Paul Eggert [Sat, 12 Nov 2011 07:21:13 +0000 (23:21 -0800)]
ls: -k no longer affects -l's file sizes

This fixes an incompatibility with POSIX 2008 and with BSD.
Problem reported by Abdallah Clark (Bug#9939)
via Alan Curry (Bug#10016).
* NEWS: Document this.
* doc/coreutils.texi (General output formatting): Document the
new -k behavior, and --kibibytes.
* src/ls.c (file_human_output_opts): New static var.
(long_options, usage): Add --kibibytes.
(decode_switches, gobble_file, print_long_format):
Implement the new -k behavior.
* tests/ls/block-size: New file.
* tests/Makefile.am (TESTS): Add it.

12 years agodoc: fix typo in sort description
Eric Blake [Tue, 8 Nov 2011 19:11:39 +0000 (12:11 -0700)]
doc: fix typo in sort description

* doc/coreutils.texi (sort invocation): Fix typo.

12 years agobuild: update gnulib for more openat changes
Jim Meyering [Sat, 5 Nov 2011 19:57:19 +0000 (20:57 +0100)]
build: update gnulib for more openat changes

12 years agobuild: do use fstatat and unlinkat modules, now that they're separate
Jim Meyering [Fri, 4 Nov 2011 19:44:34 +0000 (20:44 +0100)]
build: do use fstatat and unlinkat modules, now that they're separate

* bootstrap.conf (gnulib_modules): Add fstatat and unlinkat.

12 years agobuild: update gnulib to pull in openat module separation changes
Jim Meyering [Fri, 4 Nov 2011 10:34:08 +0000 (11:34 +0100)]
build: update gnulib to pull in openat module separation changes

No semantic change.

12 years agotests: avoid signal issues in timeout-group
Pádraig Brady [Thu, 3 Nov 2011 01:42:43 +0000 (01:42 +0000)]
tests: avoid signal issues in timeout-group

These issues were seen on an OpenSuse 10.3 system
(kernel 2.6.22.5 x86_64, glibc 2.6.1-18, bash updated to 4.2),
and also on a 64 bit SLES system with a 2.6.16 kernel.
Both systems had 2 CPUs.

There were two issues seen.  1. Occasionally the
timeout.cmd shell script would block SIGINT until
the sleep command exited.  2. Much less frequently the
signal handler in the timeout command itself was ignored,
causing SIGALRM to kill the process.

* tests/misc/timeout-group: Detect the above two cases,
and skip rather than fail.  Note only issue 2. causes
a failure unless skipped, but we skip for case 1. also,
for diagnostic purposes.

12 years agotests: fix a race in timeout-group
Pádraig Brady [Thu, 13 Oct 2011 13:58:58 +0000 (14:58 +0100)]
tests: fix a race in timeout-group

This could cause a false failure, or even
an infinite loop in rare circumstances.

* tests/misc/timeout-group: Increase the timeouts
passed to the timeout command, so that they're
effectively not used.  Instead the command termination
is triggered by the kill commands when everything
is in the correct state.

Reported by Bernhard Voelker.

12 years agobuild: adapt to gnulib's recent openat/fchmodat separation
Jim Meyering [Wed, 2 Nov 2011 09:20:11 +0000 (10:20 +0100)]
build: adapt to gnulib's recent openat/fchmodat separation

* gnulib: Update to latest, pulling in the openat/fchmodat separation.
* bootstrap.conf (gnulib_modules): Add fchmodat, now that gnulib
has moved it into its own module.

12 years agomaint: fix git-log typos when generating ChangeLog
Jim Meyering [Mon, 31 Mar 2008 20:39:15 +0000 (22:39 +0200)]
maint: fix git-log typos when generating ChangeLog

* gnulib: Update to latest, for new gitlog-to-changelog.
* Makefile.am (gen-ChangeLog): Use its new --amend=F option.
* build-aux/git-log-fix: New file, with ChangeLog fixes.

12 years agostat: avoid compilation failure with gnulib's new alignof
Jim Meyering [Wed, 2 Nov 2011 08:11:18 +0000 (09:11 +0100)]
stat: avoid compilation failure with gnulib's new alignof

* src/stat.c: Include <stdalign.h>, not "alignof.h" for alignof use.

12 years agoscripts: reject references to long-form bug URLs
Jim Meyering [Tue, 1 Nov 2011 19:54:37 +0000 (20:54 +0100)]
scripts: reject references to long-form bug URLs

* scripts/git-hooks/commit-msg: Require the normalized/shortened
form of bugzilla.redhat.com and bugs.gnu.org bug URLs.

12 years agodoc: date: mention that the hardware clock might not be set
Pádraig Brady [Tue, 1 Nov 2011 17:29:53 +0000 (17:29 +0000)]
doc: date: mention that the hardware clock might not be set

* doc/coreutils.texi (Setting the time): Reorganize slightly
and mention that the hardware clock might need to be explicitly
updated by the user as is the case on Fedora 16 currently.
See http://bugzilla.redhat.com/749516

12 years agobuild: adapt to gnulib's recent openat/fchownat separation
Jim Meyering [Tue, 1 Nov 2011 10:36:51 +0000 (11:36 +0100)]
build: adapt to gnulib's recent openat/fchownat separation

* bootstrap.conf (gnulib_modules): Add fchownat, now that gnulib
has moved it into its own module.
* gnulib: Update to latest.

12 years agobuild: update gnulib for GNUmakefile fix
Jim Meyering [Sun, 30 Oct 2011 21:26:14 +0000 (22:26 +0100)]
build: update gnulib for GNUmakefile fix

12 years agomaint: avoid new "make syntax-check" failure due to stdalign definition
Jim Meyering [Sun, 30 Oct 2011 21:31:17 +0000 (22:31 +0100)]
maint: avoid new "make syntax-check" failure due to stdalign definition

* gl/modules/randread (Depends-on): Add stdalign.
* gl/lib/randread.c: Include <stdalign.h>, so we can ...
[!_STRING_ARCH_unaligned]: remove definition of stdalign.

12 years agotests: update gnulib to latest to avoid FP DST-related test failure
Jim Meyering [Sun, 30 Oct 2011 11:42:55 +0000 (12:42 +0100)]
tests: update gnulib to latest to avoid FP DST-related test failure

Otherwise, "make check" would fail after e.g., a CEST-to-CST
daylight savings transition.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28825

12 years agotests: doc: fix stale comment in new rm/many-dir-entries-vs-OOM
Jim Meyering [Sun, 30 Oct 2011 10:51:45 +0000 (11:51 +0100)]
tests: doc: fix stale comment in new rm/many-dir-entries-vs-OOM

12 years agotests: don't make tail's pipe-f2 test take the full 10 seconds
Jim Meyering [Fri, 28 Oct 2011 16:06:44 +0000 (18:06 +0200)]
tests: don't make tail's pipe-f2 test take the full 10 seconds

* tests/tail-2/pipe-f2: Don't always wait 10 seconds.
Before, this test would always wait 10 seconds.
Now, it stops early when it detects that tail -f has written output.
BTW, the race condition that prompted changing the timeout from 1 second
to 10 was that tail -f could be killed by the timeout before producing
any output.

12 years agodate: reinstate the --iso-8601 (-I) option
Jim Meyering [Thu, 27 Oct 2011 20:02:23 +0000 (22:02 +0200)]
date: reinstate the --iso-8601 (-I) option

We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format.  Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.

12 years agobuild: avoid bootstrap failure when using patch-2.5.8
Jim Meyering [Thu, 27 Oct 2011 17:04:45 +0000 (19:04 +0200)]
build: avoid bootstrap failure when using patch-2.5.8

* gl/modules/tempname.diff: Regenerate to correct bogus offsets
and adjust for 1-line offset.  Eric Blake reported that this
patch failed to apply when using patch-2.5.8.
Note that it applies fine using patch-2.6.1.

12 years agobuild: do not remove definition of ENODATA, after all
Jim Meyering [Tue, 25 Oct 2011 10:31:44 +0000 (12:31 +0200)]
build: do not remove definition of ENODATA, after all

* src/system.h (ENODATA): Restore definition.
gnulib defines it only on native Windows systems, so removing our
definition would have provoked build failure on systems that use it,
like FreeBSD.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795
* gnulib: Update to latest, to get new ENODATA-exempting maint.mk rule.

12 years agodoc: NEWS: correct "bug introduced in ..." version number
Eric Blake [Mon, 24 Oct 2011 14:20:34 +0000 (16:20 +0200)]
doc: NEWS: correct "bug introduced in ..." version number

* NEWS: s/7.0/8.0/

12 years agorm: update gnulib to get an fts fix for Cygwin+NWFS/NcFsd file systems
Jim Meyering [Mon, 24 Oct 2011 08:27:22 +0000 (10:27 +0200)]
rm: update gnulib to get an fts fix for Cygwin+NWFS/NcFsd file systems

* NEWS (Bug fixes): Mention it.
As far as we know, this fix affects only Cygwin with NWFS or NcFsd
file systems.  See these:
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=71f13422f3e634
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739
http://cygwin.com/ml/cygwin/2011-10/msg00365.html
* src/system.h (ENODATA): Remove fall-back definition, now that
gnulib provides one.  Caught by the sc_prohibit_always-defined_macros
syntax-check rule.
Also remove now-irrelevant "Don't use bcopy..." comment.

12 years agomaint: add git hook scripts
Jim Meyering [Thu, 20 Oct 2011 15:26:01 +0000 (17:26 +0200)]
maint: add git hook scripts

We find it worthwhile to use consistent commit summary prefixes.
To that end, the commit-msg script requires that all commits I make
start with "$P: " (where $P is one of ~100 programs in coreutils)
or one of a few other words, like gnulib tests maint doc build.
It allows more than one word, so e.g., "cat tail head: " would also
be accepted.  Pádraig Brady wrote the initial version, with its
72-column and blank-if-present second line checks.
The pre-commit script is the same as the git-supplied sample script,
modulo a bug fix and the "exec 1>&2" redirection.
* scripts/git-hooks/commit-msg: New file.
* scripts/git-hooks/pre-commit: New file.
* scripts/git-hooks/applypatch-msg: New file.  Verbatim from .sample.
* cfg.mk: Exempt two of the new scripts from the no-leading-TABs check,
since they're nearly verbatim from git, and we want to stay in sync.
Exempt the commit-msg script from the no-"fail=0" check.

12 years agotail: with -f, use nanosleep (not inotify) on a GPFS file system
Martial Bornet [Thu, 20 Oct 2011 17:18:09 +0000 (19:18 +0200)]
tail: with -f, use nanosleep (not inotify) on a GPFS file system

Because tail's fremote function did not designate GPFS as
a remote file system type, tail -f would mistakenly attempt
to use inotify, which cannot work with a remote file system.
* src/tail.c (fremote): List GPFS as a remote file system type.
* NEWS (Bug fixes): Mention it.
Reported in http://bugs.debian.org/646022.

12 years agobuild: include man-pages for non-default progs
Mike Frysinger [Thu, 20 Oct 2011 04:54:13 +0000 (00:54 -0400)]
build: include man-pages for non-default progs

At the moment, things like man/arch.1 are not included in the tarball.
This makes perl a requirement if you want to build/install the arch
helper.

* man/Makefile.am (EXTRA_DIST): Add $(NO_INSTALL_PROGS_DEFAULT:%=%.1).

12 years agomaint: tac: prefer "failed to" diagnostic over "cannot"
Jim Meyering [Tue, 18 Oct 2011 12:20:36 +0000 (14:20 +0200)]
maint: tac: prefer "failed to" diagnostic over "cannot"

* src/tac.c: Change wording in diagnostic: "failed to open" seems
clearer than "cannot open".

12 years agotac: do not let failed allocation cause immediate exit
Jim Meyering [Tue, 18 Oct 2011 10:04:02 +0000 (12:04 +0200)]
tac: do not let failed allocation cause immediate exit

* src/tac.c (temp_stream): Don't exit immediately upon failed heap
allocation, here.  That would inhibit processing of any additional
command-line arguments.

12 years agotac: use only one temporary file, with multiple nonseekable inputs
Jim Meyering [Tue, 18 Oct 2011 09:44:39 +0000 (11:44 +0200)]
tac: use only one temporary file, with multiple nonseekable inputs

* src/tac.c (temp_stream): New function, factored out of...
(copy_to_temp): ...here.
(tac_nonseekable): Don't free or fclose, now that we reuse the file.
Suggested by Ambrose Feinstein.
* THANKS.in: Update.

12 years agomaint: make tac.c slightly cleaner
Paul Eggert [Tue, 18 Oct 2011 05:43:58 +0000 (07:43 +0200)]
maint: make tac.c slightly cleaner

* src/tac.c (copy_to_temp): Now that the template string tacXXXXXX
is used in only one place, don't bother using a separate variable.
Also, using three unconditional assignments seems slightly clearer.

12 years agotac: don't leak a file descriptor for each non-seekable input
Jim Meyering [Sun, 16 Oct 2011 10:14:05 +0000 (12:14 +0200)]
tac: don't leak a file descriptor for each non-seekable input

* src/tac.c (tac_nonseekable): Call fclose and free tmp_file after
each successful call to copy_to_temp.

12 years agotac: don't misbehave with multiple non-seekable inputs
Jim Meyering [Sun, 16 Oct 2011 10:07:05 +0000 (12:07 +0200)]
tac: don't misbehave with multiple non-seekable inputs

* src/tac.c (copy_to_temp): Do not reuse the template buffer.
Instead, scribble only on a freshly-xstrdup'd copy each time.
Free that buffer both here, upon failure, and ...
(tac_nonseekable): ...free the buffer in caller, upon success.
* tests/misc/tac-2-nonseekable: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Ambrose Feinstein in http://debbugs.gnu.org/9762.

12 years agomaint: tac: remove sole use of sprintf in favor of filenamecat
Jim Meyering [Sun, 16 Oct 2011 08:35:56 +0000 (10:35 +0200)]
maint: tac: remove sole use of sprintf in favor of filenamecat

* src/tac.c: Include filenamecat.h.
(copy_to_temp): Use filenamecat rather than xmalloc and sprintf.
Move some declarations "down" to point of initialization.

12 years agomaint: speed up make check (vc_exe_in_TESTS)
Pádraig Brady [Mon, 17 Oct 2011 10:20:01 +0000 (11:20 +0100)]
maint: speed up make check (vc_exe_in_TESTS)

* tests/check.mk (vc_exe_in_TESTS): The main change is to
not start a sed process for each file under tests/,
which was taking around 2.5s on a 2.1GHz i3-2310M.
Also adjust the rule to no longer use temporary files.

12 years agomaint: post-release administrivia
Jim Meyering [Wed, 12 Oct 2011 09:57:25 +0000 (11:57 +0200)]
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

12 years agoversion 8.14 v8.14
Jim Meyering [Wed, 12 Oct 2011 09:45:24 +0000 (11:45 +0200)]
version 8.14

* NEWS: Record release date.

12 years agotests: avoid a false failure on systems without inotify
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.

12 years agobuild: update gnulib to latest to fix MacOS X 10.5 test link failure
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

12 years agorm: do not resort to stat'ing very long names even on deficient systems
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

12 years agotests: skip rather than failing when perl is not available
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.

12 years agotests: avoid tail-2/F-vs-missing failure on NFS
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

12 years agotests: avoid ls/slink-acl test failure on Solaris 10
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

12 years agotests: avoid false-positive failures on linux/sparc64
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

12 years agobuild: let bootstrap resort to wget for downloading .po files
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.

12 years agodoc: clean up NEWS
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.

12 years agotests: add a test to exercise today's ls-lL-vs-ACL bug
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

12 years agobuild: don't use automake's obsolete AM_C_PROTOTYPES macro
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.

12 years agomaint: clean up m4 syntax
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.

12 years agobuild: use getgr*_nomembers functions on Interix
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.

12 years agobuild: accommodate missing setgroups on Interix
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.

12 years agobuild: stop distributing gzip'd releases; xz is enough
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.

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 1 Oct 2011 12:26:06 +0000 (14:26 +0200)]
build: update gnulib submodule to latest

12 years agodoc: mention the recent ls -L "argetm" fix in NEWS
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

12 years agols: fix output of dangling symlinks colored as target
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.

12 years agols: avoid reading beyond end of color indicator
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.

12 years agotests: update gnulib to latest, to fix test link failure
Jim Meyering [Wed, 28 Sep 2011 06:07:24 +0000 (08:07 +0200)]
tests: update gnulib to latest, to fix test link failure

12 years agosort: avoid a NaN-induced infloop
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.

12 years agobuild: update gnulib submodule to latest
Jim Meyering [Sat, 24 Sep 2011 11:18:30 +0000 (13:18 +0200)]
build: update gnulib submodule to latest

12 years agomaint: avoid new syntax-check failure
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.

12 years agotests: mention new check-expensive/check-very-expensive in test logs
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.

12 years agotests: introduce make targets check-expensive and check-very-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.

12 years agotimeout: handle implicitly created threads
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.

12 years agotests: init.sh: support any non-GNU diff
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.

12 years agognulib: update for getcwd fix on systems without openat
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.