1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-19 10:15:48 +02:00
Commit Graph

30921 Commits

Author SHA1 Message Date
Pádraig Brady
47b58df1bb maint: commit-msg: fix terminal corruption when re-editing
* scripts/git-hooks/commit-msg: Explicitly connect the editor to
/dev/tty, so that it can restore terminal settings appropriately.
2025-11-29 20:36:14 +00:00
Collin Funk
68e39a581a maint: remove note about old NEWS files
* NEWS: Remove mention about old fileutils, textutils, and sh-utils NEWS
files that were removed in commit 2c64bc872 (doc: only distribute 5
years of ChangeLogs, 2017-01-31).
* cfg.mk (old_NEWS_hash): Run 'make update-NEWS-hash'.
2025-11-29 11:56:26 -08:00
Pádraig Brady
faa566372d test: re-enable tests that had a false requirement on coreutils' kill
Recently we've not built our kill command by default,
so reduce test dependence on that.

* tests/sort/sort-compress-proc.sh: `kill -l [exit_status]` is well
supported, and is a POSIX requirement.
* tests/timeout/timeout.sh: There were actually no kill invocations
in this test at all.
2025-11-29 12:17:27 +00:00
Pádraig Brady
fc5c7b2e47 timeout: ensure we terminate command upon abnormal exit
* src/timeout.c (main): Use PR_SET_PDEATHSIG to ensure the
child is terminated even if the parent terminates abnormally.
* tests/timeout/timeout-group.sh: Add a case to ensure sending
SIGKILL results in the termination of the monitored command.
* NEWS: Mention the improvement.
2025-11-29 12:17:27 +00:00
Collin Funk
d1d311e7a2 tests: tac: test --separator with invalid UTF-8
* tests/tac/tac-locale.sh: Test that a string containing invalid UTF-8
characters can be used for --separator.
2025-11-28 21:46:40 -08:00
Collin Funk
90856dd867 du: add the short option -A corresponding to --apparent-size
The --apparent-size option to 'du' was added in
coreutils-4.5.8 (2003). FreeBSD 8.0 (2009) added the same functionality
under the short option -A. This long option previously had no short
option, so this patch adds -A to be compatible with FreeBSD.

