2017-03-08  Pádraig Brady  <P@draigBrady.com>

	version 8.27
	* NEWS: Record release date.

	build: update gnulib submodule to latest
	Removes extraneous parse-datetime.c generated during build

	stat,tail: support "RDT" Linux kernel control file system
	* src/stat.c (human_fstype): This file system is the user interface
	for resource allocation in Intel's Resource Director Technology.

	doc: spelling fix for recent doc addition
	* doc/coreutils.texi (join invocation): s/preceeding/preceding/.

2017-03-07  Bernhard Voelker  <mail@bernhard-voelker.de>

	build: avoid redundant build of tr with --enable-single-binary
	* src/local.mk [check-duplicate-no-install]: Depend on the
	single-binary tr, or the system tr, as the edge case
	where these are not available only result in the sanity
	check being effectively ignored.

2017-03-07  Assaf Gordon  <assafgordon@gmail.com>

	build: fix 'install-html' target
	Switching to non-recursive makefiles broke the 'install-html' target:
	The gettext plumbing requires an 'install-html' target in po/Makefile.
	This was fixed in gettext v0.19.8.1-41-ge5a008a, but packages using
	older gettext need to manually patch po/Makefile.in.in.
	Reported (for 'sed') and suggested fix by Eric Blake in
	https://bugs.gnu.org/25690 .

	* bootstrap.conf (bootstrap_epilogue): Add 'install-{html,pdf,dvi,ps}'
	  targets to po/Makefile.in.in (if needed).

2017-03-04  Pádraig Brady  <P@draigBrady.com>

	maint: bump makeinfo --version requirement to 6.1
	* bootstrap.conf: s/4.13/6.1/ as versions previous to that
	generated invalid html with interspersed <span> tags that
	were visible to the user.  Version 6.1 is available for a
	year now, and is available in most distros.

2017-03-04  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: avoid makeinfo warning
	makeinfo issues the following:

	  doc/coreutils.texi:6568: warning: @sc argument all uppercase,\
	    thus no effect.

	* doc/coreutils.texi (join invocation): Remove the @sc macro around
	the all uppercase "GNU".

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

	build: update gnulib submodule to latest
	Fixes a test-lock failure on MacOS

	timeout: handle multiple children on solaris
	* src/timeout.c (install_sigchld): A new function to
	install the SIGCHLD handler using sigaction() rather
	than signal(), because with the latter on solaris
	the signal handler is reset to default and thus
	sigsuspend() only returns for the first finished child.
	Reported by Assaf Gordon.

	tests: avoid a spurious failure on older debian
	* tests/misc/cut-huge-range.sh: Bump up the ulimit,
	to avoid a false failure due hitting the previously
	detected ulimit.
	Reported by Assaf Gordon.

	build: fix libstdbuf build on AIX 7
	* src/libstdbuf.c: undef malloc so as libstdbuf is
	not linked with gnulib, and anyway the replacement is
	never needed since we never malloc(0).
	Reported by Assaf Gordon.

2017-03-01  Assaf Gordon  <assafgordon@gmail.com>

	doc: expand 'join' info section
	* doc/coreutils.texi (join invocation): Expand section to
	add examples and more details.
	Suggested by Dan Jacobson in https://bugs.gnu.org/25870

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

	doc: give a stronger security warning in md5/sha1 man pages
	* man/md5sum.x: Give a more direct warning againt the use
	of this hash algorithm for security purposes.
	* man/sha1sum.x: Likewise.
	Suggested by Jim Meyering.

	expand: avoid an extraneous warning on 32 bit
	* src/expand-common (parse-tab-stops): Exit earlier upon overflow
	so another warning isn't issued (on 32 bit) in add_tab_stop().
	Flagged in https://hydra.nixos.org/build/49499970

2017-02-28  Pádraig Brady  <P@draigBrady.com>

	doc: indicate sha1 has the same limitations as md5
	* doc/coreutils.texi (sha1sum invocation): Given that a SHA-1
	preimage attack has occurred as documented at http://shattered.io/,
	document sha1sum as having the same limitations as md5sum.
	(md5sum): Parameterize the warning for use in both cases.
	* man/md5sum.x: Mention b2sum(1) as a more secure alternative.
	* man/sha1sum.x: Give the same warning as done for md5sum(1).

	maint: avoid a -Werror=null-dereference with GCC-6.3.1
	* src/stty.c (sane_mode): Assert to inform the compiler
	we know the pointer will be valid.

	expand,unexpand: support specifying a trailing tab size
	* doc/coreutils.texi (expand invocation): Document the feature.
	(unexpand invocation): Likewise.
	* src/expand-common.c (extend_size): A new global to use
	when the last tab stop is prefixed by '/'.
	(set_extend_size): A new function to validate and set
	the new extend_size global.
	(parse_tab_stops): Call set_extend_size() for '/' prefixes.
	(finalize_tab_stops): Ensure a single specified '/' is
	treated like a standard tabsize, but also ensure that
	when '/' is specified with a single other entry that
	we process as a list rather than a tab size.
	(get_next_tab_stop): Use the tab size if set,
	for items after the user specified tab position list.
	* tests/misc/expand.pl: Add test cases
	* NEWS: Mention the new feature.
	Fixes http://bugs.gnu.org/25540

