]> git.ipfire.org Git - thirdparty/coreutils.git/log
thirdparty/coreutils.git
6 years agomaint: tee: use STDIN_FILENO rather than 0
Martin Castillo [Sat, 30 Mar 2019 22:04:06 +0000 (15:04 -0700)] 
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

6 years agodd: improve doc of stderr output
Paul Eggert [Wed, 20 Mar 2019 03:08:41 +0000 (20:08 -0700)] 
dd: improve doc of stderr output

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

6 years agomd5sum,b2sum,sha*sum: --help: add note about binary/text mode
Kamil Dudka [Thu, 14 Mar 2019 12:48:01 +0000 (13:48 +0100)] 
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

6 years agodoc: add NEWS item for Solaris symlink fix
Paul Eggert [Sun, 17 Mar 2019 20:25:10 +0000 (13:25 -0700)] 
doc: add NEWS item for Solaris symlink fix

6 years agoln: port to symlink ("x", ".") failing with EINVAL
Paul Eggert [Sun, 17 Mar 2019 20:20:42 +0000 (13:20 -0700)] 
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.

6 years agodoc: add a NEWS entry for the ln O_DIRECTORY fix
Pádraig Brady [Sat, 16 Mar 2019 21:21:40 +0000 (14:21 -0700)] 
doc: add a NEWS entry for the ln O_DIRECTORY fix

* NEWS: Mention the bugfix.

6 years agoln: port to platforms lacking O_DIRECTORY
Paul Eggert [Sat, 16 Mar 2019 18:24:19 +0000 (11:24 -0700)] 
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).

6 years agodoc: improve wording of the --kibibytes option description
Kamil Dudka [Thu, 6 Dec 2018 13:32:49 +0000 (14:32 +0100)] 
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.

6 years agomaint: sync extra files from gnulib
Bernhard Voelker [Thu, 7 Mar 2019 07:27:22 +0000 (08:27 +0100)] 
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.

6 years agomaint: post-release administrivia
Pádraig Brady [Mon, 11 Mar 2019 00:08:36 +0000 (17:08 -0700)] 
maint: post-release administrivia

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

6 years agoversion 8.31 v8.31
Pádraig Brady [Sun, 10 Mar 2019 23:34:41 +0000 (16:34 -0700)] 
version 8.31

* NEWS: Record release date.

6 years agotests: test-N: include subsecond values in gating check
Pádraig Brady [Sun, 10 Mar 2019 07:48:06 +0000 (23:48 -0800)] 
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.

6 years agotests: wc-nbsp: fix false failures on various systems
Pádraig Brady [Sun, 10 Mar 2019 04:40:34 +0000 (20:40 -0800)] 
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()

6 years agotests: tail-2/pipe-f: avoid false failure closing stdout
Pádraig Brady [Thu, 7 Mar 2019 06:23:21 +0000 (22:23 -0800)] 
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

6 years agotests: tac-2-nonseekable: ensure we don't block indefinitely
Pádraig Brady [Thu, 7 Mar 2019 05:39:15 +0000 (21:39 -0800)] 
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.

6 years agotests: id/zero: avoid false failure due to sed differences
Pádraig Brady [Thu, 7 Mar 2019 05:04:26 +0000 (21:04 -0800)] 
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.