* NEWS: Mention the new short option.
* doc/coreutils.texi: Document the short option.
* src/du.c (usage): Likewise.
(APPARENT_SIZE_OPTION): Remove definition.
(EXCLUDE_OPTION): Define to CHAR_MAX + 1.
(long_options): Use the -A short option for --apparent-size.
(main): Likewise.
* tests/du/apparent.sh: Test that '-b', '-A -B 1', and
'--apparent-size --block-size 1' function the same.
2025-11-28 14:08:31 -08:00
Collin Funk
7d94684f2c test: tac: test with non-ASCII values for --separator
* tests/tac/tac-locale.sh: New test.
* tests/local.mk (all_tests): Add it.
2025-11-28 13:23:47 -08:00
Pádraig Brady
0245bea3c8 doc: touch: man: state in summary that files are created
* man/touch.x: Creating files is core functionality of touch(1),
so state this in the summary, so that apropos can be used
to search for file creation functionality.
2025-11-28 13:44:27 +00:00
Pádraig Brady
0b2845ec79 tests: prefer ext4 casefold for case insensitive tests
* tests/mv/hardlink-case.sh: Try both ext4 casefold and hfsplus,
as ext4 has better availability.
Suggested at https://github.com/coreutils/coreutils/issues/133
2025-11-28 12:38:23 +00:00
Collin Funk
8083efff09 maint: prefer mcel_eq to mcel_cmp
* gnulib: Update submodule to latest.
* bootstrap: Run ./bootstrap --bootstrap-sync
* src/expr.c (mbs_logical_cspn): Use mcel_eq instead of mcel_cmp.
* src/join.c (eq_tab, main): Likewise.
2025-11-27 12:16:59 -08:00
Collin Funk
194176cddb doc: date: mention --file=- reads from standard input
* src/date.c (usage): Mention that standard input will be read if
DATEFILE is "-".
Reported at https://bugs.debian.org/1100395
2025-11-26 19:31:11 -08:00
Collin Funk
5763d56e69 doc: du, sort, wc: adjust description of --files0-from
* src/du.c (usage): Remove an unnecessary "then".
* src/wc.c (usage): Likewise. Add a comma after "-".
* src/sort.c (usage): Likewise. Adjust the indentation to match du and
wc.
2025-11-26 19:30:41 -08:00
Pádraig Brady
dc0f069ddd doc: fold: clarify operation of -s in --help
* src/fold.c (usage): The description of -s was unclear:
- State that we can also break within words.
- State that we split on blanks not spaces.
- State that we split after the blank, not before.
2025-11-26 09:32:27 +00:00
Pádraig Brady
6b399ad352 build: kill(1), uptime(1): don't install by default
* build-aux/gen-lists-of-programs.sh: kill and uptime are not installed
by arch, debian, fedora, suse at least, so add to disabled list.
Fixes https://github.com/coreutils/coreutils/issues/132
* NEWS: Mention the build change.
2025-11-25 13:45:44 +00:00
Collin Funk
b1ccb268b1 doc: cksum: document secure hash algorithms
* doc/coreutils.texi (cksum general options): Mention hash algorithms
that are currently considered secure against malicious tampering.
2025-11-23 13:32:35 -08:00
Paul Eggert
2199c9003e du,ls: don’t modify getenv strings
Fix du and ls to conform to the POSIX getenv spec,
which says you can’t modify strings returned by getenv
unless you put the string there directly, or used putenv.
This portability bug was found by strict C23 checking
using qualifier-generic functions.
* bootstrap.conf (gnulib_modules): Add xmemdup0.  Sort.
* src/du.c (main):
* src/ls.c (decode_switches):
Don’t modify the string that getenv returns.
Instead, use xmemdup0 if needed, and include xmemdup0.h.
2025-11-23 12:00:09 -08:00
Paul Eggert
eade022f24 numfmt: port to C23 qualifier-generic fns
* src/numfmt.c (mbsmbchr): Cast results of qualifier-generic functions
to char *, to port to strict C23.
2025-11-23 12:00:09 -08:00
Paul Eggert
24497f2451 build: update gnulib submodule to latest 2025-11-23 12:00:09 -08:00
Paul Eggert
772f240b6b cat: refactor struct stat usage
* src/cat.c (main): Simplify by keeping input and output
struct stat in separate local vars.
2025-11-23 12:00:09 -08:00
Pádraig Brady
51859d1f7a maint: use cksum specific checksums in release announcement
* cfg.mk: Use --cksum-checksums with announce-gen.
2025-11-23 13:24:40 +00:00
Pádraig Brady
6c323dce5b doc: cat -E: mention ^M$ output possibility
* src/cat.c (usage): Document the ^M$ combination
which is output for \r\n line endings.
Fixes https://github.com/coreutils/coreutils/issues/130
2025-11-23 12:16:32 +00:00
Pádraig Brady
cf973e7f80 dd,ls,sort: prefer sigaction over signal
sigaction() is generally available and if not
provided by the sigaction gnulib module.

* src/dd.c [SA_NOCLDSTOP]: Delete workarounds.
* src/ls.c: Likewise.
* src/sort.c: Likewise.
Suggested by Collin Funk.
2025-11-22 14:08:20 +00:00
Pádraig Brady
e63131b326 csplit,ls,sort: handle a more complete set of signals
* src/term-sig.h: A new file defining a TERM_SIG array signals.
* src/local.mk: Reference the new file.
* src/csplit.c: Likewise.
* src/sort.c: Likewise.
* src/timeout.c: Likewise.
* src/ls.c: Likewise.  Also handle SIGTSTP separately.
* NEWS: Mention the improvement.
2025-11-22 12:43:28 +00:00
Pádraig Brady
8c24619334 timeout: honor ignored signal dispositions
This behavior was depended on in our trap_sigpipe_or_skip_ helper,
and now that we're handling all terminating signals, we should
consistently honor their ignored signal dispositions.

