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

	version 8.29
	* NEWS: Record release date.

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

	tests: avoid false failure on AIX 7.2
	* tests/tail-2/pipe-f.sh: Close stdout in a subshell
	to ensure the current shell isn't impacted.  Subsequent
	piped commands like `echo foo | blah` were seen to fail
	due to the previous closing of stdout.
	Reported by Assaf Gordon.

	doc: describe recent build checks for 32 bit time_t
	* README: Document the new handling of 32 bit time_t,
	with examples of how to build in 64 bit mode on AIX.
	Also mention that GNU make is desired on AIX
	due to its mishandling of the "[" target.
	Suggested by Assaf Gordon.

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

	tests: fix recent portability issues on solaris 10
	* tests/misc/ptx.pl: Escape the '^' character which is
	otherwise considered as a line continuation character.
	* tests/misc/shred-remove.sh: sed doesn't support \n.

	maint: remove reference to excluded changelog item
	* build-aux/git-log-fix: Remove old entry.

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

	maint: add doc/coverage to .gitignore
	* .gitignore: Ignore the generated coverage report.

	doc: remove older ChangeLog items
	* Makefile.am: Update the oldest documented version
	to 8.20 which is now about 5 years old.

2017-12-18  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: mention which privileges are needed to chmod
	POSIX specification for chmod(1):
	https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html

	* doc/coreutils.texi (chmod invocation): Add a sentence about who can
	change the file mode bits of a file - (almost) a copy from what POSIX
	requires.

	Fixes https://bugs.gnu.org/29207.

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

	tests: fix recent regressions with dash
	* tests/misc/timeout.sh: dash outputs the "Killed"
	message to stderr rather than the terminal.
	* tests/misc/usage_vs_getopt.sh: dash doesn't yet
	support the POSIX proposed $'...' shell quoting syntax.

	build: avoid a signed overflow warning in ptx
	* src/ptx.c (fix_output_parameters): GCC 6.3.1 with
	./configure --enable-single-binary would give:
	  error: assuming signed overflow does not occur
	  when simplifying conditional to constant [-Werror=strict-overflow]
	    if (file_index > 0)
	So change the type of file_index to signed (size_t).

2017-12-11  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: adjust for the renamed nstrfime gnulib module
	* bootstrap.conf: s/strftime/nstrfrime/.

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

	build: update gnulib submodule to latest
	* gnulib: Update with various build/test fixes.

	tests: fix false failure in new dd/nocache_eof test
	* test/dd/nocache_eof.sh: Also handle fadvise64_64 which is
	used on 32 bit x86.  Note strace internally maps fadvise64_64
	to {arm,xtensa}_fadvise64_64.

	tail: fix tailing non seekable files on certain systems
	* src/tail.c (tail_bytes): On systems were blksize_t is unsigned
	and the same size or wider than off_t (android for example),
	our initialized (off_t) -1 would be promoted to unsigned before
	comparison, and thus fail to follow the appropriate path.
	* tests/tail-2/tail-c.sh: Add a test case.
	* NEWS: Mention the fix.
	This issue was introduced in commit v8.23-47-g2662702
	Reported at https://github.com/termux/termux-app/issues/233

	build: avoid build failure without sys/mtio.h
	* m4/jm-macros.m4: Check for the header.
	* src/dd.c: Avoid the workaround where the header
	is not available (on non glibc systems).
	* src/shred.c: Likewise.

	doc: reorganize ls -k and --time-style help
	* src/ls.c (usage): Clarify -k only applies to -s usage
	and directory 'total' lines.  Move the description
	of TIME_STYLE out of the option section as it was awkward
	to read and write there within 80 columns.

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

	doc: clarify numeric setuid handling in chmod man page
	* man/chmod.x: Update the information to state one can
	clear the setuid and setgid bits for directories numerically
	using an additional leading '0' or a leading '='.
	That has been supported since v8.15-64-g8931cdb.
	Fixes https://bugs.gnu.org/29390

	doc: shred: change 'truncate' to the more descriptive 'deallocate'
	* doc/coreutils.texi (shred invocation): s/truncate/deallocate/.
	* src/shred.c (usage): Likewise.
	Fixes https://bugs.gnu.org/29317

	doc: clarify that cp --force may recreate files
	* doc/coreutils.texi (cp invocation): The language used
	to describe recreating the file was a little confusing
	as it mentioned opening a removed file.
	Fixes https://bugs.gnu.org/29315

2017-12-04  Kamil Dudka  <kdudka@redhat.com>

	doc: fix default QUOTING_STYLE for %N format of stat(1)
	* doc/coreutils.texi (stat invocation): The default value
	of QUOTING_STYLE for the %N format of 'stat --printf' is
	'shell-escape-always'.
	Fixes https://bugs.gnu.org/29563
	Reported by Christian Groessler at
	https://bugzilla.redhat.com/1520399#c3

2017-12-02  Jean Delvare  <jdelvare@suse.de>

	tests: make ls/block-size more readable
	* tests/ls/block-size.sh: The output of the test was hard to read. Add
	comments saying what we are testing to make it easier to understand.

