12010-01-13  Jim Meyering  <meyering@redhat.com>
2
3	version 8.4
4	* NEWS: Record release date.
5
62010-01-13  Pádraig Brady  <P@draigBrady.com>
7
8	tests: avoid spurious failures on older shells
9	* tests/tail-2/inotify-hash-abuse: Use kill rather than wait
10	to determine if the tail process is still running.
11	* tests/tail-2/inotify-hash-abuse2: Ditto.
12
132010-01-13  Jim Meyering  <meyering@redhat.com>
14
15	tests: work around spurious test failure with OpenBSD4.5's /bin/sh
16	* tests/ls/infloop: OpenBSD4.5's /bin/sh would mistakenly include
17	"set -x"-output in an application's stderr stream when stderr is
18	redirected before stdout.  This was causing one spurious test failure.
19	The work-around: redirect stdout first.
20	Reported by Nelson Beebe.
21
22	tests: don't silently skip the sort-version tests
23	* tests/misc/sort-version: Don't use <<- and indented here-doc contents.
24	s/<<-/<</ and unindent the here-document contents.  Otherwise,
25	bash would ignore the indented delimiter and use EOF, thus silently
26	skipping this test.  OpenBSD5.4's shell reported the failure:
27	  $ printf 'cat<<-x\n foo\n x\n'|sh
28	  sh: <stdin>[4]: here document `x' unclosed
29	  [Exit 1]
30	by contrast, bash warns but still exits successfully:
31	  $ printf 'cat<<-x\n foo\n x\n'|bash && echo you lose
32	  bash: line 3: warning: here-document at line 1 delimited by \
33	    end-of-file (wanted `x')
34	   foo
35	   x
36	  you lose
37
382010-01-12  Eric Blake  <ebb9@byu.net>
39
40	tests: avoid spurious failure on old kernel
41	* tests/touch/no-dereference: Skip test if utimensat doesn't
42	support symlinks.
43	Reported by Bernhard Voelker.
44
452010-01-12  Pádraig Brady  <P@draigBrady.com>
46
47	maint: update info about getting the prerequisite automake
48	* README-prereq: Now that we require automake-1.11.1
49	update the instructions from getting it from the git repo
50
51	maint: remove an already handled item from TODO
52	* TODO: The question regarding printf octal escapes is answered in
53	commit 4bcefa62, 2003-04-21, "Fix printf POSIX compatibility bug ..."
54
55	maint: fix tests on solaris by using /usr/xpg4/bin
56	* tests/check.mk: Prepend /usr/xpg4/bin to the $PATH if present.
57	Using the more standard utilities allows tests such as misc/printenv,
58	which uses the -E option to grep, to complete.
59
602010-01-12  Jim Meyering  <meyering@redhat.com>
61
62	build: update gnulib, to get fixed getlogin-related tests
63
64	build: fix build failure due to missing libxattr
65	Configure is supposed to detect insufficient XATTR support.
66	However, if a system has the required headers, but no library,
67	the configure script would mistakenly enable USE_XATTR.
68	* m4/xattr.m4 (gl_FUNC_XATTR): If the attr_copy_file function
69	is not found, don't set USE_XATTR.
70	Nelson Beebe reported a link failure on RHEL 5.3.
71	Also, do not let the combination of --disable-xattr and
72	a stray LIB_XATTR environment setting perturb the build.
73	* NEWS (Build-related): Mention it.
74
75	doc: mention the wchar.h vs. glibc build problem
76	* NEWS (Build-related): Mention the wchar.h issue.
77
782010-01-12  Pádraig Brady  <P@draigBrady.com>
79
80	nproc: return a possibly more accurate total CPU count
81	* gnulib: Update, for num_processors() improvement.
82	* NEWS: Mention the fix.
83
842010-01-12  Kamil Dudka  <kdudka@redhat.com>
85
86	ls: reorder includes to work around broken <sys/capability.h>
87	* src/ls.c: Include <sys/capability.h> later, to avoid build
88	failure with a header from libcap-2.16-1 or earlier.
89	See http://bugzilla.redhat.com/483548 for details.
90
912010-01-08  Eric Blake  <ebb9@byu.net>
92
93	maint: move coreutils specific rule into cfg.mk
94	* gnulib: Update, for maint.mk improvement.
95	* cfg.mk (_makefile_at_at_check_excpetions): New rule, needed
96	for latest change to maint.mk.
97
982010-01-07  Jim Meyering  <meyering@redhat.com>
99
100	post-release administrivia
101	* NEWS: Add header line for next release.
102	* .prev-version: Record previous version.
103	* cfg.mk (old_NEWS_hash): Auto-update.
104
105	version 8.3
106	* NEWS: Record release date.
107
108	maint: change an email address in THANKS
109	* THANKS: Adjust Denis' address.
110
1112010-01-07  Eric Blake  <ebb9@byu.net>
112
113	pr: ensure the page header line is of the required format
114	Before this change, with too long a file name, the name would
115	abut the date field on the left and possibly also the "Page N"
116	field on the right, rather than leaving a one-space separator
117	in each case.  Fixes a regression introduced on Mar 6 2009,
118	by commit a4053c5291d5797734b3e4f042f9e1adf3944fd6
119
120	* src/pr.c (print_header): Ensure that there is at least one
121	space before and after the file name part of the header line.
122	* NEWS: Mention it.
123	* tests/pr/W20l24f-ll: s/xPage/ x Page/.
124	* THANKS: Update.
125	Reported by Denis McKeon, in https://savannah.gnu.org/bugs/?28492.
126
127	maint: apply correct license to auxiliary files
128	* gnulib: Update, for maint.mk improvements.
129	* HACKING: Use GFDL 1.3, not 1.2.
130	* NEWS: Likewise.
131	* README: Likewise.
132	* cfg.mk (old_NEWS_hash): Update accordingly.
133	* .gitignore: Ignore file created by 'make update-NEWS-hash'.
134
1352010-01-06  Jim Meyering  <meyering@redhat.com>
136
137	build: require newer versions of automake and autoconf
138	* configure.ac: Require autoconf-2.62 and automake-1.11.1 or newer.
139	* bootstrap.conf (buildreq): Require automake-1.11.1 or newer,
140	to ensure people use a version with the fix for CVE-2009-4029.
141	Note that the coreutils-8.2 tarball included a fixed Makefile.in.
142	Require autoconf-2.62, per automake.
143
1442010-01-06  Eric Blake  <ebb9@byu.net>
145
146	cp, touch: avoid problem with new glibc
147	* gnulib: Update, for utimens fix.
148	* NEWS: Mention the fix.
149	Reported by Guillaume Ayoub in http://bugs.debian.org/563726.
150	See also http://bugzilla.redhat.com/552320.
151
1522010-01-05  Philip Rowlands  <phr@doc.ic.ac.uk>
153
154	doc: fix typo in NEWS
155	* NEWS: Fix typo: s/repeated/repeatedly/
156
1572010-01-05  Jim Meyering  <meyering@redhat.com>
158
159	build: update gnulib submodule to latest
160
161	maint: always free a buffer, to avoid even semblance of a leak
162	* src/tac.c (main): Free the input buffer in most cases.
163
1642010-01-04  Jim Meyering  <meyering@redhat.com>
165
166	maint: use more readable operator: "||" rather than "|"
167	* src/cp.c (make_dir_parents_private): Use "||" rather than "|",
168	so that clang understands there is no undefined pointer dereference.
169
1702010-01-03  Jim Meyering  <meyering@redhat.com>
171
172	maint: record update-copyright options for this package
173	* cfg.mk: Next time, just run "make update-copyright".
174
1752010-01-01  Eric Blake  <ebb9@byu.net>
176
177	ls: fix color of broken symlinks colored as target
178	* src/ls.c (print_color_indicator): When using 'LINK target' in
179	dircolors, treat broken symlink as C_ORPHAN.
180	* tests/misc/ls-misc (sl-dangle2, sl-dangle3, sl-dangle4)
181	(sl-dangle5): Test for it, and add more coverage.
182	* NEWS: Document it.
183	* THANKS: Update.
184	Reported by Chris Jones.
185
1862010-01-01  Jim Meyering  <meyering@redhat.com>
187
188	df: use fputs in place of printf in a few more places
189	* src/df.c (print_header): Use fputs rather than printf in more places.
190	Suggested by Eric Blake.
191
192	build: update gnulib submodule to latest
193
194	maint: add a few copyrights; remove obsolete README file
195	* tests/README: Remove long-obsolete file.
196	* tests/Makefile.am (EXTRA_DIST): Remove README.
197	* tests/misc/truncate-dir-fail: Add copyright comment.
198	* tests/misc/selinux: Likewise.
199	* tests/misc/chcon: Likewise.
200	* tests/misc/chcon-fail: Likewise.
201	* tests/sample-test: Use only 2010 in this list.
202
203	maint: update all FSF copyright year lists to include 2010
204	Use this command:
205	git ls-files | grep -v COPYING \
206	  | xargs env UPDATE_COPYRIGHT_USE_INTERVALS=1 \
207	      build-aux/update-copyright
208
2092010-01-01  Stéphane Raimbault  <stephane.raimbault@makina-corpus.com>
210
211	pr --help: add missing space between short and long options usage message
212	* src/pr.c (usage): Add missing space.
213
214	pr --help: improve a line-break
215	* src/pr.c (usage): Move the newline character a bit farther.
216
217	df: add comments to help translators align column headers
218	* src/df.c (print_header): Add a comment telling translators to
219	retain the message length, and another to align header translations.
220
2212009-12-31  Jim Meyering  <meyering@redhat.com>
222
223	maint: newer gnulib; don't hard-code my GPG key ID
224	* cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
225	* gnulib: Update to latest.
226
227	doc: update tail's documentation to allow for new -F semantics
228	* src/tail.c (usage): Reword tail -F description, so that it no
229	longer mentions details specific to the non-inotify implementation.
230	Also, join diagnostic strings (while staying under the 509-byte limit)
231	to ease formatting of translations.  The latter was prompted by
232	a report from Stéphane Raimbault.
233	* doc/coreutils.texi (tail invocation): Update description here, too.
234
2352009-12-31  Eric Blake  <ebb9@byu.net>
236
237	touch: work around ntfs-3g bug
238	* gnulib: Update, for utimensat fix.
239	* NEWS: Improve wording about touch fixes.
240	* THANKS: Update.
241	Reported by Stuart Citrin.
242
2432009-12-30  Jim Meyering  <meyering@redhat.com>
244
245	build: update gnulib submodule to latest
246
247	doc: mention two tail -F bug fixes in NEWS
248	* NEWS (Bug fixes): Two tail -F fixes.
249
250	tail: test for a bug in inotify-enabled tail -F
251	tail -F a b would stop tracking additions to b after "mv a b".
252	* tests/tail-2/F-vs-rename: New file.
253	* tests/Makefile.am (TESTS): Add it.
254
2552009-12-30  Giuseppe Scrivano  <gscrivano@gnu.org>
256
257	tail -F: don't stop following the target of a rename
258	This fixes a bug whereby tail -F would fail to track changes
259	to a file that was a target of a rename, and when the source of
260	the rename was another tailed file.
261
262	* src/tail.c (tail_forever_inotify): Ensure the wd is not already
263	present in the hash table before trying to add it.  When a new watch
264	descriptor is added to the `wd_to_name' hash table, check that it is
265	not already present.  If it is present then remove the previous element.
266
2672009-12-30  Pádraig Brady  <P@draigBrady.com>
268
269	maint: improve the info about $PATH in README-prereq
270	* README-prereq: It wasn't obvious that the $PATH should
271	be set before building any of the prerequisite packages,
272	so move that information up.
273
2742009-12-29  Jim Meyering  <meyering@redhat.com>
275
276	tail: add another test to exercise abort-inducing flaw in tail -F
277	* tests/tail-2/inotify-hash-abuse2: New test, based on a reproducer
278	by Rob Wortman.
279	* tests/Makefile.am (TESTS): Add it.
280
281	tail: add a test to exercise abort-inducing flaw in tail -F
282	* tests/tail-2/inotify-hash-abuse: New file, derived from
283	a report by Rob Wortman.
284	* tests/Makefile.am (TESTS): Add it.
285	Improved by: Pádraig Brady.
286
2872009-12-29  Giuseppe Scrivano  <gscrivano@gnu.org>
288
289	tail: remove `fdspec' from the hash table before changing its key
290	* src/tail.c (tail_forever_inotify): Avoid modifying fdspec->wd while
291	it is in the wd_to_name hash table.  Once it is removed, it can be
292	added using the new `wd' as key for the hash table.  This fixes the
293	abort-inducing bug reported by Rob Wortman in
294	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19372
295
2962009-12-29  Jim Meyering  <meyering@redhat.com>
297
298	maint: quiet "make" in doc/
299	* doc/Makefile.am (constants.texi): Add a use of AM_V_GEN.
300
301	tail: rename an internal variable
302	* src/tail.c (tail_forever_inotify): s/wd_table/wd_to_name/
303
304	tail: avoid read-beyond-end-of-buffer error
305	* src/tail.c (tail_forever_inotify): Do not use f[i] in a context
306	where i may be larger than the largest valid index.  In the final
307	"if" clause in which we'd remove an inotify watch, we might have
308	used f[n_files].  Use fspec instead, since it is guaranteed to
309	be defined.
310
3112009-12-26  Eric Blake  <ebb9@byu.net>
312
313	maint: ignore more built files
314	Recent gnulib changes added new built files.
315
316	* .gitignore: Add arg-nonnull.h, link-warning.h,
317	unused-parameter.h.
318
319	tac: supply link dependency
320	* src/Makefile.am (tac_LDADD): Add LIB_GETHRXTIME.
321	* THANKS: Update.
322	Reported by Robert Schwebel.
323
3242009-12-26  Jim Meyering  <meyering@redhat.com>
325
326	build: update gnulib submodule to latest
327
328	tail: shrink internal struct by 8 bytes
329	* tail.c (struct File_spec): Rearrange struct members to decrease
330	size by 8 bytes to 76,96 on i686,x86_64 respectively.
331
3322009-12-25  Jim Meyering  <meyering@redhat.com>
333
334	maint: tail: avoid in-function #if directives
335	* src/tail.c (fremote): Add a comment.
336	Move definition "up" to precede first use, so we can
337	remove its prototype and the #if..#endif around each use.
338	(any_remote_file): Rename from any_remote_files.
339
3402009-12-25  Pádraig Brady  <P@draigBrady.com>
341
342	tail: fix --follow to not use inotify on remote files
343	* src/tail.c (struct File_spec): Add a flag to record if file is remote.
344	(recheck): If we're using inotify then check if the file has gone remote
345	and if so, drop it with a warning.
346	(any_remote_files): A new function to check for any open remote files.
347	(tailable_stdin): A new function to refactor the check for whether
348	a tailable file was specified through stdin.
349	(fremote): A new function to check if a file descriptor
350	refers to a remote file.
351	(tail_forever_inotify): Add some comments.
352	(tail_file): Record if a file is remote when initially opened.
353	(main): Disable inotify if any remote files specified.
354	Also document the caveat about remounted files not
355	being noticed by inotify.
356	* NEWS: Mention the fix.
357
3582009-12-23  Pádraig Brady  <P@draigBrady.com>
359
360	wc: line-buffer the printed counts
361	* src/wc.c (main): Set stdout to line buffered mode
362	to ensure parallel running instances don't intersperse
363	their output.  This adds 6.5% to the run time in the worst case
364	of many zero length files, but has neglible impact for
365	standard sized files.
366	* tests/misc/wc-parallel: New test for atomic output.
367	* tests/Makefile.am: Reference it.
368	* NEWS: Mention the fix
369	This is similar to commit 710fe413, 20-10-2009,
370	"md5sum, sha*sum, sum: line-buffer the printed checksums"
371
3722009-12-22  Pádraig Brady  <P@draigBrady.com>
373
374	stat: Recognize k-afs, gfs, ocfs2 file system types
375	* src/stat.c (human_fstype): Add k-afs, gfs/gfs2 and ocfs2.
376	* NEWS: Update the stat -f entry.
377
378	stat: add support for more file system types
379	* src/stat.c (human_fstype): Add the following FS types:
380	fuseblk, rpc_pipefs.  Also fix a typo of minux3 to minix3,
381	and mention the fs-magic-compare make target to help update the list.
382	* NEWS: Mention the fix.
383
3842009-12-20  Jim Meyering  <meyering@redhat.com>
385
386	build: correct coreutils-specific distcheck rules
387	* dist-check.mk (built_programs): Use $(bin_PROGRAMS), not $(PROGRAMS).
388	Otherwise, my-instcheck would fail due to non-installation of e.g.,
389	the noinst_PROGRAMS, setuidgid and getlimits.
390	(taint-distcheck): Correct the grep command that checks for libtool
391	traces in configure.
392
3932009-12-20  Eric Blake  <ebb9@byu.net>
394
395	touch: fix ctime regression in 'touch -a'
396	Regression introduced in coreutils 8.1 due to a bug in the Linux
397	kernel implementation of utimensat with mtime of UTIME_OMIT.
398
399	* gnulib: Update to latest, to pick up utimensat fix.
400	* NEWS: Mention the change.
401	* THANKS: Update.
402	Reported by John Stanley.
403
4042009-12-19  Pádraig Brady  <P@draigBrady.com>
405
406	maint: don't include the strverscmp gnulib module
407	* bootstrap.conf (gnulib_modules): Remove the strverscmp module
408	which is not used since commit e505736f, on 03-10-2008,
409	"ls and sort: use filevercmp instead of strverscmp"
410
411	doc: enhance and reference info about version comparison
412	* doc/coreutils.texi (sort invocation): Reference the additional
413	info about filevercmp rather than the unused strverscmp.
414	(Details about version sort): Add some examples that are not
415	handled well by fileversmp.
416	* src/ls.c: Change a comment referencing the now unused strverscmp.
417
418	rm: fix --one-file-system regression due to fts conversion
419	* src/remove.c (rm_fts): Fix incorrect comparison of
420	device and inode numbers.
421	* tests/rm/one-file-system2: Add a separate test so
422	that it can be run as a normal user (It doesn't need to mount).
423	* tests/Makefile.am: Reference it.
424	* NEWS: Mention the fix.
425	Reported by Jan Larres.
426
4272009-12-14  Jim Meyering  <meyering@redhat.com>
428
429	maint: improve dist-check.mk rules
430	* dist-check.mk (null_AM_MAKEFLAGS): Remove LIBTOOL.  Adding it was
431	erroneous, since it is required when building from a distribution
432	tarball of a libtool-using project.  Reported by Ralf Wildenhues.
433	(my-distcheck): Reorganize to use a subshell and set -e, so that
434	failures propagate "out".  Without this change, setting LIBTOOL=false
435	would cause a failure that would then be ignored, probably due to a
436	problem in $(install-transform-check).
437
4382009-12-14  Thiago Farina  <tfransosi@gmail.com>
439
440	base64: use *_OPTION_DESCRIPTION macros instead of hard-coded strings
441	* src/base64 (usage): Use HELP_OPTION_DESCRIPTION and
442	VERSION_OPTION_DESCRIPTION macros, not literal strings.
443
4442009-12-13  Jim Meyering  <meyering@redhat.com>
445
446	tests: unpack xz-compressed tarballs when possible, not always *.gz
447	* dist-check.mk: Unpack compressed tarball using xz when possible,
448	since that's faster.
449
450	maint: make dist-check.mk more easily shared
451	* dist-check.mk (built_programs): More generic, but still assumes src/.
452	Don't set GZIP in environment when untarring.
453	(my-distcheck): Use $(DIST_ARCHIVES), rather than assuming that
454	there is always a .tar.gz file.
455
456	nohup: if fd_repoen fails (redirecting stdin), report it
457	* src/nohup.c (main): Don't ignore fd_reopen failure.
458
459	tests: make the taint-distcheck rule easier to share with other projects
460	* dist-check.mk (taint-distcheck): Skip this test in a project
461	that uses libtool.
462
463	stat: recognize "sockfs" file system type, ...
464	... now that its magic number appears in <linux/magic.h>.
465	* src/stat.c (human_fstype) [S_MAGIC_SOCKFS]: Add case.
466
467	maint: move definitions from maint.mk to dist-check.mk
468	* dist-check.mk (null_AM_MAKEFLAGS): Define here, not in maint.mk.
469	(built_programs): Likewise.
470	(my-distcheck): Move comments to...
471	(coreutils-path-check): ...the code they refer to.
472	Remove obsolete comments.
473	(null_AM_MAKEFLAGS): Add gperf, even though it's not used here.
474	* gnulib: Update to latest, for fixed maint.mk.
475
4762009-12-12  Jim Meyering  <meyering@redhat.com>
477
478	tests: tail-without-inotify: avoid spurious test failure
479	* tests/tail-2/wait: Account for the possibility that the kernel
480	lacks inotify support.  Reported by Chris Clayton.
481
482	factor: add a missing va_end
483	* src/factor.c (debug): Add missing va_end.
484
4852009-12-11  Jim Meyering  <meyering@redhat.com>
486
487	build: update gnulib submodule to latest; adapt a patch
488	* gl/lib/tempname.c.diff: Adjust patch to apply to gnulib, now that
489	most TABs in indentation have been converted to spaces by running
490	this command: f=tempname.c.diff; patch-xform $f > k && mv k $f
491
492	post-release administrivia
493	* NEWS: Add header line for next release.
494	* .prev-version: Record previous version.
495	* cfg.mk (old_NEWS_hash): Auto-update.
496
497	version 8.2
498	* NEWS: Record release date.
499
500	tests: use a slightly better CU_TEST_NAME setting
501	* tests/check.mk (CU_TEST_NAME): Better test names.
502
503	tail: don't call fstat on an uninitialized FD
504	This bug showed up via valgrind as a "Conditional jump or move
505	depends on uninitialized value(s)" error.
506	* src/tail.c (ignore_fifo_and_pipe): New function.
507	(main): Use it only when tailing forever.
508	The code to compute n_viable and mark some F[i] as ignored would call
509	isapipe on an uninitialized file descriptor.  But n_viable and those
510	.ignored marks are useful/used only when tailing forever.  This bug
511	was introduced via commit f0ff8c73 (7.6), "tail: make the new
512	piped-stdin test as portable as the old one".
513	* NEWS (Bug fixes): Mention it.
514
515	doc: NEWS: mention that gnulib's mgetgroups fix affects id
516	* NEWS (Bug fixes): Mention the "id" bug fix inherited via this gnulib
517	change: "mgetgroups: do not write bytes beyond end of malloc'd buffer"
518	http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=51d5e813e9ee6cf23
519
5202009-12-10  Jim Meyering  <meyering@redhat.com>
521
522	build: update gnulib submodule to latest
523
524	tests: avoid spurious failure when run via valgrind
525	* tests/misc/printenv: Ignore LD_PRELOAD differences.
526
5272009-12-09  Jim Meyering  <meyering@redhat.com>
528
529	doc: NEWS: the "make distcheck" vulnerability dates back to 5.0
530	* NEWS (Bug fixes): Correct the introduced-in version number.
531	This was introduced on 2003-04-02 by commit 722a49ea.
532
533	doc: NEWS: mention the "make distcheck" vulnerability
534	* NEWS (Bug fixes): Mention implications of the "make distcheck" change.
535	This was introduced on 2008-07-22 by commit 9bb0d576, "tests: ensure
536	"make check" w/tainted build dir no longer impacts $HOME".
537
538	tests: don't let "umask 077" cause root-only cp/preserve-gid failure
539	* tests/cp/preserve-gid: Use working_umask_or_skip_ to set umask to 022.
540
5412009-12-08  Jim Meyering  <meyering@redhat.com>
542
543	build: update gnulib submodule to latest
544
5452009-12-08  Pádraig Brady  <P@draigBrady.com>
546
547	maint: remove an erroneous comment
548	* tests/misc/timeout: Remove an erroneous comment
549	introduced through copy and paste.
550
551	sort: fix failure if sort's parent has ignored SIGCHLD
552	* src/sort.c (main): Reset the SIGCHLD handler to the default
553	as otherwise wait() could return an error.
554	* tests/misc/sort-compress: Set the CHLD handler in a subshell
555	to SIG_IGN to ensure the sort command resets it to SIG_DFL.
556	* NEWS: Mention the fix.
557
558	timeout: fix failure if timeout's parent has ignored SIGCHLD
559	* src/timeout.c (main): Reset the SIGCHLD handler to the default
560	as otherwise wait() could return -1 and set errno to ECHILD.
561	This condition was ignored until commit 0b1dcf33, on 31-08-2009,
562	"timeout: defensive handling of all wait() errors"
563	but subsequently timeout would run the command correctly
564	but then fail with an error message.
565	* tests/misc/timeout: In a subshell set the CHLD handler to
566	SIG_IGN to ensure the timeout command resets it to SIG_DFL.
567	* NEWS: Mention the fix.
568
569	tests: fix stty-row-col failure on small fixed terminals
570	* tests/misc/stty-row-col: Linux virtual consoles at least,
571	issue an error if you try to increase their size, so skip the
572	test if we can't increase the dimensions of the tty by 1 cell.
573	Reported by Matthew Burgess.
574
575	tests: fix stty failure with serial control settings
576	* tests/misc/stty: Don't check the serial control settings as
577	these are ignored by various Linux kernels.
578	Reported by Matthew Burgess.
579
5802009-12-07  Jim Meyering  <meyering@redhat.com>
581
582	build: update gnulib submodule to latest
583
584	build: distcheck: do not leave a $TMPDIR/coreutils directory behind
585	* dist-check.mk (tmpdir): Rename from TMPDIR.  Use ./tests/torture
586	unconditionally, rather than $TMPDIR-with-default-to-/tmp.
587	Otherwise, running "make distcheck" could leave an empty /tmp/coreutils
588	directory behind.
589	(tp): Simplify, now that it's always in the build-dir.
590	(taint-distcheck): Set HOME earlier, in case $(MAKE) misbehaves.
591	(my-instcheck, coreutils-path-check): Add diagnostics, so it's easier
592	to diagnose when each runs.
593	(coreutils-path-check): Run configure with --quiet, to reduce output.
594	Inspired by Ralf Wildenhues' report of /tmp/coreutils being left behind.
595
5962009-12-06  Jim Meyering  <meyering@redhat.com>
597
598	tests: readdir-mountpoint-inode avoid false-positive w/virtualbox
599	* tests/ls/readdir-mountpoint-inode: With some systems, stat can
600	succeed on a mount point and report that the inode number is 0.
601	Since ls displays "?" for those, that would otherwise show up as a
602	difference.  Skip such mount points.  Reported by Sergei Steshenko
603	in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19142
604
6052009-12-06  Pádraig Brady  <P@draigBrady.com>
606
607	tests: don't run tail-2/inotify-race by default
608	* tests/tail-2/inotify-race: Note the caveats of the test.
609	I.E. the intermittent skips and the gdb hang reported
610	by Alan Curry.  Add extra info to the log on why the test
611	is skipped as it may be due to multiple reasons.  Mark
612	the test as very expensive so that it's not normally run.
613
6142009-12-05  Eric Blake  <ebb9@byu.net>
615
616	id: handle systems without getgroups support
617	If getgroups failed with ENOSYS, mgetgroups would unnecessarily
618	fail, and that provoked id into freeing an uninitialized pointer.
619	Meanwhile, we were not using xalloc_die properly.  Both issues
620	are better solved in gnulib, by introducing xgetgroups; this
621	patch uses the new interface.
622
623	Regression introduced by commit 6a31fd8d7.
624
625	* gnulib: Update, for mgetgroups improvments.
626	* src/id.c (print_full_info): Adjust caller to die on allocation
627	failure, and no longer worry about ENOSYS.
628	* src/group-list.c (print_group_list): Likewise.
629	* src/setuidgid.c (main): Likewise.
630	* NEWS: Mention the fix.
631	* THANKS: Update.
632	Reported by Scott Harrison.
633
6342009-12-03  Jim Meyering  <meyering@redhat.com>
635
636	tests: fix a bug in sanitize_path_ that inhibited verbose output
637	* tests/test-lib.sh (sanitize_path_): Use "set -- ...", not "set - ...",
638	since the latter turns off the -x setting we rely on for VERBOSE=yes
639	output.
640
6412009-12-01  Eric Blake  <ebb9@byu.net>
642
643	sort: fix link failure on Solaris
644	Commit f9d0bb8481 made sort depend on xnanosleep.
645
646	* src/Makefile.am (sort_LDADD): Add LIB_NANOSLEEP.
647
6482009-12-01  Jim Meyering  <meyering@redhat.com>
649
650	rm: fix empty-name bug introduced with conversion to use fts
651	While "rm ''" would properly fail, "rm F1 '' F2" would fail
652	to remove F1 and F2, due to the empty string argument.
653	This bug was introduced on 2009-07-12, via commit 4f73ecaf,
654	"rm: rewrite to use fts".
655	* gnulib: Update to latest, for fixed fts.c.
656	* NEWS (Bug fixes): Describe it.
657	* tests/rm/empty-name: Adjust for changed diagnostic.
658	(mk_file): Define, copied from misc/ls-misc.
659	(empty-name-2): New test, for today's fix.
660	* lib/xfts.c (xfts_open): Reflect the change in fts_open, now that
661	it no longer fails immediately when one argument is the empty string.
662	Assert that the bit flags were not the cause of failure.
663	* po/POTFILES.in: Remove xfts.c.
664	* THANKS: Update.
665	Reported by Ladislav Hagara.
666
6672009-11-30  Pádraig Brady  <P@draigBrady.com>
668
669	bootstrap: fix handling of various perl --version formats
670	* bootstrap (get_version): Don't use perl's $] special
671	variable, as that requires updating all bootstrap.conf files to
672	use perl's x.yyyzzz version format.  Instead make the regular
673	expression more general to support version formats from older
674	perl-5.005_002 (5.5.2) and perl-5.11 which has other numbers
675	in the version line.
676
6772009-11-29  Jim Meyering  <meyering@redhat.com>
678
679	bootstrap: update from gnulib, for perl-5.11.x support
680	* bootstrap (get_version): Handle perl separately,
681	since perl-5.11's --version output is different.
682
683	build: update gnulib submodule to latest
684
6852009-11-28  Jim Meyering  <meyering@redhat.com>
686
687	maint: chown.c: remove a comment
688	* src/chown.c: Remove old spec-like comment.
689
6902009-11-24  Eric Blake  <ebb9@byu.net>
691
692	tests: fix link failure on cygwin
693	Counterpart to commit 8fe40b84bd8, since test-link.c uses rename,
694	and we override gnulib with a rename() replacement that can xalloc_die.
695
696	* gl/modules/link-tests.diff: New file.
697
698	build: fix link failure on cygwin
699	Cygwin 1.5 has a broken sleep, and the gnulib tests dragged in
700	rpl_sleep which then caused a link failure because it wasn't in
701	libcoreutils.a.  We could solve it by using the gnulib sleep module.
702	However, sleep and usleep may interact poorly with SIGALRM, and they
703	have less granularity; so it is better to adopt a policy that if we
704	must sleep, prefer xnanosleep.
705
706	* src/sort.c (pipe_fork): Use xnanosleep, to avoid the need for
707	rpl_sleep on cygwin, and to reduce granularity.
708	(MAX_FORK_TRIES_COMPRESS, MAX_FORK_TRIES_DECOMPRESS): Increase,
709	to account for reduction in granularity.
710	* src/tail.c (tail_file): Use xnanosleep in debug code.
711	* cfg.mk (sc_prohibit_sleep): New rule.
712
7132009-11-23  Jim Meyering  <meyering@redhat.com>
714
715	tests: avoid test failures when PATH contains an unsearchable directory
716	* tests/test-lib.sh (sanitize_path_): New function.
717	Always call it.
718
7192009-11-22  Dmitry V. Levin  <ldv@altlinux.org>
720
721	tests: do not fail on read-only root file system
722	* tests/touch/not-owner: Handle the case when the root file system is
723	mounted read-only.
724	Reported by Solar Designer.
725
7262009-11-20  Jim Meyering  <meyering@redhat.com>
727
728	maint: cfg.mk: remove factored-out ftp host/dir definitions
729	* cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
730	(gnu_rel_host, url_dir_list): Remove definitions.  The defaults,
731	now provided by maint.mk, are the same.
732	* gnulib: Update for latest, including those maint.mk additions.
733
734	maint: correct comments in test scripts
735	* tests/misc/pwd-long: Fix spelling of cygwin1.dll in comment.
736	* tests/rm/fail-eperm: Likewise.
737	Reported by Eric Blake.
738
739	maint: don't list "warnings" module explicitly
740	* bootstrap.conf (gnulib_modules): Remove "warnings", now that
741	it's pulled in automatically via "manywarnings".
742
743	maint: move xfreopen module to gnulib
744	* gl/lib/xfreopen.c: Remove file.
745	* gl/lib/xfreopen.h: Likewise.
746	* gl/modules/xfreopen: Likewise.
747
748	build: update gnulib submodule to latest
749
7502009-11-19  Jim Meyering  <meyering@redhat.com>
751
752	tests: avoid spurious failures due to insecure directory in PATH
753	These tests perform no PATH search, and used to simply delete PATH from
754	the environment.  However, that is not portable, as seen on Cygwin,
755	where cygwin.dll must be resolvable via PATH when starting a sub-shell.
756	With commit 0cc04241, we took the alternate approach of untainting the
757	incoming $ENV{PATH}, but that fails when it contains an other-writable
758	directory.  Instead, now we hard code it to '/bin:/usr/bin'.
759
760	* tests/misc/pwd-long: Hard code $ENV{PATH} to a safe value.
761	* tests/rm/fail-eperm: Likewise.
762	Reported by Gilles Espinasse, Andreas Schwab, and Bauke Jan Douma.
763
7642009-11-18  Jim Meyering  <meyering@redhat.com>
765
766	build: "make stable" emitted an invalid gnupload command
767	* cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
768	* README-release: Change another s/major/stable/.
769
770	post-release administrivia
771	* NEWS: Add header line for next release.
772	* .prev-version: Record previous version.
773	* cfg.mk (old_NEWS_hash): Auto-update.
774
775	version 8.1
776	* NEWS: Record release date.
777
778	build: update gnulib for Solaris utimens workaround
779
780	build: update gnulib submodule to latest
781
7822009-11-17  Jim Meyering  <meyering@redhat.com>
783
784	maint: remove local gnulib-related patches
785	* gl/lib/printf-args.c.diff: Remove file.  No longer needed.
786	* gl/lib/vasnprintf.c.diff: Likewise.
787
788	build: update gnulib for Solaris 10 unsetenv work-around
789
790	doc: mention the du/fts vs. NFSv4 mount-point work-around
791	* NEWS (Changes in behavior): Mention it.
792
793	build: update from gnulib for (un)setenv fixes
794
7952009-11-16  Jim Meyering  <meyering@redhat.com>
796
797	build: update gnulib submodule to latest
798
799	true, false: perform initialization only when argc == 2
800	* src/true.c (main): There is no reason to examine argv[0],
801	call atexit, etc., in the usual case in which we're about to exit.
802	This has the side effect of making it so that these programs
803	no longer segfault when subjected to execve abuse.
804	Before this change, these commands would make "true" segfault:
805	  printf '%s\n' '#include <unistd.h>' 'int main(int c, char**v)' \
806	    '{ execve (v[1], 0, 0); }' > k.c && gcc k.c && ./a.out $PWD/true
807	Now it succeeds.  Reported by Tetsuo Handa and Bart Van Assche
808	via Ondřej Vašík in http://bugzilla.redhat.com/537684.
809
810	tail -F can fail to track a file after it's been rotated
811	Tailing forever and by-name (--follow=name, -F), tail would
812	sometimes fail to follow a file that had been removed via rename.
813	If you can't apply this patch and have tail 7.6 or newer, you can
814	work around the bug via the undocumented --disable-inotify option.
815	* src/tail.c (tail_forever_inotify): When tailing by name (-F),
816	do not un-watch a file upon receipt of the IN_MOVE_SELF event.
817	Reported by Arjan Opmeer in http://bugs.debian.org/548439.
818	* NEWS (Bug fixes): Mention it.
819	Also see http://marc.info/?l=coreutils-bug&m=125829031916515
820	* tests/Makefile.am (TESTS): Add tail-2/inotify-rotate.
821	* tests/tail-2/inotify-rotate: New test.
822
8232009-11-14  Jim Meyering  <meyering@redhat.com>
824
825	tests: help-version: exit nonzero when $built_programs is empty
826	* tests/misc/help-version: Use "Exit 1", rather than "Exit $fail"
827	with fail defined to 0 when $built_programs is empty.
828
829	build: do use AM_GNU_GETTEXT's "need-formatstring-macros" option
830	* configure.ac: Revert commit 49741b61 and add a comment.
831	Reported by Eric Blake.
832
8332009-11-14  Pádraig Brady  <P@draigBrady.com>
834
835	tests: avoid a spurious failure on a loaded system
836	* tests/misc/timeout-parameters: This test could fail due to
837	the 1-second timeout expiring before a command of "no_such"
838	could be exec'd and fail.  Increase to 10 seconds.
839
8402009-11-13  Jim Meyering  <meyering@redhat.com>
841
842	build: require gettext-0.17
843	* configure.ac: Require gettext-0.17; it was released two years ago.
844
845	build: correct gettext configure-time support
846	* configure.ac: Use AM_GNU_GETTEXT([external], [need-ngettext]),
847	rather than AM_GNU_GETTEXT([external], [need-formatstring-macros]).
848	Reported by Martin Jacobs in
849	http://thread.gmane.org/gmane.comp.parsers.bison.bugs/3181
850	* THANKS: Add his name.
851
852	build: update gnulib to latest, for fixed test-getgroups.c
853
854	tests: avoid a spurious timeout on a heavily-loaded system
855	* tests/misc/timeout-parameters: This test would fail due to
856	the 1-second timeout expiring before a command of "." could
857	be exec'd and fail.  Increase to 10 seconds.
858
8592009-11-13  Eric Blake  <ebb9@byu.net>
860
861	build: update gnulib, for getgroups improvements
862	A replacement getgroups is now guaranteed to exist, but it may
863	fail with ENOSYS.  mgetgroups is moved to gnulib, and now takes
864	gid_t instead of GETGROUPS_T (but setgroups still needs GETGROUPS_T).
865
866	* gnulib: Update to latest.
867	* gl/modules/mgetgroups: Delete, moved to gnulib.
868	* gl/m4/mgetgroups.m4: Likewise.
869	* gl/lib/mgetgroups.h: Likewise.
870	* gl/lib/mgetgroups.c: Likewise.
871	* src/group-list.c (print_group_list): Adjust callers.
872	* src/id.c (print_full_info): Likewise.
873
8742009-11-12  Jim Meyering  <meyering@redhat.com>
875
876	build: bootstrap: add a comment; generalize autoheader check
877	* bootstrap: Sync from gnulib and diff.
878
879	build: update gnulib to latest; more *BSD and Solaris work-arounds
880
8812009-11-11  Jim Meyering  <meyering@redhat.com>
882
883	bootstrap: use git_modules_config in one more place
884	* bootstrap: Make bootstrap's --gnulib-srcdir more useful (for testing).
885
8862009-11-10  Eric Blake  <ebb9@byu.net>
887
888	doc: fix typo
889	* doc/coreutils.texi (mktemp invocation): Quote shell variable.
890
8912009-11-09  Jim Meyering  <meyering@redhat.com>
892
893	build: update gnulib submodule to latest for its FreeBSD fixes
894
8952009-11-09  Pádraig Brady  <P@draigBrady.com>
896
897	ls: fix capability coloring
898	Capability checking was incorrectly done on just the base name
899	rather than on the whole path.  Consequently there could be both
900	false positives and negatives when coloring files with capabilities.
901	Also capability checking was not done at all in certain cases for
902	non executable files.  Note passing absolute rather than relative
903	names to cap_get_file() reduces the has_capability() overhead
904	from around 33% to 30%.  I.E. ls --color is now around 3% faster.
905
906	* src/ls.c (struct fileinfo): Add a has_capability member.
907	(print_color_indicator): Refactor to pass just a fileinfo pointer
908	and a flag to say if we're dealing with a symlink target.
909	(print_name_with_quoting): Likewise.
910	(gobble_file): Set has_capability in the fileinfo struct.  Also do
911	a capability check even if executable coloring is disabled.
912	Ditto for SETUID and SETUID coloring.
913	Comment on how expensive has_capability() is.
914	(print_long_format): Adjust to refactored print_name_with_quoting.
915	(quote_name): Likewise.
916	(print_file_name_and_frills): Likewise.
917	* tests/ls/capability: Test the various false positive and negatives.
918	* THANKS: Add reporter (Ivan Labath).
919	* NEWS: Mention the fix.
920
9212009-11-07  Eric Blake  <ebb9@byu.net>
922
923	build: consistently use freopen-safer
924	cat, head, ptx, shuf, tac, tail, tee, tr, and uniq used freopen
925	on stdout, and were potentially vulnerable.  dircolors, du, and
926	tsort only used it on stdin, which is unaffected by freopen_safer,
927	but this covers all uses for consistency.
928
929	* cfg.mk (sc_require_stdio_safer): New rule.
930	* gl/modules/xfreopen (Depends-on): Add freopen-safer.
931	* gl/lib/xfreopen.c (includes): Use stdio--.h.
932	* src/ptx.c (includes): Likewise.
933	* src/shuf.c (includes): Likewise.
934	* src/uniq.c (includes): Likewise.
935	* src/dircolors.c (includes): Likewise.
936	* src/du.c (includes): Likewise.
937	* src/tsort.c (includes): Likewise.
938
939	mktemp: fix bug with -q and closed stdout
940	If stdin or stdout is closed, then freopen(,stderr) can violate
941	the premise that STDERR_FILENO==fileno(stderr), which in turn
942	breaks mktemp -q.
943
944	* bootstrap.conf (gnulib_modules): Add freopen-safer.
945	* src/mktemp.c (includes): Use stdio--.h.
946	* tests/misc/close-stdout: Enhance test to catch bug.
947
9482009-11-07  Jim Meyering  <meyering@redhat.com>
949
950	maint: make du's cycle-detection code consistent
951	* src/du.c (process_file): Revert the du.c-changing part of
952	commit 8ba5d1a7. Use cycle_warning_required instead.
953
954	chcon, chgrp, chmod and chown now diagnose a directory cycle
955	* lib/xfts.c (cycle_warning_required): New function.
956	* lib/xfts.h: Declare it.
957	* src/chown-core.c (change_file_owner): Diagnose a cycle.
958	* src/chmod.c (process_file): Likewise.
959	* src/chcon.c (process_file): Likewise.
960	* NEWS (Bug fixes): Mention this.
961
9622009-11-06  Giuseppe Scrivano  <gscrivano@gnu.org>
963
964	nproc: A new program to count the available processors
965	* AUTHORS: Add my name.
966	* NEWS: Mention it.
967	* README: Likewise.
968	* bootstrap.conf (gnulib_modules): Add nproc.
969	* doc/coreutils.texi (nproc invocation): Add nproc info.
970	* man/Makefile.am (nproc.1): Add dependency.
971	* man/nproc.x: New template.
972	* man/.gitignore: Ignore generated man page.
973	* po/POTFILES.in: Add src/nproc.c.
974	* src/.gitignore: Exclude nproc.
975	* src/Makefile.am (EXTRA_PROGRAMS): Add nproc.
976	* src/nproc.c: New file.
977	* tests/Makefile.am (TESTS): Add misc/nproc-{avail,positive}.
978	* tests/misc/nproc-avail: New file.
979	* tests/misc/nproc-positive: New file.
980
9812009-11-06  Jim Meyering  <meyering@redhat.com>
982
983	build: move do-release-commit-and-tag to gnulib
984	* bootstrap.conf (gnulib_modules): Add do-release-commit-and-tag.
985	* build-aux/do-release-commit-and-tag: Remove file.  Now it's in gnulib.
986	* gnulib: Update submodule to the latest, to get the just-moved script.
987
9882009-11-05  Eric Blake  <ebb9@byu.net>
989
990	mktemp: use more robust means to avoid double-close of stdout
991	Reverts earlier patch - fflush() can succeed but fclose() fail for
992	some cases of write failures, and we want to catch those.
993
994	* src/mktemp.c (stdout_closed): New variable.
995	(maybe_close_stdout): New function, borrowed from dd.c.
996	(main): Track whether stdout has been closed.
997
998	mktemp: enhance test to catch just-fixed typo behavior
999	Penance for botching the conflict resolution while rebasing my series.
1000
1001	* tests/misc/mktemp (check_tmp): Test for the bug when wrong parameter
1002	is used.
1003
10042009-11-05  Jim Meyering  <meyering@redhat.com>
1005
1006	mktemp: don't try to close stdout twice
1007	* src/mktemp.c (main): Rather than calling close_stream (which would
1008	make atexit-called close_stdout try to close it a second time),
1009	check for write failure via ferror and fflush.
1010
1011	mktemp: don't use suff_len in place of #-of-`X's variable
1012	* src/mktemp.c (mkstemp_len, mkdtemp_len): Pass x_len as final
1013	argument, and not suff_len.
1014
10152009-11-05  Eric Blake  <ebb9@byu.net>
1016
1017	mktemp: add suffix handling
1018	Now that mkstemps is supported, we might as well use it.
1019
1020	* src/mktemp.c (TMPDIR_OPTION): New enum value.
1021	(longopts): Add new option.
1022	(usage): Document it.
1023	(count_trailing_X_s): Rename...
1024	(count_consecutive_X_s): ...to this, and add parameter.
1025	(mkstemp_len, mkdtemp_len): Add parameter.
1026	(main): Implement new option.
1027	(AUTHORS): Add myself.
1028	* AUTHORS (mktemp): Likewise.
1029	* tests/misc/mktemp: Test new option.
1030	* doc/coreutils.texi (mktemp invocation): Document it.
1031	* NEWS: Likewise.
1032	Fixes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316.
1033
1034	build: reflect gnulib changes to tempname
1035	In glibc 2.11 and gnulib, gen_tempname added a parameter
1036	suffixlen (unfortunately, it is typed as int rather than
1037	size_t, for historical compatibility to a poor choice by BSD).
1038
1039	* gnulib: Import latest changes.
1040	* gl/lib/tempname.h.diff: Accommodate new suffixlen parameter.
1041	* gl/lib/tempname.c.diff (check_x_suffix): Allow for X in suffix
1042	beyond x_suffix_len.
1043	(gen_tempname_len): Add suffixlen parameter.
1044	(__gen_tempname): Update caller.
1045	* src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers.
1046
1047	build: override gnulib tempname via diff
1048	Diffs are more robust than wholesale replacement, because bootstrap
1049	will inform us of any incompatible changes made in upstream gnulib.
1050
1051	* gl/lib/tempname.h: Change...
1052	* gl/lib/tempname.h.diff: ...to diff.
1053	* gl/lib/tempname.c: Change...
1054	* gl/lib/tempname.c.diff: ...to diff.
1055
1056	mktemp: rearrange --help output
1057	* src/mktemp.c (usage): Align indentation and sort by long
1058	options.  Describe valid templates.
1059	Suggested by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316.
1060
1061	tests: enhance mktemp test
1062	* tests/misc/mktemp: Add more coverage.
1063
1064	doc: document mktemp
1065	* doc/coreutils.texi (mktemp invocation): New node.
1066	* TODO: Delete completed task.
1067
1068	mktemp: don't leave file behind on write failure
1069	* src/mktemp.c (main): Remove just-created file if stdout had
1070	problems.
1071	* bootstrap.conf (gnulib_modules): Add remove.
1072	* tests/misc/close-stdout: Test it.
1073	* NEWS: Document it.
1074
10752009-11-05  Jim Meyering  <meyering@redhat.com>
1076
1077	du: cleanup: remove dead-code vestige of already-removed option
1078	* src/du.c (MEGABYTES_LONG_OPTION, main): Remove vestiges
1079	of already-removed long option, --megabytes.
1080
1081	du now diagnoses cycles, rather than ignoring them
1082	* src/du.c (symlink_deref_bits): New global, decl moved from ...
1083	(main): ...here.
1084	(process_file): When fts detects a directory cycle that can't
1085	be due to symlinks, report it and arrange to exit nonzero.
1086	* NEWS (Bug fixes): Mention it.
1087
1088	maint: factor out cycle warning, now that du will use it, too
1089	* src/system.h (emit_cycle_warning): Define.  Factored out of...
1090	* src/remove.c (rm_fts): ...here.  Use the new macro.
1091
10922009-11-03  Jim Meyering  <meyering@redhat.com>
1093
1094	tests: rm: add test for today's change in behavior
1095	* tests/Makefile.am (root_tests): Add rm/read-only to the list.
1096	* tests/rm/read-only: New file.
1097
1098	rm -f: ignore EROFS when it's really ENOENT
1099	rm -f must not print a diagnostic for a nonexistent file.  However,
1100	most linux-based kernel unlinkat functions set errno to EROFS when
1101	the named file (regardless of whether it exists) would lie on a
1102	read-only file system.  remove.c now performs an extra fstatat call
1103	in that case, to determine whether the file exists.
1104	* src/remove.c (excise): Map EROFS to ENOENT, if a file is nonexistent.
1105	Reported by Steven Drake in <http://savannah.gnu.org/bugs/?27923>.
1106	* NEWS (Changes in behavior): Mention it.
1107
1108	tests: inotify-race: don't let malfunctioning gdb hang the test
1109	* tests/tail-2/inotify-race: Apply timeout to each gdb invocation.
1110
11112009-11-02  Eric Blake  <ebb9@byu.net>
1112
1113	build: avoid some warnings
1114	* gl/lib/mbsalign.c (mbsalign): Mark unused parameter.
1115	* bootstrap.conf (gnulib_modules): Remove obsolete
1116	rename-dest-slash.
1117	* gnulib-tests/Makefile.am (AM_CFLAGS): Reduce set of warnings for
1118	gnulib tests.
1119	* gl/modules/rename-tests.diff (Makefile.am): New file, to add
1120	LIBINTL to LDADD, since we avoid canonicalize-lgpl module.
1121	* gl/lib/regcomp.c.diff (regerror, calc_next)
1122	(build_collating_symbol, parse_bracket_element, build_equiv_class)
1123	(free_tree): Mark unused parameters.
1124	* gl/lib/regex_internal.h.diff (re_string_elem_size_at): New file,
1125	to mark unused parameters.
1126	* gl/lib/printf-args.c.diff (PRINTF_FETCHARGS): New file, to avoid
1127	type mismatch.
1128	* gl/lib/vasnprintf.c (VASNPRINTF): New file, to avoid shadowing
1129	local variable name.
1130	* .gitignore: Ignore temporary build artifacts.
1131
1132	build: update gnulib submodule to latest, for fewer compiler warnings
1133
11342009-10-31  Jim Meyering  <meyering@redhat.com>
1135
1136	admin: automate one more part of the release process
1137	This script automates the process of updating NEWS, performs
1138	the resulting final commit (thus with a consistent log message),
1139	and applies a signed tag (v$VERSION) to the result.
1140	* build-aux/do-release-commit-and-tag: New script.
1141	* README-release: Document it.
1142
1143	admin: fix typo in release procedure
1144	* README-release: s/gzip/coreutils/
1145
11462009-10-30  Jim Meyering  <meyering@redhat.com>
1147
1148	tests: prohibit fail=0 initialization
1149	* cfg.mk (sc_prohibit_fail_0): New rule.
1150	* .x-sc_prohibit_fail_0: New file.
1151	* Makefile.am (syntax_check_exceptions): Distribute the new file.
1152
1153	tests: factor 350 fail=0 initializations into test-lib.sh
1154	Run this command to remove the factored-out "fail=0" lines.
1155	perl -ni -e '/^fail=0$/ or print' $(g grep -l '^fail=0$')
1156	* tests/test-lib.sh: Initialize fail=0 here, not in 300+ scripts.
1157	* tests/...: nearly all bourne shell scripts
1158	Suggested by Eric Blake.
1159
1160	tests: remove the less-regular fail=0 assignments manually
1161	* tests/tail-2/assert-2:
1162	* tests/tail-2/assert:
1163	* tests/cp/file-perm-race:
1164	* tests/misc/df:
1165	* tests/misc/truncate-dir-fail:
1166
11672009-10-29  Jim Meyering  <meyering@redhat.com>
1168
1169	tests: don't let a fail=1 env. setting induce unwarranted test failure
1170	* cfg.mk (sc_fail_is_initialized): New rule.
1171	Fix the offenders:
1172	* tests/cp/acl: Set fail=0
1173	* tests/cp/backup-is-src: Likewise.
1174	* tests/cp/file-perm-race: Likewise.
1175	* tests/cp/reflink-auto: Likewise.
1176	* tests/cp/same-file: Likewise.
1177	* tests/ln/backup-1: Likewise.
1178	* tests/misc/su-fail: Likewise.
1179	* tests/misc/truncate-owned-by-other: Likewise.
1180	* tests/mkdir/p-3: Likewise.
1181	* tests/mkdir/selinux: Likewise.
1182	* tests/mkdir/special-1: Likewise.
1183	* tests/mv/acl: Likewise.
1184	* tests/mv/backup-is-src: Likewise.
1185	* tests/mv/diag: Likewise.
1186	* tests/mv/force: Likewise.
1187	* tests/mv/hard-link-1: Likewise.
1188	* tests/mv/into-self-3: Likewise.
1189	* tests/mv/sticky-to-xpart: Likewise.
1190	* tests/touch/now-owned-by-other: Likewise.
1191
1192	remove stray closing comment delimiter, "*/", in previous change
1193	* gl/lib/regexec.c.diff: Fix a typo.
1194
11952009-10-29  Eric Blake  <ebb9@byu.net>
1196
1197	maint: avoid exiting with magic number
1198	Cope with gnulib's new sc_prohibit_magic_number_exit rule.
1199
1200	* .x-sc_prohibit_magic_number_exit: New file, to add exemptions.
1201	* Makefile.am (syntax_check_exceptions): Distribute it.
1202	* lib/euidaccess-stat.c (main): Fix culprits.
1203	* src/chcon.c (main): Likewise.
1204	* src/runcon.c (main): Likewise.
1205	* src/setuidgid.c (main): Likewise.
1206
12072009-10-29  Jim Meyering  <meyering@redhat.com>
1208
1209	build (--enable-gcc-warnings): enable gcc's -Werror also in lib/
1210	* configure.ac (GNULIB_WARN_CFLAGS): Define.
1211	* lib/Makefile.am (AM_CFLAGS): Use $(GNULIB_WARN_CFLAGS)
1212	rather than $(WARN_CFLAGS) and add $(WERROR_CFLAGS).
1213	* gl/lib/regcomp.c.diff: New file.
1214	* gl/lib/regex_internal.c.diff: New file.
1215	* gl/lib/regexec.c.diff: New file.
1216
1217	build: update gnulib submodule to latest
1218
1219	build: allow whitespace violations in gl/lib/*.diff files
1220	* .gitattributes: Exempt gl/lib/*.diff.
1221	* .x-sc_prohibit_tab_based_indentation: Likewise.
1222	* .x-sc_space_tab:Likewise.
1223
12242009-10-29  Eric Blake  <ebb9@byu.net>
1225
1226	nice, nohup, su: detect write failure to stderr
1227	These programs can print non-fatal diagnostics to stderr prior to
1228	exec'ing a subsidiary program.  However, if we thought the situation
1229	warranted a diagnostic, we insist that the diagnostic be printed
1230	without error, rather than blindly exec, as it may be a security risk.
1231
1232	For an example, try 'nice -n -1 nice 2>/dev/full'.  Failure to raise
1233	priority (by lowering niceness) is not fatal, but failure to inform
1234	the user about failure to change priority is dangerous.
1235
1236	* src/nice.c (main): Declare failure if writing advisory message
1237	to stderr fails.
1238	* src/nohup.c (main): Likewise.
1239	* src/su.c (main): Likewise.
1240	* tests/misc/nice: Test this.
1241	* tests/misc/nohup: Likewise.
1242	* NEWS: Document this.
1243
12442009-10-28  Jim Meyering  <meyering@redhat.com>
1245
1246	doc: tell --enable-gcc-warnings users where to report problems
1247	* README-hacking: Add a caveat for --enable-gcc-warnings.
1248
1249	build: make doc checks more user-friendly
1250	* doc/Makefile.am (check-texinfo): Begin moving each individual test
1251	into its own rules.
1252	(sc-avoid-builtin, sc-avoid-path): New rules.
1253	Extracted from check-texinfo.
1254	(syntax_checks): Add them.
1255
1256	doc: avoid failing "make check"
1257	* doc/coreutils.texi (env invocation): s/builtin/built-in/
1258
12592009-10-28  Pádraig Brady  <P@draigBrady.com>
1260
1261	doc: improve the echo and printf help on escapes
1262	* src/printf.c (usage): Merge strings with echo.c to
1263	aid translators.  Move the description for \NNN beside
1264	the other numeric escape codes.  Don't mention
1265	"character" as that suggests character conversion.
1266	* src/echo.c (usage): Likewise.
1267	Also mention the \xHH escape sequence.
1268
1269	echo, printf: interpret \e as the Escape character
1270	Match gcc, perl, bash, ksh, tcsh, ... in supporting \e.
1271	* src/printf.c (print_escape_char): Output \x1B when \e encountered.
1272	* src/echo.c (main): Likewise.
1273	* src/stat.c (print_escape_char): Likewise.
1274	* doc/coreutils.texi (echo invocation): Add \e to the list.
1275	* tests/misc/printf: Verify that \e outputs \x1B.
1276	* NEWS: Mention the change in behaviour.
1277
12782009-10-28  Eric Blake  <ebb9@byu.net>
1279
1280	printenv: ignore bogus variable names
1281	Exposed by env a=b=c printenv a=b.
1282
1283	* src/printenv.c (main): Silently reject = in names.
1284	* tests/misc/printenv: Test for it.
1285	* NEWS: Document this.
1286
12872009-10-28  Pádraig Brady  <P@draigBrady.com>
1288
1289	maint: avoid "make syntax-check" failure
1290	* src/printenv.c: Remove unused "long-options.h"
1291
12922009-10-28  Eric Blake  <ebb9@byu.net>
1293
1294	doc: turn env comments into documentation
1295	* src/env.c: Convert introductory comments...
1296	* doc/coreutils.texi (env invocation): ...into documentation.
1297	Suggested by Jim Meyering.
1298
1299	env, printenv: add -0/--null option
1300	Allows for unambiguous processing when environment values (or even
1301	non-portable names!) contain newline.
1302
1303	* src/env.c (longopts): Add new option.
1304	(usage): Document it.
1305	(main): Implement it.
1306	* src/printenv.c (longopts): New variable.
1307	(usage): Document new option.
1308	(main): Implement it.
1309	* doc/coreutils.texi (Common options): New macro optNull.
1310	(du invocation, env invocation, printenv invocation): Use it.
1311	* NEWS: Mention this.
1312	* tests/misc/env-null: New test.
1313	* tests/Makefile.am (TESTS): Run it.
1314
1315	tests: add printenv coverage
1316	* tests/misc/printenv: New test.
1317	* tests/Makefile.am (TESTS): Run it.
1318	* .gitignore: Ignore more cruft.
1319
1320	tests: fix PATH problems on cygwin
1321	* tests/misc/sort-compress: Remove non-portable over-restriction
1322	of PATH; besides, commit 3ea177e changed sort to no longer default
1323	to gzip.
1324	* tests/rm/fail-eperm: Untaint, rather than clear, PATH.
1325	* tests/misc/pwd-long: Likewise.  Also skip test if long path
1326	cannot be created.
1327	(normalize_to_cwd_relative): Use eq rather than ==, since cygwin
1328	perl doesn't properly handle 64-bit ino_t numerically.
1329
13302009-10-27  Eric Blake  <ebb9@byu.net>
1331
1332	tests: clean up tests of env -- handling
1333	The comment in env.c about -- handling has not matched the behavior
1334	in the code since the initial commit back in 1992.
1335
1336	* src/env.c: Fix bogus comment.
1337	* tests/misc/env: Further tweaks, avoiding PATH problems inherent
1338	in testing -i, and testing program name containing =.
1339	* doc/coreutils.texi (env invocation): Mention that intermediate
1340	program is needed to invoke program with name containing =.
1341
1342	doc: document PATH interactions with env
1343	* doc/coreutils.texi (env invocation): Mention that PATH is
1344	modified prior to exec.
1345	* tests/misc/env: Test this.
1346
1347	env: reject bogus -u arguments
1348	* src/env.c (main): Use unsetenv rather than putenv to remove
1349	items from environ, and check for failure.
1350	* bootstrap.conf (gnulib_modules): Add unsetenv.
1351	* tests/misc/env: Test this.
1352	* NEWS: Document it.
1353
1354	maint: let gnulib provide environ
1355	* bootstrap.conf (gnulib_modules): Add environ.
1356	* src/env.c (environ): Delete declaration.
1357	* src/printenv.c (environ): Likewise.
1358	* src/stdbuf.c (environ): Likewise.
1359	* src/su.c (environ): Likewise.
1360
13612009-10-26  Eric Blake  <ebb9@byu.net>
1362
1363	tests: avoid file name not portable to cygwin
1364	* tests/misc/chroot-fail: Use 'no_such', not '...', since cygwin
1365	1.5 silently strips trailing dots.
1366	* tests/misc/nice-fail: Likewise.
1367	* tests/misc/stdbuf: Likewise.
1368	* tests/misc/timeout-parameters: Likewise.
1369
13702009-10-26  Jim Meyering  <meyering@redhat.com>
1371
1372	tests: rm/one-file-system: work around umount failure
1373	* tests/rm/one-file-system (cleanup_): Unmount a/b, rather than
1374	"$other_partition_tmpdir", to accommodate those who link /etc/mtab
1375	to /proc/mounts.  Reported by Gilles Espinasse in
1376	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18508
1377
1378	tests: adjust new env test not to fail
1379	* tests/misc/env: Create ./-i as a link to our "echo" binary,
1380	rather than as a bourne shell script, so that env can exec it.
1381	Set PATH to ".".
1382
1383	tests: nice: adjust new tests to work more portably
1384	* tests/misc/nice (tests): Accommodate a nice program for which
1385	"nice -n -1 nice" prints nothing.  It should print -1 or (usually) 0.
1386	Otherwise, we'd get syntax errors.
1387
1388	nice: execute program even when setpriority fails due to EACCES
1389	* src/nice.c (perm_related_errno): New function.
1390	(main): Use it, rather than testing only errno == EPERM.
1391	* NEWS (Bug fixes): Mention it.
1392
13932009-10-26  Pádraig Brady  <P@draigBrady.com>
1394
1395	timeout: don't orphan monitored programs if they ignore specified signals
1396	* src/timeout.c (install_signal_handlers): Handle any user
1397	specified signal, so that if it does not cause the child
1398	to exit then we don't exit and orphan the child. Previously this
1399	for example, would leave an orphan dd process running:
1400	timeout -sUSR1 1s dd if=/dev/zero of=/dev/null
1401	* NEWS: Mention the fix.
1402
14032009-10-24  Eric Blake  <ebb9@byu.net>
1404
1405	tests: test recent status changes
1406	* tests/misc/nice: Enhance test.
1407	* tests/misc/chroot-fail: New test.
1408	* tests/misc/env: Likewise.
1409	* tests/misc/nice-fail: Likewise.
1410	* tests/misc/su-fail: Likewise.
1411	* tests/Makefile.am (TESTS): Run new tests.
1412
1413	maint: move chroot test
1414	* tests/chroot/credentials: Move...
1415	* tests/misc/chroot-credentials: ...here, to reduce number of
1416	directories.
1417	* tests/Makefile.am (root_tests): Reflect rename.
1418
1419	tests: enhance stdbuf and timeout tests
1420	* tests/misc/timeout-parameters: Validate exact exit status.
1421	* tests/misc/stdbuf: Likewise.
1422	* tests/misc/timeout: Likewise.  Use require_built_.
1423	* tests/misc/arch: Likewise.
1424
1425	nohup: use EXIT_CANCELED if not POSIXLY_CORRECT
1426	* src/nohup.c (NOHUP_FAILURE): Rename...
1427	(POSIX_NOHUP_FAILURE): ...to this.
1428	(main): Pay attention to POSIXLY_CORRECT, to determine whether to
1429	use status 125 or 127.
1430	* doc/coreutils.texi (nohup invocation): Document this.
1431	* NEWS: Likewise.
1432	* tests/misc/invalid-opt (exit_status): Adjust expected results.
1433	* tests/misc/help-version (expected_failure_status): Likewise.
1434	* tests/misc/nohup: Likewise.
1435
1436	chroot, env, nice, su: use EXIT_CANCELED for internal failure
1437	* src/chroot.c (main): Use EXIT_CANCELED, not EXIT_FAILURE.
1438	* src/env.c (main): Likewise.
1439	* src/nice.c (main): Likewise.
1440	* src/su.c (change_identity, main): Likewise.
1441	* doc/coreutils.texi (chroot invocation, env invocation)
1442	(nice invocation, su invocation): Document this.
1443	* NEWS: Likewise.
1444	* tests/misc/invalid-opt (exit_status): Adjust expected results.
1445	* tests/misc/help-version (expected_failure_status): Likewise.
1446
1447	tests: accommodate BSD getopt
1448	* tests/misc/invalid-opt (err_subst): Support alternate spelling.
1449
14502009-10-23  Eric Blake  <ebb9@byu.net>
1451
1452	build: prohibit improper use of stat and lstat
1453	* cfg.mk (sc_prohibit_stat_macro_address): New rule.
1454	* src/ln.c (do_link): Adjust comment to avoid false positive.
1455	* src/stat.c (do_stat): Likewise.
1456	* src/touch.c (main): Likewise.
1457
1458	build: update gnulib submodule to latest, for test cleanups
1459
14602009-10-22  Eric Blake  <ebb9@byu.net>
1461
1462	maint: turn on compiler warnings for gnulib tests
1463	* gnulib-tests/Makefile.am (AM_CFLAGS): Add WARN_CFLAGS.
1464	* configure.ac (enable-gcc-warnings): Also use -funit-at-a-time,
1465	to silence gcc 4.3.4 -Wdisabled-optimization.
1466	* .gitignore: Ignore some more files.
1467
14682009-10-22  Jim Meyering  <meyering@redhat.com>
1469
1470	build: prohibit direct use of readlink or readlinkat
1471	* cfg.mk (sc_prohibit_readlink): New rule.
1472	Suggested by Eric Blake.
1473
14742009-10-22  Giuseppe Scrivano  <gscrivano@gnu.org>
1475
1476	tests: add a test for the `tail -f' race condition bug
1477	If new data becomes available between the initial read and when tail
1478	registers the inotify watch descriptors, ensure that it is read
1479	before a new event happens on the file.
1480	* tests/Makefile.am (TESTS): Add tail-2/inotify-race.
1481	* tests/tail-2/inotify-race: New file.
1482
1483	tail -f: avoid a race condition
1484	* NEWS (Bug fixes): Mention it.
1485	* src/tail.c (check_fspec): New function.
1486	(tail_forever_inotify): Ensure there is no new data before entering the
1487	inotify events wait loop.
1488
14892009-10-22  Eric Blake  <ebb9@byu.net>
1490
1491	build: update gnulib submodule to latest, for utimens enhancements
1492
1493	tests: ensure touch honors trailing slash
1494	* tests/touch/trailing-slash: New test.
1495	* tests/Makefile.am (TESTS): Run it.
1496
14972009-10-21  Pádraig Brady  <P@draigBrady.com>
1498
1499	md5sum, sha*sum, sum: line-buffer the printed checksums
1500	* src/md5sum.c (main): Set stdout to line buffered mode
1501	to ensure parallel running instances don't intersperse
1502	their output.  This adds 5% to the run time in the worst case
1503	of many zero length files, or 2% with standard file sizes.
1504	* src/sum.c (main): Likewise.
1505	* tests/misc/md5sum-parallel: New test for atomic output.
1506	* tests/Makefile.am: Reference it.
1507	* NEWS: Mention the fix
1508
15092009-10-20  Pádraig Brady  <P@draigBrady.com>
1510
1511	maint: issue warnings for more missing optional libraries
1512	* README-hacking: Suggest to use ./configure --quiet so that
1513	any warnings are easily noticed.
1514	* m4/gmp.m4 (cu_GMP): Warn if libgmp is not available.
1515	* m4/jm-macros.m4 (coreutils_MACROS): Normalize the libcap warning.
1516	* m4/xattr.m4 (gl_FUNC_XATTR): Warn if libattr is not available.
1517
15182009-10-19  Jim Meyering  <meyering@redhat.com>
1519
1520	build: use gnulib's isblank module
1521	* bootstrap.conf (gnulib_modules): Add isblank.
1522	* src/system.h (isblank): Don't define.
1523	* m4/check-decl.m4: Don't check for isblank declaration.
1524	* gnulib: Update submodule to latest.
1525
15262009-10-18  Jim Meyering  <meyering@redhat.com>
1527
1528	maint: factor out duplication in currently unused rules
1529	* src/Makefile.am (fs_normalize_perl_subst): Define.
1530	(fs-magic, fs-kernel-magic): Use it.
1531
15322009-10-17  Eric Blake  <ebb9@byu.net>
1533
1534	touch: add -h to change symlink timestamps, where supported
1535	* src/touch.c (no_dereference): New flag variable.
1536	(longopts): Add -h/--no-dereference.
1537	(touch): Add symlink handling.
1538	(usage): Document new option.
1539	(main): Accept new option.
1540	* NEWS: Document it.
1541	* doc/coreutils.texi (touch invocation): Likewise.  Also mention
1542	birthtime.
1543	* tests/touch/no-dereference: New test.
1544	* tests/Makefile.am (TESTS): Run it.
1545
15462009-10-17  Jim Meyering  <meyering@redhat.com>
1547
1548	tests: abmon-align: avoid test failure
1549	* tests/ls/abmon-align: Don't remove (1d;) the first line of output.
1550	That was making the test consider only 11 of 12 month names.
1551	Rewrite not to use \(.*\), as that provoked a malfunction in GNU sed
1552	on powerpc Mac OS X (though we don't know yet whether this is due to a
1553	sed bug, or to miscompilation).  Nelson Beebe reported the test failure.
1554
1555	build: update gnulib submodule to latest
1556
15572009-10-15  Jim Meyering  <meyering@vm.meyering.net.localdomain>
1558
1559	build: don't let environment settings perturb build
1560	Setting the envvars, LIB_FDATASYNC, LIB_XATTR or LIB_CRYPT
1561	could cause a configure-time and/or build-time malfunction.
1562	Typically, a configure-time function-in-library test is performed
1563	via code like this:
1564
1565	  LIB_VAR=
1566	  AC_SUBST([LIB_VAR])
1567	  prefix_saved_LIBS=$LIBS
1568	    AC_SEARCH_LIBS([FUNC], [LIB_NAME],
1569	                   [test "$ac_cv_search_FUNC" = "none required" ||
1570	                    LIB_VAR=$ac_cv_search_FUNC])
1571	  LIBS=$prefix_saved_LIBS
1572
1573	However, in each of the files affected by this change, the LIB_VAR=
1574	initialization was omitted.  Thus, when set in the environment, its
1575	value would propagate into generated Makefiles when FUNC is not found
1576	in LIB_NAME.
1577	* m4/jm-macros.m4 (coreutils_MACROS): Initialize AC_SUBST'd var
1578	* m4/lib-check.m4 (cu_LIB_CHECK): Likewise.
1579	* m4/xattr.m4 (gl_FUNC_XATTR): Likewise.
1580
15812009-10-13  C de-Avillez  <hggdh2@gmail.com>
1582
1583	tail: add add missing backslash at the end of a line in usage
1584	* src/tail.c (usage): Add missing backslash at the end of a line.
1585
15862009-10-12  Eric Blake  <ebb9@byu.net>
1587
1588	tail: tweak usage for more clarity
1589	* src/tail.c (usage): Spell out -n +K.
1590	* THANKS: Update.
1591	Reported by Jan-Pawel Wrozstinski.
1592
15932009-10-10  Eric Blake  <ebb9@byu.net>
1594
1595	touch: optimize use of utimens
1596	* src/touch.c (main): Use UTIME_NOW rather than calling gettime.
1597	(touch): Use UTIME_OMIT rather than stat.
1598
1599	copy: allow symlink timestamp preservation on more systems
1600	* src/copy.c (utimens_symlink): Simplify by using lutimens.
1601	* m4/jm-macros.m4 (coreutils_MACROS): Drop utimensat; gnulib does
1602	this for us.
1603	* tests/cp/preserve-slink-time: Recognize lutimes support.
1604
1605	build: update gnulib submodule to latest, for utimens improvements
1606
16072009-10-10  Jim Meyering  <meyering@redhat.com>
1608
1609	tests: adjust tail-2/pid to work around FreeBSD 6.1 failure
1610	* tests/tail-2/pid: Run tail -f --pid=... on an actual file, not on
1611	/dev/null, to avoid this failure on FreeBSD 6.1: tail: /dev/null:
1612	cannot change nonblocking mode: Inappropriate ioctl for device
1613
16142009-10-10  Eric Blake  <ebb9@byu.net>
1615
1616	maint: touch up previous LDADD patch
1617	* src/Makefile.am (dir_LDADD): Delete; the ls_LDADD line covers this.
1618
16192009-10-10  Jim Meyering  <meyering@redhat.com>
1620
1621	build: build uname(1) unconditionally
1622	Before, on a system without the uname function, the build
1623	system would detect that and not build/install a uname program.
1624	Now that gnulib guarantees a uname function, ...
1625	* configure.ac: Don't check for the uname function.
1626	* src/Makefile.am (build_if_possible__progs): Move uname...
1627	(EXTRA_PROGRAMS): ...to this list.
1628
1629	maint: list program names one per line
1630	* src/Makefile.am (EXTRA_PROGRAMS): List them one per line.
1631	(build_if_possible__progs): Likewise.
1632
1633	build: ls: fix link failure due to missing -lacl
1634	* src/Makefile.am (ls_LDADD): Re-add $(LIB_ACL).
1635	Inadvertently-removed by commit 78c93601.
1636
16372009-10-10  Eric Blake  <ebb9@byu.net>
1638
1639	maint: touch up previous LDADD patch
1640	* src/Makefile.am (stdbuf_LDADD): Add missing primer.
1641	(hostname_LDADD, uname_LDADD): Add GETHOSTNAME_LIB.
1642	* bootstrap.conf (gnulib_modules): Add uname.
1643
1644	maint: improve additional library tracking
1645	* src/Makefile.am (LDADD): Refactor, to make per-library additions
1646	to individual programs easier to maintain.
1647
16482009-10-09  Jim Meyering  <meyering@redhat.com>
1649
1650	chcon: don't disable just because SELinux is disabled
1651	* src/chcon.c (main): Now that gnulib provides getfilecon wrappers,
1652	we can revert most of the 2009-10-05 commit 3a97d664, "chcon: exit
1653	immediately if SELinux is disabled", since chcon is still useful as
1654	long as the file system provides handlers for the security.*
1655	name space.  gnulib's getfilecon wrappers ensure that an offending
1656	context now evokes a return value of -1.
1657	Prompted by comments from Stephen Smalley in
1658	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18394
1659	* NEWS (Bug fixes): Mention it.
1660
1661	ls: remove explicit getfilecon work-around
1662	* src/ls.c (gobble_file): Remove l?getfilecon work-around,
1663	now that the gnulib wrappers handle it for us.
1664
1665	build: update gnulib submodule to latest, for getfilecon wrappers
1666
16672009-10-09  Eric Blake  <ebb9@byu.net>
1668
1669	maint: use X2NREALLOC in more places
1670	* src/chroot.c (set_additional_groups): Use X2NREALLOC rather than
1671	x2nrealloc.
1672	* src/factor.c (emit_factor): Likewise.
1673	* src/setuidgid.c (main): Likewise.
1674
1675	maint: remove unused macros and declarations
1676	* src/system.h (EDQUOT, EISDIR, ENOSYS, EOVERFLOW, F_OK, X_OK)
1677	(W_OK, R_OK): Delete; macros provided by gnulib.
1678	(includes): Gnulib guarantees both <time.h> and <sys/time.h>, in
1679	either order.
1680	(free, malloc, memchr, realloc, getenv, lseek): Delete, gnulib
1681	guarantees these declarations.
1682	* m4/check-decl.m4 (gl_CHECK_DECLS): Delete checks now done by
1683	gnulib.
1684
1685	maint: move timeout exit statuses
1686	* src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Remove as
1687	macros...
1688	* src/system.h (EXIT_TIMEDOUT, EXIT_CANCELED): ...and provide as
1689	enum values instead.
1690	* src/stdbuf.c (EXIT_CANCELED): Delete.
1691
1692	stat: test recent patch
1693	* tests/misc/stat-slash: New test.
1694	* tests/Makefile.am (TESTS): Run it.
1695
16962009-10-08  Eric Blake  <ebb9@byu.net>
1697
1698	stdbuf: improve path search
1699	* src/stdbuf.c (set_program_path): Use gnulib methods for better
1700	file name handling.
1701	* bootstrap.conf (gnulib_modules): Add xreadlink.
1702
1703	stat: work with recent gnulib changes
1704	* src/stat.c (do_stat): Don't mask function-like stat macro.
1705
17062009-10-08  Jim Meyering  <meyering@redhat.com>
1707
1708	stat: add support for many more file system types
1709	* src/stat.c (human_fstype): Add the following FS types,
1710	from <linux/magic.h>: afs, anon-inode FS, btrfs, cgroupfs,
1711	cramfs-wend, debugfs, futexfs, inotifyfs, minux3, securityfs,
1712	selinux, xenfs.
1713	Also add "nilfs".
1714	* src/Makefile.am (fs-kernel-magic): New rule.
1715	* NEWS (Bug fixes): Mention this.
1716
1717	stat: recognize CIFS and HFS file system types
1718	* src/stat.c (human_fstype) [CIFS, HFS]: Add new file system types.
1719	Prompted by a report from Stuart Kemp.
1720	Normalize the form of a few hexadecimal magic numbers.
1721	Alphabetize on S_MAGIC_ case names.
1722	* src/Makefile.am (fs-magic-compare, fs-def, fs-magic): New rules, to
1723	automate comparison of our list with that in the Linux statfs man page.
1724	* NEWS (Bug fixes): Mention it.
1725
17262009-10-07  Guenter Knauf  <lists@gknw.net>
1727
1728	md5sum, sha*sum: also accept openssl checksum syntax
1729	* src/md5sum.c (split_3): Accept openssl checksum syntax, which
1730	differs only by two spaces from that of the bsd checksum tools:
1731	openssl: MD5(f)= d41d8cd98f00b204e9800998ecf8427e
1732	bsd:     MD5 (f) = d41d8cd98f00b204e9800998ecf8427e
1733
17342009-10-06  Jim Meyering  <meyering@redhat.com>
1735
1736	maint: make release-making instructions more generic
1737	* README-release: Make instructions more generic.
1738
1739	post-release administrivia
1740	* NEWS: Add header line for next release.
1741	* .prev-version: Record previous version.
1742	* cfg.mk (old_NEWS_hash): Auto-update.
1743
1744	version 8.0
1745	* NEWS: Record release date.
1746
1747	build: update gnulib submodule to latest
1748
17492009-10-06  Ondřej Vašík  <ovasik@redhat.com>
1750
1751	chcon: exit immediately if SELinux is disabled
1752	This change happens to avoid an abort in chcon when SELinux is
1753	disabled while operating on a file with an "unlabeled" context from
1754	back in 2006.  However, that same abort can still be triggered by the
1755	same file when running chcon with SELinux enabled.  This bug in chcon
1756	will be fixed in a subsequent commit via a getfilecon wrapper.  See
1757	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18384
1758	for how to correct your disk attributes to avoid triggering this bug.
1759	* src/chcon.c (main): Exit immediately if SELinux is disabled.
1760	Reported in http://bugzilla.redhat.com/527142 by Yanko Kaneti.
1761	* src/runcon.c (main): Do not hardcode program name in error message.
1762	* THANKS: Update.
1763
17642009-10-03  Jim Meyering  <meyering@redhat.com>
1765
1766	build: update gnulib submodule to latest
1767
17682009-10-02  James R. Van Zandt  <jrvz@comcast.net>
1769
1770	dircolors: highlight .cgm and .emf as images
1771	* src/dircolors.hin: Add .cgm, .emf.
1772	* THANKS: Update.
1773
17742009-10-02  Jim Meyering  <meyering@redhat.com>
1775
1776	maint: remove obsolete syntax-check exclusion
1777	* cfg.mk (local-checks-to-skip): Remove strftime-check.
1778
17792009-10-02  Pádraig Brady  <P@draigBrady.com>
1780
1781	tail: avoid a race where we could miss new data with --pid
1782	* src/tail.c (tail_forever, tail_forever_inotify): Close a race in
1783	tail_forever_inotify where new data written after the file check by
1784	a now dead process, but before the pid check, is not output.  We use
1785	the POSIX guarantee that read() and write() are serialized wrt each
1786	other even in separate processes, to assume full file consistency
1787	after exit() and so poll for new data _after_ the writer has exited.
1788	This also allows us to not redundantly _wait_ for new data if the
1789	process is dead.
1790	* tests/tail-2/pid: Remove the now partially invalid sub second sleep
1791	check as we now don't unconditionally wait, and replace it with a check
1792	for the redundant sleep.  Also clarify some of the existing comments.
1793	* NEWS: Mention the fix.
1794
17952009-10-02  Jim Meyering  <meyering@redhat.com>
1796
1797	maint: move gnu-web-doc-update script to gnulib
1798	* bootstrap.conf (gnulib_modules): Add gnu-web-doc-update.
1799	Remove gendocs, since gnu-web-doc-update depends on it.
1800	* gnu-web-doc-update: Remove file, now that we get it from gnulib.
1801
1802	build: update gnulib submodule to latest
1803
18042009-09-30  Jim Meyering  <meyering@redhat.com>
1805
1806	tests: tail-2/pid: use a 3-second timeout, not 1
1807	* tests/tail-2/pid: When using the timeout program to ensuring that
1808	tail -s.1 --pid=$PID_T_MAX does not wait forever, use a timeout longer
1809	than 1 second.  A 1-second timeout could be too short on a very busy
1810	system, and result in a timeout, and hence false-positive failure.
1811
1812	2009-09-30  Jim Meyering  <meyering@redhat.com>
1813
1814	build: update gnulib submodule to latest
1815
1816	build: translate diagnostics from two new files
1817	* po/POTFILES.in: Add two new files: lib/siglist.h, lib/strsignal.c
1818
1819	build: now that we use the lock module, don't exclude lock.m4
1820	* bootstrap.conf: Don't exclude lock.m4.
1821
18222009-09-30  Pádraig Brady  <P@draigBrady.com>
1823
1824	ls: always print "?" for allocated size of a dereferenced dangling symlink
1825	Previously for `ls -Ls` (but not `ls -Lsl`), we referenced
1826	the st_blocks returned from the previous failed stat() call.
1827	This undefined value was seen to be 0 for dangling symlinks at least.
1828	* src/ls.c (print_file_name_and_frills, length_of_file_name_and_frills):
1829	Don't use st_blocks if the previous stat() failed
1830	* tests/ls/dangle: Add a test case
1831	* NEWS: Mention the fix, and roll up related items into a single entry.
1832
18332009-09-30  Jim Meyering  <meyering@redhat.com>
1834
1835	build: use gnulib's freopen module
1836	* bootstrap.conf (gnulib_modules): Add freopen, strsignal, fsync.
1837	Exposed via make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
1838	|perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
1839	|sort |uniq -c|sort -nr
1840	(avoided_gnulib_modules): Don't avoid the "lock" module.
1841	Now it's required, as a dependency of the strsignal module.
1842
18432009-09-29  Jim Meyering  <meyering@redhat.com>
1844
1845	stat: interpret "-" as standard input
1846	* src/stat.c (do_stat): Interpret a command line argument of "-"
1847	to mean "standard input", like many other tools do.
1848	(do_statfs): Fail upon any attempt to use "-".
1849	* NEWS (Changes in behavior): Mention it.
1850	* tests/misc/stat-hyphen: New test, to exercise the above.
1851	* tests/Makefile.am (TESTS): Add misc/stat-hyphen.
1852
1853	ls: don't use an undefined struct stat after failed stat/lstat
1854	* src/ls.c (format_inode): Access f->stat only if f->stat_ok is set.
1855	* NEWS (Bug fixes): Mention it.
1856	Improved-by: Pádraig Brady <P@draigBrady.com>
1857
1858	ls: print "?", not "0" as inode of dereferenced dangling symlink
1859	ls prints inode numbers two ways: for long (-l) listings,
1860	and for short ones, e.g., ls -li and ls -i.  The code to print
1861	long listings properly printed "?" when the inode was unknown,
1862	but the code for handling short listings would print 0 instead.
1863	Factor out the formatting code into a new function so ls prints
1864	the right string ("?") from both places:
1865	* NEWS (Bug fixes): Mention it.
1866	* src/ls.c (format_inode): New function.
1867	(print_long_format): Use it here.
1868	(print_file_name_and_frills): Use it here, too.
1869	* tests/ls/dangle: Exercise this fix.
1870	Reported by Yang Ren in http://bugzilla.redhat.com/525400
1871
1872	ls: with -LR, exit with status 2 upon detecting a cycle
1873	* src/ls.c (print_dir): Diagnosing the cycle is not enough.
1874	Also set exit status to 2.  This is what Solaris' /bin/ls does, too.
1875	* tests/ls/infloop: Rework test: match both expected stdout and stderr.
1876	Require an exit status of 2 in this case.
1877	* doc/coreutils.texi (ls invocation): Mention that a loop provokes
1878	in an exit status of 2.
1879	* NEWS (Bug fixes): Mention it.
1880	Reported by Yang Ren in http://bugzilla.redhat.com/525402.
1881	* THANKS: Correct ordering of Yang Ren's names.
1882
18832009-09-26  Jim Meyering  <meyering@redhat.com>
1884
1885	maint: factor coreutils-specific code out of bootstrap
1886	* bootstrap (bootstrap_epilogue): Define a default, empty function.
1887	Remove coreutils-specific code, and instead,
1888	invoke this new function at the end of this script.
1889	* bootstrap.conf (bootstrap_epilogue): Define, to override the default.
1890
18912009-09-25  Eric Blake  <ebb9@byu.net>
1892
1893	cp, mv: use linkat to guarantee semantics
1894	* src/copy.c (copy_internal): Use linkat, not link.
1895
1896	ln: add -L/-P options
1897	* src/ln.c (STAT_LIKE_LINK): Delete.
1898	(logical): New flag.
1899	(long_options): Add -L, -P.
1900	(usage): Mention them.
1901	(main): Choose between them.
1902	(do_link): Perform correct action.
1903	* tests/ln/misc: Move hard-to-sym portion of test...
1904	* tests/ln/hard-to-sym: ...into new test, and add more.
1905	* tests/Makefile.am (TESTS): Run new test.
1906	* NEWS: Document this.
1907	* doc/coreutils.texi (link invocation, ln invocation): Likewise.
1908	* bootstrap.conf (gnulib_modules): Add linkat.
1909
1910	build: update gnulib submodule to latest
1911
19122009-09-23  Pádraig Brady  <P@draigBrady.com>
1913
1914	maint: Use logical rather than bitwise operators on bools
1915	This is because bitwise operators are:
1916	- confusing and inconsistent in a boolean context
1917	- non short circuiting
1918	- brittle in C89 where bool can be an int (so > 1)
1919
1920	maint: expr: avoid compiler warnings without GMP
1921	* src/expr.c (mpz_clear, mpz_get_str, mpz_out_str)
1922	[!HAVE_GMP]: Reference unused arguments.
1923
19242009-09-23  Eric Blake  <ebb9@byu.net>
1925
1926	build: update gnulib submodule to latest
1927
1928	maint: summarize gnulib changes
1929	* NEWS: Provide a blurb about recent gnulib improvements.  Fix typo
1930	in readlink blurb.
1931
19322009-09-23  Jim Meyering  <meyering@redhat.com>
1933
1934	doc: ls: further improve --help message re --color
1935	* src/ls.c (usage): Correct grammar, change voice, shorten.
1936	Inspired by a report from Bruno Schulenberg.
1937
19382009-09-23  Eric Blake  <ebb9@byu.net>
1939
1940	readlink: pick up gnulib changes to readlink -f
1941	* bootstrap.conf (obsolete_gnulib_modules): Move rename...
1942	(gnulib_modules): ...here.  Add symlink.
1943	* NEWS: Document the change in readlink.
1944	* doc/coreutils.texi (readlink invocation): Likewise.
1945	* tests/readlink/can-f: Update test to new semantics, and add test
1946	of loop.
1947
19482009-09-23  Jim Meyering  <meyering@redhat.com>
1949
1950	maint: df.c: adapt to newer gnulib
1951	* src/df.c: Don't include "canonicalize.h".  No longer needed,
1952	since canonicalize_file_name is now guaranteed to be declared
1953	in <stdlib.h>, thanks to gnulib.
1954
1955	build: update gnulib submodule to latest
1956
19572009-09-22  Pádraig Brady  <P@draigBrady.com>
1958
1959	doc: stdbuf: mention it can have a non standard exit status
1960	* doc/coreutils.texi (Exit status): Add stdbuf to the list
1961
1962	maint: uptime: fix a theoretical compile warning
1963	* src/uptime.c (print_uptime) [!HAVE_UTMPX_H && !HAVE_UTMP_H]:
1964	Reference possibly unused arguments.
1965
1966	ls: fix a performance regression
1967	* src/ls.c (print_color_indicator): This reinstates commit f3f1ccfd,
1968	21-10-2008, "ls: make it possible to disable file capabilities checking"
1969	which was inadvertently reverted with commit 3a169f4c, 14-09-2009,
1970	"ls: handle disabling of colors consistently ...".
1971
19722009-09-22  Eric Blake  <ebb9@byu.net>
1973
1974	build: avoid compiler warnings on cygwin 1.5
1975	* src/copy.c (utimens_symlink): Avoid unused variables.
1976	* src/su.c (getusershell): Rely on gnulib for prototype.
1977
19782009-09-21  Jim Meyering  <meyering@redhat.com>
1979
1980	doc: ls: add an article, "the"
1981	* src/ls.c (usage): Tweak wording.
1982
19832009-09-21  Pádraig Brady  <P@draigBrady.com>
1984
1985	ls: handle disabling of colors consistently for all tile types
1986	* src/ls.c (print_color_indicator): Use consistent syntax for
1987	all file and directory subtypes, and fall back to the color
1988	of the base type if there is no enabled color for the subtype.
1989	This allows turning off specific colors for o+w dirs for example.
1990	* tests/ls/color-dtype-dir: Add a case to test that turning off
1991	coloring for o+w directories, falls back to standard dir color.
1992	* NEWS: Mention the fix
1993	Introduced by commit ac467814, 2005-09-05,
1994	"Colorize set-user-ID ... files and sticky ... directories."
1995
1996	doc: ls: make help for --color more concise and accurate
1997	* src/ls.c (usage): Shorten the --color ancillary info by
1998	two lines, while replacing --color=none with --color=never.
1999	Mention "always" is the default parameter of the --color option,
2000	along with the primary help for that option.
2001	Mention the ancillary --color info in the --color primary help.
2002
2003	doc: normalize and add missing entries to texinfo menu
2004	* doc/coreutils.texi: Add the missing arch, base64, link, readlink,
2005	and unlink entries.  Also remove extraneous '.' from some entries
2006	and try to align all entries on the same column.
2007	* THANKS: Add Benno Schulenberg.
2008
2009	doc: mention the texinfo documentation in --help
2010	* src/system.h: Rename emit_bug_reporting_address() to
2011	emit_ancillary_info() and update it to not print the translation
2012	project address in en_* locales, and _do_ print it in the 'C'
2013	(and other) locales so that it's included in the default man page.
2014	Also mention how to invoke the texinfo documentation for each command.
2015	Also move the "hard-locale.h" include to the 8 files that now use it.
2016	* man/help2man: Strip the newly added texinfo reference from the
2017	--help output as a more verbose version is already added by help2man.
2018	Suggestion from C de-Avillez
2019
20202009-09-21  Jim Meyering  <meyering@redhat.com>
2021
2022	maint: automate the web-doc updating procedure
2023	* gnu-web-doc-update: New script, destined for gnulib.
2024	* README-release: Refer to the new script.
2025
20262009-09-19  Jim Meyering  <meyering@redhat.com>
2027
2028	dircolors: arrange to highlight names with the .lz suffix
2029	* src/dircolors.hin: Add .lz, for GNU lzip.
2030	Suggested by Matias A. Fonzo.
2031
2032	mktemp: adapt to new, 3-argument gen_tempname_len
2033	* src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers of
2034	gen_tempname_len.
2035	* gl/lib/tempname.c, gl/lib/tempname.h: Rebase against recently
2036	API-modified copy of tempname module in gnulib.
2037	Reported by Lluís Batlle.
2038
20392009-09-17  Jim Meyering  <meyering@redhat.com>
2040
2041	build: merge bootstrap changes from gnulib
2042	* bootstrap: Update from gnulib.
2043
20442009-09-17  Eric Blake  <ebb9@byu.net>
2045
2046	rm, rmdir: improve cross-compilation support
2047	* bootstrap.conf (gnulib_modules): Drop rmdir-errno.
2048	* src/rmdir.c (errno_rmdir_non_empty): Check both cases allowed by
2049	POSIX, rather than relying on configure-time check that might
2050	fail during cross-compilation.  Reverts commit 9b6eb98d41.
2051
20522009-09-15  Ondřej Vašík  <ovasik@redhat.com>
2053
2054	cp: fix a probably redundant chmod when setting xattrs
2055	* src/copy.c (copy_reg): Fix initial value of access_changed variable.
2056	This was introduced by Pádraig Brady in commit cca83faf, 2009-09-14,
2057	"cp,mv: preserve extended attributes even for read-only files"
2058
20592009-09-14  Jim Meyering  <meyering@redhat.com>
2060
2061	doc: NEWS: mention origin of touch -t ....60 bug
2062	* NEWS: It is an old bug.
2063
2064	doc: touch, document that it accepts .60
2065	* doc/coreutils.texi (touch invocation): Document that SS may be 60.
2066
2067	touch: don't reject "60" as number of seconds in a legacy time stamp
2068	A valid command like "touch -t 197101010000.60 F" would fail due
2069	to the suffix of ".60".  This bug is fixed via the latest change
2070	to gnulib's posixtm module.
2071	* tests/touch/60-seconds: New test.
2072	* tests/Makefile.am (TESTS): Add it.
2073	* NEWS (Bug fixes): Mention it.
2074
2075	build: update gnulib submodule to latest, for fixed posixtm module
2076
2077	maint: use #!/bin/sh consistently in shell-based test scripts
2078	* tests/misc/sort-continue: Change first line to standard #!/bin/sh,
2079	not #!/bin/bash (though it doesn't matter, since each is invoked
2080	via $(SHELL) dir/test-name.
2081
20822009-09-14  Pádraig Brady  <P@draigBrady.com>
2083
2084	tests: fix dd/skip-seek-past-file to work on ecryptfs
2085	* tests/dd/skip-seek-past-file: Require sparse support
2086	to ensure that when we're checking if we can create an
2087	$OFF_T_MAX length file, that we don't actually allocate
2088	any space.  This was an issue on ecryptfs and was reported
2089	by Bert Wesarg.
2090
20912009-09-14  Ondřej Vašík  <ovasik@redhat.com>
2092
2093	cp,mv: preserve extended attributes even for read-only files
2094	* src/copy.c (copy_reg): Temporarily set u+rw on the destination file
2095	to allow GNU/Linux to set xattrs.
2096	* tests/misc/xattr: Test that change.
2097	* NEWS (Bug fixes): Mention it.
2098	Reported by Ernest N. Mamikonyan.
2099
21002009-09-14  Jim Meyering  <meyering@redhat.com>
2101
2102	doc: improve timeout's --help message
2103	* src/timeout.c (usage): Improve --help description.
2104
21052009-09-13  Jim Meyering  <meyering@redhat.com>
2106
2107	maint: use consistent cpp indentation in all .c files
2108	* src/stty.c: Make cpp indentation reflect nesting.
2109	* src/factor.c: Likewise.
2110
2111	doc: NEWS: say quadratic and linear, rather than O(N^2) and O(N)
2112	* NEWS: Use a slightly less technical description.
2113	Suggested by Andreas Schwab.
2114
2115	doc: improve NEWS
2116	* NEWS (rm -r, without -f): Mention that the N in "O(N)" represents
2117	hierarchy depth.  Suggested by Ralf Wildenhues.
2118	(rm -r, standards conformance): Make wording more accurate.
2119
21202009-09-11  Jim Meyering  <meyering@redhat.com>
2121
2122	id: don't print context=... when POSIXLY_CORRECT is set
2123	* src/id.c (print_full_info) [POSIXLY_CORRECT]: Don't print context.
2124	Reported by Ulrich Drepper.
2125	* NEWS (Changes in behavior): Mention it.
2126	* doc/coreutils.texi (id invocation): Document that id also prints the
2127	security context, when possible, and when POSIXLY_CORRECT is not set.
2128	* tests/id/no-context: New file.  Test for this.
2129	* tests/Makefile.am (TESTS): Add it.
2130
21312009-09-11  Eric Blake  <ebb9@byu.net>
2132
2133	rm: avoid compiler warning
2134	* src/remove.c (rm_fts): Don't allow fall-through when assertions
2135	are disabled.
2136
2137	euidaccess-stat: remove unnecessary macros
2138	* lib/euidaccess-stat.c (F_OK, R_OK, W_OK, X_OK): Delete; now
2139	guaranteed by gnulib.
2140
2141	rm: use gnulib faccessat
2142	* bootstrap.conf (gnulib_modules): Add faccessat.  Replace strdup
2143	with strdup-posix.
2144	* m4/jm-macros.m4 (coreutils_MACROS): Revert previous change, now
2145	that gnulib does it for us.
2146	* src/remove.c (write_protected_non_symlink): Use faccessat in
2147	more situations.
2148
21492009-09-11  Jim Meyering  <meyering@redhat.com>
2150
2151	rm: improve efficiency of rm -r (without -f) from O(N^2) to O(N)
2152	where N is the depth of the deepest hierarchy rm is processing.
2153	* src/remove.c (write_protected_non_symlink): Use faccessat to
2154	avoid O(N)-per-entry cost of calling euidaccess.
2155	* m4/jm-macros.m4 (coreutils_MACROS): Check for faccessat.
2156	* NEWS (Improvements): Mention it.
2157
2158	build: placate gcc's new -Wskip-jump-init
2159	* remove.c (rm_fts): Put braces around each of the two offending blocks.
2160	* configure.ac: Don't turn off -Wjump-misses-init.
2161	With the rewrite of remove.c, it is no longer needed.
2162
2163	rm: rewrite to use fts
2164	* remove.c: Don't include "unlinkdir.h"; no longer used.
2165	Do not include <setjmp.h> or "cycle-check.h".  Likewise.
2166	Include "xfts.h".
2167	(dir_name, dir_len): Remove definitions.
2168	(CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Likewise.
2169	(INODE_SORT_DIR_ENTRIES_THRESHOLD, NEED_REWIND, D_TYPE): Likewise.
2170	(struct dirstack_state, Dirstack_state): Likewise.
2171	(g_buf, g_n_allocated): Remove declarations.
2172	(hash_freer, hash_compare_strings, rm_malloc): Remove functions.
2173	(rm_free, push_dir, top_dir, pop_dir, right_justify): Likewise.
2174	(full_filename0, xfull_filename, full_filename_): Likewise.
2175	(AD_stack_height, AD_stack_top, AD_stack_pop, AD_stack_clear): Likewise.
2176	(obstack_init_minimal, ds_init, ds_clear, ds_free): Likewise.
2177	(AD_pop_and_chdir, AD_ensure_initialized, AD_mark_helper): Likewise.
2178	(AD_mark_as_unremovable, AD_mark_current_as_unremovable): Likewise.
2179	(AD_push_initial, AD_push, AD_push, AD_is_removable): Likewise.
2180	(write_protected_non_symlink): Change 3rd parameter from
2181	dirstack_state "ds" to full_name.
2182	(prompt): Adjust parameters.  Now, state comes from FTS/FTSENT pair.
2183	Those replace fd_cwd and "ds".  Remove "filename".  Remove pdirent_type
2184	in favor of new "is_dir" parameter.  Rename is_empty to is_empty_p.
2185	(DO_RMDIR, DO_UNLINK): Remove definitions.
2186	(remove_entry, fd_to_subdirp, compare_ino): Remove functions.
2187	(dirent_count, dirent_inode_sort_may_be_useful): Likewise.
2188	(preprocess_dir): Likewise.
2189	(fts_skip_tree, mark_ancestor_dirs, excise, rm_fts): New functions.
2190	(remove_cwd_entries, remove_dir, rm_1): Remove functions.
2191	(rm): Rewrite as a simple loop calling fts_read and dispatching
2192	each entry via rm_fts.
2193	* src/rm.c (main): Adapt to new signature of rm().
2194	* bootstrap.conf (gnulib_modules): Remove unlinkdir, no longer used.
2195	* src/Makefile.am (sc_tight_scope): Also recognize an extern "enum"
2196	declaration.
2197	* tests/rm/empty-name: Adjust expected output to match new diagnostic.
2198	* NEWS (Improvements): Mention it.
2199
2200	maint: doc: adjust README-release
2201	* README-release: Remove mention of bootstrap's old
2202	--gnulib-srcdir=/gnulib option.  No longer needed, and its
2203	use can lead to subtle problems.
2204
2205	post-release administrivia
2206	* NEWS: Add header line for next release.
2207	* .prev-version: Record previous version.
2208	* cfg.mk (old_NEWS_hash): Auto-update.
2209
2210	version 7.6
2211	* NEWS: Record release date.
2212
22132009-09-10  Jim Meyering  <meyering@redhat.com>
2214
2215	link,ln: use gnulib's link module to work around Solaris 10 deficiency
2216	Before this change, :>f; ln -T f no-such/ would succeed on Solaris 10.
2217	After it, ln fails, as it should: ln: accessing `z/': Not a directory
2218	The command, link f no-such/, had the same problem on that system.
2219	* bootstrap.conf (gnulib_modules): Add "link".
2220	* tests/ln/slash-decorated-nonexistent-dest: New test.
2221	* tests/Makefile.am (TESTS): Add it.
2222	* NEWS (Portability): Mention the improvement.
2223
2224	build: update gnulib submodule to latest
2225
22262009-09-10  Ondřej Vašík  <ovasik@redhat.com>
2227
2228	doc: improve various BLOCKSIZE and SIZE help
2229	* doc/coreutils.texi (multiplierSuffixes): Mention that
2230	the suffix can be specified without a leading number
2231	* src/split.c (usage): Refactor SIZE help to within a function
2232	* src/truncate.c (usage): Likewise
2233	* src/ls.c (usage): Likewise
2234	* src/df.c (usage): Likewise. Also add a function with BLOCKSIZE help
2235	* src/du.c (usage): Likewise.
2236	* src/system.h: Define 2 functions to emit common help text
2237	This was prompted by https://bugzilla.redhat.com/show_bug.cgi?id=511188
2238
22392009-09-10  Jim Meyering  <meyering@redhat.com>
2240
2241	dd conv=unblock: print final newline consistently
2242	* src/dd.c (dd_copy) [C_UNBLOCK]: Always print the final newline for
2243	non-empty output, not just when output size is a multiple of cbs.
2244	* doc/coreutils.texi (dd invocation) [conv=unblock]: Mention that dd
2245	prints a newline after each output record, not just when replacing
2246	trailing spaces.
2247	Reported by Ulrich Drepper.
2248	* tests/dd/unblock: New file.  Test for this.
2249	* tests/Makefile.am (TESTS): Add it.
2250	* NEWS (Bug fixes): Mention it.
2251
22522009-09-09  Jim Meyering  <meyering@redhat.com>
2253
2254	maint: make cfg.mk slightly more generic
2255	* cfg.mk (url_dir_list): Don't hard-code "coreutils".  Use $(PACKAGE).
2256
22572009-09-08  Jim Meyering  <meyering@redhat.com>
2258
2259	* gnulib: Update submodule to latest.
2260
2261	tail: make the new piped-stdin test as portable as the old one
2262	* src/tail.c (main): Adapt piped-stdin test to use the same isapipe,
2263	test as was used in the preceding POSIXLY_CORRECT condition.
2264	Remove the now-subsumed POSIXLY_CORRECT test.
2265	Reported by Pádraig Brady.
2266	* doc/coreutils.texi (tail invocation): Document this change.
2267	* NEWS (Changes in behavior): Reclassify, clarify.
2268
22692009-09-08  Pádraig Brady  <P@draigBrady.com>
2270
2271	tests: tail-2/assert: reduce risk of race condition
2272	* tests/tail2/assert: This reverts commit be853120, 25-08-2009,
2273	"tests: tail-2/assert: avoid risk of race condition"
2274	kill -0 doesn't send a signal and so will only confirm that the
2275	background process was forked, which we know already because
2276	we have its pid.
2277
2278	tests: address a race condition in misc/cat-buf
2279	* tests/misc/cat-buf: Increase the delay between writes
2280	to decrease the chance that dd will read both at once.
2281	Since the test is inherently racy, print a warning via
2282	skip_test_ rather than failing outright.
2283	Reported by Jim Meyering.
2284
22852009-09-07  Jim Meyering  <meyering@redhat.com>
2286
2287	tail: syntax-only: use "false", rather than equivalent, 0
2288	* src/tail.c (record_open_fd): Initialize "->ignore" to false, not 0.
2289
2290	tail: ignore -f for piped-stdin, as POSIX requires
2291	* src/tail.c (main): Tailing a pipe "forever" is not useful,
2292	and POSIX specifies that tail ignore the -f when there is no
2293	file argument and stdin is a FIFO or pipe.  So we do that.
2294	In addition, GNU tail excludes "-" arguments from the list of files
2295	to tail forever, when the associated file descriptor is connected
2296	to a FIFO or pipe.  Before this change, ":|tail -f" would hang.
2297	Reported by Ren Yang and Ulrich Drepper.
2298	* tests/tail-2/pipe-f: Test for this.
2299	* tests/tail-2/pipe-f2: Ensure tail doesn't exit early for a fifo.
2300	* tests/Makefile.am (TESTS): Add these tests.
2301	* NEWS (POSIX conformance): Mention it.
2302
23032009-09-07  Pádraig Brady  <P@draigBrady.com>
2304
2305	tests: tail-2/flush-initial should not rely on stdbuf
2306	* tests/tail-2/flush-initial: stdbuf is not built on all systems.
2307	In any case it's redundant since stdout will automatically be buffered
2308	since we're redirecting to file. So just call tail without using stdbuf.
2309
23102009-09-07  Jim Meyering  <meyering@redhat.com>
2311
2312	tail: don't give up on inotify mode for an already-ignored "-"
2313	* src/tail.c (main): Adjust today's change to honor the
2314	F[i].ignore flag that may have been set in tail_file.
2315
2316	tests: misc/cat-buf: clean up syntax
2317	* tests/misc/cat-buf: Don't suppress dd's stderr.
2318	Remove useless quotes.
2319
2320	tests: ls/color-clear-to-eol: append NL to accommodate old sed
2321	* tests/ls/color-clear-to-eol: Some vendor sed programs fail
2322	to operate on lines that are not NL-terminated.
2323	This affects at least Solaris 10's /bin/sed.
2324	Reported by Pádraig Brady.
2325
2326	tests: tail-2/infloop-1: avoid rare test failure on a busy system
2327	* tests/tail-2/infloop-1: Sleep 3 seconds, not 1, but in increments
2328	of 0.1 second.  Before, this test would fail ~1 time in 20 via
2329	"make -j9 check" on a quad-core system.
2330	Correct comment.
2331
2332	build: update gnulib submodule to latest
2333
2334	doc: tweak NEWS
2335	* NEWS (dd): Tweak wording.
2336	Two blank lines between sections.
2337
2338	tail -f: handle "-"/stdin once again
2339	* src/tail.c (main) [HAVE_INOTIFY]: When stdin (i.e., "-", or no args,
2340	but not /dev/stdin) is specified on the command line, don't use inotify.
2341	Reported by Bill Brelsford in <http://bugs.debian.org/545422>.
2342	* tests/tail-2/follow-stdin: New file.  Test for this.
2343	* tests/Makefile.am (TESTS): Add the test.
2344	* NEWS (Bug fixes): Mention it.
2345	This bug was introduced in coreutils-7.5 via commit ae494d4b,
2346	2009-06-02, "tail: use inotify if it is available".
2347
23482009-09-06  Jim Meyering  <meyering@redhat.com>
2349
2350	tests: tail-2/flush-initial: correct race avoidance code
2351	* tests/tail-2/flush-initial: Wait for the file to be nonempty,
2352	not for the process.  Based on a suggestion from Pádraig Brady.
2353
2354	tests: ls-misc: don't let a bogus umask cause test failure
2355	* tests/misc/ls-misc: Set umask to 022.  A umask setting permitting
2356	world-write access, e.g., umask o+w, would cause this test to fail.
2357	Report by Mathias Brodala and analysis by Tom Fitzhenry in
2358	<http://bugs.debian.org/544965>.
2359
2360	tail: flush initial output before possibly blocking
2361	* src/tail.c (main): Flush any output from tail_file,
2362	before calling tail_forever_inotify, which can block.
2363	* tests/tail-2/flush-initial: New file.  Test for the bug.
2364	* tests/Makefile.am (TESTS): Add tail-2/flush-initial.
2365	* NEWS (Bug fixes): Mention it.
2366	This bug was introduced in coreutils-7.5 via commit ae494d4b,
2367	2009-06-02, "tail: use inotify if it is available".
2368
23692009-09-05  Jim Meyering  <meyering@redhat.com>
2370
2371	maint: remove unused file: lib/fdopendir-glibc.c
2372	* lib/fdopendir-glibc.c: Remove unused file.
2373
2374	2009-09-05  Jim Meyering  <meyering@redhat.com>
2375
2376	tests: ls/stat-vs-dirent: avoid spurious test failure
2377	* tests/ls/stat-vs-dirent: Avoid test failure when run from a
2378	directory whose name (or ancestor directory name) starts with ".".
2379
23802009-09-05  Pádraig Brady  <P@draigBrady.com>
2381
2382	doc: make the tail --sleep-interval help less confusing
2383	* src/tail.c (usage): I read "approximately S seconds"
2384	as "approximately 5 seconds" for approximately 5 seconds.
2385
2386	maint: remove some tab indentation from copy.c
2387	* src/copy.c (copy_internal): Remove tabs erroneously added
2388	in commit 3346c0af.
2389
2390	tests: test old tail -f method even on systems with inotify
2391	* src/tail.c (main): Add an undocumented ---disable-inotify option
2392	to allow disabling inotify.
2393	* tests/tail-2/pid: Run test in both normal and "disable_inotify" modes.
2394	* tests/tail-2/tail-n0f: Likewise.
2395	* tests/tail-2/wait: Likewise.
2396	* tests/tail-2/append-only: Likewise.
2397
23982009-09-05  Jim Meyering  <meyering@redhat.com>
2399
2400	build: update gnulib submodule to latest
2401
24022009-09-05  Petr Salinger  <Petr.Salinger@seznam.cz>
2403
2404	stty: use TAB0, TAB1, and TAB2 only if defined
2405	* src/stty.c (mode_info) [TAB0, TAB1, TAB2]: Guard each
2406	entry with #ifdef.  Required for GNU/kFreeBSD.
2407	Reported by Petr Salinger in http://bugs.debian.org/520368.
2408
24092009-09-05  Eric Blake  <ebb9@byu.net>
2410
2411	build: update from gnulib
2412	* gnulib: Update submodule to latest.
2413
24142009-09-04  Eric Blake  <ebb9@byu.net>
2415
2416	ln: add comments related to POSIX 2008
2417	* src/ln.c (ENABLE_HARD_LINK_TO_SYMLINK_WARNING): Delete.
2418	(do_link): Update comments per POSIX; add FIXME for -L, -P.
2419
2420	mv, cp: tweak LINK_FOLLOWS_SYMLINKS logic
2421	* gnulib: Update to latest gnulib.
2422	* src/copy.c (copy_internal): Adjust comment in light of POSIX
2423	2008, and deal with macro now being tri-state.
2424
24252009-09-04  Petr Salinger  <Petr.Salinger@seznam.cz>
2426
2427	tests: fix a tail-2/pid failure on GNU/kFreeBSD
2428	* tests/tail-2/wait: Increase the file name recheck frequency to
2429	fix a failure on systems without inotify and a file timestamp precision
2430	of 1 second (like GNU/kFreeBSD).
2431
24322009-09-04  Pádraig Brady  <P@draigBrady.com>
2433
2434	tests: fix a failure when running tail-2/wait as root
2435	* tests/tail-2/wait: Silently skip a portion of the test
2436	when running as root, rather than failing the whole test.
2437	This regression was introduced with commit 84b5844d, 2009-09-03,
2438	"tests: simplify and fix a race in 2 tail --follow tests".
2439
24402009-09-04  Mike Frysinger  <vapier@gentoo.org>
2441
2442	build: fix libcap configure flag handling
2443	* m4/jm-macros.m4 (coreutils_MACROS): The code to handle configure-time
2444	enabling or disabling of libcap support was broken.  It would treat any
2445	libcap configure option as --disable-libcap because it doesn't check
2446	$enableval at all.  This change makes sure we do the sane thing:
2447	  --disable-libcap -> disable and don't run any tests
2448	  --enable-libcap -> run tests and fail if not found
2449	  default -> run tests and warn if not found
2450
24512009-09-03  Jim Meyering  <meyering@redhat.com>
2452
2453	df: don't fail due to an unreadable argument
2454	* src/df.c (main): If open or fstat fails when we're trying to ensure
2455	that all arg-partitions are automounted, fall back on using stat.
2456	Inspired by the report and patch from Olivier Fourdan in
2457	http://bugzilla.redhat.com/520630.
2458	* NEWS (Bug fixes): Mention it.
2459	* tests/df/unreadable: New test for the above.
2460	* tests/Makefile.am (TESTS): Add df/unreadable.
2461	The bug was introduced in coreutils-7.3 via commit dbd17157,
2462	2009-04-28, "df: use open(2), not stat, to trigger automounting".
2463
24642009-09-03  Kamil Dudka  <kdudka@redhat.com>
2465
2466	doc: install -C: fix bug in the texi documentation
2467	* doc/coreutils.texi: Move the documentation for install --compare (-C)
2468	from the section on fmt to that for install.
2469	Reported by Florian Schlichting.
2470
24712009-09-03  Pádraig Brady  <P@draigBrady.com>
2472
2473	tests: simplify and fix a race in 2 tail --follow tests
2474	* tests/tail-2/pid: Use the timeout command to determine process
2475	longevity, rather than querying /proc/$pid/status.
2476	The latter was racy in any case when inotify is used, as then
2477	tail wakes up periodically even for unchanging files therefore
2478	causing the check for "S (sleeping)" state to fail intermittently.
2479	* tests/tail-2/wait: Likewise.
2480
24812009-09-03  Ondřej Vašík  <ovasik@redhat.com>
2482
2483	cp: don't leak resources for each xattr preservation failure
2484	* src/copy.c (copy_reg): Don't return from the function after an
2485	unsuccessful and required preservation of extended attributes.
2486	This resulted in leaking the copy buffer and file descriptors.
2487	* NEWS (Bug fixes): Mention the fix.
2488	The bug was introduced in coreutils-7.1 via commit 0889381c, 2009-01-23,
2489	"cp/mv: add xattr support".
2490
24912009-09-01  Pádraig Brady  <P@draigBrady.com>
2492
2493	chcon, chmod, chgrp, chown, du: report fts_close failure
2494	* src/du.c (du_files): Don't fail silently upon fts_close failure.
2495	* src/chcon.c (process_files): Likewise.
2496	* src/chmod.c (process_files): Likewise.
2497	* src/chown-core.c (chown_files): Likewise.
2498
24992009-09-01  Jim Meyering  <meyering@redhat.com>
2500
2501	build: update from gnulib
2502	* gnulib: Update submodule to latest.
2503
2504	chcon, chmod, chgrp, chown, du: do not ignore fts_close failure
2505	This is probably never visible, but who knows...
2506	* src/chcon.c (process_files): Don't ignore fts_close failure.
2507	* src/chmod.c (process_files): Likewise.
2508	* src/chown-core.c (chown_files): Likewise.
2509	* src/du.c (du_files): Likewise.
2510
2511	maint: du: remove unnecessary initialization
2512	* src/du.c (main): Don't set "skip_file" unnecessarily.
2513
2514	maint: chown, chgrp, chmod, chcon: remove unnecessary initialization
2515	* src/chown-core.c: Include "ignore-value.h".
2516	(change_file_owner): Don't set "ent" only to ignore it.
2517	* src/chcon.c (process_file): Likewise.
2518	* src/chmod.c: Include "ignore-value.h".
2519	(process_file): Don't set "ent" only to ignore it.
2520	After diagnosing root-dev/ino failure, return false immediately:
2521	Now that we don't set "ent" we must be sure not to use it uninitialized,
2522	and there's no point in issuing --verbose-related output in this case.
2523
2524	maint: shred: remove unnecessary initialization
2525	* src/shred.c (genpattern): Value stored to "n" is never used.
2526
2527	maint: dd: remove unnecessary initialization
2528	* src/dd.c (skip): Remove set-but-never-used variable, soffset.
2529
2530	maint: tail: remove unnecessary initialization
2531	* src/tail.c (tail_bytes): Don't compute "diff" twice.
2532
2533	maint: mbsalign.c: remove unnecessary assignment
2534	* gl/lib/mbsalign.c (mbsalign): Remove assignment, the result of which
2535	is never used.
2536
25372009-09-01  Pádraig Brady  <P@draigBrady.com>
2538
2539	timeout: remove a redundant assignment
2540	* src/timeout.c (main): While keeping argc and argv in
2541	sync may be marginally useful, it is redundant to update argc,
2542	so just remove that to suppress the clang warning.
2543
2544	timeout: defensive handling of all wait() errors
2545	* src/timeout.c (main): Handle all possible cases of unexpected
2546	failures from wait().  This was prompted by the clang tool reporting
2547	the possible non-initialization of the status variable.
2548
25492009-09-01  Jim Meyering  <meyering@redhat.com>
2550
2551	ls -i: print consistent inode numbers also for mount points
2552	On most unix- and linux-based kernels, ls -i DIR_CONTAINING_MOUNT_POINT
2553	would print the wrong inode number for any entry that is a mount point.
2554	It would do that by relying on readdir's dirent.d_ino values, while
2555	most readdir implementations return the inode number of the underlying,
2556	inaccessible directory.  Thus, it is not consistent with what you'd
2557	get when applying stat to the same entry.  This bug led to surprising
2558	results like "ls -i" and "ls -i --color" printing different numbers (ls
2559	must usually "stat" a file to colorize its name).  This change makes it
2560	so that on offending systems, ls must stat non-command-line-arguments
2561	for which otherwise it would be able to use "for free" dirent.d_ino
2562	values.  Regardless of this change, ls is already required to stat every
2563	command-line argument.  Note: versions of GNU ls prior to coreutils-6.0
2564	did not perform the invalid optimization, and hence always printed
2565	correct inode numbers.  Thus, for the sake of correctness, ls -i is
2566	forgoing the readdir optimization, for any kernel (including linux!)
2567	with POSIX-nonconforming readdir.  Note that currently, only Cygwin has
2568	been agile enough to conform.
2569
2570	* src/ls.c (RELIABLE_D_INO): Define.
2571	(print_dir): Use it.
2572	For plenty of discussion, see this long thread:
2573	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14020
2574	This bug was introduced by the 2006-02-26 commit, 33eb3efe:
2575	"In ls, avoid calling stat for --inode (-i), when possible."
2576	* tests/ls/readdir-mountpoint-inode: New test.
2577	* tests/Makefile.am (TESTS): Add it.
2578	* tests/ls/stat-vs-dirent: Don't suppress failure of this test,
2579	now that ls -i is fixed.  Though note that it doesn't test well,
2580	since it compares only the always-stat'd command-line arguments.
2581	* NEWS (Bug fixes): Mention it.
2582
25832009-08-31  Jim Meyering  <meyering@redhat.com>
2584
2585	maint: revert my stdbuf change: the result didn't even compile
2586	This reverts commit c1e158489d88bad418d52ceadf37af0b6f5b2112.
2587
25882009-08-30  Jim Meyering  <meyering@redhat.com>
2589
2590	maint: stdbuf: move a declaration; no-semantic-change
2591	* src/stdbuf.c (set_program_path): Move a declaration down into
2592	the scope where it's used.
2593
2594	build: quiet "make check" in src/
2595	* src/Makefile.am (check-duplicate-no-install): Use $(AM_V_GEN).
2596	(check-README): Likewise.  And $(AM_V_at).
2597
2598	doc: cp: update note on preserving symlink time stamps
2599	* doc/coreutils.texi (cp invocation): Now, we *do* preserve time
2600	stamps on symlinks, when possible.
2601
2602	build: update bootstrap from gnulib
2603	* bootstrap: Merge from gnulib.
2604
26052009-08-30  Pádraig Brady  <P@draigBrady.com>
2606
2607	tests: don't misbehave if $TMPDIR contains spaces
2608	* tests/misc/xattr: Add quotes.
2609	* tests/mv/acl: Likewise.
2610	* tests/mv/backup-is-src: Likewise.
2611	* tests/mv/hard-link-1: Likewise.
2612	* tests/mv/leak-fd: Likewise.
2613	* tests/mv/mv-special-1: Likewise.
2614	* tests/mv/part-fail: Likewise.
2615	* tests/mv/part-hardlink: Likewise.
2616	* tests/mv/part-rename: Likewise.
2617	* tests/mv/part-symlink: Likewise.
2618	* tests/mv/partition-perm: Likewise.
2619	* tests/mv/sticky-to-xpart: Likewise.
2620
26212009-08-29  Jim Meyering  <meyering@redhat.com>
2622
2623	tests: other-fs-tmpdir: don't misbehave for quote-unfriendly $TMPDIR
2624	* tests/other-fs-tmpdir: Quote uses of variables that might expand
2625	to strings containing e.g., whitespace.
2626
2627	build: update from gnulib
2628	* gnulib: Update submodule to latest.
2629
2630	tests: move a coreutils-specific test from maint.mk to Makefile.am
2631	* Makefile.am (distcheck-hook): Make taint-distcheck here, since it's
2632	no longer done via maint.mk.
2633
2634	tests: cp/reflink-auto guard against a pathological $TMPDIR
2635	* tests/cp/reflink-auto: Add quotes.
2636
26372009-08-29  Pádraig Brady  <P@draigBrady.com>
2638
2639	cp --reflink: preserve attributes on cloned files if asked
2640	* src/copy.c (copy_reg): When cloning only skip the data copying
2641	* tests/cp/reflink-perm: New test to check times and modes copied
2642	* tests/Makefile.am: Reference the new test
2643	* NEWS: Mention the fix
2644
2645	cp --reflink: add an "auto" parameter to fall back to a normal copy
2646	* doc/coreutils.texi (cp invocation): Document the new
2647	"auto" and "always" options to --reflink.
2648	* src/copy.c (copy_reg): Fall back to a standard copy
2649	when reflink() is not supported and --reflink=auto specified.
2650	* src/copy.h [struct cp_options] (reflink): Change type s/bool/enum/.
2651	* src/cp.c (usage): Describe the --reflink={always,auto} options
2652	and expand a little on what --reflink does.
2653	(main): parse the new parameters to --reflink and allow all
2654	--sparse options with --reflink=auto.
2655	* src/install.c (cp_option_init): Init the enum instead of bool.
2656	* src/mv.c (cp_option_init): Likewise.
2657	* tests/cp/reflink-auto: A new test for falling back to normal copy.
2658	* tests/Makefile.am: Reference the new test.
2659	* NEWS: Mention the new feature.
2660
2661	stdbuf: fix a small typo in --help output
2662	* src/stdbuf.c (usage): s/then/the/
2663
26642009-08-28  Eric Blake  <ebb9@byu.net>
2665
2666	build: avoid unused variable warnings on cygwin
2667	* src/copy.c (clone_file, copy_attr_by_fd, copy_attr_by_name):
2668	Mark up unused variables.
2669	* src/remove.c (dirent_inode_sort_may_be_useful): Likewise.
2670
2671	dd: detect closed stderr
2672	* src/dd.c (maybe_close_stdout): Always flush stderr; regression
2673	introduced in commit 381e69ea.
2674	* tests/misc/close-stdout (p): Use consistent style.
2675	* tests/dd/stderr: New test, borrowing from misc/close-stdout.
2676	* tests/Makefile.am (TESTS): Run it.
2677	* NEWS: Mention this.
2678
26792009-08-28  Jim Meyering  <meyering@redhat.com>
2680
2681	maint: ignore only man/*.1, not all *.1 files
2682	* .gitignore: Ignore *.1 only in man/
2683
26842009-08-27  Jim Meyering  <meyering@redhat.com>
2685
2686	build: prefix a few rules with $(AM_V_GEN)
2687	* Makefile.am (.version, dist-hook, gen-ChangeLog): Use $(AM_V_GEN)
2688	and $(AM_V_at), so that automake's silent-rules option (make V=1/V=0)
2689	now controls whether the commands are printed at build time.
2690	(THANKS-to-translators, check-ls-dircolors): Likewise.
2691
26922009-08-26  Jim Meyering  <meyering@redhat.com>
2693
2694	build: stop earlier if touching ChangeLog fails
2695	* bootstrap.conf: Exit right away if touching ChangeLog fails.
2696	Otherwise, the touch failure message is buried under configure output.
2697
2698	tests: mkdir/selinux: avoid spurious failure on some SELinux systems
2699	* tests/test-lib.sh (require_selinux_enforcing_): New function.
2700	* tests/mkdir/selinux: Use it.
2701	Otherwise, this test would fail on Rawhide with SELinux disabled.
2702
2703	tests: tail-2/assert: avoid risk of race condition
2704	* tests/tail-2/assert: Avoid spurious failure due to race condition.
2705	Rather than sleeping for 1 second and crossing fingers,
2706	wait explicitly for backgrounded tail process to start.
2707	Otherwise, this test would fail under heavy load.
2708
27092009-08-25  Jim Meyering  <meyering@redhat.com>
2710
2711	maint: ensure we don't embed Emacs indent-tabs-mode setting lines
2712	Now that we prohibit indentation via TABs, there's no need for
2713	Emacs indent-tabs-mode setting lines, so prohibit those, too.
2714	* cfg.mk (sc_prohibit_emacs__indent_tabs_mode__setting): New rule.
2715
2716	maint: remove Local Variables: indent-tabs-mode: nil from all sources
2717	* src/getlimits.c: Likewise.
2718	* src/group-list.c: Likewise.
2719	* src/groups.c: Likewise.
2720	* src/mktemp.c: Likewise.
2721	* src/setuidgid.c: Likewise.
2722	* src/stdbuf.c: Likewise.
2723	* src/timeout.c: Likewise.
2724	* src/truncate.c: Likewise.
2725	* gl/lib/mbsalign.c: Likewise.
2726	* tests/test-lib.sh: Likewise.
2727	* bootstrap: Likewise.
2728	* README-hacking: Likewise.
2729
2730	doc: HACKING: mention the new space-only indentation policy
2731
2732	maint: teach "make syntax-check" the space-only indentation rule
2733	* cfg.mk (sc_prohibit_tab_based_indentation): New rule.
2734	* .x-sc_prohibit_tab_based_indentation: New file.
2735	* Makefile.am (syntax_check_exceptions): Add file,
2736	.x-sc_prohibit_tab_based_indentation.
2737
2738	global: convert indentation-TABs to spaces
2739	Transformed via this shell code:
2740	t=$'\t'
2741	git ls-files \
2742	  | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
2743	  | grep -vE 'tests/pr/|help2man' \
2744	  | xargs grep -lE "^ *$t" \
2745	  | xargs perl -MText::Tabs -ni -le \
2746	    '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
2747
27482009-08-24  Jim Meyering  <meyering@redhat.com>
2749
2750	cp: ignore obscure failure to preserve symlink time stamps,
2751	...when run on a kernel older than what was implied by headers and
2752	libraries tested at configure time.
2753	* src/copy.c (utimens_symlink): Ignore failure when errno == ENOSYS.
2754	* NEWS (Bug fixes): Mention it.
2755	Reported by Todd Zullinger and Kamil Dudka.
2756	Details in this thread:
2757	http://thread.gmane.org/gmane.linux.redhat.fedora.devel/119834
2758
27592009-08-23  Jim Meyering  <meyering@redhat.com>
2760
2761	tests: skip (don't fail) a cp test, upon mount-related failure
2762	* tests/cp/cp-mv-enotsup-xattr: Upon a set-up failiure, rather than
2763	failing the test with a "framework failure" diagnostic, just skip it.
2764	Russell Whitaker reported that this test failed on slackware.
2765
2766	build: update from *public* gnulib
2767	* gnulib: Update submodule to latest.
2768	Kamil Dudka reported that bootstrap was broken.
2769
27702009-08-22  Jim Meyering  <meyering@redhat.com>
2771
2772	build: update from gnulib
2773	* gnulib: Update submodule to latest.
2774
27752009-08-20  Jim Meyering  <meyering@redhat.com>
2776
2777	post-release administrivia
2778	* NEWS: Add header line for next release.
2779	* .prev-version: Record previous version.
2780	* cfg.mk (old_NEWS_hash): Auto-update.
2781
2782	version 7.5
2783	* NEWS: Record release date.
2784
2785	tests: skip the stdbuf tests when the abs build directory name is bogus
2786	* tests/misc/stdbuf: Avoid spurious failure when the directory name
2787	from which we'd set LD_PRELOAD contains unsafe characters.
2788
2789	install: avoid a portability bug when compiling with non-gcc
2790	* src/install.c (extra_mode): Be careful to return only a 0 or 1
2791	value, since this is a "bool" function, and there are still some
2792	compilers for which this is necessary.  Without this change,
2793	Bernhard Voelker reported that the Forte Developer 7 C 5.4 2002/03/09
2794	compiler would produce a malfunctioning "install" binary.  Details in
2795	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17710/focus=17760
2796
27972009-08-19  Jim Meyering  <meyering@redhat.com>
2798
2799	tests: make install-C slightly less prone to confusion
2800	* tests/install/install-C: Invoke framework_failure, if necessary.
2801
2802	build: avoid "make dist" failure in man/
2803	Now that "make check" no longer builds programs like arch, ...
2804	* src/Makefile.am (dist-hook): Depend on $(all_programs), so that the
2805	subsequent build in man/ doesn't fail due to lack of a program like
2806	arch that is not going to be installed.
2807
28082009-08-18  Jim Meyering  <meyering@redhat.com>
2809
2810	build: update from gnulib
2811	* gnulib: Update submodule to latest.
2812
28132009-08-18  Giuseppe Scrivano  <gscrivano@gnu.org>
2814
2815	nl: deprecate --page-increment in favor of --line-increment
2816	* NEWS: Mention the change.
2817	* doc/coreutils.texi: Document the new --line-increment option.
2818	* src/nl.c (struct option): Add --line-increment,
2819	(usage): Describe it,
2820	(main): Use it.
2821
28222009-08-18  Jim Meyering  <meyering@redhat.com>
2823
2824	tests: stdbuf: fix a bug in test script
2825	* tests/misc/stdbuf: Use skip_test_ only after it's defined.
2826	Reported by Berhnard Voelker.
2827
2828	(sc_check-AUTHORS): Rename rule from check-AUTHORS.
2829
2830	build: perform check-AUTHORS via syntax-check, not via "make check"
2831	* src/Makefile.am (check): Don't depend on check-AUTHORS.
2832	That check fails on systems for which a program like stdbuf is
2833	not built.  Instead, move this check to "make syntax-check".
2834	(sc_check-AUTHORS): Rename rule from check-AUTHORS.
2835	* cfg.mk (sc_check-AUTHORS): New rule.
2836	Reported by Berhnard Voelker.
2837
2838	sort: use more portable initialization syntax
2839	* src/sort.c (find_unit_order): Spell out 256-element static
2840	initializer, rather than relying on C99 syntax.
2841	Required for Forte Developer 7 C 5.4 2002/03/09 on Solaris 10.
2842	Reported by Bernhard Voelker.
2843
28442009-08-17  Jim Meyering  <meyering@redhat.com>
2845
2846	build: suppress warnings due to gcc's new -Wjump-misses-init
2847	* configure.ac: Ignore -Wjump-misses-init violations in remove.c.
2848
2849	build: update from gnulib
2850	* gnulib: Update submodule to latest.
2851
28522009-08-16  Jim Meyering  <meyering@redhat.com>
2853
2854	tests: tail-2/append-only: don't discard stderr
2855	* tests/tail-2/append-only: Don't discard a diagnostic that
2856	may help explain why this test fails for some.  Details in
2857	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17621/focus=17641
2858
28592009-08-14  Jim Meyering  <meyering@redhat.com>
2860
2861	tests: skip the misc/stdbuf test if stdbuf was not built
2862	* tests/misc/stdbuf: Skip this test when stdbuf is not built.
2863	Reported by Eric Blake.
2864
2865	build: use gnulib's getopt-gnu module (getopt is now deprecated)
2866	* bootstrap.conf (gnulib_modules): Gnulib's getopt module is now
2867	deprecated; use the new, preferred name, getopt-gnu.
2868	* gnulib: Update to latest.
2869
28702009-08-14  Pádraig Brady  <P@draigBrady.com>
2871
2872	cp,mv: fix issues with preserving timestamps of copied symlinks
2873	* src/copy.c (copy_internal): On systems without utimensat don't
2874	use utimens on a symlink, as that would dereference the symlink.
2875	* tests/cp/abuse: To work around possible attribute preservation
2876	failures breaking the test, use cp -dR rather than cp -a.
2877
2878	doc: clarify the cp --reflink NEWS
2879	* NEWS: Remove the description associated with the removed
2880	experimental code which unconditionally tried to reflink() on copy.
2881	Also clarify where --reflink works exactly.
2882
28832009-08-13  Jim Meyering  <meyering@redhat.com>
2884
2885	tests: raise ulimit virt-mem limit to avoid new failure
2886	* tests/cp/link-heap: Raise limit from 16MB to ~20MB,
2887	to avoid spurious failure on rawhide.
2888
28892009-08-13  Pádraig Brady  <P@draigBrady.com>
2890
2891	tail: fix tail -f failure when inotify used
2892	* src/tail.c (tail_forever_inotify): Remove the redundant and
2893	incorrect error check of the return from inotify_add_watch().
2894	Also initialize the wd member of each File_spec to an invalid value.
2895	Reported by C de-Avillez.
2896
2897	dd: fix a signal handling race
2898	* src/dd.c (main): Install the signal handlers at startup
2899	rather than just before the copy starts. In this way signals
2900	received before the copy (like during a slow truncate for e.g.)
2901	will be deferred and handled consistently.
2902	* THANKS: Add Bernhard's email address.
2903	* NEWS: Mention the fix.
2904	Reported by Bernhard Voelker.
2905
29062009-08-12  Pádraig Brady  <P@draigBrady.com>
2907
2908	tests: improve one of the tail --pid tests
2909	* tests/tail-2/pid: Speed up the test by specifying a
2910	timeout of 100ms rather than the default 1s.  Also
2911	skip the test instead of failing in the unlikely case
2912	were the pid required to be missing pid is present.
2913
29142009-08-10  Jim Meyering  <meyering@redhat.com>
2915
2916	nl, pinky: replace uses of strcat
2917	* src/nl.c (main): Avoid strcat, on principle.  Use stpcpy instead.
2918	* src/pinky.c (print_long_entry): Likewise.
2919
2920	build: update from gnulib, for HOST_NAME_MAX on solaris 10
2921	* gnulib: Update submodule to latest.
2922
29232009-08-07  Giuseppe Scrivano  <gscrivano@gnu.org>
2924
2925	cp: accept the --reflink option
2926	* NEWS: Mention it.
2927	* doc/coreutils.texi (cp invocation): Describe it.
2928	* src/copy.h (struct cp_options) [reflink]: New member.
2929	* src/copy.c (usage): Describe it.
2930	(copy_reg): If reflink is true try to clone the file.
2931	(main): Check for --reflink.
2932	(cp_option_init): Initialize the new member.
2933	* src/install.c (cp_option_init): Initialize the new member.
2934	* src/mv.c (cp_option_init): Likewise.
2935	* tests/cp/sparse: Add a new test case.
2936
29372009-08-07  Jim Meyering  <meyering@redhat.com>
2938
2939	dd: preserve semantics of O_DIRECT even for final block
2940	* src/dd.c: Include "ignore-value.h"
2941	(iwrite): When disabling O_DIRECT, try to compensate
2942	via POSIX_FADV_DONTNEED and fsync.
2943	Suggested by Eric Sandeen.
2944
29452009-08-06  Jim Meyering  <meyering@redhat.com>
2946
2947	maint: move selinux-at module from gl/ to gnulib
2948	* gl/lib/selinux-at.c: Remove file.
2949	* gl/lib/selinux-at.h: Likewise.
2950	* gl/modules/selinux-at: Likewise.
2951	* gnulib: update to latest, to get the new module.
2952
2953	dd: work around buffer length restrictions with oflag=direct (O_DIRECT)
2954	dd oflag=direct would fail to copy a file with size that is
2955	not a multiple of 512 (destination file system specific)
2956
2957	* NEWS (Bug fixes): Mention it.
2958	* src/dd.c (iwrite): Turn off O_DIRECT for any
2959	smaller-than-obs-sized write.  Don't bother to restore it.
2960	* tests/dd/direct: New test for the above.
2961	* tests/Makefile.am (TESTS): Add dd/direct.
2962	* doc/coreutils.texi (dd invocation): Mention oflag=direct
2963	buffer size restriction.
2964	Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17586
2965	Reported by Eric Sandeen.
2966
29672009-08-04  Jim Meyering  <meyering@redhat.com>
2968
2969	dd: remove unnecessary #if HAVE_FTRUNCATE
2970	* src/dd.c (main): Remove unnecessary cpp directives.
2971	Gnulib guarantees that ftruncate is usable.
2972
2973	cp -pP (and e.g., -a): preserve time stamps on symlinks, too
2974	* src/copy.c (utimensat_if_possible): New function.
2975	(copy_internal): Remove variable, "preserve_metadata".
2976	Replace with "dest_is_symlink".  That covers all cases but one:
2977	the one in which cp --link has created hard links to non-directories.
2978	In that case, there is no need to update attributes of the links.
2979	Use utimensat_if_possible, to preserve timestamps of symlinks.
2980	* NEWS (New features): Mention this.
2981	* tests/Makefile.am (TESTS): Add cp/preserve-slink-time.
2982	* tests/cp/preserve-slink-time: New file.
2983	* m4/jm-macros.m4 (coreutils_MACROS): Test for utimensat.
2984	Reported in http://bugzilla.redhat.com/230866
2985
29862009-08-04  Kamil Dudka  <kdudka@redhat.com>
2987
2988	install runs faster again with SELinux enabled
2989	* m4/jm-macros.m4: Pull in SELinux libraries while checking for
2990	matchpathcon_init_prefix ().  Emit configure warning when not found
2991	with SELinux enabled.
2992	* NEWS (Bug fixes): Mention it.
2993	The bug was introduced in coreutils-7.0 via commit 0647f3eb, 2008-06-02,
2994	"accommodate older SELinux which lacks matchpathcon_init_prefix".
2995
29962009-08-04  Jim Meyering  <meyering@redhat.com>
2997
2998	maint: move the update-copyright rule to gnulib's maint.mk
2999	* gnulib: Update submodule to get latest maint.mk.
3000	* Makefile.am (update-copyright): Remove rule; now it's in maint.mk.
3001	* m4/check-decl.m4: Update sole remaining copyright year list.
3002
30032009-07-31  Jim Meyering  <meyering@redhat.com>
3004
3005	build: *really* update to a usable gnulib commit
3006
3007	build: update to a usable gnulib commit
3008	The commit, 5ef90695, 2009-07-29, "maint: move update-copyright
3009	to gnulib" recorded a local-only commit.
3010	Reported by Pádraig Brady.
3011
30122009-07-30  Jim Meyering  <meyering@redhat.com>
3013
3014	tests: new function: require_openat_support_
3015	* tests/rm/inaccessible: Factor out openat-support-detection code...
3016	* tests/test-lib.sh (require_openat_support_): ...into this new function.
3017
3018	tail: tweak indentation
3019	* src/tail.c (tail_forever_inotify): Adjust indentation of continued line.
3020
30212009-07-30  Pádraig Brady  <P@draigBrady.com>
3022
3023	tail: properly parse fractional seconds when monitoring a pid
3024	* src/tail.c (tail_forever_inotify): The fractional
3025	part of the delay was 1000 times too large.
3026	* tests/tail-2/pid: Add a test to ensure the
3027	timeout happens for this case.
3028
30292009-07-30  Jim Meyering  <meyering@redhat.com>
3030
3031	tests: test for just-fixed tail --pid bug
3032	* tests/tail-2/pid: Ensure tail exits successfully when PID dies.
3033
30342009-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
3035
3036	tail: exit successfully upon watched process death
3037	* src/tail.c (tail_forever_inotify): If a PID is specified and the
3038	watched process dies, exit with status EXIT_SUCCESS, rather than
3039	falling through to an EXIT_FAILURE.
3040
30412009-07-29  Jim Meyering  <meyering@redhat.com>
3042
3043	maint: move update-copyright to gnulib
3044	* build-aux/update-copyright: Remove file.
3045	* bootstrap.conf (gnulib_modules): Add update-copyright.
3046	* gnulib: Update submodule to latest.
3047
3048	maint: make update-copyright work in yet another case
3049	* build-aux/update-copyright: Handle the case in which "\n#"
3050	appears between the final year number and the copyright holder name.
3051	* m4/lib-check.m4: Update copyright year list.
3052	Reported by Joel E. Denny.
3053
3054	maint: update NEWS
3055	* NEWS (New features): Mention it.
3056
30572009-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
3058
3059	cp: support btrfs' copy-on-write file clone operation
3060	* src/copy.c [HAVE_SYS_IOCTL_H]: Include <sys/ioctl.h>.
3061	(BTRFS_IOCTL_MAGIC, BTRFS_IOC_CLONE): Define.
3062	(clone_file): New function.
3063	(copy_reg): Use the btrfs clone operation if possible.
3064
30652009-07-29  Jim Meyering  <meyering@redhat.com>
3066
3067	maint: update sleep.c's copyright year list
3068	* src/sleep.c: Update copyright year list to include 2009.
3069	* tests/sort-time/rand-gen: Remove long-unused file.
3070	* tests/sort-time/README: Likewise.
3071
30722009-07-29  Joel E. Denny  <jdenny@clemson.edu>
3073
3074	maint: improve update-copyright rule
3075	* Makefile.am (update-copyright): Relax the selection rule
3076	to match any file containing the word "Copyright".
3077	Correct the exclusion rule so that it also excludes ChangeLog
3078	and COPYING files that are not in the top level directory.
3079
30802009-07-29  Jim Meyering  <meyering@redhat.com>
3081
3082	maint: update-copyright: fix just-introduced bug
3083	* build-aux/update-copyright: ... and revert-for-now the
3084	change that made this script invoke localtime only once.
3085
3086	maint: make update-copyright handle more cases
3087	* build-aux/update-copyright: Handle cases in which the final
3088	year number and copyright holder are on separate lines.
3089	Prompted by a report from Joel E. Denny.
3090	Also, do not invoke localtime for each line we process.
3091
30922009-07-29  Pádraig Brady  <P@draigBrady.com>
3093
3094	doc: fix the generated HTML index
3095	* doc/coreutils.texi: Move the "SELinux context" section
3096	down below the "System context" nodes so that the HTML
3097	index is generated correctly. Also some extraneous and missing
3098	'.' characters were corrected in the index.
3099	Reported by Benno Schulenberg.
3100
31012009-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
3102
3103	tail: use the inotify backend also with --pid=PID
3104	* src/tail.c (tail_forever_inotify): When a PID is specified, use
3105	select to block for no more than sleep_interval seconds at a time,
3106	and check for process death upon timeout.
3107	(main): Adapt to new tail_forever_inotify interface.
3108
31092009-07-27  Jim Meyering  <meyering@redhat.com>
3110
3111	tests: new test for bug in ls -1U dir arg ...
3112	* tests/misc/ls-misc (multi-arg-U1): New test.
3113
31142009-07-27  Kamil Dudka  <kdudka@redhat.com>
3115
3116	ls -1U dir arg ... now works again
3117	* src/ls.c (print_dir): Emit "$dir_name:\n" *before* accumulating (and
3118	possibly printing) directory entry names.
3119	The bug was introduced in coreutils-7.0 via commit
3120	8d974b00, 2008-07-30, "ls -U1 now uses constant memory".
3121	Reported by Julian Bradfield.
3122	* NEWS (Bug fixes): Mention it.
3123
31242009-07-27  Heikki Orsila  <heikki.orsila@iki.fi>
3125
3126	tr: improve --help's description of --complement (-c)
3127
31282009-07-27  Pádraig Brady  <P@draigBrady.com>
3129
3130	doc: add a sort by line length example
3131	* doc/coreutils.texi (sort invocation): Add an example showing how
3132	to sort data not directly supported by the sort command.
3133
3134	doc: mention realpath in the readlink info
3135	* doc/coreutils.texi (readlink invocation): Add realpath to the index,
3136	and also mention it in the readlink description so people
3137	searching for that functionality can easily make the connection.
3138
31392009-07-26  Jim Meyering  <meyering@redhat.com>
3140
3141	build: use a fixed-name temporary in man/Makefile.am
3142	* man/Makefile.am (check-x-vs-1): Using a fixed-name temporary file
3143	is better than one ending in -$$, because many -$$-suffixed files
3144	may accumulate over time.
3145
31462009-07-24  Kamil Dudka  <kdudka@redhat.com>
3147
3148	doc: improve readlink description here, too
3149	* doc/coreutils.texi (readlink invocation): Update menus.
3150	Add @cindex entries.
3151
31522009-07-24  Jim Meyering  <meyering@redhat.com>
3153
3154	readlink: improve one-line summary: prints canonical file names, too
3155	* src/readlink.c (usage): Adjust one-line summary.
3156	* man/readlink.x: Likewise.
3157	Suggested by Kamil Dudka.
3158
31592009-07-21  Jim Meyering  <meyering@redhat.com>
3160
3161	build: update from gnulib
3162	* gnulib: Update submodule to latest.
3163
31642009-07-14  Jim Meyering  <meyering@redhat.com>
3165
3166	doc: point to Guile's ChangeLog-writing guidelines
3167	* HACKING (Commit log requirements): Point to Guile's
3168	http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html.
3169	Mention that a bit of prose can be welcome.
3170
31712009-07-11  Jim Meyering  <meyering@redhat.com>
3172
3173	tail: adjust type of a local variable
3174	* src/tail.c (tail_forever_inotify): Declare "len" to be of type
3175	size_t, not ssize_t, since the former is what safe_read returns.
3176
31772009-07-09  Jim Meyering  <meyering@redhat.com>
3178
3179	tests: avoid false-positive cp/link-heap failure
3180	* tests/cp/link-heap: Increase address space limit from 14000KB
3181	to 16000KB, to avoid failure with Debian unstable's libc6-dev-2.9-19
3182
3183	build: avoid build warn/failure due to -Wstack-protector
3184	* configure.ac: Do not enable -Wstack-protector.
3185	Otherwise, at least df.c would provoke a warning.
3186
31872009-07-08  Ondřej Vašík  <ovasik@redhat.com>
3188
3189	copy.c: remove a duplicate expression
3190	* src/copy.c (copy_attr_error): remove a redundant expression
3191	added in commit e0cf592f, 2009-04-27, "factor out test for errno ...".
3192
31932009-07-08  Jim Meyering  <meyering@redhat.com>
3194
3195	build: update from gnulib
3196	* gnulib: Update submodule to latest.
3197
3198	tail: use size_t for counter and index variables, ...
3199	* src/tail.c (any_live_files): ... not "int" or even unsigned int
3200	(tail_forever, tail_forever_inotify, main): Likewise.
3201
3202	tail: declare "file descriptor" variable to be "int", not size_t
3203	* src/tail.c (tail_forever_inotify): Use "int", not size_t
3204	as the type of a file descriptor variable.
3205
32062009-07-04  Jim Meyering  <meyering@redhat.com>
3207
3208	move argv-iter module to gnulib
3209	* gl/lib/argv-iter.c: Remove file.
3210	* gl/lib/argv-iter.h: Remove file.
3211	* gl/modules/argv-iter: Remove file.
3212	* gl/modules/argv-iter-tests: Remove file.
3213	* gl/tests/test-argv-iter.c: Remove file.
3214	* gnulib: Update submodule, to get argv-iter
3215
32162009-07-04  Giuseppe Scrivano  <gscrivano@gnu.org>
3217
3218	tests: refactor code to use require_proc_pid_status_
3219	* tests/tail-2/tail-n0f: Read the process status using the test-lib.sh
3220	require_proc_pid_status_ function.
3221
3222	tests: use the "nobody" user's group as the default group id
3223	* tests/chroot/credentials: Use the group id, not its name.
3224	* tests/test-lib.sh (NON_ROOT_GROUP): Use the "nobody" user's group in
3225	place of "nogroup".
3226
32272009-07-03  Jim Meyering  <meyering@redhat.com>
3228
3229	build: update from gnulib
3230	* gnulib: Update submodule to latest.
3231
32322009-07-03  Pádraig Brady  <P@draigBrady.com>
3233
3234	sort: allow SI and IEC units on separate human sort fields
3235	* src/sort.c: Store the si_present state per key rather than globally
3236	* tests/misc/sort: Add a check that would have previously failed.
3237	Also add a test to demonstrate that invalid IEC/SI mixtures are not
3238	always noticed when they're not significant to the sort.
3239
32402009-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
3241
3242	tail: avoid an inotify portability problem in kernels prior to 2.6.21
3243	* src/tail.c (tail_forever_inotify): Handle the special case in which
3244	an old inotify watcher returns 0.  Affects kernels in [2.6.13, 2.6.21).
3245
32462009-07-03  Jim Meyering  <meyering@redhat.com>
3247
3248	tests: tail-2/wait: rename internal file name
3249	* tests/tail-2/wait: Rename file from not_accessible to unreadable,
3250	since all the test cares about is readability.
3251
32522009-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
3253
3254	tests: tail-2/wait: don't fail when run as root
3255	* tests/tail-2/wait: Ensure that the unreadable file really is not
3256	readable before trying to run "tail -f" on it.
3257
32582009-07-03  Pádraig Brady  <P@draigBrady.com>
3259
3260	doc: update the info on sort -b and -k
3261	* doc/coreutils.texi (sort invocation): Mention in the description
3262	of -b, that the locale can also affect whether blanks are significant.
3263	Update the list of ordering options for a --key that cause it
3264	to not inherit any global ordering options.
3265	Update the list of ordering options that implicitly skip whitespace.
3266
3267	maint: generalize the development prerequisites docs
3268	* README-hacking: Add a little more high level info and
3269	merge notes on specific developer prerequisites into README-prereq
3270	* README-prereq: Remove the Fedora 8 specific information
3271	and generalize the information to be applicable to any system.
3272
32732009-06-29  Jim Meyering  <meyering@redhat.com>
3274
3275	tail: add comments noting potential inotify-related problems
3276	* src/tail.c (tail_forever_inotify): Add two FIXME comments.
3277
32782009-06-28  Jim Meyering  <meyering@redhat.com>
3279
3280	maint: bootstrap: merge changes from gnulib
3281	* bootstrap: Indent using spaces, not TABs.
3282
3283	maint: bootstrap: sync submodule usage from gnulib
3284	* bootstrap: Config for git submodule use only if .gitmodules exists.
3285
3286	maint: bootstrap: split a few long lines
3287	* bootstrap (found_aux_dir): Avoid lines longer than 80 columns.
3288
32892009-06-27  Jim Meyering  <meyering@redhat.com>
3290
3291	maint: don't change COPYING
3292	* COPYING: Don't modify Copyright date list in imported file.
3293	This file is one of very few exceptions in that we version-control it,
3294	even though its primary source is another package.
3295	Spotted by Eric Blake.
3296
3297	maint: add a rule to automate the annual copyright-year-update process
3298	* build-aux/update-copyright: New file.
3299	* Makefile.am (changelog_etc): Add update-copyright.
3300	(update-copyright): New rule.
3301
33022009-06-27  Pádraig Brady  <P@draigBrady.com>
3303
3304	stdbuf: fix to stop -i option causing an assertion
3305	* src/stdbuf.c (main): Fix the array bounds check in the assert
3306	* tests/misc/stdbuf: Add a test for all standard streams
3307
33082009-06-25  Pádraig Brady  <P@draigBrady.com>
3309
3310	doc: clarify the tail inotify NEWS
3311	* NEWS: Say why inotify was used
3312
33132009-06-23  Jim Meyering  <meyering@redhat.com>
3314
3315	maint: update all Copyright year lists to include 2009
3316
3317	maint: remove old TODO files
3318	* lib/TODO: Remove file.
3319	* tests/join/TODO: Likewise.
3320
3321	doc: README-hacking tweak
3322	* README-hacking: Move the "While building..." sentence down
3323	to where it belongs.
3324
3325	tests: tail-2/pid: include more info upon failure
3326	* tests/tail-2/pid: Print unexpected $state upon failing.
3327
33282009-06-20  Jim Meyering  <meyering@redhat.com>
3329
3330	doc: typo fix in README-hacking
3331	* README-hacking: Fix a typo.
3332	Don't make building from a git-cloned tree sound so hard.
3333
3334	build: update from gnulib (hash module updates; maint.mk tweak)
3335	* gnulib: Update submodule to latest.
3336
33372009-06-17  Jim Meyering  <meyering@redhat.com>
3338
3339	doc: fix a typo
3340	* doc/coreutils.texi (stdbuf invocation): Insert missing "to".
3341
33422009-06-17  Pádraig Brady  <P@draigBrady.com>
3343
3344	stdbuf: A new program to run a command with modified stdio buffering
3345	* AUTHORS: Register as the author.
3346	* NEWS: Mention this change.
3347	* README: Add stdbuf command to list.
3348	* configure.ac: Only enable on ELF systems with GCC.
3349	* cfg.mk (sc_system_h_headers): Use VC_LIST_EXCEPT rather than
3350	VC_LIST, so we can add an exception, if needed.
3351	* .x-sc_system_h_headers: New file.  Exempt libstdbuf.c.
3352	* Makefile.am (syntax_check_exceptions): Add .x-sc_system_h_headers.
3353	* doc/coreutils.texi (stdbuf invocation): Add stdbuf info.
3354	* man/.gitignore: Ignore generated manpage.
3355	* src/.gitignore: Ignore stdbuf and libstdbuf.so binaries.
3356	* man/Makefile.am (stdbuf.1): Add dependency.
3357	* man/stdbuf.x: New file with example usage.
3358	* po/POTFILES.in: Reference new command and shared library sources.
3359	* src/Makefile.am (build_if_possible__progs): Add stdbuf and libstdbuf,
3360	(pkglib_PROGRAMS): Reference optional shared lib,
3361	(libstdbuf_so_LDADD): Ensure we don't link with non PIC libcoreutils.a.
3362	(libstdbuf_so_LDFLAGS): Add -shared GCC option,
3363	(libstdbuf_so_CFLAGS): Add -fPIC GCC option.
3364	(check-README): Exclude libstbuf.
3365	(check-AUTHORS): ditto.
3366	(sc_tight_scope): Exclude functions starting with __.
3367	* src/libstdbuf.c: The LD_PRELOAD shared library to control buffering.
3368	* src/stdbuf.c: New file to setup env variables before execing command.
3369	* tests/Makefile.am: Reference new test file.
3370	* tests/misc/help-version: Set expected exit codes.
3371	* tests/misc/invalid-opt: ditto.
3372	* tests/misc/stdbuf: Add 9 tests.
3373
33742009-06-16  Jim Meyering  <meyering@redhat.com>
3375
3376	doc: cp: describe an oddity of combining -H/-L and --preserve=links
3377	* doc/coreutils.texi (cp invocation) [-L]: Elaborate.
3378	[--preserve=links]: Remove comments saying that we need documentation
3379	for just this situation.  Provide more explanation and examples.
3380	Reported by Brian M. Carlson in http://bugs.debian.org/525048.
3381
33822009-06-15  Jim Meyering  <meyering@redhat.com>
3383
3384	maint: revert last change: we're not ready for "local" in scripts, yet
3385	Revert "use a local var: more readable"
3386	This reverts commit c0d82452883a10911c9cbc69c84144d99b7e6b08.
3387
3388	use a local var: more readable
3389
33902009-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
3391
3392	tail: use inotify if it is available
3393	* NEWS: Document the new feature.
3394	* m4/jm-macros.m4: Check if inotify is present.
3395	* src/tail.c (tail_forever_inotify): New function.
3396	(main): Use the inotify-based function, if possible.
3397	* tests/Makefile.am: Add new tests for tail.
3398	* tests/test-lib.sh (require_proc_pid_status_, get_process_status_):
3399	New functions.
3400	* tests/tail-2/pid: New file.
3401	* tests/tail-2/wait: New file.
3402	* tests/tail-2/tail-n0f: Refactor code into the test-lib.sh
3403	require_proc_pid_status_ function.
3404
34052009-06-13  Jim Meyering  <meyering@redhat.com>
3406
3407	diag: say "failed to...", rather than "cannot..." in a few diagnostics
3408	* src/chroot.c (main): ...it's more precise.
3409	* src/nohup.c (main): Likewise.
3410	* src/setuidgid.c (main): Likewise.
3411	* src/timeout.c (main): Likewise.
3412
34132009-06-13  Cliff Miller  <cbm@whatexit.org>
3414
3415	sort: Ignore fields where end position is before the start position
3416	* NEWS: Mention the fix
3417	* THANKS: Add Cliff Miller
3418	* src/sort.c (keycompare): Ensure lima >= texta
3419	* tests/misc/sort: Add 3 corresponding tests
3420
34212009-06-11  Pádraig Brady  <P@draigBrady.com>
3422
3423	tests: ls --color, permissions override hardlink coloring
3424	* tests/ls/multihardlink: Add a test case to demonstrate
3425	and test this non obvious behavior.
3426
34272009-06-11  Kamil Dudka  <kdudka@redhat.com>
3428
3429	ls --color: do not colorize files with multiple hard links by default
3430	* src/ls.c: Rename hl->mh, do not colorize files with multiple
3431	hard links by default.
3432	* src/dircolors.c: Rename HARDLINK -> MULTIHARDLINK, hl -> mh.
3433	* src/dircolors.hin: Do not colorize files with multiple hard links by
3434	default.
3435	* tests/Makefile.am: Rename the test case accordingly.
3436	* tests/ls/multihardlink: Additionally test ls' default behavior
3437	and factor out some duplication.
3438	* NEWS: Mention the change in behavior.
3439
34402009-06-08  Pádraig Brady  <P@draigBrady.com>
3441
3442	maint: Add a syntax-check to ensure all .x-sc_ files are distributed
3443	* Makefile.am: Add a couple of missing entries to
3444	syntax_check_exceptions for distribution.
3445	* cfg.mk: Add a rule to ensure the syntax_check_exceptions list
3446	stays in sync with the .x-sc_* files in the repository.
3447
34482009-06-07  Jim Meyering  <meyering@redhat.com>
3449
3450	build: update from gnulib
3451	* gnulib: Update submodule to latest.
3452
3453	sort: die immediately upon heap allocation failure
3454	* src/sort.c (register_proc): Handle hash_insert failure.
3455
34562009-06-04  Mike Frysinger  <vapier@gentoo.org>
3457
3458	dircolors: add screen-256color-bce to TERM list
3459	* src/dircolors.hin: Add screen-256color-bce.
3460
34612009-06-03  Jim Meyering  <meyering@redhat.com>
3462
3463	doc: HACKING: minor adjustments, additions
3464	* HACKING (Amending...): Remove spurious "-e" used with commit --amend.
3465	(log message policy): Mention the 72-column limit.
3466	"build:" and "maint:" are common prefixes, these days.
3467
3468	doc: adjust wording in README-prereq
3469
3470	dircolors: recognize .xz, .txz, .tbz and .tlz suffixes
3471	* src/dircolors.hin: Add .xz, .txz, .tbz and .tlz.
3472
3473	doc: use newer URL for XZ utils
3474	* README-hacking: Use <http://tukaani.org/xz/>
3475	* README-prereq: Mention xz, not lzma.
3476
34772009-06-03  Matěj Cepl  <mcepl@redhat.com>
3478
3479	doc: adjust README-prereq instructions
3480	* README-prereq: Mention new requirement on automake-1.11,
3481	with its new location and updated dependency on autoconf-2.62.
3482	Remove the reference to coreutils-7.0 so that this file
3483	implicitly refers to the latest or release version of coreutils.
3484	Fix and clarify the instructions for updating the $PATH.
3485
34862009-06-02  Jim Meyering  <meyering@redhat.com>
3487
3488	doc: HACKING: mention the GNU Coding Standards
3489	* HACKING (Add documentation): Add a link to the GCS.
3490
3491	build: no longer list gnulib's "memchr" module as obsolete
3492	* bootstrap.conf (obsolete_gnulib_modules): Remove memchr from
3493	the list, now that it fixes a problem in some modern C libraries.
3494	(gnulib_modules): Add it here.
3495
3496	build: make generated man/*.1 files read-only
3497	This should help people notice that they are generated.
3498	Note: each file already has a comment to that effect from help2man.
3499	* man/Makefile.am (.x.1): Make generated files read-only.
3500	Also, don't redirect directly to the target, $@.
3501
3502	build (man/): use automake's new $(AM_V_GEN) variable
3503	* man/Makefile.am (.x.1, check-x-vs-1, check-programs-vs-x):
3504	Mark with $(AM_V_GEN), so that automake-1.11 prints
3505	"GEN $@" by default (stick with "GEN" in spite of the latter two
3506	rules not officially generating anything -- they're just tests).
3507
3508	chroot: make --groups= work without --userspec=;  be more robust
3509	* src/chroot.c (set_additional_groups): Add comments.
3510	Given an empty or all-comma group list, diagnose it and return nonzero.
3511	When more than one group is invalid, diagnose all of them,
3512	not just the first.
3513	(main): Honor --groups= also when --userspec= is not specified.
3514	Now that set_additional_groups consistently diagnoses its failures,
3515	don't diagnose it separately here.
3516	* tests/chroot/credentials: Do not invoke with an empty group list.
3517
3518	chroot: don't set bogus user-ID or group-ID for --u=U: or --u=:G
3519	* src/chroot.c (main): Initialize both "uid" and "gid".  To -1.
3520	This also allows one to set the user-ID or primary group-ID to 0,
3521	in case it's not that already.
3522	* tests/chroot/credentials: Test for the above.
3523
3524	chroot: set-*-ID failure must provoke nonzero exit before execvp
3525	* src/chroot.c (main): Exit upon set-group-ID or set-user-ID failure.
3526
3527	tests: use "nobody" as the default group name in chroot test
3528	* tests/test-lib.sh (NON_ROOT_GROUP): Use "nobody", not "nogroup".
3529
3530	build: make distcheck rules use --enable-gcc-warnings
3531	* dist-check.mk (warn_cflags): Remove definition, now that it's
3532	been subsumed by --enable-gcc-warnings.
3533	(my-distcheck): Use configure with --enable-gcc-warnings and remove
3534	use of $(warn_cflags).
3535
35362009-05-30  Eric Blake  <ebb9@byu.net>
3537
3538	head, tail: make --help less ambiguous
3539	* src/head.c (usage): Use -n K, not -n N, to avoid confusion.
3540	* src/tail.c (usage): Likewise.
3541	* doc/coreutils.texi (head invocation, tail invocation):
3542	Likewise.
3543	Reported by Christophe Lyon.
3544
35452009-05-26  Michael Speer  <knomenet@gmail.com>
3546
3547	sort: new --human-numeric-sort option to sort KiB MB etc.
3548	* NEWS: Document the new option
3549	* doc/coreutils.texi (sort invocation): ditto
3550	* src/sort.c (main): handle the new --human-numeric-sort option (-h).
3551	(human_numcompare): A new function to compare SI and IEC suffixes
3552	before falling back to the standard --numeric comparison.
3553	(find_unit_order): A new helper function to find the order
3554	of magnitude of a number string as determined by its suffix.
3555	(check_mixed_SI_IEC): A new helper function to exit with error
3556	if both SI and IEC suffixes are presented.
3557	* tests/misc/sort: Add 8 tests to test the new functionality.
3558	* THANKS: Update
3559
35602009-05-26  Giuseppe Scrivano  <gscrivano@gnu.org>
3561
3562	chroot: accept new options --userspec=U:G and --groups=G1,G2,G3
3563	* NEWS: Note chroot's new options.
3564	* doc/coreutils.texi: Document them.
3565	* src/chroot.c (main): Add support for --userspec and --groups.
3566	* tests/Makefile.am (root-tests): Add chroot/credentials.
3567	* tests/chroot/credentials: New file.
3568	* tests/test-lib.sh: Define NON_ROOT_GROUP to a default value.
3569
35702009-05-18  Pádraig Brady  <P@draigBrady.com>
3571
3572	doc: clarify the operation of the comm -123 parameters
3573	* src/comm.c (usage): give more information on the -123 parameters,
3574	with examples to show that they can be combined.
3575	Addresses <http://savannah.gnu.org/bugs/?24974>.
3576	* doc/coreutils.texi (comm invocation): Mention that the
3577	column separators are suppressed along with the column.
3578	Suggestion from Dan Jacobson.
3579	* man/comm.x: Reference other commands that match adjacent lines.
3580	* man/join.x: ditto.
3581	* man/uniq.x: ditto.
3582
35832009-05-18  Jim Meyering  <meyering@redhat.com>
3584
3585	build: require automake-1.11
3586	* bootstrap.conf (buildreq): Require automake-1.11, not 1.10b,
3587	for our use of AM_SILENT_RULES.
3588	* configure.ac (AM_INIT_AUTOMAKE): Likewise.
3589
35902009-05-17  Jim Meyering  <meyering@redhat.com>
3591
3592	maint: HACKING: mention a few more useful git commands
3593	* HACKING (Miscellaneous useful git commands): Add a few.
3594
3595	build: avoid new "make distcheck" failure with gcc 4.5.0 20090517
3596	* dist-check.mk (warn_cflags): Add -Wno-enum-compare.
3597
3598	build: avoid new warnings from gcc 4.5.0 20090517
3599	* configure.ac: Add an explicit -Wno-logical-op,
3600	now that not listing -Wlogical-op is insufficient.
3601
3602	maint: use ARRAY_CARDINALITY more
3603	* src/sort.c (main): Use ARRAY_CARDINALITY, rather than open-coding it.
3604	* src/factor.c (WHEEL_END): Likewise.
3605	* src/csplit.c (main): Likewise.
3606	* src/od.c: Likewise,
3607	* src/ls.c (main): Likewise.
3608	(N_ENTRIES): Remove definition.  Use ARRAY_CARDINALITY instead.
3609	* src/dircolors.c: Likewise.
3610	(array_len): Remove definition.
3611
3612	build: tr: avoid a warning due to newer gcc's -Wenum-compare
3613	* src/tr.c (N_CHAR_CLASSES): Remove anonymous enum definition.
3614	(look_up_char_class): Use ARRAY_CARDINALITY, rather than N_CHAR_CLASSES.
3615
3616	maint: define ARRAY_CARDINALITY in system.h
3617	* src/system.h (ARRAY_CARDINALITY): Define if not already defined.
3618
3619	build: turn off -Wlong-long
3620	* configure.ac: With --enable-gcc-warnings, -Wlong-long would
3621	cause compilation failure due to inclusion of lib/gethrxtime.h.
3622	Initialize "nw".
3623
36242009-05-16  Jim Meyering  <meyering@redhat.com>
3625
3626	maint: cfg.mk: remove now-unnecessary gnulib_dir definition
3627	* cfg.mk (gnulib_dir): Remove definition, now that gnulib's
3628	maint.mk provides the default we want.
3629	* gnulib: Update submodule to latest.
3630
36312009-05-15  Pádraig Brady  <P@draigBrady.com>
3632
3633	tests: fix date-next-dow failure on older systems
3634	* tests/misc/date-next-dow: In the strftime call use %Y-%m-%d
3635	rather than the newer %F equivalent which is not available
3636	on Solaris 8 for example.
3637
36382009-05-14  Jim Meyering  <meyering@redhat.com>
3639
3640	build: update from gnulib, for rename.m4 fix, improved tests, etc.
3641	* gnulib: Update submodule to latest.
3642
3643	maint: README-release: minor improvements
3644	* README-release: Mention gnu_ftp_host-{alpha,...} settings in cfg.mk.
3645	Now that XZ_OPT is set via maint.mk, don't mention it here.
3646
36472009-05-11  Eric Blake  <ebb9@byu.net>
3648
3649	truncate: fix bug in use of isspace
3650	* src/truncate.c (main): Pass unsigned characters to isspace.
3651	* NEWS: Mention this.
3652
36532009-05-07  Jim Meyering  <meyering@redhat.com>
3654
3655	post-release administrivia
3656	* NEWS: Add header line for next release.
3657	* .prev-version: Record previous version.
3658	* cfg.mk (old_NEWS_hash): Auto-update.
3659
3660	version 7.4
3661	* NEWS (Build-related): Mention make check fixes.
3662
3663	admin: update NEWS
3664	* NEWS (Bug fixes): Mention the date-related fixes.
3665	(Portability): Mention the ACL-related fixes on *BSD.
3666
36672009-05-05  Pádraig Brady  <P@draigBrady.com>
3668
3669	doc: note the use of LC_COLLATE in comm, join and uniq
3670	* doc/coreutils.texi (uniq invocation): Simplify the
3671	text to remove the inconsequential mentioning of order,
3672	while implying that LC_COLLATE can alter equality comparisons.
3673	* src/comm.c (usage): Mention LC_COLLATE is significant.
3674	* src/join.c (usage): Ditto.
3675	* src/uniq.c (usage): Ditto. Also improve the summary.
3676	Suggestion from Andries Brouwer
3677
36782009-05-05  Jim Meyering  <meyering@redhat.com>
3679
3680	tests: rm/one-file-system: umount more reliably
3681	* tests/rm/one-file-system: Run umount via trap, so it runs
3682	also upon irregular termination.
3683
36842009-05-05  Andreas Schwab  <schwab@linux-m68k.org>
3685
3686	tests: fix typo in check-AUTHORS rule
3687	* src/Makefile.am (check-AUTHORS): Set locale.
3688
36892009-05-04  Jim Meyering  <meyering@redhat.com>
3690
3691	build: use a gnulib SHA1 that is not private
3692	* gnulib: Update submodule to latest *public*.
3693
3694	build: update from gnulib, for ACL-related fixes
3695	* gnulib: Update submodule to latest.
3696
36972009-05-03  David Bartley  <dtbartle@csclub.uwaterloo.ca>
3698
3699	mv, rm: adapt to new and improved gnulib interfaces
3700	Use gnulib's new priv-set module and updated write-any-file.
3701	With them, the remove-called can_write_any_file function no
3702	longer tries to drop the unlink-directory privilege, so now
3703	each caller of remove must do that separately, calling
3704	priv_set_remove_linkdir.
3705	* bootstrap.conf (gnulib_modules): Add priv-set.
3706	* src/rm.c: Include "priv-set.h".
3707	(main): Call priv_set_remove_linkdir.
3708	* src/mv.c (main): Likewise.
3709	* gnulib: Update submodule to latest.
3710
37112009-05-03  Jim Meyering  <meyering@redhat.com>
3712
3713	tests: correct the "make check"-run check-AUTHORS test
3714	* src/Makefile.am (check-AUTHORS): Revert back to using
3715	en_US.UTF-8, to ease parsing (English-only) text around the
3716	list of names, even when .po files are not installed.
3717	Reported by Andreas Schwab.
3718	Along the way, use $(AM_V_GEN), not "@".
3719	(sc_tight_scope): Use $(AM_V_GEN) here, too.
3720	* gnulib: Update submodule to latest, for the proper_name_utf8 fix
3721	that makes --version output print the UTF-8 rendering of author names
3722	in more cases.
3723
3724	tests: add tests of e.g., date -d 'next monday'
3725	* tests/misc/date-next-dow: New file.
3726	* tests/Makefile.am (TESTS): Add misc/date-next-dow.
3727	* gnulib: Update submodule to latest, for getdate.y that
3728	handles "next Monday" properly when run on a Monday.
3729
37302009-05-01  Jim Meyering  <meyering@redhat.com>
3731
3732	post-release administrivia
3733	* NEWS: Add header line for next release.
3734	* .prev-version: Record previous version.
3735	* cfg.mk (old_NEWS_hash): Auto-update.
3736
3737	version 7.3
3738	* NEWS: Record release date.
3739
3740	maint: tweak release-building notes
3741	* README-release: Specify -j1 on the command to run all tests.
3742	Otherwise, running some in parallel would cause failures, e.g.,
3743	for rm/ext3-perf and tail-2/assert-2.
3744
37452009-05-01  Eric Blake  <ebb9@byu.net>
3746
3747	stdopen: remove unused code
3748	* m4/stdopen.m4: Delete now-unused file.
3749	* lib/stdopen.h: Likewise.
3750	* lib/stdopen.c: Likewise.
3751
37522009-04-30  Jim Meyering  <meyering@redhat.com>
3753
3754	build: update from gnulib, for fixed lib/signbitl.c
3755	* gnulib: Update submodule to latest.
3756
3757	build: "make check" now fails in a friendlier manner for missing Perl
3758	* doc/Makefile.am (sc-lower-case-var): Don't redirect stderr of
3759	$(PERL) (which is sometimes build-aux/missing) to /dev/null,
3760	so that a failing "make check" explains that Perl is not installed.
3761	Reported by James Youngman.
3762
3763	build: doc: emit something for each "make check"-run rule
3764	* doc/Makefile.am: Use $(AM_V_GEN) in place of each leading "@".
3765	(check-texinfo): Align line-continuation backslashes.
3766
37672009-04-29  Jim Meyering  <meyering@redhat.com>
3768
3769	build: update from gnulib, for the lib/*-state.c compilation fixes
3770	* gnulib: Update submodule to latest.
3771
37722009-04-28  Pádraig Brady  <P@draigBrady.com>
3773
3774	misc: correct NEWS entry about id -G portability
3775	* NEWS (Portability): getgrouplist has the portability issues,
3776	not getgroups.
3777
37782009-04-28  Jim Meyering  <meyering@redhat.com>
3779
3780	df: adjust comment to match recent code change
3781	* src/df.c (main): Update comment to match.
3782
3783	misc: mention the df vs. automount change
3784	* NEWS (Portability): Mention that df now accommodates the new
3785	behavior of some automounters.
3786
3787	misc: alphabetize NEWS entries
3788
37892009-04-28  Tomas Smetana  <t.smetana@gmail.com>
3790
3791	df: use open(2), not stat, to trigger automounting
3792	* src/df.c (main): When iterating over command-line arguments,
3793	attempting to ensure each backing file system is mounted, use
3794	open, not stat.  stat is no longer sufficient to trigger
3795	automounting, in some cases.  Based on a suggestion from Ian Kent.
3796	More details in http://bugzilla.redhat.com/497830
3797
37982009-04-28  Ondřej Vašík  <ovasik@redhat.com>
3799
3800	tests: ensure that cp's -a doesn't silence --preserve=context
3801	* tests/cp/cp-a-selinux: Ensure that the -a option does not silence
3802	error diagnostics from --preserve=context, when preserving context
3803	is required.
3804
3805	tests: add test for xattr diagnostics on dest. FS lacking xattr support
3806	* tests/cp/cp-mv-enotsup-xattr: Ensure that xattr diagnostics are
3807	displayed correctly when destination filesystem lacks xattr support.
3808	* tests/Makefile.am (root_tests): Add new root-only test.
3809
38102009-04-27  Jim Meyering  <meyering@redhat.com>
3811
3812	copy.c: factor out test for errno value indicating "unsupported"
3813	* src/copy.c (errno_unsupported): New function.
3814	(copy_attr_error, copy_internal): Use it.
3815
38162009-04-27  Ondřej Vašík  <ovasik@redhat.com>
3817
3818	cp -a: diagnose failure when preserving xattr/context required
3819	* src/copy.c (copy_attr_by_fs): Always print diagnostics when preserving
3820	xattrs is required.
3821	(copy_attr_by_name): Likewise.
3822	(copy_reg): Always print diagnostics when preserving SELinux
3823	context is required.
3824	(copy_internal): Likewise.  Also, do not ignore ENOTSUP and ENODATA
3825	errors when preserving SELinux context is required.
3826	* NEWS (Bug fixes): Mention it.
3827
3828	mv: ignore xattr-preservation failure when not supported by filesystem
3829	*src/copy.c: Do not warn about xattr-preservation failure when xattrs
3830	are not supported and preservation of xattrs is not explicitly required.
3831	Reported by Eric Sandeen in http://bugzilla.redhat.com/496142
3832
38332009-04-25  Jim Meyering  <meyering@redhat.com>
3834
3835	build: update from gnulib, for the vc-list-files fix
3836	* gnulib: Update submodule to latest.
3837
3838	build: adjust use of automake's new $(AM_V_GEN) variable
3839	* src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h):
3840	(version.c, version.h): Use $(AM_V_GEN) only as a prefix of an existing
3841	command.  Otherwise, it provokes warnings from some "make" programs.
3842	Suggestion from Ralf Wildenhues.
3843
38442009-04-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3845
3846	tests: fix check-AUTHORS skip logic
3847	* src/Makefile.am (check-AUTHORS): When this test is skipped, be
3848	sure to avoid all commands in the recipe, not just those passed
3849	to the first shell.
3850
38512009-04-25  Eric Blake  <ebb9@byu.net>
3852
3853	cfg.mk: update to latest gnulib change
3854	* cfg.mk (bootstrap-tools): Override maint.mk default to include
3855	bison.
3856	* gnulib: Update to latest gnulib.
3857
38582009-04-24  Jim Meyering  <meyering@redhat.com>
3859
3860	build: move coreutils-specific rules from maint.mk to new file
3861	* dist-check.mk: New file: coreutils-specific rules extracted
3862	from maint.mk, now that maint.mk has migrated to gnulib.
3863	* Makefile.am (EXTRA_DIST): Add dist-check.mk.
3864	* coreutils/cfg.mk: Include $(srcdir)/dist-check.mk.
3865	* gnulib: Update submodule to latest.
3866
3867	tests: avoid unusual (~1-in-20) failure of a new test
3868	* tests/misc/sort: Remove one of the generated tests.
3869	363 remain in this file alone.
3870
3871	build: use automake's new $(AM_V_GEN) and $(AM_V_at) variables
3872	* src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h):
3873	(version.c, version.h): Mark with $(AM_V_GEN) and $(AM_V_at),
3874	so that the latest automake prints "GEN $@" by default.
3875
38762009-04-24  Simon Josefsson  <simon@josefsson.org>
3877
3878	build: use maint.mk from gnulib
3879	* maint.mk: Remove file.  Now it's generated.
3880	* .gitignore: Ignore it.
3881	* bootstrap.conf (gnulib_modules): Add maintainer-makefile.
3882	* gnulib: Update submodule to latest.
3883
38842009-04-23  Jim Meyering  <meyering@redhat.com>
3885
3886	build: make --enable-silent-rules the default
3887	* configure.ac (AM_INIT_AUTOMAKE): Remove silent-rules.  Instead,...
3888	(AM_SILENT_RULES): Use this, with it's undocumented [yes] argument.
3889	Those who want verbose build output may configure with
3890	--disable-silent-rules or use "make V=1".
3891
3892	* gnulib: Update submodule to latest.
3893
3894	sort -m: don't segfault when output file is also an input file
3895	* src/sort.c (avoid_trashing_input): Fix an off-by-one error and
3896	guard the use of memmove.
3897	* NEWS (Bug fixes): Mention it.
3898	* tests/misc/sort: Add tests to exercise the offending code.
3899	* THANKS: Update.
3900	Reported by Otavio Salvador in http://bugs.debian.org/525048.
3901
3902	tests: make the check-AUTHORS test more portable, now that it's...
3903	run as part of "make check".
3904	* src/Makefile.am (check-AUTHORS): Don't depend on en_US.UTF-8.
3905	Instead, use the French UTF8 locale, if configure found one.
3906	If not found, just skip the test.
3907
3908	avoid parallel "make distcheck" failure due to two run-in-src/ rules
3909	Move the check-AUTHORS rule from "syntax-check" to "check".
3910	* maint.mk (local-checks-available): Remove check-AUTHORS.
3911	(check-AUTHORS): Remove rule.
3912	* src/Makefile.am (CLEANFILES): Add $(no_install__progs),
3913	since they too are built sometimes.
3914	(check-AUTHORS): Split a longer-than-80 sed command.
3915	(../AUTHORS): Remove obsolete rule.
3916
39172009-04-22  Jim Meyering  <meyering@redhat.com>
3918
3919	cp: work around linux kernel bug: short-read != EOF on /proc
3920	Remove the optimization that avoided up to 50% of cp's read syscalls.
3921	Do not assume that a short read on a regular file indicates EOF.
3922	When reading from a file in /proc on linux [at least 2.6.9 - 2.6.29]
3923	into a 4k-byte buffer or larger, a short read does not
3924	always indicate EOF.  For example, "cp /proc/slabinfo /tmp"
3925	copies only 4068 of the total 7493 bytes.  This optimization
3926	(25719a33154f0c62ea9881f0c79ae312dd4cec7a, Improve performance a bit
3927	by optimizing away; 2005-11-24) appears to have been worth less than
3928	a 2% speed-up (and usually much less), so the impact of removing it
3929	is negligible.
3930
3931	* src/copy.c (copy_reg): Don't exit the loop early.
3932	* tests/cp/proc-short-read: New test, lightly based on a suggestion
3933	from Mike Frysinger, to exercise this fix.
3934	* tests/Makefile.am (TESTS): Add cp/proc-short-read.
3935	* NEWS (Improve robustness): Mention this change.
3936
3937	tests: avoid new "make distcheck" failure due to newer File::Temp
3938	With newer perl (e.g., Fedora 10's 4:5.10.0-68.fc10), tests/CuTmpdir.pm
3939	stopped removing its temporary directories, with diagnostics like this:
3940	  cannot remove path when cwd is /c/coreutils/tests/misc/seq.tmp-e2up \
3941	  for /c/coreutils/tests/misc/seq.tmp-e2up: at \
3942	  /usr/lib/perl5/5.10.0/File/Temp.pm line 902
3943	Chdir out of the target directory before that code runs:
3944	* tests/CuTmpdir.pm (END): chdir '..'.
3945	(chmod_tree): Remove explicit "chdir $dir".
3946
39472009-04-19  Jim Meyering  <meyering@redhat.com>
3948
3949	doc: update README
3950	* README: (Reporting bugs): List the bug-reporting address here, too,
3951	not just in the following more test-oriented paragraph.
3952	Reported by Tim Mooney.
3953	All changes are no longer listed in version-controlled ChangeLog
3954	files, so note that contributions are attributed in the commit logs.
3955	Mention bootstrap.conf, now that it's the authoritative source of
3956	minimal prerequisite program/version# pairs.
3957
39582009-04-19  Aurelien Jarno  <aurelien@aurel32.net>
3959
3960	tests: avoid failure of install-C test on FreeBSD UFS file system
3961	* tests/install/install-C: Use 2755 (set-gid), not 1755 (sticky),
3962	to test install -C with non-permission mode bits set.  At least on
3963	FreeBSD with a UFS file system, a non-root user may not set the
3964	sticky bit on a non-directory.
3965
39662009-04-19  Jim Meyering  <meyering@redhat.com>
3967
3968	comment touch up: insert a space between "#" and text of comment
3969	* bootstrap: It's easier to read that way.
3970
39712009-04-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3972
3973	fix comment typos
3974	* bootstrap: Fix comment typos.
3975	* src/pr.c: Likewise.
3976
39772009-04-17  Jim Meyering  <meyering@redhat.com>
3978
3979	maint: bootstrap: sync a tiny change from gnulib
3980	* bootstrap: rename variable to sync with gnulib: s/\$depth/$shallow/
3981
39822009-04-16  Jim Meyering  <meyering@redhat.com>
3983
3984	* gnulib: Update submodule to latest.
3985
3986	build: use '.'-relative name, gnulib_dir
3987	* cfg.mk (gnulib_dir): Use "gnulib", not "/gnulib", now that
3988	the former is a git submodule, and guaranteed to exist.
3989
39902009-04-15  Jim Meyering  <meyering@redhat.com>
3991
3992	maint: clean up skipped syntax-check rules
3993	* cfg.mk (local-checks-to-skip): Remove patch-check and changelog-check.
3994	* maint.mk (patch-check): Remove rule.
3995	(local-checks-available): Remove patch-check.
3996	(changelog-check): Remove rule.
3997
39982009-04-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3999
4000	build: avoid parallel distcheck failure
4001	* Makefile.am (ALL_RECURSIVE_TARGETS): Initialize here, too,
4002	to please automake.  Add install-root, check-root, distcheck-hook.
4003	* cfg.mk (ALL_RECURSIVE_TARGETS): Add sc_tight_scope.
4004	* maint.mk (ALL_RECURSIVE_TARGETS): Add patch-check,
4005	check-AUTHORS, maintainer-distcheck, vc-dist, taint-distcheck,
4006	my-distcheck, alpha, beta, major.
4007
40082009-04-10  Jim Meyering  <meyering@redhat.com>
4009
4010	doc: fix a typo: s/is a is a/is a/
4011	* doc/coreutils.texi (Putting the tools together): Fix typo.
4012
4013	build: tight-scope test: don't build excluded programs
4014	* src/Makefile.am (sc_tight_scope): Depend on $(bin_PROGRAMS),
4015	not $(all_programs)
4016
4017	gnulib: update to latest: fix ls -v & sort -V
4018	* NEWS (Bug fixes): Mention it.
4019
4020	maint: remove obsolete utime module
4021	* bootstrap.conf (obsolete_gnulib_modules): Remove utime.
4022
4023	maint: put each module name on its own line; sort
4024	* bootstrap.conf (gnulib_modules): List them one per line.
4025
40262009-04-09  Jim Meyering  <meyering@redhat.com>
4027
4028	tests: misc/ls-misc: avoid shadowing local decl of $e
4029	* tests/misc/ls-misc (make_j_d): Rename latter $e to $env
4030
40312009-04-09  Pádraig Brady  <P@draigBrady.com>
4032
4033	id: fix infinite loop on some systems
4034	Steven Parkes reported that `id -G $USER` went into an infinite loop
4035	on Darwin systems for users in more than 10 groups:
4036	http://bugs.gentoo.org/show_bug.cgi?id=264007
4037	* gl/lib/mgetgroups.c (mgetgroups): Work around buggy getgrouplist
4038	implementations that don't update the required size correctly,
4039	by doubling the result buffer and retrying. Also return the
4040	parameter updated by getgrouplist rather than its return value,
4041	as the documentation doesn't actually state the number of groups
4042	stored is returned by getgrouplist.
4043	* tests/misc/id-groups: Add test to exercise this logic
4044	* tests/Makefile.am: Reference new test
4045	* NEWS: Mention the fix
4046	* THANKS: Update
4047
40482009-04-07  Jim Meyering  <meyering@redhat.com>
4049
4050	maint: avoid "make syntax-check" failure
4051	* src/install.c (main): Tweak syntax of new diagnostic.
4052
40532009-04-07  Pádraig Brady  <P@draigBrady.com>
4054
4055	install: deprecate the --preserve_context option
4056	src/install.c: Print a warning when --preserve_context
4057	rather than --preserve-context is used as per FIXME.
4058
4059	maint: remove compiler warnings from randint and randread modules
4060	* gl/lib/randint.c: Remove unused MAX macro
4061	* gl/lib/randread.c (randread_error): Add __attribute__((__noreturn__))
4062
4063	shred,sort,shuf: don't use /dev/urandom by default
4064	Suggestion from Steven Schveighoffer at:
4065	http://savannah.gnu.org/patch/?6797
4066	to greatly speed up the random passes done by shred.
4067	* gl/lib/randread.c: Default to using the internal
4068	pseudorandom generator, rather than reading /dev/urandom
4069	* src/shred.c (usage): remove mention of /dev/urandom
4070	* src/shuf.c (usage); ditto
4071	* src/sort.c (usage): ditto
4072	* doc/coreutils.text: Document the new behaviour
4073	for aquiring random data.
4074
4075	maint: Clarify ambiguous refs to Linux kernels or GNU/Linux systems
4076	* README-prereq: s_linux_GNU/Linux_ or s_linux_Linux kernel_
4077	* README-valgrind: ditto
4078	* src/chown-core.c: ditto
4079	* src/dd.c: ditto
4080	* src/df.c: ditto
4081	* src/ls.c: ditto
4082	* src/mv.c: ditto
4083	* src/pwd.c: ditto
4084	* src/remove.c: ditto
4085	* src/shred.c: ditto
4086	* src/stat.c: ditto
4087	* src/su.c: ditto
4088	* src/system.h: ditto
4089	* src/timeout.c: ditto
4090	* src/truncate.c: ditto
4091
4092	doc: add missing documentation for some SELinux options
4093	* doc/coreutils.texi (ls invocation): Describe the --context (-Z) option
4094	(install invocation): Describe the --preserve-context and -Z options
4095	(id invocation): Describe the --context (-Z) option
4096	(mkdir invocation): ditto
4097	(mknod invocation): ditto
4098	(mkfifo invocation): ditto
4099	* TODO: remove the todo item
4100
41012009-04-06  Jim Meyering  <meyering@redhat.com>
4102
4103	* doc/code-vs-command: Remove long-unused, never-distributed file.
4104
41052009-04-04  Jim Meyering  <meyering@redhat.com>
4106
4107	gnulib: update to latest: includes Solaris 8 portability fixes
4108
4109	maint: clean up Makefile.am, rename remaining ChangeLog files
4110	* Makefile.am (changelog_etc, syntax_check_exceptions): Define.
4111	(EXTRA_DIST): Use.  Remove names that are now automatically
4112	included: build-aux/git-version-gen, build-aux/vc-list-files.
4113	* build-aux/ChangeLog-2007: Rename from */ChangeLog.
4114	* doc/ChangeLog-2007: Likewise.
4115	* lib/ChangeLog-2007: Likewise.
4116	* m4/ChangeLog-2007: Likewise.
4117	* po/ChangeLog-2007: Likewise.
4118
4119	tests: tweak po_check syntax check
4120	* maint.mk (sc_po_check): Don't let dangling lib/*.[ch] links cause
4121	spurious "grep: lib/file.h: No such file or directory" warnings.
4122
4123	tests: improve ChangeLog syntax check
4124	* maint.mk (sc_changelog): Use $(VC_LIST_EXCEPT), not find.
4125	Don't hang when there are no ChangeLog files.
4126	(sc_require_config_h): For the file-name-filter, use grep -l
4127	to be slightly more efficient.
4128	(sc_require_config_h_first, _header_without_use, sc_program_name):
4129	Likewise.
4130
41312009-04-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4132
4133	tests: make syntax-checks more robust
4134	* maint.mk (_prohibit_regexp): Add ';' at end of ':'-introduced
4135	comment so that the comment doesn't gobble up the following test
4136	for a missing regexp definition.
4137	(_header_without_use): Escape all '.'s in a header file name,
4138	not just the first one.
4139
41402009-04-03  Jim Meyering  <meyering@redhat.com>
4141
4142	* cfg.mk (old_NEWS_hash): Regenerate once more.
4143
4144	doc: adjust 7.2 "cat,cp,install,mv,split speed-up" NEWS item
4145	* NEWS: Reword an entry from 7.2 and change "linux" to "GNU/Linux".
4146	The latter was requested by Richard Stallman.
4147	* cfg.mk (old_NEWS_hash): Regenerate.
4148
41492009-04-03  Pádraig Brady  <P@draigBrady.com>
4150
4151	ls: fix alignment when month names have varying widths
4152	Reported by Samuel Thibault and Stéphane Raimbault, as the glibc fr_FR
4153	locale has recently changed to use the official but variable width
4154	abbreviated month names. Other glibc locales also have variable widths.
4155	http://sourceware.org/ml/libc-locales/2008-q1/msg00035.html
4156	http://sourceware.org/bugzilla/show_bug.cgi?id=9859
4157	* NEWS: Mention the fix
4158	* gl/lib/mbsalign.c: A new module to align and truncate a
4159	string in a specified number of screen cells, while handling
4160	multi-byte characters appropriately.
4161	* gl/lib/mbsalign.h: Ditto
4162	* gl/modules/mbsalign: Ditto
4163	* bootstrap.conf: Reference the new module
4164	* src/ls.c (abmon_init): New function, precompute the abbreviated
4165	months aligned left in a minimum width column <= 5 screen cells.
4166	(align_nstrftime): New function, replace the first %b in the
4167	format specification to strftime with the precomputed month string.
4168	Note using the cached month strings speeds up `ls -lU` by around 17%
4169	on glibc-2.7-2 on linux at least.  Also if we implement this function
4170	using heap storage rather than automatic storage, and use snprintf
4171	instead of strcpy, ls will slow down by 2% and 1% respectively
4172	(i.e. a net gain of 14% rather than 17%).
4173	* tests/ls/abmon-align: A new test to test ls alignment for
4174	various formats and locales
4175	* tests/Makefile.am: Reference the new test
4176
41772009-04-02  Pádraig Brady  <P@draigBrady.com>
4178
4179	doc: Clarify the help for version sorting in ls and sort
4180	* src/ls.c: Update the -v help description
4181	* src/sort.c: Update the -V help description
4182
41832009-04-02  Jim Meyering  <meyering@redhat.com>
4184
4185	doc: adjust README-prereq instructions
4186	* README-prereq: Reverse order of -b/--track options.
4187	 Pádraig Brady mentioned that is required with at least git-1.5.3.6.
4188	Invoke automake's own bootstrap script.
4189
41902009-04-02  C de-Avillez  <hggdh2@gmail.com>
4191
4192	build: require automake-1.10b or newer
4193	* bootstrap.conf: Require at least automake-1.10b.
4194	* README-prereq: Mention 1.10b, not 1.10a.
4195
41962009-04-02  Jim Meyering  <meyering@redhat.com>
4197
4198	tests: skip mv/i-3 if /dev/stdin is unreadable
4199	* tests/mv/i-3: Skip if /dev/stdin is unreadable.
4200	Reported by Sergei Steshenko.
4201
42022009-03-31  Jim Meyering  <meyering@redhat.com>
4203
4204	build: set automake's silent-rules option via configure.ac
4205	* bootstrap: Revert commit 9f39fa855, 2009-03-28,
4206	"build: use automake's --silent-rules option when possible".
4207	* configure.ac (AM_INIT_AUTOMAKE): Instead, set it here.
4208	Require the just-released version of automake: 1.10b.
4209
4210	tests: enable automake's color-tests and parallel-tests via configure.ac
4211	* gnulib-tests/Makefile.am (AUTOMAKE_OPTIONS): Don't define here.
4212	* tests/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
4213	* configure.ac (AM_INIT_AUTOMAKE): Instead, add color-tests and
4214	parallel-tests here.
4215
42162009-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4217
4218	build: use Automake's new parallel-tests feature
4219	* build-aux/check.mk: Remove, not needed any more.
4220	* tests/Makefile.am (AUTOMAKE_OPTIONS): Add parallel-tests and
4221	color-tests.
4222	* tests/check.mk: Do not include build-aux/check.mk any more.
4223	(SUFFIXES, TEST_LOGS): Remove.
4224	(TESTS_ENVIRONMENT): Use $$f rather than $$tst in $PERL invocation.
4225	* gnulib-tests/Makefile.am: Do not include build-aux/check.mk.
4226	(AUTOMAKE_OPTIONS): New macro, add parallel-test and color-tests.
4227	(TEST_LOGS): Remove.
4228
42292009-03-31  Jim Meyering  <meyering@redhat.com>
4230
4231	* README-release (savannah news): Also mention the Subject: to use.
4232
4233	post-release administrivia
4234	* NEWS: Add header line for next release.
4235	* .prev-version: Record previous version.
4236	* cfg.mk (old_NEWS_hash): Auto-update.
4237
4238	version 7.2
4239	* NEWS: Record release date.
4240
42412009-03-29  Jim Meyering  <meyering@redhat.com>
4242
4243	tests: don't use lang-default from individual tests
4244	* tests/sample-test: Don't recommend using lang-default here.
4245	It is now run for each test automatically, via TESTS_ENVIRONMENT.
4246	* tests/dd/reblock: Don't source lang-default here.
4247	* tests/misc/truncate-fail-diag: Likewise.
4248
4249	tests: other-fs-tmpdir: remove just-added duplicate /usr/tmp
4250	* tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Remove 2nd /usr/tmp.
4251
4252	tests: other-fs-tmpdir: avoid bogus "skipped **********..." diagnostic
4253	* tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Add /dev/shm to the list.
4254	Don't use a line of asterisks as the first line of the "why skipped"
4255	diagnostic, now that that line is printed on 'make check's stderr.
4256
42572009-03-28  Jim Meyering  <meyering@redhat.com>
4258
4259	build: use automake's --silent-rules option when possible
4260	* bootstrap: Use automake's --silent-rules option.
4261
42622009-03-27  Jim Meyering  <meyering@redhat.com>
4263
4264	tests: test-argv-iter.c: avoid declaration-after-stmt
4265	* gl/tests/test-argv-iter.c: Move declaration "up", so as not
4266	to ruffle feathers of crufty compilers.  We accommodate such
4267	compilers here solely because this module may migrate to gnulib.
4268	Tiny patch by Matthew Woehlke.
4269
42702009-03-27  Eric Blake  <ebb9@byu.net>
4271
4272	tests: fix 'make sc_tight_scope' on cygwin
4273	* src/Makefile.am (sc_tight_scope): Ignore leading underscores in symbols.
4274
42752009-03-27  Jim Meyering  <meyering@redhat.com>
4276
4277	tests: avoid spurious test failure in set-GID build dir
4278	* tests/install/install-C-root: Skip this test if in set-gid directory.
4279	Reported by Sven Joachim and C de-Avillez.
4280
4281	tests: migrate setgid-check into test-lib.sh
4282	* tests/test-lib.sh (skip_if_setgid_): New function.
4283	* tests/setgid-check: Remove file.
4284	* tests/Makefile.am (EXTRA_DIST): Remove setgid-check.
4285	* tests/chmod/c-option: Use the new function rather than sourcing
4286	the separate file.
4287	* tests/cp/cp-parents: Likewise.
4288	* tests/install/install-C: Likewise.
4289	* tests/mkdir/parents: Likewise.
4290	* tests/mkdir/perm: Likewise.
4291
42922009-03-26  Jim Meyering  <meyering@redhat.com>
4293
4294	tests: mark the rm/ext3-perf test as "very" expensive
4295	* tests/rm/ext3-perf: Relegate this test to the very_expensive
4296	category, since it is failing too often for me, when run in
4297	parallel (-j4) with other disk-hammering tests.  This test fails
4298	when it takes too long, so the fact that it fails under pressure
4299	is an inconvenience more than a real problem.
4300
4301	* gnulib: Update submodule to latest.
4302
43032009-03-26  Paul Eggert  <eggert@cs.ucla.edu>
4304
4305	df: port the known-value fix to AIX as well
4306	* src/df.c (known_value): New function, which also works on AIX
4307	/proc file systems.
4308	(df_readable, show_dev): Use it instead of hardcoding comparison to
4309	UINTMAX_MAX.  Suggested by Jim Meyering and Matthew Woehlke.
4310
4311	df: fix a bug when totaling unknown values
4312	* src/df.c (show_dev): Don't add UINTMAX_MAX to grand totals, as that
4313	value indicates that the true value is unknown; adding it effectively
4314	subtracts 1 from the total, whereas we want to leave the total alone.
4315
43162009-03-25  Jim Meyering  <meyering@redhat.com>
4317
4318	tests: don't fail "make syntax-check" on cygwin
4319	* maint.mk (NEWS_hash): Remove trailing " -" or " *-".
4320	* cfg.mk (old_NEWS_hash): Regenerate, removing " -".
4321	Reported by Eric Blake.
4322
43232009-03-25  Eric Blake  <ebb9@byu.net>
4324
4325	pwd: support -L and -P
4326	* src/pwd.c (longopts): New variable.
4327	(logical_getcwd): New function.
4328	(main): Use it.
4329	(usage): Document new options.
4330	* doc/coreutils.texi (pwd invocation): Likewise.
4331	* NEWS: Likewise.
4332	* TODO (pwd): Mark it done.
4333	* tests/misc/pwd-option: New file.
4334	* tests/Makefile.am (TESTS): Add test.
4335	* THANKS: Update.
4336	Reported by Paul D. Smith, in savannah bug 24949.
4337
43382009-03-25  Ondřej Vašík  <ovasik@redhat.com>
4339
4340	doc: update suffix regex in version sort
4341	* doc/coreutils.texi: Reflect current filevercmp regex.
4342
43432009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4344
4345	tests: CuTmpdir.pm: avoid use of undefined variable in warning
4346	* tests/CuTmpdir.pm (chmod_tree): Do not warn if $dir is undefined.
4347
43482009-03-24  Jim Meyering  <meyering@redhat.com>
4349
4350	tests: ls -v: exercise yet another change in gnulib's new filevercmp
4351	* tests/misc/ls-misc: Add names with ~ and ~.1~ suffixes.
4352
4353	* gnulib: Update submodule to latest.
4354
43552009-03-24  Kamil Dudka  <kdudka@redhat.com>
4356
4357	ls: make it possible to disable coloring of hard links
4358	* src/ls.c (print_color_indicator): Don't color hard links if disabled
4359	(when there is an empty hl= in the LS_COLORS environment variable).
4360	* tests/ls/hardlink: Add test case for disabled hard link highlighting.
4361	* NEWS: Mention the change.
4362
43632009-03-21  Jim Meyering  <meyering@redhat.com>
4364
4365	tests: search only files that are under version control
4366	* maint.mk (sc_error_exit_success): Search only files
4367	that are under version control.
4368	(sc_makefile_path_separator_check): Likewise.
4369	Check *.mk files, too, not just Makefile.am files.
4370
4371	tests: follow own advice: use $(PATH_SEPARATOR), not ":"
4372	* maint.mk (coreutils-path-check): Use the variable, not the literal.
4373
4374	tests: modernize: use $(var) makefile notation, not @var@
4375	* maint.mk (sc_makefile_path_separator_check): Recommend
4376	the use of $(PATH_SEPARATOR), not @PATH_SEPARATOR@.
4377	Remove an obsolete comment.
4378
43792009-03-20  Jim Meyering  <meyering@redhat.com>
4380
4381	tests: teach sc_dd_O_FLAGS about new syntax in dd.c
4382	* cfg.mk (sc_dd_O_FLAGS): Adapt to new syntax.
4383
43842009-03-20  Eric Blake  <ebb9@byu.net>
4385
4386	dd: use a more portable definition of O_FULLBLOCK
4387	* src/dd.c (O_FULLBLOCK): Compute its value without using a 180KB
4388	macro.  This avoids triggering a compilation failure with HP-UX's cc.
4389	Reported by Matthew Woehlke.
4390
43912009-03-20  Jim Meyering  <meyering@redhat.com>
4392
4393	tests: avoid spurious mkdir/selinux test failure on HP-UX 11.23
4394	* tests/mkdir/selinux: Accept yet another diagnostic.
4395	Reported by Matthew Woehlke.
4396
43972009-03-19  Jim Meyering  <meyering@redhat.com>
4398
4399	tests: df/total-verify: avoid test failure with older Perl
4400	* tests/df/total-verify: Don't use perl's -f option.
4401	Reported by Matthew Woehlke.
4402
4403	* gnulib: Update submodule to latest.
4404
44052009-03-18  Jim Meyering  <meyering@redhat.com>
4406
4407	tests: adjust sort-continue not to fail under valgrind
4408	* tests/misc/sort-continue: Don't run cat inside fd-limited shell.
4409	If sort fails to run in an fd-limited shell, skip the test.
4410
44112009-03-18  Paul Eggert  <eggert@CS.UCLA.EDU>
4412
4413	tests: add another sort/nmerge test
4414	* tests/Makefile.am (TESTS): Add sort-merge-fdlimit.
4415	* tests/misc/sort-merge-fdlimit: New file.
4416	* doc/coreutils.texi (sort invocation): Document that we now silently
4417	lower nmerge if necessary.
4418	Patch by Paul Eggert, Nima Nikzad, Max Chang, Alexander Nguyen,
4419	Sahil Amoli, and Nick Graham.
4420
4421	sort: handle fd exhaustion better when merging
4422	This is an alternative to my 9 March patch labeled "Silently lower
4423	nmerge; don't (sometimes incorrectly) range-check"
4424	<http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00070.html>.
4425	It differs by not using 'dup' to probe for extra file descriptors;
4426	instead, it simply calls 'open' (and 'pipe') to open files and pipes,
4427	until one of these calls fails due to file descriptor exhaustion; it
4428	then backs off by 1, does a merge with the files that it has opened,
4429	and then retries with the (now-smaller) number of files.
4430
4431	This patch requires quite a few more changes to the source code than
4432	the earlier patch, but it is in some sense "better" because it doesn't
4433	need to call "dup" ahead of time in order to decide whether "open" or
4434	"pipe" will fail.  Also, it's more robust in the case where "open" or
4435	"pipe" fails with errno==EMFILE because some system-wide limit is
4436	exhausted.
4437
4438	* src/sort.c (create_temp_file): New arg SURVIVE_FD_EXHAUSTION.
4439	(stream_open): New function, containing guts of xfopen.
4440	(xfopen): Use it.
4441	(pipe_fork): Set errno on failure.
4442	(maybe_create_temp): New function, containing guts of create_temp.
4443	(create_temp): Use it.
4444	(open_temp): Distinguish failures due to file descriptor exhaustion
4445	from other failures, and on fd exhaustion return a notice to caller
4446	rather than dying.  Don't test execlp's return value; when it returns,
4447	it *always* returns -1.
4448	(open_input_files): New function.
4449	(mergefps): New arg FPS. It's now the caller's responsibility to open
4450	the input and output files.  All callers changed.
4451	(mergefiles): New function.
4452	(avoid_trashing_input, merge): Handle the case where a single merge
4453	can't merge as much as we wanted due to file descriptor exhaustion, by
4454	merging as much as we can and then retrying.
4455	* tests/Makefile.am (TESTS): Add misc/sort-continue.
4456	* tests/misc/sort-continue: New file.
4457	* THANKS: Add Glen Lenker and Matt Pham who coauthored this patch.
4458
44592009-03-18  Jim Meyering  <meyering@redhat.com>
4460
4461	maint: normalize leading-TAB indentation in Makefiles
4462	* maint.mk (sc_makefile_TAB_only_indentation): New rule.
4463	Replace each TAB+8-space sequence with two TABs.
4464	* man/Makefile.am: Likewise.
4465	* build-aux/check.mk: Likewise.
4466	I used this command (run it more than once, if needed):
4467	t=$'\t'; git grep -l -E "$t {8}"|grep -E 'Makefile|\.mk$' \
4468	| xargs perl -pi -e 's/\t {8}/\t\t/'
4469
44702009-03-15  Jim Meyering  <meyering@redhat.com>
4471
4472	maint: remove long-unused Makefile
4473	* tests/sort-time/Makefile: Remove long-unused file.
4474
4475	maint: remove unused include and definitions
4476	* gl/lib/randread.c (__attribute__): Remove unused definition.
4477	(ATTRIBUTE_UNUSED): Likewise.
4478	* gl/lib/selinux-at.c (_): Remove unused definition.
4479	Don't include <gettext.h>.  No longer needed.
4480
4481	* gnulib: Update submodule to latest.
4482
44832009-03-14  Jim Meyering  <meyering@redhat.com>
4484
4485	system.h: correct compilation error: MAX not defined
4486	* src/system.h (io_blksize): Move definition down, so it follows that
4487	of MAX -- to avoid compilation failure on OpenSolaris.  Reported by
4488	David Bartley.  Details in
4489	http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00190.html
4490
4491	* gnulib: Update to pull in select/interix work-around.
4492
44932009-03-13  Kamil Dudka  <kdudka@redhat.com>
4494
4495	doc: update "version sort" documentation
4496	* doc/coreutils.texi: Reflect current filevercmp behavior.
4497
44982009-03-12  Jim Meyering  <meyering@redhat.com>
4499
4500	tests: groups-version: don't require that id be built
4501	* tests/misc/groups-version: groups is now independent of id.
4502
4503	tests: skip the groups-dash test when "groups" is not built
4504	* tests/misc/groups-dash: Skip if groups is not being installed.
4505	Suggested by Mike Frysinger.
4506	Also fail if groups exits with nonzero status.
4507
45082009-03-12  Pádraig Brady  <P@draigBrady.com>
4509
4510	maint: mention Autoconf version required to build Automake
4511	* README-prereq: coreutils currently requires an unreleased
4512	version of Automake, so mention the minimum version of Autoconf
4513	required to build that. Suggestion from James Youngman.
4514
45152009-03-12  Jim Meyering  <meyering@redhat.com>
4516
4517	* gnulib: Update submodule to latest.
4518
45192009-03-11  Ondřej Vašík  <ovasik@redhat.com>
4520
4521	cp: make -a option preserve xattrs, but with reduced diagnostics
4522	* copy.c (copy_attr_by_fd): Reduce xattr diagnostics for 'cp -a'.
4523	(copy_attr_by_name): Likewise.
4524	* cp.c (main): Preserve xattrs with -a option, when possible.
4525	* doc/coreutils.texi: Document that xattrs are preserved with
4526	cp -a, with no added diagnostics.
4527	* NEWS: Mention the change.
4528	* tests/misc/xattr: Add tests for 'cp --preserve=all' and 'cp -a'.
4529
45302009-03-11  Pádraig Brady  <P@draigBrady.com>
4531
4532	maint: Document how to best to enable gcc warnings for developers
4533	* README-hacking: Mention --enable-gcc-warnings configure option
4534	* configure.ac: Don't scare developers away from using gcc warnings
4535
45362009-03-11  Jim Meyering  <meyering@redhat.com>
4537
4538	maint: remove an obsolete FIXME comment
4539	* src/Makefile.am (../AUTHORS): Remove obsolete FIXME comment.
4540	There are no longer any installed *.sh programs.
4541
45422009-03-11  Pádraig Brady  <P@draigBrady.com>
4543
4544	cat: Fix immediate output of processed data
4545	Introduced by commit 790892db, 2006-06-08 "Ensure that cat works ...".
4546	* NEWS: Mention the bugfix.
4547	* src/cat.c (cat): Fix the typo which stopped the writing
4548	of processed data before a blocking read() is done.
4549	* tests/misc/cat-buf: Add to ensure processed data is not buffered.
4550	* tests/Makefile.am: Reference the new test.
4551
4552	cat,cp,mv,install,split: Set the minimum IO block size used to 32KiB
4553	This is following on from this change:
4554	[02c3dc9d 2008-03-06 cat: use larger buffer sizes ...]
4555	which increased the IO block size used by cat by 8 times,
4556	but also capped it at 32KiB.
4557	* NEWS: Mention the change in behavior.
4558	* src/system.h: Add a new io_blksize() function that
4559	returns the max of ST_BLKSIZE or 32KiB, as this was
4560	seen as a good value for a minimum block size to use
4561	to get good performance while minimizing system call overhead.
4562	* src/cat.c: Use it.
4563	* src/copy.c: ditto
4564	* src/split.c: ditto
4565
45662009-03-08  Jim Meyering  <meyering@redhat.com>
4567
4568	tests: add a test for newly-fixed bug in comm --check-order
4569	* tests/misc/comm (ooo-prefix): Add a test for today's fix.
4570	* NEWS (Bug fixes): Mention it.
4571
45722009-03-08  Bruno Haible  <bruno@clisp.org>
4573
4574	comm: fix a bug in its new --check-order option
4575	* src/comm.c: Include memcmp2.h.
4576	(check_order): Use memcmp2 instead of memcmp.
4577	* bootstrap.conf (gnulib_modules): Add memcmp2.
4578
45792009-03-08  Jim Meyering  <meyering@redhat.com>
4580
4581	tests: ls -v: exercise the bug fixed by gnulib's new filevercmp
4582	* tests/misc/ls-misc (version-sort): New test.
4583	(mk_file): New function.
4584	Reported by Josh Triplett in <http://bugs.debian.org/517558>.
4585	Details in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16902
4586	* NEWS (Bug fixes): Mention it.
4587
4588	gnulib: sync submodule to latest
4589
45902009-03-07  Jim Meyering  <meyering@redhat.com>
4591
4592	pr: fix a bug whereby --indent=N (-o) did not indent header lines
4593	* src/pr.c (print_header): Honor chars_per_margin also for the header.
4594	Inspired by a patch from C de-Avillez.
4595	This change also adjusts two other %*s directives to be %*.*s instead,
4596	(for the padding on either side of "file_text") to correct a bug that
4597	could make pr print one space of padding instead of none.
4598	* NEWS (Bug fixes): Mention it.
4599	* tests/pr/o3Jml24f-lm-lo: Adjust for new expected output.
4600	* tests/pr/o3a3Sl24f-tn: Likewise.
4601	* tests/pr/o3a3Snl24f-tn: Likewise.
4602	* tests/pr/o3a3l24f-tn: Likewise.
4603	* tests/pr/o3b3Sl24f-tn: Likewise.
4604	* tests/pr/o3b3Snl24f-tn: Likewise.
4605	* tests/pr/o3b3l24f-tn: Likewise.
4606	* tests/pr/o3mSl24f-bl-tn: Likewise.
4607	* tests/pr/o3mSnl24fbltn: Likewise.
4608	* tests/pr/o3ml24f-bl-tn: Likewise.
4609
4610	bootstrap: add to XGETTEXT_OPTIONS
4611	* bootstrap.conf (XGETTEXT_OPTIONS): Add c-format --flag options
4612	for verror and verror_at_line; alphabetize.
4613
4614	maint: use a git submodule for gnulib
4615	* .gitmodules: New file, to track gnulib.
4616	* gnulib: New file, created by running this:
4617	git submodule add git://git.sv.gnu.org/gnulib.git gnulib
4618
4619	build: allow ./bootstrap --srcdir=... to work with a git submodule
4620	* bootstrap (git_modules_config): Use GIT_CONFIG, not GIT_CONFIG_LOCAL.
4621	The latter was removed in v1.5.6.1-109-gdc87183.
4622
4623	build: avoid "multiply defined..." warning from automake
4624	* Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS) via +=, not =, to
4625	avoid "multiply defined..." warning from automake.
4626
46272009-03-06  Jim Meyering  <meyering@redhat.com>
4628
4629	cat: use larger buffer sizes to reduce read/write-syscall overhead
4630	* src/cat.c (max): Remove definition.  Use MAX from system.h instead.
4631	(compute_buffer_size): New function to compute the input and output
4632	buffer sizes, which are now set at 8 times st_blksize with a maximum
4633	of 32KiB. Previously the typical block sizes used were 1KiB for pipes
4634	and 4KiB for files, and now will be 8KiB and 32KiB respectively.
4635	(main): Use it.
4636	This change can double throughput on modern systems.  For timings,
4637	see http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/16040
4638	Suggestion from Tzvi Rotshtein.
4639
4640	maint: avoid new unused-macro warnings from gcc
4641	* src/ls.c (ASSERT_MATCHING_DEV_INO): Comment-out unused definition,
4642	to match commented-out use.
4643	* src/install.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE):
4644	(READ_SIZE): Remove definitions of unused macros.
4645	* src/mv.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Likewise.
4646	* src/dd.c (max): Likewise.
4647	* src/expand.c (OUTPUT_BLOCK): Likewise.
4648	* src/csplit.c (ALLOC_SIZE): Likewise.
4649	* src/pr.c (NULLCOL): Likewise.
4650	* src/ptx.c (Sword): Likewise.
4651	* src/unexpand.c (OUTPUT_BLOCK): Likewise.
4652	* src/factor.c (NDEBUG): Likewise.
4653
4654	tests: fix just-introduced typo in rm/ext3-perf
4655	* tests/rm/ext3-perf: Fix typo in commit 2b1e6636bea,
4656	2009-02-27 "tests: rm/ext3-perf: relax this test".
4657
4658	maint: remove spurious case-ignoring option from a test
4659	* maint.mk (sc_trailing_blank): Remove useless/harmless ignore_case=1.
4660
46612009-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4662
4663	policy: use git to help avoid trailing white space
4664	* HACKING (Avoid trailing white space): Describe how git can help.
4665
46662009-03-04  Andreas Schwab  <schwab@linux-m68k.org>
4667
4668	Update Andreas Schwab's email address
4669	* THANKS: Update Andreas Schwab's email address.
4670
46712009-03-03  Jim Meyering  <meyering@redhat.com>
4672
4673	maint: improve release-related process and documentation
4674	* README-release: Fix typo. it's "maintainer-clean".
4675	Refer to HACKING for full list of dependencies.
4676	Use cvs add's -ko option to inhibit $Id: ChangeLog 32796 2009-08-28 22:30:24Z korli $-style keyword expansion.
4677	* maint.mk (web-manual): Factor out definition of $(manual_title).
4678	(vc-dist): Set XZ_OPT=-9ev for the final "make dist".
4679	* cfg.mk (manual_title): Define it here.
4680	Suggestions from Eric Blake.
4681
46822009-03-02  Jim Meyering  <meyering@redhat.com>
4683
4684	dist: document our release procedure
4685	* README-release: New file.
4686
4687	dist: automate the post-release web-manual update process
4688	* maint.mk (web-manual): New rule, from m4's maint.mk.
4689	* bootstrap.conf (gnulib_modules): Add gendocs.
4690
4691	tests: rm/ext3-perf: relax this test
4692	* tests/rm/ext3-perf: If set-up takes too long, use the set-up time
4693	as the removal time limit.  Otherwise, a parallel "make check" would
4694	usually fail when run with RUN_VERY_EXPENSIVE_TESTS=yes.
4695
4696	tests: don't skip setgid-dir related tests on SELinux-enabled systems
4697	* tests/setgid-check: The change in ls (use ".", not "+") caused
4698	this check always to report the working directory as set-gid.
4699	Now, use stat, not ls.
4700
4701	tests: reflect the s/+/./ SELinux indicator change
4702	* tests/mkdir/perm: Now that this test is no longer always skipped,
4703	make it work independently of ls: use stat, not ls, to get perm string.
4704	* test-lib.sh (rwx_to_mode_): Use stat, not ls to get perm string
4705	This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set.
4706
4707	tests: when skipping a test, say why on screen, not just in the log
4708	* tests/test-lib.sh: Redirect also to descriptor 9.
4709	Better one-line why-skip diagnostics.
4710	* tests/check.mk (TESTS_ENVIRONMENT): Redirect 9 to stderr.
4711	* tests/misc/pwd-unreadable-parent: Remove redundant "skipping..." diag.
4712
4713	maint: enable many gcc warnings
4714	* bootstrap.conf (gnulib_modules): Add manywarnings.
4715	* configure.ac: Use gl_MANYWARN_ALL_GCC, and exclude options
4716	I don't want or that provoke too many warnings.
4717	(WARN_CFLAGS, WERROR_CFLAGS): Define.
4718	(lint, GNULIB_PORTCHECK): Define.
4719	(_FORTIFY_SOURCE): Define to 2.
4720
4721	maint: avoid gcc warning about missing attributes
4722	* src/prog-fprintf.h (prog_fprintf): Declare with printf attribute.
4723	* src/system.h (usage): Declare with the "noreturn" attribute.
4724
4725	maint: avoid warnings about potentially-counterproductive "inline"
4726	* src/dd.c (quit): Remove "inline" attribute.
4727	* src/test.c (advance, unary_advance): Likewise.
4728
4729	maint: cp: avoid gcc warning about unused macro definitions
4730	* src/cp.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Remove.
4731
4732	dist: do not emit MD5 or SHA1 checksums into announcement template
4733	* maint.mk (announcement): Use announce-gen's new --no-print-checksums.
4734
47352009-02-28  Jim Meyering  <meyering@redhat.com>
4736
4737	maint: detect unnecessary inclusion of signal.h
4738	* maint.mk (sc_prohibit_signal_without_use): New rule.
4739
4740	maint: remove an unnecessary inclusion of <signal.h>
4741	* src/operand2sig.c: Don't include <signal.h>.
4742
47432009-02-28  Pádraig Brady  <P@draigBrady.com>
4744
4745	tests: sort: Check skipping blanks in multibyte locales
4746	* tests/misc/sort: On Fedora 8 at least, sort -k1b,1
4747	mishandles blanks in multibyte locales, so add test.
4748
47492009-02-27  Jim Meyering  <meyering@redhat.com>
4750
4751	* HACKING: avoid trailing white space
4752
4753	cp: diagnose invalid "cp -rl dir dir" right away, once again
4754	Running "mkdir dir; cp -rl dir dir" would create dir/dir/dir/...
4755	rather than diagnosing the "copy-into-self" failure.
4756
4757	The easy fix would have been to revert this part of the change
4758	[3ece0355 2008-11-09 cp: use far less memory in some cases]
4759	that introduced the bug:
4760
4761	-         remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev);
4762	+         if (!x->hard_link)
4763	+           remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev);
4764
4765	However, that would have induced the failure of the new cp/link-heap
4766	test, due to the added memory pressure of recording 10k dev/ino pairs.
4767	And besides, I liked that improvement and wanted to keep it.
4768
4769	Now that it's obvious recording the just-created-directory dev/ino
4770	needn't depend on the setting of hard_link, I realized it is necessary
4771	to record the pair only for the first directory created for each
4772	source command-line argument.
4773
4774	I made that change, then noticed the new test, cp -rl a d d, would pass
4775	when run once, yet output the into-self diagnostic twice.  Also note
4776	the side effect: it creates d/a and d/d.  However, running that same
4777	command a second time, now with the modified directory, would fail.
4778
4779	That turned out to be due to the fact that although the first into-self
4780	failure was detected in copy_dir, that function would continue copying
4781	other entries regardless -- and that would make it fail (eventually)
4782	with the unwanted recursion.
4783
4784	* src/copy.c (copy_internal): This function needed an indicator of
4785	whether, for a give command line argument, it had already created its
4786	first directory.  If so, no more need to record dev/ino pairs.  If this
4787	is the first, then do record its pair.  Hence, the new parameter.
4788	(copy_dir, copy): Update callers.
4789	(copy_dir): Upon any into-self failure, break out of the loop.
4790	* tests/cp/into-self: Test for the above.
4791	Reported by Mikael Magnusson.
4792
47932009-02-26  Jim Meyering  <meyering@redhat.com>
4794
4795	tests: stty-row-col would hang when run in the background
4796	* tests/misc/stty-row-col: Don't hang when run in background
4797	at least on Solaris 10 and OpenBSD.
4798
47992009-02-26  Pádraig Brady  <P@draigBrady.com>
4800
4801	sort: Fix two bugs with determining the end of field
4802	* src/sort.c: When no specific number of chars to skip
4803	is specified for the end field, always skip the whole field.
4804	Also never include leading spaces from next field.
4805	* tests/misc/sort: Add 2 new tests for these cases.
4806	* NEWS: Mention this bug fix.
4807	* THANKS: Add bug reporter.
4808	Reported by Davide Canova.
4809
48102009-02-26  Eric Blake  <ebb9@byu.net>
4811
4812	argv-iter: avoid variadic macro
4813	* gl/lib/argv-iter.h (_ATTRIBUTE_NONNULL_): Don't assume C99 variadic
4814	macros are portable yet; needed for at least IRIX/MIPSpro.
4815	* THANKS: Update.
4816	Reported by Stuart Shelton.
4817
48182009-02-26  Pádraig Brady  <P@draigBrady.com>
4819
4820	tests: Remove system specific error strings
4821	* tests/dd/skip-seek-past-file: Just check for
4822	the non system specific part of the error strings.
4823	This was causing an erroneous failure on NetBSD 1.6 at least.
4824
48252009-02-25  Jim Meyering  <meyering@redhat.com>
4826
4827	tests: using printf with \e for ESC isn't portable
4828	* tests/ls/color-clear-to-eol: Use \33, not \e for ascii ESC.
4829	This test failed when using the built-in printf of /bin/sh from
4830	NetBSD 1.6.
4831
48322009-02-24  Pádraig Brady  <P@draigBrady.com>
4833
4834	Ensure comment for translators is included in po file
4835	Issue reported by Göran Uddeborg.
4836
4837	* src/system.h: Move the translator comment adjacent
4838	to the translated string.
4839	* THANKS: Update Göran's email address.
4840
48412009-02-22  Tobias Stoeckmann  <tobias@bugol.de>
4842
4843	truncate: fix typo in man page
4844	* man/truncate.x: Fix spelling.
4845	* THANKS: Update.
4846
48472009-02-22  Andrew Church  <achurch@achurch.org>
4848
4849	doc: describe dd's status=noxref option
4850	* doc/coreutils.texi (dd invocation): Describe status=noxref.
4851
48522009-02-22  Jim Meyering  <meyering@redhat.com>
4853
4854	tests: reenable temporarily-disabled tests using e.g., trap '' TTOU
4855	Revert "tests: skip newly-modified tests unconditionally..."
4856	This reverts commit 773a88d33f68e50a2919c8a8310c646a7e5fabc2.
4857	* tests/misc/stty: Don't skip.
4858	* tests/misc/stty-invalid: Likewise.
4859	* tests/mv/i-3: Likewise.
4860
48612009-02-22  James Youngman  <jay@gnu.org>
4862
4863	update James Youngman's email address
4864	* THANKS: Update James Youngman's email address
4865
48662009-02-21  Jim Meyering  <meyering@redhat.com>
4867
4868	post-release administrivia
4869	* NEWS: Add header line for next release.
4870	* .prev-version: Record previous version.
4871	* cfg.mk (old_NEWS_hash): Auto-update.
4872
4873	version 7.1
4874	* NEWS: Record release date.
4875
4876	* README: Mention that c99-to-c89.diff is no longer maintained.
4877
4878	tests: skip new install-C test if working directory is set-gid
4879	* tests/install/install-C: Use setgid-check.
4880
4881	tests: skip newly-modified tests unconditionally, just to be safe
4882	* tests/misc/stty-invalid: Skip.
4883	* tests/misc/stty: Likewise.
4884	* tests/mv/i-3: Likewise.
4885
4886	tests: don't let SIGTTOU/TTIN hang a backgrounded "make check"
4887	Running "make check &" would hang due to SIGTTOU and SIGTTIN signals.
4888	* tests/misc/stty: Ignore SIGTTOU.
4889	* tests/misc/stty-invalid: Likewise.
4890	* tests/mv/i-3: Ignore SIGTTIN.
4891
48922009-02-20  Jim Meyering  <meyering@redhat.com>
4893
4894	doc: ls: clarify description of -s
4895	* src/ls.c (usage): Make the description of -s mention "allocated size",
4896	so that it's less likely to be confused with an apparent byte-count.
4897	Suggested by Vito Caputo.
4898
48992009-02-19  Jim Meyering  <meyering@redhat.com>
4900
4901	doc: dd: document that the default block size is 512 bytes
4902	* src/dd.c (usage): Document the default block size.
4903	* doc/coreutils.texi (dd invocation): Document that the default
4904	block size (bs, ibs, obs) is 512 bytes.
4905	Reported by Petr Uzel.
4906
49072009-02-18  Jim Meyering  <meyering@redhat.com>
4908
4909	maint: changing NEWS' copyright date must not invalidate checksum
4910	* maint.mk (NEWS_hash): Don't let the Copyright date line contribute
4911	to the checksum.
4912	* cfg.mk (old_NEWS_hash): Update to reflect the new policy.
4913
4914	doc: explain how to recover from changes committed to master
4915	* HACKING: A beginner's commit-to-master is so common,
4916	and causes enough confusion, that we describe how to recover.
4917
4918	maint: add copyright notices
4919	* HACKING: Add copyright notice.
4920	* tests/test-lib.sh: Likewise.
4921
49222009-02-18  Ondřej Vašík  <ovasik@redhat.com>
4923
4924	cp: -a now preserves SELinux context, with reduced diagnostics
4925	* copy.c (copy_reg): Reduce SELinux context diagnostics for 'cp -a'.
4926	(copy_internal): Likewise
4927	* copy.h (cp_options): Add boolean reduce_diagnostics.
4928	* cp.c (usage): Say that --archive (-a) behaves like -dR --preserve=all.
4929	(cp_option_init): Initialize added reduce_diagnostics.
4930	(main): Add reduce_diagnostics for the -a option, and preserve SELinux
4931	context, if possible.
4932	* mv.c (cp_options_init): Initialize new cp_options booleans.
4933	* install.c (cp_option_init): Likewise.
4934	* NEWS: Mention those behaviour changes.
4935	* doc/coreutils.texi: Document --preserve=context, document that
4936	diagnostics are not shown for failures of non-mandatory attributes
4937	(just SELinux at the moment).
4938	* tests/cp/cp-a-selinux: Check not only failures, but succesful use
4939	of preserving SELinux context in cp.
4940
49412009-02-18  Eric Blake  <ebb9@byu.net>
4942
4943	add missing copyright dates
4944	* NEWS: Add 2009 to copyright.
4945	* README: Likewise.
4946	* README-hacking: Likewise.
4947	* TODO: Likewise.
4948	* doc/Makefile.am: Likewise.
4949	* m4/prereq.m4: Likewise.
4950	* src/nl.c: Likewise.
4951	* src/seq.c: Likewise.
4952	* tests/cp/cp-i: Likewise.
4953	* tests/install/install-C: Likewise.
4954	* tests/install/install-C-root: Likewise.
4955	* tests/install/install-C-selinux: Likewise.
4956	* tests/misc/seq: Likewise.
4957	* tests/mv/mv-n: Likewise.
4958
49592009-02-17  Eric Blake  <ebb9@byu.net>
4960
4961	install: compare files in binary mode
4962	* src/install.c (need_copy): Use O_BINARY when it matters.
4963
49642009-02-17  Kamil Dudka  <kdudka@redhat.com>
4965
4966	install: add --compare (-C) option to install file only when necessary
4967	* src/install.c (have_same_content): New function to compare files
4968	content.
4969	(extra_mode): New function checking for non-permission bits in mode.
4970	(need_copy): New function to check if copy is necessary.
4971	(main): Handle new option --compare (-C).
4972	(copy_file): Skip file copying if not necessary.
4973	(usage): Show new option --compare (-C) in --help.
4974	* tests/install/install-C: Basic tests for install --compare (-C).
4975	* tests/install/install-C-root: Tests requiring root privileges.
4976	* tests/install/install-C-selinux: Tests requiring SELinux.
4977	* tests/Makefile.am: Add new tests for install --compare (-C).
4978	* doc/coreutils.texi: Document new install option --compare (-C).
4979	* NEWS: Mention the change.
4980
49812009-02-17  Ondřej Vašík  <ovasik@redhat.com>
4982
4983	nl: correct long-option name for -v in usage
4984	* nl.c (usage): Use --starting-line-number, not --first-page for -v
4985
49862009-02-15  Jim Meyering  <meyering@redhat.com>
4987
4988	doc: id: make --help and .man more descriptive
4989	* src/id.c (usage): Improve description, based on a suggestion
4990	from Brian M. Carlson in http://bugs.debian.org/514675
4991	* man/id.x: Use a better one-liner, based on the one at top of id.c.
4992
49932009-02-15  Pádraig Brady  <P@draigBrady.com>
4994
4995	seq: Fix equal width calculation when '.' added to last number
4996	Issue reported by Samuel Hapák.
4997	<http://lists.gnu.org/archive/html/bug-coreutils/2009-02/msg00139.html>
4998
4999	* src/seq.c: Account for '.' added to "last" number.
5000	* tests/misc/seq: Add corresponding test.
5001	* NEWS: Mention the fix.
5002
50032009-02-13  Jim Meyering  <meyering@redhat.com>
5004
5005	du,chgrp,chmod,chown: use FTS_DEFER_STAT
5006	* src/du.c (main): Use FTS_DEFER_STAT, for better locality of inode
5007	reference.  Important when traversing file systems with fake inodes.
5008	* src/chgrp.c (main): Likewise.
5009	* src/chmod.c (main): Likewise.
5010	* src/chown.c (main): Likewise.
5011	The only remaining fts client, chcon, doesn't need this, since it goes
5012	further and uses FTS_NOSTAT, which suppresses all non- directory
5013	stat calls.
5014
50152009-02-13  Pádraig Brady  <P@draigBrady.com>
5016
5017	maint: mention how to run a single test in HACKING docs
5018	* HACKING: Give an example of how to run a test in isolation.
5019	* README: Fix/simplify example for running a single test.
5020	* README-hacking: Reference the HACKING file.
5021
50222009-02-12  Eric Blake  <ebb9@byu.net>
5023
5024	ln: add details to --help text
5025	* src/ln.c (usage): Mention more about symlink properties.
5026	* doc/coreutils.texi (ln invocation): Likewise.
5027	* THANKS: Update.
5028	Reported by Vitali Lovich.
5029
50302009-02-10  Jim Meyering  <meyering@redhat.com>
5031
5032	ls: clean up after wrapped+colored file names with clear-to-EOL
5033	This change addresses a relatively unusual case: ls --color, with
5034	a highlighted name being printed initially in the last row of a
5035	terminal emulator (possibly followed by other lines of output) such
5036	that it is wrapped onto the following line, as the terminal emulator
5037	scrolls the output.  That would cause the entire following line to
5038	be highlighted, even if the name happened to use only one position.
5039	The least-invasive patch would have made colorized output larger for
5040	all uses.  The approach taken below is more invasive, but limits the
5041	increase in overhead to only those lines that are expected to wrap.
5042	* src/ls.c (enum indicator_no): Add C_CLR_TO_EOL.
5043	(indicator_name): Add "cl".
5044	(color_indicator): Add default escape codes for "cl".
5045	(print_long_format): Propagate width to print_name_with_quoting.
5046	(print_name_with_quoting): Print new C_CLR_TO_EOL string if needed.
5047	Return the width of what we're printing.
5048	(print_file_name_and_frills): Propagate width.
5049	(print_type_indicator): Return bool (aka width).
5050	(print_many_per_line): Pass column position to print_* function.
5051	(print_current_files): Likewise.
5052	(print_horizontal): Likewise.
5053	(print_with_commas): Likewise.
5054	* src/dircolors.c (slack_codes): Add "CLRTOEOL".
5055	(ls_codes): Add "cl".
5056	* tests/ls/color-clear-to-eol: New file.  Test for this fix.
5057	* tests/Makefile.am (TESTS): Add ls/color-clear-to-eol.
5058	* THANKS: Update.
5059	Reported by Alexander V. Lukyanov.  See thread for details:
5060	http://thread.gmane.org/gmane.linux.kernel/740021/focus=14824
5061	Thanks to Jan Engelhardt for helping me reproduce the problem.
5062
5063	Demonstrate with this in an 80-column xterm:
5064	  seq 200 # to start in the "bottom" row
5065	  touch zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.foo
5066	  env LS_COLORS='*.foo=0;31;42' ls -og --color=always
5067
5068	Before the fix, you'd see something like this:
5069	(where the file name is printed in red on a green background,
5070	and each "=" denotes a space on a green background)
5071	...
5072	  -rw-r--r--  1       0 Feb  5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\
5073	  zzzzzzzzzzzzzz.foo===================================================
5074
5075	After the patch, the trailing green spaces are gone:
5076
5077	  -rw-r--r--  1       0 Feb  5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\
5078	  zzzzzzzzzzzzzz.foo
5079
5080	* tests/test-lib.sh: Use skip_test_... in place of echo...;exit 77.
5081
50822009-02-10  Nix  <nix@esperi.org.uk>
5083
5084	tests: avoid skipping stty-* tests
5085	* tests/test-lib.sh (require_controlling_input_terminal_):
5086	Check stdout, not stdin.
5087
50882009-02-09  Jim Meyering  <meyering@redhat.com>
5089
5090	touch: deprecate --file option: equivalent to --reference (-r)
5091	* src/touch.c: Mark long-undocumented --file for removal in 2010.
5092	(main): Warn upon use of --file.
5093
50942009-02-06  Pádraig Brady  <P@draigBrady.com>
5095
5096	tests: fix dd skip=greater_max_file_size test on Solaris 10
5097	* tests/dd/skip-seek-past-file: I had previously commented that
5098	on some systems lseek(> max file size) may succeed, but left
5099	the possibility of failure in that case, so that I could determine
5100	specific systems to put in the comments for both failure modes.
5101
51022009-02-05  Jim Meyering  <meyering@redhat.com>
5103
5104	avoid spurious parentheses/arith-op-related warnings from newer gcc
5105	* src/copy.c (set_owner): Use && rather than &.
5106	* src/stty.c (main): Likewise.
5107	* src/wc.c (wc): Likewise.
5108
51092009-02-02  Jim Meyering  <meyering@redhat.com>
5110
5111	maint: tighten atoi/atof-prohibiting regexp, clean up .x-sc- file
5112	* maint.mk (sc_prohibit_atoi_atof): Require "(" after token.
5113	* .x-sc_prohibit_atoi_atof: Remove names that no longer contain a match.
5114
5115	doc: preserve --help line breaks in 'REPORTING BUGS' man page section
5116	* man/help2man: Insert .br between adjacent lines.
5117
5118	* src/system.h (emit_bug_reporting_address): Remove periods.
5119
5120	update copyright dates from recent changes
5121	* src/dd.c: Add 2009 to list of copyright years.
5122	* tests/dd/seek-skip-past-file: Likewise.
5123	* tests/dd/seek-skip-past-dev: Likewise.
5124	* m4/xattr.m4: Likewise.
5125	* src/copy.h: Likewise.
5126
5127	* maint.mk (sc_redundant_const): Use $(_prohibit_regexp).
5128
51292009-02-02  jidanni@jidanni.org  <jidanni@jidanni.org>
5130
5131	date doc: warn at -d about LC_TIME
5132	We also warn here about LC_TIME, so the user will know even if he
5133	doesn't look in the @xref{Date input formats}.
5134
5135	document sort --ignore-case --unique interaction
5136
51372009-01-31  Jim Meyering  <meyering@redhat.com>
5138
5139	maint: detect useless inclusion of c-ctype.h
5140	* maint.mk (sc_prohibit_c_ctype_without_use): New rule.
5141
51422009-01-29  Jim Meyering  <meyering@redhat.com>
5143
5144	maint: teach "make syntax-check" to print each check name as it's run
5145	* maint.mk (%.m): New rules to print each syntax-checking rule name,
5146	just before running its commands.
5147	($(syntax-check-rules)): Depend on it.
5148
5149	maint: silence some syntax-check rules
5150	* cfg.mk (sc_strftime_check): Silence the rule.
5151	(sc_tight_scope): Likewise.
5152	* src/Makefile.am (check-AUTHORS): Likewise.
5153
5154	maint: factor syntax-check rules
5155	* maint.mk (_ignore_case): New macro.
5156	(_prohibit_regexp): Use it.
5157	Factor many existing syntax-check rules to use $(_prohibit_regexp).
5158
51592009-01-29  Kamil Dudka  <kdudka@redhat.com>
5160
5161	cp/mv: add xattr support
5162	This patch was originally written by Andreas Grünbacher, nowadays
5163	available at
5164	http://www.suse.de/~agruen/coreutils/5.91/coreutils-xattr.diff
5165
5166	* bootstrap.conf: Add gnulib module verror.
5167	* po/POTFILES.in: Add lib/verror.c.
5168	* m4/xattr.m4: Check for libattr availability, new configure option
5169	--disable-xattr.
5170	* m4/prereq.m4: Require gl_FUNC_XATTR.
5171	* src/Makefile.am: Link cp, mv and ginstall with libattr.
5172	* src/copy.h: Add preserve_xattr and require_preserve_xattr to
5173	cp_options.
5174	* src/copy.c (copy_attr_error): New function to handle errors during
5175	xattr copying.
5176	(copy_attr_quote): New function to quote file name in error messages
5177	printed by libattr.
5178	(copy_attr_free): Empty function requested by libattr to free quoted
5179	string.
5180	(copy_attr_by_fd): New fd-oriented function to copy xattr.
5181	(copy_attr_by_name): New name-oriented function to copy xattr.
5182	(copy_reg, copy_internal): Call copy_extended_attributes function.
5183	* src/cp.c (usage): Mention new --preserve=xattr option.
5184	(decode_preserve_arg): Handle new --preserve=xattr option.
5185	* src/mv.c: Always attempt to preserve xattr.
5186	* src/install.c: Never attempt to preserve xattr.
5187	* tests/misc/xattr: New test for xattr support in cp, mv and install.
5188	* tests/Makefile.am: Add the new test to list.
5189	* doc/coreutils.texi: Mention xattr support, new --preserve=xattr
5190	option.
5191	* NEWS: Mention the change.
5192
51932009-01-28  Jim Meyering  <meyering@redhat.com>
5194
5195	system.h: add a comment re autoconf's new AC_PACKAGE_URL
5196	* src/system.h (emit_bug_reporting_address): Add a comment
5197	suggesting to use AC_PACKAGE_URL once we require autoconf-2.64.
5198
51992009-01-28  Pádraig Brady  <P@draigBrady.com>
5200
5201	tests: Fixup shred-passes test
5202	* tests/misc/shred-passes: Set the $fail variable correctly.
5203	The issue was noticed by Jim Meyering.
5204
5205	tests: Add a test to verify shred's default operations
5206	* tests/Makefile.am: add new test
5207	* tests/misc/shred-passes: Verify the operations shred
5208	does by default to overwrite and remove a zero length file.
5209
5210	dd: Better handle user specified offsets that are too big
5211	Following are the before and after operations for seekable files,
5212	for the various erroneous offsets handled by this patch:
5213
5214	skip beyond end of file
5215	  before: immediately exit(0);
5216	  after : immediately printf("cannot skip to specified offset"); exit(0);
5217
5218	skip > max file size
5219	  before: read whole file and exit(0);
5220	  after : immediately printf("cannot skip: Invalid argument"); exit(1);
5221	seek > max file size
5222	  before: immediately printf("truncate error: EFBIG"); exit(1);
5223	  after : immediately printf("truncate error: EFBIG"); exit(1);
5224
5225	skip > OFF_T_MAX
5226	  before: read whole device/file and exit(0);
5227	  after : immediately printf("cannot skip:"); exit(1);
5228	seek > OFF_T_MAX
5229	  before: immediately printf("truncate error: offset too large"); exit(1);
5230	  after : immediately printf("truncate error: offset too large"); exit(1);
5231
5232	skip > device size
5233	  before: read whole device and exit(0);
5234	  after : immediately printf("cannot skip: Invalid argument"); exit(1);
5235	seek > device size
5236	  before: read whole device and printf("write error: ENOSPC"); exit(1);
5237	  after : immediately printf("cannot seek: Invalid argument"); exit(1);
5238
5239	* NEWS: Summarize this change in behavior.
5240	* src/dd.c (skip): Add error checking for large seek/skip offsets on
5241	seekable files, rather than deferring to using read() to advance offset.
5242	(dd_copy): Print a warning if skip past EOF, as per FIXME comment.
5243	* test/Makefile.am: Add 2 new tests.
5244	* tests/dd/seek-skip-past-file: Add tests for first 3 cases above.
5245	* tests/dd/seek-skip-past-dev: Add root only test for last case above.
5246
52472009-01-27  Jim Meyering  <meyering@redhat.com>
5248
5249	doc: emit better bug-reporting info, to help help2man
5250	* src/system.h (emit_bug_reporting_address): End each "sentence"
5251	with period, mark URLs with <...>.
5252	Based on a suggestion from Eric Blake.
5253	Use fputs on a string without %s, not printf.
5254
5255	doc: ensure that emit_bug_reporting_address changes propagate to *.1
5256	* man/Makefile.am ($(MAN)): Depend on system.h.
5257
5258	doc: restore "REPORTING BUGS" section to generated man pages
5259	* man/help2man ($PAT_BUGS): Update regexp to match the newer
5260	"Report PROG bugs ..." --help output, as well as "Report bugs...".
5261	Reported by Eric Blake.
5262
52632009-01-26  Jim Meyering  <meyering@redhat.com>
5264
5265	tests: generalize install-transform-check
5266	* maint.mk (install-transform-check): Generalize to work also
5267	in a project that installs manuals in a section other than "1".
5268
52692009-01-23  Jim Meyering  <meyering@redhat.com>
5270
5271	build: resolve conflict with new declaration from version-etc.h
5272	* src/system.h (emit_bug_reporting_address): Define away,
5273	now, gnulib's version-etc.h also declares this function.
5274	In this package, we choose to include each program's name in
5275	the diagnostic.  Define away the conflicting declaration.
5276	(emit_bug_reporting_address): Also emit home page and
5277	"General help..." links, like the new function does.
5278	Reported by Bob Proulx.
5279
52802009-01-23  Pádraig Brady  <P@draigBrady.com>
5281
5282	doc: shred: Correct docs on default number of overwrites.
5283	* NEWS: Mention the change to the default number of passes.
5284	* doc/Makefile.am: Update constants.texi with the default
5285	number of passes shred uses, so that the documentation
5286	will automatically reflect any future changes.
5287	* doc/coreutils.texi (shred invocation): Update the description
5288	of the --iterations option to have the correct default number,
5289	while still conveying that there are 25 internal patterns
5290	that may be useful.
5291
52922009-01-22  Pádraig Brady  <P@draigBrady.com>
5293
5294	shred: change default number of overwrites from 25 to 3
5295	* src/shred.c: The concensus is that a default of 3
5296	passes is appropriate for current drive technologies.
5297	* src/TODO: Reference Paul Eggert's suggestion
5298	of enhancing shred to conform to DoD 5220 rules.
5299
53002009-01-21  Jim Meyering  <meyering@redhat.com>
5301
5302	m4: don't use AC_REQUIRE([AC_C_BIGENDIAN])
5303	* m4/jm-macros.m4: Use AC_REQUIRE([gl_BIGENDIAN]) instead.
5304	This avoids a subtle problem recently documented in autoconf:
5305	http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=34e2c8d5484
5306
53072009-01-19  Jim Meyering  <meyering@redhat.com>
5308
5309	no longer define *_FILENO constants
5310	* src/system.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
5311	Remove definitions.  Now guaranteed by gnulib.
5312
5313	build: use dist-xz, not dist-lzma, cont'd
5314	* README-hacking: mention XZ utils
5315	* README-prereq: Add a FIXME comment.
5316
5317	tests: tail-2/infloop-1 is racy
5318	* tests/tail-2/infloop-1: Add a comment to that effect.
5319
53202009-01-18  Jim Meyering  <meyering@redhat.com>
5321
5322	build: use dist-xz, not dist-lzma
5323	* configure.ac (AM_INIT_AUTOMAKE): s/dist-lzma/dist-xz/.
5324	Requires recent "xz" from git://ctrl.tukaani.org/lzma-utils.git
5325
53262009-01-16  Jim Meyering  <meyering@redhat.com>
5327
5328	maint: remove obsolete sc_author_mark_check rule
5329	* maint.mk (sc_author_mark_check): Remove rule.
5330	"and" no longer appears in the definition of AUTHORS.
5331
5332	Merge branch 'master' of git://git.sv.gnu.org/coreutils
5333
5334	maint: enforce existing prohibition: no cvs $keywords$
5335	* maint.mk (sc_prohibit_cvs_keyword): New rule.
5336
5337	echo, printf, test: remove unused #include directives
5338	* src/echo.c: Don't include "long-options.h". No longer used.
5339	* src/printf.c: Likewise.
5340	* src/test.c: Likewise.
5341
53422009-01-16  Pádraig Brady  <P@draigBrady.com>
5343
5344	pathchk: avoid -Wsign-compare warnings
5345	* src/pathchk.c: Compare pathconf limits to _signed_ MAX constants,
5346	as pathconf returns signed values.
5347
5348	pr: avoid -Wsign-compare warnings
5349	* src/pr.c: Use unsigned variables in unsigned comparisons.
5350
5351	shred: avoid -Wsign-compare warnings
5352	* src/shred.c: Use already assigned signed variable sizeof_r,
5353	rather than the unsigned sizeof(r). Don't use signed integer
5354	overflow check that contemporary compilers may remove anyway.
5355
5356	simplify mgetgroups() and avoid -Wsign-compare warnings
5357	* gl/lib/mgetgroups.c: Avoid -Wsign-compare warning by using unsigned
5358	types for the parameters of the new function realloc_groupbuf().
5359	mgetgroups() was refactored to use this function rather than
5360	explicitly allocating and copying from automatic storage itself.
5361	* src/group-list.c: Use int rather than size_t as variable is
5362	used in signed comparisons.
5363	* src/id.c: ditto.
5364
53652009-01-14  Eric Blake  <ebb9@byu.net>
5366
5367	test, echo, printf: don't accept option abbreviation
5368	* src/test.c (main): Directly parse accepted options, thus
5369	avoiding abbreviations.
5370	* src/echo.c (main): Likewise.
5371	* src/printf.c (main): Likewise.
5372
53732009-01-14  Kamil Dudka  <kdudka@redhat.com>
5374
5375	cp/mv: add --no-clobber (-n) option to not overwrite target
5376	* src/cp.c (usage): Show new option -n in --help.
5377	(main): Handle new option -n.
5378	* src/mv.c (usage): Show new option -n in --help.
5379	(main): Handle new option -n.
5380	* doc/coreutils.texi: Document new cp/mv option -n.
5381	* tests/cp/cp-i: Add tests for -f, -i and -n options.
5382	* tests/mv/mv-n: New test for mv -n.
5383	* tests/Makefile.am: Add test mv/mv-n to the list.
5384	* NEWS: Mention the change.
5385
53862009-01-08  Eric Blake  <ebb9@byu.net>
5387
5388	option handling: make exceptions more consistent
5389	* doc/coreutils.texi (Common options): Not all utilities reject
5390	option abbreviations.
5391	* src/chroot.c (main): Report correct name on failure.
5392	* src/echo.c (usage): Clarify long option usage.
5393	* src/setuidgid.c (usage): Likewise.
5394	* src/hostid.c (usage): Condense.
5395
53962009-01-07  Jim Meyering  <meyering@redhat.com>
5397
5398	* bootstrap.conf (avoided_gnulib_modules): Add dummy.
5399
5400	* maint.mk: align some backslashes
5401
54022009-01-05  Pádraig Brady  <P@draigBrady.com>
5403
5404	doc: pathchk description enhancements
5405	* doc/coreutils.texi (pathchk invocation): Mention pathchk
5406	checks validity (for current system) as well as portability.
5407	Say messages go to stderr, and reorder description of checks
5408	done for the -p option, to match what's done in code.
5409	* src/pathchk.c (usage): Mention pathchk checks name validity.
5410	Suggested clarifications were from Dan Jacobson.
5411
54122009-01-03  Pádraig Brady  <P@draigBrady.com>
5413
5414	src/.gitignore: Ignore getlimits utility
5415	* src/.gitignore: Ignore getlimits
5416
5417	tests: refactor to use the new getlimits utility
5418	* tests/Coreutils.pm: Add function to make limits available
5419	* tests/test-lib.sh: ditto
5420	* tests/misc/join: Check for both SIZE_OFLOW and UINTMAX_OFLOW
5421	rather than using arbitrary 2^128
5422	* tests/misc/sort: ditto
5423	* tests/misc/uniq: ditto
5424	* tests/misc/printf: Check for both INT_OFLOW and INT_UFLOW
5425	rather than using arbitrary -2^31
5426	* tests/misc/seq-long-double: Check for INTMAX_OFLOW
5427	rather than using arbitrary 2^63
5428	* tests/misc/split-fail: Check --lines --bytes and --line-bytes
5429	options limits on all platforms. Note getlimits obviates the
5430	need to use expr to check if 32 bit integers are supported,
5431	which I think was invalid anyway as expr now supports bignum?
5432	* tests/misc/test: Check for UINTMAX_OFLOW rather than
5433	using arbitrary 2^64 and 2^128. Check for INTMAX_UFLOW
5434	rather than using arbitrary -2^64
5435	* tests/misc/timeout-parameters: Check for UINT_OFLOW
5436	rather than using arbitrary 2^32
5437	* tests/misc/truncate-overflow: Don't depend on truncate
5438	to determine if we're on a 32 or 64 bit platform and
5439	instead use the various OFF_T limits
5440	* tests/misc/sort-merge: Check for UINTMAX_OFLOW
5441	rather than using arbitrary 2^64+1
5442	* tests/misc/unexpand: ditto
5443
54442009-01-03  Michael Meskes  <michael@fam-meskes.de>
5445
5446	stat: print file-system total inode count (%c) as an unsigned number
5447	* src/stat.c (print_statfs): Print statfs.f_files, the total inode
5448	count of a file system, as an unsigned number.
5449
54502009-01-01  Jim Meyering  <meyering@redhat.com>
5451
5452	tests: factor ls-misc (no semantic change)
5453	* tests/misc/ls-misc: Factor out uses of "\e[0m".
5454
5455	update copyright year
5456	* doc/coreutils.texi: Likewise.
5457	* tests/sample-test: Likewise.
5458
54592009-01-01  Jim Meyering  <meyering@iou.iou>
5460
5461	improve M4 quoting
5462	* configure.ac: Add quotes.
5463	* gl/m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise.
5464	* m4/boottime.m4 (GNULIB_BOOT_TIME): Likewise.
5465	* m4/check-decl.m4 (gl_CHECK_DECLS): Likewise.
5466	* m4/gmp.m4 (cu_GMP): Likewise.
5467	* m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS): Likewise.
5468	(gl_CHECK_ALL_TYPES): Likewise.
5469	* m4/lib-check.m4 (cu_LIB_CHECK): Likewise.
5470	* m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Likewise.
5471
5472	FYI, I first ran this command:
5473	git ls-files | grep -E '\.(m4|ac)$' | xargs perl -pi \
5474	-e 's/(AC_[A-Z_]+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \
5475	-e 's/(AC_[A-Z_]+\(\[[^,]+?\], )([^,[()]+?)([,)])/$1\[$2]$3/g;' \
5476	-e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g'
5477	Then I updated serial numbers and copyright dates manually.
5478	Also, I manually added two pairs of quotes in boottime.m4.
5479
54802009-01-01  Jim Meyering  <meyering@redhat.com>
5481
5482	bootstrap: don't use cmp's -s option when reading from a pipe
5483	GNU cmp exits without reading all input when given the -s option,
5484	and that can cause termination of the writing process via SIGPIPE.
5485	Instead, when reading from a pipe, just redirect output to /dev/null
5486	so that all input is read.
5487
5488	maint: factor out common code; prohibit use of HAVE_MBRTOWC
5489	* maint.mk (_prohibit_regexp): New macro.
5490	(sc_avoid_if_before_free, sc_cast_of_argument_to_free):
5491	(sc_cast_of_x_alloc_return_value, sc_cast_of_alloca_return_value):
5492	(sc_space_tab, sc_prohibit_atoi_atof, sc_prohibit_strcmp):
5493	(sc_prohibit_stat_st_blocks, sc_prohibit_S_IS_definition): Use it.
5494	(sc_prohibit_HAVE_MBRTOWC): New rule.
5495
5496	maint: use more sc_-prefixed names
5497	* maint.mk (sc_po_check): Renamed from po-check.
5498	(sc_author_mark_check): Renamed from author_mark_check.
5499	(sc_copyright_check): Renamed from copyright-check.
5500	(sc_makefile_path_separator_check): Renamed from
5501	makefile_path_separator_check.
5502	(local-checks-available): Remove the old names.
5503	* Makefile.am (EXTRA_DIST): Reflect the renaming: .x-sc_po_check
5504	* .x-po-check: Rename to...
5505	* .x-sc_po_check: ...new file.
5506
5507	maint: tighten m4 AC_ quoting check
5508	* maint.mk (sc_m4_quote_check): Renamed from m4-check.
5509	Also search for AC_DEFINE and AC_DEFINE_UNQUOTED.
5510	Also search in configure.ac.
5511	* configure.ac: Quote first argument of AC_DEFINE.
5512	* jm-macros.m4 (coreutils_MACROS): Quote the first argument to AC_DEFINE.
5513
5514	maint: move coreutils-specific syntax check rules into cfg.mk
5515	* maint.mk (sc_dd_max_sym_length, sc_prohibit_jm_in_m4):
5516	(sc_root_tests, sc_always_defined_macros, sc_system_h_headers):
5517	(sc_sun_os_names, sc_tight_scope, sc_no_exec_perl_coreutils):
5518	Move rules into cfg.mk.
5519	(sc_strftime_check): Renamed from strftime-check, and moved, too.
5520	* cfg.mk: Add the above rules.
5521
5522	portability: accommodate gnulib's getaddrinfo change
5523	* src/Makefile.am (pinky_LDADD, who_LDADD): Append $(GETADDRINFO_LIB)
5524
5525	cleanup/modernize: don't test HAVE_MBRTOWC; now gnulib provides it
5526	* bootstrap.conf (gnulib_modules): Include mbrtowc explicitly.
5527	* src/ls.c (quote_name): Don't test HAVE_MBRTOWC, now that we're
5528	guaranteed to have the function.
5529	* src/wc.c (wc): Likewise.
5530
55312008-12-27  Eric Blake  <ebb9@byu.net>
5532
5533	doc: mention long option abbreviation
5534	* doc/coreutils.texi (Common options): Give example of
5535	abbreviating options.
5536	* THANKS: Update.
5537	Reported by Adam Jimerson.
5538
55392008-12-26  Jim Meyering  <meyering@redhat.com>
5540
5541	maint: ensure dd's computation of O_FULLBLOCK uses all O_ symbol names
5542	* src/dd.c (O_FULLBLOCK): Use a more uniform initializer, that makes
5543	it easier to extract all O_ symbol names.
5544	* maint.mk (syntax-check-rules): Also search for sc_ rules in cfg.mk.
5545	(sc_root_tests): Ensure that this rule sets $diff.
5546	* cfg.mk (sc_dd_O_FLAGS): New rule.
5547
55482008-12-26  Matt Harden  <matth@mindspring.com>
5549
5550	dd: add support for opening files in Concurrent I/O (CIO) mode
5551	* src/dd.c (O_CIO): New flag.
5552	* src/dd.c (O_FULLBLOCK): Add O_CIO to the list of flags that
5553	O_FULLBLOCK should be greater than.
5554	* src/dd.c (flags): Give the name "cio" to the new O_CIO flag, mirroring
5555	the treatment of O_DIRECT.
5556	* src/dd.c (usage): Add a description of the new flag when it is available.
5557	* doc/coreutils.text (dd invocation): Describe the new flag.
5558	* NEWS: Mention the new feature.
5559
55602008-12-23  Jim Meyering  <meyering@redhat.com>
5561
5562	build: do enable $(WERROR_CFLAGS) for src/ files.
5563	This reverts the more recent commit (of two) entitled "build:
5564	add configure-time --enable-gcc-warnings option; avoid warnings".
5565	Pádraig Brady spotted the contradiction between the log message
5566	and actual change.
5567
5568	This reverts commit 292d68565a34b237cd2bf586ace545b7cd3dbfcf.
5569
55702008-12-23  Pádraig Brady  <P@draigBrady.com>
5571
5572	doc: stty: Clarification of some input and output settings
5573	* doc/coreutils.texi (stty invocation): Clarify any
5574	ambiguity in regard to the direction of input and output settings.
5575	Add some notes on the case changing settings.
5576	Most of the text was supplied by Dan Jacobson.
5577
5578	timeout: remove problematic casts
5579	* src/timeout.c (apply_time_suffix): Change input parameter from
5580	unsigned int to unsigned long, which is the type of the variable it's
5581	actually manipulating.  This removes the need for the cast which was
5582	giving a warning with the gcc options: -fstrict-aliasing
5583	-Wstrict-aliasing.  Also add a check for overflow possible on 16-bit
5584	platforms, and fix indents.
5585	(main): Remove a redundant cast in the alarm() call.
5586
55872008-12-21  Jim Meyering  <meyering@redhat.com>
5588
5589	* .x-sc_require_config_h: Remove obsolete regexps.
5590
5591	maint.mk: enforce the "include <config.h> first" rule
5592	* maint.mk (sc_require_config_h_first): New rule.
5593	* .x-sc_require_config_h_first: New file.
5594
5595	build: add configure-time --enable-gcc-warnings option; avoid warnings
5596	* bootstrap.conf (gnulib_modules): Add "warnings" module.
5597	* configure.ac: Add --enable-gcc-warnings, derived from code in bison.
5598	* src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS)
5599	* lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS)
5600	Don't use $(WERROR_CFLAGS), yet.
5601	* src/system.h (usage): Declare.
5602	* src/base64.c (usage): Declare to be global, for consistency.
5603	* src/timeout.c (usage): Likewise.
5604	* src/truncate.c (usage): Likewise.
5605	* src/getlimits.c (usage): Likewise.
5606	* src/pinky.c (ttyname): Declare with prototype, rather than an
5607	empty argument list.
5608	* src/who.c (ttyname): Likewise.
5609	* src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.
5610
5611	build: turn on $(WERROR_CFLAGS) for src/
5612
5613	build: add configure-time --enable-gcc-warnings option; avoid warnings
5614	* bootstrap.conf (gnulib_modules): Add "warnings" module.
5615	* configure.ac: Add --enable-gcc-warnings, derived from code in bison.
5616	* src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS)
5617	* lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS)
5618	Don't use $(WERROR_CFLAGS), yet.
5619	* src/system.h (usage): Declare.
5620	* src/base64.c (usage): Declare to be global, for consistency.
5621	* src/timeout.c (usage): Likewise.
5622	* src/truncate.c (usage): Likewise.
5623	* src/getlimits.c (usage): Likewise.
5624	* src/pinky.c (ttyname): Declare with prototype, rather than an
5625	empty argument list.
5626	* src/who.c (ttyname): Likewise.
5627	* src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.
5628
56292008-12-17  Pádraig Brady  <P@draigBrady.com>
5630
5631	doc: Remove curly quotes from shell examples in man pages
5632	Use \(aq rather than a literal ' as groff will convert apostrophe
5633	to a right quote (\u2029) in utf8 locales for example.
5634	Stepan Kasal details the issue and fix here:
5635	http://lists.gnu.org/archive/html/bug-coreutils/2008-12/msg00124.html
5636
56372008-12-16  Jim Meyering  <meyering@redhat.com>
5638
5639	ChangeLog-2008: say ChangeLog files are no longer manually maintained
5640	and point to HACKING's policy.  Suggestion from Dan Jacobson.
5641
5642	du: -H now does what POSIX requires
5643	* src/du.c (usage): Update --help output.
5644	(main): Move -H-handling code from the --si block to
5645	the one for --dereference-args (-D).
5646	* doc/coreutils.texi (du invocation): Update description.
5647	* NEWS (Changes in behavior): Mention this.
5648
56492008-12-13  Jim Meyering  <meyering@redhat.com>
5650
5651	doc: pr: formatting corrections
5652	* doc/coreutils.texi (pr invocation): Fix some overzealous uses of @var.
5653	Reported by Andreas Schwab.
5654
56552008-12-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5656
5657	more portable bootstrap procedure
5658	* bootstrap (get_version): Fix portability issues in sed script.
5659	(check_versions): For buildreq apps, honor the corresponding
5660	$APP variable like $AMTAR, $AUTOCONF.
5661	(usage): Document this.
5662	(update_po_files): Honor $SHA1SUM.
5663	(main): Honor $AUTOPOINT, $ACLOCAL, $AUTOCONF, $AUTOHEADER,
5664	$AUTOMAKE, $LIBTOOLIZE.
5665
56662008-12-03  Jim Meyering  <meyering@redhat.com>
5667
5668	tests: ensure that chmod, chgrp and chown honor --silent
5669	* tests/chmod/silent: New file, to test all three programs.
5670	* tests/Makefile.am (TESTS): Add chmod/silent.
5671	* NEWS (Bug fixes): Mention this.
5672	The bug was introduced in 96a5d2ce6a53d96cb667af78f13e56fadcdb91e6.
5673
56742008-12-03  Ondřej Vašík  <ovasik@redhat.com>
5675
5676	chmod, chown, chgrp: honor --silent (-f) once again
5677	* chmod.c (process_file): Make -f suppress fts-related diagnostics.
5678	* chown-core.c (change_file_owner): Likewise.
5679	Reported via <http://bugzilla.redhat.com/474220>.
5680
56812008-12-02  Jim Meyering  <meyering@redhat.com>
5682
5683	wc: read and process --files0-from= input a name at a time,
5684	when the file name list is not too large.  Before, wc would always read
5685	the entire file name list into memory and *then* process each file name.
5686	wc does read the list into memory when the list is known not to be too
5687	large; this is done in order to be able to align the output numbers,
5688	as it does with arguments specified on the command-line
5689	* src/wc.c: Include "argv-iter.h".
5690	(main): Rewrite to use argv-iter when the input file name list
5691	is known to be too large.
5692	* NEWS (Bug fixes): Mention it.
5693
5694	du: read and process --files0-from= input a name at a time,
5695	rather than by reading the entire input into memory and *then*
5696	processing each file name.
5697	* src/du.c: Include "argv-iter.h", not "readtokens0.h".
5698	(main): Rewrite to use argv-iter.
5699	Call xfts_open on each argument, rather than on the entire
5700	argv list at once.
5701	Call print_size here, not from du_files.
5702	Diagnose read failure.
5703	* NEWS (Bug fixes): Mention it.
5704	* THANKS: update.
5705	Reported by Barry Kelly.  More details in
5706	http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/15159/
5707
57082008-12-01  Jim Meyering  <meyering@redhat.com>
5709
5710	seq: plug a leak
5711	* src/factor.c (emit_ul_factor): Call mpz_clear.
5712
5713	avoid warnings about initialization of automatic aggregates
5714	* src/system.h (DZA_CONCAT0, DZA_CONCAT): New macros.
5715	(DECLARE_ZEROED_AGGREGATE): New macro.
5716	* src/ls.c (quote_name): Use it.
5717	* src/pathchk.c (portable_chars_only): Use it.
5718	* src/shred.c (main): Use it.
5719	* src/stty.c (main): Use it.
5720	* src/wc.c (SUPPORT_OLD_MBRTOWC): Use it.
5721
5722	* bootstrap.conf (gnulib_modules): Add argv-iter.
5723
5724	argv-iter: add tests
5725	* gl/modules/argv-iter-tests: New module.
5726	* gl/tests/test-argv-iter.c: New file.
5727
5728	argv-iter: new module
5729	* gl/lib/argv-iter.h: New file.
5730	* gl/lib/argv-iter.c: New file.
5731	* gl/modules/argv-iter: New file.
5732	With a suggestion for improved memory management by Pádraig Brady.
5733
5734	* src/hostname.c (sethostname) [!HAVE_SETHOSTNAME]: Remove declaration.
5735
5736	cp, mv: remove 3-year-deprecated+warned-about --reply option
5737	* src/cp.c (reply_args, reply_vals): Remove globals.
5738	[REPLY_OPTION]: Remove enum.
5739	(long_opts) ["reply"]: Remove initializer.
5740	(main): Remove case stmt.
5741	* src/mv.c: Likewise.
5742	Don't include "argmatch.h".  No longer used.
5743	* NEWS (Changes in behavior): Mention this.
5744	* tests/Makefile.am (TESTS): Remove mv/reply-no.
5745	* tests/mv/reply-no: Remove file.
5746	* tests/mv/i-link-no: Update, now that --reply= is gone.
5747
57482008-12-01  Pádraig Brady  <P@draigBrady.com>
5749
5750	doc: Make descriptions of ASCII NUL and --zero-terminated option consistent
5751	doc/coretuils.texi: Refactor shuf, sort and uniq --zero-terminated
5752	option to use the same text. Also refer to NUL characters as
5753	@acronym{ASCII} @sc{nul} consistently.
5754
57552008-12-01  Jim Meyering  <meyering@redhat.com>
5756
5757	doc: enforce @var{lower} policy
5758	* doc/coreutils.texi: Fix remaining violations.
5759	* doc/Makefile.am (sc-lower-case-var): New rule.
5760	Add some command-suppressing "@" directives so that a successful
5761	"make check" run is less noisy.
5762
57632008-12-01  Pádraig Brady  <P@draigBrady.com>
5764
5765	doc: Tweak info docs to standarise on lower-case @var{file}
5766	* doc/coreutils.texi: s/@var{FILE}/@var{file}/
5767
5768	doc: Improve description of --files0-from option
5769	* doc/coreutils.texi: Describe the most common
5770	usage of --files0-from=- to read names from stdin.
5771	* src/du.c: Likewise.
5772	* src/sort.c: Likewise.
5773	* src/wc.c: Likewise.
5774
5775	tests: dd/reblock: Reduce chance of timing related failures
5776	* tests/dd/reblock: Change the IPC mechanism to the dd process
5777	under test, from pipes to fifos. Also change the delay
5778	between data writes to 0.2s for both tests.
5779	This should increase the chance that the dd process
5780	will read the data chunks separately.
5781
57822008-11-30  Jim Meyering  <meyering@redhat.com>
5783
5784	m4: avoid a warning from gcc's -Wstrict-prototypes
5785	* m4/jm-macros.m4 (ARGMATCH_DIE_DECL): Use proper prototype for usage.
5786
5787	tests: df: skip total-verify if df fails
5788	* tests/df/total-verify: Skip the test if df fails.
5789
5790	build: don't reject definition of STREQ
5791	* maint.mk (sc_prohibit_strcmp): Tighten rule: exclude
5792	macro definitions like the one in system.h.
5793	* .x-sc_prohibit_strcmp: Don't exempt src/system.h.
5794
5795	tests: start long-running cp/link-heap earlier
5796	* tests/Makefile.am (TESTS): Move cp/link-heap nearer the start of the
5797	list, so that its termination doesn't delay a parallel "make check".
5798
5799	tests: avoid failure of cp/link-heap on some systems
5800	* tests/cp/link-heap: Raise virtual memory limit from 10,000
5801	to 14,000, to avoid failure on Debian/unstable (libc6 2.7-16).
5802
5803	remove explicit declaration of putenv, ...
5804	* src/date.c: ... now that gnulib guarantees that it's in <stdlib.h>.
5805	* src/env.c: Likewise.
5806
5807	tests: dd/reblock: avoid occasional failure
5808	* tests/dd/reblock: Sleep longer to avoid a race condition.
5809	Reported by Bob Proulx.
5810
58112008-11-27  James Youngman  <jay@gnu.org>
5812
5813	pwd: add pwd -P, -L to TODO
5814	* TODO: Add to-do entry for -P and -L options of pwd.
5815
58162008-11-26  Ondřej Vašík  <ovasik@redhat.com>
5817
5818	doc: fix typo in units factorization, removed TODO items
5819	* doc/coreutils: switch typo (switched gibibytes/gigabytes)
5820	* TODO:          removed missing chcon and runcon documentation from list
5821
58222008-11-26  Jim Meyering  <meyering@redhat.com>
5823
5824	doc: factor out list of suffix-to-number (e.g., KB->1000B) mappings
5825	* coreutils.texi (multiplierSuffixes, multiplierSuffixesNoBlocks):
5826	New macros.
5827	(od invocation, head invocation, tail invocation, split invocation):
5828	(truncate invocation): Use them.
5829
5830	doc: tail: one more s/bytes/n/ change
5831	* doc/coreutils.texi (tail invocation): Make one more
5832	@var{bytes} -> @var{n} change.
5833
58342008-11-26  Pádraig Brady  <P@draigBrady.com>
5835
5836	doc: tail: fix description of --bytes=N (-c)
5837	* doc/coreutils.texi (tail invocation): Use @var{n} consistently,
5838	not a mix of that and @var{bytes}.  Reported by anonymous
5839	in <http://savannah.gnu.org/bugs/?24934>.
5840
58412008-11-23  Karl Berry  <karl@freefriends.org>
5842
5843	doc: move @shortcontents and @contents from end to start
5844	* doc/coreutils.texi: Move @shortcontents and @contents from the
5845	end to the beginning, just after "@end titlepage".
5846
58472008-11-23  Jim Meyering  <meyering@redhat.com>
5848
5849	doc (stat): clarify: there are two sets of format directives
5850	* doc/coreutils.texi (stat invocation): Clarify description of
5851	--file-system format directives.
5852
58532008-11-23  Karl Berry  <karl@freefriends.org>
5854
5855	doc (stat): correct formatting in coreutils.texi
5856	* doc/coreutils.texi (stat invocation): Move the list of regular,
5857	non-file-system, format directives from the description of --terse,
5858	out of the enclosing table.
5859
58602008-11-22  Jim Meyering  <meyering@redhat.com>
5861
5862	tests: dd: add a test for the required behavior
5863	* tests/dd/reblock: New file.  Test for the required functionality.
5864	Based on an example and discussion from this thread:
5865	http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html
5866	* tests/Makefile.am (TESTS): Add dd/reblock.
5867
58682008-11-22  Pádraig Brady  <P@draigBrady.com>
5869
5870	Revert part of "dd: avoid unnecessary memory copies"
5871	This reverts part of commit fbd87029cfc494a72bb73ade27ef46382c5bc832.
5872	Paul Eggert noticed the problem in
5873	http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html
5874	* doc/coreutils.texi (dd invocation): Clarify.
5875
58762008-11-21  Pádraig Brady  <P@draigBrady.com>
5877
5878	getlimits: A new utility for use in coreutils' tests
5879	* src/getlimits.c: A utility to print platform dependent
5880	limits in a format suitable for use in shell scripts.
5881	* src/Makefile.am: Add getlimits to list of utilities
5882	to build but not install. Also add it to the list linked
5883	with libiconv
5884	* po/POTFILES.in: Add getlimits to translation list.
5885
5886	dd: avoid unnecessary memory copies
5887	* src/dd.c (scanargs): When not otherwise required (e.g. for
5888	conversion), use two-buffer mode only when the input and output
5889	buffer sizes differ.  Before, some of the most basic invocations of
5890	dd, e.g., dd < in > out, would unnecessarily use separate buffers
5891	and perform memory copies between them.
5892
58932008-11-20  Jim Meyering  <meyering@redhat.com>
5894
5895	cp: use far less memory in some cases
5896	cp --link was "remembering" many name,dev,inode triples unnecessarily.
5897	cp was doing the same, even without --link, for every directory in the
5898	source hierarchy, while it can do its job with entries merely for the
5899	command-line arguments.  Prompted by a report from Patrick Shoenfeld.
5900	Details <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15081>.
5901	* src/copy.c (copy_internal): Refrain from remembering
5902	name,dev,inode for most files, when invoked via cp --link.
5903	Record an infloop-avoidance triple for each directory specified
5904	on the command line, not for each directory in the source tree.
5905	Don't record a dir-triple when x->hard_link is set.
5906	* NEWS (Buf fixes): Mention it.
5907	* tests/cp/link-heap: New file.  Test for cp's lowered memory usage.
5908	* tests/Makefile.am (TESTS): Add link-heap.
5909
5910	tests: add a test of cp --preserve=links
5911	* tests/cp/link-preserve: Add a case and comments.
5912
5913	cp: remove unused code
5914	* src/cp-hash.c (remember_created): Remove unused function.
5915	Remove thus-obviated headers: <stdio.h>, "quote.h", "error.h".
5916	* src/cp-hash.h (remember_created): Remove declaration.
5917
59182008-11-17  Jim Meyering  <meyering@redhat.com>
5919
5920	doc: HACKING: reference http://www.gnu.org/licenses/why-assign.html
5921	Suggestion from Patrick Schoenfeld.
5922
59232008-11-16  Jim Meyering  <meyering@redhat.com>
5924
5925	tests: remove debug code that would try to write into /t/k-env
5926	* tests/ls/no-cap: Remove debugging "tee".
5927
5928	tests: change misc/printf-surprise so that it doesn't segfault anymore
5929	* tests/misc/printf-surprise: Disable MALLOC_PERTURB_, so that "make
5930	check" no longer provokes a segfault from printf(1).  Before, that
5931	would be detected as a known problem and cause the test to be skipped.
5932	Adjust the test so that a segfault once again results in test failure.
5933
59342008-11-12  Jim Meyering  <meyering@redhat.com>
5935
5936	tests: remove df/total
5937	* tests/df/total: Remove file.
5938	* tests/Makefile.am (TESTS): Remove df/total.
5939	It is subsumed by df/total-verify.
5940
59412008-11-12  Ondřej Vašík  <ovasik@redhat.com>
5942
5943	* tests/df/total-verify [VERBOSE]: Run df --version, not ls --version.
5944
59452008-11-12  Jim Meyering  <meyering@redhat.com>
5946
5947	avoid spurious test failure when df always fails
5948	* tests/df/total-verify: Skip upon _df_ failure, not tee failure.
5949	Reported by Ondřej Vašík.  Details in
5950	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15028>.
5951
59522008-11-11  Eric Blake  <ebb9@byu.net>
5953
5954	jm-macros.m4: avoid syntax issue with newer autoconf
5955	* jm-macros.m4 (coreutils_MACROS): Make LIB_CAP assignment persistent.
5956
59572008-11-11  Jim Meyering  <meyering@redhat.com>
5958
5959	Update references to GFDL: 1.2 -> 1.3
5960	* doc/coreutils.texi: Likewise.
5961	* doc/perm.texi: Likewise.
5962	* old/fileutils/NEWS: Likewise.
5963	* old/sh-utils/NEWS: Likewise.
5964	* old/textutils/NEWS: Likewise.
5965
59662008-11-10  Jim Meyering  <meyering@redhat.com>
5967
5968	make --help print "Report PROGRAM translation bugs to <...>."
5969	for all but the C/POSIX locale.
5970	* src/system.h: Include "hard-locale.h".
5971	(emit_bug_reporting_address): Tell where to report translation bugs.
5972
5973	don't include "hard-locale.h", now that system.h does
5974	* src/comm.c: Likewise.
5975	* src/join.c: Likewise.
5976	* src/ls.c: Likewise.
5977	* src/pinky.c: Likewise.
5978	* src/pr.c: Likewise.
5979	* src/sort.c: Likewise.
5980	* src/uniq.c: Likewise.
5981	* src/who.c: Likewise.
5982
5983	avoid warnings about discarding "qualifiers from pointer target type"
5984	Use the new "bad_cast" function or an actual cast-to-"(char *)"
5985	to avoid warnings.
5986	* src/system.h (bad_cast): Define.
5987	* src/chown.c (main):
5988	* src/chroot.c (main):
5989	* src/date.c (main):
5990	* src/du.c (main):
5991	* src/expand.c (stdin_argv):
5992	* src/ls.c (decode_switches):
5993	* src/md5sum.c (main):
5994	* src/paste.c (main):
5995	* src/pr.c (col_sep_string, column_separator, line_separator, main):
5996	* src/sort.c (main):
5997	* src/split.c (main):
5998	* src/tail.c (main):
5999	* src/unexpand.c (stdin_argv):
6000	* src/yes.c (main):
6001
6002	avoid a compiler warning
6003	(strip_program): Declare to be const.
6004
6005	use xfreopen in place of unchecked freopen
6006	* bootstrap.conf (modules): Add xfreopen.
6007	* src/cat.c (main): Include "xfreopen.h".  Use xfreopen.
6008	* src/cksum.c (cksum): Likewise.
6009	* src/head.c (head_file, main): Likewise.
6010	* src/md5sum.c (digest_file): Likewise.
6011	* src/od.c (open_next_file): Likewise.
6012	* src/split.c (type_undef): Likewise.
6013	* src/sum.c (bsd_sum_file, sysv_sum_file): Likewise.
6014	* src/tac.c (tac_file, main): Likewise.
6015	* src/tail.c (tail_file, main): Likewise.
6016	* src/tee.c (tee_files): Likewise.
6017	* src/tr.c (main): Likewise.
6018	* src/wc.c (wc_file): Likewise.
6019	* po/POTFILES.in: Add lib/xfreopen.c
6020
6021	xfreopen: new module
6022	* gl/lib/xfreopen.c: New file.
6023	* gl/lib/xfreopen.h: New file.
6024	* gl/modules/xfreopen: New file.
6025
60262008-11-09  Jim Meyering  <meyering@redhat.com>
6027
6028	Update URL: s!www.iro.umontreal.ca!translationproject.org/team/...!
6029	* Makefile.am (THANKS-to-translators): Update URL template.
6030
60312008-11-09  James Youngman  <jay@gnu.org>
6032
6033	install: indicate clearly it's not for installing packages
6034	* src/install.c (usage): Indicate the program copies files,
6035	as opposed to installing packages.
6036
60372008-11-08  Jim Meyering  <meyering@redhat.com>
6038
6039	emit more precise bug-reporting instructions
6040	Hoping that this will decrease the volume of bug reports
6041	mistakenly directed to the coreutils mailing list.
6042	* src/system.h (emit_bug_reporting_address): Specify the program
6043	name in the "Report bugs to <...>." line in each program's --help
6044	output and man page.  Now, it will say "Report PROGRAM_NAME bugs
6045	to <...>."  Suggestion from Ondřej Vašík.
6046
60472008-11-05  Jim Meyering  <meyering@redhat.com>
6048
6049	include gnulib's strdup module explicitly
6050	* bootstrap.conf (gnulib_modules): Include strdup explicitly, to
6051	keep the latest version of gnulib-tool from omitting this now-marked-
6052	as-obsolete module.
6053
60542008-10-28  Kamil Dudka  <kdudka@redhat.com>
6055
6056	ls: --color now highlights hard linked files, too
6057	* src/ls.c (print_color_indicator): Colorize hard linked files.
6058	* src/dircolors.c: Add color for hard link.
6059	* src/dircolors.hin: Add color for hard link.
6060	* tests/ls/hardlink: Test for ls - colorize hard linked files.
6061	* tests/Makefile.am (TESTS): Add ls/hardlink.
6062	* NEWS: Mention the change.
6063
60642008-10-28  Jim Meyering  <meyering@redhat.com>
6065
6066	tests: ls/stat-failed: don't discard stderr.
6067	* tests/ls/stat-failed: Let stderr be recorded, to ease debugging.
6068
60692008-10-26  Jim Meyering  <meyering@redhat.com>
6070
6071	tests: seq: check for today's extended long double fix
6072	* tests/misc/seq-long-double: New file.  Test for today's bug fix.
6073	* tests/check.mk (TESTS_ENVIRONMENT): Export CC definition.
6074	* tests/Makefile.am (TESTS): Add misc/seq-long-double.
6075	* NEWS (Bug fixes): Mention it.
6076
60772008-10-26  Paul Eggert  <eggert@CS.UCLA.EDU>
6078
6079	seq: improve quality of format-checking code
6080	* src/seq.c (validate_format): Remove. Migrate its checks into...
6081	(long_double_format): Report an error and exit if an error is found,
6082	instead of returning NULL.  All callers changed.
6083	Use a more-consistent format for diagnostics.
6084	* tests/misc/seq: Adjust to the more-consistent format for diagnostics.
6085
60862008-10-25  Jim Meyering  <meyering@redhat.com>
6087
6088	factor: avoid compilation failure without libgmp
6089	* src/factor.c (debug) [!HAVE_GMP]: Define.
6090	Reported by Bob Proulx.
6091
60922008-10-25  Paul Eggert  <eggert@CS.UCLA.EDU>
6093
6094	factor: remove --bignum and --no-bignum options
6095	Here's a patch to remove the --bignum and --no-bignum options from
6096	'factor'.  The case for removing --bignum isn't as strong as that for
6097	'expr', but still, it seems to me that these options are not needed and
6098	complicate the documentation unnecessarily.
6099
6100	* doc/coreutils.texi (factor invocation): Remove --bignum, --no-bignum.
6101	* src/factor.c (algorithm, ALGORITHM_CHOICE, USE_BIGNUM, NO_USE_BIGNUM):
6102	Remove; all uses removed.
6103	(extract_factors_multi): Remove, replacing with....
6104	(print_factors_multi): New function, with signature similar to that
6105	of new signature of print_factors_single.
6106	(print_factors_single): Migrate checking code to caller.
6107	(print_factors): Use GMP if it's available; don't bother asking user.
6108	Improve accuracy of check for "large" numbers.
6109	(long_options, main): Remove support for --bignum.
6110
61112008-10-25  Jim Meyering  <meyering@redhat.com>
6112
6113	tests: df/total: don't fail for an inaccessible mount point
6114	* tests/df/total: Ignore nonzero exit status from df.
6115
61162008-10-25  Paul Eggert  <eggert@CS.UCLA.EDU>
6117
6118	seq: revert Solaris 8 work-around that caused x86 regression
6119	* src/seq.c: Don't include <math.h>, <float.h>.
6120	(abs_rel_diff): Remove.
6121	(print_numbers): Test for equality, not for an epsilonish value.
6122	This reverts 4827dd27b0c655a685947aaa01426a5ecba179f3, aka
6123	v6.10-185-g4827dd2, which broke 'seq' on the x86; for example, it
6124	causes "seq 9223372036854775807 9223372036854775808" to incorrectly
6125	output 3 numbers instead of 2.  It's better to punish obsolescent
6126	hosts that have incorrectly-working floating-point than to punish
6127	correctly-working hosts.
6128	* tests/misc/seq: Use 0.9000000000000, rather than
6129	0.90000000000000000000, to avoid tickling a bug in Solaris 8 strtold,
6130	which converts "0.9" and "0.9000000000000" correctly, but incorrectly
6131	converts "0.90000000000000000000" to a smaller value.
6132
61332008-10-24  Eric Blake  <ebb9@byu.net>
6134
6135	group-list: avoid compiler warning
6136	* src/group-list.c (print_group_list) [!HAVE_GETGROUPS]: Always
6137	return value.
6138
61392008-10-23  Jim Meyering  <meyering@redhat.com>
6140
6141	ls: use '.' (not +) as SELinux-only alt. access flag in ls -l output
6142	* src/ls.c (gobble_file) [long_format]: Map SELinux-only to '.',
6143	any other nonempty combination of MAC and ACL to '+', and all else
6144	to the usual ' '.  Suggested by Michael Stone.
6145	* tests/misc/selinux: Adapt: expect '.', not '+'.
6146	* doc/coreutils.texi (What information is listed): Document this.
6147	* NEWS (Changes in behavior): Mention it.
6148
61492008-10-22  Pádraig Brady  <P@draigBrady.com>
6150
6151	Remove lzma as a specific build requirement
6152	* bootstrap.conf: lzma was added as a build requirement
6153	in the recently added build tools requirements check.
6154	Remove that as it's quite new and also only required
6155	for the make dist stage.
6156
61572008-10-22  Paul Eggert  <eggert@cs.ucla.edu>
6158
6159	* src/ls.c (usage): Describe exit statuses more concisely.
6160
61612008-10-22  Pádraig Brady  <P@draigBrady.com>
6162
6163	Add better checks and docs for build tools
6164	Prompted by a report from Ed Avis:
6165	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14710>
6166
6167	* README-hacking: Organise LZMA and Valgrind as
6168	as optional requirements rather than in their own sections.
6169	Mention bootstrap will now check tool versions.
6170	* README-prereq: Make a start on specific instructions
6171	for optaining build tools. Currently we just have notes
6172	for Fedora linux.
6173	* bootstrap.conf: Add the list of tools and versions required.
6174	* bootstrap: Add the logic to check for the required tools,
6175	and list all required tools and versions if any are missing.
6176
61772008-10-22  Jim Meyering  <meyering@redhat.com>
6178
6179	clean up gl/modules/selinux-at
6180	* gl/modules/selinux-at:
6181	Ensure that LIB_SELINUX is cleared, in case it's set in the environment.
6182	m4-quote the first two args to AC_SEARCH_LIBS.
6183	Don't violate autoconf's ac_ namespace: s/ac_save/gl_save/
6184	Drop the useless double quotes around a simple assignment RHS.
6185
61862008-10-21  Jim Meyering  <meyering@redhat.com>
6187
6188	move selinux-h module from gl/ to gnulib
6189	* gl/lib/se-context.in.h: Remove file.
6190	* gl/lib/se-selinux.in.h: Likewise.
6191	* gl/m4/selinux-context-h.m4: Likewise.
6192	* gl/m4/selinux-selinux-h.m4: Likewise.
6193	* gl/modules/selinux-h: Likewise.
6194
6195	prepare to move selinux-h module to gnulib
6196	* gl/modules/selinux-h (Makefile.am)
6197	[selinux/selinux.h, selinux/context.h]:
6198	Remove temporary file and target, in case they're read-only.
6199	Use $(MKDIR_P), not mkdir -p.
6200	(License): Relax to LGPLv2+.
6201	Remove vestigial comments.
6202
6203	tests: test today's ls-vs-capability fix
6204	Test for this fix: f3f1ccfd871ee395e7fafc051c1b7dedb39fdfc9.
6205	* tests/Makefile.am (TESTS): Add ls/no-cap.
6206	* tests/ls/no-cap: New file.
6207
62082008-10-21  Kamil Dudka  <kdudka@redhat.com>
6209
6210	ls: make it possible to disable file capabilities checking
6211	* ls.c (print_color_indicator): Do not check for file capability
6212	if that attribute is not being colored.
6213	Since 84f6abfe00b4ab533145623638b417a2221f9c75, ls --color would check
6214	each file for "capabilities".  In <http://bugzilla.redhat.com/467508>,
6215	James Antill reported that ls --color seemed slower with capabilities
6216	detection.
6217
62182008-10-21  Jim Meyering  <meyering@redhat.com>
6219
6220	reflect gnulib's removal of lstat.h
6221	* src/copy.h: Don't include "lstat.h".
6222	* src/ls.c: Likewise.
6223	* src/remove.c: Likewise.
6224	* src/rm.c: Likewise.
6225
62262008-10-20  Pádraig Brady  <P@draigBrady.com>
6227
6228	expr: Fixup authors
6229	* src/expr.c: Standardise the format of AUTHORS to
6230	that used in other utils with multiple authors.
6231	Also add Paul Eggert since he basically rewrote it
6232	with his bignum fixes.
6233	* AUTHORS (expr): Add Paul Eggert.
6234
62352008-10-19  Jim Meyering  <meyering@redhat.com>
6236
6237	accommodate gnulib header removals
6238	* src/copy.c: Don't include "euidaccess.h" or "lchmod.h".
6239	* src/cp.c: Don't include "lchmod.h".
6240	* src/ls.c: Don't include "dirfd.h".
6241	* src/mkdir.c: Don't include "lchmod.h".
6242	* src/pwd.c: Don't include "dirfd.h".
6243	* src/remove.c: Don't include "dirfd.h" or "euidaccess.h".
6244	* src/test.c: Don't include "euidaccess.h".
6245	* gl/modules/getloadavg.diff: Adjust diff for changed context.
6246	* src/uptime.c (uptime): Remove declaration.
6247
62482008-10-18  Jim Meyering  <meyering@redhat.com>
6249
6250	* maint.mk (coreutils-path-check): New definition, now run
6251	only if src/true.c exists.  Factored out of...
6252	(my-distcheck):  ...here.
6253
62542008-10-17  Jim Meyering  <meyering@redhat.com>
6255
6256	maint: avoid warning in ls.c
6257	* src/ls.c (has_capability) [!HAVE_CAP]: Add unused attribute.
6258
6259	maint: avoid warnings due to attribute warn_unused_result
6260	Now that a (void) cast no longer suffices to ignore warnings from gcc
6261	about uses of functions marked with the warn_unused_result attribute,
6262	we need an alternative.  For the record, here's one of the ignorable
6263	warnings: "copy.c:233: warning: ignoring return value of 'fchown',
6264	declared with attribute warn_unused_result"
6265	* bootstrap.conf (gnulib_modules): Import ignore-value.
6266	* src/copy.c: Include "ignore-value.h".
6267	(set_owner): Use ignore_value in place of "(void)" casts,
6268	to ignore lchown and fchown failures.
6269	* src/cp.c (re_protect): Likewise, to ignore lchown failure.
6270	* src/remove.c (preprocess_dir): Remove unnecessary "(void)" cast.
6271
62722008-10-16  Jim Meyering  <meyering@redhat.com>
6273
6274	mktemp: diagnose freopen failure
6275	* src/mktemp [--quiet]: Don't ignore freopen failure.
6276
62772008-10-16  Paul Eggert  <eggert@cs.ucla.edu>
6278
6279	* src/mktemp.c (main): Add 'const' twice to avoid GCC warning.
6280
62812008-10-16  Jim Meyering  <meyering@redhat.com>
6282
6283	build: when po-check fails, say why and suggest a fix
6284	* maint.mk (po-check): Before, when this check failed, it just
6285	spat out a diff mentioning two temporary files.  Now, it tells
6286	you what's wrong and suggests a fix with a patch using the name
6287	of the affected file (rather than temporary file names) in the
6288	diff output.
6289
62902008-10-16  Eric Blake  <ebb9@byu.net>
6291
6292	csplit: prefer sigaction over signal
6293	* bootstrap.conf (gnulib_modules): Import sigaction.
6294	* src/csplit.c (sigprocmask, siginterrupt) [SA_NOCLDSTOP]: Delete
6295	workarounds.
6296	(interrupt_handler, main): Drop use of signal.  Rely on sigaction
6297	to block fatal signal during cleanup, and to restore it to default
6298	in case of nested signals.
6299
63002008-10-15  Pádraig Brady  <P@draigBrady.com>
6301
6302	tests: add option processing tests for 'expr'
6303	* tests/misc/expr: Add tests for various combinations
6304	of options where the first part of the expression
6305	could be confused with an option.
6306
63072008-10-15  Paul Eggert  <eggert@cs.ucla.edu>
6308
6309	expr: remove --bignum and --no-bignum options
6310	* doc/coreutils.texi (expr invocation): Remove the --bignum and
6311	--no-bignum options.  They weren't really needed, and they broke
6312	longstanding (albeit nonportable) scripts.
6313	* src/expr.c: Don't include <assert.h>.  Include "inttostr.h",
6314	"long-options.h", "verify.h".  Check at compile-time that
6315	size_t fits in unsigned long int, as the code assumes this in
6316	several places.
6317	(HAVE_GMP): Define to 0 if not defined, for convenience.
6318	(mpz_t, mpz_clear, mpz_init_set_ui, mpz_init_set_str, mpz_add):
6319	(mpz_sub, mpz_mul, mpz_tdiv_q, mpz_tdiv_r, mpz_get_str, mpz_sgn):
6320	(mpz_fits_ulong_p, mpz_get_ui, mpz_out_str):
6321	Supply substitutes when !HAVE_GMP, which work well enough for
6322	expr's purposes.
6323	(mp_integer): Remove.  All integers are gmp, if gmp is available.
6324	(struct valinfo): Remove 'z' member; no longer needed.  The 'i'
6325	member is always of type mpz_t.
6326	(enum arithmetic_mode, MP_NEVER, MP_ALWAYS, MP_AUTO, mode):
6327	Remove; no longer needed.
6328	(usage): Remove documentation of --bignum and --no-bignum.
6329	(integer_overflow): Abort if error misbehaves, to pacify GCC.
6330	Restore old message on arithmetic overflow, to be conservative.
6331	(die): Omit exit_status parameter; not needed (is always EXPR_FAILURE).
6332	(string_too_long, USE_BIGNUM, NO_USE_BIGNUM, long_options):
6333	Remove; no longer needed.
6334	(main): Don't use getopt_long; this breaks old nonportable scripts.
6335	(int_value): Arg is unsigned, in case we have strings whose length
6336	exceeds LONG_MAX (!).
6337	(int_value, freev, printv, null, tostring, toarith):
6338	(eval6, eval4, eval3):
6339	Always use mpz_ functions, to simplify the code.
6340	(substr_value): Remove; no longer needed.
6341	(getsize): Simplify the API: one arg rather than 3.  Don't assume
6342	unsigned long int fits in size_t.
6343	(promote, domult, dodivide, doadd): Remove; no longer needed.
6344	* tests/misc/expr: Don't use --bignum to test for bignum support.
6345	Instead, use big numbers to test this.
6346
63472008-10-15  Jim Meyering  <meyering@redhat.com>
6348
6349	expr: don't interpret argv[0] as an operand
6350	* src/expr.c (main): Given a first argument like -22 (negative, with
6351	two or more digits), expr would decrement optind to 0 and then attempt
6352	to evaluate argv[0].
6353
6354	doc: cp, mv: remove mention of deprecated --reply= option
6355	* doc/coreutils.texi (cp invocation, mv invocation): Don't mention it.
6356
63572008-10-13  Jim Meyering  <meyering@redhat.com>
6358
6359	doc: adjust spacing in ls --help output, for better man formatting
6360	* src/ls.c (usage): Adjust spacing so the "Exit status:" list
6361	renders well in the help2man-generated man page.
6362
63632008-10-13  Ondřej Vašík  <ovasik@redhat.com>
6364
6365	doc: ls: clarify exit status description
6366	* src/ls.c (exit_status): Clarify comments.
6367	(usage): Clarify exit status description in --help output.
6368	* doc/coreutils.texi (ls invocation): Clarify exit status documentation
6369	Reported by Greg Metcalfe in <http://bugzilla.redhat.com/446294>.
6370
63712008-10-12  Jim Meyering  <meyering@redhat.com>
6372
6373	doc: reorder tsort/ptx nodes so body and menu ordering are consistent
6374	* doc/coreutils.texi (tsort invocation, tsort background): Move these
6375	nodes "down", so that they follow the ptx nodes, thus matching the
6376	alphabetized order in the menu.
6377	(tsort background): Make this a subsection.
6378	Suggested by Karl Berry.
6379
6380	tests: move check-misc targets from src/Makefile.am to maint.mk
6381	* src/Makefile.am (check): Remove check-misc.
6382	(check-misc): Remove target.
6383	* maint.mk (sc_prohibit_stat_st_blocks): New target.
6384	(sc_prohibit_S_IS_definition): New target.
6385	* Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_stat_st_blocks.
6386	* .x-sc_prohibit_stat_st_blocks: New file.
6387	Andreas Schwab reported that "make check" could fail to detect
6388	violation of the no-S_IS*-definition policy.
6389
6390	tests: df: avoid test failure when using mawk
6391	* tests/df/total-awk: Rewrite to use $PERL, not $AWK.
6392	mawk can't even count above 2^31.  Reported by Ed Avis.
6393	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14792/focus=14802
6394	* tests/df/total-verify: Rename from total-awk.
6395	* tests/Makefile.am (TESTS): Reflect renaming.
6396
63972008-10-10  Jim Meyering  <meyering@redhat.com>
6398
6399	bootstrap: merge from gnulib
6400
64012008-10-07  Ondřej Vašík  <ovasik@redhat.com>
6402
6403	doc: document runcon and chcon in SELinux context section
6404	* doc/coreutils.texi: Document runcon and chcon.
6405	Add minimal SELinux context section.
6406
64072008-10-06  Ondřej Vašík  <ovasik@redhat.com>
6408
6409	chcon: remove traces of unimplemented --change (-c) option
6410	This option was never supported in upstream coreutils.
6411	* chcon.c (usage): Remove --change (-c) from help message.
6412	(main): Remove 'c' from getopt string.
6413	Remove related and now-unused enums.
6414
64152008-10-06  Andreas Dilger  <adilger@sun.com>
6416
6417	stat: add lustre filesystem type
6418	* src/stat.c (human_fstype) [S_MAGIC_LUSTRE]: Add case.
6419	Make "stat -f" recognize the "Lustre" filesystem type.
6420	<http://en.wikipedia.org/wiki/Lustre_(file_system)>
6421	* NEWS: Mention this feature.
6422
64232008-10-06  Jim Meyering  <meyering@redhat.com>
6424
6425	remove.c: avoid compile failure on OS/2
6426	* src/remove.c (dirent_inode_sort_may_be_useful): Guard also with
6427	"#if defined __linux__".  Reported by Elbert Pol.
6428
64292008-10-05  Jim Meyering  <meyering@redhat.com>
6430
6431	post-release administrivia
6432	* NEWS: Add header line for next release.
6433	* .prev-version: Record previous version.
6434	* cfg.mk (old_NEWS_hash): Auto-update.
6435
6436	version 7.0
6437		* NEWS: Record release date.
6438
6439	* maint.mk (alpha beta major): Add "-a" to git commit ... command.
6440
64412008-10-04  Jim Meyering  <meyering@redhat.com>
6442
6443	tests: fix the install/strip-program test
6444	* tests/install/strip-program: Use $PREFERABLY_POSIX_SHELL,
6445	not POSIX_SHELL.  The latter may be empty, and would fail
6446	on OpenBSD 3.9.
6447	* tests/check.mk (TESTS_ENVIRONMENT): Propagate
6448	PREFERABLY_POSIX_SHELL to tests.
6449
64502008-10-03  Jim Meyering  <meyering@redhat.com>
6451
6452	timeout.c: don't use perror; exit 125 upon failed fork
6453	* src/timeout.c (main): Use "error", not perror.
6454	Elbert Pol noticed a build failure on OS/2.
6455	* src/timeout.c (main): Exit 125 (not errno) upon failed fork.
6456	Make the failed fork diagnostic match the one from install.c.
6457
64582008-10-03  Kamil Dudka  <kdudka@redhat.com>
6459
6460	ls and sort: use filevercmp instead of strverscmp
6461	* src/ls.c (cmp_version): Use filevercmp instead of strverscmp.
6462	* src/sort.c (usage): Remove mna reference to strverscmp(3).
6463	(compare_version): Use filevercmp instead of strverscmp.
6464	* bootstrap.conf: Add filevercmp to list of gnulib modules.
6465	* tests/misc/sort-version: Remove conflicting string and enhance test.
6466	* NEWS: Mention the change.
6467
64682008-10-02  Jim Meyering  <meyering@redhat.com>
6469
6470	tests: skip a root-only test when configured without libcap
6471	* tests/ls/capability: Test for HAVE_CAP definition in config.h.
6472
64732008-10-02  Eric Blake  <ebb9@byu.net>
6474
6475	ignore additional built file
6476
6477	remove.c: allow compilation on cygwin
6478	* src/remove.c (dirent_inode_sort_may_be_useful)
6479	[!HAVE_STRUCT_DIRENT_D_TYPE]: Elide definition when there is no point
6480	in trying to use it.
6481
64822008-10-02  Jim Meyering  <meyering@redhat.com>
6483
6484	bootstrap: merge from gnulib
6485	* bootstrap: add submodule support, git-merge-changelog
6486
64872008-10-01  Jim Meyering  <meyering@redhat.com>
6488
6489	remove.c: combine two helper functions, to avoid sign-extension
6490	* src/remove.c (fs_handles_readdir_ordered_dirents_efficiently):
6491	Remove function, so as not to have to worry about the type of
6492	statfs.f_type and sign extension.
6493	(dirent_inode_sort_may_be_useful): Adjust comment.
6494	Perform the switch directly on the struct.member here, instead.
6495	Andreas Schwab spotted the potential for a sign-extension bug,
6496	that happens not to bite for the S_* f_type values currently used.
6497
6498	rm: don't preprocess a directory on a file system of type tmpfs or nfs
6499	The preprocessing phase is not necessary on tmpfs, and induces
6500	a 20% performance decrease when removing a 2M-entry directory.
6501	* src/remove.c (fs_handles_readdir_ordered_dirents_efficiently):
6502	(dirent_inode_sort_may_be_useful): New functions from gnulib/fts.c.
6503	They'll probably become a gnulib module -- eventually.
6504	(preprocess_dir): Use dirent_inode_sort_may_be_useful.
6505
6506	tests: use our new timeout program
6507	* tests/rm/ext3-perf: Also, record set-up duration and FS type.
6508
65092008-09-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6510
6511	fix make variable quotation error
6512	* tests/check.mk (TESTS_ENVIRONMENT): Quote shell variable
6513	$tmp__, fix expansion.
6514
65152008-09-29  Jim Meyering  <meyering@redhat.com>
6516
6517	seq: solve e13188e7ef7bbd609c1586332a335b4194b881aa more cleanly
6518	* src/seq.c (print_numbers): Don't switch c_strtold -> strtold
6519	in order to accommodate the locale-dependent behavior of our internal
6520	asprintf use.  Instead, simply set the locale to C before calling
6521	asprintf, and then set it back afterwards.
6522
65232008-09-28  Jim Meyering  <meyering@redhat.com>
6524
6525	build: avoid spurious valgrind warning about uses of touch
6526	* .vg-suppressions (utimensat-NULL): Avoid bogus valgrind warning
6527	that appears on at least Fedora 9.
6528
6529	mktemp: plug an inconsequential leak
6530	* src/mktemp.c (main) [lint]: Free template.
6531
6532	THANKS: add Erik Auerswald
6533
65342008-09-28  Eric Blake  <ebb9@byu.net>
6535
6536	remove.c: avoid compiler warning
6537	* src/remove.c (compare_ino, dirent_count)
6538	[!HAVE_STRUCT_DIRENT_D_TYPE]: Mask declaration when unused.
6539
65402008-09-27  Jim Meyering  <meyering@redhat.com>
6541
6542	rm -r: avoid O(n^2) performance for a directory with very many entries
6543	This enhancement works around a problem that is specific to at least
6544	ext3 and ext4 file systems.  With them, it would take hours to remove
6545	a two-million-entry directory.  RAM-backed file systems (tmpfs) are
6546	not affected, since there is no seek penalty.
6547	* remove.c (rm_malloc, rm_free, compare_ino): New functions.
6548	(dirent_count, preprocess_dir): New function.
6549	[struct readdir_data]: New struct.
6550	(remove_cwd_entries): Call preprocess_dir.
6551	* tests/rm/ext3-perf: New file.  Test for the performance fix.
6552	* NEWS: mention the new feature
6553
6554	remove.c: don't use xmalloc; don't let obstack call exit on failure
6555	(obstack_chunk_alloc, obstack_chunk_free): Don't define.
6556	(top_dir): Param is no longer "const".
6557	Use malloc, not xmalloc, and call longjmp upon failed malloc.
6558	(obstack_init_minimal): New function.
6559	(ds_init): Don't use xmalloc.  Instead, use caller-supplied buffer.
6560	Use obstack_specify_allocation_with_arg, not obstack_init, so
6561	that we control what happens upon allocation failure.
6562	Arrange for ds_free not to free uninitialized if/when
6563	any obstack_specify_allocation_with_arg allocation fails.
6564	(ds_free): Don't free DS, now that it's no longer malloc'd.
6565	(rm): Allocate DS on the stack.
6566	Arrange to handle ds_init allocation failure.
6567
6568	step1
6569
6570	* maint.mk (my-distcheck): remove duplicate c99-related test code
6571
6572	maint: allow more C99 constructs; stop maintaining c99-to-c89 patch set
6573	* cfg.mk (local-checks-to-skip): Add patch-check.
6574	With the recent changes to remove.c, I no longer wish
6575	to maintain the c99-to-c89 patch set.
6576
65772008-09-26  Jim Meyering  <meyering@redhat.com>
6578
6579	seq -0.1 0.1 2: print final number when locale's decimal point is ","
6580	* src/seq.c (print_numbers): Use strtold, not c_strtold to convert
6581	from just-formatted-using-asprintf string back to double, since
6582	asprintf may have used something other than "." as the decimal point.
6583	Reported by lsof@nodata.co.uk as <http://bugzilla.redhat.com/463556>.
6584	Thanks to Ondřej Vašík for discovering that the bug was locale-related.
6585
6586	    $ LC_ALL=cs_CZ.UTF-8 seq -0.1 0.1 2|grep 2.0
6587	    [Exit 1]
6588	    $ seq -0.1 0.1 2|grep 2.0
6589	    2.0
6590
6591	* tests/check.mk (TESTS_ENVIRONMENT): Add LOCALE_FR_UTF8, for...
6592	* tests/misc/seq [locale-dec-pt]: New test for the above.
6593	* NEWS (bug fix): Mention it.
6594
6595	maint: relax a check so "make distcheck" succeeds again
6596	* maint.mk (makefile-check): Relax the check, in order to exempt
6597	the necessary use of a sole @...@-delimited Makefile.am variable.
6598
65992008-09-24  Jim Meyering  <meyering@redhat.com>
6600
6601	maint: avoid using find -name Makefile.am; could get false positives
6602	* maint.mk (makefile-check): Instead, search for the offending
6603	@...@ construct only in version-controlled files.
6604
66052008-09-24  Benno Schulenberg  <bensberg@justemail.net>
6606
6607	pinky: gettextize two missed strings
6608	Additionally differentiate the strings for unknown idle time and
6609	unknown real name so they can be translated differently.
6610
66112008-09-24  Jim Meyering  <meyering@redhat.com>
6612
6613	cp.c: adjust a comment to make it consistent with documentation
6614	'-a' is equivalent to -dpR, so s/-dpPR/-dpR/;  the -P is redundant,
6615	since -d already implies -P, and both --help and "info cp" say -dpR:
6616	Corresponding doc changes: 080ac7785071c7f135711a39e57c71d9057d9bd7
6617	b7c2db676635518c06add0dd570543ae83e21f2e.
6618
66192008-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6620
6621	fix installation with ./ginstall in src
6622	* src/Makefile.am (cu_install_program): New variable, set to
6623	either ./ginstall or @INSTALL_PROGRAM@ (for cross compilation).
6624	(INSTALL_PROGRAM): Override AC_SUBST unconditionally, to avoid
6625	warning, and wrong initialization order.
6626
66272008-09-22  Benno Schulenberg  <bensberg@justemail.net>
6628
6629	doc: alphabetize 'who's option descriptions
6630	* doc/coreutils.texi (who invocation): Alphabetize.
6631
66322008-09-19  Benno Schulenberg  <bensberg@justemail.net>
6633
6634	who --help: add a general description
6635
6636	uptime --help: put together message parts that belong together
6637
6638	tr --help: gettextize a single paragraph as a single string
6639	Breaking a paragraph into several strings is awkward for translators.
6640
6641	tail: gettextize the string, "standard input"
6642
6643	tail --help: move the --retry entry into alphabetical order
6644	* src/tail.c (usage): Also simplify --retry description, split a
6645	long string in two, remove a stray period, and add the usual indent.
6646
6647	shred --help: lowercase a stray capital
6648
6649	stty --help: correct the alignment of an entry
6650	* src/stty.c (usage): Also remove a stray period, and ungettextize
6651	a debugging message.
6652
6653	sort --help: sort the options better alphabetically
6654	Take the opportunity to split the long message into three parts.
6655
6656	rmdir --help: use lower case in option description; adjust indentation
6657
6658	remove.c: move comment to right before string, so gettext will pick it up
6659
6660	pr --help: elide arguments after short options that allow a space
6661	* src/pr.c (usage): Also, put the -S option with its description.
6662
6663	od: ungettextize debugging messages
6664
6665	nohup, remove, tr: also gettextize the alternative messages
6666
6667	od --help: avoid concatening two messages without a newline
6668	src/od.c (usage): Better: make them into two separate paragraphs.
6669
6670	mkfifo, mknod --help: put -Z option in its alphabetical position
6671	Options are normally sorted by their short form, not their long form.
6672	Also line up their descriptions.
6673
66742008-09-19  Jim Meyering  <meyering@redhat.com>
6675
6676	doc: coreutils.texi (csplit invocation): Add an example.
6677
66782008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6679
6680	various VPATH-related fixes
6681	* maint.mk (VC_LIST): Prepend '$(srcdir)/'.
6682	(patch-check): Fix to make it work with a VPATH build.
6683	* src/Makefile.am (sc_tight_scope): Likewise.
6684	* man/Makefile.am (.x.1): Do not make outputs unwritable.
6685
66862008-09-14  Jim Meyering  <meyering@redhat.com>
6687
6688	stat: remove obsolete and undocumented option, --filesystem
6689	* src/stat.c: Remove obsolete and undocumented --filesystem.
6690
66912008-09-13  Jim Meyering  <meyering@redhat.com>
6692
6693	tests: reenable disabled test, now that automake can handle it
6694	This reverts the change in ae1c205fc473589d028ef63785926263843555cd.
6695
66962008-09-11  Jim Meyering  <meyering@redhat.com>
6697
6698	tests: temporarily disable part of "make distcheck"
6699	* maint.mk (install-transform-check): Temporarily disable.
6700
6701	tweak wording and check to avoid failure
6702	* doc/coreutils.texi (printf invocation): Tweak wording.
6703	* doc/Makefile.am (check-texinfo): Allow "search path".
6704
67052008-09-10  Jim Meyering  <meyering@redhat.com>
6706
6707	doc: mention which commands may be built-in functions
6708	* doc/coreutils.texi (mayConflictWithShellBuiltIn): New macro.
6709	(mknod invocation, stat invocation, echo invocation)
6710	(printf invocation, test invocation, pwd invocation)
6711	(nice invocation, kill invocation, sleep invocation): Use it.
6712	(printf invocation): Invoke via "env" rather than using a
6713	literal /usr/local/bin/ prefix in examples.
6714
67152008-09-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6716
6717	simplify installation rules, using new Automake
6718	This relies on development Automake to provide multi-file
6719	installation, and avoids relying on undocumented Automake
6720	interfaces.  It also removes special-casing for `['.
6721	* configure.ac (AM_INIT_AUTOMAKE): Depend on 1.10a.
6722	(CROSS_COMPILING): New Automake conditional.
6723	* src/Makefile.am (install-exec-am, filtered_PROGS)
6724	(d_bindir, cu-install-binPROGRAMS): Remove.
6725	(INSTALL_PROGRAM) [!CROSS_COMPILING]: Set to `./ginstall'.
6726
6727	fix minor shell issues in test suite
6728	* tests/misc/help-version: Fix bad quoting.
6729	* tests/cp/same-file: Fix unportable shell quoting.
6730	* tests/mv/part-symlink: Likewise.
6731
67322008-09-10  Jim Meyering  <meyering@redhat.com>
6733
6734	tests: don't use "local" in bourne shell scripts
6735	* tests/test-lib.sh (remove_tmp_, skip_if_mcstransd_is_running_):
6736	Avoid failure on Solaris 11, since their /bin/sh passes the tests
6737	in posix-shell.m4, yet does not support "local" (which is not POSIX).
6738
6739	tests: use "Exit $fail", not (exit $fail); exit $fail
6740	* tests/test-lib.sh (Exit): New function by Ralf Wildenhues in automake
6741	http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=20594c08f63
6742	* tests/**: Convert all uses:
6743
6744	This restrictive change converted the vast majority:
6745
6746	  git grep -l '^(exit \$fail); exit \$fail$' \
6747	    | xargs perl -pi -e 's/'^\(exit \$fail\); exit \$fail$/Exit \$fail/'
6748
6749	And this did the rest, plus a few undesirable ones, so I manually
6750	backed out the changes to ChangeLog-* and build-aux/check.mk:
6751
6752	  git grep -l -E '\(exit [^)]+\); exit ' \
6753	    | xargs perl -pi -e 's/\(exit (.+?)\); exit \1/Exit $1/'
6754
67552008-09-08  Jim Meyering  <meyering@redhat.com>
6756
6757	tests: move input-tty into a test-lib.sh function
6758	* tests/test-lib.sh (require_controlling_input_terminal_): New function, from
6759	* tests/input-tty: ...here.  Remove file.
6760	* tests/Makefile.am (EXTRA_DIST): Remove input-tty.
6761	* tests/mv/i-3: Use the function, not the file.
6762	* tests/misc/stty: Likewise.
6763	* tests/misc/stty-row-col: Likewise.
6764	* tests/misc/stty-invalid: Likewise.
6765
67662008-09-07  Jim Meyering  <meyering@redhat.com>
6767
6768	tests: work around Solaris 11 bug
6769	* tests/misc/printf-surprise: Accept bogus prefix on stderr output.
6770
6771	tests: don't let rounding-to-1KB blocks provoke a failure
6772	* tests/df/total-awk: Use df's --block-size=512 option.
6773
6774	tests: don't fail due to built-in sleep from Solaris 11's /bin/sh
6775	* tests/misc/help-version (id_args): Invoke via env to ensure we
6776	run the just-built version of sleep.
6777
67782008-09-06  Kamil Dudka  <kdudka@redhat.com>
6779
6780	install: new option: --strip-program,
6781	...to specify the program used to strip binaries
6782	* src/install.c (main): Handle new option --strip-program.
6783	(strip): Use strip program from global variable strip_program.
6784	(usage): Mention new option --strip-program in --help.
6785	* tests/tests/strip-program: Test case for new option --strip-program.
6786	* tests/Makefile.am: Add new test case to test set.
6787	* doc/coreutils.texi: Mention new option --strip-program.
6788	* NEWS: Mention the change.
6789	* TODO: Remove completed task.
6790
67912008-09-03  Kamil Dudka  <kdudka@redhat.com>
6792
6793	df: new option: --total to print grand totals
6794	* src/df.c (add_uint_with_neg_flag): New function to add two integral
6795	values with separate negation flag.
6796	(show_dev): New parameter force_fsu to display numbers directly. Collect
6797	summary statistics on each printed device.
6798	(usage): Mention new option --total in --help.
6799	(main): Initialize summary on program start. Handle new option --total.
6800	* tests/df/total: Dummy test case for new --total option.
6801	* tests/df/total-awk: Better test case for new --total option (requires
6802	awk).
6803	* doc/coreutils.texi: Mention new parameter --total.
6804	* NEWS: Mention the change.
6805	* TODO: Removed completed task.
6806
68072008-09-03  Jim Meyering  <meyering@redhat.com>
6808
6809	TODO: add an item for a chmod optimization
6810
68112008-08-31  Jerry Snitselaar  <dev@snitselaar.org>
6812
6813	env, groups: remove duplicate inclusion of <getopt.h>
6814	* src/env.c: Remove redundant #include.
6815	* src/groups.c: Likewise.
6816	Tiny change.
6817
68182008-08-26  Jim Meyering  <meyering@redhat.com>
6819
6820	generate version.c and version.h
6821	* src/Makefile.am (version.c, version.h): New rules.  Generate.
6822	(nodist_libver_a_SOURCES): Define
6823	* .gitignore: Add src/version.c and src/version.h.
6824	(DISTCLEANFILES): Add version.c and version.h.
6825
6826	use new global, "Version", rather than macro, VERSION
6827	With this change, a version-string update no longer
6828	forces recompilation of 100+ src/*.o files.
6829	* src/version.c (Version): New global.  New file.
6830	* src/version.h: Declare it.
6831	* src/Makefile.am: Put it in a library that everyone links to.
6832	(noinst_LIBRARIES, libver_a_SOURCES): Define.
6833	(LDADD): Add libver.a.
6834	(sc_tight_scope): Use perl (was sed), and a more relaxed regexp
6835	to build the global-variable-name-recognizing regexp list.
6836	* src/system.h: Include "version.h".
6837	(case_GETOPT_VERSION_CHAR): Use Version rather than VERSION.
6838	* src/basename.c (main): Use Version rather than VERSION.
6839	* src/chroot.c (main): Likewise.
6840	* src/cksum.c (main): Likewise.
6841	* src/dd.c (main): Likewise.
6842	* src/dirname.c (main): Likewise.
6843	* src/echo.c (main): Likewise.
6844	* src/hostid.c (main): Likewise.
6845	* src/hostname.c (main): Likewise.
6846	* src/link.c (main): Likewise.
6847	* src/logname.c (main): Likewise.
6848	* src/nice.c (main): Likewise.
6849	* src/nohup.c (main): Likewise.
6850	* src/printenv.c (main): Likewise.
6851	* src/printf.c (main): Likewise.
6852	* src/pwd.c (main): Likewise.
6853	* src/setuidgid.c (main): Likewise.
6854	* src/sleep.c (main): Likewise.
6855	* src/sync.c (main): Likewise.
6856	* src/test.c (main): Likewise.
6857	* src/timeout.c (main): Likewise.
6858	* src/true.c (main): Likewise.
6859	* src/tsort.c (main): Likewise.
6860	* src/unlink.c (main): Likewise.
6861	* src/uptime.c (main): Likewise.
6862	* src/users.c (main): Likewise.
6863	* src/whoami.c (main): Likewise.
6864	* src/yes.c (main): Likewise.
6865
6866	bootstrap: preserve permissions of more copied files
6867	* bootstrap (cp_mark_as_generated): Preserve perms of copied files.
6868	Remove a kludge, now that this is fixed.
6869
68702008-08-23  Bruno Haible  <bruno@clisp.org>
6871
6872	doc: clarify wc -L documentation
6873	* doc/coreutils.texi (wc invocation): Explain what the -L option
6874	measures.
6875
68762008-08-20  Eric Blake  <ebb9@byu.net>
6877
6878	ls: adjust to gnulib change
6879	* src/ls.c (includes): "strverscmp.h" no longer exists.
6880
68812008-08-19  Eric Blake  <ebb9@byu.net>
6882
6883	.gitignore: ignore more files
6884	* .gitignore: Ignore directories created by gnulib.
6885
6886	.gitattributes: generalize
6887	* .gitattributes: Relax the glob pattern, so it matches *.texinfo, too.
6888	Suggest a POSIX BRE, rather than one that uses the GNU extension, \\+.
6889
6890	sort: improve usage wording
6891	* src/sort.c (usage): Mention that -k defaults to end of line if
6892	POS2 omitted.
6893	* THANKS: Update.
6894	Reported by Tim Ryan.
6895
68962008-08-15  Jim Meyering  <meyering@redhat.com>
6897
6898	adjust
6899
69002008-08-15  Bruce Korb  <bkorb@gnu.org>
6901
6902	sort: new option, --sort=version, for version number ordering
6903	* src/sort.c [struct keyfield] (version): New member.
6904	(usage): Describe --version-sort.
6905	(sort_options): Add 'V'.
6906	(long_options): Add "version-sort".
6907	(CHECK_TABLE, _ct_, SORT_TABLE, _st_): Define new macros.
6908	(check_args, sort_args, sort_types): Use these new macros in declarations.
6909	(ARGMATCH_VERIFY): Remove use.  No longer needed.
6910	(compare_version): New function.
6911	(key_compare): Add a case.
6912	(check_ordering_compatibility): Handle new type.
6913	(main): Likewise.  Reformat two expressions for readability.
6914	* tests/misc/sort-version: new test file
6915	* tests/Makefile.am: add it to the list
6916	* doc/coreutils.texi (sort invocation): Document it.
6917	* NEWS: Mention the new feature.
6918
69192008-08-14  Jim Meyering  <meyering@redhat.com>
6920
6921	set envvars via "env" to avoid spurious set -x output from bad shells
6922	* tests/dd/misc: Set LC_ALL=C via env.
6923	* tests/cp/thru-dangling: Set POSIXLY_CORRECT via env.
6924	This is necessary at least on AIX 5.3.
6925	Reported by Jeph Cowan and Ralf Wildenhues.  Details here:
6926	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257
6927
6928	"expr --bignum 1" now fails when expr is built without libgmp
6929	* src/expr.c (main): When --bignum is requested, yet expr was built
6930	without libgmp, exit nonzero (3) in addition to giving a diagnostic.
6931
6932	mktemp, sort, tac: don't use undefined after mkstemp failure
6933	When mkstemp fails, the template buffer may have undefined
6934	contents, so we must not print it.
6935	* src/sort.c (create_temp_file): Use temp_dir, not "file"
6936	when diagnosing failed mkstemp, because "file" may be undefined.
6937	* tests/misc/sort-merge: Adjust for new expected output.
6938	Jeph Cowan and Ralf Wildenhues reported the test failure:
6939	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257
6940	* src/tac.c (copy_to_temp): Don't use template buffer after
6941	failed mkstemp call, since its contents may be undefined.
6942	* tests/misc/tac (pipe-bad-tmpdir): New test for the above.
6943	* src/mktemp.c (main): Save a copy of the template string,
6944	solely for use in case mkstemp fails.
6945	* tests/misc/mktemp (pipe-bad-tmpdir): New test for the above.
6946
69472008-08-12  Benno Schulenberg  <bensberg@justemail.net>
6948
6949	kill: micro grammar nit in description of SIGNAL
6950
6951	groups: let synopsis show that the command allows multiple usernames
6952	Also make the docstring say so.
6953
6954	id: remove superfluous condition test; it is caught at -Z above
6955
6956	id: gettextize a few missed tiny strings
6957
6958	fmt: remove the 'no file' sentence; the standard phrase is given below
6959	Replace the sentence with a more useful explanation of -DIGITS.
6960
69612008-08-11  Benno Schulenberg  <bensberg@justemail.net>
6962
6963	echo: correct description of \c
6964	* src/echo.c (usage): Correct description of \c.
6965	* coreutils.texi (echo invocation): Likewise.
6966	* src/echo.c: Remove --help-duplicating comment.
6967
6968	doc: the quote operator for expr is '+', not 'quote'
6969
6970	factor: remove duplicate docstring; use the more detailed one
6971
6972	echo: gettextize the alternative option description too
6973
6974	dd: clarify meaning of multiplication factors; put xM in order
6975
6976	doc: remove stray word from date's field width description
6977
6978	date: remove confusing and unneeded sentence from --help
6979	It makes it unclear what 'sequences' refers to,
6980	and the -u option already says enough.
6981
6982	printenv: say what it does when variables are specified
6983
6984	doc: put the exitstatus paragraph in a better place
6985	* doc/coreutils.texi (tsort invocation): move two lines
6986
6987	cp: move a newline to make second message identical to others
6988
6989	who: Gettextize two forgotten strings
6990
69912008-08-10  Jim Meyering  <meyering@redhat.com>
6992
6993	sort: remove unnecessary declaration of strtod
6994	* src/sort.c (STDC_HEADERS): Remove declaration of strtod.
6995
6996	sort: avoid erroneous cast
6997	* src/sort.c (OPEN_MAX): Define if not already defined.
6998	(MAX_NMERGE): Remove definition.
6999	(specify_nmerge): Don't cast MAX_NMERGE (of type size_t) to unsigned int.
7000	Instead, use OPEN_MAX as the fall-back value.
7001
7002	sort: don't print uninitialized in diagnostic
7003	* src/sort.c (specify_nmerge): Do use uinttostr value.
7004	Provoke with e.g., sort -m --batch-size=18446744073709551617
7005	Omit quotes around known-numeric value in diagnostic.
7006	* tests/misc/sort-merge [nmerge-big]: Tighten ERR_SUBST regexp
7007	to require a numeric value in that diagnostic, so this particular
7008	failure cannot reappear.
7009
70102008-08-09  Jim Meyering  <meyering@redhat.com>
7011
7012	* .gitattributes: Better diff output for texinfo sources.
7013
7014	dd.c: reduce duplication in new O_FULLBLOCK-defining code
7015	* src/dd.c (MULTIPLE_BITS_SET): New macro, extracted from...
7016	(multiple_bits_set): ...this function.
7017	Use a single-line, and far simpler expression (no need to list all
7018	O_* symbols again) to validate the derived O_FULLBLOCK value.
7019
7020	* coreutils.texi (factor invocation, expr invocation): Adjust wording.
7021
7022	expr: avoid compiler warnings
7023	* src/expr.c (die): New "noreturn" function to wrap one-arg use of
7024	error
7025	(string_too_long): Use die rather than error.
7026	(toint): Remove definition of now-unused function.
7027	(eval6): Remove a little duplication.
7028	Use die rather than error.
7029	(dodivide): Remove declaration of now-unused variable.
7030
7031	* tests/misc/expr: Add tests of the new GMP-based code.
7032
70332008-08-06  James Youngman  <jay@gnu.org>
7034
7035	expr: support arbitrary-precision arithmetic
7036	* src/Makefile.am (expr_LDADD): Link expr against GNU MP.
7037	* doc/coreutils.texi (expr invocation): Describe --bignum,
7038	--no-bignum.   Explain the new arbitrary-precision functionality.
7039	* NEWS: Indicate that arbitrary-precision arithmetic is now
7040	supported in expr.
7041	* src/expr.c (enum valtype): Added mp_integer, signifying a GNU MP
7042	number.
7043	(usage): Document the new options --bignum and --no-bignum which
7044	force and prohibit the use of arbitrary-precision arithmetic,
7045	respectively.
7046	(long_options): data structure for getopt_long, which we need to
7047	use to parse the options mentioned above.
7048	(main): parse these options with getopt_long instead of
7049	parse_long_options.
7050	(valinfo): Downgrade the numeric member of the union from
7051	intmax_t to signed long, since MP lacks functions for promoting an
7052	intmax_t to an arbitrary-precision quantity.
7053	(enum arithmetic_mode): Represents the current choice between
7054	--bignum, --no-bignum and the default (automatically switch from
7055	one to the other if needed).
7056	(integer_overflow): issue a more explicit error message indicating
7057	that MP is not available.
7058	(string_too_long): new function, emits a fatal error message for
7059	the case where an argument to the 'index' expression is too long
7060	for a string offset to be represented.
7061	(int_value): With --bignum, create the value as mp_integer rather
7062	than plain integer.
7063	(substr_value): factored out of eval6; implements "substr".
7064	(freev): also destroy mp_integer values.  Check that no mp_integer
7065	values exist if --no-bignum was specified.
7066	(printv, null, tostring): support mp_integer.
7067	(toint): new funtion for converting from string or mp_integer to
7068	integer.
7069	(getsize): extracts a size_t value from a VALUE object; used to
7070	implement substr.
7071	(promote): promotes a value from integer to mp_integer.
7072	(domult, dodivide): functions for multiplication and division,
7073	factored out of eval4.
7074	(doadd): addition/subraction function, factpred out of eval3.
7075	(eval3): support mp_integer types; call doadd.
7076	(eval4): support mp_integer types; call domult, dodivide.
7077	(eval6): support mp_integer offsets and lengths for "substr" and
7078	"index".
7079	* TODO: Mention that expr supports arbitrary-precision arithmetic,
7080	and suggest that this might also be a good idea for seq.
7081	* AUTHORS (expr): Add James Youngman.
7082
7083	doc: mv,cp: undocument the --reply option
7084	* doc/coreutils.texi (mv invocation): Remove documentation for mv --reply.
7085	(cp invocation): Likewise.
7086	* NEWS: mention this.
7087
7088	document the supported baud rates beyond 38400
7089	* doc/coreutils.texi (Special):  Document the supported baud rates
7090	beyond 38400.
7091
70922008-08-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7093
7094	ls: ignore spurious getfilecon failure due to lack of SELinux support
7095	* src/ls.c (gobble_file): Upon failed getfilecon, treat an errno value
7096	of EOPNOTSUPP just like ENOTSUP.  See <http://bugs.debian.org/488549>.
7097
70982008-08-05  James Youngman  <jay@gnu.org>
7099
7100	Document uptime.
7101	* doc/coreutils.texi (uptime invocation): document uptime.
7102	* TODO: uptime is documented now.
7103	* src/uptime.c (print_uptime): Use fprintftime to print the time, rather
7104	than printf. This should make the situation better for translations.
7105
71062008-08-04  Benno Schulenberg  <bensberg@justemail.net>
7107
7108	doc: correct and normalize --help output of several tools
7109	* src/chroot.c (usage): Add "[ARG]" to synopsis.
7110	* src/cut.c (usage): Remove an inconsistent period in an option
7111	description.
7112	* src/du.c (usage): Remove superfluous argument after short option -X.
7113	Also remove inconsistent uppercase and final period.
7114	Use a single indent level for prettiness.
7115	* src/shred.c (usage): Normalize the synopsis.
7116	* src/stty.c (usage): Options -F and --file are alternatives, cannot
7117	both be used.
7118	* src/sum.c (usage): -r does not overrule -s; the last one counts.
7119	* src/uptime.c (usage): Remove inconsistent space from the synopsis.
7120	* src/users.c: Likewise.
7121
71222008-08-04  Jim Meyering  <meyering@redhat.com>
7123
7124	false: mark "false" description for translation
7125	* src/true.c (usage): Mark both strings with N_, so that
7126	the one for "false" is also extracted for translation.
7127	For consistency, mark both, although only the latter one needed it.
7128	Inspired by a patch from Benno Schulenberg.
7129
71302008-08-04  James Youngman  <jay@gnu.org>
7131
7132	factor: credit Torbjörn Granlund
7133	* src/factor.c: Credit Torbjörn Granlund as the author of the
7134	arbitrary-precision factorization code.
7135
71362008-08-03  Jim Meyering  <meyering@redhat.com>
7137
7138	doc: make it clear we're talking about the Linux kernel
7139	* doc/coreutils.texi (mv invocation): tweak wording
7140
71412008-08-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7142
7143	tests: fix build-aux/check.mk for non-GNU make
7144	* build-aux/check.mk ($(TEST_LOGS)) [!GNU_MAKE]: Check for
7145	a $(TESTS) test in the build dir, before one in srcdir.  For details,
7146	see <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14198>.
7147
7148	* bootstrap: Fix unportable expr usage.
7149
71502008-08-01  Kamil Dudka  <kdudka@redhat.com>
7151
7152	ls: --color now highlights files with capabilities, too
7153	* src/ls.c: [HAVE_CAP] Include <sys/capability.h>.
7154	(has_capability): New function for capability detection.
7155	(print_color_indicator): Colorize file with capability.
7156	* m4/jm-macro.m4: New configure option: --disable-libcap.
7157	Check for libcap usability.
7158	* src/Makefile.am (dir_LDADD, ls_LDADD, ...): Append $(LIB_CAP).
7159	* src/dircolors.c: Update color lists.
7160	* src/dircolors.hin: Mention new CAPABILITY color attribute.
7161	* tests/ls/capability: Test for ls - colorize file with capability.
7162	* tests/Makefile.am (root_tests): Add ls/capability.
7163	* NEWS: Mention the change.
7164
71652008-08-01  James Youngman  <jay@gnu.org>
7166
7167	factor arbitrarily large numbers
7168	* m4/gmp.m4: New file; adds cu_GMP, which detects GNU MP.
7169	* configure.ac: Use cu_GMP.
7170	* src/Makefile.am: Link factor against libgmp if available.
7171	* src/factor.c: Use GNU MP if it is available.
7172	(emit_factor, emit_ul_factor, factor_using_division,
7173	factor_using_pollard_rho, extract_factors_multi,
7174	sort_and_print_factors, free_factors): new functions
7175	for the arbitrary-precision implementation, taken from an example
7176	in GNU MP.
7177	(factor_wheel): Renamed; was called factor.
7178	(print_factors_single): Renamed; was called print_factors.
7179	(print_factors): New function, chooses between the single- and
7180	arbitrary-precision algorithms according to availability of GNU MP
7181	and the length of the number to be factored.
7182	(usage, main): New options --bignum and --no-bignum.
7183	* coreutils.texi (factor invocation): Document new command-line
7184	options for the MP implementation and update the performance
7185	numbers to take into account the asymptotically faster algorithm.
7186	* TODO: Remove item about factoring large primes (it's done).
7187	* m4/gmp.m4: Add support for --without-gmp.
7188	* NEWS: Mention the new feature.
7189
71902008-08-01  Kamil Dudka  <kdudka@redhat.com>
7191
7192	ls -U1 now uses constant memory
7193	When printing one name per line and not sorting, ls now uses
7194	constant memory per directory, no matter how many files are in
7195	the directory.
7196	* ls.c (print_dir): Print each file name immediately, when possible.
7197	* NEWS: Mention the improvement.
7198
71992008-07-30  Jim Meyering  <meyering@redhat.com>
7200
7201	* timeout.c: Fix grammar in a comment. Normalize comment syntax.
7202
72032008-07-28  Jim Meyering  <meyering@redhat.com>
7204
7205	bootstrap: work also when there are no .po files in po/
7206	* bootstrap (update_po_files): Complete the change that I began
7207	in 7ba2dd808232cff3ee76aaceb97f4381c3c9cde4.
7208
72092008-07-27  Jim Meyering  <meyering@redhat.com>
7210
7211	* NEWS: Move shuf --zero-terminated item into bug-fixes section.
7212
72132008-07-27  Mikael Magnusson  <mikachu@gmail.com>
7214
7215	shuf: correctly document --head-count
7216	* src/shuf.c (usage): Correct --help output.
7217	* doc/coreutils.texi: Correct option listing.
7218	* NEWS: Mention correction.
7219
72202008-07-27  Jim Meyering  <meyering@redhat.com>
7221
7222	shuf: honor --zero-terminated option even with --input-range=LO-HI
7223	* src/shuf.c (write_permuted_output): Add EOLBYTE parameter and use
7224	it rather than hard-coding "\n".
7225	(main): Adjust sole caller.
7226	* tests/misc/shuf: Add a test to exercise this bug fix.
7227	* NEWS: Mention it.
7228
72292008-07-23  Jim Meyering  <meyering@redhat.com>
7230
7231	dd: minor fullblock changes
7232	* src/dd.c (O_FULLBLOCK): Define using an enum, not #define.
7233	Derive the value, rather than hard-coding to one that might conflict.
7234	(usage): Mention iflag=fullblock in --help output.
7235	(scanargs): Reset the O_FULLBLOCK bit, so that we don't try to set
7236	an undefined attribute via fcntl (fd, F_SETFL, ...
7237	* tests/dd/misc: Signal framework_failure when necessary.
7238	Use "compare actual expected", so any diffs look "right".
7239	* NEWS (dd): Alphabetize and reword.
7240	* coreutils.texi (dd invocation): Adjust wording.
7241
72422008-07-23  Kamil Dudka  <kdudka@redhat.com>
7243
7244	dd: new option: iflag=fullblock to accumulate full input blocks
7245	* src/dd.c (iread_fullblock): New function for reading full blocks.
7246	(scanargs): Check for new parameter iflag=fullblock.
7247	(skip): Use iread_fnc pointer instead of iread function.
7248	(dd_copy): Use iread_fnc pointer instead of iread function.
7249	* tests/dd/misc: Add test for dd - read full blocks.
7250	* doc/coretuils.texi: Mention new parameter iflag=fullblock.
7251	* NEWS: Mentioned the change.
7252
72532008-07-23  Jim Meyering  <meyering@redhat.com>
7254
7255	dd: adjust --help output so help2man formats the man page properly
7256	* src/dd.c (usage): Use two spaces (not one) to separate
7257	"directory" from its description, so help2man formats
7258	the derived man page properly.
7259
72602008-07-23  Reuben Thomas  <rrt@sc3d.org>
7261
7262	doc: add example .bashrc code for a ~/.dircolors file
7263	* coreutils.texi: Add tip for .bashrc use from Jim Meyering.
7264
72652008-07-22  Jim Meyering  <meyering@redhat.com>
7266
7267	tests: do not run chmod on a prefix of space-embedded tmpdir
7268	* TESTS/test-lib.sh (remove_tmp_): New function.
7269	(trap 0): Use it instead of open-coded (and misquoted) version.
7270
7271	tests: ensure "make check" w/tainted build dir no longer impacts $HOME
7272	* maint.mk (taint-distcheck): New rule.
7273	(maintainer-distcheck): Make it.
7274
72752008-07-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7276
7277	tests: again, do not change the mode of all directories below $HOME
7278	* tests/CuTmpdir.pm (chmod_tree): Do not run chmod on undefined
7279	argument, can happen when the build path contains spaces.
7280
72812008-07-19  Jim Meyering  <meyering@redhat.com>
7282
7283	* THANKS: Update, now that I have a name for jemm4jemm.
7284
72852008-07-18  Andreas Schwab  <schwab@suse.de>
7286
7287	mknod: correct misplaced -Z description in --help output
7288	* src/mknod.c (usage): Put it after the "Mandatory arguments..." line.
7289
72902008-07-16  Jim Meyering  <meyering@redhat.com>
7291
7292	dircolors.hin: add Ogg/Theora-related extensions
7293	* dircolors.hin: Add extensions from
7294	http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
7295	Suggestion from jemm4jemm@yahoo.com.
7296
7297	* HACKING: describe how to find a misplaced change-set
7298
72992008-07-15  Jim Meyering  <meyering@redhat.com>
7300
7301	fix two bugs in ptx
7302	* src/ptx.c (fix_output_parameters): Don't let before_max_width
7303	go negative -- that would cause an infloop in define_all_fields.
7304	(main): Don't clobber name[0] with lists of two or more input files.
7305	* tests/misc/ptx: New file.  Test for the above.
7306	* tests/Makefile.am (TESTS): Add misc/ptx.
7307
73082008-07-11  Pádraig Brady  <P@draigBrady.com>
7309
7310	tests: expand: test for lines starting with both spaces and tabs
7311	The expand released in current distributions (Fedora Core 4 - Fedora 9
7312	at least), doesn't expand --initial tabs if spaces are present.
7313
7314	tests/misc/expand: Add test to verify --initial works correctly
7315	with lines starting with both spaces and tabs.
7316
73172008-07-10  Jim Meyering  <meyering@redhat.com>
7318
7319	make check: accommodate stricter POSIX-conforming shells
7320	Without this, test-related variable settings were not exported to
7321	the shell_or_perl_ function when using dash or Solaris 11's /bin/sh.
7322	* tests/check.mk (TESTS_ENVIRONMENT): Use an explicit "export",
7323	so as not to rely on non-POSIX behavior of some /bin/sh (e.g.,
7324	bash-based ones).
7325
73262008-07-06  Jim Meyering  <meyering@redhat.com>
7327
7328	* bootstrap: Remove $bt and $bt2 also when not using gettext.
7329
73302008-07-04  Jim Meyering  <meyering@redhat.com>
7331
7332	who -r: don't print "last=" when the corresponding byte is unprintable
7333	* src/who.c (print_runlevel): Print last=%c only when the "preceding
7334	run-level" byte is printable.  Reported by Gian Piero De Lolliis in
7335	<http://bugzilla.redhat.com/453249>.
7336
73372008-07-04  Ondřej Vašík  <ovasik@redhat.com>
7338
7339	doc: describe who's -p, -r, and -t options
7340	* doc/coreutils.texi (who invocation):
7341
73422008-07-04  Jim Meyering  <meyering@redhat.com>
7343
7344	install with just-built ./ginstall only when not cross-compiling
7345	* src/Makefile.am (install-exec-am): ...otherwise, use the default
7346	value, $(INSTALL_PROGRAM).  Reported by Brian Silverman.
7347
7348	* README-hacking: Update the section on LZMA.
7349
73502008-06-30  Pádraig Brady  <P@draigBrady.com>
7351
7352	truncate: ignore whitespace in --size parameters
7353	Without this, `truncate -s '> -1' F` would truncate F to length 0,
7354	and `truncate -s " +1" F` would truncate F to 1 byte.  Now, each
7355	elicits a diagnostic.
7356	* src/truncate.c: Skip leading white space in the --size option
7357	argument and any white space after one of the relative modifiers,
7358	so that the presence of a +/- modifier can be detected reliably.
7359	* tests/misc/truncate-parameters: Add tests for the above.
7360
73612008-06-28  Jim Meyering  <meyering@redhat.com>
7362
7363	doc: add "..." to Usage, to indicate there may be multiple OPTIONs
7364	* src/base64.c (usage): Likewise.
7365	* src/cat.c (usage): Likewise.
7366	* src/md5sum.c (usage): Likewise.
7367	* src/mkdir.c (usage): Likewise.
7368	* src/mkfifo.c (usage): Likewise.
7369	* src/split.c (usage): Likewise.
7370	* src/stat.c (usage): Likewise.
7371	Heiko Marr reported the problem with mkdir.
7372
7373	mkfifo: correct misplaced -Z description in --help output
7374	* src/mkfifo.c (usage): Put it *after* the "Mandatory arguments..." line.
7375
7376	uniq: remove redundant test
7377	* src/uniq.c (find_field): Remove redundant test in outer loop-
7378	termination expression. Also, add a "const" attribute.
7379
73802008-06-27  Pádraig Brady  <P@draigBrady.com>
7381
7382	timeout: fix invalid argument tests
7383	* tests/misc/timeout-parameters: Remove test for invalid
7384	signal number (we don't know what signal numbers are
7385	invalid on all systems). Also tweak the other invalid
7386	signal check so that the rest of the arguments are correct.
7387
73882008-06-27  Jim Meyering  <meyering@redhat.com>
7389
7390	avoid a -Wsign-compare warning
7391	* src/tee.c (tee_files): Swap fwrite's size/n_elem args and
7392	compare the return value against "1".
7393
7394	base64: don't rely on feof returning 0/1
7395	* src/base64.c (do_decode): feof is specified to return nonzero,
7396	not 0/1, so use "k < 1 + !!feof(in)" as the loop termination test.
7397
73982008-06-27  Pádraig Brady  <P@draigBrady.com>
7399
7400	truncate: silence -Wsign-compare warnings
7401	* src/truncate.c: Cast signed to unsigned to
7402	confirm intent which will silence -Wsign-compare warnings
7403
74042008-06-27  Jim Meyering  <meyering@redhat.com>
7405
7406	factor out time_t-to-string conversion idiom
7407	* src/system.h: Include "inttostr.h".
7408	(timetostr): New function, factored out of...
7409	* src/date.c (show_date): Use timetostr.
7410	* src/du.c (show_date): Likewise.
7411	* src/ls.c (print_long_format): Likewise.
7412	* src/pinky.c (time_string): Likewise.
7413	* src/stat.c (human_time): Likewise.
7414	* src/*.c: Don't include inttostr.h, since system.h does.
7415	* src/c99-to-c89.diff: Adjust offsets.
7416
74172008-06-27  Pádraig Brady  <P@draigBrady.com>
7418
7419	truncate: Fix integer portability issues
7420	* src/truncate.c: Explicitly convert from off_t to intmax_t
7421	when printing numbers as they may be different types.
7422	Also don't mix size_t and off_t types in operations as
7423	the latter will be promoted to unsigned when these types
7424	are the same size.
7425
74262008-06-26  Jim Meyering  <meyering@redhat.com>
7427
7428	tests: adjust c99-to-c89 patch as well as the code to generate it
7429	* maint.mk (patch-check) [REGEN_PATCH]: Trim some trailing blanks.
7430	* src/c99-to-c89.diff: Adjust shred.c offsets.
7431
7432	tests: fix make distcheck failure due to TODO change
7433	* maint.mk (po-check): Limit check for e.g., _(...)-marked
7434	messages to files matching *.? and *.??, thus excluding TODO
7435	and *.diff.
7436
7437	* TODO: Add item: remove uses of imaxtostr.
7438
74392008-06-26  Peter O'Gorman  <bug-coreutils@mlists.thewrittenword.com>
7440
7441	tests: accommodate difference in an AIX 5.3 diagnostic
7442	* tests/mkdir/selinux: Handle different strerror (ENOTSUP) spelling.
7443
74442008-06-26  Jim Meyering  <meyering@redhat.com>
7445
7446	shred: also ignore EISDIR upon failed fsync/fdatasync on HP-UX
7447	* src/shred.c (ignorable_sync_errno): New function.
7448	(dosync): Use it.
7449	Based on a patch from Peter O'Gorman.
7450
7451	* HACKING: use shorter "-1" (over HEAD~1) with git format-patch
7452
7453	bootstrap.conf: don't list "open" specifically
7454	It is no longer necessary to list it specifically,
7455	now that several gnulib modules depend on the "open" module.
7456	This reverts commit 3ea1fe588e20f196cc9b9907d5943bd620c6b944.
7457
7458	truncate: handle the case in which off_t != intmax_t
7459	* src/truncate.c (parse_len): Use a temporary of type intmax_t,
7460	rather than off_t; detect out of range [OFF_T_MIN..OFF_T_MAX].
7461	(main) [IF_LINT]: Initialize, to avoid an unwarranted
7462	"may be used uninitialized" warning.
7463	Reported by Michael Geng.
7464
74652008-06-23  Jim Meyering  <meyering@redhat.com>
7466
7467	basename: List David MacKenzie as the author.
7468	* src/basename.c (AUTHORS): List David as the author.
7469	* AUTHORS: Update here, too.
7470
74712008-06-23  Ondřej Vašík  <ovasik@redhat.com>
7472
7473	echo: use AUTHORS from bash's built-in echo
7474	* AUTHORS,src/echo.c: Use bash builtin echo authors instead of FIXME unknown
7475
74762008-06-22  Jim Meyering  <meyering@redhat.com>
7477
7478	use gnulib's "open" module
7479	* bootstrap.conf (gnulib_modules): Add open.
7480	This is required at least for Solaris 9 and HP-UX 11, to
7481	avoid a truncate test failure.  For details, see this thread:
7482	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13755
7483
7484	stat: warn that the --context (-Z) option (a no-op) is obsolete
7485	* src/stat.c (main): It will be removed in a couple years.
7486	* NEWS (Change in behavior): Mention this.
7487
74882008-06-20  Jim Meyering  <meyering@redhat.com>
7489
7490	make "make syntax-check" quieter
7491	* maint.mk (po-check, makefile-check, sc_proper_name_utf8_requires_ICONV):
7492	Add "@" prefix.
7493
74942008-06-20  Bo Borgerson  <gigabo@gmail.com>
7495
7496	sort: Fix bug where --batch-size option shrank SORT_SIZE.
7497	* src/sort.c (specify_nmerge, main): Only adjust SORT_SIZE if it's already set.
7498	* tests/misc/sort-merge: Test bug fix.
7499
75002008-06-19  Jim Meyering  <meyering@redhat.com>
7501
7502	tests: avoid test failure when root's primary group-ID is not 0
7503	* tests/cp/preserve-gid: Expect a cp-without-`-p'-created file to
7504	have a group ID of $(id -g).  Reported by Jarod Wilson.  Details in
7505	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837
7506
7507	tests: avoid root-only test failure when run in a chroot
7508	* tests/misc/runcon-no-reorder: Accept the diagnostic that is
7509	produced when running in a chroot without /selinux/context.
7510	Reported by Jarod Wilson.  Details in
7511	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837
7512
75132008-06-18  Jim Meyering  <meyering@redhat.com>
7514
7515	* tests/check.mk: Fix a typo in a comment.
7516
75172008-06-17  Jim Meyering  <meyering@redhat.com>
7518
7519	doc: fix a syntax error
7520	* coreutils.texi (du invocation): Add missing comma.
7521
75222008-06-17  Bo Borgerson  <gigabo@gmail.com>
7523
7524	sort: accept new option --batch-size=NMERGE
7525	* src/sort.c: (static unsigned int nmerge) Replace constant NMERGE.
7526	(specify_nmerge) Validate and apply new option.
7527	(mergefps) Replace some arrays with pointers to xnmalloc'd storage.
7528	* tests/misc/sort-merge: Test new option.
7529	* doc/coreutils.texi: Describe new option.
7530	* NEWS: Advertise new option.
7531
7532	sort: add new option --files0-from=F
7533	* src/sort.c: Support new option.
7534	* tests/misc/sort-files0-from: Test new option.
7535	* tests/misc/Makefile.am: Indicate new test.
7536	* docs/coreutils.texi: Explain new option.
7537	* NEWS: Advertise new option.
7538
7539	HACKING: Add section for tips on reducing translator workload.
7540	* HACKING (Be nice to translators): New section.
7541	Add Jim's suggestion to avoid changing translatable strings if possible.
7542
75432008-06-17  Jim Meyering  <meyering@redhat.com>
7544
7545	* THANKS: Add name and email for Carl Roth.
7546
75472008-06-17  Eric Blake  <ebb9@byu.net>
7548
7549	ls, od: avoid redundant const
7550	* src/ls.c (long_time_format, sort_functions): Avoid redundant const.
7551	* src/od.c (charname): Likewise.
7552	* maint.mk (sc_redundant_const): Add rule to detect this.
7553
75542008-06-17  Bo Borgerson  <gigabo@gmail.com>
7555
7556	join: improve memory management
7557	* src/join.c (struct seq): Use a (struct line **) for `lines' rather than
7558	one long (struct line *).  This allows individual lines to be swapped out
7559	if necessary.
7560	(reset_line): Get a line ready for new input.
7561	(init_linep): Create a new line and assign it to the the pointer passed in.
7562	(spareline[2]): Hold a spare line for each input file.
7563	(free_spareline): Clean up.
7564	(get_line): Take a (struct line **) instead of a (struct line *).  If the
7565	line to be overwritten is the previous line for the current file then swap
7566	it out for the spare.
7567	(join): Accomodate new structure of SEQs and new parameters to get_line;
7568	Don't free stale lines until the end -- they're re-usable now.
7569	(dup_line): Remove function.
7570	* NEWS: Mention the performance improvement.
7571
75722008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7573
7574	* doc/coreutils.texi (join invocation): Drop leading blanks.
7575
75762008-06-16  Jim Meyering  <meyering@redhat.com>
7577
7578	remove redundant const directives
7579	In 1463824d8e7f72c31f1d803d7cfe2b608ccafc5c, I added some
7580	missing "const" directives, as well as some new, redundant ones.
7581	This removes the redundant ones.  Pointed out by Eric Blake.
7582	* base64.c, cat.c, chcon.c, chgrp.c, chmod.c, chown.c, comm.c:
7583	* cp.c, csplit.c, cut.c, date.c, dd.c, df.c, dircolors.c, du.c:
7584	* env.c, expand.c, fmt.c, fold.c, groups.c, head.c, id.c:
7585	* install.c, join.c, kill.c, ln.c, ls.c, md5sum.c, mkdir.c:
7586	* mkfifo.c, mknod.c, mktemp.c, mv.c, nice.c, nl.c, od.c:
7587	* paste.c, pathchk.c, pinky.c, pr.c, ptx.c, readlink.c, rm.c:
7588	* rmdir.c, runcon.c, seq.c, shred.c, shuf.c, sort.c, split.c:
7589	* stat.c, stty.c, su.c, sum.c, tac.c, tail.c, tee.c, timeout.c:
7590	* touch.c, tr.c, truncate.c, tty.c, uname.c, unexpand.c, uniq.c:
7591	* wc.c, who.c: Remove redundant const directives.
7592	* maint.mk (sc_const_long_option): Don't require redundant "const".
7593
7594	chcon: correct --verbose output to include newlines
7595	* src/chcon.c (process_file): Append "\n" to --verbose diagnostic.
7596	* tests/misc/chcon: Add a test for the above.
7597	* NEWS: mention the bug fix
7598	Reported by Carl D. Roth in http://bugzilla.redhat.com/451478.
7599
76002008-06-15  Jim Meyering  <meyering@redhat.com>
7601
7602	address root cause of compilation failures:
7603	The affected code wasn't even being compiled on my system,
7604	because HAVE_NL_LANGINFO was not defined.  On other systems, where
7605	vasnprintf.m4 determines it needs %A or %a replacement support, it
7606	_would_ check for nl_langinfo, and expose the compilation failure.
7607	* m4/jm-macros.m4: Check for nl_langinfo, required by sort.c.
7608
7609	fix the compilation failure for real
7610	* src/sort.c (monthtab): Neither "const" may be added.
7611
7612	fix a const-related compilation failure in sort.c
7613	* src/sort.c (monthtab): Remove overzealous "const".
7614	Table entries are modified in an #if HAVE_NL_LANGINFO block.
7615	Introduced by 1463824d8e7f72c31f1d803d7cfe2b608ccafc5c.
7616
7617	update HACKING guidelines
7618	* HACKING: Don't suggest --signoff; it's redundant.
7619	(log requirements): Specify preferred forms.
7620	Mention preference for "<" over ">".
7621	Mention the "const placement" preference.
7622
76232008-06-14  Jim Meyering  <meyering@redhat.com>
7624
7625	run gnulib-tests in parallel
7626	* tests/Makefile.am: Define AUTOMAKE_OPTIONS, so check.mk can append.
7627	* tests/check.mk: Define SUFFIXES, so check.mk can append.
7628	* build-aux/check.mk (SUFFIXES): Append, so as not to evoke
7629	automake warning the prior definition in gnulib-tests/gnulib.mk.
7630	(AUTOMAKE_OPTIONS): Likewise.
7631	* gnulib-tests/Makefile.am (TEST_LOGS): Define.
7632	Include build-aux/check.mk
7633
7634	* maint.mk (sc_proper_name_utf8_requires_ICONV) Fix typo in diagnostic.
7635
7636	add "const" attribute, where possible
7637	* maint.mk (sc_const_long_option): New rule.  Enforce global change.
7638	* src/base64.c (long_options): Use "const" where possible.
7639	* src/cat.c (main): Likewise.
7640	* src/chcon.c (long_options): Likewise.
7641	* src/chgrp.c (long_options): Likewise.
7642	* src/chmod.c (long_options): Likewise.
7643	* src/chown.c (long_options): Likewise.
7644	* src/comm.c (long_options, OUTPUT_DELIMITER_OPTION): Likewise.
7645	* src/cp.c (long_opts): Likewise.
7646	* src/csplit.c (longopts): Likewise.
7647	* src/cut.c (longopts): Likewise.
7648	* src/date.c (long_options): Likewise.
7649	* src/dd.c (conversions, flags, statuses): Likewise.
7650	* src/df.c (long_options): Likewise.
7651	* src/dircolors.c (long_options): Likewise.
7652	* src/du.c (long_options): Likewise.
7653	* src/env.c (longopts): Likewise.
7654	* src/expand.c (longopts): Likewise.
7655	* src/fmt.c (long_options): Likewise.
7656	* src/fold.c (longopts): Likewise.
7657	* src/groups.c (longopts): Likewise.
7658	* src/head.c (long_options): Likewise.
7659	* src/id.c (longopts): Likewise.
7660	* src/install.c (long_options): Likewise.
7661	* src/join.c (longopts): Likewise.
7662	* src/kill.c (long_options): Likewise.
7663	* src/ln.c (long_options): Likewise.
7664	* src/ls.c (long_time_format, long_options, sort_functions): Likewise.
7665	* src/md5sum.c (long_options): Likewise.
7666	* src/mkdir.c (longopts): Likewise.
7667	* src/mkfifo.c (longopts): Likewise.
7668	* src/mknod.c (longopts): Likewise.
7669	* src/mktemp.c (longopts): Likewise.
7670	* src/mv.c (long_options): Likewise.
7671	* src/nice.c (longopts): Likewise.
7672	* src/nl.c (longopts): Likewise.
7673	* src/od.c (charname, long_options): Likewise.
7674	* src/paste.c (longopts): Likewise.
7675	* src/pathchk.c (longopts): Likewise.
7676	* src/pinky.c (longopts): Likewise.
7677	* src/pr.c (long_options): Likewise.
7678	* src/ptx.c (long_options): Likewise.
7679	* src/readlink.c (longopts): Likewise.
7680	* src/rm.c (long_opts): Likewise.
7681	* src/rmdir.c (longopts): Likewise.
7682	* src/runcon.c (long_options): Likewise.
7683	* src/seq.c (long_options): Likewise.
7684	* src/shred.c (long_opts): Likewise.
7685	* src/shuf.c (long_opts): Likewise.
7686	* src/sort.c (monthtab, long_options): Likewise.
7687	* src/split.c (longopts): Likewise.
7688	* src/stat.c (long_options): Likewise.
7689	* src/stty.c (mode_info, control_info, longopts, set_mode) Likewise.
7690	(set_control_char, speeds): Likewise.
7691	* src/su.c (longopts): Likewise.
7692	* src/sum.c (longopts): Likewise.
7693	* src/tac.c (longopts): Likewise.
7694	* src/tail.c (long_options): Likewise.
7695	* src/tee.c (long_options): Likewise.
7696	* src/timeout.c (long_options): Likewise.
7697	* src/touch.c (longopts): Likewise.
7698	* src/tr.c (long_options): Likewise.
7699	* src/truncate.c (longopts): Likewise.
7700	* src/tty.c (longopts): Likewise.
7701	* src/uname.c (uname_long_options, arch_long_options): Likewise.
7702	* src/unexpand.c (longopts): Likewise.
7703	* src/uniq.c (longopts): Likewise.
7704	* src/wc.c (longopts): Likewise.
7705	* src/who.c (longopts): Likewise.
7706
7707	revert previous change, "don't use "const" with scalar types"
7708	* src/truncate.c: There is nothing wrong with that construct.
7709	This reverts commit d7d80c5b7b122377fe250357a3ab182e8fbde20a.
7710
7711	don't use "const" with scalar types
7712	* src/truncate.c: Several vendor compilers reject that.
7713	See http://article.gmane.org/gmane.comp.lib.gnulib.bugs/13876
7714
77152008-06-13  Eric Blake  <ebb9@byu.net>
7716
7717	od: improve handling of padding
7718	* src/od.c (decode_one_format): Alter the format, again.
7719	(FMT_BYTES_ALLOCATED): Reduce size by adjusting to new format.
7720	(MAX_INTEGRAL_TYPE_SIZE): Move earlier in the file.
7721	(charname): Turn it into a 2D array, since there's no need for
7722	pointers now.
7723	(PRINT_TYPE, print_named_ascii, print_ascii): Add a width
7724	parameter.
7725	(write_block): Account for width parameter.
7726	Using ideas from Paul Eggert.
7727
7728	od: align multiple -t specs
7729	* src/od.c (struct tspec): Add pad_width field, and adjust
7730	print_function prototype.
7731	(decode_one_format): Rewrite all fmt_string values to account for
7732	pad width.
7733	(FMT_BYTES_ALLOCATED): Adjust to new format style.
7734	(main): Compute pad width per spec.
7735	(write_block): Account for pad width.
7736	(dump): Don't print padding-only fields.
7737	(PRINT_TYPE, print_named_ascii, print_ascii): All print functions
7738	adjusted to use variable pad width.
7739	* tests/Makefile.am (TESTS): Add test.
7740	* tests/misc/od-multiple-t: New file.
7741	* THANKS: Update.
7742	* NEWS: Mention the improvement.
7743	Reported by Gary Johnson.
7744
7745	od: use gnulib printf replacement as necessary
7746	* src/od.c (includes): Add xprintf.h.
7747	(PRINT_TYPE): New macro, using xprintf instead of printf.
7748	(print_s_char, print_char, print_s_short, print_short, print_int)
7749	(print_long, print_long_long, print_float, print_double)
7750	(print_long_double): Factor into PRINT_TYPE macro.
7751	(print_named_ascii, print_ascii): Use xprintf.
7752	* NEWS: Mention this as a bug fix.
7753
7754	od: simplify long double support
7755	* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove obsolete check for
7756	AC_C_LONG_DOUBLE.
7757	* src/od.c (LONG_DOUBLE): Delete.
7758	(width_bytes, MAX_FP_TYPE_SIZE, decode_one_format, main): Just use
7759	'long double' directly.
7760	(print_long_double): No longer protect by HAVE_LONG_DOUBLE.
7761
7762	doc: od defaults to -toS, not -td2
7763	* src/od.c (usage): Correct description of default.
7764
77652008-06-13  Jim Meyering  <meyering@redhat.com>
7766
7767	skip (don't fail) root-only tests for common set-up failures
7768	Address 2 of 4 failures reported by Jarod Wilson in
7769	http://bugzilla.redhat.com/442352.  More details here:
7770	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803
7771	* tests/cp/cp-a-selinux: Skip the test if "mkfs -t ext2" fails.
7772	* tests/rm/fail-2eperm: Skip the test if "rm" is not accessible.
7773
77742008-06-12  Jim Meyering  <meyering@redhat.com>
7775
7776	tweak to conform with syntax policy
7777	Use "<" or "<=" rather than ">" or ">=".
7778	Use "Type const *", rather than "const Type *".
7779
77802008-06-12  Bo Borgerson  <gigabo@gmail.com>
7781
7782	comm: accept new option: --output-delimiter=STR
7783	* src/comm.c (delimiter): New global.
7784	(writeline): Use delimiter string instead of single TAB character.
7785	(main): Initialize delimiter.
7786	* tests/misc/comm: Add tests for comm output delimiter specification.
7787	* doc/coreutils.texi: Document new option.
7788	* NEWS: Advertise new option.
7789	* TODO: Remove associated item.
7790
7791	comm: ensure that input files are sorted
7792	* NEWS: List new behavior.
7793	* doc/coreutils.texi (checkOrderOption) New macro for
7794	describing `--check-order' and `--nocheck-order', used in
7795	both join and comm.
7796	* src/comm.c (main): Initialize new options.
7797	(usage): Describe new options.
7798	(compare_files): Keep an extra pair of buffers for the previous
7799	line from each file to check the internal order.
7800	(check_order): If an order-check is required, compare and handle
7801	the result appropriately.
7802	(copylinebuffer): Copy a linebuffer; used for copy before read.
7803	* tests/misc/Makefile.am: List new test.
7804	* tests/misc/comm: Tests for the comm program, including the
7805	new order-checking functionality and attendant command-line options.
7806
78072008-06-11  Jim Meyering  <meyering@redhat.com>
7808
7809	fix another unportable use of 'tr'
7810	* configure.ac [EXTRA_PROGRAMS]: Add omitted space in tr's STRING2.
7811	Spotted by Denis Excoffier, upon Solaris 8 build failure.
7812
7813	tests: skip a chown test on FreeBSD 6.x
7814	* tests/chown/separator: Skip this test if is likely to fail
7815	due to the combination of a bogus group name and a broken
7816	getgrnam function.
7817
7818	tests: remove duplicate mention of misc/selinux
7819	* tests/Makefile.am (TESTS): Remove misc/selinux, since it's
7820	already listed in $(root_tests).
7821
78222008-06-11  Bruno Haible  <bruno@clisp.org>
7823
7824	fix build failure on AIX 4
7825	* configure.ac: Fix unportable invocation of 'tr', introduced on
7826	2008-04-22.  Affects tr from at least AIX 4.3.2.
7827
78282008-06-10  Pádraig Brady  <P@draigBrady.com>
7829
7830	remove test for specific diagnostic when truncating missing directory
7831	Solaris 10 returns ENOTDIR when truncating a nonexistent directory,
7832	whereas Linux returns EISDIR (because it has a trailing /).
7833	* tests/misc/truncate-fail-diag: Remove the test for the specific error.
7834
7835	timeout: use system-independent exit values
7836	Change exit values from ETIMEDOUT and ECANCELED,
7837	the values of which are system dependent, to
7838	124 and 125 respectively.
7839	* src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Define.
7840	(usage, main): Adjust.
7841	* coreutils.texi (timeout invocation): Update.
7842	* tests/misc/timeout: Adjust.
7843
78442008-06-09  Jim Meyering  <meyering@redhat.com>
7845
7846	enforce the proper_name_utf8-requires-ICONV link rule
7847	* maint.mk (sc_proper_name_utf8_requires_ICONV): New rule.
7848	* src/Makefile.am (timeout_LDADD, truncate_LDADD): Add $(LIBICONV).
7849
78502008-06-09  Bruno Haible  <bruno@clisp.org>
7851
7852	* NEWS (Improvements): Mention improved (via gnulib) ACL support.
7853
78542008-06-08  Jim Meyering  <meyering@redhat.com>
7855
7856	maint.mk: my-distcheck runs $(MAKE) syntax-check once again
7857	* maint.mk (my-distcheck): Run $(MAKE) syntax-check once again.
7858	Run "$(MAKE) check" _after_ the less expensive syntax-check.
7859
78602008-06-08  Bo Borgerson  <gigabo@gmail.com>
7861
7862	standardize some error messages
7863	* maint.mk: (sc_error_message_warn_fatal, sc_error_message_uppercase):
7864	(sc_error_message_period): Add automatic checks for non-standard error
7865	messages.
7866	* .x-sc_error_message_uppercase: explicit exclusion for this check
7867	* src/cp.c: Standardize some error messages.
7868	* src/date.c: Likewise.
7869	* src/dircolors.c: Likewise.
7870	* src/du.c: Likewise.
7871	* src/expr.c: Likewise.
7872	* src/install.c: Likewise.
7873	* src/join.c: Likewise.
7874	* src/ln.c: Likewise.
7875	* src/mv.c: Likewise.
7876	* src/od.c: Likewise.
7877	* src/pr.c: Likewise.
7878	* src/split.c: Likewise.
7879	* src/truncate.c: Likewise.
7880	* src/wc.c: Likewise.
7881	* tests/du/files0-from: Expect new error message.
7882	* tests/misc/join: Likewise.
7883	* tests/misc/split-a: Likewise.
7884	* tests/misc/wc-files0-from: Likewise.
7885	* tests/misc/xstrtol: Likewise.
7886	* lib/xmemxfrm.c: Likewise.
7887
78882008-06-08  Jim Meyering  <meyering@redhat.com>
7889
7890	syntax-check: detect anachronistic Perl-based tests
7891	* maint.mk (sc_no_exec_perl_coreutils): Rename and rewrite.
7892
78932008-06-06  Pádraig Brady  <P@draigBrady.com>
7894
7895	Add new program: truncate
7896	* AUTHORS: Register as the author
7897	* NEWS: Mention this change
7898	* README: Add truncate command to list
7899	* src/truncate.c: New command
7900	* src/Makefile.am: Add truncate command to list to build
7901	* src/.gitignore: Add truncate binary to list to ignore
7902	* doc/coreutils.texi (truncate invocation): Add truncate info
7903	* man/Makefile.am: Add truncate man page to list to build
7904	* man/truncate.x: Add truncate man page template
7905	* po/POTFILES.in: Add truncate to list to translate
7906	* tests/Makefile.am: Add truncate tests
7907	* tests/misc/help-version: Add support for new truncate command
7908	* tests/misc/truncate-dangling-symlink: check dangling link ok
7909	* tests/misc/truncate-dir-fail: ensure dirs fail
7910	* tests/misc/truncate-fail-diag: validate messages for missing paths
7911	* tests/misc/truncate-fifo: ensure fifos ignored
7912	* tests/misc/truncate-no-create-missing: ensure -c option honoured
7913	* tests/misc/truncate-overflow: check signed integer overflows
7914	* tests/misc/truncate-owned-by-other: root permissions check
7915	* tests/misc/truncate-parameters: check invalid parameter combinations
7916	* tests/misc/truncate-relative: check invalid relative sizes
7917
79182008-06-06  Eric Blake  <ebb9@byu.net>
7919
7920	improve 'date +%C' documentation
7921	* src/date.c (usage): Use 20, not 21, for current century.
7922	* THANKS: Update.
7923	Reported by Dameon G. Rogers, fix suggested by Philip Rowlands.
7924
79252008-06-03  Jim Meyering  <meyering@redhat.com>
7926
7927	nice.c: avoid a cast
7928	* src/nice.c (main): Use argv[0], rather than
7929	"program_name with a cast".  Suggestion from Eric Blake.
7930
7931	adjust c99-to-c89 patch as well as the code to generate it
7932	* maint.mk (patch-check) [REGEN_PATCH]: Eliminate date-related
7933	differences in generated diffs.
7934	* src/c99-to-c89.diff: Adjust offsets.
7935
7936	use gnulib's progname module
7937	* bootstrap.conf (gnulib_modules): Add progname.
7938	* src/*.c (program_name): Remove declaration.
7939	* (main): Call set_program_name rather than setting program_name.
7940	* src/nice.c (main): Cast program_name to "(char *)".
7941	* src/prog-fprintf.c: Include "system.h"
7942	* src/system.h: Include "progname.h".
7943	* maint.mk (sc_program_name): Adjust rule.
7944	Suggestion from Eric Blake.
7945
7946	remove duplicate definition of matchpathcon_init_prefix
7947	* gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Remove definition.
7948	It is already defined there.  Reported by Eric Blake.
7949
79502008-06-02  Jim Meyering  <meyering@redhat.com>
7951
7952	fix cpp indentation policy violations
7953	* src/copy.c (mkfifo): Indent nested "# define".
7954	* src/timeout.c (ECANCELED): Likewise.
7955
7956	accommodate older SELinux which lacks matchpathcon_init_prefix
7957	* m4/jm-macros.m4: Check for matchpathcon_init_prefix.
7958	* src/install.c [!HAVE_MATCHPATHCON_INIT_PREFIX]
7959	(matchpathcon_init_prefix): Define away.
7960	* gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define.
7961	Reported by Ilya N. Golubev in
7962	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13686>.
7963
7964	each file with a "main" must also declare program_name
7965	* maint.mk (sc_program_name): New rule.
7966	* .x-sc_program_name: New file.
7967	* Makefile.am (EXTRA_DIST): Add .x-sc_program_name.
7968
7969	declare program_name consistently
7970	* src/base64.c: Likewise.
7971	* src/basename.c: Likewise.
7972	* src/cat.c: Likewise.
7973	* src/chcon.c: Likewise.
7974	* src/chgrp.c: Likewise.
7975	* src/chmod.c: Likewise.
7976	* src/chown.c: Likewise.
7977	* src/chroot.c: Likewise.
7978	* src/cksum.c: Likewise.
7979	* src/comm.c: Likewise.
7980	* src/cp.c: Likewise.
7981	* src/csplit.c: Likewise.
7982	* src/cut.c: Likewise.
7983	* src/date.c: Likewise.
7984	* src/dd.c: Likewise.
7985	* src/df.c: Likewise.
7986	* src/dircolors.c: Likewise.
7987	* src/dirname.c: Likewise.
7988	* src/du.c: Likewise.
7989	* src/echo.c: Likewise.
7990	* src/env.c: Likewise.
7991	* src/expand.c: Likewise.
7992	* src/expr.c: Likewise.
7993	* src/factor.c: Likewise.
7994	* src/fmt.c: Likewise.
7995	* src/fold.c: Likewise.
7996	* src/groups.c: Likewise.
7997	* src/head.c: Likewise.
7998	* src/hostid.c: Likewise.
7999	* src/hostname.c: Likewise.
8000	* src/id.c: Likewise.
8001	* src/install.c: Likewise.
8002	* src/join.c: Likewise.
8003	* src/kill.c: Likewise.
8004	* src/link.c: Likewise.
8005	* src/ln.c: Likewise.
8006	* src/logname.c: Likewise.
8007	* src/ls.c: Likewise.
8008	* src/md5sum.c: Likewise.
8009	* src/mkdir.c: Likewise.
8010	* src/mkfifo.c: Likewise.
8011	* src/mknod.c: Likewise.
8012	* src/mktemp.c: Likewise.
8013	* src/mv.c: Likewise.
8014	* src/nice.c: Likewise.
8015	* src/nl.c: Likewise.
8016	* src/nohup.c: Likewise.
8017	* src/od.c: Likewise.
8018	* src/paste.c: Likewise.
8019	* src/pathchk.c: Likewise.
8020	* src/pinky.c: Likewise.
8021	* src/pr.c: Likewise.
8022	* src/printenv.c: Likewise.
8023	* src/printf.c: Likewise.
8024	* src/ptx.c: Likewise.
8025	* src/pwd.c: Likewise.
8026	* src/readlink.c: Likewise.
8027	* src/rm.c: Likewise.
8028	* src/rmdir.c: Likewise.
8029	* src/runcon.c: Likewise.
8030	* src/seq.c: Likewise.
8031	* src/setuidgid.c: Likewise.
8032	* src/shuf.c: Likewise.
8033	* src/sleep.c: Likewise.
8034	* src/sort.c: Likewise.
8035	* src/split.c: Likewise.
8036	* src/stat.c: Likewise.
8037	* src/stty.c: Likewise.
8038	* src/su.c: Likewise.
8039	* src/sum.c: Likewise.
8040	* src/sync.c: Likewise.
8041	* src/tac.c: Likewise.
8042	* src/tail.c: Likewise.
8043	* src/tee.c: Likewise.
8044	* src/test.c: Likewise.
8045	* src/timeout.c: Likewise.
8046	* src/touch.c: Likewise.
8047	* src/tr.c: Likewise.
8048	* src/true.c: Likewise.
8049	* src/tsort.c: Likewise.
8050	* src/tty.c: Likewise.
8051	* src/uname.c: Likewise.
8052	* src/unexpand.c: Likewise.
8053	* src/uniq.c: Likewise.
8054	* src/unlink.c: Likewise.
8055	* src/uptime.c: Likewise.
8056	* src/users.c: Likewise.
8057	* src/wc.c: Likewise.
8058	* src/who.c: Likewise.
8059	* src/whoami.c: Likewise.
8060	* src/yes.c: Likewise.
8061
80622008-06-02  Eric Blake  <ebb9@byu.net>
8063
8064	export program_name, required by gnulib
8065	* src/timeout.c (program_name): Export.
8066
80672008-06-02  Jim Meyering  <meyering@redhat.com>
8068
8069	revert inadvertent change in last patch
8070	* configure.ac (AM_INIT_AUTOMAKE): Restore accidentally-modified
8071	options.  Spotted by Eric Blake.
8072
80732008-06-02  Pádraig Brady  <P@draigBrady.com>
8074
8075	new program: timeout
8076	* AUTHORS: Register as the author.
8077	* NEWS: Mention this change.
8078	* README: Add timeout command to list.
8079	* src/timeout.c: New file.
8080	* src/kill.c (operand2sig): Move function to its own file,
8081	now that timeout.c will also use it.
8082	* src/operand2sig.c (operand2sig): New file, extracted from kill.c.
8083	* src/operand2sig.h (operand2sig): Declare.
8084	* src/Makefile.am (EXTRA_PROGRAMS): Add timeout.
8085	* src/.gitignore: Add timeout binary to list to ignore.
8086	* doc/coreutils.texi (timeout invocation): Add timeout info.
8087	(Signal specifications): New section, also referenced by kill.
8088	* man/Makefile.am (timeout.1): Add dependency.
8089	* man/timeout.x: New file.
8090	* po/POTFILES.in: Add timeout.c and operand2sig.c to list to translate.
8091	* tests/Makefile.am (TESTS): Add the two new tests.
8092	* tests/misc/help-version: Add support for new timeout command.
8093	* tests/misc/invalid-opt: Add support for new timeout command.
8094	* tests/misc/timeout: New file: check basic timeout operation.
8095	* tests/misc/timeout-parameters: New file: check invalid parameter
8096	combinations.
8097
80982008-06-02  Jim Meyering  <meyering@redhat.com>
8099
8100	spell author names consistently
8101	* src/comm.c (AUTHORS): Use RMS' middle initial.
8102	* src/ls.c (AUTHORS): Likewise.
8103	* src/rm.c (AUTHORS): Likewise.
8104	* src/uniq.c (AUTHORS): Likewise.
8105	* src/cut.c (AUTHORS): Use David M. Ihnat's middle initial.
8106	* AUTHORS: Update to match.
8107	Reported by Michael Piefel.
8108
81092008-06-01  Simon Josefsson  <simon@josefsson.org>
8110
8111	doc: adjust base64 documentation
8112	* coreutils.texi (base64 invocation): Use RFC 4648 as the specification.
8113	Move the URL down a bit in the text.
8114
81152008-06-01  Erik Auerswald  <auerswal@unix-ag.uni-kl.de>
8116
8117	md5sum: new option, --quiet, to suppress OK messages
8118	sha1sum, sha224sum, sha384sum, and sha512sum accept it, too.
8119	* src/md5sum.c: add option --quiet to suppress OK messages
8120	* doc/coreutils.texi: document option --quiet
8121	* tests/misc/md5sum: add test for option --quiet
8122	* NEWS: mention new option --quiet for md5sum+sha*sum in "New
8123	  features" section
8124
81252008-06-01  Jim Meyering  <meyering@redhat.com>
8126
8127	add rules to commit three post-release changes automatically
8128	* maint.mk (noteworthy): Define.
8129	(emit-commit-log): Define.
8130	(alpha beta major): Also update NEWS and cfg.mk automatically,
8131	and commit all three changes at once.
8132
8133	update old_NEWS_hash
8134	* cfg.mk (old_NEWS_hash): Update by running "make update-NEWS-hash".
8135	Reported by Erik Auerswald.
8136
81372008-06-01  Simon Josefsson  <simon@josefsson.org>
8138
8139	src/base64.c: Improve comments.
8140
81412008-06-01  Jim Meyering  <meyering@redhat.com>
8142
8143	* NEWS: add header line for next release
8144
8145	adjust format of .prev-version commit message
8146	* maint.mk (alpha beta major): Start with "*", omit version number.
8147
8148	* .prev-version: Record previous version.
8149
81502008-05-31  Jim Meyering  <meyering@redhat.com>
8151
8152	Version 6.12.
8153	* NEWS: Record release date.
8154
8155	install: reenable matchpathcon-related code
8156	The underlying performance problem is being dealt with in Automake
8157	by limiting the number of install invocations, and in SELinux with
8158	incremental changes as well as a potential new implementation.
8159	* src/Makefile.am (ginstall_CPPFLAGS) [ENABLE_MATCHPATHCON]: Define.
8160	* src/install.c [ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]:
8161	Rename to ENABLE_MATCHPATHCON.
8162	* NEWS: mention this change
8163
81642008-05-30  Jim Meyering  <meyering@redhat.com>
8165
8166	configure.ac: remove explicit use of AB_INIT
8167	* configure.ac: Don't invoke AB_INIT directly, now that it's
8168	done automatically via gl_INIT.
8169
8170	tests: ignore known failure on all Darwin 8.x / Mac OS X v10.4.x
8171	* tests/chgrp/basic: Update comment and host_triplet version test.
8172
8173	tests: avoid failure with older version of Perl's File::Temp
8174	* tests/CuTmpdir.pm (import): Use &File::Temp::cleanup only
8175	if it is defined.  Reported by Bruno Haible in
8176	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13652
8177
8178	NEWS: mention that cp -p copies permissions more portably
8179	Based on wording suggested by Bruno Haible.
8180
81812008-05-29  Jim Meyering  <meyering@redhat.com>
8182
8183	improve description of du's--separate-dirs option
8184	* coreutils.texi (du invocation): Prompted by Volker Badziong's
8185	report in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13646
8186
8187	du.c: tiny cleanup (no semantic change)
8188	* src/du.c (process_file): Use "file", rather than
8189	equivalent "ent->fts_path".
8190
81912008-05-27  Jim Meyering  <meyering@redhat.com>
8192
8193	in 280+ tests/* files, use $srcdir, not $top_srcdir/tests
8194
8195	prefer abs_srcdir over abs_top_srcdir, ...
8196	so that e.g., tests/* may refer to absolute names without
8197	hard-coding the name of the containing directory (tests/, here).
8198	* tests/check.mk (TESTS_ENVIRONMENT): Define abs_srcdir.
8199	* tests/pr/pr-tests: Use $abs_srcdir/pr not $abs_top_srcdir/tests/pr.
8200	* tests/chmod/c-option: Use $abs_srcdir, not $abs_top_srcdir/tests.
8201	* tests/cp/cp-parents: Likewise.
8202	* tests/mkdir/parents: Likewise.
8203	* tests/mkdir/perm: Likewise.
8204	* tests/mv/acl: Likewise.
8205	* tests/mv/backup-is-src: Likewise.
8206	* tests/mv/hard-link-1: Likewise.
8207	* tests/mv/into-self-2: Likewise.
8208	* tests/mv/leak-fd: Likewise.
8209	* tests/mv/mv-special-1: Likewise.
8210	* tests/mv/part-fail: Likewise.
8211	* tests/mv/part-hardlink: Likewise.
8212	* tests/mv/part-rename: Likewise.
8213	* tests/mv/part-symlink: Likewise.
8214	* tests/mv/partition-perm: Likewise.
8215	* tests/mv/sticky-to-xpart: Likewise.
8216	* tests/mv/to-symlink: Likewise.
8217	* tests/rm/one-file-system: Likewise.
8218	* tests/sample-test: Likewise.
8219
8220	tests: generalize my-distcheck
8221	* maint.mk (my-distcheck): Accommodate missing gnulib-tests.
8222
82232008-05-26  Jim Meyering  <meyering@redhat.com>
8224
8225	reflect renaming of acl.c in gnulib
8226	* POTFILES.in: s/acl.c/set-mode-acl.c/
8227
8228	test installation results more thoroughly
8229	* maint.mk (my-distcheck): Ensure that properly-named binaries
8230	are installed.  Also check all man pages, except [.1.
8231	Move configure-time --prefix= to install-time prefix=.
8232	(my-instcheck, install-transform-check): Define.
8233
8234	install many binaries at once, when possible
8235	* src/Makefile.am (install-exec-am): Override the standard
8236	automake-generated target, so we can decide whether to use
8237	the usual install-one-by-one rule, or whether we can use
8238	the new install-many-at-once rule:
8239	(cu-install-binPROGRAMS): New rule.
8240
8241	* src/runcon.c: Add copyright comment.
8242
8243	adjust AUTHORS and check-AUTHORS rule to accommodate
8244	* AUTHORS: Add coding: utf-8 comment at end.
8245	Spell François' and Torbjörn's names properly.
8246	* src/Makefile.am: Parse AUTHORS file more carefully.
8247	Use perl to join now-split lines.
8248	Use en_US.UTF-8 to generate --version output.
8249
8250	* src/c99-to-c89.diff: Adjust offsets.
8251
8252	adjust copyright dates
8253
8254	convert the rest to use proper_name -- manually
8255	* src/base64.c (AUTHORS): Rename from AUTHOR, for consistency.
8256
8257	convert 3-author programs to use proper_name
8258	g grep -E -l 'define AUTHORS "[^,]+", "[^,]+", "[^,]+"$'|xargs perl -pi -e \
8259	  's/(define AUTHORS) ("[^,]+"), ("[^,]+"), ("[^,]+")$/$1 \\\n  proper_name ($2), \\\n  proper_name ($3), \\\n  proper_name ($4)/'
8260
8261	convert 2-author programs to use proper_name
8262	g grep -E -l 'define AUTHORS "[^,]+", "[^,]+"$'|xargs perl -pi -e \
8263	  's/(define AUTHORS) ("[^,]+"), ("[^,]+")$/$1 \\\n  proper_name ($2), \\\n  proper_name ($3)/'
8264
8265	convert single-author programs to use proper_name
8266	g grep -E -l 'define AUTHORS "[^,]+"$'|xargs perl -pi -e \
8267	  's/(define AUTHORS) ("[^,]+")$/$1 proper_name ($2)/'
8268
8269	use gnulib's proper_name_utf8 function, but *not* proper_name
8270	* bootstrap.conf (gnulib_modules): Add propername.
8271	(XGETTEXT_OPTIONS): Add options to tell xgettext about the functions.
8272	* src/cat.c, src/cp.c, src/df.c, src/du.c, src/split.c:
8273	Mark Torbjörn Granlund's name.
8274	* src/ptx.c: Mark François Pinard's name.
8275	Use "TRANSLATORS:" comment marker, rather than "Note to translators:".
8276	* src/system.h: Include propername.h.
8277	(proper_name): Define away.
8278	* src/Makefile.am (cat_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD):
8279	Initialize, so we can...
8280	(cat_LDADD, cp_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD):
8281	...Use "+=" to append $(LIBICONV) for each program that uses
8282	proper_name_utf8.
8283
82842008-05-24  Jim Meyering  <meyering@redhat.com>
8285
8286	* POTFILES.in: Add lib/copy-acl.c.
8287
82882008-05-20  Jim Meyering  <meyering@redhat.com>
8289
8290	install: avoid a leak in currently-ifdef'd-out code
8291	* src/install.c (setdefaultfilecon)
8292	[ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]:
8293	Call matchpathcon_init_prefix only once.
8294	Suggestion from Stephen Smalley.  Reported by Ben Webb in
8295	<http://bugzilla.redhat.com/447410>.
8296
82972008-05-19  Jim Meyering  <meyering@redhat.com>
8298
8299	use gnulib's base64 module, now that it's sync'd to match this one
8300	* gl/lib/base64.c: Remove file.
8301	* gl/lib/base64.h: Remove file.
8302
83032008-05-19  Pádraig Brady  <P@draigBrady.com>
8304
8305	doc: clarify field delimiter description in uniq --help output
8306	* src/uniq.c: Clarify in help output that field delimiters are
8307	blanks and not the larger set of whitespace characters.
8308
83092008-05-17  Jim Meyering  <meyering@redhat.com>
8310
8311	tests: skip when a debian libc6-2.7-11 bug makes printf segfault
8312	* tests/misc/printf-surprise: Detect case of a low-memory-provoked
8313	segfault and skip the test (this is actually a bug in snprintf).
8314	For details, see http://bugs.debian.org/481543
8315
8316	tests: sync and update wc and du --files0-from tests
8317	* tests/du/files0-from: Sync from tests/misc/wc-files0-from.
8318	(minus-in-minus): New test.
8319	Adjust for new diagnostics.
8320	* tests/misc/wc-files0-from: Adjust for new diagnostics.
8321
8322	du, wc: merge improved --files0-from=F-related diagnostics
8323	du gave a better diagnostic for one unusual case,
8324	and wc gave a better diagnostic for a different one.
8325	Now each diagnoses both unusual cases.
8326	* src/du.c (main): Disallow '-' as file name when reading from stdin.
8327	* src/wc.c (main): Give a better diagnostic for a zero-length file name.
8328
8329	test invalid-option handling in all programs
8330	* tests/Makefile.am (TESTS): Add misc/invalid-opt.
8331	* tests/misc/invalid-opt: New file.
8332
8333	tests: remove ugly /bin/sh wrapper around each perl-based test script
8334	* tests/check.mk (TESTS_ENVIRONMENT): Save and restore TMPDIR around
8335	envvar-check, so that the few scripts that require $TMPDIR don't fail.
8336	This is also good to let a user's default TMPDIR setting be used e.g.,
8337	in the search for an 'other-partition'.
8338	FIXME: this is pretty ugly.  maybe undo it and find a better way.
8339	(TESTS_ENVIRONMENT): Invoke perl scripts with $(PERL), and use -T
8340	if the script requires that.  Otherwise, use $(SHELL).
8341
8342	* tests/misc/md5sum-newline: Create a file whose name contains
8343	a newline in Perl (resort to using "system", since open refuses).
8344
8345	Fix old brokenness exposed by this change:
8346	* tests/du/files0-from: Correct test not to rely on stdin
8347	being attached to a non-tty.
8348	* tests/misc/sort (3g, 3h, 3i): Likewise: add explicit empty input file.
8349	Avoid warnings about using qw()-around-commas.
8350
8351	* tests/rm/fail-eperm: Now that this test is run from a temporary
8352	subdirectory, adjust the full name of the "rm" program we're going
8353	to run.
8354
8355	Change #!/bin/sh to #!/usr/bin/perl, and factor out the few lines
8356	of boilerplate code to invoke perl.  Do not "require 5.00x";
8357	a configure-time Perl test handles that
8358	* tests/dd/skip-seek:
8359	* tests/misc/base64:
8360	* tests/misc/basename:
8361	* tests/misc/cut:
8362	* tests/misc/date:
8363	* tests/misc/dircolors:
8364	* tests/misc/dirname:
8365	* tests/misc/expand:
8366	* tests/misc/expr:
8367	* tests/misc/factor:
8368	* tests/misc/fmt:
8369	* tests/misc/fold:
8370	* tests/misc/head:
8371	* tests/misc/head-elide-tail:
8372	* tests/misc/join:
8373	* tests/misc/ls-misc:
8374	* tests/misc/md5sum:
8375	* tests/misc/md5sum-newline:
8376	* tests/misc/mktemp:
8377	* tests/misc/od:
8378	* tests/misc/paste:
8379	* tests/misc/pr:
8380	* tests/misc/printf-cov:
8381	* tests/misc/seq:
8382	* tests/misc/sha1sum:
8383	* tests/misc/sha1sum-vec:
8384	* tests/misc/sha224sum:
8385	* tests/misc/sha256sum:
8386	* tests/misc/sha384sum:
8387	* tests/misc/sha512sum:
8388	* tests/misc/sort-merge:
8389	* tests/misc/stat-printf:
8390	* tests/misc/sum:
8391	* tests/misc/tac:
8392	* tests/misc/tail:
8393	* tests/misc/test:
8394	* tests/misc/test-diag:
8395	* tests/misc/tr:
8396	* tests/misc/tsort:
8397	* tests/misc/tty-eof:
8398	* tests/misc/unexpand:
8399	* tests/misc/uniq:
8400	* tests/misc/wc:
8401	* tests/misc/wc-files0-from:
8402	* tests/misc/xstrtol:
8403	* tests/mv/i-1:
8404	* tests/pr/pr-tests:
8405	* tests/rm/empty-name:
8406	* tests/rm/fail-eperm:
8407	* tests/rm/unreadable:
8408
84092008-05-16  Jim Meyering  <meyering@redhat.com>
8410
8411	tests: allow to run Perl tests more cleanly
8412	Before this change, perl tests were run via a #!/bin/sh script
8413	in which perl was invoked via $(PERL) ... -- - <<\EOF.
8414	That made some stty tests fail due to the way stdin was usurped.
8415	* build-aux/check.mk (am__check_pre): Don't append $(SHELL) to this
8416	nominally automake-internal variable.
8417	* tests/check.mk (TESTS_ENVIRONMENT): Instead, define a shell function
8418	here, and append it to the more user-visible $(TESTS_ENVIRONMENT).
8419
8420	tests: env-related clean up
8421	* tests/Coreutils.pm: tiny clean-up: s/env/env --/
8422	* tests/misc/help-version: Use "env" rather than an absolute file
8423	name prefix.
8424	* tests/misc/printf-surprise: Likewise.
8425
8426	tests: improve coverage of printf.c
8427	* tests/misc/printf-cov: New file.
8428	* tests/Makefile.am (TESTS): Add misc/printf-cov.
8429	* tests/misc/help-version: Use env rather than abs file name prefix.
8430
8431	make HACKING slightly more generic
8432	* HACKING: remove some uses of "coreutils"
8433	Point to git's own SubmittingPatches URL.
8434
84352008-05-15  Bruno Haible  <bruno@clisp.org>
8436
8437	doc: some Unicode characters cannot be specified via \u or \U
8438	* doc/coreutils.texi (printf invocation): Clarify invalid ranges for
8439	Unicode character escape syntax.
8440
84412008-05-11  Jim Meyering  <meyering@redhat.com>
8442
8443	move sha256 and sha512 modules to gnulib
8444	* bootstrap.conf (gnulib_modules) [sha256, sha512]: Add "crypto/"
8445	prefix to module name, now that they come from gnulib.
8446	* gl/lib/sha256.c: Remove file.
8447	* gl/lib/sha256.h: Likewise.
8448	* gl/lib/sha512.c: Likewise.
8449	* gl/lib/sha512.h: Likewise.
8450	* gl/lib/u64.h: Likewise.
8451	* gl/m4/sha256.m4: Likewise.
8452	* gl/m4/sha512.m4: Likewise.
8453	* gl/modules/sha256: Likewise.
8454	* gl/modules/sha512: Likewise.
8455
84562008-05-10  Jim Meyering  <meyering@redhat.com>
8457
8458	now that the last of the mk-script-using tests is gone...
8459	* tests/Makefile.am (EXTRA_DIST): Remove Makefile.am.in and mk-script.
8460	Move/adjust SUBDIRS-related comments.
8461	* tests/Makefile.am.in: Remove file, no longer used.
8462	* tests/mk-script: Likewise.
8463	* bootstrap: Remove coreutils-specific SUBDIRS-related code.
8464
8465	tests: remove directory, tests/join/
8466	* configure.ac (AC_CONFIG_FILES): Remove tests/join/Makefile.
8467	* tests/misc/join: New file, with tests from...
8468	* tests/join/Test.pm: ...here.  Remove file.
8469	* tests/Makefile.am (SUBDIRS): Remove definition.
8470
8471	* tests/misc/tac: Also perform stdin and piped tests.
8472
8473	tests: convert pr tests
8474	* configure.ac (AC_CONFIG_FILES): Remove tests/pr/Makefile.
8475	* tests/Makefile.am (SUBDIRS): Remove pr.
8476	* tests/pr/pr-tests: New file, with tests from...
8477	* tests/pr/Test.pm: ...here.  Remove file.
8478	* tests/Makefile.am (EXTRA_DIST): Add $(pr_data).
8479	(pr_data): List all of the pr's test-related data files.
8480
8481	tests: remove directory, tests/tail/
8482	* configure.ac (AC_CONFIG_FILES): Remove tests/tail/Makefile.
8483	* tests/Makefile.am (SUBDIRS): Remove tail.
8484	* tests/misc/tail: New file, with tests from...
8485	* tests/tail/Test.pm: ...here.  Remove file.
8486
84872008-05-09  Bernhard Marx  <berny@bernhard-marx.de>
8488
8489	doc: improve description of "niceness" values
8490	* doc/coreutils.texi (nice invocation):
8491
84922008-05-09  Jim Meyering  <meyering@redhat.com>
8493
8494	tests: remove directory, tests/sort/
8495	* configure.ac (AC_CONFIG_FILES): Remove tests/sort/Makefile.
8496	* tests/Makefile.am (SUBDIRS): Remove sort.
8497	* tests/misc/sort: New file, with tests from...
8498	* tests/sort/Test.pm: ...here.  Remove file.
8499
85002008-05-08  Bruno Haible  <bruno@clisp.org>
8501
8502	Speed up "wc -m" and "wc -w" in multibyte case.
8503	* src/wc.c: Include mbchar.h.
8504	(wc): New variable in_shift. Use it to avoid calling mbrtowc for most
8505	ASCII characters.  Reported via Jan Engelhardt in
8506	http://bugzilla.novell.com/381873 with discussion here
8507	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13520
8508
85092008-05-08  Jim Meyering  <meyering@redhat.com>
8510
8511	tests: remove directory, tests/tac/
8512	* configure.ac (AC_CONFIG_FILES): Remove tests/tac/Makefile.
8513	* tests/Makefile.am (SUBDIRS): Remove tac.
8514	* tests/misc/tac: Many new tests, from...
8515	* tests/tac/Test.pm: ...here.  Remove file.
8516
8517	tests: remove directory, tests/test/
8518	* configure.ac (AC_CONFIG_FILES): Remove tests/test/Makefile.
8519	* tests/Makefile.am (SUBDIRS): Remove test.
8520	* tests/misc/test: Many new tests, from...
8521	* tests/test/Test.pm: ...here.  Remove file.
8522
8523	tests: Coreutils.pm: support running a program that is a shell built-in
8524	* tests/Coreutils.pm (run_tests): Add support for running a
8525	program like 'test', that is a shell built-in.
8526
85272008-05-06  Jim Meyering  <meyering@redhat.com>
8528
8529	* TODO: Bo Borgerson is rewriting support for cp --recursive
8530
8531	tests: remove directory, tests/tr/
8532	* configure.ac (AC_CONFIG_FILES): Remove tests/tr/Makefile.
8533	* tests/Makefile.am (SUBDIRS): Remove tr.
8534	* tests/misc/tr: Many new tests, from...
8535	* tests/tr/Test.pm: ...here.  Remove file.
8536	* tests/tr/failures: Remove file.
8537	* tests/tr/TODO: Remove file.
8538
8539	tests: skip another test if mcstransd is running
8540	* tests/test-lib.sh (skip_if_mcstransd_is_running_): New function,
8541	extracted from...
8542	* tests/misc/chcon: ...here.  Use function, not open-coded test.
8543	* tests/misc/selinux: Use the function here, too.
8544	Require root, not non-root.
8545	* tests/Makefile.am (root_tests): Add misc/selinux.
8546
8547	tests: translate uniq-z-test-adding code to new framework
8548	* tests/misc/uniq (add-z-variants): New function.
8549	Use it.
8550
8551	tests: remove directory, tests/uniq/
8552	* configure.ac (AC_CONFIG_FILES): Remove tests/uniq/Makefile.
8553	* tests/Makefile.am (SUBDIRS): Remove uniq.
8554	* tests/misc/uniq: Many new tests, from...
8555	* tests/uniq/Test.pm: ...here.  Remove file.
8556
8557	tests: remove directory, tests/cut/
8558	* configure.ac (AC_CONFIG_FILES): Remove tests/cut/Makefile.
8559	* tests/Makefile.am (SUBDIRS): Remove cut.
8560	* tests/misc/cut: Many new tests, from...
8561	* tests/cut/Test.pm: ...here.  Remove file.
8562
8563	tests: remove directory, tests/head/
8564	* configure.ac (AC_CONFIG_FILES): Remove tests/head/Makefile.
8565	* tests/Makefile.am (SUBDIRS): Remove head.
8566	* tests/misc/head: New file, derived from ...
8567	* tests/head/Test.pm: ...this.  Remove file.
8568	* tests/head/in: Remove file.
8569	* tests/head/in-1024: Remove file.
8570	* tests/Coreutils.pm (triple_test): New function.
8571
8572	tests: Coreutils.pm improvements
8573	* tests/Coreutils.pm: Allow test names longer than 12.
8574	Print a useful diagnostic for bogus spec entry.
8575
8576	Handle the combination of IN_PIPE and ENV properly.
8577	* tests/Coreutils.pm (run_tests): Put ENV right before command,
8578	not before the "cat INPUT_FILE |" prefix.
8579
8580	tests: move "sparse-file" into test-lib.sh
8581	* tests/sparse-file: Remove file  Move contents into ...
8582	* tests/test-lib.sh (require_sparse_support_): ...here.  New function.
8583	* tests/cp/sparse: Use the function, not the file.
8584	* tests/du/8gb: Likewise.
8585	* tests/Makefile.am (EXTRA_DIST): Remove sparse-file.
8586
8587	tests: move "group-names" into test-lib.sh
8588	* tests/group-names: Remove file  Move contents into ...
8589	* tests/test-lib.sh (require_membership_in_two_groups_): ...here.  New function.
8590	* tests/chgrp/basic: Use the function, not the file.
8591	* tests/chgrp/default-no-deref: Likewise.
8592	* tests/chgrp/deref: Likewise.
8593	* tests/chgrp/no-x: Likewise.
8594	* tests/chgrp/posix-H: Likewise.
8595	* tests/chgrp/recurse: Likewise.
8596	* tests/cp/existing-perm-race: Likewise.
8597	* tests/Makefile.am (EXTRA_DIST): Remove group-names.
8598
8599	tests: use printf+sed rather than yes+head+tr
8600	* tests/misc/fmt-long-line: Minor clean-up.
8601	Using "yes" like that has caused trouble in the past.
8602
8603	tests: save and restore TERM around use of TESTS_ENVIRONMENT,
8604	now that TESTS_ENVIRONMENT unsets it.
8605	* check.mk (am__check_pre): Save $TERM.
8606	(am__check_post): Restore saved value of TERM and export.
8607
8608	tests: hoist the sourcing of "lang-default"
8609	* tests/check.mk (TESTS_ENVIRONMENT): Source lang-default here, ...
8610	... rather than in each of 100+ test scripts.
8611	* tests/chgrp/basic:
8612	* tests/chgrp/no-x:
8613	* tests/chmod/c-option:
8614	* tests/chmod/no-x:
8615	* tests/chmod/setgid:
8616	* tests/chmod/thru-dangling:
8617	* tests/chmod/umask-x:
8618	* tests/chmod/usage:
8619	* tests/chown/basic:
8620	* tests/chown/deref:
8621	* tests/chown/preserve-root:
8622	* tests/cp/abuse:
8623	* tests/cp/acl:
8624	* tests/cp/backup-is-src:
8625	* tests/cp/cp-a-selinux:
8626	* tests/cp/cp-i:
8627	* tests/cp/cp-mv-backup:
8628	* tests/cp/deref-slink:
8629	* tests/cp/fail-perm:
8630	* tests/cp/into-self:
8631	* tests/cp/link-preserve:
8632	* tests/cp/preserve-gid:
8633	* tests/cp/same-file:
8634	* tests/cp/slink-2-slink:
8635	* tests/cp/special-f:
8636	* tests/cp/symlink-slash:
8637	* tests/cp/thru-dangling:
8638	* tests/du/basic:
8639	* tests/du/hard-link:
8640	* tests/du/inacc-dest:
8641	* tests/du/long-sloop:
8642	* tests/du/no-x:
8643	* tests/install/basic-1:
8644	* tests/ln/hard-backup:
8645	* tests/ln/sf-1:
8646	* tests/ls/file-type:
8647	* tests/ls/infloop:
8648	* tests/ls/nameless-uid:
8649	* tests/ls/rt-1:
8650	* tests/ls/stat-failed:
8651	* tests/ls/symlink-slash:
8652	* tests/ls/x-option:
8653	* tests/misc/chcon:
8654	* tests/misc/chcon-fail:
8655	* tests/misc/csplit:
8656	* tests/misc/df-P:
8657	* tests/misc/groups-dash:
8658	* tests/misc/groups-version:
8659	* tests/misc/nohup:
8660	* tests/misc/printf-surprise:
8661	* tests/misc/runcon-no-reorder:
8662	* tests/misc/selinux:
8663	* tests/misc/split-a:
8664	* tests/misc/split-fail:
8665	* tests/misc/tac-continue:
8666	* tests/misc/wc-files0:
8667	* tests/mkdir/p-v:
8668	* tests/mkdir/selinux:
8669	* tests/mv/acl:
8670	* tests/mv/backup-dir:
8671	* tests/mv/backup-is-src:
8672	* tests/mv/childproof:
8673	* tests/mv/diag:
8674	* tests/mv/dir2dir:
8675	* tests/mv/dup-source:
8676	* tests/mv/force:
8677	* tests/mv/hard-link-1:
8678	* tests/mv/hard-verbose:
8679	* tests/mv/i-2:
8680	* tests/mv/i-3:
8681	* tests/mv/i-4:
8682	* tests/mv/i-5:
8683	* tests/mv/i-link-no:
8684	* tests/mv/into-self:
8685	* tests/mv/into-self-2:
8686	* tests/mv/into-self-3:
8687	* tests/mv/mv-special-1:
8688	* tests/mv/part-fail:
8689	* tests/mv/part-symlink:
8690	* tests/mv/partition-perm:
8691	* tests/mv/perm-1:
8692	* tests/mv/reply-no:
8693	* tests/mv/sticky-to-xpart:
8694	* tests/mv/update:
8695	* tests/rm/cycle:
8696	* tests/rm/dir-no-w:
8697	* tests/rm/dir-nonrecur:
8698	* tests/rm/fail-2eperm:
8699	* tests/rm/fail-eacces:
8700	* tests/rm/inaccessible:
8701	* tests/rm/interactive-always:
8702	* tests/rm/interactive-once:
8703	* tests/rm/isatty:
8704	* tests/rm/one-file-system:
8705	* tests/rm/r-1:
8706	* tests/rm/r-2:
8707	* tests/rm/rm1:
8708	* tests/rm/rm2:
8709	* tests/rm/rm3:
8710	* tests/rm/rm4:
8711	* tests/rm/rm5:
8712	* tests/rm/unread2:
8713	* tests/rm/v-slash:
8714	* tests/touch/fail-diag:
8715	* tests/touch/not-owner:
8716
8717	tests: hoist envvar-check so it is run for every test
8718	I.e., also for Perl-based tests; not just the ones using test-lib.sh.
8719	* tests/check.mk (TESTS_ENVIRONMENT): Source envvar-check here, ...
8720	* tests/test-lib.sh: ...not here.
8721
8722	fix typo in comments: s/ouput/output/
8723	adjust spelling in that same comment: s/localisation/localization/
8724
8725	* tests/touch/Makefile.am: Remove now-unused file.
8726
8727	tests: test split more thoroughly
8728	* tests/misc/split-a: Clean up.  Catch more failures.
8729
8730	* tests/misc/wc: Remove an unused variable.
8731
8732	tests: detect and check more uses of strcmp
8733	* maint.mk (sc_prohibit_strcmp): Relax regexp to recognize other
8734	formatting styles.
8735
8736	avoid problems with sign-extended "char" operand to is* functions
8737	* src/cut.c (set_fields): Apply to_uchar to isblank operands.
8738	* src/uniq.c (find_field): Likewise.
8739	* src/seq.c (scan_arg): Likewise, for isspace.
8740	* tests/misc/uniq: New file.  Test for the above, but only
8741	when isspace(0240).
8742	* tests/Makefile.am (TESTS): Add misc/uniq.
8743	* configure.ac: Use gt_LOCALE_FR.
8744	* tests/check.mk (TESTS_ENVIRONMENT): Propagate LOCALE_FR to scripts.
8745	* NEWS: Mention the bug fixes.
8746
8747	Before this patch, on FreeBSD 6:
8748
8749	  $ printf 'x y z\nx \xa0 y z\n' > in
8750	  $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' .
8751	  x.y.z
8752	  x. .y.z
8753
8754	With the patch:
8755
8756	  $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' .
8757	  x.y.z
8758
8759	This also affected many other locales:
8760	for i in $(locale -a); do test $(LC_ALL=$i ./uniq -f1 in|wc -l)
8761	  = $(LC_ALL=$i uniq -f1 in|wc -l) || echo $i ; done
8762	...
8763	en_GB.ISO8859-1
8764	en_GB.ISO8859-15
8765	en_GB.UTF-8
8766	en_IE.UTF-8
8767	en_NZ.ISO8859-1
8768	en_NZ.ISO8859-15
8769	en_NZ.UTF-8
8770	en_US.ISO8859-1
8771	en_US.ISO8859-15
8772	en_US.UTF-8
8773	...
8774
87752008-05-06  Bo Borgerson  <gigabo@gmail.com>
8776
8777	base64: remove some unused/redundant getopt code
8778	* src/base64.c (struct option long_option): Remove redundant help/version
8779	option items.
8780	(main): Remove unused 'q' from short options.
8781
87822008-05-06  Jim Meyering  <meyering@redhat.com>
8783
8784	help2man: fix perl 5.10 problem properly
8785	* man/help2man: Do pull LC_ALL via "use POSIX".
8786	Instead, limit the importing of gettext-related symbols
8787	to just those two we'll use: gettext and textdomain.
8788
87892008-05-05  Jim Meyering  <meyering@redhat.com>
8790
8791	help2man: avoid failure with Debian unstable's Perl 5.10.0
8792	Avoid failure that produced this diagnostic:
8793	Constant subroutine main::LC_ALL redefined at /.../Exporter.pm
8794	* man/help2man: Don't include LC_ALL in the "use POSIX" list,
8795	since Locale::gettext->import will get it.
8796
87972008-05-05  Bo Borgerson  <gigabo@gmail.com>
8798
8799	base64 module: adjust API so it's compatible with gnulib's
8800	* gl/lib/base64.c (base64_decode_ctx): If no context structure was passed in,
8801	treat newlines as garbage (this is the historical behavior).  Formerly
8802	base64_decode.
8803	(base64_decode_alloc_ctx): Formerly base64_decode_alloc.
8804	* gl/lib/base64.h (base64_decode): Macro for four-argument calls.
8805	(base64_decode_alloc): Likewise.
8806	* src/base64.c (do_decode): Call base64_decode_ctx instead of base64_decode.
8807
88082008-05-05  Jim Meyering  <meyering@redhat.com>
8809
8810	* tests/misc/tac: Set execute bit.
8811
8812	tac: avoid segfault for e.g., "echo > x; tac -r x x"
8813	* src/tac.c (tac_seekable): Move local "regs" declaration out
8814	to file scope, so its values aren't clobbered between calls.
8815	Discovered by Cristian Cadar, Daniel Dunbar and Dawson Engler,
8816	reported in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13501
8817	* NEWS: Mention the bug fix.
8818	* tests/Makefile.am (TESTS): Add misc/tac.
8819	* tests/misc/tac: New file.  Test for the above.
8820
88212008-04-30  Jim Meyering  <meyering@redhat.com>
8822
8823	tests: avoid a "make check-root" failure when mcstransd is running
8824	* tests/misc/chcon: Skip this test if mcstransd seems to be running.
8825
8826	tests: avoid spurious "make check-root" failure
8827	* README (Running tests as root): Also set PATH in suggested "sudo"
8828	command.  This avoids failure of at least tests/cp/cp-a-selinux
8829	when the default PATH does not contain /sbin.
8830	* tests/cp/cp-a-selinux: Don't redirect stderr to /dev/null.
8831	"mkfs" was failing due to /sbin not being in PATH.
8832
88332008-04-30  Bo Borgerson  <gigabo@gmail.com>
8834
8835	Add Daniel Dunbar's lcov instructions to HACKING
8836	* HACKING: New section `Finding things to do', points to TODO file and
8837	gives instructions on generating an html coverage report as provided by
8838	Daniel Dunbar.
8839	* TODO: Add item for improving test coverage.  Point back to HACKING.
8840
88412008-04-29  Jim Meyering  <meyering@redhat.com>
8842
8843	chcon, runcon: make --help print the bug-reporting address
8844	* src/chcon.c (usage): Use emit_bug_reporting_address.
8845	* src/runcon.c (usage): Likewise.
8846	* tests/misc/help-version: Don't exempt chcon and runcon.
8847	* NEWS: Mention this.
8848
88492008-04-28  Jim Meyering  <meyering@redhat.com>
8850
8851	tests: don't hard-code coreutils list of tests/ SUBDIRS in bootstrap
8852	* bootstrap: Extract the list from tests/Makefile.am, and die
8853	when it is empty -- it will be, eventually.
8854
88552008-04-28  Bo Borgerson  <gigabo@gmail.com>
8856
8857	tests: remove references to tests/wc from bootstrap
8858	* bootstrap: Don't try to initialize anything in tests/wc.
8859
88602008-04-28  Jim Meyering  <meyering@redhat.com>
8861
8862	tests: slightly relax sc_cast_of_argument_to_free syntax check
8863	* maint.mk (sc_cast_of_argument_to_free): Relax regexp slightly.
8864	(sc_no_have_config_h): Add a comment.
8865
88662008-04-28  Bo Borgerson  <gigabo@gmail.com>
8867
8868	tests: don't chmod after a failed chdir in cleanup
8869	* tests/CuTmpdir.pm (chmod_tree): Don't chmod if chdir failed.
8870
8871	Only cleanup test dirs from the process that created them.
8872	* tests/CuTmpdir.pm (import): Use closure around current PID to avoid cleanup races.
8873
88742008-04-27  Jim Meyering  <meyering@redhat.com>
8875
8876	move wc tests from own subdir into a single script
8877	* configure.ac (AC_CONFIG_FILES): Remove wc/Makefile from the list.
8878	* tests/Makefile.am (SUBDIRS): Remove wc from the list.
8879	(TESTS): Add misc/wc.
8880	* tests/misc/wc: New file, derived from tests/wc/Tests.pm.
8881	* tests/wc/Test.pm: Remove file.
8882
8883	tests: remove temporary log file upon catchable signal
8884	* check.mk (am__check_pre): Add signal handler to remove $@-t.
8885
8886	tests: don't source envvar-check manually, test-lib.sh does it
8887	* tests/cp/abuse: Remove ". $top_srcdir/tests/envvar-check".
8888	* tests/cp/parent-perm: Likewise.
8889	* tests/cp/special-f: Likewise.
8890	* tests/ls/proc-selinux-segfault: Likewise.
8891	* tests/misc/help-version: Likewise.
8892	* tests/mkdir/selinux: Likewise.
8893	* tests/mv/sticky-to-xpart: Likewise.
8894	* tests/touch/now-owned-by-other: Likewise.
8895	* tests/sample-test: Remove commented out suggestion.
8896
8897	tests: ensure at least one failure when $built_programs is empty
8898	Before, this test and others would pass with empty $built_programs.
8899	* tests/misc/help-version: Fail if built_programs is empty.
8900
8901	tests: improve perl-based tempdir handling
8902	Before, upon interrupt, directories would be left behind.
8903	* tests/CuTmpdir.pm: Remove temporary directory on interrupt.
8904
8905	tests: reorder some tests in the long list
8906	* tests/Makefile.am (TESTS): Move some tests that use sleep
8907	"up" in the list so that they don't delay even a little the
8908	completion of "make check".  Also run a chmod test early.
8909
8910	tests: put root-only (usually skipped) tests at the end
8911	* tests/Makefile.am (TESTS): Don't list root-only tests explicitly.
8912	Instead, just use $(root_tests).
8913	* tests/check.mk (vc_exe_in_TESTS): Now that root_tests are separate,
8914	parse out the union of $(TESTS) and $(root_tests).
8915
8916	tests: move another file (expensive) into test-lib.sh
8917	* tests/expensive: Remove file.  Move contents into ...
8918	* tests/test-lib.sh (expensive_): ...here.  New function.
8919	* tests/du/fd-leak: Update caller to use the new function.
8920	* tests/mv/leak-fd: Likewise.
8921	* tests/rm/hash: Likewise.
8922	* tests/tail-2/big-4gb: Likewise.
8923	* tests/Makefile.am (EXTRA_DIST): Remove its name.
8924
8925	tests: cp/perm (usually not run) was failing on systems with SELinux
8926	* tests/cp/perm: Use stat to get the permission string, not ls.
8927	This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set
8928	in the environment.  It would fail on SELinux-enable systems
8929	because ls-generated permission strings would not match, e.g.,
8930	"test _-rw-r--r--+ = _-rw-r--r--" would fail.
8931
8932	tweak HACKING advice
8933
89342008-04-24  Jim Meyering  <meyering@redhat.com>
8935
8936	tests: do define built_programs
8937	* tests/check.mk (built_programs): Define here, where it's used.
8938	This definition was in now-removed tests/misc/Makefile.am.
8939
89402008-04-23  Jim Meyering  <meyering@redhat.com>
8941
8942	tests: update commented-out examples in sample-test, too
8943	* tests/sample-test: Use $top_srcdir/tests/SCRIPT_NAME, not
8944	$top_srcdir/../SCRIPT_NAME here, too.
8945
89462008-04-23  Ondřej Vašík  <ovasik@redhat.com>
8947
8948	tests: don't fail in a non-English locale
8949	* tests/chmod/thru-dangling: Source lang-default.
8950	* tests/cp/thru-dangling: Likewise.
8951	* tests/misc/printf-surprise: Likewise.
8952
89532008-04-23  Jim Meyering  <meyering@redhat.com>
8954
8955	tests: remove now-unused Makefile.am
8956	* tests/misc/Makefile.am: Remove file.
8957
89582008-04-23  Ondřej Vašík  <ovasik@redhat.com>
8959
8960	id: do not print SELinux context when invoked with a USERNAME argument
8961	* NEWS: Mention new behaviour.
8962	* src/id.c (main): Do not print SELinux context when user is specified.
8963	* tests/Makefile.am: Add the new test.
8964	* tests/misc/id-context: New file.  Test for the fix.
8965	Problem reported by Ronny Buchmann in http://bugzilla.redhat.com/443485.
8966
89672008-04-23  Jim Meyering  <meyering@redhat.com>
8968
8969	id: do print the AFS-specific nameless group ID (called a PAG)
8970	In 6.11, we mistakenly suppressed the printing of certain group IDs,
8971	thinking they were useless AFS-specific artifacts.
8972	This change reverts that, so now they are printed once again.
8973	http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13345
8974	This also reverts the bug-fix that applied solely to the new code
8975	used to avoid printing those IDs
8976
8977	Revert "id bug fix: don't point to potentially clobbered static storage"
8978	This reverts commit f7d1c59c224f81a8bab5fa2afcaf815988f50467.
8979	Revert "Work around AFS bug: id and groups would print invalid group number."
8980	This reverts commit b7a836c0a3524cda8ef79c30c3fe7ea759ae4656.
8981	Revert "* src/c99-to-c89.diff: Accommodate a C99-ism in id.c."
8982	This reverts commit d44893c5dba4150b4ded9cf6aad316c1ef620c9f.
8983
89842008-04-22  Jim Meyering  <meyering@redhat.com>
8985
8986	build: move a project-specific definition to cfg.mk
8987	* cfg.mk (old_NEWS_hash): Define here, ...
8988	* maint.mk: ... not here.
8989	(update-NEWS-hash): Update comment.
8990	Suggestion from Eric Blake.
8991
8992	Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4)
8993	* configure.ac: Filter out carriage returns in more places.
8994	Reported by Elbert Pol, details here:
8995	http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13332
8996
8997	guard against inserting a NEWS entry into a block for a prior release
8998	Without a guard like this, it is far too easy to apply a patch
8999	prepared against a preceding release, and not notice that a NEWS
9000	entry is inserted into the wrong block.
9001	* maint.mk (sc_immutable_NEWS): New rule.
9002	(update-NEWS-hash): New rule to update the hard-coded hash.
9003
9004	tests: ensure that all exec-$PERL lines are the same
9005	* maint.mk (sc_perl_coreutils_test): New rule.
9006
90072008-04-21  Jim Meyering  <meyering@redhat.com>
9008
9009	tests: skip (don't fail) rm/one-file-system when mount --bind fails
9010	* tests/rm/one-file-system: Reported by Allen Hewes.
9011
9012	tests: convert umask-check to a function
9013	* tests/test-lib.sh (working_umask_or_skip_): New function, from...
9014	* tests/umask-check: ...here.  Remove file.
9015	* tests/Makefile.am (EXTRA_DIST): Remove umask-check.
9016	* tests/mkdir/perm: Use the function rather than sourcing the file.
9017	* tests/cp/cp-parents: Likewise.
9018	* tests/cp/parent-perm: Likewise.
9019	Bruno Haible reported that parent-perm was failing to run umask-check.
9020
9021	tests: adjust perl -I to use $top_srcdir/tests, not $srcdir/..
9022
9023	tests: clean up root tests; adapt to new layout
9024	* tests/Makefile.am (root_tests): New list.
9025	(check-root): Add 'SUBDIRS='.
9026	(root-hint): Point to README.
9027	* Makefile.am (check-root): Add 'SUBDIRS=' here, too.
9028	* maint.mk (sc_root_tests): Adapt rule to new syntax used
9029	in tests/Makefile.am.
9030
9031	Revamp test-related Makefiles.
9032	One side-effect of this change is that "make check" now works even if
9033	you put "." early in your shell's search PATH (don't do that!).
9034
9035	Remove all test-related Makefile.am files, except those generated
9036	by mk-script.  Instead, tests/Makefile.am now lists not only the
9037	tests directly under tests/, but also those in tests/*/ that are
9038	not generated by mk-script, e.g., cp/abuse, cp/acl, mv/i-1, etc.
9039
9040	A lot of these changes are like this:
9041
9042	-. $srcdir/../lang-default
9043	+. $top_srcdir/tests/lang-default
9044
9045	-. $srcdir/../test-lib.sh
9046	+. $top_srcdir/tests/test-lib.sh
9047
9048	* configure.ac (AC_CONFIG_FILES): Remove corresponding Makefiles.
9049	* tests/check.mk (vc_exe_in_TESTS): Relax syntax requirements.
9050	* tests/rwx-to-mode: Remove file.  Rewritten as...
9051	* tests/test-lib.sh (rwx_to_mode_): ...this new function.
9052	* tests/Makefile.am (EXTRA_DIST): Remove rwx-to-mode.
9053	(SUBDIRS): Remove each dir with a removed Makefile.am.
9054	(EXTRA_DIST): Add $(TESTS).
9055	(TESTS): Add over 300 entries.
9056
90572008-04-20  Jim Meyering  <meyering@redhat.com>
9058
9059	* tests/misc/Makefile.am (built_programs): Remove.  Unused.
9060
9061	Use "env" to invoke potential built-ins.
9062	* tests/misc/pwd-unreadable-parent: Invoke pwd via "env -- pwd",
9063	rather than via an absolute name.
9064	* tests/touch/not-owner: Likewise for test.
9065	* tests/chmod/setgid: Likewise.
9066
90672008-04-19  Jim Meyering  <meyering@redhat.com>
9068
9069	* .prev-version: Record previous version: 6.11.
9070
9071	Version 6.11.
9072	* NEWS: Record release date.
9073
9074	* maint.mk (writable-files): Fix syntax error.
9075
9076	* doc/.gitignore: Add texinfo-related outputs.
9077
90782008-04-19  Sven Joachim  <svenjoac@gmx.de>
9079
9080	* THANKS: Update my address, correct encoding for a name.
9081
90822008-04-19  Jim Meyering  <meyering@redhat.com>
9083
9084	pr -e, with a mix of backspaces and TABs, could corrupt the heap
9085	* tests/pr/Test.pm: New tests for the above.
9086	* src/pr.c (char_to_clump): Ensure that "input_position" never
9087	goes below 0.
9088	Also, elide any backspace encountered when input_position is 0,
9089	to be compatible at least with /bin/pr from Solaris 10.
9090	This bug is present in the original version:
9091	b25038ce9a234ea0906ddcbd8a0012e917e6c661
9092	* NEWS [Bug fixes]: Mention this.
9093	Report and diagnosis by Cristian Cadar, Daniel Dunbar and Dawson Engler
9094	in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13272
9095
90962008-04-19  Mike Frysinger  <vapier@gentoo.org>
9097
9098	* src/dircolors.hin: Add .flv.  Move .svgz to "image formats".
9099
91002008-04-19  Jim Meyering  <meyering@redhat.com>
9101
9102	md5sum -c: ignore a line with a NUL byte among checksum hex digits
9103	* src/md5sum.c (hex_digits): Require that all "digest_hex_bytes"
9104	be hexadecimal digits, not just those before the first NUL byte.
9105	This bug dates back to the original version:
9106	3763a4f24eb21be40674d13ff7b04e078f473e85
9107	* tests/misc/md5sum (nul-in-cksum): Test for the above.
9108	* NEWS [Bug fixes]: Mention this.
9109	Prompted by a report from Flóki Pálsson in
9110	http://bugzilla.redhat.com/439531
9111
91122008-04-16  Matthew Woehlke  <mw_triad@users.sourceforge.net>
9113
9114	tests: accommodate built-in mknod more cleanly still
9115	* tests/mkdir/selinux: Use "env" rather than "nice".
9116
91172008-04-16  Jim Meyering  <meyering@redhat.com>
9118
9119	tests: accommodate built-in mknod more cleanly
9120	* tests/mkdir/selinux: Undo most of previous change,
9121	bc22dbbf844f31ddaf2e68b167d0128a985d73ab, and instead
9122	invoke the command via "nice".  Using "exec" should be
9123	enough, but isn't with OpenBSD's PD KSH v5.2.14 99/07/13.2.
9124	Eric Blake suggested using nice.
9125
9126	mknod --help: note that this command may be a shell built-in
9127	* src/mknod.c (usage): Print USAGE_BUILTIN_WARNING.
9128	Suggestion from Eric Blake.
9129
9130	avoid "may be used uninitialized" warning from newer gcc
9131	* src/md5sum.c (digest_check) [lint]: Initialize local, "filename".
9132
9133	tests: add a comment explaining the potential failure
9134
9135	tests: avoid mkdir/selinux failure when mknod is a shell built-in
9136	* tests/mkdir/selinux: Skip the mknod test if it's a built-in.
9137
91382008-04-15  Jim Meyering  <meyering@redhat.com>
9139
9140	md5sum, sha1sum, etc: handle invalid input (i.e., don't segfault)
9141	* src/md5sum.c (bsd_split_3): Return right away if s_len == 0.
9142	* tests/misc/md5sum (bsd-segv): New test for the above.
9143	* tests/misc/sha1sum (bsd-segv): Likewise.
9144	* NEWS: Mention the bug fix.
9145	Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
9146
91472008-04-14  Jim Meyering  <meyering@redhat.com>
9148
9149	tests: don't fail on systems without a "stat" syscall
9150	* tests/test-lib.sh (require_strace_): Add a syscall parameter.
9151	* tests/ls/stat-free-symlinks: Update caller.
9152	* tests/mv/atomic: Likewise.
9153	* tests/mv/atomic2: Likewise.
9154	Reported by Mike Frysinger in
9155	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13222
9156
9157	tests: accommodate a different errno string on Irix 6.5
9158	* tests/mkdir/selinux: Also handle "Not supported".
9159	Reported by Peter Fales.
9160
9161	seq: work around floating point inaccuracies on more systems
9162	* src/seq.c: Include <math.h> for fabs.
9163	Include <float.h> for DBL_EPSILON.
9164	(abs_rel_diff): New function.
9165	(print_numbers): Use abs_rel_diff rather than a strict equality test.
9166	Without this change, Solaris 8 and Irix 6.2 would fail the float-6
9167	test.  Reported by Peter Fales in
9168	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13183
9169	* src/c99-to-c89.diff: Adjust seq.c offsets.
9170
9171	doc: fix typo
9172	* coreutils.texi (sort invocation): s/Whitespace/White space/
9173
91742008-04-12  Jim Meyering  <meyering@redhat.com>
9175
9176	tests: Accommodate a different errno value on OSF/1 4.0F.
9177	* tests/mkdir/selinux: Also handle "Function not implemented".
9178
9179	Avoid link failure when using mkstemp replacement.
9180	* src/Makefile.am (tac_LDADD): Add $(LIB_CLOCK_GETTIME).
9181	This is necessary at least on a DEC Alpha OSF/1 4.0F.
9182
9183	tests: always enable VERBOSE output, now that test framework works better
9184	* cfg.mk: Set VERBOSE=yes.
9185	* tests/check.mk: Likewise.
9186
91872008-04-11  Jim Meyering  <meyering@redhat.com>
9188
9189	doc: avoid "make pdf" failure (due to texi2dvi bug?)
9190	* doc/coreutils.texi (filesZeroFromOption):
9191	Comment out @cindex-in-@macro use.
9192
9193	doc: use a valid texinfo macro name
9194	* doc/coreutils.texi (filesZeroFromOption): s/0/Zero/
9195
91962008-04-08  Jim Meyering  <meyering@redhat.com>
9197
9198	tests: accommodate a different errno value on HPUX-10.20
9199	* tests/mkdir/selinux: Also handle "Unknown system error".
9200	Reported by Peter Fales.
9201
92022008-04-06  Jim Meyering  <meyering@redhat.com>
9203
9204	doc: factor out --files0-from duplication
9205	* coreutils.texi (wc invocation) [files0fromOption]: New macro.  Use it.
9206	(du invocation): Use it here, too.
9207
9208	* src/c99-to-c89.diff: Adjust remove.c diffs.
9209
92102008-04-06  Jim Meyering  <jim@meyering.net>
9211
9212	remove.c: accommodate systems with negative errno values
9213	This is required at least on Haiku and BeOS.
9214	* src/remove.c (write_protected_non_symlink): Return 1 for a write-
9215	protected non-symlink, 0 if we determine it's not, and -1 upon
9216	error (setting errno accordingly only in this final case).
9217	(prompt): Deal with the changed semantics of the above function.
9218	Based on this patch from Axel Dörfler:
9219	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071
9220
92212008-04-05  Jim Meyering  <meyering@redhat.com>
9222
9223	Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4)
9224	* configure.in: Also filter out carriage returns from the value
9225	of $no_install_progs_default.  Reported by Elbert Pol.
9226
92272008-04-02  Jim Meyering  <meyering@redhat.com>
9228
9229	"touch E; mkfifo F; cp -fR F E" no longer fails due to existing E
9230	* src/copy.c (copy_internal): Revert change of 2005-03-01,
9231	4303f0454592421eea48be87777d32a49e1d5e5b
9232	Prompted by Michael Stone, who pointed me to an old bug report from
9233	Ian Jackson: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/7504
9234	* tests/cp/special-f: New file.  Test for the above.
9235	* tests/cp/Makefile.am (TESTS): Add special-f.
9236	* NEWS: mention this bug fix.
9237
9238	copy.c: remove an in-function #ifdef
9239	* src/copy.c (rpl_mkfifo) [! HAVE_MKFIFO]: New function.
9240	(mkfifo) [! HAVE_MKFIFO]: Define to rpl_mkfifo.
9241	(copy_internal): Remove #ifdef.
9242
9243	HACKING: rename README-contribution-guidelines
9244	README-contribution-guidelines: Rename to ..
9245	HACKING: ...this.
9246
92472008-04-01  Jim Meyering  <meyering@redhat.com>
9248
9249	bootstrap: remove dangling *.[ch] symlinks from lib
9250	* bootstrap [dangling symlink removal]: Match *.[ch] files, too.
9251	Suggestion from Eric Blake.
9252
9253	bootstrap: make find's -depth option be the first.
9254	* bootstrap [dangling symlink removal]: Move find's -depth
9255	option to precede all others, to avoid a warning.
9256
9257	* bootstrap: Remove dangling symlinks from lib (aka $source_base), too.
9258
9259	Avoid root-only SELinux-related test failures w/o mcstransd.
9260	When mcstransd is not running (i.e., after service mcstrans stop),
9261	"make check" as root would provoke two test failures.
9262	* tests/cp/cp-a-selinux: Use the context, root:object_r:tmp_t:s0,
9263	that works both with and without mcstransd.
9264	Thanks to Eric Paris for the tip and to Ondřej Vašík for alerting
9265	me to the problem.
9266	Reported by Robert Scheck in <http://bugzilla.redhat.com/436717>.
9267
9268	root tests: Set NON_ROOT_USERNAME if not set already.
9269	* tests/test-lib.sh (require_root_): This avoids failure of a
9270	couple of root-only tests that require a value for that envvar.
9271
9272	texinfo formatting tweaks
9273	* coreutils.texi: Avoid some overfull hbox warnings.
9274	(Treating / specially): Use @file{/} rather than a bare /.
9275
9276	printf doc: xref print(3) and libc's "Output Conversion Syntax" node
9277	* coreutils.texi (printf invocation): Add xref.
9278	Use "The GNU C Library Reference Manual" as the name of the 'libc'
9279	document consistently.
9280	* man/printf.x: Add See also: printf(3).
9281	Suggested by A. Costa in http://bugs.debian.org/465522
9282
92832008-03-31  Jim Meyering  <meyering@redhat.com>
9284
9285	Emit "#line 1" right after the two 'read-only/GENERATED' lines.
9286	* bootstrap (cp_mark_as_generated): This preserves line numbering
9287	e.g., in assertions, which is important when correlating between
9288	coreutils test failures and the original files in gnulib/tests.
9289	Suggested by Eric Blake.
9290
9291	* README-contribution-guidelines: Mention how to amend a commit.
9292	Suggestion from Pádraig Brady.
9293
9294	Begin documenting contribution guidelines.
9295	* README-contribution-guidelines: New file.  For now, not distributed.
9296
9297	"rm -r DIR" would mistakenly prompt about very long names
9298	* src/remove.c (write_protected_non_symlink): Return 0(-1) when
9299	euidaccess_stat pronounces a writable(not-writable) file, not -1(0).
9300	* tests/rm/deep-2: New file.  Test for the above-fixed bug.
9301	* tests/rm/Makefile.am (TESTS): Add deep-2.
9302	Discovered while reviewing this change:
9303	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071
9304
9305	* NEWS: Note the dd bug fix.  The bug was introduced over 8 years ago:
9306	9fca49f67c16c8b42c32e185808fe187cedb0fa7
9307
93082008-03-31  Paul Eggert  <eggert@cs.ucla.edu>
9309
9310	dd bug fix: accept e.g., if=/dev/stdin and of=/dev/stdout
9311	* lib/fd-reopen.c: Work even if FILE is "/dev/stdin".
9312	Problem reported by Geoffrey Lee in <http://bugs.debian.org/290727>.
9313	* tests/dd/misc: Check for this bug.
9314
93152008-03-29  Jim Meyering  <meyering@redhat.com>
9316
9317	avoid failure of new test on kernel without SELinux support
9318	* tests/mkdir/selinux: Also accept ENOENT.
9319	Reported by Sven Joachim.
9320
9321	tests: accept ENOTSUP message as well as the EINVAL one
9322	This test would fail on most non-Linux systems because the original
9323	expected an "Invalid argument" diagnostic, yet they all produced
9324	"Operation not supported".
9325	* tests/mkdir/selinux: Accept both strings.  Factor out duplication.
9326
9327	Work around a recent glibc/getopt.c diagnostic change.
9328	* tests/misc/factor: Map new "-- '1'" to expected "-- 1".
9329
93302008-03-28  Jim Meyering  <meyering@redhat.com>
9331
9332	mknod, mkfifo: don't segfault when diagnosing invalid SELinux context
9333	Identical to the bug fixed by 72d052896a9092b811961a8f3e6ca5d151a59be5.
9334	* src/mkfifo.c (main): Use "scontext", not NULL optarg in diagnostic.
9335	* src/mknod.c (main): Likewise.
9336	Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
9337	* tests/mkdir/selinux: Test for the above fixes.
9338	* NEWS: Mention the fixes.
9339
9340	Fix typo in old NEWS and ChangeLog: s/commmand/command/.
9341	* ChangeLog-2007: Likewise.
9342	* NEWS: Likewise.
9343	Prompted by http://bugzilla.redhat.com/439410
9344
93452008-03-28  Pádraig Brady  <P@draigBrady.com>
9346
9347	tests: Factor out code that's going to be reused.
9348	* tests/test-lib.sh (mkfifo_or_skip_): New function, factored out of...
9349	* tests/touch/fifo: ...here.
9350
93512008-03-28  Jim Meyering  <meyering@redhat.com>
9352
9353	Require that "(exit $fail); exit $fail" be last line of each test.
9354	* maint.mk (sc_require_test_exit_idiom): New rule to enforce policy.
9355	* tests/cp/acl: Adhere to the new policy.
9356	* tests/cp/preserve-gid: Likewise.
9357	* tests/dd/misc:
9358	* tests/install/create-leading:
9359	* tests/ln/sf-1:
9360	* tests/ls/symlink-slash:
9361	* tests/misc/help-version:
9362	* tests/misc/ls-time:
9363	* tests/misc/nice:
9364	* tests/misc/shred-remove:
9365	* tests/misc/stty:
9366	* tests/misc/stty-row-col:
9367	* tests/mkdir/p-1:
9368	* tests/mkdir/p-2:
9369	* tests/mkdir/p-3:
9370	* tests/mkdir/p-v:
9371	* tests/mkdir/special-1:
9372	* tests/mkdir/writable-under-readonly:
9373	* tests/mv/acl:
9374	* tests/mv/backup-is-src:
9375	* tests/mv/diag:
9376	* tests/mv/dir-file:
9377	* tests/mv/force:
9378	* tests/mv/hard-link-1:
9379	* tests/mv/i-2:
9380	* tests/mv/i-4:
9381	* tests/mv/into-self:
9382	* tests/mv/into-self-2:
9383	* tests/mv/into-self-3:
9384	* tests/mv/partition-perm:
9385	* tests/mv/to-symlink:
9386	* tests/rmdir/ignore:
9387	* tests/tail-2/assert:
9388	* tests/tail-2/assert-2:
9389	* tests/touch/dangling-symlink:
9390	* tests/touch/dir-1:
9391	* tests/touch/empty-file:
9392	* tests/touch/fifo:
9393	* tests/touch/no-rights: Likewise.
9394
9395	Perform explicit exit-nonzero if the embedded Perl script fails.
9396	* tests/misc/pwd-long: Add canonical '(exit $fail); exit $fail'.
9397
93982008-03-27  Jim Meyering  <meyering@redhat.com>
9399
9400	paste -d\\: avoid heap overrun for backslash at end of delim list
9401	* src/paste.c: Include "quotearg.h".
9402	(collapse_escapes): Handle backslash-escaped backslash explicitly.
9403	Handle unescaped backslash at end of string by returning nonzero,
9404	rather than by overrunning memory.
9405	(main): Diagnose an invalid delimiter list -- carefully.
9406	Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
9407	* tests/misc/paste-no-nl (delim-bs): Add a test to demonstrate the
9408	heap-smashing capability.
9409	(delim-bs2): Prior to coreutils-5.1.2, this bug was a little harder
9410	to demonstrate: it would corrupt a first-argument containing e.g., \b
9411	* NEWS: Mention the bug fix.
9412	* tests/misc/Makefile.am (TESTS): Reflect renaming.
9413	* tests/misc/paste: Rename from paste-no-nl.
9414
94152008-03-26  Jim Meyering  <meyering@redhat.com>
9416
9417	* src/join.c (keycmp): Document new parameters.
9418
9419	Test for mkdir bug fix.
9420	* tests/mkdir/selinux: New file: test for today's fix.
9421	* tests/mkdir/Makefile.am (TESTS): Add selinux.
9422
94232008-03-26  Daniel Dunbar  <daniel@zuster.org>
9424
9425	mkdir -Z x d: don't segfault when diagnosing invalid context "x" (tiny change)
9426	* src/mkdir.c (main): Use "scontext", not NULL optarg in diagnostic.
9427	Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler.
9428	* NEWS: Mention the bug fix.
9429
94302008-03-25  Peter Fales  <psfales@alcatel-lucent.com>
9431
9432	id bug fix: don't point to potentially clobbered static storage
9433	On at least Mac OS, when calling getpwuid twice with the same UID,
9434	the static storage containing results from the first call is
9435	invalidated by the second call.
9436	* src/id.c (main): Point to a copy of the user name string.
9437
94382008-03-25  Eric Blake  <ebb9@byu.net>
9439
9440	Use new gnulib gnumakefile module.
9441	* bootstrap.conf (gnulib_modules): Pull in new module.
9442	* GNUmakefile: Remove from version control.
9443	* .gitignore: Update.
9444	* configure.ac (AC_CONFIG_LINKS): Delete; rely on gnulib to do
9445	this now.
9446	* Makefile.am (EXTRA_DIST, distclean-local): Likewise.
9447
94482008-03-25  Jim Meyering  <meyering@redhat.com>
9449
9450	join bug fix: adapt keycmp to work with new order-checking feature
9451	* src/join.c (keycmp): Add two join-field parameters.
9452	(check_order, join): Update callers.
9453	Reported by Dmitry V. Levin in
9454	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12731/focus=13017
9455	* tests/join/Test.pm (chkodr-7): New test for this fix.
9456
94572008-03-23  Jim Meyering  <meyering@redhat.com>
9458
9459	join.c: syntax/style tweaks
9460	* src/join.c (check_order): Rename from checkorder.
9461	Move definition to precede first use and remove prototype.
9462	Use EXIT_FAILURE, rather than "1".
9463	(key_cmp): Move definition to precede first use.
9464
94652008-03-22  Jim Meyering  <meyering@redhat.com>
9466
9467	portability: work around a "busybox sed" limitation
9468	* configure.ac: While every other sed tested supports usage like
9469	'/\(re\)/{s//\1/;...<NEWLINE>}', and POSIX appears to requires this,
9470	busybox's sed does not support it.  So duplicate the regexp:
9471	'/\(re\)/{s/\(re\)/\1/;...<NEWLINE>}'.  Reported by Vincent Lefevre:
9472	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>.
9473
94742008-03-21  Jim Meyering  <meyering@redhat.com>
9475
9476	* src/c99-to-c89.diff: Adjust seq.c offsets.
9477
9478	ptx: avoid heap overrun for backslash at end of optarg string
9479	* src/ptx.c (copy_unescaped_string): Ignore a lone backslash
9480	at end of string.  Reported by Cristian Cadar, Daniel Dunbar
9481	and Dawson Engler.  Details here:
9482	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13005>.
9483	* tests/misc/Makefile.am (TESTS): Add ptx-overrun.
9484	* tests/misc/ptx-overrun: New file.  Test for the above fix.
9485	* NEWS: Mention the fix.
9486
9487	ptx.c readability
9488	* src/ptx.c (copy_unescaped_string): Add braces around 80+-line
9489	single-stmt while-loop body.
9490
9491	Write NEWS and update c99-to-c89 patch for today's rm improvement.
9492	* NEWS: call this a "portability improvement" ;-)
9493	* src/c99-to-c89.diff: Adjust remove.c offsets.
9494
94952008-03-21  Ingo Weinhold  <ingo_weinhold@gmx.de>
9496
9497	remove.c: Accommodate systems with negative errno values.
9498	* src/remove.c (cache_fstatat): Store errno value directly in
9499	the st_ino field, rather than trying to shoehorn it into st_size.
9500	This is required at least on BeOS and Haiku.
9501
95022008-03-21  Jim Meyering  <meyering@redhat.com>
9503
9504	* src/seq.c (long_double_format): Add a comment.
9505
9506	* GNUmakefile: Update from gnulib.
9507
95082008-03-20  Jim Meyering  <meyering@redhat.com>
9509
9510	Remove today's automake kludge, altogether.  Fix properly.
9511	* man/Makefile.am: Use dist_man1_MANS instead of dist_man_MANS.
9512	Suggestion from Ralf Wildenhues.
9513
9514	Add a check to detect this problem, in case it reappears.
9515	* maint.mk (my-distcheck): Run "make install", and then ensure
9516	that ls.1 is installed.
9517
9518	Kludge to make automake generate install-man rules
9519	* man/Makefile.am (dist_man_MANS): Add a literal, rm.1.
9520	Without this, "make install" would not install man pages.
9521	However, with this kludge, the rm.1 man page is installed
9522	even when you configure with --enable-no-install-program=rm.
9523
9524	Revert recent man/Makefile.am change.
9525	Revert 4b544e447eb78fd1f031a026a499f6aed177808a.
9526	* man/Makefile.am: That change was only a band-aid.  It solved
9527	the stated problem, but not a deeper one: that "make install"
9528	would no longer man pages.  Reported by Dmitry V. Levin.
9529	The latter problem arose in
9530	167b8025aca487de001da2448c1aebc2747bc1d3 with the removal of
9531	the sole literal from the definition of dist_man_MANS.  When
9532	automake perceives dist_man_MANS as empty, it no longer emits
9533	the install-man* rules.
9534
95352008-03-20  Eric Blake  <ebb9@byu.net>
9536
9537	Sync GNUmakefile with gnulib.
9538	* GNUmakefile (Makefile.cfg): Rename...
9539	(cfg.mk): ...to this, and make optional.
9540	(GNUmakefile.cfg): Delete, redundant with cfg.mk.
9541	(Makefile.maint): Rename...
9542	(maint.mk): ...to this.
9543	(all) [!_have-Makefile]: Rename...
9544	(abort-due-to-no-makefile): ...to this, and invoke via
9545	.DEFAULT_GOAL to pick up all targets.
9546	* Makefile.cfg: Rename...
9547	* cfg.mk: ...to this.
9548	* Makefile.maint: Rename...
9549	* maint.mk ...to this.
9550	(ME): Reflect rename.
9551	(makefile-check, m4-check, author_mark_check, msg): Use $(ME)
9552	rather than hard-coded name.
9553	* Makefile.am (EXTRA_DIST): Distribute renamed files.
9554	* .x-sc_file_system: Remove Makefile.maint along with others. No longer needed.
9555	* .x-sc_obsolete_symbols: Likewise.
9556	* .x-sc_prohibit_atoi_atof: Reflect renaming and remove no-longer-VC'd names.
9557	* TODO: Likewise.
9558
95592008-03-19  Bob Proulx  <bob@proulx.com>
9560
9561	make check: Remove /tmp/ls-creating debug code.
9562	* tests/misc/ls-misc: Remove debug code creating /tmp/ls.
9563
95642008-03-19  Jim Meyering  <meyering@redhat.com>
9565
9566	bootstrap: restore kludge removed on 2008-03-12: it's still necessary.
9567	* bootstrap: Make the gnulib-tests/test-*.sh scripts executable.
9568	This restores code removed by dec8bb25bb6da2fe9fe6dd63c0fbbd593a0e94cb.
9569	Reported by Bob Proulx.
9570
9571	Check for -- and remove -- some unnecessarily included header files.
9572	* Makefile.maint: Add checks for a handful of additional header files.
9573	* src/mktemp.c: Don't include "long-options.h".  Not used.
9574	* src/pr.c: Don't include "inttostr.h".  Not used.
9575	* src/printenv.c: Don't include "error.h".  Not used.
9576	* src/test.c: Don't include "error.h".  Not used.
9577	* src/touch.c: Don't include "safe-read.h".  Not used.
9578
9579	Remove more vestiges of CVS.
9580	* Makefile.maint (VC_LIST): Rename from CVS_LIST.
9581	(VC_LIST_EXCEPT): Rename from CVS_LIST_EXCEPT.
9582
9583	mv: never unlink a destination file before calling rename
9584	While cp --preserve=links must unlink certain destination files,
9585	mv must never do that.
9586	* src/copy.c (copy_internal): Pull the '! x->move_mode' test "up",
9587	so it affects the entire condition, and not just DEREF_NEVER mode.
9588	Reported by James Ralston in <http://bugzilla.redhat.com/438076>.
9589	* tests/mv/atomic2: New file.  Test for the above fix.
9590	* tests/mv/Makefile.am (TESTS): Add atomic2.
9591	* NEWS: Mention the bug-fix.
9592	[Bug introduced in 367719ba5f1dbd5e2f7fa2466c441f23f66a7c9e]
9593
9594	"make" would not always update man/*.1 files (but "make dist" would)
9595	* man/Makefile.am (BUILT_SOURCES): Define, so that "make" always
9596	updates man/*.1 files.  Reported by Bob Proulx.
9597
95982008-03-18  Jim Meyering  <meyering@redhat.com>
9599
9600	syntax-check: Make the space-before-open-paren optional.
9601	* Makefile.maint (sc_prohibit_assert_without_use): Match also
9602	when there is no space before the opening parenthesis.
9603	(sc_prohibit_getopt_without_use): Likewise.
9604	(sc_prohibit_quotearg_without_use): Likewise.
9605	(sc_prohibit_quote_without_use): Likewise.
9606
9607	* Makefile.maint (sc_no_have_config_h): Use a more precise regexp.
9608
9609	* Makefile.maint (CVS): Remove now-unused definition.
9610
9611	Factor out duplication in sc_prohibit_*_without_use rules.
9612	* Makefile.maint (_header_without_use): New "command",
9613	factored out of four sc_prohibit_HEADER_without_use rules.
9614	(sc_prohibit_assert_without_use): Rewrite using $(_header_without_use).
9615	(sc_prohibit_getopt_without_use): Likewise.
9616	(sc_prohibit_quotearg_without_use): Likewise.
9617	(sc_prohibit_quote_without_use): Likewise.
9618
96192008-03-18  Dmitry V. Levin  <ldv@altlinux.org>
9620
9621	Correct typo in "make syntax-check" diagnostic.
9622	* Makefile.maint (sc_prohibit_getopt_without_use): s/assert.h/getopt.h/
9623
96242008-03-16  Jim Meyering  <meyering@redhat.com>
9625
9626	Prohibit inclusion of getopt.h without use.
9627	* Makefile.maint (sc_prohibit_getopt_without_use): New rule.
9628
9629	Include <getopt.h> only if used.
9630	* src/group-list.c: Don't include <getopt.h>.
9631	* src/printf.c: Likewise.
9632
96332008-03-16  J. Scott Edwards  <qrw.software@gmail.com>
9634
9635	sha512_process_bytes: fix a bug in processing a buffer where length&64 != 0
9636	* gl/lib/sha512.c (sha512_process_bytes): s/63/127/.
9637
96382008-03-12  Jim Meyering  <meyering@redhat.com>
9639
9640	Generalize GNUmakefile, ...
9641	...so that it can be used unmodified by autoconf.
9642	* GNUmakefile: Include optional file, GNUmakefile.cfg.
9643	Autoconf will use this to override _autoreconf and to export PATH.
9644	(_autoreconf): Define.
9645	(_dummy): cd to $(srcdir) before removing autom4te.cache.
9646
9647	* bootstrap: Sync from gnulib and remove part of a local kludge.
9648
96492008-03-10  Ondřej Vašík  <ovasik@redhat.com>
9650
9651	install, rmdir: write --verbose output to stdout, not to stderr.
9652	* src/install.c (announce_mkdir): Write verbose output to stdout,
9653	not to stderr.
9654	* src/mkdir.c (announce mkdir): Use prog_fprintf for verbose output.
9655	* src/prog-fprintf.c (prog_fprintf): New function and file.
9656	* src/prog-fprintf.h: New file.
9657	* src/rmdir.c (main): Write verbose output to stdout, not to stderr.
9658	Quote directory name in a diagnostic.
9659	* src/rmdir.c (remove_parents): Write verbose output to stdout,
9660	not to stderr.
9661	* doc/coreutils.texi: Mention that shred verbose output is to stderr.
9662	* NEWS: Mention the changes.
9663
96642008-03-10  Jim Meyering  <meyering@redhat.com>
9665
9666	make syntax-check: also check src/*.h files for extern functions,
9667	* src/Makefile.am (sc_tight_scope): ... now that there is one.
9668
96692008-03-07  Jim Meyering  <meyering@redhat.com>
9670
9671	dd: avoid unnecessary, but harmless close_stdout call.
9672	* src/dd.c (close_stdout_required): New global.
9673	(maybe_close_stdout): New function.
9674	(main): Set the global.
9675	Reported by Ulrich Drepper in http://bugzilla.redhat.com/436368
9676
96772008-03-06  Jim Meyering  <meyering@redhat.com>
9678
9679	Now that ChangeLog is no longer under version control, ...
9680	* Makefile.maint (alpha beta major): Don't make changelog-check.
9681	(changelog-version-check): Rename from changelog-check.
9682
96832008-03-05  Jim Meyering  <meyering@redhat.com>
9684
9685	* src/c99-to-c89.diff: Accommodate a C99-ism in id.c.
9686
96872008-03-05  ribalba  <geerd.dietger.hoffmann@gmail.com>
9688
9689	Work around AFS bug: id and groups would print invalid group number.
9690	* src/id.c (main): Call print_group_list with a user name, if possible.
9691	* src/groups.c (main): Likewise.
9692	* NEWS: Mention this.
9693	For details, see
9694	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12852
9695	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12875
9696
96972008-03-05  Jim Meyering  <meyering@redhat.com>
9698
9699	Now that Makefile.maint is used in VPATH builds, too...
9700	* Makefile.maint (prev_version_file): Prefix with $(srcdir)/.
9701	(syntax-check-rules): Prefix $(ME) with $(srcdir)/.
9702
9703	Avoid new "make distcheck" failure, now that VPATH has GNUmakefile.
9704	* GNUmakefile: Remove commands to create ".version".
9705	They were unnecessary, and caused creation of a newer .version
9706	file in a VPATH build, which in turn caused creation of updated
9707	man/*.1 files reflecting the newer time stamp on .version.
9708	Those *.1 files were not removed (since they're distributed), and
9709	the fact that they remained after "distclean" triggered the failure.
9710
97112008-03-04  Eric Blake  <ebb9@byu.net>
9712
9713	Reinstate GNUmakefile patch, but with workaround for automake.
9714	* configure.ac (AC_CONFIG_LINKS): Use shell variable to bypass
9715	automake distclean rules.
9716	* Makefile.am (distclean-local): Clean GNUmakefile in VPATH builds,
9717	since we are bypassing automake.
9718	* GNUmakefile (_is-dist-target): 'distclean' is not a dist target.
9719
97202008-03-04  Jim Meyering  <meyering@redhat.com>
9721
9722	Clarify comment and attribute preceding change: Reported by Ralf Wildenhues.
9723
9724	Comment out yesterday's VPATH-friendly addition, for now.
9725	* configure.ac: ...while we wait for a fixed version of automake.
9726
97272008-03-03  Eric Blake  <ebb9@byu.net>
9728
9729	Use m4_PACKAGE_VERSION, not AC_AUTOCONF_VERSION.
9730	* configure.ac: The latter is only in post-2.61 autoconf.
9731
9732	GNUmakefile build tweaks.
9733	* GNUmakefile: When Makefile is not present, make common targets depend
9734	on "all" in order to trigger nicer error message.
9735	* configure.ac: If autoconf is new enough, link GNUmakefile into VPATH
9736	builds.
9737	For more details, see
9738	<http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/12853>.
9739
97402008-03-03  Simon Josefsson  <simon@josefsson.org>
9741
9742	Define SHA*_DIGEST_SIZE symbols.
9743	* gl/lib/sha256.h (SHA224_DIGEST_SIZE, SHA256_DIGEST_SIZE): Define.
9744	* gl/lib/sha512.h (SHA384_DIGEST_SIZE, SHA512_DIGEST_SIZE): Define.
9745
97462008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9747
9748	Fix so that out-of-tree VPATH "make dist" works, too.
9749	* GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument.
9750
97512008-03-02  Jim Meyering  <meyering@redhat.com>
9752
9753	One more for non-srcdir "make dist".
9754	* GNUmakefile: Also cd $(srcdir) before running autoreconf.
9755
9756	Adjust so that non-srcdir "make dist" works, too.
9757	* GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument.
9758
9759	Don't infringe namespace of "sub"-Makefiles.
9760	* GNUmakefile (_dummy, _have-Makefile): Add "_" prefix.
9761
9762	Create sha256 and sha512 modules and move files into gl/.
9763	* bootstrap.conf (gnulib_modules): Add sha256 and sha512.
9764	* m4/prereq.m4: Don't require gl_SHA256 or gl_SHA512.
9765	* gl/modules/sha512: New file.
9766	* gl/modules/sha256: New file.
9767	* m4/sha256.m4: Move to ...
9768	* gl/m4/sha256.m4: ...here, removing use of AC_SOURCES.
9769	* m4/sha512.m4: Move to ...
9770	* gl/m4/sha512.m4: ...here, removing use of AC_SOURCES.
9771	* lib/sha256.c, lib/sha256.h: Move to ...
9772	* gl/lib/sha256.c, gl/lib/sha256.h: ...here.
9773	* lib/sha512.c, lib/sha512.h: Move to ...
9774	* gl/lib/sha512.c, gl/lib/sha512.h: ...here.
9775	* lib/u64.h: Move to ...
9776	* gl/lib/u64.h: ...here.
9777
9778	* bootstrap: Remove only *.m4, and only from $m4_base/.  Rewrite the comment.
9779
9780	* bootstrap: Sync from gnulib.
9781
97822008-03-01  Jim Meyering  <meyering@redhat.com>
9783
9784	Don't skip the groups-version test.
9785	* tests/Makefile.am (built_programs): Remove unused definition.
9786	* src/Makefile.am (built_programs.list): Print a space-separated
9787	list of program names, not NL-separated, since all clients now
9788	expect a space-separated list.
9789
9790	Don't exempt "groups" from write-failure test, now that it's a C program.
9791	* tests/misc/help-version: Since groups is no longer a shell
9792	script, a buggy bourne shell can't cause trouble.
9793
9794	* configure.ac (AC_INIT): Use .tarball-version, not .version.
9795
9796	Don't depend on gnulib's deprecated "free" module.
9797	* bootstrap.conf (obsolete_gnulib_modules): Remove free.
9798	* gl/modules/mgetgroups (Depends-on): Remove free.
9799
98002008-02-29  Jim Meyering  <meyering@redhat.com>
9801
9802	Merge bootstrap changes from gnulib.
9803	* bootstrap (MSGID_BUGS_ADDRESS): Define and use.
9804	(version_controlled_file): Use "git rm", not "git-rm".
9805
9806	Use "git tag", not "git-tag", in preparation for git-1.6.0.
9807	* Makefile.maint (VC-tag): Remove '-': s/git-tag/git tag/
9808
98092008-02-28  Jim Meyering  <meyering@redhat.com>
9810
9811	Make copyright comments consistent.
9812	* src/mktemp.c: Update copyright to use newer form.
9813
9814	Make first copyright lines consistent. Some did not end in ", Inc.".
9815	Due to that missing ", Inc" at end of line, emacs' copyright-updating
9816	code missed some opportunities.  This corrects most of those, and
9817	adds some mistakenly omitted years.
9818	* src/chown-core.c: Adjust.
9819	* src/chown-core.h: Likewise.
9820	* src/copy.c: Likewise.
9821	* src/copy.h: Likewise.
9822	* src/cp-hash.c: Likewise.
9823	* src/cp.c: Likewise.
9824	* src/group-list.h: Likewise.
9825	* src/mktemp.c: Likewise.
9826	* src/stat.c: Likewise.
9827	* tests/chmod/equal-x: Likewise.
9828	* tests/dd/skip-seek: Likewise.
9829	* tests/envvar-check: Likewise.
9830	* tests/mv/into-self-2: Likewise.
9831
98322008-02-25  Bob Proulx  <bob@proulx.com>
9833
9834	Fix test failure where rm would appear to succeed incorrectly.
9835	* tests/rm/fail-eperm: Ignore files that were opportunistically chosen
9836	to test permission failures but disappear before we can finish the test.
9837
98382008-02-24  Jim Meyering  <meyering@redhat.com>
9839
9840	* gl/lib/mgetgroups.c (mgetgroups): Parenthesize correctly.
9841
9842	* gl/lib/mgetgroups.c: Include <stdlib.h>.
9843
98442008-02-23  Jim Meyering  <meyering@redhat.com>
9845
9846	Avoid test failures when root (/) is not readable.
9847	* tests/test-lib.sh (require_readable_root_): New function.
9848	* tests/misc/pwd-long: Skip this test when / is unreadable.
9849	* tests/du/slash: Likewise.
9850	This is required at least for Mandrake/Mandriva in "secure" mode.
9851	Reported by Theodoros V. Kalamatianos in
9852	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12800
9853
98542008-02-22  Jim Meyering  <meyering@redhat.com>
9855
9856	id: avoid race when a group is added between getgrouplist calls
9857	* gl/lib/mgetgroups.c (mgetgroups) [N_GROUPS_INIT]: Rename enum.
9858	Use a larger value.
9859	Update *groups only upon success.
9860	Iterate upon failed getgrouplist.
9861
98622008-02-21  James Youngman  <jay@gnu.org>
9863
9864	id: use getgrouplist when possible
9865	* gl/m4/mgetgroups.m4: Check for getgrouplist.
9866	* gl/lib/mgetgroups.c (mgetgroups): Use getgrouplist, if available.
9867	* TODO: Remove the item about switching to getgrouplist.
9868	* NEWS: mention this
9869
98702008-02-21  Paul Eggert  <eggert@CS.UCLA.EDU>
9871
9872	du vs. hard links and argument order: improve documentation
9873	* doc/coreutils.texi (du invocation): Document default behavior on
9874	hard links, and why argument order matters.
9875
98762008-02-20  James Youngman  <jay@gnu.org>
9877
9878	join: avoid new leaks
9879	* src/join.c (prevline): Make prevline module-level static, so that
9880	the allocated items can be freed at exit.
9881	(free_prevline): new atexit function; frees items in prevline[].
9882	Use ARRAY_CARDINALITY, so include "argmatch.h" to get that.
9883	(main): Arrange for free_prevline to be called during exit.
9884	(get_line): Free prevline[which - 1] also, as that
9885	will have been allocated by dup_line.
9886
98872008-02-20  Jim Meyering  <meyering@redhat.com>
9888
9889	Remove xdelta support, clean up distcheck process. * Makefile.maint (writable-files): Don't create $(release_archive_dir). (my-distcheck): Don't depend on prev-tgz. Remove xdelta-related variables and uses. (alpha beta major): Skip steps if $(release_archive_dir) doesn't exist.
9890
9891	* bootstrap: Remove dangling symlinks before invoking aclocal.
9892
98932008-02-20  Andreas Schwab  <schwab@suse.de>
9894
9895	sort: add --sort=... option.
9896	* src/sort.c (SORT_OPTION): New enum.
9897	(sort_args, sort_types): Define.
9898	(usage, long_options, main): New option --sort.
9899	* tests/sort/Test.pm: Test it.
9900	* doc/coreutils.texi (sort invocation): Document --sort option.
9901	* NEWS: Mention this.
9902
99032008-02-19  Jim Meyering  <meyering@redhat.com>
9904
9905	2008-02-19  Jim Meyering  <meyering@redhat.com>
9906	* TODO: Remove final seq-related item.
9907
9908	* src/c99-to-c89.diff: Adjust seq.c offsets.  Accommodate a new C99-ism.
9909
99102008-02-19  Steven Schubiger  <schubiger@gmail.com>
9911
9912	seq: give better diagnostics for invalid formats.
9913	* src/seq.c: (validate_format): New function.
9914	(main): Use it.
9915	* tests/misc/seq (fmt-d, fmt-e): Test for expected diagnostics with
9916	invalid formats.
9917	* NEWS: Mention this change.
9918	* TODO: Remove this item.
9919	[jm: src/seq.c: make diagnostics more consistent
9920	 tests/misc/seq (fmt-eos1): adjust the expected diagnostic ]
9921
99222008-02-19  James Youngman  <jay@gnu.org>
9923
9924	join: new options: --check-order and --nocheck-order.
9925	* src/join.c: Support --check-order and --nocheck-order.
9926	New variables check_input_order, seen_unpairable and
9927	issued_disorder_warning[]. For --check-order, verify that the
9928	input files are in sorted order.  For the default case, check the
9929	order only if there are unpairable lines.
9930	(join): Perform ordering checks after reaching EOF on either
9931	input.
9932	(usage): Mention --check-order and --nocheck-order.
9933	(dupline): Save a copy of the previously-read input line so that
9934	we can detect disorder on the input.
9935	(get_line): Temporarily save a copy of the previous line (by
9936	calling dupline) and check relative ordering (by calling
9937	checkorder) before returning the newly-read line.
9938	(getseq, join): Tell get_line which file we are reading from.
9939	(advance_seq): New function, factoring out some of the code
9940	commonly surrounding calls to getseq.
9941	(checkorder): New function.  Verifies that a pair of consecutive
9942	input lines are in sorted order.
9943	* doc/coreutils.texi (join invocation): Document the new options
9944	--check-order and --nocheck-order.
9945	* tests/join/Test.pm (tv): Added tests for --check-order and
9946	--nocheck-order.
9947	* NEWS: Mention this new feature.
9948
9949	Fix non-srcdir "make distcheck" failure.
9950	* Makefile.am (check-ls-dircolors): Look for sources under
9951	$(srcdir), not under ".".
9952
99532008-02-18  Jim Meyering  <meyering@redhat.com>
9954
9955	seq: give a proper diagnostic for an invalid --format=% option
9956	* src/seq.c (long_double_format): Handle '%' at end of string.
9957	* tests/misc/seq [fmt-eos1, fmt-eos2]: New tests for the bug.
9958	* NEWS: Mention this.
9959	Reported by Pádraig Brady.
9960
99612008-02-17  Jim Meyering  <meyering@redhat.com>
9962
9963	.gitignore, src/.gitignore: ignore more
9964
9965	Clean up Makefile.maint.
9966	* Makefile.maint: Remove obsolete comments.
9967	(local-checks-available): Remove changelog-check.
9968
9969	Clean up ls.c.
9970	* src/ls.c (put_indicator): Use fwrite, not a loop.
9971
9972	Ensure that dircolors.c and ls.c remain in sync.
9973	* Makefile.am (check-ls-dircolors): New rule.
9974	(distcheck-hook): Depend on it.
9975
9976	Expand "ls --color" tests to also use the dircolors defaults.
9977	* tests/misc/ls-misc: Adjust this test so each is run twice.  First, as usual,
9978	and the second time with LS_COLORS set using the default settings
9979	produced by running dircolors.
9980	* tests/Coreutils.pm: See below.
9981
9982	This required some changes:
9983	  - save and restore $ENV{LS_COLORS} for each individual test
9984	  that requires a specific value.
9985	  - Since this is the first test to call the run_tests command more
9986	  than once, it has exposed that that function erroneously modifies
9987	  the \@Tests array.  Fix that in tests/Coreutils.pm.
9988
9989	Adjust dircolors to match ls.c.
9990	* src/dircolors.hin: comment out NORMAL and FILE, define RESET.
9991	* src/dircolors.c (slack_codes) Add "RESET".
9992	(ls_codes): Add "rs".
9993
99942008-02-17  Ed Avis  <ed@membled.com>
9995
9996	ls --color no longer outputs unnecessary escape sequences
9997	In --color mode, plain files do not get any color, not even white.
9998	When no highlighting is required, ls outputs no escape sequence at all.
9999	* src/ls.c (print_with_color):
10000	(used_color): New global.
10001	(indicator_no) [C_RESET]: New enum value.
10002	(indicator_name) ["rs"]: Corresponding new string.
10003	(color_indicator): Make the 'normal' and 'file' markers be NULL.
10004	Use "rs" (C_RESET) to reset to ordinary colors.
10005	(process_signals): Restore default colors only if necessary.
10006	(main): Don't call prep_non_filename_text here.
10007	(print_name_with_quoting): Call it here, instead.
10008	(prep_non_filename_text): Use C_RESET, not C_NORM.
10009	(print_color_indicator): Return bool, not void.
10010	Print nothing, when possible.
10011	(put_indicator): Call prep_non_filename_text the first time.
10012	* tests/misc/ls-misc: Test for above.
10013	* tests/ls/color-dtype-dir: Adapt: no escapes around regular file name.
10014	* TODO: Remove item.
10015	* NEWS: Mention this.
10016
100172008-02-17  Dan Jacobson  <jidanni@jidanni.org>
10018
10019	ls: Improve description of --group-directories-first.
10020	* src/ls.c (usage) [--group-directories-first]: Improve description.
10021	* doc/coreutils.texi (Which files are listed): Likewise.
10022
100232008-02-16  Jim Meyering  <meyering@redhat.com>
10024
10025	Avoid tests/cp/acl test failure.
10026	* tests/check.mk (TESTS_ENVIRONMENT) [CONFIG_HEADER]: Define
10027	to an absolute name, so it can be used from any point in the
10028	test hierarchy.  Reported by James Youngman.
10029
100302008-02-16  James Youngman  <jay@gnu.org>
10031
10032	Use the gettime module in ls.c.
10033	Implement TODO list item to make ls.c use the gettime module.
10034	* TODO (ls): Now that we use gettime, remove the TODO entry.
10035	* src/ls.c: Use timespec.h and the gettime module.
10036	(current_time): Change type from time_t to struct timespec.
10037	(current_time_ns): Removed.
10038	(get_current_time): Removed.
10039	(print_long_format): Remove when and when_ns, since we have
10040	when_timespec anyway.  Change type of variable six_months_ago from
10041	time_t to struct timespec.
10042
100432008-02-14  Jim Meyering  <meyering@redhat.com>
10044
10045	groups: don't test printf and putchar calls for failure
10046	They are unnecessary, since we use gnulib's closeout module.
10047	* src/group-list.c (print_group): Remove explicit error tests.
10048	* src/groups.c (main): Likewise.
10049	(write_error): Remove function.
10050
100512008-02-13  James Youngman  <jay@gnu.org>
10052
10053	Replace groups.sh with groups.c.
10054	* src/groups.c (main): New file, replacing groups.sh.
10055	* src/group-list.c, src/group-list.h: New files, factored out of id.c,
10056	implementing the functionality that "id" and "groups" have in common.
10057	* src/id.c (print_full_info): Avoid a segfault when trying to print
10058	an error message if getgroups fails.
10059	(print_group_list): Move to group-list.c.
10060	(print_group): Likewise.
10061	* man/Makefile.am: When building groups.1, obtain the help text
10062	from src/groups.c, not src/groups.sh.
10063	(noinst_HEADERS): Add group-list.h.
10064	(group): Remove rule.
10065	(dist_man_MANS): Remove groups.1.
10066	* doc/coreutils.texi (groups: Print group names a user is in):
10067	Explain why "groups" and "groups $(id -un)" give different results
10068	in existing login sessions after you change the group database.
10069	(id: Print user identity): Likewise for "id".
10070	* po/POTFILES.in: Add src/group-list.c and src/groups.c.
10071	* NEWS: mention this.
10072	* AUTHORS: Update.
10073
100742008-02-12  Jim Meyering  <meyering@redhat.com>
10075
10076	Move more test_skip_-using code to follow ". test-lib.sh".
10077	* tests/mv/acl: Likewise.
10078	* tests/cp/acl: Likewise.
10079
100802008-02-12  Peter Fales  <psfales@alcatel-lucent.com>
10081
10082	tests/touch/not-owner: Source test-lib.sh before using skip_test_.
10083
100842008-02-12  Jim Meyering  <meyering@redhat.com>
10085
10086	* tests/Makefile.am (EXTRA_DIST): Remove strace.
10087
100882008-02-11  Jim Meyering  <meyering@redhat.com>
10089
10090	tests: Migrate sourced strace file into a function, require_strace_.
10091	* tests/strace: Remove file.
10092	* tests/test-lib.sh (require_strace_): New function.
10093	* tests/mv/atomic: Use require_strace_, rather than ". strace".
10094	* tests/ls/stat-free-symlinks: Likewise.
10095	Peter Fales reported that stat-free-symlinks failed without strace.
10096
10097	* tests/rm/inaccessible: Source test-lib.sh *before* using skip_test_.
10098	Reported by Peter Fales.
10099
101002008-02-10  Jim Meyering  <meyering@redhat.com>
10101
10102	Ensure there are no removable (useless) if-before-free tests.
10103	* bootstrap.conf (gnulib_modules): Add useless-if-before-free.
10104	* Makefile.maint (sc_avoid_if_before_free): New rule.
10105
10106	Use a better dirname emulation.
10107	* build-aux/check.mk (_dirname): Define.
10108	(am__check_pre): Use it.
10109
10110	Avoid test failure when run with risky PATH ("." before /usr/bin).
10111	* build-aux/check.mk (approx_dirname_filter): Define.
10112	(am__check_pre): Emulate dirname using sed.
10113	Report and suggested fix from Bruno Haible in
10114	http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12587/focus=12590
10115
10116	* build-aux/.gitignore: Remove file from version control. It's generated.
10117
10118	Generate ChangeLog from git log.
10119	* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
10120	Ensure that ChangeLog exists, for automake.
10121	* Makefile.am (gen-ChangeLog): New rule.
10122	(dist-hook): Depend on it.
10123	(EXTRA_DIST): Add ChangeLog-2006, ChangeLog-2007, ChangeLog-2008.
10124
10125	Remove ChangeLog, dividing its content into ChangeLog-200?
10126	* ChangeLog: Remove file.
10127	* ChangeLog-2005: Prepend the 2005 entries.
10128	* ChangeLog-2006: New file.
10129	* ChangeLog-2007: New file.
10130	* ChangeLog-2008: New file.
10131
10132	* ChangeLog: Manually update copyright notice at *bottom*.
10133
101342008-02-09  Jim Meyering  <meyering@redhat.com>
10135
10136	tests: rm/fail-eperm: require-non-root in perl, not sh
10137	Since it creates no temporaries and since it requires non-root,
10138	do the require-non-root bit in perl, rather than using test-lib.sh.
10139
10140	tests: Remove priv-check.  Use new require_root_ function instead.
10141	* tests/priv-check: Remove file.
10142	* tests/Makefile.am (EXTRA_DIST): Remove priv-check.
10143	* tests/test-lib.sh (require_root_): New function.
10144	Use this function rather than sourcing the priv-check file.
10145	* tests/sample-test: Use require_root_ rather than priv-check.
10146	* tests/chown/basic: Likewise.
10147	* tests/cp/cp-a-selinux: Likewise.
10148	* tests/cp/preserve-gid: Likewise.
10149	* tests/cp/special-bits: Likewise.
10150	* tests/ls/nameless-uid: Likewise.
10151	* tests/misc/chcon: Likewise.
10152	* tests/mkdir/writable-under-readonly: Likewise.
10153	* tests/mv/sticky-to-xpart: Likewise.
10154	* tests/rm/fail-2eperm: Likewise.
10155	* tests/rm/no-give-up: Likewise.
10156	* tests/rm/one-file-system: Likewise.
10157	* tests/tail-2/append-only: Likewise.
10158	* tests/touch/now-owned-by-other: Likewise.
10159	* tests/rm/fail-eperm: Use skip_if_root_ rather than priv-check.
10160	* Makefile.maint (sc_root_tests): Reflect this change:
10161	search for the new function name.
10162
10163	tests: factor out the perl-requiring code in many test scripts
10164	* tests/require-perl: New file.
10165	* tests/Makefile.am (EXTRA_DIST): Add require-perl.
10166	* tests/dd/skip-seek: Use it, and remove manual tests.
10167	* tests/du/files0-from: Likewise.
10168	* tests/ls/nameless-uid: Likewise.
10169	* tests/misc/base64: Likewise.
10170	* tests/misc/basename: Likewise.
10171	* tests/misc/cut: Likewise.
10172	* tests/misc/date: Likewise.
10173	* tests/misc/dircolors: Likewise.
10174	* tests/misc/dirname: Likewise.
10175	* tests/misc/expand: Likewise.
10176	* tests/misc/expr: Likewise.
10177	* tests/misc/factor: Likewise.
10178	* tests/misc/fmt: Likewise.
10179	* tests/misc/fold: Likewise.
10180	* tests/misc/head-elide-tail: Likewise.
10181	* tests/misc/ls-misc: Likewise.
10182	* tests/misc/md5sum: Likewise.
10183	* tests/misc/md5sum-newline: Likewise.
10184	* tests/misc/mktemp: Likewise.
10185	* tests/misc/od: Likewise.
10186	* tests/misc/paste-no-nl: Likewise.
10187	* tests/misc/pr: Likewise.
10188	* tests/misc/pwd-long: Likewise.
10189	* tests/misc/seq: Likewise.
10190	* tests/misc/sha1sum: Likewise.
10191	* tests/misc/sha1sum-vec: Likewise.
10192	* tests/misc/sha224sum: Likewise.
10193	* tests/misc/sha256sum: Likewise.
10194	* tests/misc/sha384sum: Likewise.
10195	* tests/misc/sha512sum: Likewise.
10196	* tests/misc/sort-merge: Likewise.
10197	* tests/misc/stat-printf: Likewise.
10198	* tests/misc/sum: Likewise.
10199	* tests/misc/sum-sysv: Likewise.
10200	* tests/misc/test-diag: Likewise.
10201	* tests/misc/tsort: Likewise.
10202	* tests/misc/tty-eof: Likewise.
10203	* tests/misc/unexpand: Likewise.
10204	* tests/misc/wc-files0-from: Likewise.
10205	* tests/misc/xstrtol: Likewise.
10206	* tests/mv/i-1: Likewise.
10207	* tests/rm/empty-name: Likewise.
10208	* tests/rm/fail-eperm: Likewise.
10209	* tests/rm/unreadable: Likewise.
10210
10211	(EXTRA_DIST): *do* require require-perl as a stand-alone, 'source'able script.
10212
10213	tests: call skip_test_ in place of echo+exit 77
10214	* tests/mv/no-target-dir: Likewise.
10215	* tests/other-fs-tmpdir: Likewise.
10216	* tests/rm/empty-name: Likewise.
10217	* tests/rm/fail-eperm: Likewise.
10218	* tests/rm/inaccessible: Likewise.
10219	* tests/rm/isatty: Likewise.
10220	* tests/rm/unreadable: Likewise.
10221	* tests/setgid-check: Likewise.
10222	* tests/sparse-file: Likewise.
10223	* tests/strace: Likewise.
10224	* tests/tail-2/append-only: Likewise.
10225	* tests/tail-2/big-4gb: Likewise.
10226	* tests/tail-2/tail-n0f: Likewise.
10227	* tests/touch/dangling-symlink: Likewise.
10228	* tests/touch/fifo: Likewise.
10229	* tests/touch/not-owner: Likewise.
10230	* tests/mv/i-3: Likewise.
10231	* tests/umask-check: Likewise.
10232	* tests/mv/acl: Likewise.
10233	* tests/cp/acl: Likewise.
10234	* tests/chgrp/deref: Likewise.
10235	* tests/chmod/setgid: Likewise.
10236	* tests/cp/existing-perm-race: Likewise.
10237	* tests/cp/file-perm-race: Likewise.
10238	* tests/cp/parent-perm-race: Likewise.
10239	* tests/du/2g: Likewise.
10240	* tests/du/8gb: Likewise.
10241	* tests/du/long-from-unreadable: Likewise.
10242	* tests/du/long-sloop: Likewise.
10243	* tests/du/slink: Likewise.
10244	* tests/ls/nameless-uid: Likewise.
10245	* tests/ls/stat-dtype: Likewise.
10246	* tests/misc/cat-proc: Likewise.
10247	* tests/misc/md5sum-newline: Likewise.
10248	* tests/misc/nice: Likewise.
10249	* tests/misc/od-x8: Likewise.
10250	* tests/misc/pwd-unreadable-parent: Likewise.
10251	* tests/misc/selinux: Likewise.
10252	* tests/misc/stty-row-col: Likewise.
10253	* tests/misc/tac-continue: Likewise.
10254	* tests/misc/arch: Likewise, and source $srcdir/../test-lib.sh *before*
10255	the use of skip_test_.
10256
10257	tests: move the very-expensive file into test-lib.sh
10258	* tests/very-expensive: Remove file.
10259	* tests/test-lib.sh (very_expensive_): New function.
10260	* tests/Makefile.am (EXTRA_DIST): Remove very-expensive.
10261	* tests/cp/perm: Call the new function, rather than sourcing the file.
10262	* tests/tail-2/assert: Likewise.
10263	* tests/tail-2/assert-2: Likewise.
10264	* tests/du/2g: Likewise.
10265
10266	tests: start migrating sourced-file function-like tests into test-lib.sh.
10267	* tests/acl: Remove file.
10268	* tests/test-lib.sh (require_acl_): New function.
10269	* tests/cp/acl: Use require_acl_ instead.
10270	* tests/mv/acl: Likewise.
10271	* tests/Makefile.am (EXTRA_DIST): Remove acl.
10272
10273	tests: mv/acl: Don't mention "yes" as a partition name in diagnostic.
10274