2017-02-26  Pádraig Brady  <P@draigBrady.com>

	nproc: support OMP_THREAD_LIMIT to set a max value
	This comes from the latest gnulib.
	Also handling of OMP_NUM_THREADS has been adjusted
	to support comma separated values indicating a nesting level,
	in which case the first value is taken.  Also OMP_NUM_THREADS=0
	is now ignored instead of being treated as 1, to match
	the behavior of libgomp.

	* NEWS: Mention the OMP_THREAD_LIMIT improvement,
	and OMP_NUM_THREADS now handling nested values.
	* doc/coreutils.texi (nproc invocation): Describe OMP_THREAD_LIMIT
	as a way to set the max value, with OMP_THREAD_LIMIT setting the min.
	* tests/misc/nproc-override.sh: A new test to exercise the
	updated gnulib code with all combinations of these OMP variables.
	* tests/local.mk: Reference the new test.

2017-02-26  Pádraig Brady  <P@draigBrady.com>

	build: update gnulib submodule to latest

2017-02-22  Pádraig Brady  <P@draigBrady.com>

	doc: add NEWS for an improvement to dd in the last release
	* NEWS: Mention the avoidance of the gotcha with specifying
	a hex constant like count=0x1000 etc. as that previously
	was silently interpreted as 0.

2017-02-22  Pádraig Brady  <P@draigBrady.com>

	cp: set SELinux context for --parents directories
	* src/copy.c (set_process_security_ctx, set_file_security_ctx):
	Export for use in cp.c.
	* src/copy.h: Likewise.
	* src/cp.c (make_dir_parents_private): Call the exported functions
	to set the security context for new and updated directories.
	* tests/cp/cp-a-selinux.sh: Add a test case.

	Fixes http://bugs.gnu.org/25378

2017-02-17  Pádraig Brady  <P@draigBrady.com>

	maint: tweaks so syntax tests pass for previous commit
	* .gitignore: placate sc_gitignore_redundant.
	* po/POTFILES.in: placate sc_po_check.

2017-02-16  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: avoid makeinfo warning
	Commit v8.26-38-g99deaff introduced this warning:

	    MAKEINFO doc/coreutils.info
	  ./doc/coreutils.texi:10268: \
	    warning: `.' or `,' must follow @xref, not `@'.

	* doc/coreutils.texi (readlink invocation): Add '.' after @xref macro.

2017-02-16  Paul Eggert  <eggert@cs.ucla.edu>

	maint: xsetmode renamed to xbinary-io
	* bootstrap.conf, src/base64.c, src/cat.c, src/cksum.c:
	* src/head.c, src/md5sum.c, src/od.c, src/split.c, src/sum.c:
	* src/tac.c, src/tail.c, src/tee.c, src/tr.c, src/wc.c:
	Adjust to renaming of the xsetmode module to xbinary-io,
	and of the xsetmode function to xset_binary_mode.

	build: update gnulib submodule to latest

2017-02-15  Paul Eggert  <eggert@cs.ucla.edu>

	maint: use xsetmode, not xfreopen
	This fixes a bug noted by Eric Blake.  Code was using xfreopen to
	change files to binary mode, but this fails for stdout when in
	append mode.  Such code should use xsetmode instead.  This affects
	only the port on platforms like MS-Windows which distiguish text
	from binary I/O.
	* bootstrap.conf (gnulib_modules):
	Remove xfreopen and add xsetmode.  Sort.
	* src/base64.c (main):
	* src/cat.c (main):
	* src/cksum.c (cksum):
	* src/head.c (head_file, main):
	* src/md5sum.c (digest_file):
	* src/od.c (open_next_file):
	* src/split.c (main):
	* src/sum.c (bsd_sum_file, sysv_sum_file):
	* src/tac.c (tac_file, main):
	* src/tail.c (tail_file):
	* src/tee.c (tee_files):
	* src/tr.c (main):
	* src/wc.c (wc_file): Use xsetmode, not xfreopen.

	build: update gnulib submodule to latest

2017-02-12  Pádraig Brady  <P@draigBrady.com>

	maint: tweaks so syntax tests pass for previous commit
	* src/force-link.h: Don't include headers already included by system.h
	* src/force-link.c: Likewise.  Also include system.h and
	explicitly mark extern functions as such.