2017-11-29  Bernhard Voelker  <mail@bernhard-voelker.de>
	    Pádraig Brady  <P@draigBrady.com>

	tests: verify usage vs. getopt
	Verify that all options mentioned in usage are actually recognized
	by the program.

	* tests/misc/usage_vs_getopt.sh: Add test.
	* tests/local.mk (all_tests): Reference it.

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

	readlink: remove superfluous comma from usage output
	* src/readlink.c (usage): Remove ',' after --quiet option.

2017-11-29  Bernhard Voelker  <mail@bernhard-voelker.de>

	all: use consistent diagnostics for unknown long options
	Previously, e.g. cksum failed to output the offending unknown long
	option:
	  $ cksum --unknown-opt
	  cksum: invalid option -- '-'
	  Try 'cksum --help' for more information.
	i.e., it tried to diagnose '-' as short option.
	Instead, it should diagnose the unknown long option:
	  $ cksum --unknown-opt
	  cksum: unrecognized option '--unknown-opt'
	  Try 'cksum --help' for more information.

	* src/cksum.c (long_options): Add struct with null entry only.
	(main): Use it in the getopt_long call.
	* src/dd.c: Likewise.
	* src/hostid.c: Likewise.
	* src/hostname.c: Likewise.
	* src/link.c: Likewise.
	* src/logname.c: Likewise.
	* src/nohup.c: Likewise.
	* src/sleep.c: Likewise.
	* src/tsort.c: Likewise.
	* src/unlink.c: Likewise.
	* src/uptime.c: Likewise.
	* src/users.c: Likewise.
	* src/whoami.c: Likewise.
	* src/yes.c: Likewise.
	* NEWS (Improvements): Mention the fix.

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

	test: fix issues with tests/cp/preserve-mode.sh
	* tests/cp/preserve-mode.sh: This was the only use of awk,
	which may not be available on the system resulting
	in an ineffective test.  Also the permissions bits for
	directories were not being checked at all.

	build: update gnulib submodule to latest
	* gnulib: Update with various build/test fixes.

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

	build: update gnulib submodule to latest
	* gnulib: Update including various build fixes.

2017-11-27  Bernhard Voelker  <mail@bernhard-voelker.de>

	timeout: also support short -v option
	* src/timeout.c (main): Add short option character 'v' to getopt_long
	call.
	* tests/misc/timeout.sh: Run the test both for the long and the short
	option.

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

	dd: support iflag=direct with arbitrary sized files
	* src/dd.c (iread): Handle read error with a non-aligned
	file offset in the O_DIRECT case.  This is not an issue
	on XFS at least, but on EXT4 the final read will return
	EINVAL rather than the expected 0 to indicate EOF.
	* tests/dd/direct.sh: Test the iflag=direct case also.
	* NEWS: Mention the improvement.

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

	timeout: add --verbose to diagnose timeouts
	This is useful as handling in shell is complicated
	with the varying exit status in the --kill-after case.

	* src/timeout.c (main): Handle '-v' and store
	COMMAND for the diagnostic.
	(cleanup): Diagnose the signal name before sending.
	(usage): Document -v, --verbose.
	* doc/coreutils.texi (timeout invocation): Likewise.
	* tests/misc/timeout.sh: Add a test case.
	* NEWS: Mention the new feature
	Fixes https://bugs.gnu.org/21760

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

	tail: seek to the end of block devices
	* src/tail.c (tail_bytes): Try lseek(..., SEEK_END) when
	we can't determine the file size.
	* tests/tail-2/end-of-device.sh: Add a new root only test.
	* tests/local.mk: Reference the new test.
	* NEWS: Mention the improvement.
	Paul Eggert suggested using lseek() (rather than ioctl(BLKGETSIZE64)).
	Fixes https://bugs.gnu.org/29259

2017-11-14  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: include the module year2038 from gnulib
	* bootstrap.conf (gnulib_modules): Add 'year2038' to ensure that time_t
	is 64-bit (and thus works after 2038).

	Suggested by Bruno Haible in
	https://lists.gnu.org/r/bug-gnulib/2017-11/msg00022.html

2017-11-14  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: update gnulib to latest
	* gnulib: Update - mainly for the recent year2038 changes.
	* tests/init.sh: Update from gnulib/tests/init.sh.

2017-11-09  Assaf Gordon  <assafgordon@gmail.com>

	doc: add github issue/pull-request templates
	These templates instruct contributors not to use github, and instead
	use the upstream GNU development resources. Discussed in
	http://lists.gnu.org/archive/html/coreutils/2017-11/msg00007.html .

	* .github/ISSUE_TEMPLATE.txt,
	  .github/PULL_REQUEST_TEMPLATE.txt: New files.