* NEWS: Mention the change in behavior, especially in regard
to shell background jobs.
* src/timeout.c (sig_needs_handling): A new helper that return TRUE,
for --signal, SIG_ALRM, or non ignored signals.
(cleanup_install): Filter handled signals with the helper.
(block_cleanup_and_chld): Likewise.
* tests/timeout/timeout-group.sh: Adjust to use the now required
`env --default-signal=...` wrapper to reset (auto) ignored signals.
Also change the termination signal from SIGINT to SIGUSR1
to generalize the test signals not specially handled by the shell,
and newly handled by timeout(1).
* tests/timeout/timeout.sh: Add a test case for SIGPIPE
to ensure the ignored signal disposition is honored.
2025-11-22 08:49:20 +00:00
Pádraig Brady
d0a51c614d timeout: handle all terminating signals
* src/timeout.c (term_sig): A new global list of all signals
whose default disposition is to terminate the process.
(install_cleanup): Iterate over the TERM_SIG list, rather than
installing the handler for a specific subset.
(block_cleanup_and_chld): Likewise.
* tests/timeout/timeout.sh: Add a test case for SIGPIPE.
* NEWS: Mention the bug fix.
2025-11-21 12:12:28 +00:00
Pádraig Brady
1d58e4ddab build: remove explicit link to CoreFoundation libs on macOS
* src/local.mk: No longer explicitly depend on @INTL_MACOS_LIBS@
as they're no longer implicitly referenced (in LIBINTL) without gettext.
The old dependency was through localename-unsafe, specifically
date, du through show-date() (fprintftime), and
ls, pr, stat, uptime through strftime().
gnulib commit v1.0-2439-gff4b084a68 removed the localename-unsafe
dependency on macOS.
2025-11-20 10:43:06 +00:00
Pádraig Brady
aa805e25d3 build: update gnulib submodule to latest 2025-11-20 10:40:19 +00:00
Collin Funk
c22d1a4861 maint: add coreutils_hardlinks to src/.gitignore
* src/.gitignore (coreutils_hardlinks): Ignore this file. It is an empty
file created when --enable-single-binary=hardlinks is used to ensure
hardlinks are created after the multicall binary.
2025-11-19 19:23:36 -08:00
Collin Funk
55a32194a9 maint: prefer MAYBE_UNUSED to void casts
* src/copy.c (clone_file, set_author): Use MAYBE_UNUSED in the prototype
instead of void casting the arguments.
2025-11-19 18:47:28 -08:00
Pádraig Brady
59d9f05ef7 build: support --enable-single-binary=hardlinks
* Makefile.am: Use ln rather than $(LN_S) for hardlinks.
* configure.ac: Accept --enable-single-binary=hardlinks.
* man/local.mk: In hardlink mode, explicitly add the
hardlink creation rule to mandeps.  Given the automake
generated dependency chain, this ensures that the hardlinks
are created _after_ the multicall binary, with `make all`
or `make check` etc.
* src/local.mk: Define the new src/coreutils_hardlinks rule,
and only depend on src/coreutils_{symlinks,shebangs} if
in those modes, so that hardlinks are created _after_
the multicall binary, and other link types before.
* NEWS: Mention the new feature.
Addresses https://github.com/coreutils/coreutils/issues/129
2025-11-19 14:38:27 +00:00
Collin Funk
0f695854d3 tests: check that mknod, mkfifo, and mkdir handle comma-separated modes
* tests/misc/mknod.sh: Test that mknod, mkfifo, and mkdir parse
comma-separated mode strings.
2025-11-17 19:17:08 -08:00
Sylvestre Ledru
c9303c5de0 tests: install supports comma-separated mode strings
Identified here:
<https://github.com/uutils/coreutils/pull/9298>

