2025-04-09  Pádraig Brady  <P@draigBrady.com>

	version 9.7
	* NEWS: Record release date.

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

	tests: adjust csplit VM limit for CheriBSD
	* tests/misc/csplit-heap.sh: More memory is required to avoid
	a false failure on CheriBSD with its heap accounting overhead.
	This is confirmed to still trigger with the original memory leak
	being tested.

	ls: support capabilities with device 0,0
	* src/ls.c (has_capability_cache): Don't assume
	a device major,minor of 0,0 never occurs.

2025-04-08  Bruno Haible  <bruno@clisp.org>

	ls: fix crash of "ls -Z ." on OpenBSD's /dev/wd0a disk
	* src/ls.c (file_has_aclinfo_cache): Add new static variable
	'unsupported_cached'. Don't assume that device 0 never occurs.

2025-04-07  Jim Meyering  <meyering@meta.com>

	build: use _GL_ATTRIBUTE_NONSTRING attribute to avoid new warnings
	Avoid warnings like this from GCC 15:
	src/basenc.c:1139:20: error: initializer-string for array of 'char'
	truncates NUL terminator but destination lacks 'nonstring' attribute
	(9 chars into 8 available) [-Werror=unterminated-string-initialization]
	* src/basenc.c (z85_encoding, do_decode): Mark two more variables as
	non-terminated.

2025-04-07  Pádraig Brady  <P@draigBrady.com>

	maint: avoid syntax-check failures from recent commit
	* gl/lib/dtimespec-bound.h: Indent, Spellcheck.
	* gl/local.mk: Add new gl files.

2025-04-07  Paul Eggert  <eggert@cs.ucla.edu>

	doc: mention workaround for combining hex floats with suffixes
	* doc/coreutils.texi (hexDuration): Mention the p style exponent trick.

	build: update gnulib submodule to latest

	timeout: don’t sleep less than requested
	Also, change sleep and tail to not sleep less than requested.
	* bootstrap.conf (gnulib_modules): Add dtimespec-bound.
	* gl/lib/dtimespec-bound.c, gl/lib/dtimespec-bound.h:
	* gl/modules/dtimespec-bound: New files.
	* src/sleep.c, src/tail.c, src/timeout.c: Include dtimespec-bound.h.
	* src/sleep.c, src/tail.c: Don’t include xstrtod.h.
	* src/sleep.c (apply_suffix, main):
	* src/tail.c (parse_options):
	* src/timeout.c (apply_time_suffix):
	Don’t sleep less than the true number of seconds.
	* src/timeout.c: Don’t include ctype.h.
	(is_negative): Remove; no longer needed.
	(parse_duration): Use a slightly looser bound on the timeout, one
	that doesn’t need -lm on GNU/Linux.  Clear errno before calling
	cl_strtod.

2025-04-06  Jim Meyering  <jim@meyering.net>

	maint: silence a -Wunterminated-string-initialization warning
	* src/basenc.c (base16_encode): Mark BASE16 as not NUL-terminated.

2025-04-06  Pádraig Brady  <P@draigBrady.com>

	build: update gnulib submodule to latest

2025-04-06  Pádraig Brady  <P@draigBrady.com>

	timeout: remove dependence on libm
	This was seen to add about 100,000 ns to the startup time,
	on a 2.6 GHz i7-5600U with glibc 2.40.

	* .gitignore: Remove /lib/fenv.h.
	* bootstrap.conf: Remove fenv-rounding and signbit deps.
	* src/local.mk: Remove fenv lib dependency.
	* src/timeout.c (is_negative): A new helper function to
	be equivalent of signbit in the underflow case.
	(parse_duration): Remove the rounding up logic,
	as a nanosecond here or there has no significance.

2025-04-06  Pádraig Brady  <P@draigBrady.com>

	doc: mention the edge case of hex durations with 'd' suffix
	* doc/coreutils.texi (sleep invocation): Mention that suffixes are
	best avoided with hex arguments.
	(timeout invocation): Likewise.
	* tests/misc/sleep.sh: Ensure 'd' is not interpreted as "day".

2025-04-05  Pádraig Brady  <P@draigBrady.com>

	maint: adjustments to recent timeout change
	* .gitignore: Add /lib/fenv.h to ignore list.
	* tests/timeout/timeout-parameters.sh: Use a sleep length of 10s
	to be consistent with the pattern where we use this larger time
	when it does not slow down a test, but also provides protection
	against a hung test, and better avoidance of false failures due
	to races on very loaded systems.  Also fix the setting of FAIL.
	* tests/timeout/timeout-large-parameters.sh: Remove duplicated test.

2025-04-05  Paul Eggert  <eggert@cs.ucla.edu>

	timeout: round timeouts up
	This handles timeouts like 16777216.000000001 correctly;
	formerly the subsecond part of that timeout was ignored.
	* bootstrap.conf (gnulib_modules): Add fenv-rounding, signbit.
	* src/local.mk (src_timeout_LDADD): Append $(FENV_ROUNDING_LIBM).
	* src/timeout.c: Include fenv.h, math.h.
	Don’t include xstrtod.h, as xstrtod’s checking now gets in the way.
	(parse_duration): Round up when calling cl_strtod.
	Check for -1e-1000.  Don’t double-round 1e-9.
	* tests/timeout/timeout-parameters.sh: Test for -0.1,
	-1e-1000, 1e-1000.

