]> git.ipfire.org Git - thirdparty/coreutils.git/log
thirdparty/coreutils.git
7 years agomaint: remove strpbrk module
Paul Eggert [Thu, 3 May 2018 19:59:21 +0000 (12:59 -0700)] 
maint: remove strpbrk module

* bootstrap.conf (gnulib_modules): Remove obsolete module strpbrk.

7 years agobuild: update gnulib submodule to latest
Paul Eggert [Tue, 1 May 2018 19:15:22 +0000 (12:15 -0700)] 
build: update gnulib submodule to latest

7 years agodoc: retroactively adjust info about tail and closed output
Pádraig Brady [Sat, 21 Apr 2018 00:51:14 +0000 (17:51 -0700)] 
doc: retroactively adjust info about tail and closed output

* NEWS: Expand on the 8.28 description of how tail more
responsively reacts to closed output, and move from "Improvements"
to "Changed behavior".
* cfg.mk (old_NEWS_hash): Regenerate.
Fixes https://bugs.gnu.org/31225

7 years agodoc: timeout --help: mention 0 DURATION disables timeout
Pádraig Brady [Thu, 19 Apr 2018 03:08:12 +0000 (20:08 -0700)] 
doc: timeout --help: mention 0 DURATION disables timeout

* src/timeout.c (usage): Mention that a duration of 0 disables
the associated timeout, which is both concise info and useful
functionality as timeouts are frequently configured.

7 years agodoc: retroactively document -e/-u addition in NEWS
Eric Blake [Tue, 3 Apr 2018 14:40:43 +0000 (09:40 -0500)] 
doc: retroactively document -e/-u addition in NEWS

Prompted by https://bugs.gnu.org/31045

* NEWS: Update 8.8 blurb to mention other split additions.
* cfg.mk (old_NEWS_hash): Regenerate.

7 years agodoc: Clarify octal bits in permissions
Paul Eggert [Tue, 3 Apr 2018 15:40:34 +0000 (08:40 -0700)] 
doc: Clarify octal bits in permissions