* tests/install/basic-1.sh: Add the check.
2025-11-17 19:15:34 -08:00
Collin Funk
be22a57793 maint: use C99 initialization syntax for single-variable 'for' loops
* src/chroot.c (parse_additional_groups): Declare variable in the 'for'
clause.
* src/comm.c (compare_files): Likewise.
* src/cp.c (re_protect): Likewise.
* src/csplit.c (save_buffer, find_line, write_to_file)
(split_file, main): Likewise.
* src/dd.c (apply_translations, translate_buffer)
(copy_with_block, main): Likewise.
* src/df.c (selected_fstype, excluded_fstype, filter_mount_list)
(last_device_for_mount, get_device, get_point, get_all_entries)
(main): Likewise.
* src/fmt.c (copy_rest, get_prefix, fmt_paragraph, put_paragraph)
(put_word): Likewise.
* src/fold.c (main): Likewise.
* src/head.c (elide_tail_bytes_pipe, main): Likewise.
* src/install.c (main): Likewise.
* src/join.c (prfields, join, main): Likewise.
* src/kill.c (list_signals): Likewise.
* src/ls.c (main, decode_switches, parse_ls_color, patterns_match):
Likewise.
* src/operand2sig.c (operand2sig): Likewise.
* src/pathchk.c (no_leading_hyphen, validate_file_name): Likewise.
* src/pr.c (char_to_clump): Likewise.
* src/printenv.c (main): Likewise.
* src/ptx.c (initialize_regex, digest_break_file)
(find_occurs_in_text, print_field): Likewise.
* src/remove.c (mark_ancestor_dirs): Likewise.
* src/seq.c (print_numbers): Likewise.
* src/shred.c (do_wipefd, main): Likewise.
* src/sort.c (cleanup, inittables, key_warnings, mergefps)
(check_ordering_compatibility, main): Likewise.
* src/split.c (closeout): Likewise.
* src/stat.c (find_bind_mount, print_it, format_to_mask): Likewise.
* src/stdbuf.c (set_program_path): Likewise.
* src/stty.c (apply_settings, display_changed, display_all)
(recover_mode, sane_mode): Likewise.
* src/system.h (stzncpy): Likewise.
* src/tail.c (pipe_lines): Likewise.
* src/tee.c (tee_files): Likewise.
* src/tr.c (look_up_char_class, get_spec_stats): Likewise.
* src/users.c (list_entries_users): Likewise.
2025-11-17 19:10:40 -08:00
Pádraig Brady
386cc5e4a7 build: fix make dist failure
* src/local.mk: s/crc.h/cksum_crc.h/.
Reported by Bruno Haible.
2025-11-17 20:02:55 +00:00
Pádraig Brady
eebe2abbb6 tests: use tail --debug to determine inotify support
* init.cfg (require_inotify_supported_): A new function that
indicates inotify support for a file in the current directory,
using tail --debug, rather than awkward strace checks etc.
* tests/tail/inotify-dir-recreate.sh: Call require_inotify_supported_.
 tests/tail/inotify-only-regular.sh: Likewise.
 tests/tail/inotify-race.sh: Likewise.
 tests/tail/inotify-race2.sh: Likewise.
2025-11-17 14:50:04 +00:00
Pádraig Brady
d611bcbfff tail: add --debug to report the --follow implementation
* doc/coreutils.texi (tail invocation): Describe --debug.
* src/tail.c (tail_forever, tail_forever_inotify): Output
which --follow implementation is being used.
* tests/tail/debug.sh: Add a new test.
* tests/local.mk: Reference the new test.
* NEWS: Mention the new feature.
2025-11-17 13:55:12 +00:00
Collin Funk
6cbb7f0dbb maint: convert remove a K&R declaration
This function is hidden unless EVAL_TRACE is defined for debugging.

* src/expr.c (trace): Convert to a prototype instead of K&R definition
to avoid -Werror=strict-prototypes. Make the argument const to avoid
-Werror=discarded-qualifiers.
2025-11-16 16:59:43 -08:00
Bernhard Voelker
9a970586c7 du: document the TIME_STYLE env variable in usage
The impact of the TIME_STYLE environment variable on du(1) was only
documented in the Texinfo manual.  To avoid surprises for users,
also mention TIME_STYLE in the usage text, i.e., for --help and man.
Organize similar as in ls(1), but as du(1) has slightly different
behavior it would be hard to share the translation.

