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

	version 8.32
	* NEWS: Record release date.

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

	tests: don't rely on system env(1) being present
	* tests/misc/env-S.pl: `env -i env` will call the system env
	due to the path being cleared, so pass the absolute path
	of our env binary under test to avoid that.  This was seen
	to be an issue on Guix where /usr/bin/env was not available.

	basenc: avoid undefined behaviour in z85 processing
	* src/basenc.c (z85_decode_ctx_init): Ensure we're working
	with unsigned, as otherwise ubsan triggers with:
	  src/basenc.c:767:18: runtime error: signed integer overflow:
	  43 * 52200625 cannot be represented in type 'int'
	(z85_encode): Likewise to avoid the usban error:
	  src/basenc.c:630:26: runtime error:
	  left shift of 134 by 24 places cannot be represented in type 'int'

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

	tests: avoid a false failure on OpenIndiana 11
	* tests/misc/timeout-parameters.sh: Split the large timeout
	handling to ...
	* tests/misc/timeout-large-parameters.sh: ... here, so that
	the 3 second delay is contained in its own test, and if
	the test is skipped due invalid handling within timeout(1),
	it will be more apparent.
	Also adjust the check so we skip whenever the kernel timer
	fires immediately, to handle the buggy OpenIndiana 11 kernel also.
	Reported by Bruno Haible.

	tests: avoid a hang on GNU/Hurd from 2019
	* tests/du/8gb.sh: Add a timeout around:
	`dd bs=1 seek=8G of=big < /dev/null`

	tests: use bash in some scripts to avoid false failures
	* init.cfg (require_bash_as_SHELL_): A new function to replace
	SHELL for the current test, with bash if available.
	This is useful on OpenIndiana 11 where /bin/sh was seen
	to have races in handling of SIGPIPE.
	* tests/misc/seq-epipe.sh: Use the new function to enforce bash.
	* tests/misc/env-signal-handler.sh: Likewise.
	Reported by Bruno Haible

	tests: improve test coverage for ls stat checks
	* tests/ls/stat-free-color.sh: Check for the availability
	of various stat calls individually, and add statx() and fstatat64()
	to the list to check.  Fix the stat counting logic to
	ignore lines like "+++ exited with 0 +++".
	* tests/ls/stat-free-symlinks.sh: Check syscalls other than stat().

2020-03-01  Bruno Haible  <bruno@clisp.org>

	tests: enable 4 more tests to be executed on FreeBSD
	* init.cfg (gcc_shared_libs_): New variable.
	(gcc_shared_): Use it, instead of hardcoding -ldl.
	(require_gcc_shared_): Determine the suitable value
	for gcc_shared_libs_.

2020-02-29  Pádraig Brady  <P@draigBrady.com>

	tests: fix incorrect `|| fail` pattern in tests
	* tests/ls/stat-free-symlinks.sh: s/|| fail/|| fail=1/.
	* tests/misc/tee.sh: Likewise.
	* tests/touch/relative.sh: Likewise.
	* cfg.mk (sc_prohibit_or_fail): A new syntax-check to avoid this.

2020-02-29  Pádraig Brady  <P@draigBrady.com>

	tests: avoid false failures on darwin 19.2.0
	With these adjustments, all tests pass on macOS Catalina.

	* tests/dd/sparse.sh: Adjust so that systems like apfs that
	don't create holes < 16 MiB do not fail erroneously.
	* tests/touch/trailing-slash.sh: Darwin was seen to dereference
	symlinks to files when given a trailing slash, so avoid
	that particular case.

2020-02-29  Bruno Haible  <bruno@clisp.org>

	tests: fix test failure on FreeBSD 12
	* tests/misc/csplit-io-err.sh: Limit the effect of the fwrite
	override to streams != stderr, as fwrite is in the error() path there.

2020-02-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: once again distribute .tar.gz files
	* configure.ac: Reenable distribution of gzip-compressed
	tarballs, for Guix bootstrapping reasons as discussed at:
	https://lists.gnu.org/r/coreutils/2020-02/msg00042.html
	* THANKS.in: Remove me, as now a committer.
	* NEWS (Build-related): Mention this.

2020-02-27  Pádraig Brady  <P@draigBrady.com>

	maint: ensure .deps/ in the project root is ignored by git
	* .gitignore: s|*/.deps/|.deps|

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

2020-02-27  Colin Watson  <cjwatson@debian.org>

	ls: issue error message on removed directory
	If the current directory has been removed, then "ls" confusingly
	produced no output and no error message, indistinguishable from
	running on an empty directory.

	* src/ls.c (print_dir): Report ENOENT on GNU/Linux if readdir
	finds no directory entries at all, not even "." or "..",
	and a recheck with the getdents syscall returns ENOENT.
	We recheck with getdents() as POSIX states that
	"The directory entries for dot and dot-dot are optional".
	* tests/ls/removed-directory.sh: New file.
	* tests/local.mk (all_tests): Add new test.
	* NEWS: Mention the change in behavior.
	Reported by Owen Thomas.