* doc/perm.texi (Numeric Modes): Briefly explain octal.
Reorder description to make it more intuitive (Bug#29069).

7 years agocut: improve large file support on 32 bit
Tobias Stoeckmann [Mon, 26 Mar 2018 11:37:12 +0000 (13:37 +0200)] 
cut: improve large file support on 32 bit

Increase max range from SIZE_MAX to UINTMAX_MAX, which will
allow cut to support line lengths up to the max file size
on all systems. The inherent SIZE_MAX limitation in cut was
removed with the enhancements in https://bugs.gnu.org/13127.
Also numfmt gets similarly increased --field ranges due to
shared code.

* src/cut.c: s/size_t/uintmax_t/.
* src/numfmt.c: Likewise.
* src/set-fields.c: Likewise.
* src/set-fields.h: Likewise.
* tests/misc/cut-huge-range.sh: Adjust accordingly.
* tests/misc/numfmt.pl: Likewise.
* NEWS: Mention the improvement.

7 years agotests: avoid a recent syntax-check failure
Pádraig Brady [Wed, 28 Mar 2018 06:51:29 +0000 (23:51 -0700)] 
tests: avoid a recent syntax-check failure

* tests/ls/a-option.sh: s/framework_failure/&_/.

7 years agols: -A now overrides -a
Paul Eggert [Tue, 27 Mar 2018 21:55:22 +0000 (14:55 -0700)] 
ls: -A now overrides -a

Problem reported by Karl Berry (Bug#30963).
* NEWS: Mention this.
* src/ls.c (decode_switches): Implement this.
* tests/ls/a-option.sh: New file.
* tests/local.mk (all_tests): Add it.

7 years agodoc: fix two typos in github templates
Roland Hieber [Tue, 20 Mar 2018 13:34:03 +0000 (14:34 +0100)] 
doc: fix two typos in github templates

* .github/ISSUE_TEMPLATE.txt: Fix typo "coreitils" in the URL to the bug
tracker.
* .github/PULL_REQUEST_TEMPLATE.txt: Likewise.

7 years agols: increase the allowed abmon width from 5 to 12
Pádraig Brady [Wed, 14 Mar 2018 18:31:43 +0000 (11:31 -0700)] 
ls: increase the allowed abmon width from 5 to 12

This will impact relatively few languages,
and will make Arabic or Catalan etc.
output unambiguous abbreviated month names.

* src/ls.c (MAX_MON_WIDTH): Increase from 5 to 12.
* NEWS: Mention the bug fix.
* tests/ls/abmon-align.sh: Augment to check for ambiguous output.
Fixes https://bugs.gnu.org/30814

7 years agostat,tail: add support for the EXFS file system
Brent Petit [Tue, 9 Jan 2018 21:43:24 +0000 (21:43 +0000)] 
stat,tail: add support for the EXFS file system

Enhanced XFS (EXFS) is a version of XFS maintained by HPE.
EXFS uses a unique magic number to allow the use of community
XFS, and EXFS filesystems at the same time.

* src/stat.c (human_fstype): Add file system ID definition,
and use "exfs" as the name.
* NEWS: Mention the Improvement.

7 years agobuild: update gnulib submodule to latest
Paul Eggert [Tue, 6 Mar 2018 23:15:24 +0000 (15:15 -0800)] 
build: update gnulib submodule to latest

7 years agostat: work around IBM xlC bug
Paul Eggert [Mon, 5 Mar 2018 23:50:39 +0000 (15:50 -0800)] 
stat: work around IBM xlC bug

Problem reported by John Wiersba (Bug#30718)
* src/stat.c (human_time): Avoid giving an integer constant
expression a name, as it runs afoul of a bug in IBM XL C/C++ for
AIX 12.01.0000.0002.

7 years agomaint: adjust email address of Keith Thompson in THANKS.in
Bernhard Voelker [Sun, 4 Mar 2018 19:31:49 +0000 (20:31 +0100)] 
maint: adjust email address of Keith Thompson in THANKS.in

* THANKS.in (Keith Thompson): Update email address as requested by
himself at https://lists.gnu.org/r/coreutils/2018-03/msg00004.html

7 years agocp: set appropriate default permissions for special files
Pádraig Brady [Tue, 20 Feb 2018 03:10:14 +0000 (19:10 -0800)] 
cp: set appropriate default permissions for special files

This issue was introduced in commit v8.19-145-g24ebca6

* src/copy.c (copy_internal): When setting default permissions
to use with --no-preserve=mode, only set executable bits for
directories or sockets.
* NEWS: Mention the fix.
* tests/cp/preserve-mode.sh: Add a test case.
Fixes https://bugs.gnu.org/30534

7 years agodoc: use consistent example format in manual
Pádraig Brady [Sun, 21 Jan 2018 04:30:52 +0000 (20:30 -0800)] 
doc: use consistent example format in manual

* doc/coreutils.texi: Use @example consistently
as we don't need the smaller or fixed width representation.
This is especially true for the synopsis of commands.
@smallexample is rendered left aligned for HTML
which is awkward to read with the center aligned main content.

7 years agomv: clarify ‘mv -n A A’ change
Paul Eggert [Wed, 10 Jan 2018 08:48:51 +0000 (00:48 -0800)] 
mv: clarify ‘mv -n A A’ change

7 years agomv: fewer syscalls for ‘mv a b’
Paul Eggert [Wed, 10 Jan 2018 08:48:51 +0000 (00:48 -0800)] 
mv: fewer syscalls for ‘mv a b’

This builds on a previous patch for mv atomicity (Bug#29961).
It merely improves performance; it does not fix bugs.
* src/copy.h (struct cp_options): New members last_file, rename_errno.
* src/copy.c (copy_internal): Support new rename_errno member
for the copy options.  Avoid calling stat when new members
suggest it’s not needed.
(cp_options_default): Initialize new members.
* src/mv.c: Include renameat2.h.
(main): With two arguments, first call ‘renamat2 (AT_FDCWD, "a",
AT_FDCWD, "b", RENAME_NOREPLACE)’.  Use its results to skip
remaining processing if possible; for example, if it succeeds
there is no need to stat either "a" or "b".  Also, set
x.last_file when it is the last file to rename.

7 years agomv: improve -n atomicity
Paul Eggert [Wed, 10 Jan 2018 08:48:51 +0000 (00:48 -0800)] 
mv: improve -n atomicity

Problem reported by Kamil Dudka (Bug#29961).
* NEWS: Mention this.
* src/copy.c: Include renameat2.h.
(copy_internal): If mv, try renameat2 first thing, with
RENAME_NOREPLACE.  If this works, skip most of the remaining code.
Also, fail quickly if it fails with EEXIST, and we are using -n.

7 years agodoc: warn about following symlinks recursively in chown/chgrp
Michael Orlitzky [Thu, 4 Jan 2018 16:38:21 +0000 (11:38 -0500)] 
doc: warn about following symlinks recursively in chown/chgrp

In both chown and chgrp (which shares its code with chown), operating
on symlinks recursively has a window of vulnerability where the
destination user or group can change the target of the operation.
Warn about combining the --dereference, --recursive, and -L flags.

* doc/coreutils.texi (warnOptDerefWithRec): Add macro.
(node chown invocation): Add it to --dereference and -L.
(node chgrp invocation): Likewise.

See also: CVE-2017-18018

7 years agocp: remove ASSIGN_BASENAME_STRDUPA
Paul Eggert [Sat, 6 Jan 2018 06:55:47 +0000 (22:55 -0800)] 
cp: remove ASSIGN_BASENAME_STRDUPA

* src/cp.c (do_copy): Just use ASSIGN_STRDUPA, as this simplifies
the code and uses less memory.

7 years agomv: -n overrides -u
Paul Eggert [Thu, 4 Jan 2018 21:57:40 +0000 (13:57 -0800)] 
mv: -n overrides -u

* NEWS: Mention these fixes.
* doc/coreutils.texi (cp invocation, mv invocation):
Mention that -n is silent, and that it overrides -u.
* src/cp.c, src/mv.c (main): -n overrides -u.

7 years agotr: add -A, for compatibility with AIX tr
Paul Eggert [Wed, 3 Jan 2018 19:02:17 +0000 (11:02 -0800)] 
tr: add -A, for compatibility with AIX tr

Problem reported by Michael (Bug#29946).
* src/tr.c (main): Add undocumented -A option.

7 years agodoc: clarify chown/chgrp --dereference defaults
Michael Orlitzky [Thu, 28 Dec 2017 20:52:42 +0000 (15:52 -0500)] 
doc: clarify chown/chgrp --dereference defaults

* doc/coreutils.texi: the documentation for the --dereference
  flag of chown/chgrp states that it is the default mode of
  operation. Document that this is only the case when operating
  non-recursively.

7 years agotests: avoid false failure with xargs on AIX
Pádraig Brady [Tue, 2 Jan 2018 12:52:11 +0000 (12:52 +0000)] 
tests: avoid false failure with xargs on AIX

* tests/misc/shred-remove.sh: AIX xargs defaults to using
'_' to indicate end of input, thus ignoring it.
Rather than specifying -E to avoid this behavior, simplify
by removing sed and xargs usage.

7 years agomaint: update all copyright year number ranges
Pádraig Brady [Mon, 1 Jan 2018 15:57:22 +0000 (15:57 +0000)] 
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.

7 years agomaint: post-release administrivia
Pádraig Brady [Wed, 27 Dec 2017 18:26:39 +0000 (18:26 +0000)] 
maint: post-release administrivia

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

7 years agoversion 8.29 v8.29
Pádraig Brady [Wed, 27 Dec 2017 17:54:32 +0000 (17:54 +0000)] 
version 8.29

* NEWS: Record release date.

7 years agotests: avoid false failure on AIX 7.2
Pádraig Brady [Fri, 22 Dec 2017 13:10:24 +0000 (13:10 +0000)] 
tests: avoid false failure on AIX 7.2

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

7 years agodoc: describe recent build checks for 32 bit time_t
Pádraig Brady [Fri, 22 Dec 2017 12:33:30 +0000 (12:33 +0000)] 
doc: describe recent build checks for 32 bit time_t

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

7 years agotests: fix recent portability issues on solaris 10
Pádraig Brady [Thu, 21 Dec 2017 13:52:24 +0000 (13:52 +0000)] 
tests: fix recent portability issues on solaris 10

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

7 years agomaint: remove reference to excluded changelog item
Pádraig Brady [Thu, 21 Dec 2017 12:13:42 +0000 (12:13 +0000)] 
maint: remove reference to excluded changelog item

* build-aux/git-log-fix: Remove old entry.

7 years agomaint: add doc/coverage to .gitignore
Pádraig Brady [Wed, 20 Dec 2017 14:53:29 +0000 (14:53 +0000)] 
maint: add doc/coverage to .gitignore

* .gitignore: Ignore the generated coverage report.

7 years agodoc: remove older ChangeLog items
Pádraig Brady [Wed, 20 Dec 2017 14:36:37 +0000 (14:36 +0000)] 
doc: remove older ChangeLog items

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

7 years agodoc: mention which privileges are needed to chmod
Bernhard Voelker [Sat, 16 Dec 2017 22:07:27 +0000 (23:07 +0100)] 
doc: mention which privileges are needed to chmod

POSIX specification for chmod(1):
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html

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

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

7 years agotests: fix recent regressions with dash
Pádraig Brady [Sat, 16 Dec 2017 21:34:19 +0000 (13:34 -0800)] 
tests: fix recent regressions with dash

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

7 years agobuild: avoid a signed overflow warning in ptx
Pádraig Brady [Sat, 16 Dec 2017 21:07:43 +0000 (13:07 -0800)] 
build: avoid a signed overflow warning in ptx

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

7 years agomaint: adjust for the renamed nstrfime gnulib module
Bernhard Voelker [Mon, 11 Dec 2017 02:46:17 +0000 (18:46 -0800)] 
maint: adjust for the renamed nstrfime gnulib module

* bootstrap.conf: s/strftime/nstrfrime/.

7 years agobuild: update gnulib submodule to latest
Pádraig Brady [Mon, 11 Dec 2017 01:50:16 +0000 (17:50 -0800)] 
build: update gnulib submodule to latest

* gnulib: Update with various build/test fixes.

7 years agotests: fix false failure in new dd/nocache_eof test
Pádraig Brady [Sun, 10 Dec 2017 23:36:30 +0000 (15:36 -0800)] 
tests: fix false failure in new dd/nocache_eof test

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

7 years agotail: fix tailing non seekable files on certain systems
Pádraig Brady [Sun, 10 Dec 2017 04:18:22 +0000 (20:18 -0800)] 
tail: fix tailing non seekable files on certain systems

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

7 years agobuild: avoid build failure without sys/mtio.h
Pádraig Brady [Sun, 10 Dec 2017 03:05:32 +0000 (19:05 -0800)] 
build: avoid build failure without sys/mtio.h

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

7 years agodoc: reorganize ls -k and --time-style help
Pádraig Brady [Sun, 3 Dec 2017 00:56:50 +0000 (16:56 -0800)] 
doc: reorganize ls -k and --time-style help

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

7 years agodoc: clarify numeric setuid handling in chmod man page
Pádraig Brady [Sun, 10 Dec 2017 02:26:56 +0000 (18:26 -0800)] 
doc: clarify numeric setuid handling in chmod man page

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

7 years agodoc: shred: change 'truncate' to the more descriptive 'deallocate'
Pádraig Brady [Sun, 10 Dec 2017 00:49:45 +0000 (16:49 -0800)] 
doc: shred: change 'truncate' to the more descriptive 'deallocate'

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

7 years agodoc: clarify that cp --force may recreate files
Pádraig Brady [Sun, 10 Dec 2017 00:18:00 +0000 (16:18 -0800)] 
doc: clarify that cp --force may recreate files

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

7 years agodoc: fix default QUOTING_STYLE for %N format of stat(1)
Kamil Dudka [Mon, 4 Dec 2017 16:06:38 +0000 (17:06 +0100)] 
doc: fix default QUOTING_STYLE for %N format of stat(1)

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

7 years agotests: make ls/block-size more readable
Jean Delvare [Fri, 1 Dec 2017 10:01:30 +0000 (11:01 +0100)] 
tests: make ls/block-size more readable

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

7 years agotests: verify usage vs. getopt
Bernhard Voelker [Mon, 27 Nov 2017 22:46:51 +0000 (23:46 +0100)] 
tests: verify usage vs. getopt

Verify that all options mentioned in usage are actually recognized
by the program.

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

Co-authored-by: Pádraig Brady <P@draigBrady.com>
7 years agoreadlink: remove superfluous comma from usage output
Pádraig Brady [Tue, 28 Nov 2017 22:34:41 +0000 (23:34 +0100)] 
readlink: remove superfluous comma from usage output

* src/readlink.c (usage): Remove ',' after --quiet option.

7 years agoall: use consistent diagnostics for unknown long options
Bernhard Voelker [Tue, 28 Nov 2017 16:32:29 +0000 (17:32 +0100)] 
all: use consistent diagnostics for unknown long options

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

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

7 years agotest: fix issues with tests/cp/preserve-mode.sh
Pádraig Brady [Wed, 29 Nov 2017 05:54:12 +0000 (21:54 -0800)] 
test: fix issues with tests/cp/preserve-mode.sh

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

7 years agobuild: update gnulib submodule to latest
Pádraig Brady [Wed, 29 Nov 2017 06:04:10 +0000 (22:04 -0800)] 
build: update gnulib submodule to latest

* gnulib: Update with various build/test fixes.

7 years agobuild: update gnulib submodule to latest
Pádraig Brady [Tue, 28 Nov 2017 08:43:08 +0000 (00:43 -0800)] 
build: update gnulib submodule to latest

* gnulib: Update including various build fixes.

7 years agotimeout: also support short -v option
Bernhard Voelker [Mon, 27 Nov 2017 10:25:39 +0000 (11:25 +0100)] 
timeout: also support short -v option

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

7 years agodd: support iflag=direct with arbitrary sized files
Pádraig Brady [Mon, 16 Oct 2017 06:54:29 +0000 (23:54 -0700)] 
dd: support iflag=direct with arbitrary sized files

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

7 years agotimeout: add --verbose to diagnose timeouts
Pádraig Brady [Thu, 23 Nov 2017 22:30:59 +0000 (14:30 -0800)] 
timeout: add --verbose to diagnose timeouts

This is useful as handling in shell is complicated
with the varying exit status in the --kill-after case.

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

7 years agotail: seek to the end of block devices
Pádraig Brady [Mon, 13 Nov 2017 07:06:08 +0000 (23:06 -0800)] 
tail: seek to the end of block devices

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

7 years agomaint: include the module year2038 from gnulib
Bernhard Voelker [Mon, 13 Nov 2017 07:44:38 +0000 (08:44 +0100)] 
maint: include the module year2038 from gnulib

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

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

7 years agomaint: update gnulib to latest
Bernhard Voelker [Mon, 13 Nov 2017 07:42:30 +0000 (08:42 +0100)] 
maint: update gnulib to latest

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

7 years agodoc: add github issue/pull-request templates
Assaf Gordon [Thu, 9 Nov 2017 22:09:45 +0000 (15:09 -0700)] 
doc: add github issue/pull-request templates

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

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

7 years agomaint: make hook script reject "/archive/html" in lists.gnu.org URLS
Jim Meyering [Mon, 6 Nov 2017 14:34:49 +0000 (06:34 -0800)] 
maint: make hook script reject "/archive/html" in lists.gnu.org URLS

* scripts/git-hooks/commit-msg: Require the abbreviated "/r/"
form in any log message URL.

7 years agomaint: shorten https://lists.gnu.org/archive/html/... links
Jim Meyering [Mon, 6 Nov 2017 14:26:41 +0000 (06:26 -0800)] 
maint: shorten https://lists.gnu.org/archive/html/... links

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

7 years agotests: avoid false failure with inaccessible mount points
Thomas Deutschmann [Tue, 7 Nov 2017 05:32:53 +0000 (21:32 -0800)] 
tests: avoid false failure with inaccessible mount points

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

7 years agodoc: fix "Up" field of realpath usage examples
Bernhard Voelker [Mon, 4 Sep 2017 22:20:01 +0000 (00:20 +0200)] 
doc: fix "Up" field of realpath usage examples

Older versions of 'makeinfo' choke on a missing reference:

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

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

7 years agomaint: ensure https:// URLs are used in --help and man pages
Pádraig Brady [Mon, 6 Nov 2017 00:28:12 +0000 (16:28 -0800)] 
maint: ensure https:// URLs are used in --help and man pages

* configure.ac(AC_INIT): Specify the URL explicitly, so we're
not dependent on unreleased autoconf.

7 years agostat: output default formats for --terse in usage
Assaf Gordon [Wed, 11 Oct 2017 20:33:28 +0000 (22:33 +0200)] 
stat: output default formats for --terse in usage

Suggested by L A Walsh in https://bugs.gnu.org/28763 .

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

7 years agodf: fix hang with fifo argument
Pádraig Brady [Sun, 29 Oct 2017 22:29:05 +0000 (15:29 -0700)] 
df: fix hang with fifo argument

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

7 years agobuild: ls.c: apply _GL_ATTRIBUTE_PURE to more functions
Jim Meyering [Sat, 28 Oct 2017 04:14:37 +0000 (21:14 -0700)] 
build: ls.c: apply _GL_ATTRIBUTE_PURE to more functions

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

7 years agodoc: reference statfs(2) in the stat(1) man page
Vincent Lefevre [Thu, 26 Oct 2017 04:34:21 +0000 (21:34 -0700)] 
doc: reference statfs(2) in the stat(1) man page

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

7 years agotests: avoid false failure when O_DIRECT isn't supported
Pádraig Brady [Wed, 25 Oct 2017 02:54:16 +0000 (19:54 -0700)] 
tests: avoid false failure when O_DIRECT isn't supported

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

7 years agodd: fix nocache regions passed to posix_fadvise()
Pádraig Brady [Wed, 11 Oct 2017 06:29:08 +0000 (23:29 -0700)] 
dd: fix nocache regions passed to posix_fadvise()

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

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

7 years agodoc: mention QUOTING_STYLE env var in ls man page
Michael Stone [Tue, 24 Oct 2017 17:29:35 +0000 (10:29 -0700)] 
doc: mention QUOTING_STYLE env var in ls man page

* src/ls.c (usage): Mention QUOTING_STYLE with the --quoting-style
option, and indicate it has lower precedence than that option.

7 years agomaint: apply suggested cleanup to recent stty.c change
Pádraig Brady [Tue, 24 Oct 2017 06:26:33 +0000 (23:26 -0700)] 
maint: apply suggested cleanup to recent stty.c change

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

7 years agob2sum: fix crash with --check and truncated input
Pádraig Brady [Mon, 16 Oct 2017 08:04:37 +0000 (01:04 -0700)] 
b2sum: fix crash with --check and truncated input

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

7 years agostty: fix processing of options when -F is specified
Pádraig Brady [Mon, 16 Oct 2017 09:17:34 +0000 (02:17 -0700)] 
stty: fix processing of options when -F is specified

This was a latent issue that became significant with
the addition of the -F option in FILEUTILS-3_16n-56-ge46a424

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

7 years agotimeout: fix a small race that would ignore command exit
Pádraig Brady [Tue, 24 Oct 2017 02:58:56 +0000 (19:58 -0700)] 
timeout: fix a small race that would ignore command exit

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

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

7 years agotimeout: fix regression when invoked with blocked SIGCHLD
Thomas Jarosch [Wed, 18 Oct 2017 16:47:49 +0000 (18:47 +0200)] 
timeout: fix regression when invoked with blocked SIGCHLD

We inherit the signal mask from our parent process,
therefore ensure SIGCHLD is not blocked.

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

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

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

7 years agobuild: reinstate distribution of man pages
Pádraig Brady [Sun, 1 Oct 2017 00:08:02 +0000 (17:08 -0700)] 
build: reinstate distribution of man pages

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

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

7 years agomaint: remove a duplicate entry from THANKS
Pádraig Brady [Mon, 2 Oct 2017 00:30:51 +0000 (17:30 -0700)] 
maint: remove a duplicate entry from THANKS

* .mailmap: Prefer Colin Watson's last used email address.

7 years agocopy: revert recent patch for vulnerable dirs
Paul Eggert [Mon, 25 Sep 2017 06:05:17 +0000 (23:05 -0700)] 
copy: revert recent patch for vulnerable dirs

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

7 years agotests: fix test hang on case insenitive file systems
Pádraig Brady [Sun, 24 Sep 2017 02:37:13 +0000 (19:37 -0700)] 
tests: fix test hang on case insenitive file systems

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

7 years agotests: avoid a false failure in expr test with UTF8
Pádraig Brady [Thu, 21 Sep 2017 05:12:20 +0000 (22:12 -0700)] 
tests: avoid a false failure in expr test with UTF8

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

7 years agoexpr: add detailed syntax error messages
Assaf Gordon [Fri, 15 Sep 2017 06:36:13 +0000 (00:36 -0600)] 
expr: add detailed syntax error messages

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

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

7 years agomaint: fix new syntax-check failures from HTTPS adjustments
Pádraig Brady [Wed, 20 Sep 2017 05:24:39 +0000 (22:24 -0700)] 
maint: fix new syntax-check failures from HTTPS adjustments

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

7 years agomaint: fix new syntax check failures from copy restrictions
Pádraig Brady [Wed, 20 Sep 2017 05:21:28 +0000 (22:21 -0700)] 
maint: fix new syntax check failures from copy restrictions

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

7 years agoshred: reinstate --remove file name length obfuscation
Pádraig Brady [Wed, 20 Sep 2017 03:56:32 +0000 (20:56 -0700)] 
shred: reinstate --remove file name length obfuscation

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

7 years agomaint: copy bootstrap from Gnulib
Paul Eggert [Tue, 19 Sep 2017 08:24:47 +0000 (01:24 -0700)] 
maint: copy bootstrap from Gnulib

7 years agoall: prefer HTTPS in URLs
Paul Eggert [Tue, 19 Sep 2017 08:13:23 +0000 (01:13 -0700)] 
all: prefer HTTPS in URLs

7 years agocopy: check for vulnerable target dirs
Paul Eggert [Tue, 19 Sep 2017 01:54:52 +0000 (18:54 -0700)] 
copy: check for vulnerable target dirs

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

7 years agoptx: avoid infloop due to zero-length matches with -S regex
Bernhard Voelker [Wed, 13 Sep 2017 21:37:20 +0000 (23:37 +0200)] 
ptx: avoid infloop due to zero-length matches with -S regex

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

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

7 years agomaint: post-release administrivia
Pádraig Brady [Sat, 2 Sep 2017 02:25:50 +0000 (19:25 -0700)] 
maint: post-release administrivia

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

7 years agoversion 8.28 v8.28
Pádraig Brady [Sat, 2 Sep 2017 01:53:58 +0000 (18:53 -0700)] 
version 8.28

* NEWS: Record release date.

7 years agotests: fix false failure in recent ls --hyperlink test
Pádraig Brady [Fri, 1 Sep 2017 06:52:59 +0000 (23:52 -0700)] 
tests: fix false failure in recent ls --hyperlink test

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

7 years agomaint: avoid a syntax-check failure
Pádraig Brady [Fri, 1 Sep 2017 04:29:39 +0000 (21:29 -0700)] 
maint: avoid a syntax-check failure

* .gitignore: Remove lines indicated by sc_gitignore_redundant
in a freshly checked out repo.

7 years agotests: exclude the expensive gnulib fts-tests
Pádraig Brady [Thu, 31 Aug 2017 05:49:24 +0000 (22:49 -0700)] 
tests: exclude the expensive gnulib fts-tests

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

7 years agotty: don't distinguish input errors
Pádraig Brady [Thu, 31 Aug 2017 03:14:22 +0000 (20:14 -0700)] 
tty: don't distinguish input errors

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

7 years agotests: avoid printf '0*d' construct unsupported by ash
Pádraig Brady [Thu, 31 Aug 2017 03:05:31 +0000 (20:05 -0700)] 
tests: avoid printf '0*d' construct unsupported by ash

* tests/ln/sf-1.sh: Generate specific length with space padding
which is supported.
Reported by Assaf Gordon on Alpine Linux.

7 years agotests: skip tests upon failure to set SELinux context
Pádraig Brady [Thu, 31 Aug 2017 00:16:23 +0000 (17:16 -0700)] 
tests: skip tests upon failure to set SELinux context

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

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