]> git.ipfire.org Git - thirdparty/coreutils.git/log
thirdparty/coreutils.git
8 years agomaint: post-release administrivia
Pádraig Brady [Thu, 9 Mar 2017 05:25:35 +0000 (21:25 -0800)] 
maint: post-release administrivia

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

8 years agoversion 8.27 v8.27
Pádraig Brady [Thu, 9 Mar 2017 05:00:00 +0000 (21:00 -0800)] 
version 8.27

* NEWS: Record release date.

8 years agobuild: update gnulib submodule to latest
Pádraig Brady [Thu, 9 Mar 2017 04:18:58 +0000 (20:18 -0800)] 
build: update gnulib submodule to latest

Removes extraneous parse-datetime.c generated during build

8 years agostat,tail: support "RDT" Linux kernel control file system
Pádraig Brady [Thu, 9 Mar 2017 01:48:15 +0000 (17:48 -0800)] 
stat,tail: support "RDT" Linux kernel control file system

* src/stat.c (human_fstype): This file system is the user interface
for resource allocation in Intel's Resource Director Technology.

8 years agodoc: spelling fix for recent doc addition
Pádraig Brady [Thu, 9 Mar 2017 01:25:58 +0000 (17:25 -0800)] 
doc: spelling fix for recent doc addition

* doc/coreutils.texi (join invocation): s/preceeding/preceding/.

8 years agobuild: avoid redundant build of tr with --enable-single-binary
Bernhard Voelker [Wed, 8 Mar 2017 05:29:00 +0000 (21:29 -0800)] 
build: avoid redundant build of tr with --enable-single-binary

* src/local.mk [check-duplicate-no-install]: Depend on the
single-binary tr, or the system tr, as the edge case
where these are not available only result in the sanity
check being effectively ignored.

8 years agobuild: fix 'install-html' target
Assaf Gordon [Wed, 8 Mar 2017 00:54:31 +0000 (00:54 +0000)] 
build: fix 'install-html' target

Switching to non-recursive makefiles broke the 'install-html' target:
The gettext plumbing requires an 'install-html' target in po/Makefile.
This was fixed in gettext v0.19.8.1-41-ge5a008a, but packages using
older gettext need to manually patch po/Makefile.in.in.
Reported (for 'sed') and suggested fix by Eric Blake in
https://bugs.gnu.org/25690 .

* bootstrap.conf (bootstrap_epilogue): Add 'install-{html,pdf,dvi,ps}'
  targets to po/Makefile.in.in (if needed).

8 years agomaint: bump makeinfo --version requirement to 6.1
Pádraig Brady [Sat, 4 Mar 2017 22:10:57 +0000 (14:10 -0800)] 
maint: bump makeinfo --version requirement to 6.1

* bootstrap.conf: s/4.13/6.1/ as versions previous to that
generated invalid html with interspersed <span> tags that
were visible to the user.  Version 6.1 is available for a
year now, and is available in most distros.

8 years agodoc: avoid makeinfo warning
Bernhard Voelker [Sat, 4 Mar 2017 18:26:12 +0000 (19:26 +0100)] 
doc: avoid makeinfo warning

makeinfo issues the following:

  doc/coreutils.texi:6568: warning: @sc argument all uppercase,\
    thus no effect.

* doc/coreutils.texi (join invocation): Remove the @sc macro around
the all uppercase "GNU".

8 years agobuild: update gnulib submodule to latest
Pádraig Brady [Fri, 3 Mar 2017 17:02:52 +0000 (09:02 -0800)] 
build: update gnulib submodule to latest

Fixes a test-lock failure on MacOS

8 years agotimeout: handle multiple children on solaris
Pádraig Brady [Fri, 3 Mar 2017 08:30:20 +0000 (00:30 -0800)] 
timeout: handle multiple children on solaris

* src/timeout.c (install_sigchld): A new function to
install the SIGCHLD handler using sigaction() rather
than signal(), because with the latter on solaris
the signal handler is reset to default and thus
sigsuspend() only returns for the first finished child.
Reported by Assaf Gordon.

8 years agotests: avoid a spurious failure on older debian
Pádraig Brady [Fri, 3 Mar 2017 08:25:54 +0000 (00:25 -0800)] 
tests: avoid a spurious failure on older debian

* tests/misc/cut-huge-range.sh: Bump up the ulimit,
to avoid a false failure due hitting the previously
detected ulimit.
Reported by Assaf Gordon.

8 years agobuild: fix libstdbuf build on AIX 7
Pádraig Brady [Fri, 3 Mar 2017 08:23:56 +0000 (00:23 -0800)] 
build: fix libstdbuf build on AIX 7

* src/libstdbuf.c: undef malloc so as libstdbuf is
not linked with gnulib, and anyway the replacement is
never needed since we never malloc(0).
Reported by Assaf Gordon.

8 years agodoc: expand 'join' info section
Assaf Gordon [Mon, 27 Feb 2017 07:25:31 +0000 (02:25 -0500)] 
doc: expand 'join' info section

* doc/coreutils.texi (join invocation): Expand section to
add examples and more details.
Suggested by Dan Jacobson in https://bugs.gnu.org/25870

8 years agodoc: give a stronger security warning in md5/sha1 man pages
Pádraig Brady [Wed, 1 Mar 2017 17:33:29 +0000 (09:33 -0800)] 
doc: give a stronger security warning in md5/sha1 man pages

* man/md5sum.x: Give a more direct warning againt the use
of this hash algorithm for security purposes.
* man/sha1sum.x: Likewise.
Suggested by Jim Meyering.

8 years agoexpand: avoid an extraneous warning on 32 bit
Pádraig Brady [Wed, 1 Mar 2017 17:24:57 +0000 (09:24 -0800)] 
expand: avoid an extraneous warning on 32 bit

* src/expand-common (parse-tab-stops): Exit earlier upon overflow
so another warning isn't issued (on 32 bit) in add_tab_stop().
Flagged in https://hydra.nixos.org/build/49499970