2020-02-25  Pádraig Brady  <P@draigBrady.com>

	build: update to latest gnulib
	* bootstrap.conf: Adjust for changes to fchmodat and fchownat,
	which are now separated from chmodat and chownat respectively.

	b2sum: sync better with upstream
	* src/blake2/blake2-impl.h: Sync load16() implementation,
	which doesn't change code generation.
	Also leverage (builtin) memcpy to more efficiently
	move data on little endian systems,
	giving a 2% win with GCC 9.2.1 on an i3-2310M.

	factor: sync longlong.h adjustments from upstream
	* src/longlong.h: Sync changes from:
	https://gmplib.org/repo/gmp/log/tip/longlong.h
	mips64: Provide r6 asm code as default expression yields.
	arm32: Define sub_ddmmss separately for non-thumb (no rsc instruction).
	powerpc: Add "CLOBBER" descriptions for some registers.
	x86: Fix criterion for when to use mulx in umul_ppmm.

	stat,tail: sync file system constants from the linux kernel
	* src/stat.c: Add magic constants for "binderfs", "dma-buf-fs",
	"erofs", "ppc-cmm-fs", and "z3fold".
	* NEWS: Mention the improvement.

2020-02-24  Pádraig Brady  <P@draigBrady.com>

	uniq: avoid strcoll() to improve performance and consistency
	strcoll() is only significant to uniq(1) if it returns 0,
	and it generally only does so with buggy locales or mismatched
	locales and data.  Some systems may have strcoll()
	return 0 for equivalent normalized unicode forms,
	but for consistency across platforms strcoll() is avoided.
	The various cases are defined in the new test.
	This is consistent with newer POSIX standards as discussed at:
	https://www.austingroupbugs.net/view.php?id=963

	* src/uniq.c: s/xstrcoll/memcmp/.
	* tests/local.mk: Reference the new test.
	* tests/misc/uniq-collate.sh: Add a new test.
	* NEWS: Mention the change in behavior.
	Fixes https://bugs.gnu.org/38627

2020-02-15  Pádraig Brady  <P@draigBrady.com>

	doc: clarify that '%a' stat format outputs mode bits
	* src/stat.c (usage): Mention permission bits rather than
	"access" so there is no confusion with ACLs etc.
	Also indicate we output the file type with '%A'.
	* doc/coreutils.texi (stat invocation): Likewise.
	Also indicate '%A' is similar to `ls -ld` output.
	Addresses https://bugs.gnu.org/39613

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

	tests: fix test for symlink
	* tests/cp/preserve-gid.sh: s/-l/-L/.
	Reported by Kamil Dudka

2020-02-09  Kamil Dudka  <kdudka@redhat.com>

	tests: ensure tests/cp/preserve-gid.sh works with single binary
	* tests/cp/preserve-gid.sh: If configured with --enable-single-binary
	copy the coreutils single binary, instead of the cp one-line launcher.

	Discussed at https://bugzilla.redhat.com/1800597
	Fixes https://bugs.gnu.org/39485

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

	maint: avoid syntax-check failure in previous commit
	* configure.ac: Restrict lines to 80 chars.

2020-02-09  Jim Meyering  <meyering@fb.com>

	build: suppress new FP warning from gcc-10.0.1
	* configure.ac (GNULIB_WARN_CFLAGS): Add -Wno-return-local-addr
	to avoid FP warning about careadlinkat.c. Discussed starting in
	https://lists.gnu.org/r/coreutils/2020-02/msg00006.html

2020-02-04  Pádraig Brady  <P@draigBrady.com>

	build: update to latest gnulib
	Pick up recent build fixes to avoid sysctl.h inclusion on glibc systems,
	restrict the max file size supported by read-file to PTRDIFF_MAX,
	and to avoid a -Werror=unused failure in test-canonicalize.

	tests: avoid false failure due to varying /proc/kallsyms
	* tests/cp/proc-short-read.sh: Switch to using /proc/cpuinfo,
	rather than /proc/kallsyms which was seen to vary in some cases.
	Fixes https://bugs.gnu.org/39357

2020-02-04  Pádraig Brady  <P@draigBrady.com>

	rmdir: fix --ignore-fail-on-non-empty with permissions errors
	Since v6.10-21-ged5c4e7 `rmdir --ignore-fail-on-non-empty`
	had reversed the failure status for directories that failed
	to be removed for permissions reasons.  I.E. it would have
	returned a failure status for such non empty dirs, and vice versa.

	* src/rmdir.c (errno_may_be_non_empty): Rename from the
	more confusing errno_may_be_empty(), and remove the EEXIST
	case (specific to Solaris), which is moot here since
	handled in errno_rmdir_non_empty().
	(ignorable_failure): Fix the logic error so that
	_non_ empty dirs are deemed to have ignorable failures.
	(main): Fix clobbering of errno by is_empty_dir().
	(remove_parents): Likewise.
	* tests/rmdir/ignore.sh: Add a test case.
	* THANKS.in: Add reporter who fixed the errno handling.
	* NEWS: Mention the bug fix.
	Fixes https://bugs.gnu.org/39364

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

	build: avoid vector performance warnings in randperm
	* configure.ac: Add -Wno-vector-operation-performance to suppress the
	following gcc-9.2 error in gl/lib/randperm.c:
	  error: vector operation will be expanded piecewise

	build: avoid including sysctl.h on glibc
	* src/uname.c: Avoid unneeded header with GLIBC,
	which has been deprecated since glibc-2.30.
	* src/uptime.c: Likewise.

	ls: support --time=creation to show/sort birth time
	* src/ls.c (usage): Reorganize help for --time,
	and add description for --time=birth.
	(do_statx): Store btime in mtime if available.
	(get_stat_btime): A new function to read the creation time
	from the appropriate stat structure member.
	(cmp_btime): A new function to compare birth time.
	(print_long_format): Output '?' when birth time unavailable.
	* doc/coreutils.texi: Document --time={birth,creation}.
	* tests/local.mk: Reference the new test.
	* tests/ls/birthtime.sh: Add a new test.
	* NEWS: Mention the new feature.