2017-11-08  Jim Meyering  <meyering@fb.com>

	maint: make hook script reject "/archive/html" in lists.gnu.org URLS
	* scripts/git-hooks/commit-msg: Require the abbreviated "/r/"
	form in any log message URL.

	maint: shorten https://lists.gnu.org/archive/html/... links
	Each /archive/html/ part can be replace with /r/.
	Run this to induce the change:
	git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g'
	* TODO: Perform that substitution.
	* bootstrap: Likewise.
	* src/sort.c (sequential_sort): Likewise.
	* src/tail.c (tail_file): Likewise.
	* tests/misc/sort-merge-fdlimit.sh: Likewise.
	* tests/misc/stty-row-col.sh: Likewise.
	* tests/misc/unexpand.pl: Likewise.
	* tests/rm/readdir-bug.sh: Likewise.
	* tests/tail-2/inotify-rotate.sh: Likewise.

2017-11-07  Thomas Deutschmann  <whissi@gentoo.org>

	tests: avoid false failure with inaccessible mount points
	* tests/ls/readdir-mountpoint-inode.sh: Skip the test
	if any mount points are inaccessible by the current user.
	Fixes https://bugs.gnu.org/29167
	Reported at: https://bugs.gentoo.org/353164

2017-11-06  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: fix "Up" field of realpath usage examples
	Older versions of 'makeinfo' choke on a missing reference:

	  ./doc/coreutils.texi:14177: `Realpath usage examples' has no Up field\
	  (perhaps incorrect sectioning?).
	  makeinfo: Removing output file `doc/coreutils.info' due to errors; \
	  use --force to preserve.

	* doc/coreutils.texi (realpath invocation): Add a menu referencing
	the usage examples - introduced in v8.27-91-g7449f0d.

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

	maint: ensure https:// URLs are used in --help and man pages
	* configure.ac(AC_INIT): Specify the URL explicitly, so we're
	not dependent on unreleased autoconf.

2017-10-31  Assaf Gordon  <assafgordon@gmail.com>

	stat: output default formats for --terse in usage
	Suggested by L A Walsh in https://bugs.gnu.org/28763 .

	* src/stat.c (fmt_terse_fs): Define format for --terse -f here.
	(fmt_terse_regular): Define format for --terse here.
	(fmt_terse_selinux): Likewise for when SELinux is enabled.
	(default_format): Use the above constants.
	(usage): Output the formats for the terse modes.

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

	df: fix hang with fifo argument
	* src/df.c (main): stat() before open(), and avoid
	the optional open when given a fifo argument.
	* tests/df/unreadable.sh: Add a test case.
	* NEWS: Mention the fix.
	Fixes https://bugs.gnu.org/29038

2017-10-28  Jim Meyering  <meyering@fb.com>

	build: ls.c: apply _GL_ATTRIBUTE_PURE to more functions
	* src/ls.c (DEFINE_SORT_FUNCTIONS): Apply _GL_ATTRIBUTE_PURE
	to each strcmp-derived function definition, since GCC8 with
	-Wsuggest-attribute=pure now warns it is needed.

2017-10-26  Vincent Lefevre  <vincent@vinc17.net>

	doc: reference statfs(2) in the stat(1) man page
	* man/stat.x (SEE ALSO): Mention statfs(2) in addition to stat(2).
	Note statfs() is generally used rather than statvfs(),
	so we'll defer that reference to the SEE ALSO section of statfs(2).
	Fixes https://bugs.gnu.org/28989

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

	tests: avoid false failure when O_DIRECT isn't supported
	* tests/dd/nocache_eof.sh: Only run the O_DIRECT tests
	when 512 byte alignment is supported.  Otherwise with older
	XFS on systems with > 1MiB pages, or on file systems not
	supporting O_DIRECT, there would have been false failures.
	* tests/dd/direct.sh: Clarify the skip message.

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

	dd: fix nocache regions passed to posix_fadvise()
	Previously with oflag=direct the call to invalidate_cache()
	was not passed to the kernel, as it was less than a page size,
	and a subsequent call was not made to invalidate the pending space.
	Similarly with oflag=nocache the pending space at EOF was
	not invalidated.  Even though these amount to only a single page
	in the page cache it can be significant.  For example on
	XFS before kernel patch v4.9-rc1-4-g0ee7a3f, O_DIRECT files
	would have been read inefficiently if any pages were cached,
	even if they were already synced to storage.

	* src/dd.c (i_nocache_eof, o_nocache_eof): New bools used
	to control when we want invalidate_cache(,0) to clear to EOF.
	(cache_round): Use IO_BUFSIZE (currently 132KiB) to minimize
	calls to the relatively expensive advise function, rather
	than page_size.  This also makes it clear that while the
	kernel function operates on pages, this size is chosen for
	performance reasons.
	(invalidate_cache): Refactor to share more code between
	input and output paths. Use i_nocache_eof and o_nocache_eof
	rather than proxying off max_records.  Ensure we
	invalidate full pages when clearing to EOF as the kernel
	will ignore any non complete pages.  Fix the offset used
	for the output path.
	(dd_copy): Invalidate the cache of the input after the
	offset is updated, for consistency and so we don't try to
	invalidate before the start of the file.  When we read
	EOF on input, set flags so that we invalidate to EOF.
	(main): Invalidate to EOF in more cases, by depending
	on the i_nocache_eof and o_nocache_eof flags.
	* doc/coreutils.texi (dd invocation): Clarify the alignment
	and persisted caveats on the example applying "nocache"
	to part of a file.
	* tests/dd/nocache_eof.sh: A new test.
	* tests/local.mk: Reference the new test.
	* NEWS: Mention the bug fix.
	Issue reported by Eric Bergen.

