2012-01-06  Jim Meyering  <meyering@redhat.com>

	version 8.15
	* NEWS: Record release date.

	scripts: allow one-line summary to start with "[Vv]ersion \d"
	* scripts/git-hooks/commit-msg: Do not reject the commit log
	message generated by our automated release-and-tag process.
	(bad_first_line): New function, extracted from...
	(check_msg): ... here.  Use it.

	build: update gnulib submodule to latest

	tests: adjust quoting in expected output to match new gnulib policy
	* tests/misc/xstrtol: Use '...' to match new quoting in most places.
	However, leave `9x' to match the sole comparison against output
	from the quote function, which still uses `...'.
	* tests/misc/sort-merge: Likewise, though here I had to leave
	`...'-quoted output to match output from four tests.
	* tests/pr/pr-tests: Convert a single `...' to '...'.
	* gnulib: Update submodule to latest.

	maint: adjust ChangeLog to reflect earlier df request
	* build-aux/git-log-fix: Credit early reporter.
	* THANKS.in: Add a name.

2012-01-05  Pádraig Brady  <P@draigBrady.com>

	tests: avoid stty icanon issues on some platforms
	* tests/misc/stty: Exclude 'icanon' for the list to check,
	as it's problematic on ppc*|sparc* platforms.

	tests: avoid ulimit issue on bash 3.2 on OS X
	* tests/misc/sort-continue: Perform the glob before
	the ulimit, as it was seen to make the glob fail
	on bash 3.2 on Mac OS X 10.6.8 at least.

2012-01-05  Pádraig Brady  <P@draigBrady.com>

	tests: avoid a false positive due to overflow on Linux/HPPA
	* tests/misc/timeout-parameters: Verify that the timer doesn't
	fire immediately in the problematic range, and avoid overflow
	checks in that case.
	* man/timeout.x: Mention the possible bug.

	Reported by Bruno Haible

2012-01-05  Jim Meyering  <meyering@redhat.com>

	tests: adjust setfacl usage to accommodate Solaris 10
	* cfg.mk (sc_prohibit_short_facl_mode_spec): New rule.
	* tests/cp/acl: Extend setfacl mode spec to have length 3.
	* tests/ls/slink-acl: Likewise.
	* tests/mv/acl: Likewise.
	Report and analysis by Bruno Haible.

2012-01-05  Bruno Haible  <bruno@clisp.org>
	    Jim Meyering  <meyering@redhat.com>

	split: avoid failure due to leftover 'errno' value
	* src/split.c (lines_chunk_split): Fix logic bug that led to
	unwarranted failure of "split -n l/2 /dev/zero" on NetBSD 5.1.
	The same would happen when splitting a growing file, where
	open/lseek-end gives one size, but by the time we read, there
	is more data available.
	(bytes_chunk_extract): Likewise.
	* NEWS (Bug fixes): Mention this.
	* tests/split/l-chunk: The latter case was not exercised.
	Add code to do that.
	Bug introduced with the chunk-selecting feature in v8.7-25-gbe10739.

2012-01-05  Jim Meyering  <meyering@redhat.com>

	doc: README: recommend GNU make to run tests on IRIX 6.5 and Solaris 9
	* README: Document vendor "make check" failure on those two systems.
	Reported by Bruno Haible.

2012-01-04  Jim Meyering  <meyering@redhat.com>

	maint: ignore *.trs files, lib/getopt.h and build-aux/test-driver
	* .gitignore: Also ignore automake's new .trs files and its
	build-aux/test-driver, as well as lib/getopt.h.

2012-01-03  Jim Meyering  <meyering@redhat.com>

	doc: adjust NEWS
	* NEWS (New programs): Move this small section to the top.
	(df): Reword entry, from Pádraig Brady.