* src/du.c (usage): Shorten the description of --time-style, and refer
to an additional --time-style / TIME_STYLE description below.
2025-11-16 18:31:20 +01:00
Pádraig Brady
3c1721d6c7 tests: verify we document all supported options in --help
* tests/misc/getopt_vs_usage.sh: A new test which checks the
converse of usage_vs_getopt.sh
* tests/local.mk: Reference the new test.
2025-11-16 17:18:03 +00:00
Pádraig Brady
e05b875be8 maint: tag supported options not documented in --help 2025-11-16 17:18:03 +00:00
Pádraig Brady
b545f6e6f3 maint: rearrange cksum modules so main is in cksum.c
* src/cksum.c: -> src/cksum_crc.c
* src/cksum.h: -> src/cksum_crc.h
* src/digest.c: -> src/cksum.c
* src/local.mk: Adjust accordingly.
* cfg.mk: Likewise.
* po/POTFILES.in: Likewise.
* src/cksum_avx2.c: Likewise.
* src/cksum_avx512.c: Likewise.
* src/cksum_pclmul.c: Likewise.
* src/cksum_vmull.c: Likewise.
2025-11-16 17:18:03 +00:00
Pádraig Brady
f8137811d9 wc: fix missing documentation for the --debug option
* doc/coreutils.texi (wc invocation): Desscribe --debug.
* src/wc.c (usage): Likewise.
* NEWS: Mention the bug fix.
2025-11-16 17:18:03 +00:00
Sylvestre Ledru
8a56f4cb89 tests: install should ignore umask
Identified here:
<https://github.com/uutils/coreutils/pull/9254>

  * tests/install/basic-1.sh: Add the check.
2025-11-15 23:10:54 +00:00
Collin Funk
28cf6ac831 tests: pr: add a test for bounded memory operation
* tests/pr/bounded-memory.sh: New file.
* tests/local.mk (all_tests): Add the test.
2025-11-15 11:34:21 -08:00
Collin Funk
71514b4983 tests: dd: add tests for conv=lcase and conv=ucase
* tests/dd/conv-case.sh: New test.
* tests/local.mk (all_tests): Add it.
2025-11-14 10:59:55 -08:00
Pádraig Brady
faf8d8998c doc: shred: clarify what --verbose outputs
* doc/coreutils.texi (shred invocation): Give more details on what
--verbose outputs, to give some indication of its utility.
* src/shred.c (usage): Likewise.  Also since we're changing the string,
split out translations to give translators more granular translations.
2025-11-14 13:23:09 +00:00
Collin Funk
57b3ccc9b0 tests: test: add test cases for -ef
* tests/test/test-file.sh: Check that -ef works as expected on files,
symbolic links, and hard links.
2025-11-13 10:53:45 -08:00
Collin Funk
07b5679570 maint: fix a typo in comments
* tests/date/reference.sh: Fix typo; s/modiication/modification.
2025-11-12 10:59:08 -08:00
Collin Funk
e1bd591bc2 tests: test: add test cases for -nt and -ot
* tests/test/test-file.sh: Check that -nt and -ot work properly when
files may or may not exist.
2025-11-12 10:42:14 -08:00
Pádraig Brady
e8dcdb9932 sort: avoid pthread calls with --parallel=1
Before this change there were the following unneeded pthread calls:

  $ seq 1e6 | ltrace -c -e 'pthread*' sort --parallel=1 | wc -l
  % time     seconds  usecs/call     calls      function
  ------ ----------- ----------- --------- --------------------
   39.13    0.031757          67       468 pthread_mutex_lock
   37.96    0.030811          65       468 pthread_mutex_unlock
   13.17    0.010691          65       162 pthread_cond_signal
    2.15    0.001747          64        27 pthread_mutex_destroy
    2.00    0.001620          60        27 pthread_mutex_init
    0.70    0.000565          62         9 pthread_cond_destroy
    0.64    0.000518          57         9 pthread_cond_init
  ------ ----------- ----------- --------- --------------------
  100.00    0.081159                  1170 total

* src/sort.c (sort): Avoid merge tree overhead when single threaded.
2025-11-12 14:12:43 +00:00