2017-10-24  Michael Stone  <mstone@debian.org>

	doc: mention QUOTING_STYLE env var in ls man page
	* src/ls.c (usage): Mention QUOTING_STYLE with the --quoting-style
	option, and indicate it has lower precedence than that option.

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

	maint: apply suggested cleanup to recent stty.c change
	This should have been part of commit v8.28-17-gf926f7c
	* src/stty.c (check_argument): Align line continuation chars,
	and ensure the function macro is immune to usage with if/else.
	Suggested by Jim Meyering and Paul Eggert.

	b2sum: fix crash with --check and truncated input
	* src/md5sum.c (split_3): Ensure we don't walk off
	the end of the string.
	* tests/misc/b2sum.sh: Add test cases.
	Fixes https://bugs.gnu.org/28860

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

	stty: fix processing of options when -F is specified
	This was a latent issue that became significant with
	the addition of the -F option in FILEUTILS-3_16n-56-ge46a424

	* src/stty.c (apply_settings): Refactor argument checking
	to a function macro.  Augment the argument check to ignore
	NULLed out arguments (already processed -F).
	* NEWS: Mention the fix.
	* tests/misc/stty-invalid.sh: Add a test case.
	Fixes https://bugs.gnu.org/28859

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

	timeout: fix a small race that would ignore command exit
	This fixes a regression from commit v8.26-39-g2f69dba

	* src/timeout.c (block_cleanup_and_chld): Rename from block_cleanup
	to indicate we also block SIGCHLD to avoid the race where SIGCHLD
	fires between waitpid() polling and sigsuspend() waiting for a signal.
	* NEWS: Mention the fix.

2017-10-24  Thomas Jarosch  <thomas.jarosch@intra2net.com>

	timeout: fix regression when invoked with blocked SIGCHLD
	We inherit the signal mask from our parent process,
	therefore ensure SIGCHLD is not blocked.

	If SIGCHLD is blocked, sigsuspend() won't be interrupted
	when the child process exits and we hang until the timeout (SIGALRM).

	This fixes a regression from commit v8.26-39-g2f69dba

	* src/timeout.c (install_sigchld): Ensure SIGCHLD is unblocked.
	* NEWS: Mention the issue.

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

	build: reinstate distribution of man pages
	man pages change little between systems,
	so falling back to distributed pages make sense
	when cross compiling or lacking perl.

	* man/local.mk: Add all man pages to EXTRA_DIST
	so that they're distributed in the generated tarball.
	Use the dummy-man page generator if cross compiling.
	Set TZ to avoid a distcheck failure where man pages
	used a diffent month than those rebuilt (with a .timestamp).
	* man/dummy-man: Only fall back to generating a stub
	if copying an existing man page fails.
	* man/help2man: Sync portable TZ=UTC0 specification
	from upstream help2man.
	* NEWS: Mention the build-related change.
	Fixes https://bugs.gnu.org/28574

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

	maint: remove a duplicate entry from THANKS
	* .mailmap: Prefer Colin Watson's last used email address.

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

	copy: revert recent patch for vulnerable dirs
	I plan to propose a better patch to catch vulnerable parent
	directories.
	* NEWS, doc/coreutils.texi (Target directory): Document this.
	* src/cp.c, src/install.c, src/ln.c, src/mv.c:
	Do not include targetdir.h.
	(target_directory_operand): Remove test for vulnerable parents.
	* src/cp.c (stat_target_operand): Remove.  All uses removed.
	* src/local.mk (noinst_HEADERS): Remove src/targetdir.h.
	(src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES)
	(src_mv_SOURCES): Remove src/targetdir.c.
	* src/targetdir.c, src/targetdir.h: Remove.
	* tests/mv/vulnerable-target.sh: Remove.
	* tests/local.mk (all_root_tests): Remove it.

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

	tests: fix test hang on case insenitive file systems
	* tests/split/filter.sh: Due to an invalid 'FILE = zero.in'
	construct trying to initialize a FILE variable, it would
	instead try to run the FILE command which is present on
	macOS 10.13 with APFS.
	We also remove a redundant duplicate test clause introduced
	during a rebase, and simplify the piped timeout command,
	to avoid requiring a subshell and associated quoting.
	* THANKS.in: Add the reporter Jack Howarth.
	Fixes https://bugs.gnu.org/28506

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

	tests: avoid a false failure in expr test with UTF8
	* tests/misc/expr.pl: Skip the quote varying tests in
	the multi-byte locales as these tests aren't that interesting
	in those locales.  Also ERR_SUBST is already defined for
	some tests so awkward to redefine to munge UTF8 quotes to ASCII.