2025-04-04  Collin Funk  <collin.funk1@gmail.com>

	maint: ensure that new "make syntax-check"-run sc_codespell passes
	* cfg.mk (codespell_ignore_words_list): Ignore false-positives.
	(exclude_file_name_regexp--sc_codespell): Skip some file names.
	* doc/coreutils.texi (mktemp invocation): Use "alphanumeric" which is
	consistent with the rest of the documentation.
	* src/expand-common.c: Fix typo.
	* src/ls.c: Likewise.
	* tests/split/l-chunk-root.sh: Likewise.

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

	timeout: ensure infinitesimal timeouts timeout quickly
	* src/timeout.c (parse_duration): Clamp infinitesimal values to 1ns.
	* tests/timeout/timeout-large-parameters.sh: Add a test case.
	* NEWS: Mention the bug fix.
	Fixes https://bugs.gnu.org/77535

	tests: fix false failure with multi-byte thousands separators
	* tests/sort/sort-h-thousands-sep.sh: sv_SE defaults to UTF-8
	on macOS 18, so avoid the test for multi-byte separators.
	Fixes https://bugs.gnu.org/77509

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

	ls: suppress ENOENT errors when reading ACL info
	* src/ls.c (gobble_file): Indicating unknown ACL info with '?'
	suffices for the edge case of a file being removed while reading,
	or older cygwin when reading through dangling symlinks.
	Reported by Corinna Vinschen.

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

	ls: print correct xattr error on all platforms
	* src/ls.c (gobble_file): Output errno, as u.err
	is not populated by file_has_aclinfo() on all platforms.
	* NEWS: Mention the bug fix.

2025-03-23  Paul Eggert  <eggert@cs.ucla.edu>

	mv: port test to OpenBSD 7.5
	Problem reported by Bruno Haible <https://bugs.gnu.org/75685>.
	* tests/mv/sticky-to-xpart.sh: Also allow OpenBSD behavior.

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

	doc: id: be direct about valid options with -nr
	* src/id.c (usage): State what options are valid with -nr,
	rather than just stating the default format is invalid.
	Fixes https://bugs.gnu.org/77163

	doc: id: make option combinations more searchable
	* src/id.c (usage): Add commas to make options more searchable.
	Don't add spaces since that would overflow 80 cols.
	Fixes https://bugs.gnu.org/77162

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

	ls: fix crash on systems with SELinux but without xattr support
	This was seen on termux on Android with ./configure --disable-xattr
	where listxattr() and getxattr() returned ENOTSUP.
	Then the valid security context obtained by file_has_aclinfo()
	was discounted, and problematically then freed multiple times.
	Reported at https://github.com/termux/termux-packages/issues/23752

	* src/ls.c (file_has_aclinfo_cache): Only discount the returned
	acl info when all components are defaulted due to being unsupported.

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

	dircolors: add vt220 as a color capable terminal
	This isn't strictly historically accurate
	but most practical these days, especially since
	systemd uses this as its default TERM type.
	See https://github.com/coreutils/coreutils/issues/96

	Tested with:
	  $ LS_COLORS= COLORTERM= TERM=vt220 src/ls --color
	  $ COLORTERM= TERM=vt220 src/dircolors

	* src/dircolors.hin: Add vt220.

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

	tests: dd: ensure posix_fadvise errors are handled
	* tests/dd/nocache_fail.sh: Add a test case for the recent fix.

2025-03-10  Frédéric Yhuel  <frederic.yhuel@dalibo.com>

	dd: fix error detection with "nocache" flag
	* NEWS: Mention the bug fix.
	* src/dd.c (invalidate_cache): Adjust to the unusual
	error propagation sematics of posix_fadvise().

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

	build: update gnulib submodule to latest

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

	doc: mention logname improvement in NEWS
	* NEWS: Mention the improvement in gnulib commit 90840606.
	Addresses https://bugs.gnu.org/76876

2025-02-26  Grisha Levit  <grishalevit@gmail.com>

	build: fix LIBCRYPTO_SONAME value with config cache
	* configure.ac (LIBCRYPTO_SONAME): Store library name in cache so we
	do not end up with an empty value for it when a cache file is used.
	The configure variable name is changed from utils_cv_dlopen_libcrypto
	to utils_cv_libcrypto_soname.

2025-02-24  Lukáš Zaoral  <lzaoral@redhat.com>

	who: fix -m with guessed tty names
	* who.c (scan_entries): Account for guessed tty names (e.g.
	'sshd pts/1') from the readutmp module when using the systemd backend.
	* bootstrap.conf (gnulib_modules): Add str_endswith.
	* News: Mention the bug fix.
	Addresses https://bugzilla.redhat.com/2343998