8 years agodoc: indicate sha1 has the same limitations as md5
Pádraig Brady [Wed, 1 Mar 2017 04:14:58 +0000 (20:14 -0800)] 
doc: indicate sha1 has the same limitations as md5

* doc/coreutils.texi (sha1sum invocation): Given that a SHA-1
preimage attack has occurred as documented at http://shattered.io/,
document sha1sum as having the same limitations as md5sum.
(md5sum): Parameterize the warning for use in both cases.
* man/md5sum.x: Mention b2sum(1) as a more secure alternative.
* man/sha1sum.x: Give the same warning as done for md5sum(1).

8 years agomaint: avoid a -Werror=null-dereference with GCC-6.3.1
Pádraig Brady [Mon, 27 Feb 2017 08:47:30 +0000 (00:47 -0800)] 
maint: avoid a -Werror=null-dereference with GCC-6.3.1

* src/stty.c (sane_mode): Assert to inform the compiler
we know the pointer will be valid.

8 years agoexpand,unexpand: support specifying a trailing tab size
Pádraig Brady [Sun, 26 Feb 2017 22:40:19 +0000 (14:40 -0800)] 
expand,unexpand: support specifying a trailing tab size

* doc/coreutils.texi (expand invocation): Document the feature.
(unexpand invocation): Likewise.
* src/expand-common.c (extend_size): A new global to use
when the last tab stop is prefixed by '/'.
(set_extend_size): A new function to validate and set
the new extend_size global.
(parse_tab_stops): Call set_extend_size() for '/' prefixes.
(finalize_tab_stops): Ensure a single specified '/' is
treated like a standard tabsize, but also ensure that
when '/' is specified with a single other entry that
we process as a list rather than a tab size.
(get_next_tab_stop): Use the tab size if set,
for items after the user specified tab position list.
* tests/misc/expand.pl: Add test cases
* NEWS: Mention the new feature.
Fixes http://bugs.gnu.org/25540

8 years agonproc: support OMP_THREAD_LIMIT to set a max value
Pádraig Brady [Sun, 26 Feb 2017 16:05:25 +0000 (08:05 -0800)] 
nproc: support OMP_THREAD_LIMIT to set a max value

This comes from the latest gnulib.
Also handling of OMP_NUM_THREADS has been adjusted
to support comma separated values indicating a nesting level,
in which case the first value is taken.  Also OMP_NUM_THREADS=0
is now ignored instead of being treated as 1, to match
the behavior of libgomp.

* NEWS: Mention the OMP_THREAD_LIMIT improvement,
and OMP_NUM_THREADS now handling nested values.
* doc/coreutils.texi (nproc invocation): Describe OMP_THREAD_LIMIT
as a way to set the max value, with OMP_THREAD_LIMIT setting the min.
* tests/misc/nproc-override.sh: A new test to exercise the
updated gnulib code with all combinations of these OMP variables.
* tests/local.mk: Reference the new test.

8 years agobuild: update gnulib submodule to latest
Pádraig Brady [Sun, 26 Feb 2017 11:44:14 +0000 (03:44 -0800)] 
build: update gnulib submodule to latest

8 years agodoc: add NEWS for an improvement to dd in the last release
Pádraig Brady [Thu, 23 Feb 2017 04:48:54 +0000 (20:48 -0800)] 
doc: add NEWS for an improvement to dd in the last release

* NEWS: Mention the avoidance of the gotcha with specifying
a hex constant like count=0x1000 etc. as that previously
was silently interpreted as 0.

8 years agocp: set SELinux context for --parents directories
Pádraig Brady [Tue, 21 Feb 2017 02:46:49 +0000 (18:46 -0800)] 
cp: set SELinux context for --parents directories

* src/copy.c (set_process_security_ctx, set_file_security_ctx):
Export for use in cp.c.
* src/copy.h: Likewise.
* src/cp.c (make_dir_parents_private): Call the exported functions
to set the security context for new and updated directories.
* tests/cp/cp-a-selinux.sh: Add a test case.

Fixes http://bugs.gnu.org/25378

8 years agomaint: tweaks so syntax tests pass for previous commit
Pádraig Brady [Sat, 18 Feb 2017 03:32:27 +0000 (19:32 -0800)] 
maint: tweaks so syntax tests pass for previous commit

* .gitignore: placate sc_gitignore_redundant.
* po/POTFILES.in: placate sc_po_check.

8 years agodoc: avoid makeinfo warning
Bernhard Voelker [Thu, 16 Feb 2017 00:22:47 +0000 (01:22 +0100)] 
doc: avoid makeinfo warning

Commit v8.26-38-g99deaff introduced this warning:

    MAKEINFO doc/coreutils.info
  ./doc/coreutils.texi:10268: \
    warning: `.' or `,' must follow @xref, not `@'.

* doc/coreutils.texi (readlink invocation): Add '.' after @xref macro.

8 years agomaint: xsetmode renamed to xbinary-io
Paul Eggert [Thu, 16 Feb 2017 08:40:02 +0000 (00:40 -0800)] 
maint: xsetmode renamed to xbinary-io

* bootstrap.conf, src/base64.c, src/cat.c, src/cksum.c:
* src/head.c, src/md5sum.c, src/od.c, src/split.c, src/sum.c:
* src/tac.c, src/tail.c, src/tee.c, src/tr.c, src/wc.c:
Adjust to renaming of the xsetmode module to xbinary-io,
and of the xsetmode function to xset_binary_mode.

8 years agobuild: update gnulib submodule to latest
Paul Eggert [Thu, 16 Feb 2017 08:20:30 +0000 (00:20 -0800)] 
build: update gnulib submodule to latest

8 years agomaint: use xsetmode, not xfreopen
Paul Eggert [Wed, 15 Feb 2017 23:58:08 +0000 (15:58 -0800)] 
maint: use xsetmode, not xfreopen