2020-01-30  Chris Meyering  <christophe.meyering@gmail.com>

	build: rearrange yes(1) code to prevent GCC 10 warning
	* src/yes.c (main): Convert for loop to do-while in order to indicate
	that the loop will be run at least once.
	This avoids the following warning after the second loop:
	src/yes.c:110:20: error: writing 1 byte into a region of size 0

2020-01-01  Emil Engler  <me@emilengler.com>

	maint: add lib/iconv_open-zos.h to .gitignore
	* .gitignore: Add file newly generated by gnulib commit 49e78fc

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

	build: auto enable use of openssl with >= version 3
	* configure.ac: Set --with-openssl=auto-gpl-compat as the default,
	so that openssl is used for md5sum etc., with openssl >= 3,
	which is newly licensed under ASL v2.
	* gnulib: Update to include "auto-gpl-compat" support.

	maint: adjust to split out xstrtol-error gnulib module
	* bootstrap.conf: Depend on the new module split from xstrtol.
	* src/df.c: Include "xstrtol-error.h" for xstrtol_fatal.
	* src/du.c: Likewise.
	* src/ls.c: Likewise.
	* src/od.c: Likewise.
	* src/pr.c: Likewise.
	* src/sort.c: Likewise.

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

2019-12-08  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: add example to demonstrate sub-second sleep times
	* doc/coreutils.texi (sleep invocation): Add an example to demonstrate
	how to use the floating-point and the scientific notation to sleep
	for sub-second times, e.g. milli-, micro- and nanoseconds.

	Inspired by Stephane Chazelas in:
	  https://lists.gnu.org/r/coreutils/2019-12/msg00005.html

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

	maint: fix syntax-check failure from recent adjustment
	* cfg.mk (old_NEWS_hash): Regenerate after commit v8.31-56-gc1e1965.