2012-01-03  Jim Meyering  <meyering@redhat.com>

	df: work around long-named /dev/disk/by-uuid/... symlinks
	On systems with recent kernel/tools, a symlink from /etc/mtab to
	/proc/mounts, and a by-UUID mount (i.e., soon, nearly everyone),
	you will see something like the following when running "df -hT":
	(this has been truncated to fit in a width-limited ChangeLog file)

	Filesystem                                             Type      Siz...
	rootfs                                                 rootfs     11G
	udev                                                   devtmpfs  3.8G
	tmpfs                                                  tmpfs     774M
	/dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66 ext4       11G
	tmpfs                                                  tmpfs     1.6G
	/dev/sda2                                              ext3      494M
	/dev/sda5                                              ext4       12G
	/dev/sda6                                              ext4      9.9G

	Contrast that with what we're used to seeing (modulo the
	two entries mounted on "/", which is a separate problem):

	Filesystem     Type      Size  Used Avail Use% Mounted on
	rootfs         rootfs     11G  1.9G  8.0G  19% /
	udev           devtmpfs  3.8G     0  3.8G   0% /dev
	tmpfs          tmpfs     774M  376K  774M   1% /run
	/dev/sda3      ext4       11G  1.9G  8.0G  19% /
	tmpfs          tmpfs     1.6G  8.0K  1.6G   1% /run/shm
	/dev/sda2      ext3      494M   78M  392M  17% /boot
	/dev/sda5      ext4       12G  7.6G  3.7G  68% /usr
	/dev/sda6      ext4      9.9G  6.6G  2.8G  71% /var

	When that long /dev/disk/by-uuid/... name is merely a symlink
	to a much shorter (and often more useful) device name like
	"/dev/sda3", and when it's part of a listing of all file systems,
	I would much prefer to see only the latter.  Similarly, when using
	an encrypted root file system, you would see a name like
	/dev/mapper/luks-828fc648-9f30-43d8-a0b1-f7196a2edb66 pointing
	to say, /dev/dm-0, I prefer the shorter name.

	I.e., if I explicitly run
	"df -hT /dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66",
	then, it's fine -- and expected -- to print to the long name.
	It was explicitly given.  However, with no non-option argument,
	df should print the shorter name.  Note that performing this
	translation at a lower level (via a change to gnulib's mountlist.c)
	would make it impossible to distinguish those two cases.

	* src/df.c: Include "canonicalize.h".
	(get_dev): Add a parameter, telling when we're in process-all-
	mount-points mode; update all callers.  When true, resolve
	UUID-suffixed symlinks.
	* NEWS (Changes in behavior): Mention it.
	Reported by Nao Nishijima in http://bugzilla.redhat.com/766461
	and by Dan Jacobson in http://bugs.gnu.org/10363

2012-01-03  Jim Meyering  <meyering@redhat.com>

	tests: adjust realpath test to avoid "make distcheck" failure
	* tests/misc/realpath: Quote lhs of test ... = ..., so that
	when $PWD contains a space (like it does via "make distcheck"),
	the test does not fail

2012-01-03  Pádraig Brady  <P@draigBrady.com>

	realpath: a new program to print the resolved path
	This program is compatible with other realpath(1)
	implementations, and also incorporates relpath like support,
	through the --relative options.  The relpath support
	was suggested by Peng Yu, who also provided an initial
	implemenation of that functionality.

	* AUTHORS: Add my name.
	* NEWS: Mention the new command.
	* README: Likewise.
	* doc/coreutils.texi (realpath invocation): Add realpath info.
	* man/Makefile.am (realpath.1): Add dependency.
	* man/realpath.x: New template.
	* man/.gitignore: Ignore generated man page.
	* po/POTFILES.in: Add src/realpath.c.
	* src/.gitignore: Exclude realpath.
	* src/Makefile.am (EXTRA_PROGRAMS): Add realpath.
	* src/realpath.c: New file.
	* scripts/git-hooks/commit-msg: Add realpath to the list of prefixes.
	* tests/Makefile.am (TESTS): Add misc/realpath.
	* tests/misc/realpath: New file.

2012-01-03  Pádraig Brady  <P@draigBrady.com>

	build: update gnulib for canonicalize_filename_mode improvements
	This is required for the new realpath command.

2012-01-02  Jim Meyering  <meyering@redhat.com>

	build: tail: avoid type/format mismatch warning from gcc
	Without this change, gcc's -Werror=format would complain that
	the '%lx' format requires 'long unsigned int', not 'int'.
	* src/tail.c (fremote): Use a temporary variable.

2012-01-01  Jim Meyering  <meyering@redhat.com>

	tests: also print chmod's --version
	* tests/rm/many-dir-entries-vs-OOM: This test also exercises chmod.

	maint: update all copyright year number ranges
	Run "make update-copyright".

	tests: change copyright year from 2011 to 2012 in sample-test
	This file is special.  We don't want to use a range,
	but merely the current year number.
	* tests/sample-test: s/2011/2012/

2011-12-31  Jim Meyering  <meyering@redhat.com>

	tests: fix a missing-dependency problem
	* tests/check.mk (.built-programs): Depend on src/Makefile.am,
	so that when we add a program, this file is updated, and the new
	program is tested via misc/help-version.  Spotted by Pádraig Brady.

2011-12-30  Jim Meyering  <meyering@redhat.com>

	build: avoid spurious test.c warning with -Wsuggest-attribute=pure
	* src/test.c: Add pragma to suppress gcc-4.6.2's warning that
	"advance" might be candidate for attribute 'pure'.

2011-12-28  Jim Meyering  <meyering@redhat.com>

	tail: avoid theoretically undefined behavior
	* src/tail.c (start_lines): Do not form potentially-invalid address.
	Use safe_read's return value as a pointer offset only after
	ensuring that it is not SAFE_READ_ERROR (size_t)(-1).
	Spotted by coverity.
	Also, move declaration of "p" to be closer to first use.

	tests: also unset _STDBUF_E, _STDBUF_I and _STDBUF_O
	* tests/envvar-check (vars): Add these to the list of envvars we
	ignore: _STDBUF_E, _STDBUF_I, _STDBUF_O, used by libstdbuf.

2011-12-26  Pádraig Brady  <P@draigBrady.com>

	doc: homologize ch{con,grp,mod,own} option descriptions
	* src/chgrp.c (usage): Group associated options together,
	to aid users.  Also minimize the differences between
	individual messages across these four commands, to
	aid translators.
	* src/chmod.c: Likewise.
	* src/chown.c: Likewise.
	* src/chcon.c (usage): Likewise.  Document the
	--dereference option.

	Suggested by Paul Eggert and Jari Aalto

2011-12-26  Jim Meyering  <meyering@redhat.com>

	stat,tail: recognize new FS type: pipefs
	* src/stat.c (human_fstype) [S_MAGIC_PIPEFS]: New case.
	* NEWS (Bug fixes): Mention this.

2011-12-24  Jim Meyering  <meyering@redhat.com>

	doc: stat: clarify that %t and %T expand to the file system type
	* src/stat.c (usage): Mention "file system type", not just "type"
	for %t and %T.  Do not capitalize the first letter of each description.

2011-12-23  Jim Meyering  <meyering@redhat.com>

	tail: with -f, use polling when a file is on an FS of unknown type
	Before, we would use inotify in that case, which would work as long
	as updates were taking place locally, but not at all when remote.
	Move hard-coded list of known remote FS types into a more
	maintainable table in stat.c, alongside the list of FS
	names and magic numbers.  Generate a new is_local_fs_type function.
	* src/Makefile.am (fs-is-local.h): New rule, generated file.
	* src/extract-magic: Revamp to parse local/remote keyword after
	each magic number in src/stat.c's case statements.
	Accept new --local option.
	* src/.gitignore: Ignore the generated fs-is-local.h.
	* src/tail.c [HAVE_INOTIFY]: Include fs-is-local.h.
	(fremote) [HAVE_INOTIFY]: Use the new function in place of
	the switch stmt with hard-coded list of FS types.
	Emit a warning when processing a file on a file system of unknown type.
	* NEWS (Changes in behavior): Mention it.
	Suggested by Sven Breuner.

2011-12-22  Jim Meyering  <meyering@redhat.com>

	doc: update README-release with process to check for new FS magic
	* README-release: Run the Makefile rule that checks for new file
	system magic numbers.

	tail,stat: add support for FhGFS
	* src/stat.c (human_fstype): Add a case: fhgfs, 0x19830326.
	* src/tail.c (fremote): Add S_MAGIC_FHGFS.
	* NEWS (Bug fixes): Update the entry for GPFS to mention FhGFS, too.
	Reported by Sven Breuner.

2011-12-20  Jim Meyering  <meyering@redhat.com>

	doc: improve factor example
	* doc/coreutils.texi (factor invocation): Adjust example to use $(...)
	consistently, not a mix of `...` and $(...).  Separate the computation
	of the product and the actual factorization, so the timing of the
	latter doesn't include the cost of the former.

2011-12-17  Jim Meyering  <meyering@redhat.com>

	build: remove now-useless code from bootstrap.conf
	* bootstrap.conf (bootstrap_epilogue): Remove now-unnecessary,
	snippet that edited gnulib-tests/gnulib.mk.  This snippet was
	rendered unnecessary by commit v8.14-73-g5bf2c0e.

	build: merge in bootstrap changes from gnulib
	* bootstrap: Pull in the combination of gnulib's "bootstrap: detect
	tools required by gnulib-tool" patch and the related fix.

2011-12-15  Paul Eggert  <eggert@cs.ucla.edu>

	du: -x should not count files in other file systems
	This fixes Bug#10293, which I guess was introduced in commit
	95c948b06a dated 2003-10-02.
	* NEWS: Document fix.
	* src/du.c (process_file): Don't count files in different file
	systems if -x is given.
	* tests/du/one-file-system: Test for this bug.

2011-12-13  Paul Eggert  <eggert@cs.ucla.edu>

	doc: document 'touch' and timestamps better
	* doc/coreutils.texi (touch invocation): Explain file timestamps
	better.  Problem reported by Nelson H.F. Beebe (Bug#7999).

2011-12-12  Jim Meyering  <meyering@redhat.com>

	ls: give a more useful diagnostic for a bogus --time-style arg
	* src/ls.c (decode_switches): Replace our use of XARGMATCH
	with open-coded version so that we can give a better diagnostic.
	* tests/ls/time-style-diag: New file.
	* tests/Makefile.am (TESTS): Add it.
	Reported by Dan Jacobson in http://bugs.gnu.org/10253
	with suggestions from Eric Blake and Paul Eggert.

2011-12-09  Jim Meyering  <meyering@redhat.com>

	maint: remove a misleading comment from shred.c
	* src/shred.c: Remove obsolete TODO comment.  The first two and the
	last item were done, adding --recursive (-r) is neither necessary
	nor appropriate, and I don't want to add --interactive.  I don't
	see a need for the others.  Prompted by comments from Amr Ali.

2011-12-08  Jim Meyering  <meyering@redhat.com>
	    Eric Blake  <eblake@redhat.com>

	ls: be responsive to interrupts when color-listing large directories
	Starting with commit adc30a83, when using --color, ls inhibited
	interrupts to avoid corrupting the state of an output terminal.
	However, for very large directories, that inhibition rendered ls
	uninterruptible for too long, including a potentially long period
	even before any output is generated.
	* src/ls.c: Two phases of processing are time-consuming enough that
	they can provoke this: the readdir loop and the printing loop.  The
	printing was supposed to be covered by a call to process_signals in
	(print_name_with_quoting): ... but that call was mistakenly guarded
	by a condition that might be false for many or even all files being
	processed.  Call process_signals unconditionally.
	(print_dir): Also call process_signals in the readdir loop.
	* NEWS (Bug fixes): Mention it.
	Reported by Arkadiusz Miśkiewicz in http://bugs.gnu.org/10243

2011-12-05  Paul Eggert  <eggert@cs.ucla.edu>

	ln: clarify usage of -L, -n, -T
	* src/ln.c (usage): Use clearer wording to describe the -L, -n,
	and -T options (Bug#9896).

	maint: don't assume GNU make \# syntax (fix previous)
	* src/Makefile.am (fs_normalize_perl_subst, fs-magic, fs-kernel-magic):
	Undo previous patch; it missed a \#.
	(fs_normalize_perl_subst): Use \043 rather than \#.
	\043 is portable to all ASCIIish platforms, whereas \# is portable
	only to platforms that are compatible with GNU make (and are
	incompatible with POSIX make).  Porting this to EBCDIC is left as
	an exercise for the reader....

2011-12-05  Jim Meyering  <meyering@redhat.com>

	maint: sort, stat: remove unused parameters
	* src/sort.c (struct thread_args) [is_lo_child]: Remove member.
	(sortlines): Remove unused parameter, "is_lo_child".  Update callers.
	* src/stat.c (out_epoch_sec): Mark unused parameter.
	(do_statfs, do_stat): Remove unused parameter, "terse". Update callers.

2011-12-05  Paul Eggert  <eggert@cs.ucla.edu>

	maint: don't assume GNU make \# syntax
	* src/Makefile.am (fs_normalize_perl_subst): Don't make unportable
	assumption about \# in the right hand side of a macro definition.
	This works with GNU make, but not with POSIX make.
	Problem reported by Basavaraj B (Bug#10220).
	(fs-magic, fs-kernel-magic): Do the #-substitution here instead.

2011-12-04  Jim Meyering  <meyering@redhat.com>

	od,test: address warnings from gcc's -Wjump-misses-init
	* src/test.c (unary_operator): gcc reported that initializations
	in two case statements were skipped.  Enclose in braces.
	* src/od.c (decode_one_format): Likewise.

	maint: remove redundant usage declarations (-Wredundant-decls)
	* src/csplit.c (usage): Remove declaration.
	* src/ls.c (usage): Likewise.
	* src/pr.c (usage): Likewise.

2011-12-03  Jim Meyering  <meyering@redhat.com>

	maint: add missing ":" after "License" in local gnulib module files
	This avoids spurious diagnostics when running our "bootstrap" script.
	* gl/modules/heap: Append colon after "License".
	* gl/modules/randint: Likewise.
	* gl/modules/randperm: Likewise.
	* gl/modules/randread: Likewise.
	Reported by Stefano Lattarini.  Diagnosed by Bruno Haible.

2011-12-01  Eric Blake  <eblake@redhat.com>

	doc: fix list of GNU extension date formats
	I didn't check how long these were documented as GNU extensions,
	nor when they were added by POSIX; but since they are all part
	of POSIX 2008, we no longer need call them out as extensions.

	The next version of POSIX will standardize %s:
	http://austingroupbugs.net/view.php?id=169
	but as that is not out yet, I didn't change %s.

	* doc/coreutils.texi (Time conversion specifiers): %R and %z are
	now POSIX.
	(Date conversion specifiers): Likewise for %F, %g, %G.

2011-12-01  Bernhard Voelker  <mail@bernhard-voelker.de>

	tests: adjust PATH to generally include /sbin and /usr/sbin
	Commit 5eeaca94 added /sbin to the PATH for tests using mkfs. For other
	tests, e.g. tests/cp-fiemap-perf using filefrag, we need /usr/sbin also.
	Add both directories generally for the tests, "since many of us always
	augment our PATH with all of the sbin paths all of the time anyway" (Bob
	in http://lists.gnu.org/archive/html/coreutils/2011-11/msg00107.html).
	The previous commit is hereby obsolete.
	* tests/init.cfg (sanitize_path_): Add /sbin and /usr/sbin to PATH
	unless already included. Needed for tests using admin tools like mkfs
	and filefrag on systems where the user's environment does not have
	these directories in the PATH.
	* tests/init.cfg (require_mkfs_PATH_): Remove obsolete function.
	* tests/cp/cp-a-selinux: Remove require_mkfs_PATH_ call.
	* tests/cp/cp-mv-enotsup-xattr: Likewise.
	* tests/cp/sparse-fiemap: Likewise.
	* tests/mkdir/writable-under-readonly: Likewise.
	* tests/rm/read-only: Likewise.

2011-11-30  Eric Blake  <eblake@redhat.com>

	build: simplify warnings based on last gnulib update
	We no longer need to exclude this warning.

	* configure.ac (WARN_CFLAGS): Gnulib dropped
	-Wunsuffixed-float-constants, as non-portable.

2011-11-30  Eric Blake  <eblake@redhat.com>

	build: update gnulib for syntax-check improvement
	Commit 5b3e538 proved useful enough to migrate to gnulib after
	enhancing it to be more generic, which in turn pointed out that
	commit a2c811db missed an offender.

	* gnulib: Update to latest.
	* cfg.mk (sc_prohibit_reversed_compare_failure): Delete, now that
	gnulib provides it.
	* tests/ls/dangle: Fix last offender.

2011-11-29  Jim Meyering  <meyering@redhat.com>

	build: update gnulib to fix build failure with --enable-gcc-warnings

2011-11-28  Jim Meyering  <meyering@redhat.com>

	build: enable -Wsuggest-attribute=pure|const in lib/,...
	but not in gnulib-tests/.
	* configure.ac (GNULIB_WARN_CFLAGS): Do not exclude
	-Wsuggest-attribute=pure|const, thus enabling these two warning
	options in lib/, since gnulib now toes the line.
	Continue to disable them in gnulib-tests/, since some programs
	there trigger these suggestions and are not worth fixing.

	build: update gnulib for const+pure attributes

2011-11-27  Jim Meyering  <meyering@redhat.com>

	tests: add a syntax check for last week's global change
	Last week I made a global change, commit a2c811db, `tests: use
	"compare exp out", not "compare out exp"', but forgot to add a
	corresponding syntax check rule.  Without that, it is far too
	easy to add a new test or to merge in an old one that would
	be non-conforming.  Obviously this is only a heuristic, since
	it relies on the expected-output file to have a name that starts
	with "exp".
	* cfg.mk (sc_prohibit_reversed_compare_failure): Prohibit use of
	compare with reversed arguments.

	maint: update comment gcc-4.6.2 still botches -Wsuggest-attribute=pure
	* configure.ac: Update the comment on which gcc versions still must
	not use -Wsuggest-attribute=pure option: still required on post-
	Fedora 16 rawhide's 4.6.2 20111027.

2011-11-24  Jim Meyering  <meyering@redhat.com>

	maint: bootstrap: run autopoint and libtoolize *before* gnulib-tool
	* bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
	Run autopoint and libtoolize *before* gnulib-tool.
	After it, run an abbreviated autoreconf, rather than a loop around
	all tools.
	* bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
	and --makefile-name=gnulib.mk.  Remove stray use of $bt.
	* lib/Makefile.am: Initialize all of the following so that
	generated code in gnulib.mk may use += to append to those variables:
	AM_CFLAGS, AM_CPPFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST,
	MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES,
	noinst_LIBRARIES.

	maint: bootstrap: remove some now-unneeded code
	This bootstrap script arose back when gnulib-tool was young.
	Since then, it has seen improvements that render much of this
	script unnecessary.  In particular, it can now make symlinks
	to the files it uses.  Also, I no longer see as much value in
	marking files as read-only via comments.
	* bootstrap (slirp, bt_mark_as_generated): Remove.

	maint: use gnulib's gettext-h, not the gettext module
	* bootstrap.conf (gnulib_modules): Use gnulib's gettext-h, not the
	gettext module.  Not only is gettext-h far smaller (it has far fewer
	dependencies than the gnulib module), but it does not suffer from
	the problem with the gettext module whereby it adds a -I.../intl
	option to compilation flags.  That can provoke warnings, since we
	don't have such a directory.  We used to work around that via a
	hack in bootstrap, but that was ugly and inefficient.

	maint: append many lib/ and m4/ names to .gitignore

	build: update gnulib submodule to latest for fixed stdalign test

2011-11-23  Jim Meyering  <meyering@redhat.com>

	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.

	build: update gnulib and tests/init.sh
	* gnulib: Update.
	* tests/init.sh: Update from gnulib.

	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.

2011-11-22  Jim Meyering  <meyering@redhat.com>

	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.

2011-11-22  Jim Meyering  <meyering@redhat.com>

	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.

2011-11-20  Jim Meyering  <meyering@redhat.com>

	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.

	build: update gnulib submodule to latest

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

	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.

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

	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'.

2011-11-20  Jim Meyering  <meyering@redhat.com>

	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.

2011-11-20  Erik Auerswald  <auerswal@unix-ag.uni-kl.de>

	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.

2011-11-18  Jim Meyering  <meyering@redhat.com>

	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.

2011-11-16  Eric Blake  <eblake@redhat.com>

	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

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

	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.

2011-11-15  Ruediger Meier  <sweet_f_a@gmx.de>

	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.

2011-11-15  Eric Blake  <eblake@redhat.com>

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

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

	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.

	id: undo previous commit, which was done by mistake
	* src/id.c (GETID_MAY_FAIL, main, print_full_info): Undo previous change.

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

	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.

2011-11-14  Ludovic Courtès  <ludo@gnu.org>

	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.

2011-11-13  Nix  <nix@esperi.org.uk>

	tests: avoid rare fp failure in du/move-dir-while-traversing
	* tests/du/move-dir-while-traversing: Boost the mkdir iteration count
	yet again.

2011-11-13  Jim Meyering  <meyering@redhat.com>

	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.

	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.

	maint: avoid new syntax-check failure due to indentation with TABs
	* cfg.mk (tbi_2): Exempt pre-applypatch, since it too is from git.

2011-11-12  Jim Meyering  <meyering@redhat.com>

	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.

	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.

	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.

	build: update gnulib for fstatat cross-compile improvement

	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.

	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.

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

	* 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.

	* tests/ls/block-size: Make it executable.

	* src/system.h (emit_size_note): Reword for clarity.
	See discussion in Bug#9939.

	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.

2011-11-08  Eric Blake  <eblake@redhat.com>

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

2011-11-05  Jim Meyering  <meyering@redhat.com>

	build: update gnulib for more openat changes

2011-11-04  Jim Meyering  <meyering@redhat.com>

	build: do use fstatat and unlinkat modules, now that they're separate
	* bootstrap.conf (gnulib_modules): Add fstatat and unlinkat.

	build: update gnulib to pull in openat module separation changes
	No semantic change.

2011-11-03  Pádraig Brady  <P@draigBrady.com>

	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.

2011-11-03  Pádraig Brady  <P@draigBrady.com>

	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.

2011-11-02  Jim Meyering  <meyering@redhat.com>

	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.

	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.

	stat: avoid compilation failure with gnulib's new alignof
	* src/stat.c: Include <stdalign.h>, not "alignof.h" for alignof use.

	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.

2011-11-01  Pádraig Brady  <P@draigBrady.com>

	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

2011-11-01  Jim Meyering  <meyering@redhat.com>
[--snip--]