This fixes a bug noted by Eric Blake.  Code was using xfreopen to
change files to binary mode, but this fails for stdout when in
append mode.  Such code should use xsetmode instead.  This affects
only the port on platforms like MS-Windows which distiguish text
from binary I/O.
* bootstrap.conf (gnulib_modules):
Remove xfreopen and add xsetmode.  Sort.
* src/base64.c (main):
* src/cat.c (main):
* src/cksum.c (cksum):
* src/head.c (head_file, main):
* src/md5sum.c (digest_file):
* src/od.c (open_next_file):
* src/split.c (main):
* src/sum.c (bsd_sum_file, sysv_sum_file):
* src/tac.c (tac_file, main):
* src/tail.c (tail_file):
* src/tee.c (tee_files):
* src/tr.c (main):
* src/wc.c (wc_file): Use xsetmode, not xfreopen.

8 years agobuild: update gnulib submodule to latest
Paul Eggert [Wed, 15 Feb 2017 23:35:25 +0000 (15:35 -0800)] 
build: update gnulib submodule to latest

8 years agomaint: tweaks so syntax tests pass for previous commit
Pádraig Brady [Mon, 13 Feb 2017 02:05:37 +0000 (18:05 -0800)] 
maint: tweaks so syntax tests pass for previous commit

* src/force-link.h: Don't include headers already included by system.h
* src/force-link.c: Likewise.  Also include system.h and
explicitly mark extern functions as such.

8 years agoln: replace destination links more atomically
Paul Eggert [Sun, 12 Feb 2017 07:12:31 +0000 (23:12 -0800)] 
ln: replace destination links more atomically