2017-09-20  Assaf Gordon  <assafgordon@gmail.com>

	expr: add detailed syntax error messages
	Show offending argument instead of a generic 'syntax error' message.
	Suggested by Bernhard Voelker in https://bugs.gnu.org/28461#13 .

	* src/expr.c (syntax_error): Remove.
	(required_more_args): New function.
	(eval7, main): Replace syntax_error call with detailed die message.
	* tests/misc/expr.pl: Add tests for new messages.

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

	maint: fix new syntax-check failures from HTTPS adjustments
	* cfg.mk [old_NEWS_hash]: update with `make update-NEWS-hash`.
	[sc_long_lines]: Avoid flagging (long) URLs in NEWS.
	* src/sort.c: Tweak to a shorter line.
	* src/tail.c: Likewise.
	Introduced in v8.28-4-gbe87d61

	maint: fix new syntax check failures from copy restrictions
	* doc/coreutils.texi: Remove doubled word.
	* src/targetdir.c: Explicitly mark exported function.
	* tests/local.mk: This is not a root only test.
	* tests/mv/vulnerable-target.sh: Use returns_.
	Introduced in v8.28-3-g44ccd1c

	shred: reinstate --remove file name length obfuscation
	This was unintentionally removed in v8.27-60-g2ae1460
	* src/shred.c (wipename): Interate through all name lengths.
	* tests/misc/shred-remove.sh: Add test cases.
	* NEWS: Mention the bug fix.
	Fixes https://bugs.gnu.org/28507

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

	maint: copy bootstrap from Gnulib

	all: prefer HTTPS in URLs

	copy: check for vulnerable target dirs
	* NEWS, doc/coreutils.texi (Target directory): Document this.
	* src/cp.c, src/install.c, src/ln.c, src/mv.c: Include targetdir.h.
	(target_directory_operand): Use the new targetdir_operand_type
	function to check for vulnerable target directories.
	* src/cp.c (stat_target_operand): New function.
	(target_directory_operand, do_copy): Use it.
	* src/local.mk (noinst_HEADERS): Add src/targetdir.h.
	(src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES)
	(src_mv_SOURCES): Add src/targetdir.c.
	* src/targetdir.c, src/targetdir.h: New files.
	* tests/mv/vulnerable-target.sh: New test.
	* tests/local.mk (all_root_tests): Add it.

2017-09-14  Bernhard Voelker  <mail@bernhard-voelker.de>

	ptx: avoid infloop due to zero-length matches with -S regex
	* src/ptx.c (find_occurs_in_text): Die with an appropriate error
	diagnostic when the given regular expression returns a match of
	length 0.
	* tests/misc/ptx.pl (S-infloop): Add a test.
	* NEWS (Bug fixes): Mention the fix.

	Fixes https://bugs.gnu.org/28417 which was detected using
	Symbolic Execution techniques developed in the course of the
	SYMBIOSYS research project at COMSYS, RWTH Aachen University.

2017-09-02  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.28
	* NEWS: Record release date.

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

	tests: fix false failure in recent ls --hyperlink test
	* tests/ls/hyperlink.sh: If the hostname or any part of
	the absolute path would be changed due to URL encoding,
	the test would fail.  Therefore simplify to remove
	these components of the URL from consideration.

	maint: avoid a syntax-check failure
	* .gitignore: Remove lines indicated by sc_gitignore_redundant
	in a freshly checked out repo.

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

	tests: exclude the expensive gnulib fts-tests
	* gnulib: The only change in this gnulib update
	is the tagging of the fts-tests module as longrunning,
	which gnulib-tool currently implicitly excludes.
	This test was seen to take about 20s and 285MB.
	Reported by Assaf Gordon on space restricted VMs.

	tty: don't distinguish input errors
	* src/tty.c (main): Don't distinguish ENOTTY from other errors,
	because isatty() doesn't portably distinguish errors.
	Solaris returns ENOENT for all input errors for example.
	Musl also returns ENOENT, and ENODEV may be returned as disscussed at:
	http://openwall.com/lists/musl/2017/04/06/6
	* tests/misc/tty.sh: Adjust accordingly.

	tests: avoid printf '0*d' construct unsupported by ash
	* tests/ln/sf-1.sh: Generate specific length with space padding
	which is supported.
	Reported by Assaf Gordon on Alpine Linux.

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

	tests: skip tests upon failure to set SELinux context
	On some setups the root:object_r:tmp_t context is invalid.
	This does indicate a limitation in the test framework,
	but for now we'll relax this to skipping the tests.
	The tests still run on a Fedora 25 system for example.

	* tests/cp/cp-a-selinux.sh: Upon chcon error, skip rather than ERROR.
	* tests/install/install-Z-selinux.sh: Likewise.
	* tests/misc/chcon.sh: Likewise.
	* tests/misc/runcon-no-reorder.sh: Likewise.
	* tests/misc/selinux.sh: Likewise.
	* tests/mkdir/restorecon.sh: Likewise.