2017-02-11  Paul Eggert  <eggert@cs.ucla.edu>

	ln: replace destination links more atomically
	If the file B already exists, commands like 'ln -f A B' and
	'cp -fl A B' no longer remove B before creating the new link.
	Instead, they arrange for the new link to replace B atomically.
	This should fix a race condition reported by Mike Crowe (Bug#25680).
	* NEWS, doc/coreutils.texi (cp invocation, ln invocation):
	Document this.
	* bootstrap.conf (gnulib_modules): Add symlinkat.
	* src/copy.c, src/ln.c: Include force-link.h.
	* src/copy.c (same_file_ok): It's also OK to remove a destination
	symlink when creating symbolic links, or when the source and
	destination are on the same file system and when creating hard links.
	* src/copy.c (create_hard_link, copy_internal):
	* src/ln.c (do_link):
	Rewrite using force_linkat and force_symlinkat, to close a window
	where the destination temporarily does not exist.
	* src/cp.c (main): Do not set x.unlink_dest_before_opening
	merely because we are in link-creation mode.
	* src/force-link.c, src/force-link.h: New files.
	* src/local.mk (copy_sources, src_ln_SOURCES): Add them.
	* tests/cp/same-file.sh: Adjust test case to match fixed behavior.

2017-02-09  Tobias Stoeckmann  <tobias@stoeckmann.org>

	timeout: fix race possibly terminating wrong process
	The race is unlikely, as timeout(1) needs to receive a signal
	in the few operations between waitpid() returning and exit().
	Also the system needs to have reallocated the just released pid
	in this time window.

	Previously we never disabled the signal handler that sent
	the termination signal to the "child" pid.  However once waitpid()
	has reaped the child, the system is free to allocate that pid,
	so we must ensure we don't process any further signals.

	* build-aux/gen-lists-of-programs.sh: Build timeout(1) optionally...
	* configure.ac: ...predicated on sigsuspend() being available.
	* src/timeout.c (block_cleanup): A new function to ensure the
	cleanup() handler is disabled after waitpid has returned.
	(main): Use sigsuspend() to wait with cleanup() enabled but
	disabled once it returns, and thus disabled for the waitpid() call.
	(monitored_pid): Change to the more accurate pid_t.
	* NEWS: Mention the fix.

	Fixes http://bugs.gnu.org/25624

2017-02-09  Pádraig Brady  <P@draigBrady.com>

	doc: note the relationship between realpath and readlink
	* doc/coreutils.texi (realpath invocation): Mention that realpath
	is the preferred command for canonicalization.
	(readlink invocation): Likewise.
	* man/readlink.x: Likewise.

2017-02-08  Janne Snabb  <snabb@epipe.com>

	tail: fix output of redundant headers when resuming
	* src/tail.c (check_fspec): Only enable printing of the file header
	if we've actually read some data and this is a new file.  Also
	move printing of the file header to...
	(dump_remainder): ...here, to allow printing only when data read.
	* tests/tail-2/overlay-headers.sh: A new test for suspension
	and resumption of tail.
	* tests/local.mk: Reference the new test.
	* NEWS: Mention the fix.
	Fixes http://bugs.gnu.org/23539

2017-02-08  Pádraig Brady  <P@draigBrady.com>

	tests: fix tail test race causing false failure
	* tests/tail-2/retry.sh: The replacement of the "missing" directory
	is not atomic, and therefore tail(1) can take a different path,
	especially if there is a delay between the rmdir(2) and creat(2).
	This is noticeable for example with `make coverage` because in
	that case the coverage files written by rmdir(1) on exit,
	induce a significant delay thus triggering the issue.

	tail: fix erroneous status about 'giving up' on file
	* src/tail.c (recheck): Set f->ignore before we
	use it to show the appropriate error.
	* tests/tail-2/retry.sh: Ensure the "giving up" message
	is not presented.

2017-02-08  Pádraig Brady  <P@draigBrady.com>

	doc: only distribute 5 years of ChangeLogs
	Remove old log files that have corresponding entries
	in the source code repository.
	This saves about 2.5MB uncompressed, 0.5M compressed.

	* Makefile.am (gen-ChangeLog): Adjust to taking all
	logs since a particular version (8.15 in this case).
	Also mention in the truncated log where to get older entries.
	(changelog_etc): Remove the no longer distributed files.
	* build-aux/git-log-fix: Remove now unused entries.
	* ChangeLog-200[5-8]: Delete.
	* doc/ChangeLog-2007: Likewise.
	* po/ChangeLog-2007: Likewise.
	* old/*: Likewise.

2017-02-06  Maxime de Roucy  <maxime.deroucy@gmail.com>

	maint: fix HACKING instructions to run a single test
	* HACKING: s/make TEST=/make check TEST=/
	The 'check' target was missing there since v8.20-57-geac397e.

2017-01-25  Pádraig Brady  <P@draigBrady.com>

	build: fix issue with HAVE_FALLOCATE on centos5
	* src/copy.c (punch_hole): Work around an empty definition
	of HAVE_FALLOCATE which leads to a build error of:
	"error: #if with no expression"
	That was triggered by the inclusion of <linux/fs.h> in
	commit v8.25-68-g89e1fef with kernel-headers-2.6.18.
	Reported by Nelson H. F. Beebe

2017-01-25  Manolis Ragkousis  <manolis837@gmail.com>  (tiny change)

	build: Properly expand cu_install_program when cross-compiling
	* src/local.mk (cu_install_program): Replace @INSTALL_PROGRAM@
	with @INSTALL@ when cross-compiling; missed in commit 477a1e8e.
	Message-Id: <20170125163329.5690-1-manolis837@gmail.com>

2017-01-21  Mike Swanson  <mikeonthecomputer@gmail.com>

	dircolors: highlight windows archive format
	* src/dircolors.hin: Match *.{wim,swm,dwn,esd}

2017-01-21  Pádraig Brady  <P@draigBrady.com>

	maint: mention the recent date time zone bug fix
	* NEWS: Add the bug fix from commit v8.26-27-gb14be50

2017-01-21  Assaf Gordon  <assafgordon@gmail.com>

	maint: appease syntax-check failures due to recent updates
	* bootstrap: s/time stamp/timestamp/.
	* old/fileutils/NEWS: Likewise.
	* src/tail.c: Avoided a long line.

2017-01-20  Paul Eggert  <eggert@cs.ucla.edu>

	date: fix TZ= regression
	Problem reported by Paul Wise for Debian, in:
	https://bugs.debian.org/851934
	This is fallout from the fix for GNU Bug#23035.
	* src/date.c (batch_convert): New args TZ and TZSTRING.
	All uses changed.
	(batch_convert, main): Adjust to parse_datetime2 API change.
	(main): Allocate time zone object.
	* tests/misc/date-debug.sh: Fix incorrect test case,
	caught by the fix.
	* tests/misc/date.pl: Test the fix.

	build: update gnulib submodule to latest

2017-01-15  Jim Meyering  <meyering@fb.com>

	maint: update README-hacking, now that vc-dwim accepts --init
	* README-hacking: I've just released vc-dwim-1.8, so we can improve
	the documentation to reference its --initialize option here.

2017-01-14  Paul Eggert  <eggert@cs.ucla.edu>

	date: output "-00" for indeterminate time zone
	* NEWS: Document this behavior, which comes with recent Gnulib.
	* doc/coreutils.texi (Formatting file timestamps, du invocation)
	(Time conversion specifiers, Setting the time, Options for date):
	Mention when -00 is output for numeric time zones.
	Be more careful about Internet RFC numbers, ISO 8601, etc.

	date: new option spelling --rfc-email
	* NEWS:
	* doc/coreutils.texi (Time conversion specifiers)
	(Options for date, Examples of date): Document this.
	* src/date.c (rfc_email_format): Rename from rfc_2822_format.
	All uses changed.
	(usage, long_options): Support --rfc-email.

	maint: modernize URLs
	A lot of this is converting http: to https:.
	Also, gmane went away, so remove URLs that no longer work and
	are not easy to figure out what they were.
	Some of this stuff is so old that it no longer matters anyway.

	build: update gnulib submodule to latest

2017-01-10  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: move "File timestamps" to a separate chapter
	The above new section looked a bit odd as the only general documentation
	in between the utility chapters.

	* doc/coreutils.texi (File timestamps): Move to a separate chapter.

2017-01-10  Eric Blake  <eblake@redhat.com>

	maint: fix recent syntax check failures
	Commit 4f650aad was incomplete; it changed NEWS but not the hash,
	and introduced a grammar error.

	* cfg.mk (old_NEWS_hash): Update via 'make update-NEWS-hash'.
	* doc/coreutils.texi (File timestamps): Fix doubled word.

2017-01-09  Paul Eggert  <eggert@cs.ucla.edu>

	doc: cover file timestamps better
	Prompted by a bug report from Scott Deerwester (Bug#25407).
	* doc/coreutils.texi (File timestamps): New section.
	Revamp other sections to use this new section, and
	use more-consistent terminology.

	maint: standardize on "timestamp" as per POSIX

2017-01-08  Pádraig Brady  <P@draigBrady.com>

	stty: ensure no side effects from invalid options
	* src/stty.c (apply_settings): A new function refactored
	from main() that is used to both check and apply options.
	(main): Call apply_settings before we open the device,
	so all validation is done before interacting with a device.
	* NEWS: Mention the improvement.
	* tests/misc/stty.sh: Add a test case.

2017-01-05  Assaf Gordon  <assafgordon@gmail.com>

	tests: improve 'date --debug' tests
	Update tests following improvements to gnulib's parse-datetime.y module.
	See https://lists.gnu.org/archive/html/bug-gnulib/2017-01/msg00002.html

	* tests/misc/date-debug.sh: Add tests for each of the gnulib changes.

2017-01-05  Assaf Gordon  <assafgordon@gmail.com>

	build: update gnulib submodule to latest

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

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

	* gnulib: Update to latest with copyright year adjusted.
	* tests/init.sh: Sync with gnulib to pick up copyright year.
	* bootstrap: Likewise.
	* tests/sample-test: Adjust to use the single most recent year.

2016-12-28  Zooko  <zookog@gmail.com>

	doc: recommend b2sum as well as SHA2
	b2sum is faster, easier to use safely, and more future-proof

2016-12-28  Pádraig Brady  <P@draigBrady.com>

	tests: avoid false fails on NFS due to EPERM
	* tests/chgrp/basic.sh: On some NFS setups a user is
	not allowed to set a group on a file even if a member
	of that group.  Therefore skip this test on remote file systems.
	* tests/chgrp/default-no-deref.sh: Likewise.
	* tests/chgrp/no-x.sh: Likewise.
	* tests/chgrp/posix-H.sh: Likewise.
	* tests/chgrp/recurse.sh: Likewise.
	* tests/tail-2/inotify-rotate-resources.sh: Change to skipping
	on remote file systems in the standard way.

2016-12-27  Paul Eggert  <eggert@cs.ucla.edu>

	doc: Update POSIX part of README (Bug#25259)

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

	wc: with only --bytes, determine size more efficiently
	* src/wc.c (wc): Avoid reading the end of the file
	when the size is not a multiple of PAGE_SIZE,
	as the special case handling for files in /proc and /sys
	is only required when st_size is 0 or a multiple of PAGE_SIZE.
	* tests/misc/wc-proc.sh: Add a test case.

2016-12-20  Pádraig Brady  <P@draigBrady.com>

	maint: correct the version for the previous bug fix
	While st_size would have been incorrect for subsequent
	files since v7.1, it was only used since v8.24.

	* tests/misc/wc-files0.sh: s/7.1/8.24/
	* NEWS: Likewise.

	Reported by Bernhard Voelker

2016-12-19  William R. Fraser  <wfraser@codewise.org>

	wc: fix wrong byte counts when using --files-from0
	* src/wc.c (main): Reset fstatus[0].failed between files when reusing
	the fstatus[0] entry in --files-from0 mode.  This ensures a stat() is
	done for each file, avoiding incorrect counts and redundant reading.
	* NEWS: Mention the bug fix.
	* tests/misc/wc-files0.sh: Add a test case.
	Fixes http://bugs.gnu.org/23073

2016-12-18  Pádraig Brady  <P@draigBrady.com>

	tests: fix typos in previous commit
	* init.cfg (skip_if_mcstransd_is_running_): Fix typos
	_introduced my me_ in the previous commit.

2016-12-18  Nicolas Iooss  <nicolas.iooss@m4x.org>

	tests: support non-MLS enabled SELinux systems
	When running "make check" on a Linux system running SELinux with a
	non-MLS policy, tests/mkdir/restorecon.sh test fails with:

	  chcon: invalid context: root:object_r:tmp_t:s0: Invalid argument

	Indeed in such a configuration, contexts cannot have ":s0" suffix.

	* init.cfg (get_selinux_type): Refactor this function to here
	from various tests.  Update to work with a non-MLS policy.
	(mls_enabled_): A new function to detect if MLS is enabled.
	(skip_if_mcstransd_is_running_): Update to not skip when
	MLS is not enabled.
	* tests/mkdir/restorecon.sh: Use a valid non-MLS context when needed.
	* tests/install/install-Z-selinux.sh: Likewise.
	* tests/cp/cp-a-selinux.sh: Likewise.
	* tests/misc/selinux.sh: Likewise.
	* tests/misc/chcon.sh: Skip if non-MLS as --range used throughout.
	Fixes http://bugs.gnu.org/22631

2016-12-08  Torbjörn Granlund  <tg@gmplib.org>

	factor: retry properly if Pollard rho gives a trivial factorization
	* src/factor.c (factor_using_pollard_rho): Handle trivial factor g = n.
	(factor_using_pollard_rho2): Handle trivial factor g1 = n1, g0 = n0.
	* tests/misc/factor.pl: Add a test case.
	Fixes http://bugs.gnu.org/25135

2016-12-08  Niels Möller  <nisse@lysator.liu.se>

	factor: fix infinite loop in gcd2_odd
	* src/factor.c (gcd2_odd): Fix the case a1 == 0, a0 == 0.
	* NEWS: Mention the bug fix.
	Fixes http://bugs.gnu.org/25135

2016-12-02  Pádraig Brady  <P@draigBrady.com>

	doc: fix --help for: od -t f[SIZE]
	* src/od.c (usage): SIZE is that of float, not integer.

2016-11-30  Pádraig Brady  <P@draigBrady.com>

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

	version 8.26
	* NEWS: Record release date.

	tests: fix false failure with spaces in $PWD
	* tests/misc/ptx-overrun.sh: Quote appropriately to avoid this
	recently added issue, noticed by `make taint-distcheck`.

	maint: avoid "make distcheck" failure without excess .deps directories
	* Makefile.am (my-distcheck): Add the -r option to xargs so that
	rmdir doesn't return an error when there are no extraneous .deps dirs.

2016-11-29  Pádraig Brady  <P@draigBrady.com>

	tests: fix ERRORs and false FAILs on some platforms
	* tests/misc/ls-time.sh: Skip the test rather than ERROR
	when `touch -m -d ...` fails (Hurd).
	* tests/tail-2/follow-stdin.sh: Avoid false FAILs by ignoring
	the variances in sterror output.
	* tests/rm/rm-readdir-fail.sh: Likewise.  Also avoid ERRORs
	on systems that don't define _D_EXACT_NAMELEN.

2016-11-28  Pádraig Brady  <P@draigBrady.com>

	head: fix processing of non-seekable input as seekable
	* src/head.c (elide_tail_bytes_file): Ensure we don't use
	st_size unless we've previously used seek() to determine
	the CURRENT_POS in the seekable file.
	This was seen to cause issue on FreeBSD 11 when the pipe
	buffer was filled with `yes | head --lines=-0`, in which
	case st_size was 64KiB while ST_BLKSIZE() was 4KiB.
	Reported by Assaf Gordon.

2016-11-28  Kamil Dudka  <kdudka@redhat.com>

	install,mkdir: fix handling of -DZ and -pZ, respectively
	... in the case where two or more directories nested in each other are
	created and each of them defaults to a different SELinux context.

	* src/install.c (make_ancestor): When calling defaultcon(), give it the
	same path that is given to mkdir().  The other path is not always valid
	wrt. current working directory.
	* src/mkdir.c (make_ancestor): Likewise.
	* NEWS: Mention the bug fix.

	Reported at https://bugzilla.redhat.com/1398913

2016-11-28  Pádraig Brady  <P@draigBrady.com>

	tac: fix mem corruption when failing to read non seekable inputs
	This was detected with ASAN, but can also be seen without ASAN with:
	  $ tac - - <&-
	  tac: standard input: read error: Bad file descriptor
	  *** Error in `tac': malloc(): memory corruption: 0x...

	* src/tac.c (copy_to_temp): Don't close our output stream on
	(possibly transient) output error, or on input error.
	(temp_stream): clearerr() on the stream about to be reused,
	to ensure future stream use is not impacted by transient errors.
	* tests/misc/tac-2-nonseekable.sh: Add a test case.
	* NEWS: Mention the bug fix.
	Fixes http://bugs.gnu.org/25041

2016-11-27  Pádraig Brady  <P@draigBrady.com>

	tail: fix uninitialized memory read when failing to read file
	Reproduced under UBSAN with `tail -f <&-` giving:
	  tail.c:2220:18: runtime error: load of value 190,
	  which is not a valid value for type ‘_Bool'

	* src/tail.c (tail_file): Ensure f->ignore is initialized
	in all cases where we can't tail the specified file.
	* tests/tail-2/follow-stdin.sh: Add a test case which
	checks stderr has no UBSAN warnings.
	Fixes http://bugs.gnu.org/25041

2016-11-26  Pádraig Brady  <P@draigBrady.com>

	doc: add NEWS entries for recent changes
	* NEWS: Mention in improvements about the workaround for
	the glibc issue with closed stdin, and the new supported file systems.
	* tests/misc/b2sum.sh: Spelling fix.

2016-11-26  Pádraig Brady  <P@draigBrady.com>

	stat,tail: sync with latest Linux file systems
	Update with the results from:

	  kgit='https://git.kernel.org/cgit/linux/kernel/git'
	  wget -q $kgit/torvalds/linux.git/plain/include/uapi/linux/magic.h \
	    -O src/fs-latest-magic.h
	  make src/fs-magic-compare

	* src/stat.c (human_fstype): Add entries for:
	BALLOON_KVM, CGROUP2, DAXFS, ZSMALLOC.

2016-11-26  Pádraig Brady  <P@draigBrady.com>

	build: fix potential factor build failure on arm and risc
	* src/longlong.h: Sync from gmp repo incorporating:
	Protect umul_ppmm with do ... while (0)
	Replace obsolete ARC asm 'J' constraints with 'Cal'
	Provide umul_ppmm for riscv64

2016-11-26  Pádraig Brady  <P@draigBrady.com>

	shred,sort: ensure faster unaligned access to rand module
	glibc has changed the public define
	from _STRING_ARCH_unaligned to _STRING_INLINE_unaligned as per
	https://sourceware.org/bugzilla/show_bug.cgi?id=19462

	* gl/lib/rand-isaac.c: Cater for both defines.
	* gl/lib/randread.c: Likewise.
	* src/system.h: Update commented out code.

2016-11-26  Paul Eggert  <eggert@cs.ucla.edu>

	shuf: test input-closed bug
	Problem reported by Alex Ryan (Bug#25029).
	* tests/misc/shuf.sh: Test for shuffling with stdin closed.

	build: update gnulib submodule to latest

2016-11-25  Paul Eggert  <eggert@cs.ucla.edu>

	numfmt: pacify Sun C 5.14
	* src/numfmt.c (main): Don't implicitly coerce pointer in bool
	initializer.  Although it's portable C99 code, it's confusing.

2016-11-25  Pádraig Brady  <P@draigBrady.com>

	tests: fix false failure on new ls test
	* tests/ls/quote-align.sh: Remove "total" line
	which can vary per file system depending on allocation.
	Reported by Assaf Gordon on OpenSolaris (5.11/5.10).

2016-11-25  Pádraig Brady  <P@draigBrady.com>

	pr: fix read from invalid memory with tabs in separator
	This was detected with:
	  echo a > a; pr "-S$(printf "\t\t\t")" a -m a > /dev/null
	Resulting in ASAN triggering:
	  ====================================================
	  ERROR: AddressSanitizer: global-buffer-overflow
	  READ of size 1 at 0x00000041b622 thread T0
	    #0 0x40506a in print_sep_string ../src/pr.c:2241
	    #1 0x407ec4 in read_line ../src/pr.c:2493
	    #2 0x40985c in print_page ../src/pr.c:1802
	    #3 0x40985c in print_files ../src/pr.c:1618
	    #4 0x4036e0 in main ../src/pr.c:1136

	* src/pr.c (init_parameters): Ensure we only override the
	specified separator when it's a single tab, thus matching
	the calculated separator length.
	* tests/pr/pr-tests.pl: Add a test case.
	* NEWS: Mention the fix.

2016-11-24  Pádraig Brady  <P@draigBrady.com>

	ptx: fix an invalid heap reference with short --width
	* src/ptx.c (fix_output_parameters): Ensure line_width doesn't
	go negative, which can happen when the --width is less
	than the --gap-size.
	* tests/misc/ptx-overrun.sh: Add a test case that triggers
	with ASAN.  (Note the longer filename is needed to trigger).
	Fixes http://bugs.gnu.org/25011

2016-11-24  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: clarify that readlink's --quiet option is on by default
	* src/readlink.c (usage): Mark the --quiet/--silent option as active
	by default.
	* doc/coreutils.texi (readlink invocation): Likewise.

2016-11-23  Pádraig Brady  <P@draigBrady.com>

	tests: fix false failure with ASAN in rm-readdir-fail
	* tests/rm/rm-readdir-fail.sh: ASAN correctly indicated
	that fts was writing to freed memory.  This was because
	we reused a single dirent in our readdir() test wrapper.
	Since fts was deallocating those dirents, we now get
	a new dirent for each call to our readdir wrapper.

2016-11-23  Pádraig Brady  <P@draigBrady.com>

	split: fix memory corruption during chunk extraction
	ASAN reported this error for: split -n2/3 /dev/null
	  ERROR: AddressSanitizer: negative-size-param: (size=-1)
	  #0 0x7f0d4c36951d in __asan_memmove (/lib64/libasan.so.2+0x8d51d)
	  #1 0x404e06 in memmove /usr/include/bits/string3.h:59
	  #2 0x404e06 in bytes_chunk_extract src/split.c:988
	  #3 0x404e06 in main src/split.c:1626

	Specifically there would be invalid memory access
	and subsequent processing if the chunk to be extracted
	was beyond the initial amount read from file (which is
	currently capped at 128KiB).  This issue is not in a
	released version, only being introduced in commit v8.25-4-g62e7af0

	* src/split.c (bytes_chunk_extract): The initial_read != SIZE_MAX
	should have been combined with && rather than ||, but also this
	condition is always true in this function so remove entirely.
	* tests/split/b-chunk.sh: Add a test case.

	Fixes http://bugs.gnu.org/25003

2016-11-23  Pádraig Brady  <P@draigBrady.com>

	tail: fix checking of remoteness when not using inotify
	In recent commit v8.25-93-g7fc7206 we used the f->remote flag
	which wasn't set in all cases.  This was detected with
	ASAN giving this error when reading f->remote;
	  runtime error: load of value 190,
	  which is not a valid value for type '_Bool'

	* src/tail.c (fremote): Query the system even without inotify.
	(recheck): Always set f->fremote for valid files.

2016-11-23  Jim Meyering  <meyering@fb.com>

	build: avoid racy failure of "make -jN install"
	Installing with -j2 or greater could result in a failure like
	  /bin/sh: line 29: /P/bin/install: Permission denied
	when /P/bin/install specifies your PATH-selected install program.
	This would arise because we're using "install" to install all
	man/*.1 files, and that command would run concurrently with the one
	that installs "/P/bin/install" itself.  We would run this command:
	"src/ginstall src/ginstall /P/bin/install", and it would result
	in intervals during which the destination file does not exist,
	is empty or incomplete and not executable.  We addressed this
	problem long ago for installation of actual binaries by telling the
	installation rules to use our just-built bin/ginstall (only when not
	cross-compiling) rather than the PATH-resolved "install" program.
	This change is to do the same for those .1 files.
	* src/local.mk (INSTALL): Override automake's default of something
	like "INSTALL = /P/bin/install -c".
	(INSTALL_PROGRAM): Now that we set INSTALL, there is no longer any
	need to set this derived variable.  Its default definition,
	"INSTALL_PROGRAM = ${INSTALL}" does what we require.
	Improved by Eric Blake.

2016-11-23  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: fix 'syntax-check' targets for VPATH builds
	* cfg.mk (sc_gitignore_missing): Add $(srcdir) to .gitignore filename.
	(sc_gitignore_redundant): Likewise.

	maint: add build-aux/ar-lib to .gitignore
	* .gitignore: Add entry for the above file which is created
	by  './bootstrap'.

2016-11-23  Paul Eggert  <eggert@cs.ucla.edu>

	pr: fix integer overflow in buffer size calcs
	Problem reported by Marcel Böhme (Bug#24996).
	* configure.ac (WERROR_CFLAGS): Avoid -Wtype-limits.
	* src/pr.c (col_sep_string): Now a const pointer.  All uses changed.
	(integer_overflow): New function.
	(separator_string, main, init_parameters, init_store_cols):
	Check for integer overflow.
	(align_column, read_line, print_stored): Avoid integer overflow.

2016-11-22  Bernhard Voelker  <mail@bernhard-voelker.de>

	comm: add --total option
	* src/comm.c (total_option): Add bool variable for the new option.
	(TOTAL_OPTION): Add enum value.
	(long_options): Add array element for the new option.
	(usage): Document the new option here.
	(compare_files): Count the lines in total[3], and output the summary at
	the end.
	(main): Accept the new option.
	* doc/coreutils.texi (comm invocation): Document it.
	* tests/misc/comm.pl: Test it.  While at it, improve the test data
	to have 1 unique line in the first file, 2 unique lines in the second
	file, and 3 common lines.
	* NEWS (New Features): Mention the new option.

	Fixes http://bugs.gnu.org/24929

2016-11-22  Pádraig Brady  <P@draigBrady.com>

	all: update gnulib submodule to latest
	Also sync these copies with gnulib:
	* bootstrap: Sync missed part of AIX support.
	* tests/init.sh: Support compare_ on AIX.

	tests: fix false failure with FreeBSD 11 multibyte quoting
	* tests/misc/printf-quote.sh: FreeBSD 11 was seen to treat
	\u0378 as a printable character.  Therefore change to
	using the \u0081 C1 control character.  We use the UTF-8
	representation because our printf implementation explicitly
	disallows \u0081 as input.
	Reported by Assaf Gordon

2016-11-22  Pádraig Brady  <P@draigBrady.com>

	tests: fix false fails due to passing env vars to returns_
	On BSD /bin/sh it was seen that unexported env vars passed to
	returns_() would not be propagated to the wrapped command.

	* cfg.mk (sc_prohibit_env_returns): Add a syntax check to disallow.
	* tests/misc/csplit-io-err.sh: Rearrange to export vars in a subshell.
	* tests/rm/rm-readdir-fail.sh: Likewise.
	* tests/misc/nohup.sh: Export and unset vars around returns_.
	* tests/misc/printenv.sh: Likewise.
	Reported by Assaf Gordon

2016-11-22  Pádraig Brady  <P@draigBrady.com>

	tests: fix recent tail-2 test regressions
	* tests/tail-2/pipe-f.sh: Avoid issue with readable
	directories on BSD systems.
	* tests/tail-2/retry.sh: Likewise.
	Reported by Assaf Gordon

2016-11-22  Pádraig Brady  <P@draigBrady.com>

	ls: improve alignment of quoted names
	This provides better alignment when some names are quoted,
	which also provides better indication that quotes are not
	part of the name.

	* src/ls.c (align_variable_outer_quotes): A new variable
	set when ls is aligning columns (not using -m, non-zero -w),
	and has a variable quoting style (shell, shell-escape, c-maybe).
	(quote_name_buf): Writes to buffer rather than FILE,
	taking care to avoid data copying if possible.  Refactored from...
	(quote_name): ...here.  This now manages the buffer passed
	to quote_name_buf() and outputs the padding, colors and name
	in the appropriate order, while managing the --dired offsets.
	(get_color_indicator): A new function to return the color sequence,
	refactored from...
	(print_color_indicator): ...here.  This now simply outputs.
	(print_dir): Refactor common parts to quote_name().
	(clear_files): Reset the flag indicating at least one
	file is quoted in the current directory.
	(needs_quoting): A new function to indicate at the scan stage
	whether a name needs quoting.  Called from...
	(gobble_file): ...here, until we find the first quoted file.
	(print_name_with_quoting): Mostly refactored to quote_name().
	* tests/ls/quote-align.sh: A new test for various output formats.
	* tests/local.mk: Reference the new test.
	* NEWS: Mention the improvement.

2016-11-22  Pádraig Brady  <P@draigBrady.com>

	b2sum: a new checksum utility with md5sum like interface
	Note we don't support the --algorithm option of the
	b2sum command in the external BLAKE2 project, as that
	was deemed too confusing for users.
	"BLAKE2b" was chosen as the default algorithm to use,
	which is single threaded but performs well on 64 bit.

	* src/blake2: CC0 source copied from external project.
	* cfg.mk[VC_LIST_ALWAYS_EXCLUDE_REGEX]: Exclude blake2/
	from syntax checks, make update-copyright, etc.
	* src/local.mk: Reference the sources for b2sum,
	and set the compilation flags.
	* doc/coreutils.texi (b2sum invocation): Reference the
	md5sum invocation node, and add descriptions of -l.
	* tests/misc/b2sum.sh: Add new test.
	* tests/local.mk: Reference new test.
	* AUTHORS: Add new binary.
	* README: Likewise.
	* build-aux/gen-lists-of-programs.sh: Likewise.
	* man/.gitignore: Likewise.
	* scripts/git-hooks/commit-msg: Likewise.
	* man/b2sum.x: New man page template.
	* man/local.mk: Reference new template.
	* src/.gitignore: Ignore new binaries.
	* src/blake2/.gitignore: Ignore new build atrifacts.
	* src/md5sum.c (usage): Describe the new -l option.
	* NEWS: Mention the new program.

2016-11-22  Jim Meyering  <meyering@fb.com>

	maint: avoid "make distcheck" failure due to excess .deps directories
	* Makefile.am (my-distcheck): Remove all .deps directories before the
	recursive diff that searches for left-behind files.  Otherwise, with
	automake master (some time after v1.15), "make distcheck" would fail
	due to those directories being left behind after "make distclean".

2016-11-19  Pádraig Brady  <P@draigBrady.com>

	cp: improve status message when omitting directories
	* src/copy.h (cp_options): Add a new flag for install(1).
	* src/copy.c (copy_internal): For cp, also output remediation
	advice which also indicates why directories aren't copied by default.
	The message is unchanged for install(1).
	* src/cp.c (cp_option_init): Init install_mode to false.
	* src/mv.c (cp_option_init): Likewise.
	* src/install.c (cp_option_init): Init install_mode to true.
	* tests/install/basic-1.sh: Add a test case.
	* tests/cp/link-deref.sh: Adjust test case.
	Fixes http://bugs.gnu.org/24958

2016-11-15  Pádraig Brady  <P@draigBrady.com>

	tests: fix non portable date in recent test
	* tests/misc/date.pl: Years < 1900 fail on solaris at least.
	Reported by Assaf Gordon

	tests: fix false failure on OS X
	* tests/misc/sort-h-thousands-sep.sh: The sv_SE locale
	may be available while sv_SE.utf8 is not.  Therefore
	test and use the same locale, now definfed in a variable.
	Reported by Jim Meyering.

2016-11-15  Antonio Ospite  <ao2@ao2.it>

	dircolors: highlight Motion JPEG multimedia files