If the file B already exists, commands like 'ln -f A B' and
'cp -fl A B' no longer remove B before creating the new link.
Instead, they arrange for the new link to replace B atomically.
This should fix a race condition reported by Mike Crowe (Bug#25680).
* NEWS, doc/coreutils.texi (cp invocation, ln invocation):
Document this.
* bootstrap.conf (gnulib_modules): Add symlinkat.
* src/copy.c, src/ln.c: Include force-link.h.
* src/copy.c (same_file_ok): It's also OK to remove a destination
symlink when creating symbolic links, or when the source and
destination are on the same file system and when creating hard links.
* src/copy.c (create_hard_link, copy_internal):
* src/ln.c (do_link):
Rewrite using force_linkat and force_symlinkat, to close a window
where the destination temporarily does not exist.
* src/cp.c (main): Do not set x.unlink_dest_before_opening
merely because we are in link-creation mode.
* src/force-link.c, src/force-link.h: New files.
* src/local.mk (copy_sources, src_ln_SOURCES): Add them.
* tests/cp/same-file.sh: Adjust test case to match fixed behavior.

8 years agotimeout: fix race possibly terminating wrong process
Tobias Stoeckmann [Sun, 5 Feb 2017 12:23:22 +0000 (13:23 +0100)] 
timeout: fix race possibly terminating wrong process

The race is unlikely, as timeout(1) needs to receive a signal
in the few operations between waitpid() returning and exit().
Also the system needs to have reallocated the just released pid
in this time window.

Previously we never disabled the signal handler that sent
the termination signal to the "child" pid.  However once waitpid()
has reaped the child, the system is free to allocate that pid,
so we must ensure we don't process any further signals.

* build-aux/gen-lists-of-programs.sh: Build timeout(1) optionally...
* configure.ac: ...predicated on sigsuspend() being available.
* src/timeout.c (block_cleanup): A new function to ensure the
cleanup() handler is disabled after waitpid has returned.
(main): Use sigsuspend() to wait with cleanup() enabled but
disabled once it returns, and thus disabled for the waitpid() call.
(monitored_pid): Change to the more accurate pid_t.
* NEWS: Mention the fix.

Fixes http://bugs.gnu.org/25624

8 years agodoc: note the relationship between realpath and readlink
Pádraig Brady [Thu, 9 Feb 2017 04:45:32 +0000 (20:45 -0800)] 
doc: note the relationship between realpath and readlink

* doc/coreutils.texi (realpath invocation): Mention that realpath
is the preferred command for canonicalization.
(readlink invocation): Likewise.
* man/readlink.x: Likewise.

8 years agotail: fix output of redundant headers when resuming
Janne Snabb [Tue, 7 Feb 2017 07:15:42 +0000 (23:15 -0800)] 
tail: fix output of redundant headers when resuming

* src/tail.c (check_fspec): Only enable printing of the file header
if we've actually read some data and this is a new file.  Also
move printing of the file header to...
(dump_remainder): ...here, to allow printing only when data read.
* tests/tail-2/overlay-headers.sh: A new test for suspension
and resumption of tail.
* tests/local.mk: Reference the new test.
* NEWS: Mention the fix.
Fixes http://bugs.gnu.org/23539

8 years agotests: fix tail test race causing false failure
Pádraig Brady [Wed, 1 Feb 2017 05:27:41 +0000 (21:27 -0800)] 
tests: fix tail test race causing false failure

* tests/tail-2/retry.sh: The replacement of the "missing" directory
is not atomic, and therefore tail(1) can take a different path,
especially if there is a delay between the rmdir(2) and creat(2).
This is noticeable for example with `make coverage` because in
that case the coverage files written by rmdir(1) on exit,
induce a significant delay thus triggering the issue.

8 years agotail: fix erroneous status about 'giving up' on file
Pádraig Brady [Wed, 1 Feb 2017 04:10:02 +0000 (20:10 -0800)] 
tail: fix erroneous status about 'giving up' on file

* src/tail.c (recheck): Set f->ignore before we
use it to show the appropriate error.
* tests/tail-2/retry.sh: Ensure the "giving up" message
is not presented.

8 years agodoc: only distribute 5 years of ChangeLogs
Pádraig Brady [Wed, 1 Feb 2017 05:55:22 +0000 (21:55 -0800)] 
doc: only distribute 5 years of ChangeLogs

Remove old log files that have corresponding entries
in the source code repository.
This saves about 2.5MB uncompressed, 0.5M compressed.

* Makefile.am (gen-ChangeLog): Adjust to taking all
logs since a particular version (8.15 in this case).
Also mention in the truncated log where to get older entries.
(changelog_etc): Remove the no longer distributed files.
* build-aux/git-log-fix: Remove now unused entries.
* ChangeLog-200[5-8]: Delete.
* doc/ChangeLog-2007: Likewise.
* po/ChangeLog-2007: Likewise.
* old/*: Likewise.

8 years agomaint: fix HACKING instructions to run a single test
Maxime de Roucy [Tue, 7 Feb 2017 01:10:55 +0000 (02:10 +0100)] 
maint: fix HACKING instructions to run a single test

* HACKING: s/make TEST=/make check TEST=/
The 'check' target was missing there since v8.20-57-geac397e.

8 years agobuild: fix issue with HAVE_FALLOCATE on centos5
Pádraig Brady [Wed, 25 Jan 2017 11:09:03 +0000 (11:09 +0000)] 
build: fix issue with HAVE_FALLOCATE on centos5

* src/copy.c (punch_hole): Work around an empty definition
of HAVE_FALLOCATE which leads to a build error of:
"error: #if with no expression"
That was triggered by the inclusion of <linux/fs.h> in
commit v8.25-68-g89e1fef with kernel-headers-2.6.18.
Reported by Nelson H. F. Beebe

8 years agobuild: Properly expand cu_install_program when cross-compiling
Manolis Ragkousis [Wed, 25 Jan 2017 16:33:29 +0000 (18:33 +0200)] 
build: Properly expand cu_install_program when cross-compiling

* src/local.mk (cu_install_program): Replace @INSTALL_PROGRAM@
with @INSTALL@ when cross-compiling; missed in commit 477a1e8e.
Message-Id: <20170125163329.5690-1-manolis837@gmail.com>
Copyright-paperwork-exempt: Yes

8 years agodircolors: highlight windows archive format
Mike Swanson [Sun, 15 Jan 2017 18:48:12 +0000 (10:48 -0800)] 
dircolors: highlight windows archive format

* src/dircolors.hin: Match *.{wim,swm,dwn,esd}

8 years agomaint: mention the recent date time zone bug fix
Pádraig Brady [Sat, 21 Jan 2017 15:15:26 +0000 (15:15 +0000)] 
maint: mention the recent date time zone bug fix

* NEWS: Add the bug fix from commit v8.26-27-gb14be50

8 years agomaint: appease syntax-check failures due to recent updates
Assaf Gordon [Sat, 21 Jan 2017 15:04:43 +0000 (15:04 +0000)] 
maint: appease syntax-check failures due to recent updates

* bootstrap: s/time stamp/timestamp/.
* old/fileutils/NEWS: Likewise.
* src/tail.c: Avoided a long line.

8 years agodate: fix TZ= regression
Paul Eggert [Sat, 21 Jan 2017 02:24:02 +0000 (18:24 -0800)] 
date: fix TZ= regression

Problem reported by Paul Wise for Debian, in:
https://bugs.debian.org/851934
This is fallout from the fix for GNU Bug#23035.
* src/date.c (batch_convert): New args TZ and TZSTRING.
All uses changed.
(batch_convert, main): Adjust to parse_datetime2 API change.
(main): Allocate time zone object.
* tests/misc/date-debug.sh: Fix incorrect test case,
caught by the fix.
* tests/misc/date.pl: Test the fix.

8 years agobuild: update gnulib submodule to latest
Paul Eggert [Sat, 21 Jan 2017 02:08:03 +0000 (18:08 -0800)] 
build: update gnulib submodule to latest

8 years agomaint: update README-hacking, now that vc-dwim accepts --init
Jim Meyering [Sat, 14 Jan 2017 17:30:31 +0000 (09:30 -0800)] 
maint: update README-hacking, now that vc-dwim accepts --init

* README-hacking: I've just released vc-dwim-1.8, so we can improve
the documentation to reference its --initialize option here.

8 years agodate: output "-00" for indeterminate time zone
Paul Eggert [Sun, 15 Jan 2017 07:57:54 +0000 (23:57 -0800)] 
date: output "-00" for indeterminate time zone

* NEWS: Document this behavior, which comes with recent Gnulib.
* doc/coreutils.texi (Formatting file timestamps, du invocation)
(Time conversion specifiers, Setting the time, Options for date):
Mention when -00 is output for numeric time zones.
Be more careful about Internet RFC numbers, ISO 8601, etc.

8 years agodate: new option spelling --rfc-email
Paul Eggert [Sun, 15 Jan 2017 07:15:43 +0000 (23:15 -0800)] 
date: new option spelling --rfc-email

* NEWS:
* doc/coreutils.texi (Time conversion specifiers)
(Options for date, Examples of date): Document this.
* src/date.c (rfc_email_format): Rename from rfc_2822_format.
All uses changed.
(usage, long_options): Support --rfc-email.

8 years agomaint: modernize URLs
Paul Eggert [Sun, 15 Jan 2017 06:57:51 +0000 (22:57 -0800)] 
maint: modernize URLs

A lot of this is converting http: to https:.
Also, gmane went away, so remove URLs that no longer work and
are not easy to figure out what they were.
Some of this stuff is so old that it no longer matters anyway.

8 years agobuild: update gnulib submodule to latest
Paul Eggert [Sat, 14 Jan 2017 19:44:05 +0000 (11:44 -0800)] 
build: update gnulib submodule to latest

8 years agodoc: move "File timestamps" to a separate chapter
Bernhard Voelker [Tue, 10 Jan 2017 21:08:03 +0000 (22:08 +0100)] 
doc: move "File timestamps" to a separate chapter

The above new section looked a bit odd as the only general documentation
in between the utility chapters.

* doc/coreutils.texi (File timestamps): Move to a separate chapter.

8 years agomaint: fix recent syntax check failures
Eric Blake [Tue, 10 Jan 2017 19:48:45 +0000 (13:48 -0600)] 
maint: fix recent syntax check failures

Commit 4f650aad was incomplete; it changed NEWS but not the hash,
and introduced a grammar error.

* cfg.mk (old_NEWS_hash): Update via 'make update-NEWS-hash'.
* doc/coreutils.texi (File timestamps): Fix doubled word.

8 years agodoc: cover file timestamps better
Paul Eggert [Mon, 9 Jan 2017 23:14:09 +0000 (15:14 -0800)] 
doc: cover file timestamps better

Prompted by a bug report from Scott Deerwester (Bug#25407).
* doc/coreutils.texi (File timestamps): New section.
Revamp other sections to use this new section, and
use more-consistent terminology.

8 years agomaint: standardize on "timestamp" as per POSIX
Paul Eggert [Mon, 9 Jan 2017 20:12:02 +0000 (12:12 -0800)] 
maint: standardize on "timestamp" as per POSIX

8 years agostty: ensure no side effects from invalid options
Pádraig Brady [Mon, 9 Jan 2017 00:07:42 +0000 (00:07 +0000)] 
stty: ensure no side effects from invalid options

* src/stty.c (apply_settings): A new function refactored
from main() that is used to both check and apply options.
(main): Call apply_settings before we open the device,
so all validation is done before interacting with a device.
* NEWS: Mention the improvement.
* tests/misc/stty.sh: Add a test case.

8 years agotests: improve 'date --debug' tests
Assaf Gordon [Fri, 6 Jan 2017 02:29:17 +0000 (21:29 -0500)] 
tests: improve 'date --debug' tests

Update tests following improvements to gnulib's parse-datetime.y module.
See https://lists.gnu.org/archive/html/bug-gnulib/2017-01/msg00002.html

* tests/misc/date-debug.sh: Add tests for each of the gnulib changes.

8 years agobuild: update gnulib submodule to latest
Assaf Gordon [Fri, 6 Jan 2017 01:49:13 +0000 (20:49 -0500)] 
build: update gnulib submodule to latest

8 years agomaint: update all copyright year number ranges
Pádraig Brady [Sun, 1 Jan 2017 22:38:02 +0000 (22:38 +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.

8 years agodoc: recommend b2sum as well as SHA2
Zooko [Mon, 26 Dec 2016 20:06:36 +0000 (20:06 +0000)] 
doc: recommend b2sum as well as SHA2

b2sum is faster, easier to use safely, and more future-proof

8 years agotests: avoid false fails on NFS due to EPERM
Pádraig Brady [Mon, 26 Dec 2016 13:06:57 +0000 (13:06 +0000)] 
tests: avoid false fails on NFS due to EPERM

* tests/chgrp/basic.sh: On some NFS setups a user is
not allowed to set a group on a file even if a member
of that group.  Therefore skip this test on remote file systems.
* tests/chgrp/default-no-deref.sh: Likewise.
* tests/chgrp/no-x.sh: Likewise.
* tests/chgrp/posix-H.sh: Likewise.
* tests/chgrp/recurse.sh: Likewise.
* tests/tail-2/inotify-rotate-resources.sh: Change to skipping
on remote file systems in the standard way.

8 years agodoc: Update POSIX part of README (Bug#25259)
Paul Eggert [Tue, 27 Dec 2016 23:02:34 +0000 (15:02 -0800)] 
doc: Update POSIX part of README (Bug#25259)

8 years agowc: with only --bytes, determine size more efficiently
Pádraig Brady [Thu, 22 Dec 2016 14:31:44 +0000 (14:31 +0000)] 
wc: with only --bytes, determine size more efficiently

* src/wc.c (wc): Avoid reading the end of the file
when the size is not a multiple of PAGE_SIZE,
as the special case handling for files in /proc and /sys
is only required when st_size is 0 or a multiple of PAGE_SIZE.
* tests/misc/wc-proc.sh: Add a test case.

8 years agomaint: correct the version for the previous bug fix
Pádraig Brady [Tue, 20 Dec 2016 13:07:07 +0000 (13:07 +0000)] 
maint: correct the version for the previous bug fix

While st_size would have been incorrect for subsequent
files since v7.1, it was only used since v8.24.

* tests/misc/wc-files0.sh: s/7.1/8.24/
* NEWS: Likewise.

Reported by Bernhard Voelker

8 years agowc: fix wrong byte counts when using --files-from0
William R. Fraser [Mon, 21 Mar 2016 00:44:09 +0000 (17:44 -0700)] 
wc: fix wrong byte counts when using --files-from0

* src/wc.c (main): Reset fstatus[0].failed between files when reusing
the fstatus[0] entry in --files-from0 mode.  This ensures a stat() is
done for each file, avoiding incorrect counts and redundant reading.
* NEWS: Mention the bug fix.
* tests/misc/wc-files0.sh: Add a test case.
Fixes http://bugs.gnu.org/23073

8 years agotests: fix typos in previous commit
Pádraig Brady [Sun, 18 Dec 2016 20:37:21 +0000 (20:37 +0000)] 
tests: fix typos in previous commit

* init.cfg (skip_if_mcstransd_is_running_): Fix typos
_introduced my me_ in the previous commit.

8 years agotests: support non-MLS enabled SELinux systems
Nicolas Iooss [Thu, 11 Feb 2016 14:07:52 +0000 (15:07 +0100)] 
tests: support non-MLS enabled SELinux systems

When running "make check" on a Linux system running SELinux with a
non-MLS policy, tests/mkdir/restorecon.sh test fails with:

  chcon: invalid context: root:object_r:tmp_t:s0: Invalid argument

Indeed in such a configuration, contexts cannot have ":s0" suffix.

* init.cfg (get_selinux_type): Refactor this function to here
from various tests.  Update to work with a non-MLS policy.
(mls_enabled_): A new function to detect if MLS is enabled.
(skip_if_mcstransd_is_running_): Update to not skip when
MLS is not enabled.
* tests/mkdir/restorecon.sh: Use a valid non-MLS context when needed.
* tests/install/install-Z-selinux.sh: Likewise.
* tests/cp/cp-a-selinux.sh: Likewise.
* tests/misc/selinux.sh: Likewise.
* tests/misc/chcon.sh: Skip if non-MLS as --range used throughout.
Fixes http://bugs.gnu.org/22631

8 years agofactor: retry properly if Pollard rho gives a trivial factorization
Torbjörn Granlund [Thu, 8 Dec 2016 10:07:29 +0000 (10:07 +0000)] 
factor: retry properly if Pollard rho gives a trivial factorization

* src/factor.c (factor_using_pollard_rho): Handle trivial factor g = n.
(factor_using_pollard_rho2): Handle trivial factor g1 = n1, g0 = n0.
* tests/misc/factor.pl: Add a test case.
Fixes http://bugs.gnu.org/25135

8 years agofactor: fix infinite loop in gcd2_odd
Niels Möller [Thu, 8 Dec 2016 09:48:50 +0000 (09:48 +0000)] 
factor: fix infinite loop in gcd2_odd

* src/factor.c (gcd2_odd): Fix the case a1 == 0, a0 == 0.
* NEWS: Mention the bug fix.
Fixes http://bugs.gnu.org/25135

8 years agodoc: fix --help for: od -t f[SIZE]
Pádraig Brady [Fri, 2 Dec 2016 13:10:18 +0000 (13:10 +0000)] 
doc: fix --help for: od -t f[SIZE]

* src/od.c (usage): SIZE is that of float, not integer.

8 years agomaint: post-release administrivia
Pádraig Brady [Wed, 30 Nov 2016 18:35:39 +0000 (18:35 +0000)] 
maint: post-release administrivia

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

8 years agoversion 8.26 v8.26
Pádraig Brady [Wed, 30 Nov 2016 18:11:57 +0000 (18:11 +0000)] 
version 8.26

* NEWS: Record release date.

8 years agotests: fix false failure with spaces in $PWD
Pádraig Brady [Wed, 30 Nov 2016 15:50:59 +0000 (15:50 +0000)] 
tests: fix false failure with spaces in $PWD

* tests/misc/ptx-overrun.sh: Quote appropriately to avoid this
recently added issue, noticed by `make taint-distcheck`.

8 years agomaint: avoid "make distcheck" failure without excess .deps directories
Pádraig Brady [Wed, 30 Nov 2016 14:47:08 +0000 (14:47 +0000)] 
maint: avoid "make distcheck" failure without excess .deps directories

* Makefile.am (my-distcheck): Add the -r option to xargs so that
rmdir doesn't return an error when there are no extraneous .deps dirs.

8 years agotests: fix ERRORs and false FAILs on some platforms
Pádraig Brady [Tue, 29 Nov 2016 21:15:59 +0000 (21:15 +0000)] 
tests: fix ERRORs and false FAILs on some platforms

* tests/misc/ls-time.sh: Skip the test rather than ERROR
when `touch -m -d ...` fails (Hurd).
* tests/tail-2/follow-stdin.sh: Avoid false FAILs by ignoring
the variances in sterror output.
* tests/rm/rm-readdir-fail.sh: Likewise.  Also avoid ERRORs
on systems that don't define _D_EXACT_NAMELEN.

8 years agohead: fix processing of non-seekable input as seekable
Pádraig Brady [Mon, 28 Nov 2016 17:11:18 +0000 (17:11 +0000)] 
head: fix processing of non-seekable input as seekable

* src/head.c (elide_tail_bytes_file): Ensure we don't use
st_size unless we've previously used seek() to determine
the CURRENT_POS in the seekable file.
This was seen to cause issue on FreeBSD 11 when the pipe
buffer was filled with `yes | head --lines=-0`, in which
case st_size was 64KiB while ST_BLKSIZE() was 4KiB.
Reported by Assaf Gordon.

8 years agoinstall,mkdir: fix handling of -DZ and -pZ, respectively
Kamil Dudka [Mon, 28 Nov 2016 15:21:42 +0000 (16:21 +0100)] 
install,mkdir: fix handling of -DZ and -pZ, respectively

... in the case where two or more directories nested in each other are
created and each of them defaults to a different SELinux context.

* src/install.c (make_ancestor): When calling defaultcon(), give it the
same path that is given to mkdir().  The other path is not always valid
wrt. current working directory.
* src/mkdir.c (make_ancestor): Likewise.
* NEWS: Mention the bug fix.

Reported at https://bugzilla.redhat.com/1398913

8 years agotac: fix mem corruption when failing to read non seekable inputs
Pádraig Brady [Sun, 27 Nov 2016 15:09:53 +0000 (15:09 +0000)] 
tac: fix mem corruption when failing to read non seekable inputs

This was detected with ASAN, but can also be seen without ASAN with:
  $ tac - - <&-
  tac: standard input: read error: Bad file descriptor
  *** Error in `tac': malloc(): memory corruption: 0x...

* src/tac.c (copy_to_temp): Don't close our output stream on
(possibly transient) output error, or on input error.
(temp_stream): clearerr() on the stream about to be reused,
to ensure future stream use is not impacted by transient errors.
* tests/misc/tac-2-nonseekable.sh: Add a test case.
* NEWS: Mention the bug fix.
Fixes http://bugs.gnu.org/25041

8 years agotail: fix uninitialized memory read when failing to read file
Pádraig Brady [Sun, 27 Nov 2016 13:00:35 +0000 (13:00 +0000)] 
tail: fix uninitialized memory read when failing to read file

Reproduced under UBSAN with `tail -f <&-` giving:
  tail.c:2220:18: runtime error: load of value 190,
  which is not a valid value for type ‘_Bool'

* src/tail.c (tail_file): Ensure f->ignore is initialized
in all cases where we can't tail the specified file.
* tests/tail-2/follow-stdin.sh: Add a test case which
checks stderr has no UBSAN warnings.
Fixes http://bugs.gnu.org/25041

8 years agodoc: add NEWS entries for recent changes
Pádraig Brady [Sun, 27 Nov 2016 01:20:09 +0000 (01:20 +0000)] 
doc: add NEWS entries for recent changes

* NEWS: Mention in improvements about the workaround for
the glibc issue with closed stdin, and the new supported file systems.
* tests/misc/b2sum.sh: Spelling fix.

8 years agostat,tail: sync with latest Linux file systems
Pádraig Brady [Sat, 26 Nov 2016 16:10:53 +0000 (16:10 +0000)] 
stat,tail: sync with latest Linux file systems

Update with the results from:

  kgit='https://git.kernel.org/cgit/linux/kernel/git'
  wget -q $kgit/torvalds/linux.git/plain/include/uapi/linux/magic.h \
    -O src/fs-latest-magic.h
  make src/fs-magic-compare

* src/stat.c (human_fstype): Add entries for:
BALLOON_KVM, CGROUP2, DAXFS, ZSMALLOC.

8 years agobuild: fix potential factor build failure on arm and risc
Pádraig Brady [Sat, 26 Nov 2016 15:55:04 +0000 (15:55 +0000)] 
build: fix potential factor build failure on arm and risc

* src/longlong.h: Sync from gmp repo incorporating:
Protect umul_ppmm with do ... while (0)
Replace obsolete ARC asm 'J' constraints with 'Cal'
Provide umul_ppmm for riscv64

8 years agoshred,sort: ensure faster unaligned access to rand module
Pádraig Brady [Fri, 25 Nov 2016 22:10:20 +0000 (22:10 +0000)] 
shred,sort: ensure faster unaligned access to rand module

glibc has changed the public define
from _STRING_ARCH_unaligned to _STRING_INLINE_unaligned as per
https://sourceware.org/bugzilla/show_bug.cgi?id=19462

* gl/lib/rand-isaac.c: Cater for both defines.
* gl/lib/randread.c: Likewise.
* src/system.h: Update commented out code.

8 years agoshuf: test input-closed bug
Paul Eggert [Sat, 26 Nov 2016 23:37:43 +0000 (15:37 -0800)] 
shuf: test input-closed bug

Problem reported by Alex Ryan (Bug#25029).
* tests/misc/shuf.sh: Test for shuffling with stdin closed.

8 years agobuild: update gnulib submodule to latest
Paul Eggert [Sat, 26 Nov 2016 22:59:33 +0000 (14:59 -0800)] 
build: update gnulib submodule to latest

8 years agonumfmt: pacify Sun C 5.14
Paul Eggert [Sat, 26 Nov 2016 02:54:03 +0000 (18:54 -0800)] 
numfmt: pacify Sun C 5.14

* src/numfmt.c (main): Don't implicitly coerce pointer in bool
initializer.  Although it's portable C99 code, it's confusing.

8 years agotests: fix false failure on new ls test
Pádraig Brady [Fri, 25 Nov 2016 14:35:13 +0000 (14:35 +0000)] 
tests: fix false failure on new ls test

* tests/ls/quote-align.sh: Remove "total" line
which can vary per file system depending on allocation.
Reported by Assaf Gordon on OpenSolaris (5.11/5.10).

8 years agopr: fix read from invalid memory with tabs in separator
Pádraig Brady [Fri, 25 Nov 2016 13:46:23 +0000 (13:46 +0000)] 
pr: fix read from invalid memory with tabs in separator

This was detected with:
  echo a > a; pr "-S$(printf "\t\t\t")" a -m a > /dev/null
Resulting in ASAN triggering:
  ====================================================
  ERROR: AddressSanitizer: global-buffer-overflow
  READ of size 1 at 0x00000041b622 thread T0
    #0 0x40506a in print_sep_string ../src/pr.c:2241
    #1 0x407ec4 in read_line ../src/pr.c:2493
    #2 0x40985c in print_page ../src/pr.c:1802
    #3 0x40985c in print_files ../src/pr.c:1618
    #4 0x4036e0 in main ../src/pr.c:1136

* src/pr.c (init_parameters): Ensure we only override the
specified separator when it's a single tab, thus matching
the calculated separator length.
* tests/pr/pr-tests.pl: Add a test case.
* NEWS: Mention the fix.

8 years agoptx: fix an invalid heap reference with short --width
Pádraig Brady [Thu, 24 Nov 2016 15:56:01 +0000 (15:56 +0000)] 
ptx: fix an invalid heap reference with short --width

* src/ptx.c (fix_output_parameters): Ensure line_width doesn't
go negative, which can happen when the --width is less
than the --gap-size.
* tests/misc/ptx-overrun.sh: Add a test case that triggers
with ASAN.  (Note the longer filename is needed to trigger).
Fixes http://bugs.gnu.org/25011

8 years agodoc: clarify that readlink's --quiet option is on by default
Bernhard Voelker [Thu, 24 Nov 2016 09:51:27 +0000 (10:51 +0100)] 
doc: clarify that readlink's --quiet option is on by default

* src/readlink.c (usage): Mark the --quiet/--silent option as active
by default.
* doc/coreutils.texi (readlink invocation): Likewise.

8 years agotests: fix false failure with ASAN in rm-readdir-fail
Pádraig Brady [Thu, 24 Nov 2016 01:26:30 +0000 (01:26 +0000)] 
tests: fix false failure with ASAN in rm-readdir-fail

* tests/rm/rm-readdir-fail.sh: ASAN correctly indicated
that fts was writing to freed memory.  This was because
we reused a single dirent in our readdir() test wrapper.
Since fts was deallocating those dirents, we now get
a new dirent for each call to our readdir wrapper.

8 years agosplit: fix memory corruption during chunk extraction
Pádraig Brady [Thu, 24 Nov 2016 00:03:16 +0000 (00:03 +0000)] 
split: fix memory corruption during chunk extraction

ASAN reported this error for: split -n2/3 /dev/null
  ERROR: AddressSanitizer: negative-size-param: (size=-1)
  #0 0x7f0d4c36951d in __asan_memmove (/lib64/libasan.so.2+0x8d51d)
  #1 0x404e06 in memmove /usr/include/bits/string3.h:59
  #2 0x404e06 in bytes_chunk_extract src/split.c:988
  #3 0x404e06 in main src/split.c:1626

Specifically there would be invalid memory access
and subsequent processing if the chunk to be extracted
was beyond the initial amount read from file (which is
currently capped at 128KiB).  This issue is not in a
released version, only being introduced in commit v8.25-4-g62e7af0

* src/split.c (bytes_chunk_extract): The initial_read != SIZE_MAX
should have been combined with && rather than ||, but also this
condition is always true in this function so remove entirely.
* tests/split/b-chunk.sh: Add a test case.

Fixes http://bugs.gnu.org/25003

8 years agotail: fix checking of remoteness when not using inotify
Pádraig Brady [Wed, 23 Nov 2016 17:10:20 +0000 (17:10 +0000)] 
tail: fix checking of remoteness when not using inotify

In recent commit v8.25-93-g7fc7206 we used the f->remote flag
which wasn't set in all cases.  This was detected with
ASAN giving this error when reading f->remote;
  runtime error: load of value 190,
  which is not a valid value for type '_Bool'

* src/tail.c (fremote): Query the system even without inotify.
(recheck): Always set f->fremote for valid files.

8 years agobuild: avoid racy failure of "make -jN install"
Jim Meyering [Wed, 23 Nov 2016 05:33:58 +0000 (21:33 -0800)] 
build: avoid racy failure of "make -jN install"

Installing with -j2 or greater could result in a failure like
  /bin/sh: line 29: /P/bin/install: Permission denied
when /P/bin/install specifies your PATH-selected install program.
This would arise because we're using "install" to install all
man/*.1 files, and that command would run concurrently with the one
that installs "/P/bin/install" itself.  We would run this command:
"src/ginstall src/ginstall /P/bin/install", and it would result
in intervals during which the destination file does not exist,
is empty or incomplete and not executable.  We addressed this
problem long ago for installation of actual binaries by telling the
installation rules to use our just-built bin/ginstall (only when not
cross-compiling) rather than the PATH-resolved "install" program.
This change is to do the same for those .1 files.
* src/local.mk (INSTALL): Override automake's default of something
like "INSTALL = /P/bin/install -c".
(INSTALL_PROGRAM): Now that we set INSTALL, there is no longer any
need to set this derived variable.  Its default definition,
"INSTALL_PROGRAM = ${INSTALL}" does what we require.
Improved by Eric Blake.

8 years agomaint: fix 'syntax-check' targets for VPATH builds
Bernhard Voelker [Tue, 22 Nov 2016 21:27:51 +0000 (22:27 +0100)] 
maint: fix 'syntax-check' targets for VPATH builds

* cfg.mk (sc_gitignore_missing): Add $(srcdir) to .gitignore filename.
(sc_gitignore_redundant): Likewise.

8 years agomaint: add build-aux/ar-lib to .gitignore
Bernhard Voelker [Tue, 22 Nov 2016 22:40:30 +0000 (23:40 +0100)] 
maint: add build-aux/ar-lib to .gitignore

* .gitignore: Add entry for the above file which is created
by  './bootstrap'.

8 years agopr: fix integer overflow in buffer size calcs
Paul Eggert [Wed, 23 Nov 2016 08:05:51 +0000 (00:05 -0800)] 
pr: fix integer overflow in buffer size calcs

Problem reported by Marcel Böhme (Bug#24996).
* configure.ac (WERROR_CFLAGS): Avoid -Wtype-limits.
* src/pr.c (col_sep_string): Now a const pointer.  All uses changed.
(integer_overflow): New function.
(separator_string, main, init_parameters, init_store_cols):
Check for integer overflow.
(align_column, read_line, print_stored): Avoid integer overflow.

8 years agocomm: add --total option
Bernhard Voelker [Tue, 22 Nov 2016 21:03:47 +0000 (22:03 +0100)] 
comm: add --total option

* src/comm.c (total_option): Add bool variable for the new option.
(TOTAL_OPTION): Add enum value.
(long_options): Add array element for the new option.
(usage): Document the new option here.
(compare_files): Count the lines in total[3], and output the summary at
the end.
(main): Accept the new option.
* doc/coreutils.texi (comm invocation): Document it.
* tests/misc/comm.pl: Test it.  While at it, improve the test data
to have 1 unique line in the first file, 2 unique lines in the second
file, and 3 common lines.
* NEWS (New Features): Mention the new option.

Fixes http://bugs.gnu.org/24929

8 years agoall: update gnulib submodule to latest
Pádraig Brady [Tue, 22 Nov 2016 19:41:20 +0000 (19:41 +0000)] 
all: update gnulib submodule to latest

Also sync these copies with gnulib:
* bootstrap: Sync missed part of AIX support.
* tests/init.sh: Support compare_ on AIX.

8 years agotests: fix false failure with FreeBSD 11 multibyte quoting
Pádraig Brady [Tue, 22 Nov 2016 01:45:56 +0000 (01:45 +0000)] 
tests: fix false failure with FreeBSD 11 multibyte quoting

* tests/misc/printf-quote.sh: FreeBSD 11 was seen to treat
\u0378 as a printable character.  Therefore change to
using the \u0081 C1 control character.  We use the UTF-8
representation because our printf implementation explicitly
disallows \u0081 as input.
Reported by Assaf Gordon

8 years agotests: fix false fails due to passing env vars to returns_
Pádraig Brady [Tue, 22 Nov 2016 01:23:22 +0000 (01:23 +0000)] 
tests: fix false fails due to passing env vars to returns_

On BSD /bin/sh it was seen that unexported env vars passed to
returns_() would not be propagated to the wrapped command.

* cfg.mk (sc_prohibit_env_returns): Add a syntax check to disallow.
* tests/misc/csplit-io-err.sh: Rearrange to export vars in a subshell.
* tests/rm/rm-readdir-fail.sh: Likewise.
* tests/misc/nohup.sh: Export and unset vars around returns_.
* tests/misc/printenv.sh: Likewise.
Reported by Assaf Gordon