6 years agotests: test-N: fix false positives on some systems
Pádraig Brady [Thu, 7 Mar 2019 04:09:16 +0000 (20:09 -0800)] 
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`.

6 years agodoc: replace @hashchar{} with actual hash character
Assaf Gordon [Wed, 6 Mar 2019 06:32:34 +0000 (23:32 -0700)] 
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.

6 years agobuild: avoid statx related build failure on AIX
Pádraig Brady [Wed, 6 Mar 2019 18:46:25 +0000 (10:46 -0800)] 
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.

6 years agotests: wc-nbsp.sh: avoid failure on FreeBSD
Pádraig Brady [Wed, 6 Mar 2019 18:34:16 +0000 (10:34 -0800)] 
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.

6 years agobuild: fix env build where SIGNUM_BOUND is not constant
Pádraig Brady [Wed, 6 Mar 2019 16:58:13 +0000 (08:58 -0800)] 
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.

6 years agodoc: remove older ChangeLog items
Pádraig Brady [Mon, 4 Mar 2019 09:28:42 +0000 (01:28 -0800)] 
doc: remove older ChangeLog items

* Makefile.am: Update the oldest documented version
to 8.22 which is now about 5 years old.

6 years agobuild: revert recent change with distributed man page handling
Pádraig Brady [Mon, 4 Mar 2019 09:12:04 +0000 (01:12 -0800)] 
build: revert recent change with distributed man page handling

* man/local.mk: commit f114495e added an extra check to ensure
a binary was working before using it to generate the man page.
However this was not working for the false(1) command,
and also one can generally specify that one should not
be using generated commands on the current system by passing
'cross_compiling=yes' to the configure invocation.

6 years agoenv: add --list-signal-handling to output non default handling
Pádraig Brady [Mon, 4 Mar 2019 07:50:21 +0000 (23:50 -0800)] 
env: add --list-signal-handling to output non default handling

* src/env.c (main): Output blocked or ignored signals
before a command is executed.
* doc/coreutils.texi (env invocation): Add the option.
* tests/misc/env-signal-handler.sh: Add a test case.
* NEWS: Mention the new feature.

6 years agoenv: new options --{default,ignore,block}-signal[=SIG]
Assaf Gordon [Fri, 15 Feb 2019 19:31:48 +0000 (12:31 -0700)] 
env: new options --{default,ignore,block}-signal[=SIG]

New options to set signal handlers for the command being executed.
--block-signal suggested by Paul Eggert in http://bugs.gnu.org/34488#71
--default-signal is useful to overcome the POSIX limitation that shell
must not override inherited signal state, e.g. the second 'trap' here is
a no-op:

   trap '' PIPE && sh -c 'trap - PIPE ; seq inf | head -n1'

Instead use:

   trap '' PIPE && sh -c 'env --default-signal=PIPE seq inf | head -n1'

Similarly, the following will prevent CTRL-C from terminating the
program:

   env --ignore-signal=INT seq inf > /dev/null

See https://bugs.gnu.org/34488#8

* NEWS: Mention new options.
* doc/coreutils.texi (env invocation): Document new options.
* man/env.x: Add example of --default-signal=SIG usage.
(SEE ALSO): Mention sigprocmask.
* src/env.c (signals): New global variable.
(longopts): Add new options.
(usage): Print new options.
(parse_signal_params): Parse comma-separated list of signals, store in
signals variable.
(reset_signal_handlers): Set each signal to SIG_DFL/SIG_IGN.
(parse_block_signal_params): Parse command-line options.
(set_signal_proc_mask): Call sigprocmask to block/unblock signals.
(main): Process new options.
* src/local.mk (src_env_SOURCES): Add operand2sig.c.
* tests/misc/env-signal-handler.sh: New test.
* tests/local.mk (all_tests): Add new test.

6 years agostat: print birth time on systems supporting statx
Martin Bukatovic [Sun, 3 Mar 2019 03:57:17 +0000 (19:57 -0800)] 
stat: print birth time on systems supporting statx

* configure.ac: Check for statx(), available on glibc >= 2.28.
* src/stat.c (get_birthtime): Call statx() when available.
* NEWS: Mention the improvement.

6 years agodf: support different file system encodings when not using tty
Pádraig Brady [Sun, 3 Mar 2019 22:35:18 +0000 (14:35 -0800)] 
df: support different file system encodings when not using tty

* src/df.c (replace_problematic_chars): A new wrapper to be
more conservative in our replacement when not connected to a tty.
* tests/df/problematic-chars.sh: Add a test case.

6 years agomaint: tidy up recent additions to NEWS
Pádraig Brady [Mon, 4 Mar 2019 03:21:37 +0000 (19:21 -0800)] 
maint: tidy up recent additions to NEWS

* NEWS: Move date change to improvements and fix nohup grammar.

6 years agodoc: further clarify 'yes' alternative in seq invocation
Bernhard Voelker [Tue, 26 Feb 2019 18:06:52 +0000 (19:06 +0100)] 
doc: further clarify 'yes' alternative in seq invocation

* doc/coreutils.texi (node seq invocation): Clarify to use the tool
'yes'; otherwise the reader may interpret the sentence as if one
could pass 'yes' as the INCREMENT value.

6 years agowc: treat non breaking space as a word separator
Pádraig Brady [Sun, 24 Feb 2019 05:23:47 +0000 (21:23 -0800)] 
wc: treat non breaking space as a word separator

* src/wc.c (iswnbspace): A new function to match
characters in this class.
(isnbspace): Likewise for single byte charsets.
(main): Initialize posixly_correct from the environment,
to allow disabling honoring NBSP in non C locales.
(wc): Call is[w]nbspace() along with is[w]space.
* bootstrap.conf: Ensure btowc is available.
* tests/misc/wc-nbsp.sh: A new test.
* tests/local.mk: Reference the new test.
* NEWS: Mention the change in behavior.

6 years agodoc: more date +%F clarifications
Paul Eggert [Mon, 25 Feb 2019 18:20:23 +0000 (10:20 -0800)] 
doc: more date +%F clarifications

* doc/coreutils.texi (Date conversion specifiers):
Plain %F is actually like %+4Y-%m-%d.
(Padding and other flags): Mention POSIX restrictions.
* src/date.c (usage): Document recent changes.

6 years agodoc: give date +%+F example
Paul Eggert [Mon, 25 Feb 2019 16:03:04 +0000 (08:03 -0800)] 
doc: give date +%+F example

* doc/coreutils.texi (Padding and other flags):
Give example for + conversion specification.

6 years agodoc: fix typo in previous patch
Paul Eggert [Mon, 25 Feb 2019 08:19:22 +0000 (00:19 -0800)] 
doc: fix typo in previous patch

6 years agodate: ‘+’ conversion specification flag
Paul Eggert [Mon, 25 Feb 2019 07:59:22 +0000 (23:59 -0800)] 
date: ‘+’ conversion specification flag

The recent Gnulib update fixed Bug#34608; document and test this.
* NEWS: Mention the change.
* doc/coreutils.texi (Padding and other flags):
Update doc to cover new flag and other POSIX.1-2017 changes.
* tests/misc/date.pl (date-century-plus): New test.

6 years agobuild: update gnulib submodule to latest
Paul Eggert [Mon, 25 Feb 2019 07:35:23 +0000 (23:35 -0800)] 
build: update gnulib submodule to latest

6 years agoall: detect --help and --version more consistently
Bernhard Voelker [Mon, 26 Nov 2018 08:05:37 +0000 (09:05 +0100)] 
all: detect --help and --version more consistently

For select programs which accept only --help and --version options
(in addition to non-option arguments), process these options before
any other options.

Before:

  $ dd bs=1 --help
  dd: unrecognized option '--help'
  Try 'dd --help' for more information.

  $ yes me --help
  me --help
  me --help
  ...

After:
Any occurrence of '--help' in the arguments (prior to '--') will
show the help screen.

Discussed in https://bugs.gnu.org/33468 .

* NEWS: Mention change.
* src/cksum.c, src/dd.c, src/hostid.c, src/hostname.c, src/link.c,
src/logname.c, src/nohup.c, src/sleep.c, src/tsort.c, src/unlink.c,
src/uptime.c, src/users.c, src/whoami.c, src/yes.c (main): Replace
parse_long_options() + getopt_long() calls with
parse_gnu_standard_options_only(); Remove <getopt.h> inclusion;
Remove empty 'struct long_options' variable;
* tests/misc/help-version-getopt.sh: Add test.
* tests/local.mk (all_tests): Reference it.

6 years agognulib: update to the latest
Pádraig Brady [Sun, 24 Feb 2019 02:55:53 +0000 (18:55 -0800)] 
gnulib: update to the latest

update to a version with parse_gnu_standard_options_only()

6 years agodoc: fix join examples in texinfo
Martin Castillo [Wed, 20 Feb 2019 07:25:40 +0000 (23:25 -0800)] 
doc: fix join examples in texinfo

* doc/coreutils.texi (join invocation): Fix various errors.
Fixes https://bugs.gnu.org/34583
Fixes https://bugs.gnu.org/34584

6 years agols: better align month abbreviations containing digits
Daming Yang [Tue, 19 Feb 2019 04:04:08 +0000 (20:04 -0800)] 
ls: better align month abbreviations containing digits

* src/ls.c (abmon_init): Align numeric abbreviations right.
* NEWS: Mention the improvement.

6 years agosort: clarify in --debug; only text comparisons affected
Pádraig Brady [Mon, 18 Feb 2019 03:16:37 +0000 (19:16 -0800)] 
sort: clarify in --debug; only text comparisons affected

* src/sort.c (main): Adjust the debug info regarding locales,
to clarify that only textual comparisons are affected.
* tests/misc/sort-debug-warn.sh: Adjust accordingly.
Fixes https://bugs.gnu.org/34490

6 years agocomm,join: ensure warnings are apparent upon exit
Pádraig Brady [Mon, 11 Feb 2019 01:40:36 +0000 (17:40 -0800)] 
comm,join: ensure warnings are apparent upon exit

* src/comm.c (main): Output a warning right before exit,
in case previous errors have scrolled from view.
* src/join.c (main): Likewise.
* tests/misc/comm.pl: Addjust accordingly.
* tests/misc/join.pl: Likewise.
Fixes https://bugs.gnu.org/34347

6 years agodoc: fix typo referencing RFC 2822
Filipp Gunbin [Tue, 12 Feb 2019 06:54:01 +0000 (22:54 -0800)] 
doc: fix typo referencing RFC 2822

* doc/coreutils.texi (date invocation): s/822/2822/.
Fixes https://bugs.gnu.org/34438

6 years agognulib: update to use new strtold module
Pádraig Brady [Mon, 11 Feb 2019 03:25:22 +0000 (19:25 -0800)] 
gnulib: update to use new strtold module

* gnulib: Update to make the new strtold module available.
* bootstrap.conf: strtod is now a dependency of c-strtod,
which in turn is a dependency of cl-strtod.  This treats
strtold and strtod similarly.
* gl/lib/cl-strtod.c: Adjust to assume strtold is available.
* tests/misc/sort-float.sh: Likewise.
* src/sort.c: Likewise.
(nan_compare): Adjust comment to indicate
we still have to init padding bits as per
https://sourceware.org/bugzilla/show_bug.cgi?id=13246

6 years agoseq: output decimal points consistently with invalid locales
Pádraig Brady [Sun, 3 Feb 2019 03:16:02 +0000 (19:16 -0800)] 
seq: output decimal points consistently with invalid locales

* src/seq.c (print_numbers): Only reset the locale if it
was successfully set originally.
* tests/misc/seq-locale.sh: Add a new test.
* tests/local.mk: Reference the new test.
* NEWS: Mention the fix.

6 years agobuild: ensure sys/select.h is included
Pádraig Brady [Wed, 30 Jan 2019 04:44:23 +0000 (20:44 -0800)] 
build: ensure sys/select.h is included

bootstrap.conf: Explicitly depend on select, rather than transitively.
* src/tail.c: Unconditionally include select.h as we use select()
outside inotify contexts now.

6 years agostat,tail: fix android build and support inotify
Pádraig Brady [Wed, 30 Jan 2019 04:32:53 +0000 (20:32 -0800)] 
stat,tail: fix android build and support inotify

* src/extract-magic: Treat android like linux,
which fixes the build by ensuring the constants are defined.
* src/stat.c: Support all constants on android, including
the android specific "sdcardfs".
* src/tail.c: Fix inclusion of statfs headers to be independent
of inotify availability, as fremote() is used on linux even
if inotify has been disabled.  Also enable fremote() on android.
* NEWS: Mention the improvment.
Fixes https://bugs.gnu.org/34239

6 years agotests: add test for locale decimal processing
Pádraig Brady [Mon, 28 Jan 2019 05:34:52 +0000 (21:34 -0800)] 
tests: add test for locale decimal processing

* tests/misc/sleep.sh: Check locale processing of printf, sleep,
and timeout, when the french locale data is available.

6 years agobuild: fix recent build failure on systems without strtold
Pádraig Brady [Wed, 30 Jan 2019 06:10:49 +0000 (22:10 -0800)] 
build: fix recent build failure on systems without strtold

Recently introduced in commit v8.30-50-geb73e23

* gl/lib/cl-strtod.c: Fall back to strtod() on systems
without strtold() (like we already do in sort).

6 years agomaint: fix new syntax-check failure from recent change
Pádraig Brady [Mon, 28 Jan 2019 04:41:23 +0000 (20:41 -0800)] 
maint: fix new syntax-check failure from recent change

* cfg.mk: Exclude cl-strtold.c wrapper from requiring config.h

6 years agoprintf,seq: remove c-strtod dependency
Paul Eggert [Sun, 27 Jan 2019 07:12:38 +0000 (23:12 -0800)] 
printf,seq: remove c-strtod dependency

* gl/modules/cl-strtold (Files): Add lib/cl-strtod.c, lib/cl-strtod.h.
(Depends-on): Remove cl-strtod.
(configure.ac): Redquire AC_C_RESTRICT.

6 years agoprintf,seq: improve long double accuracy
Paul Eggert [Sun, 27 Jan 2019 07:11:22 +0000 (23:11 -0800)] 
printf,seq: improve long double accuracy

This fixes a thinko in the previous patch.
* gl/lib/cl-strtod.c (STRTOD): New macro.
(CL_STRTOD): Use it.

6 years agoprintf,seq,sleep,tail,timeout: accept current-locale floats
Paul Eggert [Sun, 27 Jan 2019 00:37:01 +0000 (16:37 -0800)] 
printf,seq,sleep,tail,timeout: accept current-locale floats

These commands now accept floating-point numbers in the
current locale, as well as in the C locale.
Compatibility problem reported by Robert Elz.
* NEWS: Document this.
* bootstrap.conf (gnulib_modules): Add cl-strtod, cl-strtold.
Remove c-strtold.
* doc/coreutils.texi (Floating point, tail invocation)
(printf invocation, timeout invocation, sleep invocation)
(seq invocation): Document this.
* gl/lib/cl-strtod.c, gl/lib/cl-strtod.h, gl/lib/cl-strtold.c:
* gl/modules/cl-strtod, gl/modules/cl-strtold: New files.
* src/printf.c, src/seq.c, src/sleep.c, src/tail.c, src/timeout.c:
Include cl-strtod.h instead of c-strtod.
* src/printf.c (vstrtold):
* src/seq.c (scan_arg, print_numbers):
* src/sleep.c (main):
* src/tail.c (parse_options):
* src/timeout.c (parse_duration):
Use cl_strtold instead of c_strtold.

6 years agodoc: update Goldberg URL
Paul Eggert [Fri, 25 Jan 2019 19:29:17 +0000 (11:29 -0800)] 
doc: update Goldberg URL

* doc/coreutils.texi (Floating point): Update URL.

6 years agosleep: improve doc
Paul Eggert [Fri, 25 Jan 2019 19:15:31 +0000 (11:15 -0800)] 
sleep: improve doc

Problem reported by Robert Elz.
* doc/coreutils.texi (sleep invocation):
Say that arguments must be non-negative, which means they cannot
be arbitrary floating-point numbers.  Mention POSIX, not
“historical implementations” that are no longer of practical
interest.  List the extensions to POSIX.
* src/sleep.c (usage): Omit needless words, removing dubious
commentary about “most implementations” and incorrect commentary
about “arbitrary”.  Details about exactly which numbers are
allowed can be found in the documentation.

6 years agotail: fix handling of broken pipes with SIGPIPE ignored
Pádraig Brady [Sun, 20 Jan 2019 08:13:15 +0000 (00:13 -0800)] 
tail: fix handling of broken pipes with SIGPIPE ignored

* init.cfg (trap_sigpipe_or_skip_): A new function refactored from...
* tests/misc/printf-surprise.sh: ...here.
* tests/misc/seq-epipe.sh. Likewise.
* src/tail.c (die_pipe): Ensure we exit upon sending SIGPIPE.
* tests/tail-2/pipe-f.sh: Ensure we exit even if SIGPIPE is ignored.
* NEWS: Mention the bug fix.

6 years agotail: fix recent ineffective AIX change
Ayappan [Sun, 20 Jan 2019 08:17:33 +0000 (00:17 -0800)] 
tail: fix recent ineffective AIX change

* src/tail.c: Fix commit v8.30-40-gd5ab4cb which was ineffective.
Fixes http://bugs.gnu.org/33946

6 years agobuild: ensure VLAs are not used
Pádraig Brady [Mon, 14 Jan 2019 06:11:11 +0000 (22:11 -0800)] 
build: ensure VLAs are not used

Fail developer builds if VLAs are used,
as there are portability concerns to consider with them.

* configure.ac: Enable -Wvla which is implicit in the full list added.
* m4/jm-macros.m4: Define GNULIB_NO_VLA which disables use of
VLAs within gnulib code.

6 years agognulib: update to the latest
Pádraig Brady [Sun, 20 Jan 2019 05:07:04 +0000 (21:07 -0800)] 
gnulib: update to the latest

* gnulib: Update to a version supporting GNULIB_NO_VLA
* bootstrap: Sync with latest

6 years agobuild: use distributed man pages when running with --help fails
Bernhard Voelker [Fri, 4 Jan 2019 20:46:14 +0000 (21:46 +0100)] 
build: use distributed man pages when running with --help fails

When building against an incompatible GLIBC version compared to that
on the build host, then running the just-built binary might fail
although it is the same platform - thus CROSS_COMPILING is false.
As a result, generating the man pages fails.

* man/local.mk (.x.1): Add a check to verify that running the utility
with --help succeeds, otherwise falling back to using 'dummy-man'.

6 years agols: with --group-directories-first, also group symlinked dirs
Pádraig Brady [Thu, 27 Dec 2018 14:12:05 +0000 (06:12 -0800)] 
ls: with --group-directories-first, also group symlinked dirs

* src/ls.c (is_linked_directory): A new function to
also consider symlinked directories.
(main): Rename check_symlink_color to check_symlink_mode,
and enable that with --group-directories-first.
(DIRFIRST_CHECK): Adjust to use is_linked_directory,
rather than just is_directory.
(gobble_file): Simplify to always update f->linkmode
if the stat() succeeds.
* tests/ls/group-dirs.sh: A new test.
* tests/local.mk: Reference the new test.
* NEWS: Mention the change in behavior.
Suggested by Amin Bandali in
https://lists.gnu.org/r/coreutils/2018-12/msg00017.html

6 years agotail: don't exit immediately with filters on AIX
Pádraig Brady [Fri, 4 Jan 2019 17:29:13 +0000 (09:29 -0800)] 
tail: don't exit immediately with filters on AIX

* src/tail.c: Fix the check_output_available check on AIX.
Note we don't use poll for all systems as the overhead
of adding the gnulib poll module wouldn't be worth it
just for this single use.
* tests/tail-2/pipe-f.sh: Fix the test which always passed
due to only the exit code of sleep being checked.
* NEWS: Mention the bug fix and rearrange alphabetically.
Fixes http://bugs.gnu.org/33946

6 years agobasenc: allocate buffers on heap
Assaf Gordon [Sat, 5 Jan 2019 23:22:41 +0000 (16:22 -0700)] 
basenc: allocate buffers on heap

Allocate the encoding/decoding buffers dynamically on the heap instead
of using variable-length-array (VLA) on the stack.
Discussed in https://lists.gnu.org/r/coreutils/2019-01/msg00004.html .

* src/basenc.c (do_encode,do_decode): Allocate inbuf/outbuf using
xmalloc, and free if using LINT.

6 years agodoc: adjust URLs in help to avoid wrapping
Pádraig Brady [Tue, 1 Jan 2019 14:34:14 +0000 (06:34 -0800)] 
doc: adjust URLs in help to avoid wrapping

* src/system.h: Adjust lines containing URLs so that
they don't wrap on 80 column terminals.  One could also
use .UR macros, but these aren't universally available.
Note the adjustments here need to be compatible with
the pattern matching done in help2man.
Addresses https://bugs.gnu.org/33914

6 years agomaint: update all copyright year number ranges
Assaf Gordon [Tue, 1 Jan 2019 23:50:20 +0000 (16:50 -0700)] 
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.

6 years agomaint: mention base32 in the title line of common basenc.c
Bernhard Voelker [Fri, 21 Dec 2018 07:31:00 +0000 (08:31 +0100)] 
maint: mention base32 in the title line of common basenc.c

* src/basenc.c: Do the above, and remove a redundant comment.

6 years agobase64,base32: fix 'extra operand' error message
Assaf Gordon [Wed, 19 Dec 2018 08:02:32 +0000 (01:02 -0700)] 
base64,base32: fix 'extra operand' error message

In the following invocation, 'a' is the input file, and 'b' is the extra
operand:

  $ base64 a b

Report 'b' in the error message instead of 'a':

  $ base64 a b
  base64: extra operand 'b'

Discussed in https://lists.gnu.org/r/coreutils/2018-12/msg00008.html .

* src/basenc.c (main): If there is more than one non-option operand,
report the second one (assuming the first is a the input file name).
* tests/misc/base64.pl: Add tests.
* tests/misc/basenc.pl: Adjust expectedc error message in tests.
* NEWS: Mention bugfix.

6 years agodoc: mention that more than 8 colors are supported by ls
Pádraig Brady [Mon, 31 Dec 2018 13:09:43 +0000 (05:09 -0800)] 
doc: mention that more than 8 colors are supported by ls

* src/dircolors.hin: Mention any codes supported by the terminal
are allowed.
Addresses https://bugs.gnu.org/33915

6 years agobasenc: A new program complementary to base64/base32
Assaf Gordon [Fri, 28 Dec 2018 05:36:08 +0000 (22:36 -0700)] 
basenc: A new program complementary to base64/base32

Encodes/decodes data in various common formats:
base64,base64url,base32,base32,base16,base2,z85.

Discussed here:
https://lists.gnu.org/r/coreutils/2018-11/msg00014.html
https://lists.gnu.org/r/coreutils/2018-12/msg00019.html

* AUTHORS: Add basenc.
* README: Reference the new program.
* NEWS: Mention the new program.
* build-aux/gen-lists-of-programs.sh: Add basenc.
* doc/coreutils.texi: (basenc invocation): Document the new command.
* man/.gitignore: Ignore the generated man page.
* man/basenc.x: A new template, with few examples.
* man/local.mk: Reference the new man page.
* scripts/git-hooks/commit-msg: Allow basenc as program prefix.
* src/.gitignore: Ignore the new binary.
* src/basenc.c:
(usage): Mention new options.
(main): Handle new options.
(isbase*, base*_length, base*_encode, base*_decode_ctx): Implement new
encoding/decoding formats.
* src/local.mk: Add new program.
* tests/local.mk: Add new test.
* tests/misc/basenc.pl: New tests.
* tests/misc/help-version.sh (basenc_setup): use '--version' for default
invocation (basenc errors with no parameters).

6 years agomaint: rename base64.c to basenc.c
Assaf Gordon [Sat, 15 Dec 2018 21:26:40 +0000 (14:26 -0700)] 
maint: rename base64.c to basenc.c

In preparation for adding 'basenc' program.
Suggested in https://lists.gnu.org/r/coreutils/2018-11/msg00019.html .

* src/base64.c: Rename to src/basenc.c.
* src/local.mk: Update base*_SOURCES definitions.
* po/POTFILEs.in: Rename base64 to basenc.

6 years agoshred,sort,split: add NEWS item
Paul Eggert [Sat, 15 Dec 2018 20:42:18 +0000 (12:42 -0800)] 
shred,sort,split: add NEWS item

6 years agoshred,sort,split: fix ftruncate error reporting
Paul Eggert [Sat, 15 Dec 2018 20:13:58 +0000 (12:13 -0800)] 
shred,sort,split: fix ftruncate error reporting

Problem reported for split by Scott Worley (Bug#33761):
* src/shred.c (do_wipefd):
Also report an error if ftruncate fails on a shared memory object.
* src/sort.c (get_outstatus): New function.
(stream_open, avoid_trashing_input): Use it.
* src/sort.c (stream_open):
* src/split.c (create):
If ftruncate fails, do not report an error
unless it is a regular file or a shared memory object.

6 years agosync: add NEWS and test for the fix in the previous commit
Bernhard Voelker [Tue, 6 Nov 2018 23:26:01 +0000 (00:26 +0100)] 
sync: add NEWS and test for the fix in the previous commit

* NEWS (Bug fixes): Mention the fix in commit 94d364f157f0.
While at it, remove duplicate "Changes in behavior" heading.
* tests/misc/sync.sh: Add a test with a write-only file for the fix.

6 years agosync: fix open fallback bug
Paul Eggert [Tue, 6 Nov 2018 18:35:16 +0000 (10:35 -0800)] 
sync: fix open fallback bug

Problem caught by Coverity Analysis
and reported by Kamil Dudka (Bug#33287).
* src/sync.c (sync_arg): Fix typo in fallback code.

6 years agoln: use linkat and symlinkat
Paul Eggert [Sun, 28 Oct 2018 08:45:17 +0000 (01:45 -0700)] 
ln: use linkat and symlinkat

Open a target directory and use its file descriptor in linkat,
symlinkat, etc. syscalls, instead of constructing long file names
by concatenating the target directory name to a basename.
This avoids O(N²) behavior with ‘ln F1 F2 ... Fn DIR’ when DIR is
a long file name with many slashes.  It also avoids some races if
DIR is renamed while ln is running.
* bootstrap.conf (gnulib_modules): Add openat-safer.
* src/ln.c: Include fcntl-safer.h.
(O_PATHSEARCH): New constant.
(errno_nonexisting, target_directory_operand): Remove; no longer used.
(atomic_link, do_link): New arg DESTDIR_FD.  All uses changed.
(do_link): New arg DEST_BASE.  All uses changed.
(main): Open target directory and use its file descriptor
as DESTDIR_FD.

6 years agobuild: update gnulib submodule to latest
Paul Eggert [Sun, 28 Oct 2018 08:13:57 +0000 (01:13 -0700)] 
build: update gnulib submodule to latest

* src/copy.c (copy_internal):
* src/cp.c (do_copy):
* src/ln.c (do_link):
Adjust to Gnulib API change.

6 years agotests: provide 100% coverage for echo
Bernhard Voelker [Mon, 24 Sep 2018 21:47:39 +0000 (23:47 +0200)] 
tests: provide 100% coverage for echo

*  src/echo.c (usage): Assert that STATUS is always EXIT_SUCCESS.
* tests/misc/echo.sh: Add further tests for all hex and escape and
escape characters.

To get coverage statistics, run:
  make coverage -j 4 TESTS=tests/misc/echo.sh SUBDIRS=.
  xdg-open doc/coverage/src/echo.c.gcov.frameset.html

6 years agoecho: always process escapes when POSIXLY_CORRECT is set
Pádraig Brady [Mon, 24 Sep 2018 02:35:24 +0000 (19:35 -0700)] 
echo: always process escapes when POSIXLY_CORRECT is set

* src/echo.c (main): Always enable backslash processing if
POSIXLY_CORRECT is set.
* tests/misc/echo.sh: Add (the first) test for the echo command.
* tests/local.mk: Reference the new test.
* tests/misc/printf.sh: Update a stale comment.
* doc/coreutils.texi (echo invocation). Mention that POSIXLY_CORRECT
now always enables backslash processing.
* NEWS: Mention the change in behavior.
Fixes https://bugs.gnu.org/32703
Issue identified by Eric Blake.

6 years agotest: add -N unary operator
Bernhard Voelker [Sun, 21 Oct 2018 22:54:51 +0000 (00:54 +0200)] 
test: add -N unary operator

Bash knows 'test -N FILE'.  Add it to GNU 'test' as well.

* src/test.c (unary_operator): Add a case for 'N'.
(usage): Document it.
* doc/coreutils.texi (node File characteristic tests): Likewise.
* NEWS (New features): Likewise.
* tests/misc/test-N.sh: Add a test.
* tests/local.mk (all_tests): Reference it.

6 years agotest: simplify redundant code
Bernhard Voelker [Sun, 21 Oct 2018 19:56:43 +0000 (21:56 +0200)] 
test: simplify redundant code

Remove the function 'test_unop', as the cases therein are redundant to
those handled by 'unary_operator'; exception: the cases 'o' and 'N':
they had been present in test_unop and handling the commands
  test -N STR
  test -o STR
and
  test x = x -a -N STR
  test x = x -a -o STR
which ran into an error later on anyway.
With this commit, the error diagnostic will change from ...
  $ /usr/bin/test -N STR
  /usr/bin/test: extra argument '-N'
  $ /usr/bin/test -o STR
  /usr/bin/test: extra argument '-o'
... to ...
  $ src/test -N STR
  src/test: '-N': unary operator expected
  $ src/test -o STR
  src/test: '-o': unary operator expected

* src/test.c (test_unop): Remove.
(unary_operator): Fail with test_syntax_error in the default case.
(term): Directly call unary_operator.
(two_arguments): Likewise.
* tests/misc/test-diag.pl: Adjust error diagnostic.

6 years agotest: remove support for the ambigous -a unary operator
Bernhard Voelker [Sun, 21 Oct 2018 19:17:31 +0000 (21:17 +0200)] 
test: remove support for the ambigous -a unary operator

* src/test.c (unary_operator): Remove case 'a'.
(test_unop): Likewise.
* NEWS (Changes in behavior): Document the change.

Discussed at https://bugs.gnu.org/33097

6 years agotest: avoid FP in chroot-credentials.sh for different group list order
Bernhard Voelker [Sat, 20 Oct 2018 00:00:11 +0000 (02:00 +0200)] 
test: avoid FP in chroot-credentials.sh for different group list order

On my openSUSE:Tumbleweed system, I get a false positive test failure
in the above 'check-root' test because the group lists inside and
outside the chroot have a different order:

  ++ chroot --userspec=berny / id -G
  ++ id -G berny
  + test '100 454 457 480 492' = '100 480 492 457 454'
  + fail=1

* tests/misc/chroot-credentials.sh (num_sort): Add function to sort
group lists, and use it in the test cases which test multiple groups.

6 years agodoc: tidy up setuid commentary
Paul Eggert [Sat, 20 Oct 2018 17:45:35 +0000 (10:45 -0700)] 
doc: tidy up setuid commentary

* doc/perm.texi (Mode Structure): Improve wording.
(Numeric Modes): Don’t say “on execution” (Bug#9594).

6 years agoln: avoid directory hard-link races
Paul Eggert [Fri, 19 Oct 2018 19:19:43 +0000 (12:19 -0700)] 
ln: avoid directory hard-link races

Previously, 'ln A B' did 'stat("B"), lstat("A"), link("A","B")'
where the stat and lstat were necessary to avoid hard-linking
directories on systems that can hard-link directories.
Now, in situations that prohibit hard links to directories,
'ln A B' merely does 'link("A","B")'.  The new behavior
avoids some races and should be more efficient.
This patch was inspired by Bug#10020, which was about 'ln'.
* bootstrap.conf (gnulib_modules): Add unlinkdir.
* src/force-link.c (force_linkat, force_symlinkat): New arg for
error number of previous try.  Return error number, 0, or -1 if
error, success, or success after removal.  All callers changed.
* src/ln.c: Include priv-set.h, unlinkdir.h.
(beware_hard_dir_link): New static var.
(errnoize, atomic_link): New functions.
(target_directory_operand): Use errnoize for simplicity.
(do_link): New arg for error number of previous try.  All callers
changed.  Do each link atomically if possible.
(main): Do -r check earlier.  Remove linkdir privileges so we can
use a single linkat/symlinkat instead of a racy substitute for the
common case of 'ln A B' and 'ln -s A B'.  Set beware_hard_dir_link
to disable this optimization.

6 years agocp: 'cp -il A B' no longer fails if user OKs it
Paul Eggert [Fri, 19 Oct 2018 19:19:43 +0000 (12:19 -0700)] 
cp: 'cp -il A B' no longer fails if user OKs it

* NEWS: Mention the change.
* src/copy.c (copy_internal): Replace the link if the
user has okayed it.

6 years agobuild: update gnulib submodule to latest
Paul Eggert [Fri, 19 Oct 2018 19:19:43 +0000 (12:19 -0700)] 
build: update gnulib submodule to latest

* gl/modules/tempname.diff: Update to match Gnulib.

6 years agodoc: add chmod examples
Paul Eggert [Tue, 27 Mar 2012 15:52:20 +0000 (08:52 -0700)] 
doc: add chmod examples

Discussed in https://bugs.gnu.org/11043 .

* doc/coreutils.texi (chmod invocation): Add examples.

6 years agodoc: fix minor mistakes in "env.x"
Bjarni Ingi Gislason [Mon, 1 Oct 2018 21:40:27 +0000 (21:40 +0000)] 
doc: fix minor mistakes in "env.x"

* man/env.x (OPTIONS): Fix a spelling mistake.  Protect a period at the
beginning of a line.

6 years agoid: support multiple specified users
Achilles Gaikwad [Mon, 23 Jul 2018 19:39:13 +0000 (01:09 +0530)] 
id: support multiple specified users

  $ id root nobody
  uid=0(root) gid=0(root) groups=0(root)
  uid=99(nobody) gid=99(nobody) groups=99(nobody)

* src/id.c (main): Make variables opt_zero, just_group_list,
just_group, use_real, just_user global to be used in a new
function.
(print_stuff): New function that will print user and group
information for the specified USER.
When using -G option delimit each record with two NULs.
Restructure the code in the file to have global variables
followed by functions.
* tests/id/zero.sh: Add test cases to check the usage
of -z option with multiple users.
* tests/id/uid.sh: Add a test case to ensure all users
are queried in the presence of errors.
* doc/coreutils.texi: Document the interface changes.
* NEWS: Mention the new feature.

6 years agodoc: csplit: clarify handling of regexps with negative offsets
Stéphane Campinas [Tue, 25 Sep 2018 06:29:39 +0000 (23:29 -0700)] 
doc: csplit: clarify handling of regexps with negative offsets

* doc/coreutils.texi (csplit invocation): Detail the behavior
with regexp patterns and negative offsets, which differs from
line number patterns, to avoid looping on the input.  For example:
  $ seq 50 | csplit -s - /15/-5 /12/
  csplit: ‘/12/’: match not found

6 years agodoc: csplit: clarify input may not be reproducible from output
Pádraig Brady [Mon, 24 Sep 2018 04:14:08 +0000 (21:14 -0700)] 
doc: csplit: clarify input may not be reproducible from output

* doc/coreutils.texi (csplit invocation): Clarify that
portions of the input may be skipped and thus the input
may not be reproducible by just concatenating the output files.
Fixes https://bugs.gnu.org/32317

7 years agodf: omit redundant comparison
Paul Eggert [Fri, 27 Jul 2018 19:00:02 +0000 (12:00 -0700)] 
df: omit redundant comparison

Trivial inefficiency reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2018-07/msg00109.html
* src/df.c (hide_problematic_chars): Omit redundant test.

7 years agodf: tune slightly
Paul Eggert [Thu, 26 Jul 2018 08:56:28 +0000 (01:56 -0700)] 
df: tune slightly

* src/df.c (get_header, get_dev):
Avoid calling mbswidth twice when once will do.

7 years agodf: avoid multibyte character corruption on macOS
Paul Eggert [Sun, 22 Jul 2018 16:50:20 +0000 (09:50 -0700)] 
df: avoid multibyte character corruption on macOS

This improves on the earlier fix for the problem reported by
Chih-Hsuan Yen (Bug#32236), by also looking for other control
characters and for encoding errors.
* src/df.c: Include wchar.h and wctype.h instead of c-ctype.h.
(hide_problematic_chars): Process the string as multibyte.
Use iswcntrl, not c_iscntrl.

7 years agodf: avoid multibyte character corruption on macOS
Chih-Hsuan Yen [Sat, 21 Jul 2018 20:19:23 +0000 (13:19 -0700)] 
df: avoid multibyte character corruption on macOS

* src/df.c (hide_problematic_chars): Use c_iscntrl() as
passing 8 bit characters to iscntrl() is not supported on macOS.
* NEWS: Mention the bug fix.
Fixes https://bugs.gnu.org/32236

7 years agodoc: improve documentation of binary prefixes
Wodry [Sun, 22 Jul 2018 15:16:23 +0000 (08:16 -0700)] 
doc: improve documentation of binary prefixes

* doc/coreutils.texi (Common options):
* src/dd.c, src/head.c, src/od.c, src/stdbuf.c, src/tail.c (usage):
* src/system.h (emit_size_note):
Mention binary prefixes (Bug#32242).
Copyright-paperwork-exempt: Yes

7 years agotests: avoid false failure on sparc 32 bit
Pádraig Brady [Sun, 15 Jul 2018 17:50:53 +0000 (10:50 -0700)] 
tests: avoid false failure on sparc 32 bit

* tests/rm/rm-readdir-fail.sh: Skip the test entirely on 32 bit,
so we avoid conflating the 32bit and 64 bit types, as that
triggers alignment issues (SIGBUS) on Gentoo sparc.
Fixes https://bugs.gnu.org/29886

7 years agobuild: update gnulib submodule to latest
Paul Eggert [Thu, 5 Jul 2018 16:33:48 +0000 (09:33 -0700)] 
build: update gnulib submodule to latest

* bootstrap.conf, src/copy.c, src/mv.c, src/shred.c:
Adjust to renaming of renameat2 to renameatu.

7 years agotests: fix skipping in some tests
Pádraig Brady [Thu, 5 Jul 2018 00:46:07 +0000 (17:46 -0700)] 
tests: fix skipping in some tests

* tests/cp/cp-a-selinux.sh: Use 'skip_' rather than the probably
undefined 'skip'.
* tests/du/2g.sh: Likewise.
* tests/install/install-Z-selinux.sh: Likewise.
* tests/misc/chcon.sh: Likewise.
* tests/misc/selinux.sh: Likewise.
* tests/mkdir/restorecon.sh: Likewise.
* cfg.mk (sc_prohibit-skip): A new syntax check to catch the issue.

7 years agomaint: init.cfg: fix a minor test-related quoting bug
Jim Meyering [Sun, 1 Jul 2018 16:05:53 +0000 (09:05 -0700)] 
maint: init.cfg: fix a minor test-related quoting bug

* init.cfg (require_membership_in_two_groups_): This fixes a bug
introduced by me in v8.15-8-gdd0e4c562.  Luckily, the consequence
of low-probability triggering the bug was the mere added backslash
in the diagnostic: "...but running id -G\ either...".  It would be
triggered in a test failure for one who is a member of only one or
fewer groups.

7 years agomaint: post-release administrivia
Pádraig Brady [Mon, 2 Jul 2018 01:28:37 +0000 (18:28 -0700)] 
maint: post-release administrivia

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