2019-12-02  Kamil Dudka  <kdudka@redhat.com>

	chcon: do not validate security context if SELinux is disabled
	* src/chcon.c (main): Skip call of security_check_context()
	in case SELinux is disabled to avoid unnecessary failure.

	Bug: https://bugzilla.redhat.com/1777831

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

	doc: remove colon from node name
	* doc/sort-version.texi (Minus/Hyphen and Colon characters):
	Rename from “Minus/Hyphen @samp{-} and Colon @samp{:} characters”,
	as texi2any 6.6 complains about colons in node names.

	shred: modernize documentation
	* doc/coreutils.texi (shred invocation):
	Modernize discussion to today’s technology (Bug#38168).
	* src/shred.c (usage): Omit lengthy duplication of the manual’s
	discussion of file systems and storage devices, as that became out
	of sync with the manual.  Instead, just cite the manual.

2019-10-22  Paul Eggert  <eggert@cs.ucla.edu>

	all: improve parsing of numeric arguments
	This addresses a longstanding "update all callers" FIXME in
	lib/xstrtol.c, by having programs check that numbers do not
	have unknown suffixes.  The problem was also reported for
	'shuf' by my student Maggie Huang while reimplementing a shuf
	subset in Python as an exercise in UCLA Computer Science 35L:
	https://web.cs.ucla.edu/classes/fall19/cs35L/assign/assign3.html
	This patch also improves the portability of the code to unusual
	platforms where ULONG_MAX < SIZE_MAX.
	* NEWS: Mention user-visible changes.
	* src/chgrp.c (parse_group):
	* src/chroot.c (parse_additional_groups):
	* src/du.c (main):
	* src/install.c (get_ids):
	* src/join.c (string_to_join_field):
	* src/ls.c (decode_switches):
	* src/md5sum.c (split_3):
	* src/shuf.c (main):
	* src/sort.c (specify_nthreads):
	* src/uniq.c (size_opt, main):
	Use uintmax_t instead of unsigned long, for portability
	to oddball platforms where unsigned long is not wide enough.
	* src/du.c (main):
	* src/expr.c (mpz_init_set_str) [!HAVE_GMP]:
	* src/install.c (get_ids):
	* src/ls.c (decode_switches):
	* src/mknod.c (main):
	* src/ptx.c (main):
	* src/shuf.c (main):
	* src/sort.c (specify_nmerge, specify_nthreads):
	Reject numbers with suffixes.
	* src/md5sum.c (split_3): Simplify.

	stdbuf: improve size checking
	* bootstrap.conf (gnulib_modules): Add minmax.
	* src/libstdbuf.c: Include stdint.h, minmax.h.
	(apply_mode): Don’t assume SIZE_MAX <= ULONG_MAX.
	Improve checking for invalid sizes.

	shuf: improve randperm overflow checking
	* gl/lib/randperm.c: Include randperm.h first, since it’s the API.
	Include stdint.h, count-leading-zeros.h, verify.h.
	(floor_lg): Rename from ceil_log (which was not actually
	implementing the ceiling!) and implement the floor using
	count_leading_zeros.
	(randperm_bound): Use floor_lg, not ceil_log.  Use uintmax_t
	instead of size_t in case the size gets large on a 32-bit host.
	* gl/modules/randperm (Depends-on): Add count-leading-zeros, stdint.

	build: don’t worry about logical-op checking
	* configure.ac: Remove code tailoring --enable-gcc-warnings
	to GCC 4.7 and earlier, as developers no longer need to worry
	about GCCs that old.

	build: re-enable type-limits checking
	* configure.ac: When --enable-gcc-warnings is used, omit
	-Wno-type-limits.  The need for -Wno-type-limits has passed, now
	that intprops.h uses builtin primitives for GCC 5 and later, given
	that recent GCCs issue type-limits warnings only for non-constant
	expressions.  --enable-gcc-warnings is not intended for use with
	old compilers, so we can drop -Wno-type-limits now.

2019-10-21  Paul Eggert  <eggert@cs.ucla.edu>

	shuf: fix bug with ‘-r -n 0’
	‘shuf -r -n 0 file’ would mistakenly read from standard input.
	Problem reported by my student Jingnong Qu while reimplementing a
	shuf subset in Python as an exercise in UCLA Computer Science 35L:
	https://web.cs.ucla.edu/classes/fall19/cs35L/assign/assign3.html
	* NEWS: Mention the fix.  Also, ASCIIfy a previous item.
	* src/shuf.c (main): Fix bug.
	* tests/misc/shuf.sh: Add a test case for the bug.

2019-10-09  Jeff Layton  <jlayton@kernel.org>

	ls: use statx instead of stat when available
	statx allows ls to indicate interest in only certain inode metadata.
	This is potentially a win on networked/clustered/distributed
	file systems. In cases where we'd have to do a full, heavyweight stat()
	call we can now do a much lighter statx() call.

	As a real-world example, consider a file system like CephFS where one
	client is actively writing to a file and another client does an
	ls --color in the same directory. --color means that we need to fetch
	the mode of the file.

	Doing that with a stat() call means that we have to fetch the size and
	mtime in addition to the mode. The MDS in that situation will have to
	revoke caps in order to ensure that it has up-to-date values to report,
	which disrupts the writer.

	This has a measurable affect on performance. I ran a fio sequential
	write test on one cephfs client and had a second client do "ls --color"
	in a tight loop on the directory that held the file:

	Baseline -- no activity on the second client:

	WRITE: bw=76.7MiB/s (80.4MB/s), 76.7MiB/s-76.7MiB/s (80.4MB/s-80.4MB/s),
	       io=4600MiB (4824MB), run=60016-60016msec

	Without this patch series, we see a noticable performance hit:

	WRITE: bw=70.4MiB/s (73.9MB/s), 70.4MiB/s-70.4MiB/s (73.9MB/s-73.9MB/s),
	       io=4228MiB (4433MB), run=60012-60012msec

	With this patch series, we gain most of that ground back:

	WRITE: bw=75.9MiB/s (79.6MB/s), 75.9MiB/s-75.9MiB/s (79.6MB/s-79.6MB/s),
	       io=4555MiB (4776MB), run=60019-60019msec

	* src/stat.c: move statx to stat struct conversion to new header...
	* src/statx.h: ...here.
	* src/ls.c: Add wrapper functions for stat/lstat/fstat calls,
	and add variants for when we are only interested in specific info.
	Add statx-enabled functions and set the request mask based on the
	output format and what values are needed.
	* NEWS: Mention the Improvement.

2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>

	truncate: avoid integer-overflow assumptions
	* src/truncate.c (do_ftruncate): Simplify overflow checking,
	and don’t rely on theoretically-nonportable assumptions
	like assuming that OFF_MAX < UINTMAX_MAX.

	numfmt: avoid unlikely integer overflow
	* src/numfmt.c (parse_format_string): Report overflow if
	pad < -LONG_MAX, since that can’t be negated.

	nl: fix integer-overflow bug
	Problem reported by Roland Illig (Bug#37585)
	* src/nl.c (print_lineno): Don’t rely on undefined behavior when
	checking for integer overflow.

	cp: simplify integer overflow checking
	* src/copy.c (sparse_copy): Use INT_ADD_WRAPV instead
	of doing overflow checking by hand.

2019-09-08  Pádraig Brady  <pbrady@fb.com>

	seq: use faster processing for integer steps from 2 to 200
	* src/seq.c: (seq_fast): Accept STEP as a parameter and use that
	to skip the output of generated numbers.
	(main): Relax to using seq_fast for integer steps between 1 and 200.
	For larger steps the throughput was faster using the standard
	incrementing procedure.
	(cmp): Use the equivalent but faster memcmp for equal len strings.
	* tests/misc/seq.pl: Update fast path cases.
	Addresses https://bugs.gnu.org/37241

2019-09-08  Pádraig Brady  <P@draigBrady.com>

	maint: use consistent header ordering and spacing in NEWS
	* NEWS: Move "Changes in behavior" before "New features",
	and ensure there is only a single blank line between sections.

2019-08-15  Paul Eggert  <eggert@cs.ucla.edu>

	build: update gnulib submodule to latest

2019-08-15  Assaf Gordon  <assafgordon@gmail.com>

	scripts: document how to build older versions on newer systems
	Based on https://lists.gnu.org/r/coreutils/2019-08/msg00011.html .

	* scripts/build-older-versions/README.older-versions: Documentation
	* scripts/build-older-versions/build-older-versions.sh: Helper script.
	* scripts/build-older-versions/.gitignore: Ignore build directory.
	* scripts/build-older-versions/coreutils-5.0-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-5.97-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-6.10-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-6.11-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-6.12-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-7.2-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-8.13-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-8.17-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-8.18-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-8.24-on-glibc-2.28.diff,
	scripts/build-older-versions/coreutils-8.4-on-glibc-2.28.diff: Patches.

2019-08-12  Bruno Haible  <bruno@clisp.org>

	build: adjust for recent gnulib pthread changes
	Discussed in https://lists.gnu.org/r/coreutils/2019-08/msg00030.html .

	* bootstrap.conf (gnulib_modules): Replace 'pthread' with
	pthread-* modules.
	* src/sort.c: Remove GNULIB_defined_pthread_functions conditional.

2019-08-11  Assaf Gordon  <assafgordon@gmail.com>

	date: mention military timezone changes from gnulib
	Gnulib commits f1f10d47be8762e4ca17c8957a0520b08d28abfb and
	0673d8ab42c9bb0cf618a21b537cdd8fb976fb73 negated the meaning of
	military timezones parsed in gnu date.
	See https://lists.gnu.org/r/bug-gnulib/2019-08/msg00005.html and
	https://lists.gnu.org/r/coreutils/2019-08/msg00021.html

	* NEWS: Mention this user-visible change.
	* tests/misc/date.pl: Add tests for the new behavior.

2019-08-11  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: add lib/argmatch.h to po/POTFILES.in
	* po/POTFILES.in (lib/argmatch.h): Add to avoid sc_po_check error:
	    "maint.mk: you have changed the set of files with translatable \
	     diagnostics;"

2019-08-11  Assaf Gordon  <assafgordon@gmail.com>

	gnulib: update to latest

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

	doc: clarify that truncate creates sparse files
	* src/truncate.c (usage): Explicitly mention "sparse".
	* doc/coreutils.texi (truncate invocation): Likewise.
	Addresses https://bugs.gnu.org/36963

2019-08-07  Mike Swanson  <mikeonthecomputer@gmail.com>

	dircolors: recognize the WebP image format
	* src/dircolors.hin: Add .webp for the WebP image format.
	Fixes https://bugs.gnu.org/36899

2019-08-07  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: fix error in syntax-check checking
	The previous commit introduced a bug into the following syntax-check,
	and thus effectively turned it off:

	  $ make sc_prohibit_test_calls_print_ver_with_irrelevant_argument; \
	      echo $?
	  prohibit_test_calls_print_ver_with_irrelevant_argument
	  fatal: cannot change to 'grep': No such file or directory
	  0

	* cfg.mk (sc_prohibit_test_calls_print_ver_with_irrelevant_argument):
	Remove changing directory, and pass $(srcdir) as argument to 'git -C'.

2019-08-04  Akim Demaille  <akim.demaille@gmail.com>

	maint: fix issues in syntax-check
	* cfg.mk (sc_prohibit_colon_redirection): Don't expect `|` to denote
	the pipe character in git grep.
	(sc_tests_executable)
	(sc_case_insensitive_file_names)
	(sc_some_programs_must_avoid_exit_failure)
	(sc_prohibit_test_background_without_cleanup_)
	(sc_prohibit_test_calls_print_ver_with_irrelevant_argument)
	(sc_prohibit_test_ulimit_without_require_)
	(sc_prohibit_test_background_without_cleanup_)
	(sc_THANKS_in_duplicates)
	*sc_prohibit_test_calls_print_ver_with_irrelevant_argument):
	Don't expect builddir to be a descendant of srcdir.
	(sc_strftime_check): Don't check file size against 0 when "N\nq\n" was
	already put in the file.
	* THANKS.in: Remove me.

2019-08-03  Assaf Gordon  <assafgordon@gmail.com>

	seq: fix superfluous output line
	Under certain circumstances seq prints an extra line when the output
	format has custom format with characters following the printed numbers:

	    $ seq -f "%g " 1000000 1000000
	     1e+06
	     1e+06

	This is due to the "print_extra_number" logic using strings to determine
	whether a 'extra number' is needed, but only one string was trimmed
	when using a custom printf format.

	Prompted by https://lists.gnu.org/r/coreutils/2019-08/msg00001.html

	* NEWS: Mention fix.
	* src/seq.c (print_numbers): Trim the 'x0_str' string before comparing
	it to the previous 'x_str' string.
	* tests/misc/seq-extra-number.sh: Add this scenario.
	* tests/local.mk (all_tests): Add new test.

2019-07-22  Bernhard Voelker  <mail@bernhard-voelker.de>

	doc: improve new version sort chapter
	* doc/sort-version.texi: Fix some typos, avoid overly long lines in
	the generated PDF, enclose some sample strings in @samp{...} for better
	readability, etc.  This also avoids an sc-avoid-builtin error:
	s/builtin/built-in/

2019-07-15  Assaf Gordon  <assafgordon@gmail.com>

	doc: add "version sort ordering" chapter
	* doc/sort-version.texi: New file.
	* doc/local.mk (doc_coreutils_TEXINFOS): Add new file.
	* doc/coreutils.texi: @include new file, replace previous "Details about
	version sort" section.

2019-07-12  Andreas Dilger  <adilger@whamcloud.com>

	stat: don't explicitly request file size for filenames
	When calling 'stat -c %N' to print the filename, don't explicitly
	request the size of the file via statx(), as it may add overhead on
	some filesystems.  The size is only needed to optimize an allocation
	for the relatively rare case of reading a symlink name, and the worst
	effect is a somewhat-too-large temporary buffer may be allocated for
	areadlink_with_size(), or internal retries if buffer is too small.

	The file size will be returned by statx() on most filesystems, even
	if not requested, unless the filesystem considers this to be too
	expensive for that file, in which case the tradeoff is worthwhile.

	* src/stat.c: Don't explicitly request STATX_SIZE for filenames.

2019-06-20  Paul Eggert  <eggert@cs.ucla.edu>

	od: use fseek on non-regular files
	Problem reported by Szőts Ákos (Bug#36291).
	* NEWS: Mention this.
	* src/od.c (skip): Try fseek even on files that do not have usable
	sizes, falling back on fread if fseek fails.

2019-06-18  Paul Eggert  <eggert@cs.ucla.edu>

	doc: mention ls -l user/group justification
	* doc/coreutils.texi (What information is listed):
	Document justification of user and group columns in ls -l output
	(Bug#36220).

2019-06-14  Jeff Layton  <jlayton@kernel.org>

	stat: fix enabling of statx logic
	* src/stat.c: STATX_INO isn't defined until stat.h is included.
	Move the test down so it works properly.

2019-06-13  Assaf Gordon  <assafgordon@gmail.com>

	tests: avoid false-positive in date-debug test
	When debugging an invalid date due to DST switching, the intermediate
	'normalized time' should not be checked - its value can differ between
	systems (e.g. glibc vs musl).

	Reported by Niklas Hambüchen in
	https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
	Analyzed by Rich Felker in
	https://lists.gnu.org/r/coreutils/2019-05/msg00039.html

	* tests/misc/date-debug.sh: Replace the exact normalized time
	with 'XX:XX:XX' so different values would not trigger test failure.

2019-06-10  Jeff Layton  <jlayton@kernel.org>

	stat: Use statx where available and support --cached
	* src/stat.c: Drop statbuf argument from out_epoch_sec().
	Use statx() rather than [lf]stat() where available,
	so a separate call is not required to get birth time.
	Set STATX_* mask bits only for things we want to print,
	which can be more efficient on some file systems.
	Add a new --cache= command-line option that sets the appropriate hint
	flags in the statx call.  These are primarily used with network
	file systems to indicate what level of cache coherency is desired.
	The new option is available unconditionally for better portability,
	and ignored where not implemented.
	* doc/coreutils.texi: Add documention for --cached.
	* man/stat.x (SEE ALSO): Mention statx().
	* NEWS: Mention the new feature.

2019-06-09  Pádraig Brady  <P@draigBrady.com>

	doc: fix description of tail -f on truncated files
	* doc/coreutils.texi (tail invocation): Update to match
	the new behavior following commit v8.23-189-gb28ff6a

2019-06-08  Pádraig Brady  <P@draigBrady.com>

	split: fix failure for certain number of specified files
	* src/split.c (set_suffix_length): Use a more standard
	zero based logN calculation for the number of units.
	* tests/split/suffix-auto-length.sh: Add a test case.
	* THANKS.in: Mention the reporter.
	* NEWS: Mention the fix.
	Fixes https://bugs.gnu.org/35291

2019-05-30  Paul Eggert  <eggert@cs.ucla.edu>

	dd: be more careful about signal handling
	Problem reported by Hans Henrik Bergan (Bug#36007).
	* NEWS: Mention this.
	* src/dd.c (iclose, ifdatasync, ifstat, ifsync):
	New functions, which are more careful about SIGINT.
	(cleanup): Use iclose instead of close.
	(finish_up): Process signals first.
	(skip, dd_copy, main): Use ifstat instead of fstat.
	(dd_copy): Use ifdatasync and ifsync instead of fdatasync and fsync.

	maint: fix version number in NEWS

2019-05-28  Paul Eggert  <eggert@cs.ucla.edu>

	cp: fix /dev/stdin problem on Solaris
	Problem reported by Jakub Kulik (Bug#35713).
	* NEWS: Mention this.
	* configure.ac (DEV_FD_MIGHT_BE_CHR): New macro.
	* src/copy.c (DEV_FD_MIGHT_BE_CHR): Default to false.
	(follow_fstatat): New function.
	(copy_internal): Use it.
	* src/copy.h (XSTAT): Remove; no longer used.

2019-05-26  Kevin Locke  <kevin@kevinlocke.name>

	doc: clarify dd sparse detection is by *output* block
	The wording of the dd --help text suggests that output will be skipped
	for sparse *input* blocks (i.e. that NUL-checking is done on input
	blocks) while the code actually checks/skips all-NUL *output* blocks.[1]

	* src/dd.c (usage): Update the --help text to clarify the above.
	* tests/dd/sparse.sh: Ensure sparseness is controlled with obs.

	[1]: https://superuser.com/a/1136358

2019-05-22  Martin Castillo  <castilma@uni-bremen.de>

	doc: fix typo in sort set operations example
	* doc/coreutils.texi (sort invocation): Add a missing -u
	option to uniq.
	Addresses https://bugs.gnu.org/35849

2019-05-17  Paul Eggert  <eggert@cs.ucla.edu>

	b2sum: port blake2b-ref.c to HP-UX aCC
	Continue the fix for Bug#35650.
	* src/blake2/blake2b-ref.c [HAVE_CONFIG_H]: Include <config.h>.

2019-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	b2sum: sync better with upstream
	* src/blake2/b2sum.c: Reorder source code to minimize diffs from:
	https://github.com/BLAKE2/BLAKE2/blob/master/b2sum/b2sum.c

	b2sum: port to HP-UX aCC
	Its support for the -include option is flaky.  Problem reported by
	Michael Osipov (Bug#35650).  Plus, we could run into other
	compilers that don’t support any option like -include.  Change the
	code so that -include is not needed.  Although this causes us to
	depart from the upstream version, we’re already doing that for
	other reasons.
	* configure.ac (USE_XLC_INCLUDE): Remove, as there’s no
	guarantee a compiler will support something like -include.
	* src/blake2/b2sum.c [HAVE_CONFIG_H]: Include <config.h>.
	* src/local.mk (src_b2sum_CPPFLAGS): Add -DHAVE_CONFIG_H.
	Do not use -include or a substitute.

2019-05-14  Paul Eggert  <eggert@cs.ucla.edu>

	stdbuf: port configure-time checking to HP-UX aCC
	Problem reported by Michael Osipov (Bug#35650).
	* configure.ac: Use AC_LANG_WERROR to pay attention to compiler
	and linker warnings when testing whether stdbuf will work.

2019-05-11  Paul Eggert  <eggert@cs.ucla.edu>

	b2sum: port to HP-UX C
	* src/blake2/blake2.h (BLAKE2_PACKED):
	Don’t assume __attribute__ ((packed)) works on non-Microsoft
	compilers.  Instead, assume it works only if we have good
	reason to assume so, and fall back on Microsoft (or not packing)
	otherwise.  In practice, not packing is good enough and the
	BLAKE2_PACKED macro is mostly just for documentation.

	cp: port fiemap.h to C99
	* src/extent-scan.c (extent_scan_read): Adjust to change in
	struct fiemap.
	* src/fiemap.h (struct fiemap): Use FLEXIBLE_ARRAY_MEMBER
	to port to C99.

	basenc: port to C99
	* src/basenc.c: Various minor style cleanups.
	(struct base_decode_context): Do not use anonymous unions, as
	they’re not in C99.  Use a named union instead.  All uses changed.

	maint: adjust to recent verify_true removal
	* src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
	Use verify_expr instead of verify_true, which has been removed.
	(DECIMAL_DIGIT_ACCUMULATE): Remove unnecessary size check.

	build: update gnulib submodule to latest

2019-04-19  Bernhard Voelker  <mail@bernhard-voelker.de>

	gnulib: update to the latest
	* gnulib: Update to latest, mainly for:
	  > mountlist: make parsing /proc/self/mountinfo more robust
	* NEWS: Mention the fix.

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

2019-03-31  Shugo Maeda  <shugo@ruby-lang.org>

	factor: output immediately if stdout is a tty but stdin is not
	* src/factor.c (lbuf_putc): Use line buffered mode if the standard
	output is a terminal in the same way as the stdio library.
	User programs might use pty only for the standard out
	like the example of Ruby's PTY module:
	https://docs.ruby-lang.org/en/2.6.0/PTY.html#module-PTY-label-Example
	* NEWS: Mention the fix.
	Fixes https://bugs.gnu.orv/35046

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

	maint: fix syntax check failure
	* src/ln.c: Remove leading TAB.

2019-03-30  Martin Castillo  <castilma@uni-bremen.de>

	maint: tee: use STDIN_FILENO rather than 0
	* src/tee.c (tee_files): Use the name rather than the value.
	Addresses https://bugs.gnu.org/35041

2019-03-20  Paul Eggert  <eggert@cs.ucla.edu>

	dd: improve doc of stderr output
	* doc/coreutils.texi (dd invocation):
	Document stderr output more carefully.
	Say that conv=block can lose input data.

2019-03-18  Kamil Dudka  <kdudka@redhat.com>

	md5sum,b2sum,sha*sum: --help: add note about binary/text mode
	* src/md5sum.c (usage): Make it clear that there is no difference
	between binary mode and text mode on GNU systems.

	Bug: https://bugzilla.redhat.com/406981
	Bug: https://bugzilla.redhat.com/1688740

2019-03-17  Paul Eggert  <eggert@cs.ucla.edu>

	doc: add NEWS item for Solaris symlink fix

	ln: port to symlink ("x", ".") failing with EINVAL
	Problem reported by John Marino (Bug#34894).
	* src/ln.c (main): Port ln -s to Solaris symlink function,
	where symlink ("x", ".") fails with errno == EINVAL.

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

	doc: add a NEWS entry for the ln O_DIRECTORY fix
	* NEWS: Mention the bugfix.

2019-03-16  Paul Eggert  <eggert@cs.ucla.edu>

	ln: port to platforms lacking O_DIRECTORY
	* src/ln.c (main): Port to older platforms lacking
	support for POSIX.1-2008’s O_DIRECTORY flag (Bug#34876).

2019-03-15  Kamil Dudka  <kdudka@redhat.com>

	doc: improve wording of the --kibibytes option description
	Bug: https://bugzilla.redhat.com/1527391 , https://bugs.gnu.org/33646

	* doc/coreutils.texi (General output formatting): Improve wording of
	'--kibibytes' option.

2019-03-11  Bernhard Voelker  <mail@bernhard-voelker.de>

	maint: sync extra files from gnulib
	Some files are physically copied from gnulib, and should get sync'ed
	after each update to latest gnulib.  This was forgotten during recent
	updates.

	* COPYING: Merge from gnulib/doc/COPYINGv3.
	* tests/init.sh: Merge from gnulib/tests/init.sh.

2019-03-11  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.

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

	version 8.31
	* NEWS: Record release date.

	tests: test-N: include subsecond values in gating check
	* tests/misc/test-N.sh: The subsecond values for atime and mtime
	were potentially seen to differ on newlyl created files.
	So we include the subsecond portion when comparing stat values.

	tests: wc-nbsp: fix false failures on various systems
	* tests/misc/wc-nbsp.sh: Add gating checks for all characters,
	as there are disparate classifications on various systems:
	SunOS 5.10 treats \u202F, \u2060 as !iswprint()
	SunOS 5.10 treats \u00A0, \u2007 as iswspace()
	AIX 7.2, Darwin 17.4.0, NetBSD 7.1 treat \u2060 as !iswprint()

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

	tests: tail-2/pipe-f: avoid false failure closing stdout
	* tests/tail-2/pipe-f.sh: Check closing stdout with >&-
	is effective, which avoids a false failure on NetBSD 7.1
	Reported by Assaf Gordon

	tests: tac-2-nonseekable: ensure we don't block indefinitely
	* tests/misc/tac-2-nonseekable.sh: Add a timeout to both
	protect and check whether we can close stdin correctly.

	tests: id/zero: avoid false failure due to sed differences
	* tests/id/zero.sh: sed on OSX will output a \n even
	if the input doesn't have a \n on the last "line".
	So ensure we always have a trailing '\n' to avoid the disparity.

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

	tests: test-N: fix false positives on some systems
	Testing by Assaf Gordon on OSX showed the atime wasn't
	being updated when explicitly set back in time.
	Also Debian 8.11 / mips64 was seen to not update the
	mtime when truncating an empty file.

	* tests/misc/test-N.sh: Isolate from different timestamping
	behaviors of various (file) systems, by correlating
	the timestamps with stat(1) before using `test -N`.

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

	doc: replace @hashchar{} with actual hash character
	Very old makeinfo-4.13 fails with:
	  ./doc/coreutils.texi:2286: Unknown command `hashchar'.
	  ./doc/coreutils.texi:2286: Misplaced {.
	  ./doc/coreutils.texi:2286: Misplaced }.

	Reported Bernhard Voelker in
	https://lists.gnu.org/r/coreutils/2019-03/msg00016.html .

	* doc/coreutils.texi (basenc invocation): Replace @hashchar{} with
	actual hash character.  The special syntax is only required
	when referring to #line directives.

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

	build: avoid statx related build failure on AIX
	* src/stat.c (get_birthtime): Check also for STATX_BTIME define,
	as a different statx is available on AIX 7.2.

	tests: wc-nbsp.sh: avoid failure on FreeBSD
	* tests/misc/wc-nbsp.sh: FreeBSD and OS X don't
	treat non breaking space as printable characters.
	So use wc -L to determine printability before
	testing non breaking space functionality.

	build: fix env build where SIGNUM_BOUND is not constant
	* src/env.c (initialize_signals): A new function to initialize
	the signals array on the heap, to avoid a build failure on
	opensolaris, where SIGNUM_BOUND is not a constant.

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

	doc: remove older ChangeLog items
	* Makefile.am: Update the oldest documented version