2017-08-30  Kamil Dudka  <kdudka@redhat.com>

	expr: fix a recently introduced memory leak
	* src/expr.c (eval6): Free memory allocated by mbs_logical_substr().

	Introduced in v8.27-47-ga9f2be5.  Detected by Coverity Analysis:

	Error: RESOURCE_LEAK:
	src/expr.c:851: leaked_storage: Variable "s" going out of scope
	leaks the storage it points to.
	849|             char *s = mbs_logical_substr (l->u.s, pos, len);
	850|             v = str_value (s);
	851|->         }
	852|         freev (l);
	853|         freev (i1);

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

	build: fix build of renameat2 on Alpine Linux
	* gnulib: The only change included in this update
	it the added check for the presence of <linux/fs.h>
	which is not present on Alpine Linux by default.

	tty: fix exit code with EINVAL
	* src/tty.c (main): All systems mention that isatty()
	man return EINVAL as well as (the POSIX compliant) ENOTTY.
	Also Centos 6 was seen to return EINVAL from ttyname().
	* tests/misc/tty.sh: Fix a test issue where we assume
	standard input is always a valid tty.
	Reported by Assaf Gordon on OpenSolaris 5.10 and 5.11,
	and Centos 6.5

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

	runcon: revert "disable use of the TIOCSTI ioctl"
	This reverts commit v8.27-97-g8cb06d4 because
	the setsid() fallback was not implemented correctly
	and disabling the ioctl was not a complete solution
	to the security issue of the child being passed
	the tty of the parent.

	Given runcon is not really a sandbox command,
	the advice is to use `runcon ... setsid ...`
	to avoid this particular issue.

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

	stat: fix determination of max name length on BSD systems
	We only use one of statfs or statvfs for `stat -f`
	and on the BSDs we use statfs which doesn't have the
	f_namelen member.  However on OpenBSD and later FreeBSD
	systems statfs does provide f_namemax, so use that.

	* NEWS: Mention the improvement for OpenBSD and FreeBSD.
	* m4/stat-prog.m4: Check for f_namemax in the statfs struct.
	* src/stat.c: Return '?' rather than '*' when we can't
	determine the max length of the file system.
	* tests/ln/sf-1.sh: This test was failing on all BSDs
	due to '*' being returned for the max length which
	caused the test to attempt to create 1Mi+1 names.
	The test now uses a short name when we can't determine
	the max name length to use.

	Reported by Assaf Gordon on various BSD based systems.

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

	stat,tail: support "AAFS" AppArmor file system
	* src/stat.c (human_fstype): This file system is used
	to manage AppArmor policy in the Linux kernel.

	all: update gnulib submodule to latest
	* bootstrap: Sync timestamp update.

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

	runcon: disable use of the TIOCSTI ioctl
	Similar to the issue with SELinux sandbox (CVE-2016-7545),
	children of runcon can inject arbitrary input to the terminal
	that would be run at the originating terminal privileges.

	The new libseccomp dependency is widely available and used
	on modern SELinux systems, but is not available by default
	on older systems like RHEL6 etc.

	* m4/jm-macros.m4: Check for libseccomp and
	warn if unavailable on selinux supporting systems.
	* src/local.mk: Link runcon with -lseccomp.
	* src/runcon.c (disable_tty_inject): A new function to
	disable use of the TIOCSTI using libseccomp, or with setsid()
	where libseccomp is unavailable.
	* tests/misc/runcon-no-inject.sh: A new test that uses
	python to make the TIOCSTI call, and ensure that doesn't succeed.
	* tests/local.mk: Reference the new test
	* NEWS: Mention the fix.
	Addresses http://bugs.gnu.org/24541

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

	ls: support --hyperlink to output file:// URIs
	Terminals such as iTerm2 and VTE based terminals
	(as of version 0.49.1), support hyperlinks when
	passed terminals codes as described at:
	https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda

	* src/ls.c (gobble_file): Allocate an absolute file name to output.
	(quote_name): Output the absolute name with the appropriate codes.
	(file_escape): A new function to encode file names as per rfc8089.
	(main): Handle the new option and call the file_escape_init() helper.
	Disable --dired when --hyperlink is specified.
	(print_dir): Get the absolute file name here too, so that the
	directory name can be linkified.
	* NEWS: Mention the new feature.
	* tests/ls/hyperlink.sh: Add a new test.
	* tests/local.mk: Reference the new test.
	* doc/coreutils.texi (ls invocation): Describe --hyperlink.

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

	doc: remove older ChangeLog items
	This saves about 0.5MB uncompressed from the tarball.

	* Makefile.am: Following on from v8.26-34-g2c64bc8
	update the oldest documented version to 8.18 which
	is now about 5 years old.  Also remove older ChangeLogs
	that were previously thought to be for changes not
	in the git history, but are adequately recorded upon review.
	* build-aux/ChangeLog-2007: Remove file.
	* lib/ChangeLog-2007: Likewise.
	* m4/ChangeLog-2007: Likewise.