2025-02-20  Pádraig Brady  <P@draigBrady.com>

	build: update gnulib submodule to latest
	* gnulib: Update to 757345e8.
	* src/who.c: Adjust to new defines.

	maint: fix sc_tight_scope failure
	This reverts commit 83fb600a21c6bad362b5739e7a9a9780639fa550.

	maint: fix sc_preprocessor_indentation failure
	* src/cksum.h: Indent appropriately.

2025-02-19  Paul Eggert  <eggert@cs.ucla.edu>

	sort: improve -u brief doc
	* src/sort.c (usage): Reword -u help (Bug#76290).

	du: update debug option setup
	Current Gnulib arranges for fts debugging if GNULIB_FTS_DEBUG
	is defined, so key off that rather than off DU_DEBUG.
	* src/du.c (fts_debug): Remove decl, as Gnulib does this now.
	(FTS_CROSS_CHECK): Remove; all uses removed.
	(FTS_DEBUG) [!GNULIB_FTS_DEBUG]: Remove.
	(long_options) [GNULIB_FTS_DEBUG]: Add a ---debug option.
	(du_files): Call fts_cross_check only if fts_debug and GNULIB_FTS_DEBUG.
	(main): Set fts_debug if GNULIB_FTS_DEBUG, not DU_DEBUG.

	maint: omit function defn extern
	* src/chown-core.c, src/copy.c, src/cp-hash.c, src/csplit.c:
	* src/expand-common.c, src/find-mount-point.c, src/force-link.c:
	* src/group-list.c, src/iopoll.c, src/operand2sig.c:
	* src/show-date.c, src/wc_avx2.c:
	Omit unnecessary ‘extern ’ at the start of function defns.
	This is less wordy, makes it a bit easier to grep for issues such
	as the missing consistency checking in cksum.

	cksum: check API better
	* src/cksum_avx2.c, src/cksum_avx512.c, src/cksum_pclmul.c:
	* src/cksum_vmull.c:
	Include cksum.h instead of copying its decls/includes by hand.
	This is a better way to ensure consistency among defns and uses.

	cksum: minor crctab generation cleanups
	* src/cksum.c [CRCTAB]: Include only config.h and stdio.h,
	to simplify the crctab-generating code.
	[!CRCTAB]: Do not include stdint.h or stdio.h, as cksum.h does it now.
	(BIT, r, crc_remainder, main) [CRCTAB]: Use unsigned int, not
	uint_fast32_t or uint32_t, as this is good enough for GNU where
	unsigned int is guaranteed to be at least 32 bits, and this way we
	needn’t worry about mismatches between %08x formats and uint_fast32_t.
	(main) [CRCTAB]: Prefer more-local decls.  Do not output
	unnecessary directives to include stdint.h or stdio.h.
	No need for ‘return EXIT_SUCCESS;’ nowadays.
	* src/crctab.c: Regenerate.

	cksum: make cksum.h standalone
	* src/cksum.h: Include stdint.h, stdio.h so that this file
	can be included in any order, after config.h.
	Add a copyright notice.

	build: update gnulib submodule to latest

2025-02-17  Paul Eggert  <eggert@cs.ucla.edu>

	cksum: port to 32-bit uint_fast32_t
	* src/cksum_vmull.c (cksum_vmull): Don’t assume
	uint_fast32_t can hold 64 bits.
	Problem reported by Alyssa Ross (Bug#76360).

	cksum: fix test for missing
	* tests/cksum/cksum.sh: Don’t output confusing diagnostic.
	Problem reported by Alyssa Ross (Bug#76360).

2025-02-16  Mike Swanson  <mikeonthecomputer@gmail.com>

	dircolors: recognize “jxl” (JPEG XL) files

2025-02-14  Paul Eggert  <eggert@cs.ucla.edu>

	cat: fix plain ‘cat’ bug
	* src/cat.c (main): Do not fail with plain ‘cat’ where input and
	output are both /dev/tty, if the output happens to have O_APPEND set.
	Problem reported by lilydjwg <https://bugs.gnu.org/76255>.
	Also, don’t report an error if the seek position is at or after EOF,
	even if O_APPEND is set.

	cat: omit unnecessary lseek
	* src/cat.c (main): Don’t bother to try lseek on a fifo or socket,
	as it will fail.

	cat: port to platforms with shm, tmo
	* src/cat.c (main): Work even on platforms that have shared memory
	objects and typed memory objects, which means st_dev and st_ino do
	not work.

2025-02-05  Pádraig Brady  <P@draigBrady.com>

	doc: remove extraneous new lines in some man pages
	* local.mk: Add the --loose-indent option, which results in help2man
	avoiding extraneous new lines in expr.1, id.1, numfmt.1, shred.1,
	tail.1, and timeout.1.
	Fixes https://bugs.gnu.org/74107

	doc: sync help2man to latest version
	* man/help2man: sync changes to commit 8fe02612
	The main change here is to Use \f(CR for monospace text
	when using groff in troff mode.
	Previously \f(CW was used, but that's not portable.

	tests: du: avoid intermittent false failure
	* tests/du/long-sloop.sh: Avoid failure due to
	intermittent reception of FTS_DNR, seen on BTRFS at least.

2025-02-04  Paul Eggert  <eggert@cs.ucla.edu>

	build: update gnulib submodule to latest

2025-02-03  Paul Eggert  <eggert@cs.ucla.edu>

	maint: pacify ‘gcc -Wswitch-enum’
	I thought of a way to pacify -Wswitch-enum without much trouble.
	Either add all the enums, or if that’s too verbose use ‘switch (+E)’
	to indicate to the reader that there need not be a case for
	every enum value.  Since this approach improves static checking,
	make the change everywhere and check it with -Wswitch-enum.
	* configure.ac: Compile with -Wswitch-enum if it works and
	--enable-gcc-warnings.  No need to remove -Wswitch-default
	since Gnulib no longer adds it.
	* src/chmod.c (describe_change):
	* src/chown-core.c (describe_change):
	* src/copy.c (copy_debug_string, copy_debug_sparse_string):
	* src/df.c (decode_output_arg, get_dev):
	* src/du.c (main):
	* src/factor.c (print_factors):
	* src/head.c (diagnose_copy_fd_failure):
	* src/ls.c (time_type_to_statx, calc_req_mask)
	(decode_line_length, get_funky_string, parse_ls_color)
	(gobble_file, print_long_format):
	* src/split.c (main):
	* src/sync.c (sync_arg):
	* src/tr.c (is_char_class_member):
	* src/wc.c (main):
	Add switch cases to pacify -Wswitch-enum.
	* src/copy.c (copy_debug_string, copy_debug_sparse_string):
	Add unreachable () for unreachable cases.
	* src/digest.c (main):
	* src/od.c (decode_one_format):
	* src/tr.c (get_next, get_spec_stats):
	switch (E) → switch (+E).
	* src/digest.c (main):
	* src/tr.c (get_next):
	Omit unnecessary ‘default: break;’ that merely pacified GCC,
	as the new pacification style is better.
	* src/ls.c (decode_line_length):
	Add default unreachable case to prevent warning that function
	might not return a value.
	(gobble_file): Distinguish DEREF_NEVER from unreachable cases.

	build: update gnulib submodule to latest

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

	doc: ls: clarify --format options
	* src/ls.c (usage): Use parentheses to be less ambiguous as
	to what are WORDs and equivalent short options.  This is also
	consistent with the description of --sort and --indicator-style.
	Fixes https://bugs.gnu.org/75916

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

	doc: support --with-packager-bug-reports
	* src/system.h (emit_ancillary_info): Output
	PACKAGE_PACKAGER_BUG_REPORTS if the build is configured
	--with-packager-bug-reports.
	Reported by Bruno Haible.

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

	sort: drop "note" from a --debug message
	* src/sort.c (key_warnings): Remove "note " from the start
	of a usually informational message, as this simplifies translation.
	* tests/sort/sort-debug-warn.sh": Adjust accordingly.
	Fixes https://bugs.gnu.org/75763

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

	tests: avoid ENAMETOOLONG ERROR on some systems
	* tests/du/long-from-unreadable.sh: Relax to a skip_ for now,
	as this was seen to error on ext4 on Debian 11 in a docker container.

2025-01-20  Collin Funk  <collin.funk1@gmail.com>

	maint: tests: remove duplicate uses of 'my' in Perl
	* tests/env/env-S.pl (cf): Remove uses of 'my' after the variable has
	been declared.
	* tests/factor/factor.pl (t): Likewise.
	* tests/misc/fold.pl (prog): Remove duplicate assignment.

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

	tests: remove use of unprotected 'set'
	* cfg.mk (sc_prohibit_bare_set): A new syntax check to
	ensure we protect use of set with '--', so that args
	beginning with '-' are not interpreted as options,
	and if no args are present, all existing args are cleared.
	* tests/cp/symlink-slash.sh: Add -- to unprotected use of set.
	* tests/ls/ls-time.sh: Likewise.
	* tests/ls/symlink-slash.sh: Likewise.
	* tests/mkdir/perm.sh: Likewise.
	* tests/mkdir/selinux.sh: Likewise.
	* tests/mkdir/smack-no-root.sh: Likewise.
	* tests/mkdir/smack-root.sh: Likewise.
	* tests/mv/part-hardlink.sh: Likewise.
	* tests/nice/nice.sh: Likewise.
	* tests/stty/stty-row-col.sh: Likewise.

2025-01-19  Daniel Hofstetter  <dhofstet@gmail.com>

	tests: fix typo in tests/ls/ls-time.sh
	* tests/ls/ls-time.sh: s/--sort-name -t/-t --sort=name/.

2025-01-19  G. Branden Robinson  <g.branden.robinson@gmail.com>

	doc: fix superscript in Texinfo manual's math
	The numeral "3" in the exponent was set at full size on the baseline.

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

	ls: fix crash with --context
	* src/ls.c (main): Flag that we need to stat()
	if we're going to get security context (call file_has_aclinfo_cache).
	(file_has_aclinfo_cache): Be defensive and only lookup the device
	for the file if the stat has been performed.
	(has_capability_cache): Likewise.
	* tests/ls/selinux-segfault.sh: Add a test case.
	* NEWS: Mention the bug fix.
	Reported by Bruno Haible.

2025-01-17  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 9.6
	* NEWS: Record release date.

	build: update gnulib submodule to latest
	Mainly to avoid make dist-check failure with --disable-nls

2025-01-16  Bruno Haible  <bruno@clisp.org>

	build: fix compilation error on CentOS 8 Stream
	* configure.ac (USE_AVX512_CRC32): Set to false if the function
	_mm512_set_epi8 does not exist.

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

	tests: tail-c.sh: avoid failure on Linux kernels <= 2
	tests/tail/tail-c.sh: Exclude older kernels from timeout failure.

2025-01-16  Bruno Haible  <bruno@clisp.org>

	ls: Fix compilation error on CentOS 6
	* src/ls.c (XATTR_NAME_CAPS): Define fallback.

2025-01-16  Paul Eggert  <eggert@cs.ucla.edu>

	sort: fix --debug buffer overrun
	* src/sort.c (debug_key): Fix undefined behavior when a key ends
	before it starts.  Problem reported by Bruno Haible
	<https://bugs.gnu.org/75606>.

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

	tests: avoid false failure with replaced readdir
	* tests/rm/rm-readdir-fail.sh: Simulate EIO rather than ENOENT,
	as gnulib absorbs the latter since commit 5a2d28df.

	ls: suppress ENOTSUP errors on virtiofs
	* gnulib: Update to latest to pick up commit caf76886.
	* NEWS: Mention the bug fix.

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

	tests: misc/write-errors.sh: increase memory limit
	* tests/head/head-c.sh: Use a larger VM limit to avoid
	mem allocation failures, which were seen on CheriBSD.

	tests: head: avoid false failure on some systems
	* tests/head/head-c.sh: Pass a more similar operation
	to get_min_ulimit_v_, so we get a more appropriate limit.
	This was seen to be significant with CheriBSD.

	yes: avoid failure on CHERI protected systems
	* src/yes.c (main): Don't reuse the argv array as CHERI's
	capability bounds do not allow for that, failing like:
	  $ yes $(seq 156) | head -n1
	  In-address space security exception (core dumped)

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

	tac: avoid out of bounds access
	This was flagged on CheriBSD on ARM Morello with the error:
	"In-address space security exception (core dumped)"
	triggered with: tac -s '' /dev/null

	* src/tac.c (main): Ensure we don't read beyond the
	end of the supplied optarg.

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

	tests: avoid ERRORs with no mntent.h
	* tests/df/skip-duplicates.sh: Just skip this test if we fail
	to build the shared lib.  This fails on Solaris 11 at least
	due to no HAVE_MNTENT_H.  Note HAVE_SYS_MNTENT_H does not
	suffice for this wrapper code.
	* tests/df/no-mtab-status.sh: Likewise.

	tests: avoid false failure with many mountpoints
	* tests/ls/readdir-mountpoint-inode.sh: Only take the first 64.

	tests: printf: avoid false failure
	* tests/printf/printf-surprise.sh: Increase the VM limit
	to avoid false failures in rare cases.

	tests: avoid slow ulimit -v behavior
	* init.cfg (ulimit_supported_): skip_ if the ulimit -v
	takes too long, which was seen with bash 5.2 on Solaris 11,
	where fork() returned EAGAIN under memory constraints,
	and bash retried for about 16 seconds.
	(get_min_ulimit_v_): Break early if skipped.
	* tests/misc/write-errors.sh: Be more conservative and
	skip on failure to determine min ulimit.

	tests: use more portable timeout presence check
	* init.cfg: timeout(1) on FreeBSD doesn't support --version
	(or --help with success status), so use syntax compatible
	with both FreeBSD and GNU.

	tests: tail: avoid failure on Solaris 11
	* tests/tail/tail-c.sh: On Solaris 11, tail -c 4096 /dev/urandom,
	will induce an lseek(,-4096,SEEK_END) which returns -4096 without
	setting errno, and a subsequent read() then gives EINVAL.
	Since tailing the end of a psuedo device is an edge case,
	we just verify that we don't spin reading the device forever.

	maint: avoid syntax-check failure
	* src/cksum.c: Use spaces to indent, not tabs.

2025-01-15  Paul Eggert  <eggert@cs.ucla.edu>

	cksum: port to Oracle Developer Studio 12.6
	* src/cksum.c (cksum_fp_t): New typedef.
	(pclmul_supported, avx2_supported, avx512_supported)
	(vmull_supported): Return this new type instead of bool.
	All callers changed.  That way, callers do not need to
	refer to functions like cksum_avx512 that might not
	exist on this platform.  Although GCC optimizes such
	references away, the C standard does not require this
	optimization.

	build: update gnulib submodule to latest

2025-01-14  Collin Funk  <collin.funk1@gmail.com>

	tests: env-S.pl: unset GNU/Hurd env vars
	* tests/misc/env-S.pl: Unset LD_ORIGIN_PATH.

2025-01-13  Paul Eggert  <eggert@cs.ucla.edu>

	ls: readdir errno fixes
	* src/ls.c (print_dir): Fix bug: file_failure can set errno to
	something other than EOVERFLOW but the code assumed it didn’t.
	Also, omit ENOENT bug workaround with glibc 2.3 and later,
	for consistency with Gnulib.

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

	tail: fix regression in open() flags used
	* src/tail.c (tail_file): Fix precedence issue introduced
	in commit v9.5-231-g177fcec66 so that we pass correct flags to open().
	Effectively this meant we would have dropped the O_BINARY flag
	on windows, since O_RDONLY is generally 0.
	Issue spotted by coverity.

	build: update to latest gnulib
	Ensure WCOREDUMP is always defined,
	and ensure --enable-silent-rules is honored with crc code generation.

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

	all: fix program name with --enable-single-binary=shebangs
	* gnulib: Pick up gnulib commit f11caad4fd which ensures
	we diagnose the actual utility name, and not just "coreutils"
	when in single binary mode.  This adjustment is required
	since gnulib commit 959152ba37 which enforced use of gnulib's
	error() once verror is used, and gnulib's error() always
	outputs the base name of the command, which the new gnulib
	commit now keeps up to date.

	tests: make misc/write-errors.sh immune to default signal disposition
	* tests/misc/write-errors.sh: Reset SIGPIPE to the default (terminate)
	disposition, so that the test doesn't erroneously fail due to an
	ignored SIGPIPE in the test environment.

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

	ls: fix inaccurate indication of ACLs on NFS
	* gnulib: Update to latest to pick up gnulib commit 05c63bc908
	which ensures accurate determination of the presence of NFSv4 ACLs.
	* NEWS: Adjust accordingly.
	Related to https://bugs.gnu.org/74692

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

	csplit: avoid extraenous output files given empty input
	* src/csplit.c (get_first_line_in_buffer): Don't exit here
	upon empty input, rather indicate no input in the return
	to let callers handle in a more consistent fashion.
	* NEWS: Mention the bug fix.
	* tests/csplit/csplit.sh: Add a test case.
	Reported by Daniel Hofstetter.

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

	ls: suppress "Permission denied" errors on NFS
	NFS (on Linux 6.12 at least) was seen to return EACCES
	from listxattr() for files without read access.
	We started using listxattr() in coreutils 9.4.

	* src/ls.c (gobble_file): Map EACCES from file_has_aclinfo()
	to '?', rather than displaying the error.
	* doc/coreutils.texi (ls invocation): Document the '?' flag.
	* NEWS: Mention the bug fix.
	Addresses https://bugs.gnu.org/74692

2025-01-10  Paul Eggert  <eggert@cs.ucla.edu>

	build: update gnulib submodule to latest

2025-01-08  Paul Eggert  <eggert@cs.ucla.edu>

	ls: update comment
	* src/ls.c (file_has_aclinfo_cache): Fix comment.

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

	tail: honor --pid with fifos
	* src/tail.c (tail_file): Open files with O_NONBLOCK
	if we might need async processing.
	(pipe_bytes): Ignore EAGAIN read() errors.
	(pipe_lines): Likewise.
	* tests/tail/pid-pipe.sh: Add a new test.
	* tests/local.mk: Reference the new test.
	* NEWS: Mention the bug fix.
	Reported by Berhard Voelker.

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

	cp,mv: decouple --update from -f,-i,-n options
	* src/copy.h: Change update member from bool to enum.
	* src/copy.c: s/interactive == I_ALWAYS_NO/update == UPDATE_NONE_FAIL/;
	              s/interactive == I_ALWAYS_SKIP/update == UPDATE_NONE/;
	              s/update/update == UPDATE_OLDER/;
	* src/install.c: Init with UPDATE_ALL, rather than false.
	* src/cp.c: Likewise.  Simply parse -f,-i,-n to x.interactive,
	and parse --update to x.update.
	* src/mv.c: Likewise.
	* tests/cp/cp-i.sh: Add a test case where -n --update -i
	honors the --update option, which would previously have been
	ignored due to the preceding -n.

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

	cp,mv: ensure -i,f are not overridden by -u
	Since coreutils 9.3 we had --update={all,older} override -i.
	In coreutils 9.5 this was expanded to -u
	(to make it consistent with --update=older).

	This patch reinstates things so that -i combines with -u instead.
	I.e. have -i be protective, rather than selective (like -u).

	The -f option of mv is similarly adjusted in this patch,
	so now --update does not override any of -f,-i,-n.

	* NEWS: Mention the bug fix.
	* src/cp.c (main): Don't have -u disable prompting.
	* src/mv.c (main): Likewise.
	* tests/cp/cp-i.sh: Add a test case for -i.
	* tests/mv/update.sh: Likewise.
	* tests/mv/i-3.sh. Add a test case for -f.
	Fixes https://bugs.gnu.org/70887

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

	doc: clarify mv -f operation in texinfo
	* doc/coreutils.texi (mv invocation): Be less ambiguous,
	in that -f is significant for any replacement operation
	on the destination, not just unlinking.

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

	maint: update all copyright year number ranges
	Update to latest gnulib with new copyright year.
	Run "make update-copyright" and then...

	* gnulib: Update included in this commit as copyright years
	are the only change from the previous gnulib commit.
	* tests/init.sh: Sync with gnulib to pick up copyright year.
	* bootstrap: Likewise.
	* tests/sample-test: Adjust to use the single most recent year.

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

	pwd: fix erroneous leading slash on some systems
	* gnulib: Pull in the fix to getcwd() from gnulib.
	* NEWS: Mention the fix.

2024-12-30  Pádraig Brady  <P@draigBrady.com>

	numfmt: don't require a suffix with --from=iec-i
	* src/numfmt.c (simple_strtod_human): Only look for 'i'
	after detecting a suffix.
	* tests/misc/numfmt.pl: Add a test case.
	* NEWS: Mention the bug fix.
	Reported at https://bugs.debian.org/1091758

	maint: fix syntax-check error
	* src/seq.c: Adjust line length.

2024-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	maint: adjust to Gnulib module renaming
	* bootstrap.conf, gl/modules/buffer-lcm, gl/modules/randperm:
	* gl/modules/randread, gl/modules/strnumcmp, gl/modules/targetdir:
	* gl/modules/xdectoint, gl/modules/xfts:
	Adjust to recent renaming of Gnulib modules, e.g., stdbool → bool,
	inttypes → inttypes-h.

	build: update gnulib submodule to latest

	date: improve doc for ambiguous formats
	Problem reported by Tim Connors <https://bugs.gnu.org/75208>.
	* doc/coreutils.texi (Date conversion specifiers):
	* src/date.c (usage):
	Warn about ambiguous formats like %D.

	maint: ISDIGIT → c_isdigit
	* gl/lib/strnumcmp-in.h (ISDIGIT):
	* src/system.h (ISDIGIT): Remove.  All uses replaced by c_isdigit,
	with appropriate inclusions of c-ctype.h.  This is more regular,
	and is more portable to existing (but unlikely) platforms where
	INT_MAX == UINT_MAX.

2024-12-30  Sylvestre Ledru  <sylvestre@debian.org>

	tests: improve the chmod/symlinks.sh test
	The variable of the loop isn't passed to the command making
	it less interesting

	* tests/chmod/symlinks.sh: Fix the test case.

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

	kill: with -l,-t list signal 0
	The 0 (EXIT) signal is valid as input
	(and useful to determine existence of a pid),
	so list it along with other signals.

	* doc/coreutils.texi (signal specifications): Document 0, "EXIT".
	* src/kill.c (list_signals): Start loops at 0, not 1.
	* tests/misc/kill.sh: Add a test case.
	* NEWS: Mention the change in behavior.

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

	maint: correct © dates for hardware optimized crc routines
	* src/cksum_pclmul.c: 2021-2024.
	* src/cksum_avx2.c: 2024.
	* src/cksum_avx512.c: 2024.
	* src/cksum_vmull.c: 2024.

	tail: always fail when followed files become inaccessible
	* src/tail.c (tail_forever): Without --retry, exit with failure
	status like we do for the inotify case (since v8.11-15-g61de57cd2).
	This is also consistent with the failure exit if no file was
	accessible at tail startup.
	* tests/tail/follow-stdin.sh: Tweak due to earlier exit.
	* tests/tail/follow-name.sh: Test with and without inotify.
	* NEWS: Mention the bug fix.

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

	cksum: update to pclmul optimized crc32b from gnulib
	* bootstrap.conf: Depend on crc-x86_64 rather than crc.
	* gnulib: Update to latest.
	* src/cksum.c (crc32b_sum_stream): Add --debug info.
	* NEWS: Mention the performance improvement.

2024-12-16  Daniel Hofstetter  <dhofstet@gmail.com>

	maint: tests: update deprecated perl backreference syntax
	* tests/basenc/basenc.pl: perl warns that $1 is better than \1,
	so update to the preferred form.

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

	maint: sync help2man to latest version
	* man/help2man: sync changes from version 1.48.5 through 1.49.3.
	This doesn't materially change the generated man pages.

2024-12-05  Sam Russell  <sam.h.russell@gmail.com>

	cksum: use ARMv8 SIMD extensions
	* configure.ac: Add check for ARMv8 VMULL support.
	* src/cksum.c: Add ARMv8 VMULL detection function.
	* src/cksum.h: Add ARMv8 VMULL implementation declaration.
	* src/cksum_vmull.c: ARMv8 VMULL implementation.
	* src/local.mk: Add build flags for ARMv8 VMULL.
	* NEWS: Mention the ARMv8 SIMD improvement.

2024-12-05  Pádraig Brady  <P@draigBrady.com>

	tail: ensure --follow=name unfollows renamed files
	Require --retry to continue to track files upon rename.
	We already unfollowed a file if it was renamed
	to another file system (unlinked), so this makes the behavior
	consistent if renaming to a file in the same file system.
	I.e. --follow=name without --retry, means unfollow if the
	name is unlinked or moved, so this change ensures that
	behavior for all rename cases.
	Related commits: v8.0-121-g3b997a9bc, v8.23-161-gd313a0b24

	* src/tail.c (tail_forever_notify): Remove watch for a renamed file
	if --retry is not specified.
	* tests/tail/F-vs-rename.sh: Related test cleanup.
	* tests/tail/follow-name.sh: Add a test case.
	* NEWS: Mention the bug fix.
	Fixes https://bugs.gnu.org/74653

2024-11-26  Sam Russell  <sam.h.russell@gmail.com>

	cksum: use AVX2 and AVX512 for speedup
	* configure.ac: Add checks for avx2 and avx512 support.
	* src/cksum_avx2.c: AVX2 implementation.
	* src/cksum_avx512.c: AVX512 implementation.
	* src/local.mk: Add build flags for avx2 and avx512.
	* src/cksum.c: Add avx2 and avx512 detection functions.
	* src/cksum.h: Add avx2 and avx512 implementation declarations.
	* NEWS: Mention the AVX2 and AVX512 improvement.

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

	tail,tee: fix broken pipe detection on darwin 9
	* src/iopoll.c (): Restrict use of poll() on macOS
	to >= 11 (darwin 20), as it was seen to fail on macOS 10.5.
	Fixes https://bugs.gnu.org/74503

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

	tests: avoid false failure with unicode decomposed file systems
	* tests/ls/dired.sh: macOS normalizes unicode characters to decomposed
	(NFD) form when storing names in the file system, which breaks the
	round-trip comparison employed by the test.  So instead use a character
	which does not decompose; verified with:
	  echo æ | uconv -f utf8 -t utf8 -x nfd | od -Ax -tx1z

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

	dd: port big-offset test to macOS 12.6
	* tests/dd/skip-seek-past-file.sh: Do not assume that
	seek to exactly OFF_T_MAX should fail; it works on macOS 12.6
	and POSIX allows this.  Come to think of it, it should work
	on Solaris too, if someone ever comes across a Solaris host
	with a file system that allows such files.

2024-11-20  Collin Funk  <collin.funk1@gmail.com>

	maint: update .gitignore
	* .gitignore (/lib/crc-sliceby8.h): Add file generated by Gnulib.

	maint: prefer mbszero over memset
	* src/df.c (replace_invalid_chars): Use mbszero.

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

	ls: port to Oracle Developer Studio 12.6
	Oracle Developer Studio 12.6 for sparc mishandles
	‘sizeof ((char []) {'x', 'y'})’: it says
	“warning: null dimension: sizeof()” and then generates
	the wrong length in data.  Work around the compiler bug
	by counting sizes by hand, which may be a bit clearer anyway,
	if a bit more error-prone.
	* src/ls.c (BIN_STR): Remove.
	(color_indicator): Spell out instead of using BIN_STR.

	factor: fix ‘return’ typo
	* src/factor.c (lbuf_putint): Don’t use ‘return E;’ in
	a void function’s body, fixing a recently-introduced typo.

2024-11-19  Paul Eggert  <eggert@cs.ucla.edu>

	doc: mention "printf %d ''" change

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

	tests: fix inconsistent use of getlimits_
	* tests/dd/skip-seek-past-file.sh: s/eval $(getlimits)/getlimits_/

	tests: printf: avoid iconv issues on macOS
	* tests/printf/printf-cov.pl: Since gnulib commit v1.0-1103-ge5b82978e2
	we avoid iconv() on ASCII range 0x32 - 0x7F inclusive, so adjust
	this test to fall within that range.
	Addresses https://bugs.gnu.org/74428

2024-11-19  Paul Eggert  <eggert@cs.ucla.edu>

	chown: port test to macOS 12.6 nogroup user
	* tests/chown/preserve-root.sh (id_g): Set to empty if id -gn
	reports that it is nogroup, and skip that part of the test.

	maint: omit unnecessary to_uchar
	* src/df.c (replace_control_chars):
	* src/dircolors.c (parse_line):
	* src/printf.c (print_esc):
	* src/ptx.c (unescape_string):
	* src/stat.c (print_it):
	* src/tr.c (star_digits_closebracket):
	Omit to_uchar calls that aren’t needed, because the parent
	expression works with ‘char’ as well as with ‘unsigned char’.

	tests: Remove stray ‘i’

	printf: diagnose empty args correctly
	Also, port better to macOS.
	* src/printf.c (verify_numeric): Don’t assume that when s == end
	then errno is zero; it is EINVAL on macOS, and POSIX allows this.
	(print_direc): Treat missing arg as zero for numeric conversions,
	and as an empty string for the others.
	(print_formatted): Use null pointer, not an empty string,
	to represent missing arg.
	* tests/printf/printf.sh: Test empty and space widths and precisions.

	printf: do n$ overflow checking by hand
	* src/printf.c (get_curr_arg): Mark as pure to pacify GCC 14.
	Do overflow checking by hand rather than relying on strspn
	and strtoimax.

	printf: refactor macros to function
	* src/printf.c (struct arg_cursor): New struct.
	(get_curr_arg): New function.
	(print_formatted): Use it instead of ...
	(GET_CURR_ARG, SET_CURR_ARG): ... these removed macros.
	This makes the code a bit easier to follow, and any efficiency
	cost should be minimal.

2024-11-18  Pádraig Brady  <P@draigBrady.com>