2017-08-29  Colin Watson  <cjwatson@debian.org>

	env: add --chdir option
	This is useful when chaining with other commands that run commands in a
	different context, while avoiding using the shell to cd, and thus
	having to consider shell quoting the chained command.

	* NEWS (New features): Document the new option.
	* doc/coreutils.texi (env invocation): Likewise.
	* src/env.c (usage): Likewise.
	(main): Implement the new option.
	* tests/misc/env.sh: Test the new option.

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

	tests: don't fail tests when failing to write files
	* tests/sample-test: Use framework_error_ rather than fail=1
	* tests/chown/deref.sh: Likewise.
	* tests/chown/preserve-root.sh: Likewise.
	* tests/cp/src-base-dot.sh: Likewise.
	* tests/dd/unblock-sync.sh: Likewise.
	* tests/du/2g.sh: Likewise.
	* tests/du/inacc-dest.sh: Likewise.
	* tests/du/one-file-system.sh: Likewise.
	* tests/fmt/goal-option.sh: Likewise.
	* tests/ln/hard-backup.sh: Likewise.
	* tests/ls/color-dtype-dir.sh: Likewise.
	* tests/ls/m-option.sh: Likewise.
	* tests/ls/stat-dtype.sh: Likewise.
	* tests/ls/time-style-diag.sh: Likewise.
	* tests/ls/x-option.sh: Likewise.
	* tests/misc/chcon.sh: Likewise.
	* tests/misc/nohup.sh: Likewise.
	* tests/misc/od-N.sh: Likewise.
	* tests/misc/sort-compress.sh: Likewise.
	* tests/misc/tac-continue.sh: Likewise.
	* tests/misc/time-style.sh: Likewise.
	* tests/mv/backup-dir.sh: Likewise.
	* tests/mv/dir2dir.sh: Likewise.
	* tests/rm/dir-no-w.sh: Likewise.
	* tests/rm/dir-nonrecur.sh: Likewise.
	* tests/rm/inaccessible.sh: Likewise.
	* tests/rm/interactive-always.sh: Likewise.
	* tests/rm/interactive-once.sh: Likewise.
	* tests/rm/rm3.sh: Likewise.
	* tests/rm/v-slash.sh: Likewise.
	* tests/touch/relative.sh: Likewise.

2017-08-29  Josef Cejka  <jcejka@suse.com>
	    Bernhard Voelker  <mail@bernhard-voelker.de>

	df: avoid stat() for dummy file systems with -l
	When systemd is configured to automount a remote file system - see
	'man systemd.automount(5)', then the mount point is initially
	mounted by systemd with the file system type "autofs".
	When the resource is used later on, then the wanted file system is
	mounted over that mount point on demand.
	'df -l' triggered systemd to mount the file system because it called
	stat() on the mount point.
	Instead of single-casing "autofs" targets, we can avoid stat()ing
	all dummy file systems (which includes "autofs"), because those are
	skipped later on in get_dev() anyway.

	*src/df.c (filter_mount_list): Also skip dummy file systems unless
	the -a option or a specific target are given.
	* NEWS: Mention the fix.


	Fixes http://bugzilla.suse.com/show_bug.cgi?id=1043059

2017-08-29  Assaf Gordon  <assafgordon@gmail.com>

	doc: add 'realpath usage examples' section
	* doc/coreutils.texi (Realpath usage examples): New section.

2017-08-29  Assaf Gordon  <assafgordon@gmail.com>

	doc: fix realpath index entry
	The 'readlink' node has '@findex realpath' in it. This results in
	    info doc/coreutils.info realpath
	incorrectly jumping to the 'readlink' node (instead of the 'realpath'
	node). Change it to @cindex instead.

	* doc/coreutils.texi (readlink): Change '@findex realpath' to @cindex.

2017-08-29  Assaf Gordon  <assafgordon@gmail.com>

	realpath: improve usage description for --relative-{to,base}
	* src/realpath.c (usage): Explicitly say 'DIR' instead of 'FILE' for
	--relative-{to,base} parameters, to avoid giving the impression
	that regular files can be used as relative base.
	* doc/coreutils.texi (realpath): Same.

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

	ls: consistently quote symlink targets
	* src/ls.c (gobble_file): Disable the optimization to avoid quoting
	if the symlink target itself needs quoting.  This was introduced
	with the quoting alignment adjustments in v8.25-106-g01971c0
	* tests/ls/symlink-quote.sh: Add a test.
	* tests/local.mk: Reference the test.
	* NEWS: Mention the fix.

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

	tail: reinstate inotify use with FIFOs
	commit v8.27-44-g18f6b22 was too aggressive in
	only allowing inotify use with regular files. This will
	support responsive processing of `tail -f fifo | ...`

	* src/tail.c (any_non_regular): Adjust to allow FIFOs
	since inotify supports these well.
	* tests/tail-2/inotify-only-regular.sh: Adjust comment.

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

	maint: avoid a syntax check failure
	* src/sort.c: Don't include stdio--.h as fopen() is no longer used.

	tests: fix issues on alpine linux
	* tests/misc/seq-epipe.sh: Remove stale comment.
	* tests/misc/sort-debug-warn.sh: musl doesn't indicate a set_locale()
	failure with missing locales, so avoid a test portion in that case.
	* tests/misc/wc-files0.sh: Avoid a bug on older ash implementations.
	Addresses http://bugs.gnu.org/28054

2017-08-17  Paul Eggert  <eggert@cs.ucla.edu>

	ptx: fix some integer overflow bugs
	Problem reported by Lukas Zachar at:
	http://bugzilla.redhat.com/1482445
	* src/ptx.c (line_width, gap_size, maximum_word_length)
	(reference_max_width, half_line_width, before_max_width)
	(keyafter_max_width, truncation_string_length, compare_words)
	(compare_occurs, search_table, find_occurs_in_text, print_spaces)
	(fix_output_parameters, define_all_fields):
	Use ptrdiff_t, not int, for object offsets and sizes.
	(WORD, OCCURS): Use ptrdiff_t, not short int.
	(WORD_TABLE, number_of_occurs, generate_all_output):
	Prefer ptrdiff_t to size_t where either will do.
	(total_line_count, file_line_count, OCCURS, fix_output_parameters)
	(define_all_fields):
	Use intmax_t, not int, for line counts.
	(DELTA): Remove.  All uses changed.
	(OCCURS, find_occurs_in_text, fix_output_parameters):
	Use int, not size_t, for file indexes.
	(tail_truncation, before_truncation, keyafter_truncation)
	(head_truncation, search_table, define_all_fields)
	(generate_all_output):
	Use bool for booleans.
	(digest_word_file, find_occurs_in_text):
	Use x2nrealloc instead of checking for overflow by hand.
	(find_occurs_in_text, fix_output_parameters, define_all_fields):
	Omit unnecessary cast.
	(fix_output_parameters): Don’t assume integers fit in 11 digits.
	(fix_output_parameters, define_all_fields):
	Use sprintf return value rather than calling strlen.
	(define_all_fields): Do not rely on sprintf to generate a string
	that may contain more than INT_MAX bytes.
	(main): Use xstrtoimax, not xstrtoul.
	Use xnmalloc to catch integer overflow.

	nohup: simplify by using fcntl
	* src/nohup.c: Do not include cloexec.h.
	(main): Use fcntl rather than dup + set_cloexec_flag.

	sort: use pthread_sigmask, not sigprocmask
	POSIX says sigprocmask has unspecified behavior in a multithreaded
	program like ‘sort’.
	* src/sort.c (pthread_sigmask) [GNULIB_defined_pthread_functions]:
	New macro, for use when ‘sort’ is not multithreaded.
	(cs_enter, cs_leave): Use it.  Pass address, not value, as
	this is typically a tad faster.  All callers changed.

	sort: minor cleanups
	* src/sort.c (move_fd): Rename from move_fd_or_die,
	since it no longer can die.

	sort: file descriptor discipline
	Use O_CLOEXEC when creating file descriptors, so that subsidiary
	processes do not inherit file descriptors that they do not need.
	This is helpful for ‘sort’, as it is a multithreaded program that
	forks and execs.
	* bootstrap.conf (gnulib_modules): Add mkostemp, open, pipe2.
	* src/sort.c (create_temp_file): Open temporary file with O_CLOEXEC.
	(stream_open): Open the stream with O_CLOEXEC.
	(pipe_fork): Create the pipe with O_CLOEXEC.
	(check_output): Open the output file with O_CLOEXEC.
	(main): Use xfopen/xfclose to handle --files0-from, so that
	O_CLOEXEC is used properly.  This is simpler anyway.
	* tests/misc/sort-files0-from.pl: Adjust to change in diagnostic
	wording.

	build: update gnulib submodule to latest

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

	kill: fix signal number to name lookup on AIX
	* src/operand2sig.c (operand2sig): AIX uses a different bit pattern
	in the returned status from the wait() functions and from shells.
	Therefore hardcode the selection of the lower bits of the number.
	* NEWS: Mention the fix.

	build: use the appropriate single file include option with xlc
	* configure.ac: Set USE_XLC_INCLUDE when __xlc__ is defined.
	* src/local.mk: Use it to select the appropriate include option.
	Reported by Michael Felt.

	tests: avoid false failures on AIX
	* tests/ln/sf-1.sh: Limit the symlink size to 1MiB
	to avoid memory exhaustion seen on NFS on AIX, giving:
	  + printf '%0*d' 4294967296 0
	  + ./tests/ln/sf-1.sh: line 38: printf: warning: 0: Result too large
	* tests/id/setgid.sh: Skip the test when the adjusted gid
	would equal 4294967295, as that's reserved on AIX.
	Reported by Michael Felt.

	sort: handle musl locale differences in --debug reporting
	* src/sort.c (main): Don't assume hard_LC_COLLATE implies
	a successful setting of the locale as musl defaults to
	UTF8 when failing to set the specified locale.
