Compare commits

..

206 Commits
v8.25 ... v8.27

Author SHA1 Message Date
Pádraig Brady
3df84f0492 version 8.27
* NEWS: Record release date.
2017-03-08 21:00:00 -08:00
Pádraig Brady
3308cdaf9f build: update gnulib submodule to latest
Removes extraneous parse-datetime.c generated during build
2017-03-08 20:18:58 -08:00
Pádraig Brady
79a5cb161d 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.
2017-03-08 17:55:09 -08:00
Pádraig Brady
280d421375 doc: spelling fix for recent doc addition
* doc/coreutils.texi (join invocation): s/preceeding/preceding/.
2017-03-08 17:25:58 -08:00
Bernhard Voelker
6dc540ed7a 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.
2017-03-07 21:34:06 -08:00
Assaf Gordon
6fc3ef9e6f 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).
2017-03-08 00:56:04 +00:00
Pádraig Brady
ddbe4b7a37 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.
2017-03-04 14:11:43 -08:00
Bernhard Voelker
fe8cc1ddaa 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".
2017-03-04 14:00:24 -08:00
Pádraig Brady
10d1d203a4 build: update gnulib submodule to latest
Fixes a test-lock failure on MacOS
2017-03-03 09:02:52 -08:00
Pádraig Brady
6555f41883 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.
2017-03-03 00:30:20 -08:00
Pádraig Brady
28803c8a31 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.
2017-03-03 00:25:54 -08:00
Pádraig Brady
b88e4dd3c6 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.
2017-03-03 00:23:56 -08:00
Assaf Gordon
00381d22d4 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
2017-03-01 18:47:24 -08:00
Pádraig Brady
8b22614b9a 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.
2017-03-01 09:33:29 -08:00
Pádraig Brady
3be3da3bec 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
2017-03-01 09:25:28 -08:00
Pádraig Brady
109ba4441b 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).
2017-02-28 20:24:47 -08:00
Pádraig Brady
06c3123f6e 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.
2017-02-28 19:26:04 -08:00
Pádraig Brady
b1413b6011 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
2017-02-28 19:26:01 -08:00
Pádraig Brady
9404382f6b 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.
2017-02-26 09:31:50 -08:00
Pádraig Brady
e1d1b4f497 build: update gnulib submodule to latest 2017-02-26 07:07:20 -08:00
Pádraig Brady
509152bdd4 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.
2017-02-22 20:54:17 -08:00
Pádraig Brady
db277d6077 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
2017-02-22 20:23:31 -08:00
Pádraig Brady
e4a4427502 maint: tweaks so syntax tests pass for previous commit
* .gitignore: placate sc_gitignore_redundant.
* po/POTFILES.in: placate sc_po_check.
2017-02-17 19:36:58 -08:00
Bernhard Voelker
cc3085bae4 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.
2017-02-16 18:47:27 +01:00
Paul Eggert
1c27b56095 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.
2017-02-16 00:40:50 -08:00
Paul Eggert
a24e9cc55c build: update gnulib submodule to latest 2017-02-16 00:40:50 -08:00
Paul Eggert
75aababed4 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.
2017-02-15 15:59:16 -08:00
Paul Eggert
e5cfadd6c7 build: update gnulib submodule to latest 2017-02-15 15:59:16 -08:00
Pádraig Brady
bd4bb42d65 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.
2017-02-12 18:05:37 -08:00
Paul Eggert
376967889e 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.
2017-02-11 23:14:02 -08:00
Tobias Stoeckmann
2f69dba5df 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
2017-02-09 22:15:43 -08:00
Pádraig Brady
99deaff7e8 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.
2017-02-09 21:52:23 -08:00
Janne Snabb
1ddcd24d52 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
2017-02-08 14:42:18 -08:00
Pádraig Brady
c95c0a0fd4 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.
2017-02-08 14:40:22 -08:00
Pádraig Brady
a520942efa 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.
2017-02-08 14:40:22 -08:00
Pádraig Brady
2c64bc8729 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.
2017-02-08 14:39:48 -08:00
Maxime de Roucy
c0a79542fb 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.
2017-02-07 02:15:20 +01:00
Pádraig Brady
7a9c524f15 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
2017-01-25 18:24:29 +00:00
Manolis Ragkousis
c974f835a5 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
2017-01-25 10:55:48 -06:00
Mike Swanson
9f888b75c0 dircolors: highlight windows archive format
* src/dircolors.hin: Match *.{wim,swm,dwn,esd}
2017-01-21 16:05:58 +00:00
Pádraig Brady
662470cd82 maint: mention the recent date time zone bug fix
* NEWS: Add the bug fix from commit v8.26-27-gb14be50
2017-01-21 15:17:47 +00:00
Assaf Gordon
bd9beb5102 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.
2017-01-21 15:04:43 +00:00
Paul Eggert
b14be5085c 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.
2017-01-20 18:24:54 -08:00
Paul Eggert
7cecdd6d69 build: update gnulib submodule to latest 2017-01-20 18:24:54 -08:00
Jim Meyering
25c7c0db9b 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.
2017-01-15 08:52:39 -08:00
Paul Eggert
0e9b51d179 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.
2017-01-14 23:59:01 -08:00
Paul Eggert
0b61395910 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.
2017-01-14 23:59:01 -08:00
Paul Eggert
103d2b92da 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.
2017-01-14 23:59:01 -08:00
Paul Eggert
24622902ca build: update gnulib submodule to latest 2017-01-14 23:59:01 -08:00
Bernhard Voelker
cade92336d 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.
2017-01-10 22:15:07 +01:00
Eric Blake
83bfb98991 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.
2017-01-10 14:13:44 -06:00
Paul Eggert
5e871b355f 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.
2017-01-09 15:15:04 -08:00
Paul Eggert
f4650aadbe maint: standardize on "timestamp" as per POSIX 2017-01-09 15:15:04 -08:00
Pádraig Brady
9c0a3a27f7 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.
2017-01-09 00:27:07 +00:00
Assaf Gordon
229431d63c 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.
2017-01-05 22:12:58 -05:00
Assaf Gordon
3568c6a582 build: update gnulib submodule to latest 2017-01-05 22:02:35 -05:00
Pádraig Brady
e7a2580b96 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.
2017-01-01 22:38:02 +00:00
Zooko
b02631b14b doc: recommend b2sum as well as SHA2
b2sum is faster, easier to use safely, and more future-proof
2016-12-28 16:34:34 +00:00
Pádraig Brady
d1a1276979 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.
2016-12-28 16:33:43 +00:00
Paul Eggert
ed77fb40ca doc: Update POSIX part of README (Bug#25259) 2016-12-27 15:03:05 -08:00
Pádraig Brady
e17e5f40b8 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.
2016-12-26 12:57:16 +00:00
Pádraig Brady
94d2c6848b 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
2016-12-20 13:07:07 +00:00
William R. Fraser
9944e4763b 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
2016-12-19 20:13:51 +00:00
Pádraig Brady
f071b04afa tests: fix typos in previous commit
* init.cfg (skip_if_mcstransd_is_running_): Fix typos
_introduced my me_ in the previous commit.
2016-12-18 20:39:41 +00:00
Nicolas Iooss
be2f82f670 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
2016-12-18 20:03:59 +00:00
Torbjörn Granlund
ca52f3bf3f 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
2016-12-08 10:10:38 +00:00
Niels Möller
c44da11506 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
2016-12-08 10:10:34 +00:00
Pádraig Brady
11c1b73c1b doc: fix --help for: od -t f[SIZE]
* src/od.c (usage): SIZE is that of float, not integer.
2016-12-02 13:10:18 +00:00
Pádraig Brady
fbb337e1c3 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2016-11-30 18:35:39 +00:00
Pádraig Brady
ae40e18baf version 8.26
* NEWS: Record release date.
2016-11-30 18:11:57 +00:00
Pádraig Brady
1ee01c4066 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`.
2016-11-30 15:50:59 +00:00
Pádraig Brady
40434e566e 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.
2016-11-30 14:48:01 +00:00
Pádraig Brady
a2bb79844f 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.
2016-11-29 21:21:12 +00:00
Pádraig Brady
0655b86a6e 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.
2016-11-28 18:36:32 +00:00
Kamil Dudka
d8104265f2 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
2016-11-28 16:17:31 +00:00
Pádraig Brady
a39641cbb8 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
2016-11-28 13:19:24 +00:00
Pádraig Brady
6f30a99fa5 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
2016-11-27 21:10:15 +00:00
Pádraig Brady
5c09e82b4f 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.
2016-11-27 01:20:09 +00:00
Pádraig Brady
286a401bc5 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.
2016-11-27 00:28:16 +00:00
Pádraig Brady
4535563318 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
2016-11-27 00:28:16 +00:00
Pádraig Brady
12f6214d07 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.
2016-11-27 00:27:45 +00:00
Paul Eggert
c7c0c8b659 shuf: test input-closed bug
Problem reported by Alex Ryan (Bug#25029).
* tests/misc/shuf.sh: Test for shuffling with stdin closed.
2016-11-26 15:38:08 -08:00
Paul Eggert
7e76f092a0 build: update gnulib submodule to latest 2016-11-26 15:38:08 -08:00
Paul Eggert
e490178c39 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.
2016-11-25 18:54:32 -08:00
Pádraig Brady
55f14d7a09 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).
2016-11-25 14:35:13 +00:00
Pádraig Brady
d91aeef052 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.
2016-11-25 14:08:42 +00:00
Pádraig Brady
ca99c524e8 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
2016-11-24 16:21:59 +00:00
Bernhard Voelker
19157e87fd 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.
2016-11-24 10:51:27 +01:00
Pádraig Brady
4258e97b2d 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.
2016-11-24 01:31:45 +00:00
Pádraig Brady
4954f79ad2 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
2016-11-24 00:24:58 +00:00
Pádraig Brady
68c5eeccd0 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.
2016-11-24 00:24:21 +00:00
Jim Meyering
477a1e8ed4 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.
2016-11-23 07:35:56 -08:00
Bernhard Voelker
fb82445ea0 maint: fix 'syntax-check' targets for VPATH builds
* cfg.mk (sc_gitignore_missing): Add $(srcdir) to .gitignore filename.
(sc_gitignore_redundant): Likewise.
2016-11-23 12:17:03 +01:00
Bernhard Voelker
d738921c7f maint: add build-aux/ar-lib to .gitignore
* .gitignore: Add entry for the above file which is created
by  './bootstrap'.
2016-11-23 12:16:32 +01:00
Paul Eggert
38286df537 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.
2016-11-23 00:07:27 -08:00
Bernhard Voelker
b50a151346 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
2016-11-22 22:03:47 +01:00
Pádraig Brady
812877bfcb 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.
2016-11-22 20:10:24 +00:00
Pádraig Brady
1d46419fde 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
2016-11-22 20:04:25 +00:00
Pádraig Brady
055b08ff78 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
2016-11-22 20:04:25 +00:00
Pádraig Brady
b572a286d5 tests: fix recent tail-2 test regressions
* tests/tail-2/pipe-f.sh: Avoid issue with readable
directories on BSD systems.
* tests/tail-2/retry.sh: Likewise.
Reported by Assaf Gordon
2016-11-22 20:04:25 +00:00
Pádraig Brady
01971c0e3f ls: improve alignment of quoted names
This provides better alignment when some names are quoted,
which also provides better indication that quotes are not
part of the name.

* src/ls.c (align_variable_outer_quotes): A new variable
set when ls is aligning columns (not using -m, non-zero -w),
and has a variable quoting style (shell, shell-escape, c-maybe).
(quote_name_buf): Writes to buffer rather than FILE,
taking care to avoid data copying if possible.  Refactored from...
(quote_name): ...here.  This now manages the buffer passed
to quote_name_buf() and outputs the padding, colors and name
in the appropriate order, while managing the --dired offsets.
(get_color_indicator): A new function to return the color sequence,
refactored from...
(print_color_indicator): ...here.  This now simply outputs.
(print_dir): Refactor common parts to quote_name().
(clear_files): Reset the flag indicating at least one
file is quoted in the current directory.
(needs_quoting): A new function to indicate at the scan stage
whether a name needs quoting.  Called from...
(gobble_file): ...here, until we find the first quoted file.
(print_name_with_quoting): Mostly refactored to quote_name().
* tests/ls/quote-align.sh: A new test for various output formats.
* tests/local.mk: Reference the new test.
* NEWS: Mention the improvement.
2016-11-22 20:04:25 +00:00
Pádraig Brady
ea94589e9e b2sum: a new checksum utility with md5sum like interface
Note we don't support the --algorithm option of the
b2sum command in the external BLAKE2 project, as that
was deemed too confusing for users.
"BLAKE2b" was chosen as the default algorithm to use,
which is single threaded but performs well on 64 bit.

* src/blake2: CC0 source copied from external project.
* cfg.mk[VC_LIST_ALWAYS_EXCLUDE_REGEX]: Exclude blake2/
from syntax checks, make update-copyright, etc.
* src/local.mk: Reference the sources for b2sum,
and set the compilation flags.
* doc/coreutils.texi (b2sum invocation): Reference the
md5sum invocation node, and add descriptions of -l.
* tests/misc/b2sum.sh: Add new test.
* tests/local.mk: Reference new test.
* AUTHORS: Add new binary.
* README: Likewise.
* build-aux/gen-lists-of-programs.sh: Likewise.
* man/.gitignore: Likewise.
* scripts/git-hooks/commit-msg: Likewise.
* man/b2sum.x: New man page template.
* man/local.mk: Reference new template.
* src/.gitignore: Ignore new binaries.
* src/blake2/.gitignore: Ignore new build atrifacts.
* src/md5sum.c (usage): Describe the new -l option.
* NEWS: Mention the new program.
2016-11-22 20:04:24 +00:00
Jim Meyering
373ba16f33 maint: avoid "make distcheck" failure due to excess .deps directories
* Makefile.am (my-distcheck): Remove all .deps directories before the
recursive diff that searches for left-behind files.  Otherwise, with
automake master (some time after v1.15), "make distcheck" would fail
due to those directories being left behind after "make distclean".
2016-11-22 10:21:25 -08:00
Pádraig Brady
f179919848 cp: improve status message when omitting directories
* src/copy.h (cp_options): Add a new flag for install(1).
* src/copy.c (copy_internal): For cp, also output remediation
advice which also indicates why directories aren't copied by default.
The message is unchanged for install(1).
* src/cp.c (cp_option_init): Init install_mode to false.
* src/mv.c (cp_option_init): Likewise.
* src/install.c (cp_option_init): Init install_mode to true.
* tests/install/basic-1.sh: Add a test case.
* tests/cp/link-deref.sh: Adjust test case.
Fixes http://bugs.gnu.org/24958
2016-11-19 17:05:33 +00:00
Pádraig Brady
0c5cc8384a tests: fix non portable date in recent test
* tests/misc/date.pl: Years < 1900 fail on solaris at least.
Reported by Assaf Gordon
2016-11-16 01:58:36 +00:00
Pádraig Brady
23a166d0e7 tests: fix false failure on OS X
* tests/misc/sort-h-thousands-sep.sh: The sv_SE locale
may be available while sv_SE.utf8 is not.  Therefore
test and use the same locale, now definfed in a variable.
Reported by Jim Meyering.
2016-11-15 21:29:10 +00:00
Antonio Ospite
1ba4cdb3e1 dircolors: highlight Motion JPEG multimedia files
* src/dircolors.hin: Add .mjpg and .mjpeg multimedia files.
This resolves http://bugs.gnu.org/24436.
2016-11-15 12:35:37 -08:00
Jim Meyering
4d4d8bccc3 tests: use "returns_" rather than explicit comparison with "$?"
The previous "returns_"-using change failed to convert many
uses of "$?".  Convert all but two of the remaining ones.
* tests/ls/stat-vs-dirent.sh: Likewise.
* tests/misc/head-write-error.sh: Likewise.
* tests/misc/nice.sh: Likewise.
* tests/misc/nohup.sh: Likewise.
* tests/misc/stdbuf.sh: Likewise.
* tests/misc/sync.sh: Likewise.
* tests/tail-2/pid.sh: Likewise.
* tests/tail-2/wait.sh: Likewise.
Thanks to Bernhard Volker for spotting this.
2016-11-13 17:09:57 -08:00
Pádraig Brady
eba871cd32 all: reduce usage of proper_name_utf8()
This reduces a standard coreutils install size by about 160K.

* src/cat.c: Change to proper_name() which removes about 18K text.
* src/cp.c: Likewise.
* src/df.c: Likewise.
* src/du.c: Likewise.
* src/getlimits.c: Likewise.
* src/realpath.c: Likewise.
* src/split.c: Likewise.
* src/stdbuf.c: Likewise.
* src/timeout.c: Likewise.
* src/truncate.c: Likewise.
* src/local.mk: Remove -llibiconv from the above programs.
* cfg.mk (sc_check-AUTHORS): Adjust to use factor(1).
* AUTHORS: Adjust to use ASCII to satisfy sc_check-AUTHORS.
2016-11-14 00:34:39 +00:00
Bernhard Voelker
40122a96df maint: add 'returns_' to exclude list in sc_prohibit_and_fail_1
The previous commit v8.25-96-g22063c8 lets 'make syntax-check' fail,
because the above check falsely detects a case where 'returns_' is
already in use.

* cfg.mk (sc_prohibit_and_fail_1): Add 'returns_' to exclude list.
2016-11-13 18:16:32 +01:00
Jim Meyering
22063c8c08 tests: use "returns_" rather than explicit comparison with "$?"
* tests/chmod/no-x.sh: Likewise.
* tests/cp/no-deref-link1.sh: Likewise.
* tests/cp/no-deref-link2.sh: Likewise.
* tests/cp/no-deref-link3.sh: Likewise.
* tests/du/move-dir-while-traversing.sh: Likewise.
* tests/ls/infloop.sh: Likewise.
* tests/ls/stat-failed.sh: Likewise.
* tests/ls/time-style-diag.sh: Likewise.
* tests/misc/chroot-fail.sh: Likewise.
* tests/misc/env-null.sh: Likewise.
* tests/misc/env.sh: Likewise.
* tests/misc/nice-fail.sh: Likewise.
* tests/misc/printenv.sh: Likewise.
* tests/misc/timeout.sh: Likewise.
* tests/tail-2/follow-name.sh: Likewise.
2016-11-13 08:26:19 -08:00
Pádraig Brady
4d45722d11 tail: only retry file open if --retry specifed
* src/tail.c (tail_file): On failure to open a file,
set ignore=true when --retry is not specified.
* tests/tail-2/assert-2.sh: Adjust to the new behavior.
* tests/tail-2/retry.sh: Add a test case.  Also change
from `tail ... && fail=1` to the more robust `returns_ 1 ...`
construct which detects segfaults etc.
* NEWS: Document the fix.
2016-11-10 12:43:42 +00:00
Pádraig Brady
659060233f tail: ensure -f --retry 'missing' handles truncation
* src/tail.c (tail_forever): The BLOCKING optimization is only
enabled for non regular files (which can't be truncated), so ensure
we don't enable that unless we've a valid file descriptor.
* tests/tail-2/retry.sh: Add a test case.
* NEWS: Mention the bug fix.
2016-11-09 21:38:33 +00:00
Pádraig Brady
7fc7206b03 tail: avoid outputting repeated data with remote files
* src/tail.c (tail_forever): Only read up to st_size on network
file systems to avoid the issue with a stale attribute cache
returning a smaller st_size than we have already read().
The was seen with glusterfs at least and caused the complete
file to be repeatedly output due to assuming the file was
truncated in this case.
* NEWS: Mention the fix.
2016-11-09 19:36:42 +00:00
Pádraig Brady
2a80912529 tail: terminate when following pipes and untailable non pipes
* src/tail.c (ignore_pipe_or_fifo): Mark the descriptor as -1
for pipes so that any_live_files() detects correctly that
the entry is no longer live.
* tests/tail-2/pipe-f.sh: Add a test case.
* NEWS: Mention the fix.
Fixes http://bugs.gnu.org/24903 which was detected
using Symbolic Execution techniques developed in
the course of the SYMBIOSYS research project at
COMSYS, RWTH Aachen University.
2016-11-08 23:19:08 +00:00
Pádraig Brady
23066be1b6 maint: misc tweaks to recent changes
* doc/coreutils.texi(cut invocation): Give a more accurate description
of cut field handling limitations.
* tests/misc/stat-fmt.sh: Fix the test header to be more general.
* tests/tail-2/retry.sh: Spellings.
2016-11-07 17:12:39 +00:00
Pádraig Brady
7ce2589b77 maint: refactor printing of backup suffix --help
* src/system.h (emit_backup_suffix_note): A new function to
output the backup suffix info.  The strings are unchanged,
so translations are not impacted.
* src/cp.c (usage): Use the new function.
* src/ln.c (usage): Likewise.
* src/mv.c (usage): Likewise.
* src/install.c (usage): Likewise.
2016-11-07 17:09:35 +00:00
Rishabh Dave
ec946718ae maint: simplify handling of backup --suffix in various tools
* src/cp.c (main): Avoid the getenv("SIMPLE_BACKUP_SUFFIX") call,
which is now done if needed in the gnulib backupfile module.
Also avoid the redundant strdup, as we don't modify this suffix.
* src/install.c (main): Likewise.
* src/ln.c (main): Likewise.
* src/mv.c (main): Likewise.
Fixes http://bugs.gnu.org/23153
2016-11-07 17:09:35 +00:00
Pádraig Brady
30012b290f date: add %q to output the quarter of the year
* doc/coreutils.texi (date invocation): Document %q.
* src/date.c (usage): Likewise.
* tests/misc/date.pl: Add a test case.
* cfg.mk (sc_strftime_check): Adjust to allow %q.
* NEWS: Mention the new feature.
2016-11-07 17:09:15 +00:00
Pádraig Brady
7ba9355d0a all: update gnulib submodule to latest
Incorporating these coreutils specific changes:
  backupfile: initialize default suffix within the implementation
  strftime,strptime: support %q to represent the quarter

Also sync these copies with gnulib:
* bootstrap: Now supports AIX.
* gnulib: Update to the latest.
* tests/init.sh: dash(1) is now disabled.
2016-11-07 13:17:19 +00:00
Pádraig Brady
5161effd83 doc: clarify in texinfo that cut doesn't reorder fields
* doc/coreutils.texi (cut invocation): Clarify the more
sophisticated field processing supported by awk(1).
Fixes http://bugs.gnu.org/24881
2016-11-05 12:16:34 +00:00
Pádraig Brady
9ad400f1ad stat: make --format=%N honor the QUOTING_STYLE env var
* doc/coreutils.texi (stat invocation): Describe the
QUOTING_STYLE values now supported.
* src/stat.c (getenv_quoting_style): A new function called
from main, that sets the default quoting style for quotearg.
(main): Call getenv_quoting_style() when %N specified.
* tests/misc/stat-fmt.sh: Add a test case.
* NEWS: Mention the improvement.
Fixes http://bugs.gnu.org/23422
2016-11-05 00:44:06 +00:00
Pádraig Brady
6f64cb64f7 doc: improve the --help description of ls -N
* src/ls.c (usage): The existing description was inaccurate
as -N does not directly impact whether control characters
are displayed or not.
2016-11-05 00:42:23 +00:00
Pádraig Brady
c6656eed6a dd: warn about counts specified with confusing 0x prefix
* src/dd.c (parse_integer): Suggest to use "00x" instead of "0x",
which is significant for the "count", "seek", and "skip" operands.
* tests/dd/misc.sh: Add a test case.
Fixes http://bugs.gnu.org/24874
2016-11-04 20:38:32 +00:00
Pádraig Brady
d0ddfadfb2 md5sum,sha*sum: fix --ignore-missing with checksums starting with 00
* NEWS: Mention the fix.
* src/md5sum.c (digest_file): Add a new MISSING parameter to
return whether the file was missing, separately from the digest.
* tests/misc/md5sum.pl: Add a test case.
Fixes http://bugs.gnu.org/24795
2016-10-26 20:42:30 +01:00
Bishop Bettini
34d1aeaf31 doc: fix typo in stdbuf man page
* man/stdbuf.x: Correct spelling of immediately.
Fixes http://bugs.gnu.org/24763
2016-10-21 17:31:22 -07:00
Jim Meyering
f8b8bbc1b9 maint: we use die; remove now-unnecessary uses of abort
* src/expr.c (integer_overflow): Remove an abort-after-die.
* src/paste.c (write_error): Likewise.
* src/sort.c (badfieldspec): Likewise.
* src/tr.c (string2_extend): Likewise. Also remove a few
break statements, each after an abort.
2016-10-16 11:28:39 -07:00
Pádraig Brady
492dcb2eb1 all: use die() rather than error(EXIT_FAILURE)
die() has the advantage of being apparent to the compiler
that it doesn't return, which will avoid warnings in some cases,
and possibly generate better code.
* cfg.mk (sc_die_EXIT_FAILURE): A new syntax check rule to
catch any new uses of error (CONSTANT, ...);
2016-10-16 12:23:55 +01:00
Jim Meyering
d035eacfde build: also distribute new file, src/die.h
* src/local.mk (noinst_HEADERS): Add die.h.
2016-10-15 16:52:14 -07:00
Jim Meyering
dad7ab0b7b build: add die.h; avoid new warnings from GCC 7
* src/die.h (die): New file/function from grep.
Note: we expect this file to migrate to gnulib.
* src/csplit.c: Include die.h.
(check_format_conv_type): Use die in place of error-nonzero;break;
* src/install.c (strip): Likewise.
* src/nl.c (proc_text): Likewise.  This also suppresses a new warning
from GCC 7's -Werror=strict-overflow.
* src/tail.c (parse_options): Likewise.
* src/basename.c (main): Adjust "fall through" comment
so that GCC 7's -Wimplicit-fallthrough honors it.
* src/cp.c (main): Add a "fall through" comment.
* src/ls.c (gobble_file): Likewise.
(get_funky_string): Adjust a "fall through" comment so it is
recognized.
* cfg.mk (exclude_file_name_regexp--sc_system_h_headers): Add die.h
to this list of exempt src/*.h files.
2016-10-15 08:41:42 -07:00
Jim Meyering
0d9323ec55 maint: pr: avoid new GCC 7 warning
* src/pr.c (main): Avoid this warning from GCC 7:
src/pr.c:1119:6: error: assuming signed overflow does not occur when \
  simplifying conditional to constant [-Werror=strict-overflow]
   if (n_files == 0)
2016-10-15 08:41:42 -07:00
Jim Meyering
1d5fe84b4e gnulib: update to latest and adapt printf-quote.sh test
* .gitignore: Add /lib/limits.h.
* tests/misc/printf-quote.sh: Reflect that a single quote is now
rendered as "'", rather than as ''\'''.
2016-10-15 08:41:42 -07:00
Pádraig Brady
0e060d9fef rm: disallow --n alias for --no-preserve-root
* src/rm.c (main): Ensure the full --no-preserve-root
option is specified, rather than allowing --n etc.
* tests/rm/r-root.sh: Add a test case.
* NEWS: Mention the change in behavior.

Improved by Jim Meyering.
Fixes http://bugs.gnu.org/24604
2016-10-04 23:35:59 +01:00
Pádraig Brady
f04daf570b tail: -F now always processes initially untailable files
which was not the case when inotify was not available.

* src/tail.c (any_live_files): Simplify, since the IGNORE
flag is now only set when a file should be ignored indefinitely.
(recheck): Only output the "giving up on name" message
when that's actually the case.  Only set the IGNORE flag
when ignoring a file indefinitely.
(tail_file): Likewise.
* tests/tail-2/retry.sh: Add a test case.  Also run
all existing test cases with and without inotify.
NEWS: Mention the fix.
THANKS.in: Add the reporter.
Fixes http://bugs.gnu.org/24495 which was detected
using Symbolic Execution techniques developed in
the course of the SYMBIOSYS research project at
COMSYS, RWTH Aachen University.
2016-09-28 23:40:47 +01:00
Jim Meyering
eb406b2caf who: avoid new warning from upcoming gcc-7
* src/who.c (idle_string): This function would fail to compile
with -Werror and today's built-from-git gcc due to this warning:
src/who.c: In function 'print_user':
src/who.c:201:36: error: may write format character ':' at offset 4 \
  past the end of the destination [-Werror=format-length=]
           sprintf (idle_hhmm, "%02d:%02d",
                                    ^~~~~
The fix is to use an assertion to inform gcc of the existing
invariant that guarantees the number of hours is less than 24.
2016-09-22 10:17:07 -07:00
Paul Eggert
1db94ee969 ls: fix %%b format and precompute more
The old code mishandled --time-spec='+%%b', as it misinterpreted
the '%b' as being the month abbreviation.  Also, it mishandled
the extremely unlikely case of a month abbreviation containing '%'.
The performance part of this patch sped up 'ls' by about 1% on my
little benchmark of 'ls -lR' on the source directory in the
en_US.UTF-8 locale (Fedora 24 x86-64).
* NEWS: Document the bug fix.
* src/ls.c (first_percent_b, abformat_init): New static functions.
(ABFORMAT_SIZE): New constant.
(use_abformat): New static var.
(abmon, required_mon_width): Remove these static vars.
(abmon_init): Now accepts a pointer to abmon, and returns a boolean.
All callers changed.  Reject month abbrs containing '%', as these
would mess up strftime.  Simplify mbsalign result checking,
since (size_t) -1 exceeds ABFORMAT_SIZE.
(abformat_init, align_nstrftime): Precompute all 24 formats at
startup, rather than computing a format for each time stamp.
(decode_switches): Call abformat_init instead of abmon_init.
(align_nstrftime): Accept recentness bool instead of format.
All callers changed.
* tests/misc/time-style.sh: Test for format with '%%b'.
2016-09-19 12:48:32 -07:00
George Burgess IV
e095378302 pinky,who: remove redeclarations of ttyname
Given that `ttyname` is already conditionally declared in src/system.h,
other declarations are redundant and problematic for example in ChromeOS
which has a new FORTIFY implementation that, as an artifact of how it's
implemented, causes the compiler to complain if certain standard library
functions are redeclared without special compiler-specific attributes.

* src/pinky.c: Remove declaration (which was unused anyway).
* src/who.c: Remove declaration.
* src/system.h (getlogin, getuid, geteuid, getgrgid, getpwuid, ttyname):
Add the parameter type to the declarations to avoid warnings when these
backup declarations are used.
2016-09-11 12:46:02 +01:00
Jim Meyering
677ae07083 gnulib: update to latest, for getprogname fixes
Compiling in gnulib-tests/ would fail on some platforms
due to a missing lib/assert.h.  Reported by Assaf Gordon in
https://lists.gnu.org/archive/html/coreutils/2016-09/msg00016.html
2016-09-09 19:28:22 -07:00
Paul Eggert
89e1fef97c cp: use FICLONE instead of BTRFS_IOC_CLONE
This doesn't affect the generated code on my system; it's merely
a cleaner way to use the recently-introduced Linux-specific API.
* m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Check for linux/fs.h.
* src/copy.c: Include <linux.fs.h> if available.
(FICLONE) [__linux__]: Define if not already defined.
(clone_file): Use FICLONE instead of the older BTRFS_IOC_CLONE,
as this ioctl is no longer btrfs-specific.
2016-09-09 15:29:07 -07:00
Assaf Gordon
c6389a1340 date: add '--debug' option
Usage example:
    date --debug -d 'now + 3 days'

Print parsing and debugging information to stderr when using date's
-d/--date option.
See: http://lists.gnu.org/archive/html/coreutils/2016-01/msg00076.html

* src/date.c (main): Add '--debug' option, enable debugging
in gnulib's parse-datetime.y module.
* tests/misc/date.pl: Repeat tests with '--debug' enable, ensure
no regression.
* tests/misc/date-debug.sh: Test output of '--debug' option.
* tests/local.mk: Add above test.
* NEWS: Mention new option.
* doc/coreutils.texi: Likewise.
2016-09-08 01:00:23 -04:00
Paul Eggert
d47090d964 sort: port to strict C + valgrind
* bootstrap.conf (gnulib_modules): Add flexmember.
* src/sort.c: Include flexmember.h.
(struct tempnode): Make the last member flexible.
(create_temp_file): Port to strict C11/C99 rules for
allocation alignment with flexible array members.
2016-09-07 19:51:12 -07:00
Paul Eggert
e9e7289210 build: update gnulib submodule to latest 2016-09-07 19:51:12 -07:00
Pádraig Brady
6643842bad factor: reinstate immediate output with interactive use
* src/factor.c (lbuf_putc): Only buffer more than a line
when not using the tool interactively.
* NEWS: Mention the bug fix.
Fixes http://pad.lv/1620139
2016-09-07 10:20:39 +01:00
Kamil Dudka
5445f7811f ls: allow interruption when reading slow directories
Postpone installation of signal handlers until they're needed.
That is right before the first escape sequence is printed.

* src/ls.c (signal_setup): A new function refactored from main()
to set and restore signal handlers.
(main): Move signal handler setup to put_indicator()
so that the default signal handling is untouched as long as possible.
Adjusted condition for restoring signal handlers to reflect the change.
(put_indicator): Install signal handlers if called for the very first
time.  It uses the same code that was in main() prior to this commit.
* NEWS: Mention the improvement.

See https://bugzilla.redhat.com/1365933
Fixes http://bugs.gnu.org/24232
2016-09-07 10:16:59 +01:00
Pádraig Brady
22d188e299 doc: fix typo in date example
* doc/coreutils.texi (date invocation): Add a missing quotation mark.
Fixes http://bugs.gnu.org/24349
2016-09-01 16:39:04 +01:00
Jim Meyering
48ea99e1fa dircolors: recognize .zst and .tzst suffixes
* src/dircolors.hin: Add .zst and .tzst suffixes for the
Zstandard/zstd compression tools.  See http://zStd.net and
https://code.facebook.com/posts/1658392934479273/
2016-08-31 10:39:30 -07:00
Jim Meyering
d7ee241c23 maint: tr: tweak/make-consistent a pair of loop indices
* src/tr.c (unquote): Use indices of type "unsigned int", rather
than a mix or "size_t" and "int", presuming that no command-line-
specified string will have length longer than UINT_MAX.
2016-08-30 07:57:21 -07:00
Jim Meyering
def5cd571b tr: move decls "down" 2016-08-30 07:57:21 -07:00
Jim Meyering
d591776d81 ptx: avoid new warning/error from upcoming gcc-7.x
* src/ptx.c (fix_output_parameters): Switch to an unsigned type that
matches the OCCURS.file_index type. This avoids the following error
from gcc-7.0.0 20160829 (experimental):
  src/ptx.c:1220:14: error: assuming signed overflow does not occur \
    when simplifying conditional to constant [-Werror=strict-overflow]
          if (file_index > 0)
2016-08-29 08:37:08 -07:00
Pádraig Brady
bd75118c16 cp: with --parents --no-preserve=mode don't copy dir perms
* src/cp.c (make_dir_parents_private): Use default permissions for
created directories when --no-preserve=mode is specified.
* tests/cp/cp-parents.sh: Add a test case.
* NEWS: Mention the fix.
Fixes http://bugs.gnu.org/24251
2016-08-18 13:54:48 +01:00
Pádraig Brady
3e71b06577 doc: fix ambiguous multiplier info in dd man page
* src/dd.c (usage): Add a comma which is significant for
the rewrapping done in man pages.
2016-08-18 11:58:39 +01:00
Assaf Gordon
ff2178bf30 maint: refactor common expand(1) and unexpand(1) code
* src/expand.c, src/unexpand.c: Move global variables from here...
* src/expand-common.h, src/expand-common.c: ... to here.
* src/expand.c, src/unexpand.c: (parse_tab_stops, validate_tab_stops,
next_file): Move identical functions to new module.
(add_tab_stop): Move to new module, including additional code from
'unexpand' (keeping max_column_width) which will have no effect in when
used in 'expand'. Refactor common next-column calculation code
into a new function 'get_next_tab_column'.
* src/local.mk: (src_expand_SOURCES, src_unexpand_SOURCES): Add
'expand-common.c'; (noinst_HEADERS): Add 'expand-common.h'.
* po/POTFILES.in: Add 'expand-common.c'.
* tests/misc/expand.pl: Add more tests.
* tests/misc/unexpand.pl: Likewise.
* TODO: Move conclusions to above test after investigation.
2016-08-09 11:31:00 +01:00
Philipp Thomas
1c17f61ef9 df: improve performance with many mount points
Use hash table for seaching in filter_mount_list() and get_dev()

This improves performance for 20K mount entries from:
  real    0m1.731s
  user    0m0.532s
  sys     0m1.188s
to:
  real    0m1.066s
  user    0m0.028s
  sys     0m1.032s

* src/df.c (devlist_table): Define hash table.
(devlist_hash): Add hash function.
(devlist_compare): Add hash comparison function.
(devlist_for_dev): Add lookup function.
(devlist_free): Add cleanup function.
(filter_mount_list): Use the above hash table.
While at it, rename the variable 'devlist' to 'seen_dev' for
better readability.
(me_for_dev): Use the above lookup function.
NEWS: Mention the improvement.
THANKS.in: Remove the committer; add original submitter Josef Cejka.
2016-08-03 12:35:47 +01:00
Pádraig Brady
5bbce2d2d7 doc: revert recent date(1) synopsis change
* src/date.c (usage): This was thought to introduce other ambiguities,
and was inconsistent with the format presented in the touch(1) docs.
* doc/coreutils.texi (date invocation): Likewise.
See http://bugs.gnu.org/24077
2016-07-28 12:38:20 +01:00
Bernhard Voelker
558ce3044d maint: pacify GCC 6 with -Wnull-dereference
src/id.c:249:29: error: potential null pointer dereference \
[-Werror=null-dereference]
       pw_name = xstrdup (pwd->pw_name);
                          ~~~^~~~~~~~~
src/whoami.c:89:11: error: potential null pointer dereference \
[-Werror=null-dereference]
   puts (pw->pw_name);
         ~~^~~~~~~~~

* src/id.c (main): Explicitly exit with EXIT_FAILURE after an eror to
help gcc-6 to detect that the dereferenced pointer is valid.
* src/whoami.c (main): Likewise.
2016-07-27 21:28:49 +02:00
Bernhard Voelker
f0e0f3ac92 build: update gnulib submodule to latest
Mainly for
* 77d36b5 obstack: pacify GCC 6 with -Wnull-dereference
2016-07-27 21:28:33 +02:00
Jim Meyering
5e6911ccd6 maint: skip a check when en_US.UTF-8 collation rules are broken
* cfg.mk (sc_THANKS_in_sorted): This check would fail on systems
for which "." is not ignored.  Add a quick sort-based check for
that error, and skip the check on any broken system.
2016-07-27 09:31:03 -07:00
Pádraig Brady
8d1b163080 doc: make date(1) synopsis consistent with output +FORMAT
* src/date.c (usage): Make the characters used to summarize
the input format, match the output +FORMAT characters.
* doc/coreutils.texi (date invocation): Likewise.
Fixes http://bugs.gnu.org/24077
2016-07-27 17:08:24 +01:00
Bernhard Voelker
a69e54cfdf maint: fix dependency of man/arch.1
The following is a reproducer for the wrong dependency:

  $ ./configure --enable-install-program=arch
  $ make
  $ rm -f src/arch man/arch.1
  $ make man/arch.1
    GEN      man/arch.1
  help2man: can't get `--help' info from man/arch.td/arch
  Try `--no-discard-stderr' if option outputs to stderr
  Makefile:14378: recipe for target 'man/arch.1' failed
  make: *** [man/arch.1] Error 127

* man/local.mk (man/arch.1): Change to depend on src/arch rather than
src/uname: while the arch binary depends on uname.c and uname-arch.c,
its man page depends on the arch binary.

Reported downstream by Rodrigues Goldwyn <rgoldwyn@suse.com> in
https://build.opensuse.org/request/show/415172
2016-07-27 07:11:20 +02:00
Kamil Dudka
0f9fc7b3b9 sort: with -h, disallow thousands separator between number and unit
* src/sort.c (traverse_raw_number): Accept thousands separator only
if it is immediately followed by a digit.
* tests/misc/sort-h-thousands-sep.sh: Cover the fix for this bug.

Suggested by Pádraig Brady in http://bugs.gnu.org/24015
2016-07-18 22:24:26 +01:00
Kamil Dudka
dfbc945a56 sort: make -h work with -k and blank used as thousands separator
* src/sort.c (traverse_raw_number): Allow to skip only one occurrence
of thousands_sep to avoid finding the unit in the next column in case
thousands_sep matches as blank and is used as column delimiter.
* tests/misc/sort-h-thousands-sep.sh: Add regression test for this bug.
* tests/local.mk: Reference the test.
* NEWS: Mention the bug fix.
Reported at https://bugzilla.redhat.com/1355780
Fixes http://bugs.gnu.org/24015
2016-07-18 22:12:32 +01:00
Kamil Dudka
5cc804337b maint: sort.c: deduplicate code for traversing numbers
* src/sort.c (traverse_raw_number): New function for traversing numbers.
(find_unit_order): Use traverse_raw_number() instead of open-coding it.
(debug_key): Likewise.
2016-07-18 22:09:07 +01:00
Kamil Dudka
502518b440 install: with -Z, set default SELinux context for created directories
* doc/coreutils.texi (install invocation): Update -Z documentation.
* src/install.c (make_ancestor): Set default security context before
calling mkdir() if the -Z option is given.
(process_dir): Call restorecon() on the destination directory if the
-Z option is given.
(usage): Update -Z documentation.
* tests/install/install-Z-selinux.sh: A new test for 'install -Z -D'
and 'install -Z -d' based on tests/mkdir/restorecon.sh.
* tests/local.mk: Reference the test.
* NEWS: Mention the improvement.
Reported at https://bugzilla.redhat.com/1339135
Fixes http://bugs.gnu.org/23868
2016-07-08 18:40:23 +01:00
Pádraig Brady
54c1397510 tests: avoid false failure on 32 bit in readdir() test
* tests/rm/rm-readdir-fail.sh: Since we use the returned dirent
from the readdir wrapper it must be the correct type and not
just cast.  Therefore setup so that we only have to define a
wrapper for readdir(), which works appropriately on 32 and 64 bit.
Issue reported by Bernhard Voelker, where rm was seen to invoke
rmdir() on invalid file names.
2016-07-06 18:13:08 +01:00
Assaf Gordon
383e4b2ce5 tests: improve recent seq EPIPE test
Follow-up to commit c92585b1: improve epipe test script, with
suggestions from Bernhard Voelker and Pádraig Brady.
see: http://lists.gnu.org/archive/html/coreutils/2016-04/msg00067.html .

* tests/misc/seq-epipe.sh: Avoid too many subshells,
  stricter validation of errors and output from seq,
  skip if trapping SIGPIPE is not supported.
2016-07-02 18:08:33 -04:00
Pádraig Brady
dfae782200 stty: fix sane setting of susp to ^z on Solaris
* src/stty.c: Disable setting of "swtch" to ^z as that
conflicts with and disables using ^z as "susp".
* NEWS: Mention the bug fix.
Reported and tested by Rich Burridge at:
http://bugs.gnu.org/23866
2016-06-29 10:00:05 +01:00
Peter Benie
26616776c0 tests: verify that fts diagnoses readdir() failures
* tests/rm/rm-readdir-fail.sh: A new test to simulate readdir()
failing immediately or after returning a few entries, and verifying
that rm does the appropriate thing.
This was initially reported at:
http://bugzilla.opensuse.org/show_bug.cgi?id=984910
where it was mentioned that readdir() may fail
when an NFS server has a poor readdir cookie implementation.
2016-06-26 21:48:22 +01:00
Pádraig Brady
ef9650170f all: update gnulib submodule and tests/init.sh to latest
* gnulib: Update to latest.
* NEWS: Specifically mention the fts readdir() fix
and reindent to standard indentation.
* tests/init.sh: Update from gnulib.
2016-06-26 20:58:41 +01:00
Paul Eggert
4cdb1703af maint: simplify partial writes etc. in 'yes'
* src/yes.c: Include full-write.h.
(main): Use full_write, not write, to simplify handling of partial
writes.  Don't bother using stdio to output data; just use
full_write with a buffer as large as needed.  Reuse operand
strings if possible, and if the buffer would otherwise be large.
2016-06-25 01:02:08 +02:00
Pádraig Brady
5845664c8c yes: handle short writes
* src/yes.c (main): Loop over the write buffer to
handle the case where write may write less than requested.
* NEWS: Mention the bug fix.
Reported by Paul Eggert.
2016-06-24 01:13:33 +01:00
Pádraig Brady
ba5767c2b8 yes: fix copy and paste issue with previous commit
* src/yes.c (main): Output 'y' not '-'.
* tests/misc/yes.sh: Add a test for default output.
2016-06-24 01:09:28 +01:00
Paul Eggert
818b2f4897 maint: work even if argc == INT_MAX
GCC 7 warned about undefined behavior in this unlikely case.
Problem reported by Jim Meyering in: http://bugs.gnu.org/23825
* src/md5sum.c (main):
* src/paste.c (main):
* src/yes.c (main):
Avoid undefined behavior when argc == INT_MAX.
2016-06-23 20:18:03 +02:00
Pádraig Brady
a3311c966e doc: clarify sort --key handling of default field separators
* doc/coreutils.texi (sort invocation): Mention in the summary
dicussion that --key is used to specify fields.  Give a summary
in the --key description, of the most common use case of specifying
a field, and that by default those fields include the blank separators
at the start of each field in the comparisons.
2016-06-01 11:56:47 +01:00
Assaf Gordon
6223bf94bf sort: modify 'leading spaces' debug warning scenarios
Print warning regardless of locale, avoid warning if key is zero width.
Problem reported by Karl Berry in http://bugs.gnu.org/23665 .

* src/sort.c: (key_warnings): change conditions for 'leading spaces'
warning.
* tests/misc/sort-debug-warn.sh: adjust tests accordingly.
2016-05-31 21:29:52 -04:00
Assaf Gordon
d548f87595 tests: sort-debug-warn: add progress information lines
Easier troubleshooting of individual 'sort --debug' messages.
Discussed in http://bugs.gnu.org/23665 .

* tests/misc/sort-debug-warn.sh: add progress number before each sort
invocation.
2016-05-31 21:29:52 -04:00
Pádraig Brady
7945e09e7b dircolors: output colors for any $TERM matching *color*
* src/dircolors.hin: Reduce the list by replacing all specific
mentions of "color" with the pattern "*color*".  This will also
cater for other entries like "konsole-256color".
Fixes http://bugs.gnu.org/23542
2016-05-15 21:26:19 +01:00
KOBAYASHI Takashi
43df058b91 nl: reset numbering for each section
* NEWS: Mention the bug fix.
* src/nl.c (proc_body, proc_footer): Reset numbering here too.
* doc/coreutils.texi (nl invocation): Adjust for behavior change.
* tests/misc/nl.sh: Add a test case.
2016-05-14 12:41:43 +01:00
Pádraig Brady
99dd47ec86 stat,tail: add support for the SMB2 remote file system
* stc/stat.c (human_fstype): Add file system ID definition,
and use "smb2" as the name.
* NEWS (Improvements): Mention the change.
Fixes http://bugs.gnu.org/23516
2016-05-12 09:52:12 +01:00
Jim Meyering
9a4df07016 maint: avoid new warning from gcc (GCC) 7.0.0 20160503 (experimental)
* src/id.c (main): When configured with --enable-gcc-warnings and using
the very latest gcc built from git, building would fail with this:
  src/id.c:200:8: error: assuming signed overflow does not occur when \
    simplifying conditional to constant [-Werror=strict-overflow]
     bool default_format = (just_user + just_group + just_group_list
          ^~~~~~~~~~~~~~
Rewrite to use bool-appropriate operators.
2016-05-04 08:05:54 -07:00
Pádraig Brady
dc9146c4a2 tests: avoid false failure when df lists no root file system
* tests/df/skip-duplicates.sh: Skip the test when there is no
'/' entry listed by df, which was seen in certain chroot setups.
2016-04-26 11:35:59 +01:00
Assaf Gordon
c92585b10b seq: detect and report I/O errors immediately
Ensure I/O errors are detected (and terminate seq), preventing seq
from infloop (or running for long time with a large
range) upon write errors or ignored SIGPIPE. Examples:

     seq 1 inf > /dev/full             (seq_fast)
     seq 1.1 0.1 inf >/dev/full        (print_numbers)

* src/seq.c (io_error): A new function to diagnose appropriate
stdio errors and exit the program with failure status.
(seq_fast, print_numbers): Explicitly check for write errors
and terminate the program with diagnostic.
* tests/misc/seq-io-errors.sh: Test error detection with /dev/full.
* tests/misc/seq-epipe.sh: Test error detection with broken pipes.
* tests/local.mk: Add new tests.
* NEWS: Mention the fix.
2016-04-24 18:19:50 -04:00
Pádraig Brady
8c8163838a stat,tail: add support for Windows Subsystem for Linux
* src/stat.c (human_fstype): Add file system ID definition,
and use "wslfs" as the name.
* NEWS (Improvements): Mention the change.
Fixes http://bugs.gnu.org/23273
2016-04-22 22:47:48 +01:00
Pádraig Brady
0f5d784bc6 yes: avoid redundant diagnostics on write error
* src/yes.c (main): For large inputs only write a single
diagnostic for write errors.
* tests/misc/yes.sh: Test when /dev/full is available.
2016-04-21 21:34:00 +01:00
Pádraig Brady
2ef6212519 sleep,timeout: support overflowing floating point values
* src/sleep.c (main): Allow ERANGE since we allow "inf" values.
* src/timeout.c (parse_duration): Likewise.
* tests/misc/sleep.sh: New file. Tests for sleep(1).
* tests/misc/timeout-parameters.sh: Add case for newly allowed
$LDBL_MAX.  Also use returns_ throughout the file.  Also avoid
small timeout values which might give false failures under load.
2016-04-21 19:41:58 +01:00
Pádraig Brady
ff6cc22d06 tests: avoid potential overflows with expr
* cfg.mk (sc_prohibit_expr_unsigned): expr uses intmax_t internally
when GMP is not available, so flag any uses of unsigned limits.
* tests/misc/timeout-parameters.sh: Remove the overflow related
to UINT_MAX as it's handled by the following case.  Change the
following case from 99... to $TIME_T_OFLOW to be more expressive
in what it's actually testing.  Directly check that commands succeed,
rather than inspecting $? afterwards.
* tests/dd/skip-seek-past-dev.sh: Guard against large device sizes.
* tests/id/setgid.sh: Protect: Guard against large group IDs.
* tests/misc/cut-huge-range.sh: Tweak comment to avoid syntax check.
It's tempting to simplify to just skip the test if expr fails,
but SIZE_MAX > INTMAX_MAX is the common case.
2016-04-21 19:34:18 +01:00
Pádraig Brady
163c70d970 tests: fix recent false failure due to a race
* tests/cp/parent-perm-race.sh: This new race introduced in
commit v8.25-5-g632eda5 is quite hard to hit, but is due to
`ls > fifo` doing write()/close()/exit() once `cp` has
open() the source fifo.  Then the subsequent comparison of the
destination file may fail due to the file being missing or empty.
Previously `ls` generated output that was independent of `cp`.
Now we must wait for `cp` to finish before inspecting the
destination file that it wrote.
2016-04-20 17:08:36 +01:00
Bernhard Voelker
85faa0f436 tests: let mkdir/p-v.sh fail when compare fails
* tests/mkdir/p-v.sh: Set fail=1 when compare fails: the latter only
sets a non-Zero return code; evaluating that is up to the caller.
2016-04-18 23:30:41 +02:00
Bernhard Voelker
9a2e8ac489 seq: do not allow NaN arguments
* src/seq.c (isnan): Define macro.
(scan_arg): Add check if the given argument is NaN, and exit with
a proper error diagnostic in such a case.
(usage): Document it.
* tests/misc/seq.pl: Add tests.
* doc/coreutils.texi (seq invocation): Document the change.
* NEWS (Changes in behavior): Mention the change.
2016-04-14 12:39:28 +02:00
Bernhard Voelker
81e589021d seq: do not allow 0 as increment value
* src/seq.c (main): Exit with an error diagnostic when the given
step value is Zero.
(usage): Document it.
* doc/coreutils.texi (seq invocation): Likewise.
* tests/misc/seq.pl: Add tests.
* NEWS (Changes in behavior): Mention the change.
Reported by Маренков Евгений in:
http://bugs.gnu.org/23110
2016-04-14 12:38:09 +02:00
Yigal Korman
8faf269250 stat,tail: add support for M1FS
* src/stat.c (human_fstype): Add file system ID definition.
* NEWS (Improvements): Mention the change, moving the previously added
"prl_fs" change note from "Changes in behavior" to here.
Fixes http://bugs.gnu.org/23283
2016-04-14 10:11:05 +02:00
Pádraig Brady
d33f1fbd67 stat: report type for "prl_fs" file systems
* src/stat.c (human_fstype): Identify the parallels file system.
Also tag as remote so that tail(1) doesn't use inotify, which
fails to detect changes made outside a VM.
Fixes http://bugs.gnu.org/23143
2016-03-31 16:38:17 +01:00
Paul Eggert
df88fce716 date ls pr: fix time zone abbrs on SysV platforms
The problematic code computed a struct tm in one time zone, and
then printed it or converted it to a string in another.  To be
portable the same time zone needs to be used for both operations.
On GNU platforms this is not an issue, but incorrect output can be
generated on System V style platforms like AIX where time zone
abbreviations are available only in the 'tzname' global variable.
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23035
* NEWS: Document the bug.
* src/date.c (show_date):
* src/ls.c (long_time_expected_width, print_long_format):
* src/pr.c (init_header):
* src/stat.c (human_time): Use localtime_rz instead of localtime,
so that the time zone information is consistent for both localtime
and time-formatting functions like fprintftime and nstrftime.  For
'stat' this change is mostly just a code cleanup but it also
causes stat to also print nanoseconds when printing time stamps
that are out of localtime range, as this is more consistent with
what other programs do.  For programs other than 'stat' this fixes
bugs with time zone formats that use %Z.
* src/du.c, src/pr.c (localtz): New static var.
(main): Initialize it.
* src/du.c (show_date): New time zone argument, so that localtime
and fprintftime use the same time zone information.  All callers
changed.
* tests/misc/time-style.sh: New file.
* tests/local.mk (all_tests): Add it.
* tests/misc/date.pl: Test alphabetic time zone abbreviations.
2016-03-17 10:36:33 -07:00
Jim Meyering
c18b3699e1 maint: remove gl/lib/reg*.c.diff; no longer needed
* gl/lib/regcomp.c.diff: Remove file, now that gnulib's
regcomp.c compiles regex.c with -Wno-unused-parameter.
* gl/lib/regex_internal.h.diff: Likewise.
* gl/lib/regex_internal.c.diff: This file induced a change to ensure
that the "Idx" type was unsigned and to remove a few "VAR < 0"
comparisons.  These days, it is probably fine to stay in sync with
gnulib/glibc's copies
of these files, so remove these patches, too.
* gl/lib/regexec.c.diff: Likewise.
Prompted by a report by Assaf Gordon and a suggestion from Paul Eggert.
2016-03-15 07:36:12 -07:00
Eric Blake
e735d417fb build: update gnulib submodule to latest
Mainly for:
*bdb72bc6 set-permissions: fix compilation on Cygwin

* bootstrap: Sync with gnulib.
* gl/lib/regcomp.c.diff: Regenerate against latest gnulib.
2016-03-09 09:57:55 -07:00
Jim Meyering
68ede201e8 tests: avoid false-failure of split/filter.sh on XFS
* tests/split/filter.sh: Use OFF_T_MAX-1 rather than OFF_T_MAX
as the size of a test file, to avoid false failure on an XFS file
system (or any file system permitting a file of size OFF_T_MAX).
Reported as http://bugs.gnu.org/22931
2016-03-06 19:38:21 -08:00
Eric Blake
6475c51455 test: Document that -a and -o are undesirable
POSIX recommends avoiding -a and -o, for good reason.
src/test.c (usage): Mention that inherent ambiguities exist with
binary -a and -o.
Problem reported by Martin Gebert in: http://bugs.gnu.org/22909
2016-03-04 11:55:22 -07:00
Paul Eggert
a7f5d3d6d6 all: be less strict about usage if POSIX 2008
sort, tail, and uniq now support traditional usage like 'sort +2'
and 'tail +10' on systems conforming to POSIX 1003.1-2008 and later.
* NEWS: Document this.
* doc/coreutils.texi (Standards conformance, tail invocation)
(sort invocation, uniq invocation, touch invocation):
Document new behavior, or behavior's dependence on POSIX 1003.1-2001.
* src/sort.c (struct keyfield.traditional_used):
Rename from obsolete_used, since implementations are now allowed
to support it.  All uses changed.
(main): Allow traditional usage if _POSIX2_VERSION is 200809.
* src/tail.c (parse_obsolete_option): Distinguish between
traditional usage (which POSIX 2008 and later allows) and obsolete
(which it still does not).
* src/uniq.c (strict_posix2): New function.
(main): Allow traditional usage if _POSIX2_VERSION is 200809.
* tests/misc/tail.pl: Test for new behavior.
2016-02-23 01:05:10 -08:00
Paul Eggert
4c1995f1b6 doc: document sort -o F F danger
Problem reported by Yanyan Jiang 蒋炎岩 in: http://bugs.gnu.org/22769
* doc/coreutils.texi (sort invocation):
Mention possibility of 'sort -o F F' data loss during crashes.
2016-02-22 23:49:09 -08:00
Daniel Lockyer
587a1ba5df date: free timezone variable to avoid valgrind warning
* src/date.c (main): Free TZ variable to pacify valgrind, guarded
by IF_LINT.
2016-02-16 17:53:24 +01:00
Pádraig Brady
f91f2bf951 split: adjust recent --number changes
* src/split.c (lines_rr): Reinstate the conditional
setting of the WROTE boolean, as otherwise split -n r/1 would
consume all input when all --filter commands are stopped.
There was a test in place to check for this, but
it was incorrect as detailed below.
(input_file_size): Immediately disallow --number with
non seekable inputs, as such an invocation is not currently
generally supported and will fail as the data overflows
the internal buffer.
* tests/split/l-chunk.sh: Adjust to again disallow -n /dev/zero.
Also change all '&& fail=1' checks to use the 'returns_ 1' form.
* tests/split/filter.sh: Change the no longer supported /dev/zero
case to a regular $OFF_T_MAX file (supported on XFS for example).
Also fix the timeout(1) commands so they're not subject to
pipefail issues.
2016-02-15 22:03:15 -08:00
Göran Uddeborg
222e83056d stty: fix translated --help so the gettext header is not printed
* src/stty.c (usage): Remove an erroneous call to translate an
empty string, added in commit v8.23-112-g564f84a, which results
in the gettext header being printed for translated languages.
* THANKS.in: Remove the now committer.
* NEWS: Mention the bug fix.
2016-02-15 13:06:23 -08:00
Paul Eggert
632eda520f tests: don't wait forever on GNU/Hurd
* tests/cp/parent-perm-race.sh: Add timeouts so that the test does
not wait forever on GNU/Hurd.  This does not fix the underlying
bug but at least lets the tests make progress.
Problem reported by Nelson H.F. Beebe in: http://bugs.gnu.org/22624
Also, check that 'cp' actually copies the data; this is a better
test anyway, and simplifies the test code.
Also, avoid unlikely race if 'pid' is set in the environment.
2016-02-12 10:59:54 -08:00
Paul Eggert
62e7af0326 split: fix problems with /dev/zero
Problem reported by Nelson H.F. Beebe in: http://bugs.gnu.org/22624
Other problems also fixed: basically, the code got confused because
GNU/Linux reports that /dev/zero has size zero.
* src/split.c (input_file_size): Now takes struct stat *, not just
size.  Always store the first buffer.  All callers changed.  Treat
/dev/zero as an infinitely-large file, both on GNU/Linux where
fstat and lseek say its size is zero, and on GNU/Hurd where they
say the size is OFF_T_MAX.
(cwrite): Return true on success.
(bytes_split): Don't try to read past EOF, and stop if a write fails.
(lines_rr): Omit stray check for ignorable errno.
(main): Get file size only when n_units > 1, since that's the only
time it is needed.  Defer most of the work to input_file_size.
* tests/split/l-chunk.sh: Adjust tests to match new behavior
on oddball inputs.
2016-02-12 10:16:47 -08:00
Vincent Lefevre
380ab8453d doc: fix the --iso-8601 example in date --help
* src/date.c (usage): The colon is used in the timezone offset
since commit v8.24-64-g17bbf6c.
* THANKS.in: Remove committer.
Fixes http://bugs.gnu.org/22491
2016-01-29 23:12:08 -08:00
Pádraig Brady
6412d569dc build: avoid dynamic linking issue on Solaris sparc
Solaris Studio 12 on sparc (not x86) will not remove
unused functions, thus leaving a reference to an
undefined program_name symbol from emit_try_help().

* src/system.h (emit_try_help): Change from an inline function
to a macro, so that the inline function is not actually
defined in libstdbuf.c.
Fixes http://bugs.gnu.org/22430
2016-01-24 18:09:08 -08:00
Pádraig Brady
cfdac06196 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2016-01-20 10:56:02 +00:00
810 changed files with 8382 additions and 57865 deletions

3
.gitignore vendored
View File

@@ -18,6 +18,7 @@
/aclocal.m4
/autom4te.cache
/build-aux/.gitignore
/build-aux/ar-lib
/build-aux/compile
/build-aux/config.guess
/build-aux/config.rpath
@@ -45,7 +46,6 @@
/lib/alloca.h
/lib/arg-nonnull.h
/lib/arpa/inet.h
/lib/binary-io.h
/lib/c++defs.h
/lib/charset.alias
/lib/config.h
@@ -68,6 +68,7 @@
/lib/inttypes.h
/lib/langinfo.h
/lib/libcoreutils.a
/lib/limits.h
/lib/link-warning.h
/lib/locale.h
/lib/math.h

View File

@@ -1 +1 @@
8.24
8.26

View File

@@ -1,6 +1,6 @@
# Suppress valgrind diagnostics we don't care about.
# Copyright (C) 2003-2016 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

19
AUTHORS
View File

@@ -2,10 +2,11 @@ Here are the names of the programs in this package,
each followed by the name(s) of its author(s).
arch: David MacKenzie, Karel Zak
b2sum: Padraig Brady, Samuel Neves
base32: Simon Josefsson
base64: Simon Josefsson
basename: David MacKenzie
cat: Torbjörn Granlund, Richard M. Stallman
cat: Torbjorn Granlund, Richard M. Stallman
chcon: Russell Coker, Jim Meyering
chgrp: David MacKenzie, Jim Meyering
chmod: David MacKenzie, Jim Meyering
@@ -14,16 +15,16 @@ chroot: Roland McGrath
cksum: Q. Frank Xia
comm: Richard M. Stallman, David MacKenzie
coreutils: Alex Deymo
cp: Torbjörn Granlund, David MacKenzie, Jim Meyering
cp: Torbjorn Granlund, David MacKenzie, Jim Meyering
csplit: Stuart Kemp, David MacKenzie
cut: David M. Ihnat, David MacKenzie, Jim Meyering
date: David MacKenzie
dd: Paul Rubin, David MacKenzie, Stuart Kemp
df: Torbjörn Granlund, David MacKenzie, Paul Eggert
df: Torbjorn Granlund, David MacKenzie, Paul Eggert
dir: Richard M. Stallman, David MacKenzie
dircolors: H. Peter Anvin
dirname: David MacKenzie, Jim Meyering
du: Torbjörn Granlund, David MacKenzie, Paul Eggert, Jim Meyering
du: Torbjorn Granlund, David MacKenzie, Paul Eggert, Jim Meyering
echo: Brian Fox, Chet Ramey
env: Richard Mlynarik, David MacKenzie
expand: David MacKenzie
@@ -65,7 +66,7 @@ printf: David MacKenzie
ptx: François Pinard
pwd: Jim Meyering
readlink: Dmitry V. Levin
realpath: Pádraig Brady
realpath: Padraig Brady
rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
rmdir: David MacKenzie
runcon: Russell Coker
@@ -79,9 +80,9 @@ shred: Colin Plumb
shuf: Paul Eggert
sleep: Jim Meyering, Paul Eggert
sort: Mike Haertel, Paul Eggert
split: Torbjörn Granlund, Richard M. Stallman
split: Torbjorn Granlund, Richard M. Stallman
stat: Michael Meskes
stdbuf: Pádraig Brady
stdbuf: Padraig Brady
stty: David MacKenzie
sum: Kayvan Aghaiepour, David MacKenzie
sync: Jim Meyering, Giuseppe Scrivano
@@ -89,11 +90,11 @@ tac: Jay Lepreau, David MacKenzie
tail: Paul Rubin, David MacKenzie, Ian Lance Taylor, Jim Meyering
tee: Mike Parker, Richard M. Stallman, David MacKenzie
test: Kevin Braunsdorf, Matthew Bradburn
timeout: Pádraig Brady
timeout: Padraig Brady
touch: Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, Randy Smith
tr: Jim Meyering
true: Jim Meyering
truncate: Pádraig Brady
truncate: Padraig Brady
tsort: Mark Kettenis
tty: David MacKenzie
uname: David MacKenzie

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,379 +0,0 @@
2008-12-16 Jim Meyering <meyering@redhat.com>
NB: ChangeLog files are no longer manually maintained.
See HACKING for details.
2008-02-07 Jim Meyering <meyering@redhat.com>
We *do* need two different version files.
One for tarball-only, the other to be updated any time we
get a new value of $(VERSION).
* Makefile.am (dist-hook): Create .tarball-version in dist tarball.
* GNUmakefile (_curr-ver): Make git-version-gen use it.
* .gitignore: Ignore it.
Fix a typo in description of size suffixes: s/GB/G/.
* doc/coreutils.texi (od invocation, head invocation, tail invocation):
Spotted by Bert Wesarg.
* NEWS [6.9.90]: Mention the added feature that head, od, split and
tail now accept the standard size suffixes (kB, M, MB, G, GB, and
so on for T, P, Y, Z, and Y) on arguments to selected options.
2008-02-06 Steven Schubiger <schubiger@gmail.com>
mkdir, split: write --verbose output to stdout, not stderr.
* src/mkdir.c (verbose_output): New function.
(announce_mkdir): Use it.
* src/split.c (usage): Update.
* src/split.c (cwrite): Write to stdout, not stderr.
* doc/coreutils.texi (split invocation): Remove the mention
of --verbose output being printed to stderr.
* tests/mkdir/p-v: Redirect stdout, not stderr.
* tests/misc/split-a: Likewise.
* NEWS: Mention this change.
* TODO: Remove this item.
2008-02-04 Jim Meyering <meyering@redhat.com>
* Makefile.maint (announcement): Remove stale comment.
2008-02-02 Jim Meyering <meyering@redhat.com>
Clarify a comment.
* tests/sort/Test.pm: Replace a vague ChangeLog reference with a URL.
2008-01-31 Bob Proulx <bob@proulx.com>
Improve wording of date and time man page.
* man/date.x: Improve compact description of the --date=STRING.
* man/touch.x: Likewise.
Suggested by A. Costa.
2008-01-31 Jim Meyering <meyering@redhat.com>
Remove alignment constraint from the sha*_read_ctx functions.
* lib/sha256.c (set_uint32): New function.
(sha256_read_ctx, sha224_read_ctx): Use it.
* lib/sha512.c (set_uint64): New function.
(sha512_read_ctx, sha384_read_ctx): Use it.
* lib/sha256.h: Remove warning about alignment constraint.
* lib/sha512.h: Likewise.
Prompted by similar changes in gnulib's sha1 and md[45] modules.
Adapt to new version of vc-list-files.
* tests/check.mk (vc_exe_in_TESTS): Adapt to new constraint
that vc-list-files be run only from $(top_srcdir).
Pull vc-list-files from gnulib.
* bootstrap.conf (gnulib_modules): Add vc-list-files.
* build-aux/vc-list-files: Remove file.
Improve the cp/parent-perm test.
* tests/cp/parent-perm: Also check that perms of existing dest
dirs are changed to match those of corresponding src dir
2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
Don't modify argv in dd due to ',' in arguments.
* src/dd.c: Include quotearg.h.
(operand_matches): New function.
(parse_symbols, operand_is): Use it.
(parse_symbols): 1st arg is now const pointer. Don't modify it.
msgid arg is now just the message, not a format.
(scanargs): Add some 'const's to check for problems like the above.
2008-01-30 Jim Meyering <meyering@redhat.com>
* src/c99-to-c89.diff: Adjust remove.c offsets, again.
Now that system.h defines is_empty_dir, include "openat.h".
* src/system.h: Include "openat.h" here, ...
* src/chcon.c: ... not here.
* src/chmod.c: Likewise.
* src/chown-core.c: Likewise.
* src/remove.c: Likewise.
* src/c99-to-c89.diff: Adjust remove.c offsets.
Improve "rmdir --ignore-fail-on-non-empty"
* src/rmdir.c (remove_parents, main): With --ignore-fail-on-non-empty,
suppress a diagnostic also for other errno values, which can arise
with read-only media or when the parent directory has the immutable
attribute (set via chattr +i).
(errno_may_be_empty, ignorable_failure): New functions.
* src/remove.c (is_empty_dir): Move function to ...
* src/system.h (is_empty_dir): ...here, and make it inline.
Suggested by Josselin Mouette in <http://bugs.debian.org/350541>
via Bob Proulx.
* NEWS: Mention the improvement.
2008-01-29 Paul Eggert <eggert@cs.ucla.edu>
Don't modify argv in dd.
* src/dd.c (operand_is): New function.
(scanargs): Use it so that we don't need to modify argv, as a nicety.
Problem reported by Adam Goode in
<http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00264.html>.
2008-01-29 Jim Meyering <meyering@redhat.com>
* Makefile.am (BUILT_SOURCES): Ensure that .version exists.
Reported by Bob Proulx.
2008-01-29 Bob Proulx <bob@proulx.com>
Improve the man pages of --date=STRING for 'date' and 'touch'.
* man/date.x: Add a compact description of the --date=STRING.
* man/touch.x: Likewise.
Reported by A. Costa in http://bugs.debian.org/363011
2008-01-29 Michael Stone <mstone@debian.org>
Improve the description of when dd outputs its final statistics.
* doc/coreutils.texi (dd invocation): Say that dd prints stats
upon normal termination and upon SIGINT.
2008-01-29 Jim Meyering <meyering@redhat.com>
Avoid "make distcheck" failure: newly-created man/*.1 files not removed
* Makefile.am (EXTRA_DIST): Add .version.
(.version): New rule.
(dist-hook): Don't create $(distdir)/.version here, now that it's
being distributed.
* man/Makefile.am (common_dep): Use ../.version, not ../VERSION.
(../VERSION): Remove rule.
* GNUmakefile (dummy): Create .version, not VERSION.
Add an extra "...:= $(shell..." statement to ensure that
.version exists even when the preceding code is not run.
* .gitignore: Remove both .version and VERSION.
ls: don't segfault on files in /proc with an old libselinux
* src/ls.c (gobble_file): Work around a bug in libselinux1-2.0.15
whereby getfilecon returns 0 yet sets the context to NULL.
Reported by Jan Moringen via Michael Stone in
http://bugs.debian.org/463043
* tests/ls/Makefile.am (TESTS): Add proc-selinux-segfault.
* tests/ls/proc-selinux-segfault: Test for the above fix.
* NEWS: Mention the fix.
2008-01-26 Jim Meyering <meyering@redhat.com>
Work around Darwin9's set-GID-like group ownership inheritance.
This avoids another spurious Mac OS 10.5.1 (Darwin 9.1) test failure.
* tests/cp/preserve-gid: Accept a group ID of 0, as well.
Reported by Elias Pipping.
Emit "info coreutils 'PROG invocation'" into the man page,
rather than just "info PROG". The latter would often fail
or simply display the man page.
* man/help2man: Change the template.
Prompted by http://bugs.debian.org/399684
chcon: correct description of --no-dereference (-h) option.
* src/chcon.c (usage): Remove invalid reference to lchown.
Reported by Göran Uddeborg.
Ensure that each version string change propagates to man pages.
* man/Makefile.am (common_dep): Don't depend on configure.ac for
version changes. Instead, depend on ../VERSION.
(../VERSION): New rule.
* Makefile.am (DISTCLEANFILES): Define.
* GNUmakefile: Update ./VERSION.
* .gitignore: List VERSION.
Reported by Sven Joachim.
Avoid cp/preserve-gid test failure on Mac OS 10.5.1 (Darwin 9.1)
* tests/cp/preserve-gid: Set group as well as owner on ".".
Reported by Elias Pipping.
Improve a warning about non-portable "mv" usage.
* doc/coreutils.texi (mv invocation): Adjust the warning: moving a
dir-symlink-specified-with-a-trailing-slash works in a surprising
manner only on some systems. Reported by Tomas Pospisek in
http://bugs.debian.org/343652.
2008-01-26 Mike Frysinger <vapier@gentoo.org>
* src/dircolors.hin (TERM): Add jfbterm.
2008-01-23 Jim Meyering <meyering@redhat.com>
Clean up build-related rules.
* Makefile.cfg (gnulib_dir): Update comment.
* Makefile.maint (announcement) [cl_date, utc_date]: Don't set
now-unused variables.
* TODO: Update the note on getgrouplist.
2008-01-23 Zvi Har'El <rl@math.technion.ac.il>
Add a ";", so "make install" works with --enable-install-program=su.
* src/Makefile.am (install_su): Add a semicolon. (tiny change)
2008-01-23 Jim Meyering <meyering@redhat.com>
Avoid misinterpreting mgetgroups failure in running root-only tests.
* src/setuidgid.c (main): Don't misinterpret as size_t an error
return from mgetgroups. Reported by Theodoros V. Kalamatianos.
* README: Remove/convert a few stray mentions of CVS.
2008-01-22 Jim Meyering <meyering@redhat.com>
Require automake-1.10.1, for its support of dist-lzma.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1.
Version 6.10.
* NEWS: Record release date.
* README-hacking: Update to reflect existence of automake-1.10.1.
2008-01-18 Jim Meyering <meyering@redhat.com>
Update README.
* README: Remove a note about failing tests on SunOS 4.
On Mac OS 10.5.1 (Darwin 9.1), you'll need --disable-acl.
(Running tests as root): Recommend using "check-root", not "check".
2008-01-17 Jim Meyering <meyering@redhat.com>
Do not define-away __attribute__ when __STRICT_ANSI__ is set.
* src/system.h (__attribute__): Remove the __STRICT_ANSI__ disjunct.
It has been unnecessary since approximately gcc-2.6, and now, leaving
it would cause gcc -Werror -ansi to fail to compile csplit.c.
* gl/lib/randread.c (__attribute__): Likewise.
2008-01-16 Jim Meyering <meyering@redhat.com>
* NEWS: Mention the configure.ac fix.
* TODO: Add an introduction.
Remove a few entries. Update a few others.
2008-01-13 Jim Meyering <meyering@redhat.com>
Remove each output redirection target before writing to it.
* tests/check.mk (vc_exe_in_TESTS): Remove t1 and t2 _first_,
in case they exist beforehand and are not writable.
* build-aux/check.mk (am__check_pre): Likewise, remove $@-t.
2008-01-13 Elias Pipping <pipping@gentoo.org>
* configure.ac: Correct a non-portable use of sed.
2008-01-12 Mike Frysinger <vapier@gentoo.org>
* src/dircolors.hin (image formats): Add the .svg suffix.
2008-01-12 Jim Meyering <meyering@redhat.com>
Use new version of announce-gen.
* Makefile.maint (announcement): Remove use of the
--gnulib-snapshot-time-stamp option.
Use new --gnulib-version option instead.
(gnulib-version): New variable.
2008-01-11 Jim Meyering <meyering@redhat.com>
* Version 6.9.92.
* tests/tr/Test.pm: Prefer en_US.ISO-8859-1 to en_US.iso88591.
Suggestions from James Youngman and Pádraig Brady in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218/focus=12227
2008-01-10 Jim Meyering <meyering@redhat.com>
* README-hacking: Add Git to the list of required tools.
2008-01-08 Paul Eggert <eggert@cs.ucla.edu>
Fix a minor race condition when using cp -p --parents.
* src/cp.c (make_dir_parents_private): If stat fails on the parent
directory, do not add it to the list of directories whose modes
might need fixing later. Also, do not bother invoking 'stat'
unless the stat results might be needed later.
2008-01-08 Jim Meyering <meyering@redhat.com>
parent-perm: avoid a bizarre test failure.
* tests/cp/parent-perm: Accommodate the situation in which
chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit.
Remove uses of now-undefined Makefile variable.
* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses
of no-longer-defined variable, $(LIB_ACL_TRIVIAL).
2008-01-07 Jim Meyering <meyering@redhat.com>
cp (but not copy.c): plug a small leak.
* src/cp.c (do_copy) [--parents]: Free the attribute list.
Make a racy test failure less likely to happen.
* tests/misc/tty-eof: Uncomment a debug "warn".
This change happens to make this test far less likely to fail.
With that statement commented out, this test would fail about
20% of the time on my desktop. Now, it's gone 100 iterations
in a row with no failure.
* NEWS: Mention the cp bug fix.
2008-01-07 Jan Blunck <jblunck@suse.de>
cp --parents: don't use uninitialized memory when restoring permissions
* src/cp.c (make_dir_parents_private): Always stat each source
directory, in case its permissions are required in re_protect,
when setting permissions of a just-created destination directory.
2008-01-07 Jim Meyering <meyering@redhat.com>
cp: add a test for today's bug fix.
* tests/cp/parent-perm: New script. Test today's change.
Based on reproducer from Jan Blunck.
* tests/cp/Makefile.am (TESTS): Add parent-perm.
2008-01-06 Jim Meyering <meyering@redhat.com>
touch: add a test for today's change.
* tests/touch/now-owned-by-other: New script. Test today's change.
* tests/touch/Makefile.am (TESTS): Add now-owned-by-other.
* tests/Makefile.am (all_t): Add td, a new root-only test.
(td): New target.
* NEWS: Mention the improvement.
2008-01-06 Paul Eggert <eggert@cs.ucla.edu>
touch: ignore "-d now" option, when appropriate
* src/touch.c (main): Treat "-d now" as if it were absent, if
neither -a nor -m is specified. Problem reported by Dan Jacobson in:
http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00010.html
2008-01-05 Jim Meyering <meyering@redhat.com>
Avoid tr case-conversion failure in some locales.
* src/tr.c (skip_construct): New function.
(main): When processing a pair of case-converting classes, don't
iterate through the elements of each [:upper:] or [:lower:] class.
Reported by Gerald Pfeifer in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218>.
* tests/tr/Test.pm [tolower-F]: New test for the above fix.
[upcase-xtra, dncase-xtra]: New tests, for a related code path.
* NEWS: Mention the tr bug fix.
2008-01-02 Jim Meyering <jim@meyering.net>
* .gitignore: Ignore lzma-compressed files, too.
Update copyright date.
* tests/sample-test: Likewise.
* doc/coreutils.texi: Likewise.
-----
Copyright (C) 2008-2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice
and this notice are preserved.

22
HACKING
View File

@@ -9,7 +9,7 @@ On Debian-based ones install the "git-core" package.
Then run "git --version". If that says it's older than
version 1.4.4, then you'd do well to get a newer version.
At worst, just download the latest stable release from
http://git.or.cz/ and build from source.
https://git-scm.com/ and build from source.
For details on building the programs in this package, see
the file, README-hacking.
@@ -224,7 +224,7 @@ keep the maximum line length at 72 or smaller, so that the generated
ChangeLog lines, each with its leading TAB, will not exceed 80 columns.
As for the ChangeLog-style content, please follow these guidelines:
http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html
https://www.gnu.org/prep/standards/standards.html#Change-Logs
Try to make the summary line fit one of the following forms:
@@ -389,7 +389,7 @@ Send patches to the address listed in --help output
Please follow the guidelines in the "Sending your patches." section of
git's own SubmittingPatches:
http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/SubmittingPatches
https://github.com/git/git/blob/master/Documentation/SubmittingPatches
Add documentation
@@ -406,7 +406,7 @@ active voice, not a passive one. I.e., say "print the frobnozzle",
not "the frobnozzle will be printed".
Please add comments per the GNU Coding Standard:
http://www.gnu.org/prep/standards/html_node/Comments.html
https://www.gnu.org/prep/standards/html_node/Comments.html
Minor syntactic preferences
@@ -418,7 +418,7 @@ Minor syntactic preferences
character ;-) ]
In writing arithmetic comparisons, use "<" and "<=" rather than
">" and ">=". For some justification, read this:
http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126
http://www.gelato.unsw.edu.au/archives/git/0505/4507.html
const placement:
Write "Type const *var", not "const Type *var".
@@ -444,7 +444,7 @@ as possible. If you add a new test file (as opposed to adding a test to
an existing test file) add the new test file to 'tests/local.mk'.
Note to run tests/misc/new-test in isolation you can do:
make TESTS=tests/misc/new-test SUBDIRS=. VERBOSE=yes
make check TESTS=tests/misc/new-test SUBDIRS=. VERBOSE=yes
Variables that are significant for tests with their default values are:
@@ -480,18 +480,18 @@ The forms to choose from are in gnulib's doc/Copyright/ directory.
If you want to assign a single change, you should use the file,
doc/Copyright/request-assign.changes:
http://www.gnu.org/software/gnulib/Copyright/request-assign.changes
https://www.gnu.org/software/gnulib/Copyright/request-assign.changes
If you would like to assign past and future contributions to a project,
you'd use doc/Copyright/request-assign.future:
http://www.gnu.org/software/gnulib/Copyright/request-assign.future
https://www.gnu.org/software/gnulib/Copyright/request-assign.future
You may make assignments for up to four projects at a time.
In case you're wondering why we bother with all of this, read this:
http://www.gnu.org/licenses/why-assign.html
https://www.gnu.org/licenses/why-assign.html
Run "make syntax-check", or even "make distcheck"
@@ -526,7 +526,7 @@ to configure your editor to highlight any offending characters in the
files you edit. If you use Emacs, customize its font-lock mode
or use its WhiteSpace mode:
http://www.emacswiki.org/emacs/WhiteSpace
https://www.emacswiki.org/emacs/WhiteSpace
If you use vim, add this to ~/.vimrc:
@@ -619,7 +619,7 @@ Then just open the index.html file (in the generated lcov-html directory)
in your favorite web browser.
========================================================================
Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copyright (C) 2009-2017 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or

View File

@@ -1,6 +1,6 @@
# Make coreutils. -*-Makefile-*-
# Copyright (C) 1990-2016 Free Software Foundation, Inc.
# Copyright (C) 1990-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,23 +20,9 @@ ALL_RECURSIVE_TARGETS =
SUBDIRS = po . gnulib-tests
changelog_etc = \
ChangeLog-2005 \
ChangeLog-2006 \
ChangeLog-2007 \
ChangeLog-2008 \
build-aux/ChangeLog-2007 \
doc/ChangeLog-2007 \
lib/ChangeLog-2007 \
m4/ChangeLog-2007 \
old/fileutils/ChangeLog \
old/fileutils/ChangeLog-1997 \
old/fileutils/NEWS \
old/sh-utils/ChangeLog \
old/sh-utils/ChangeLog.0 \
old/sh-utils/NEWS \
old/textutils/ChangeLog \
old/textutils/NEWS \
po/ChangeLog-2007
m4/ChangeLog-2007
EXTRA_DIST = \
$(changelog_etc) \
@@ -110,7 +96,7 @@ dist-hook: gen-ChangeLog
$(AM_V_GEN)date +%s > $(distdir)/.timestamp
$(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/Makefile.in
gen_start_date = 2008-02-08
gen_start_ver = 8.15
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
@@ -118,9 +104,11 @@ gen-ChangeLog:
test -e "$$log_fix" \
&& amend_git_log="--amend=$$log_fix" \
|| amend_git_log=; \
$(top_srcdir)/build-aux/gitlog-to-changelog \
$$amend_git_log --since=$(gen_start_date) > $(distdir)/cl-t && \
{ rm -f $(distdir)/ChangeLog && \
$(top_srcdir)/build-aux/gitlog-to-changelog $$amend_git_log \
-- v$(gen_start_ver)~.. > $(distdir)/cl-t && \
{ printf '\n\nSee the source repo for older entries\n' \
>> $(distdir)/cl-t && \
rm -f $(distdir)/ChangeLog && \
mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
fi

253
NEWS
View File

@@ -1,5 +1,224 @@
GNU coreutils NEWS -*- outline -*-
* Noteworthy changes in release 8.27 (2017-03-08) [stable]
** Bug fixes
cp --parents will now set an SELinux context for created directories,
as appropriate for the -a, --preseve=context, or -Z options.
[bug present since SELinux support added in coreutils-6.10]
date again converts from a specified time zone. Previously output was
not converted to the local time zone, and remained in the specified one.
[bug introduced in coreutils-8.26]
Commands like 'cp --no-dereference -l A B' are no longer quiet no-ops
when A is a regular file and B is a symbolic link that points to A.
[bug introduced in fileutils-4.0]
factor no longer goes into an infinite loop for certain numbers like
158909489063877810457 and 222087527029934481871.
[bug introduced in coreutils-8.20]
stat and tail now know about the "rdt" file system, which is an interface
to Resource Director Technology. stat -f --format=%T now reports the
file system type, and tail -f uses inotify.
tail no longer prints redundant file headers with interleaved inotify events,
which could be triggered especially when tail was suspended and resumed.
[bug introduced with inotify support added in coreutils-7.5]
timeout no longer has a race that may terminate the wrong process.
The race is unlikely, as timeout(1) needs to receive a signal right
after the command being monitored finishes. Also the system needs
to have reallocated that command's pid in that short time window.
[bug introduced when timeout was added in coreutils-7.0]
wc --bytes --files0-from now correctly reports byte counts.
Previously it may have returned values that were too large,
depending on the size of the first file processed.
[bug introduced in coreutils-8.24]
** Improvements
The new 'date' option --rfc-email is now the long form for -R.
The new option spelling is intended to avoid the need to track the
Internet RFC number for email dates (currently RFC 5322). The old
option spellings --rfc-2822 and --rfc-822 still work.
date now outputs "-00" for a numeric time zone if the time is UTC
and the time zone abbreviation begins with "-", indicating that the
time zone is indeterminate.
nproc now honors the OMP_THREAD_LIMIT environment variable to
set the maximum returned value. OMP_NUM_THREADS continues to
set the minimum returned value, but is updated to support the
nested level syntax allowed in this variable.
stty now validates arguments before interacting with the device,
ensuring there are no side effects to specifying an invalid option.
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.
That is, there is no longer a brief moment when B does not exist.
** New features
expand and unexpand now support specifying a tab size to use
after explicitly specified tab stops, by prefixing the last
specified number like --tabs=2,4,/8.
* Noteworthy changes in release 8.26 (2016-11-30) [stable]
** Bug fixes
cp, mv, and install no longer run into undefined behavior when
handling ACLs on Cygwin and Solaris platforms. [bug introduced in
coreutils-8.24]
cp --parents --no-preserve=mode, no longer copies permissions from source
directories, instead using default permissions for created directories.
[bug introduced in coreutils-5.93]
chcon, chgrp, chmod, chown, du, and rm, or specifically utilities
using the FTS interface, now diagnose failures returned by readdir().
[this bug was inherent in the use of fts: thus, for rm the bug was
introduced in coreutils-8.0. du, chmod, chgrp and chown started using
fts in 6.0. chcon was added in coreutils-6.9.91 with fts support. ]
date, du, ls, and pr no longer mishandle time zone abbreviations on
System V style platforms where this information is available only
in the global variable 'tzname'. [bug introduced in coreutils-8.24]
factor again outputs immediately when numbers are input interactively.
[bug introduced in coreutils-8.24]
head no longer tries to process non-seekable input as seekable,
which resulted in failures on FreeBSD 11 at least.
[bug introduced in coreutils-8.24]
install -DZ and mkdir -pZ now set default SELinux context correctly even if
two or more directories nested in each other are created and each of them
defaults to a different SELinux context.
ls --time-style no longer mishandles '%%b' in formats.
[bug introduced in coreutils-7.2]
md5sum --check --ignore-missing no longer treats files with checksums
starting with "00" as missing. This also affects sha*sum.
[bug introduced with the --ignore-missing feature in coreutils-8.25]
nl now resets numbering for each page section rather than just for each page.
[This bug was present in "the beginning".]
pr now handles specified separator strings containing tabs correctly.
Previously it would have output random data from memory.
[This bug was detected with ASAN and present in "the beginning".]
sort -h -k now works even in locales that use blank as thousands separator.
stty --help no longer outputs extraneous gettext header lines
for translated languages. [bug introduced in coreutils-8.24]
stty "sane" again sets "susp" to ^z on Solaris, and leaves "swtch" undefined.
[This bug previously fixed only on some older Solaris systems]
seq now immediately exits upon write errors.
[This bug was present in "the beginning".]
tac no longer crashes when there are issues reading from non-seekable inputs.
[bug introduced in coreutils-8.15]
tail -F now continues to process initially untailable files that are replaced
by a tailable file. This was handled correctly when inotify was available,
and is now handled correctly in all cases.
[bug introduced in fileutils-4.0h]
tail -f - 'untailable file' will now terminate when there is no more data
to read from stdin. Previously it behaved as if --retry was specified.
[This bug was present in "the beginning".]
tail -f 'remote file' will now avoid outputting repeated data on network
file systems that misreport file sizes through stale metadata.
[This bug was present in "the beginning" but exacerbated in coreutils-8.24]
tail -f --retry 'missing file' will now process truncations of that file.
Previously truncation was ignored thus not outputting new data in the file.
[bug introduced in coreutils-5.3.0]
tail -f will no longer continually try to open inaccessible files,
only doing so if --retry is specified.
[This bug was present in "the beginning".]
yes now handles short writes, rather than assuming all writes complete.
[bug introduced in coreutils-8.24]
** Changes in behavior
rm no longer accepts shortened variants of the --no-preserve-root option.
seq no longer accepts 0 value as increment, and now also rejects NaN
values for any argument.
stat now outputs nanosecond information for timestamps even if
they are out of localtime range.
sort, tail, and uniq now support traditional usage like 'sort +2'
and 'tail +10' on systems conforming to POSIX 1003.1-2008 and later.
The 2008 edition of POSIX dropped the requirement that arguments
like '+2' must be treated as file names.
** Improvements
dd now warns about counts specified with a 0x "prefix", since dd will
interpret those as a zero multiplier rather than a hex constant.
The warning suggests to use 00x if a zero multiplier is really intended.
df now filters the system mount list more efficiently, with 20000
mount entries now being processed in about 1.1s compared to 1.7s.
du, shuf, sort, and uniq no longer fail to process a specified file
when their stdin is closed, which would have happened with glibc >= 2.14.
install -Z now also sets the default SELinux context for created directories.
ls is now fully responsive to signals until the first escape sequence is
written to a terminal.
ls now aligns quoted items with non quoted items, which is easier to read,
and also better indicates that the quote is not part of the actual name.
stat and tail now know about these file systems:
"balloon-kvm-fs" KVM dynamic RAM allocation support,
"cgroup2" Linux Control Groups V2 support,
"daxfs" Optical media file system,
"m1fs" A Plexistor file system,
"prl_fs" A parallels file system,
"smb2" Samba for SMB protocol V2,
"wslfs" Windows Subsystem for Linux,
"zsmalloc" Linux compressed swap support,
stat -f --format=%T now reports the file system type, and
tail -f uses polling for "prl_fs" and "smb2", and inotify for others.
stat --format=%N for quoting file names now honors the
same QUOTING_STYLE environment variable values as ls.
** New programs
b2sum is added to support the BLAKE2 digest algorithm with
a similar interface to the existing md5sum and sha1sum, etc. commands.
** New Features
comm now accepts the --total option to output a summary at the end.
date now accepts the --debug option, to annotate the parsed date string,
display timezone information, and warn about potential misuse.
date now accepts the %q format to output the quarter of the year.
* Noteworthy changes in release 8.25 (2016-01-20) [stable]
** Bug fixes
@@ -1327,7 +1546,7 @@ GNU coreutils NEWS -*- outline -*-
** Bug fixes
cp -u no longer does unnecessary copying merely because the source
has finer-grained time stamps than the destination.
has finer-grained timestamps than the destination.
od now prints floating-point numbers without losing information, and
it no longer omits spaces between floating-point columns in some cases.
@@ -1384,7 +1603,7 @@ GNU coreutils NEWS -*- outline -*-
stat's %X, %Y, and %Z directives once again print only the integer
part of seconds since the epoch. This reverts a change from
coreutils-8.6, that was deemed unnecessarily disruptive.
To obtain a nanosecond-precision time stamp for %X use %.X;
To obtain a nanosecond-precision timestamp for %X use %.X;
if you want (say) just 3 fractional digits, use %.3X.
Likewise for %Y and %Z.
@@ -1831,7 +2050,7 @@ GNU coreutils NEWS -*- outline -*-
** Bug fixes
cp, mv now ignore failure to preserve a symlink time stamp, when it is
cp, mv now ignore failure to preserve a symlink timestamp, when it is
due to their running on a kernel older than what was implied by headers
and libraries tested at configure time.
[bug introduced in coreutils-7.5]
@@ -1947,7 +2166,7 @@ GNU coreutils NEWS -*- outline -*-
using copy-on-write (COW). This is currently only supported within
a btrfs file system.
cp now preserves time stamps on symbolic links, when possible
cp now preserves timestamps on symbolic links, when possible
sort accepts a new option, --human-numeric-sort (-h): sort numbers
while honoring human readable suffixes like KiB and MB etc.
@@ -3354,7 +3573,7 @@ GNU coreutils NEWS -*- outline -*-
expr now detects integer overflow when converting strings to integers,
rather than silently wrapping around.
ls now refuses to generate time stamps containing more than 1000 bytes, to
ls now refuses to generate timestamps containing more than 1000 bytes, to
foil potential denial-of-service attacks on hosts with very large stacks.
"mkdir -m =+x dir" no longer ignores the umask when evaluating "+x",
@@ -3609,7 +3828,7 @@ GNU coreutils NEWS -*- outline -*-
done reading it. This problem cannot occur unless '-m' is used.
When outside the default POSIX locale, the 'who' and 'pinky'
commands now output time stamps like "2004-06-21 13:09" instead of
commands now output timestamps like "2004-06-21 13:09" instead of
the traditional "Jun 21 13:09".
pwd now works even when run from a working directory whose name
@@ -3619,10 +3838,10 @@ GNU coreutils NEWS -*- outline -*-
and -t is now a short name for their --target-directory option.
cp -pu and mv -u (when copying) now don't bother to update the
destination if the resulting time stamp would be no newer than the
preexisting time stamp. This saves work in the common case when
destination if the resulting timestamp would be no newer than the
preexisting timestamp. This saves work in the common case when
copying or moving multiple times to the same destination in a file
system with a coarse time stamp resolution.
system with a coarse timestamp resolution.
cut accepts a new option, --complement, to complement the set of
selected bytes, characters, or fields.
@@ -3668,7 +3887,7 @@ GNU coreutils NEWS -*- outline -*-
Dates like 'January 32' with out-of-range components are now rejected.
Dates can have fractional time stamps like 2004-02-27 14:19:13.489392193.
Dates can have fractional timestamps like 2004-02-27 14:19:13.489392193.
Dates can be entered via integer counts of seconds since 1970 when
prefixed by '@'. For example, '@321' represents 1970-01-01 00:05:21 UTC.
@@ -3684,7 +3903,7 @@ GNU coreutils NEWS -*- outline -*-
TZ="America/New_York" date --date='TZ="Europe/Paris" 2004-10-31 06:30'
'date' has a new option --iso-8601=ns that outputs
nanosecond-resolution time stamps.
nanosecond-resolution timestamps.
echo -e '\xHH' now outputs a byte whose hexadecimal value is HH,
for compatibility with bash.
@@ -3791,7 +4010,7 @@ GNU coreutils NEWS -*- outline -*-
'cp -d' now works as required even on systems like OSF V5.1 that
declare stat and lstat as 'static inline' functions.
time stamps output by stat now include actual fractional seconds,
timestamps output by stat now include actual fractional seconds,
when available -- or .0000000 for files without that information.
seq no longer infloops when printing 2^31 or more numbers.
@@ -4349,14 +4568,14 @@ point at which the packages merged to form the coreutils:
* ls -n now implies -l, as per POSIX.
* ls can now display dates and times in one of four time styles:
- The 'full-iso' time style gives full ISO-style time stamps like
- The 'full-iso' time style gives full ISO-style timestamps like
'2001-05-14 23:45:56.477817180 -0700'.
- The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
- The 'iso' time style gives ISO-style timestamps like '2001-05-14 '
and '05-14 23:45'.
- The 'locale' time style gives locale-dependent time stamps like
- The 'locale' time style gives locale-dependent timestamps like
'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
- The 'posix-iso' time style gives traditional POSIX-locale
time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
timestamps like 'May 14 2001' and 'May 14 23:45' unless the user
specifies a non-POSIX locale, in which case it uses ISO-style dates.
This is the default.
@@ -4463,7 +4682,7 @@ packages, see ./old/*/NEWS.
========================================================================
Copyright (C) 2001-2016 Free Software Foundation, Inc.
Copyright (C) 2001-2017 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or

45
README
View File

@@ -7,8 +7,8 @@ arbitrary limits.
The programs that can be built with this package are:
[ arch base32 base64 basename cat chcon chgrp chmod chown chroot cksum comm
coreutils cp csplit cut date dd df dir dircolors dirname du echo env
[ arch b2sum base32 base64 basename cat chcon chgrp chmod chown chroot cksum
comm coreutils cp csplit cut date dd df dir dircolors dirname du echo env
expand expr factor false fmt fold groups head hostid hostname id install
join kill link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl
nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd
@@ -23,12 +23,10 @@ If you obtained this file as part of a "git clone", then see the
README-hacking file. If this file came to you as part of a tar archive,
then see the file INSTALL for compilation and installation instructions.
These programs are intended to conform to POSIX (with BSD and other
extensions), like the rest of the GNU system. By default they conform
to older POSIX (1003.2-1992), and therefore support obsolete usages
like "head -10" and "chown owner.group file". This default is
overridden at build-time by the value of <unistd.h>'s _POSIX2_VERSION
macro, and this in turn can be overridden at runtime as described in
Like the rest of the GNU system, these programs mostly conform to
POSIX, with BSD and other extensions. For closer conformance, or
conformance to a particular POSIX version, set the POSIXLY_CORRECT
and the _POSIX2_VERSION environment variables, as described in
the documentation under "Standards conformance".
The ls, dir, and vdir commands are all separate executables instead of
@@ -59,29 +57,6 @@ files (man/*.x) are welcome. However, the authoritative documentation
is in texinfo form in the doc directory.
*********************************************
On Mac OS X 10.5.1 (Darwin 9.1), test failure
---------------------------------------------
Mac OS X 10.5.1 (Darwin 9.1) provides only partial (and incompatible)
ACL support, so although "./configure && make" succeeds, "make check"
exposes numerous failures. The solution is to turn off ACL support
manually via "./configure --disable-acl". For details, see
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12292/focus=12318>.
*****************************************
Test failure with NLS and gettext <= 0.17
-----------------------------------------
Due to a conflict between libintl.h and gnulib's new xprintf module,
when you configure with NLS support, and with a gettext installation
older than 0.17.1 (not yet released, at the time of this writing),
then some tests fail, at least on NetBSD 1.6. To work around it in
the mean time, you can configure with --disable-nls. For details,
see <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/12015/>.
*********************
Pre-C99 build failure
---------------------
@@ -212,7 +187,7 @@ coreutils@gnu.org including as much description and justification
as you can. Based on the feedback that generates, you may be able to
convince us that it's worth adding. Please also consult the list of
previously discussed but ultimately rejected feature requests at:
http://www.gnu.org/software/coreutils/rejected_requests.html
https://www.gnu.org/software/coreutils/rejected_requests.html
WARNING: Now that we use the ./bootstrap script, you should not run
@@ -231,8 +206,8 @@ When reporting bugs, please include in the subject line both the package
name/version and the name of the program for which you found a problem.
For general documentation on the coding and usage standards
this distribution follows, see the GNU Coding Standards,
http://www.gnu.org/prep/standards_toc.html.
this distribution follows, see the GNU Coding Standards at:
https://www.gnu.org/prep/standards/
For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.
@@ -243,7 +218,7 @@ the address on the last line of --help output.
========================================================================
Copyright (C) 1998-2016 Free Software Foundation, Inc.
Copyright (C) 1998-2017 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or

View File

@@ -72,15 +72,14 @@ if the problem seems to originate in a gnulib-provided file.
If you develop a fix or a new feature, please send it to the
appropriate bug-reporting address as reported by the --help option of
each program. One way to do this is to use vc-dwim
<http://www.gnu.org/software/vc-dwim/>), as follows.
<https://www.gnu.org/software/vc-dwim/>), as follows.
Run the command "vc-dwim --help", copy its definition of the
"git-changelog-symlink-init" function into your shell, and then run
this function at the top-level directory of the package.
Run the command "vc-dwim --initialize" from the top-level directory
of this package's git-cloned hierarchy.
Edit the (empty) ChangeLog file that this command creates, creating a
properly-formatted entry according to the GNU coding standards
<http://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
<https://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
Make your changes.
@@ -94,7 +93,7 @@ each program. One way to do this is to use vc-dwim
-----
Copyright (C) 2002-2016 Free Software Foundation, Inc.
Copyright (C) 2002-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,21 +1,13 @@
As of 2002-09-01, the GNU fileutils, textutils, and sh-utils
packages have been merged into one, called the GNU coreutils.
See http://www.gnu.org/software/coreutils/ for a description.
On 2002-09-01, the GNU fileutils, textutils, and sh-utils
packages were merged into one, called the GNU coreutils.
See https://www.gnu.org/software/coreutils/coreutils.html for a description.
Here's the FAQ list:
http://www.gnu.org/software/coreutils/faq/
https://www.gnu.org/software/coreutils/faq/
For information on the mailing lists associated with the
coreutils package, see these:
coreutils package, including archive locations, see these:
http://mail.gnu.org/mailman/listinfo/coreutils-announce
http://mail.gnu.org/mailman/listinfo/bug-coreutils
http://mail.gnu.org/mailman/listinfo/coreutils
mailing list archives are here:
http://news.gmane.org/gmane.comp.gnu.coreutils.announce
http://news.gmane.org/gmane.comp.gnu.core-utils.bugs (up to the minute)
http://mail.gnu.org/pipermail/bug-coreutils/ (updated every 12 hours)
http://news.gmane.org/gmane.comp.gnu.coreutils.general
http://mail.gnu.org/pipermail/coreutils/ (updated every 12 hours)
https://lists.gnu.org/mailman/listinfo/coreutils-announce
https://lists.gnu.org/mailman/listinfo/bug-coreutils
https://lists.gnu.org/mailman/listinfo/coreutils

View File

@@ -1,17 +1,17 @@
This gives some notes on obtaining the tools required for development.
I.e., the tools checked for by the bootstrap script and include:
- Autoconf <http://www.gnu.org/software/autoconf/>
- Automake <http://www.gnu.org/software/automake/>
- Bison <http://www.gnu.org/software/bison/>
- Gettext <http://www.gnu.org/software/gettext/>
- Git <http://git.or.cz/>
- Gperf <http://www.gnu.org/software/gperf/>
- Gzip <http://www.gnu.org/software/gzip/>
- Autoconf <https://www.gnu.org/software/autoconf/>
- Automake <https://www.gnu.org/software/automake/>
- Bison <https://www.gnu.org/software/bison/>
- Gettext <https://www.gnu.org/software/gettext/>
- Git <https://git-scm.com/>
- Gperf <https://www.gnu.org/software/gperf/>
- Gzip <https://www.gnu.org/software/gzip/>
- Perl <http://www.cpan.org/>
- Rsync <http://samba.anu.edu.au/rsync/>
- Tar <http://www.gnu.org/software/tar/>
- Texinfo <http://www.gnu.org/software/texinfo/>
- Rsync <https://rsync.samba.org/>
- Tar <https://www.gnu.org/software/tar/>
- Texinfo <https://www.gnu.org/software/texinfo/>
Note please try to install/build official packages for your system.
If these programs are not available use the following instructions

View File

@@ -134,11 +134,11 @@ Once all the builds and tests have passed,
* Send the announcement email message (signed with the release key)
* Approve the announcement here:
http://lists.gnu.org/mailman/admindb/coreutils-announce
https://lists.gnu.org/mailman/admindb/coreutils-announce
* After each non-alpha release, update the on-line manual accessible via
http://www.gnu.org/software/coreutils/manual/
https://www.gnu.org/software/coreutils/manual/
by running this:

View File

@@ -1,7 +1,7 @@
#! /bin/bash
# Convert this package for use with valgrind.
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -228,7 +228,6 @@ Gerald Pfeifer gerald@pfeifer.com
Gerhard Poul gpoul@gnu.org
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
Glen Lenker glen.lenker@gmail.com
Göran Uddeborg goeran@uddeborg.se
GOTO Masanori gotom@debian.or.jp
Greg Louis glouis@dynamicro.on.ca
Greg McGary gkm@gnu.org
@@ -322,6 +321,7 @@ Jon Peatfield J.S.Peatfield@damtp.cam.ac.uk
Joost van Baal joostvb@xs4all.nl
Jordi Pujol jordipujolp@gmail.com
Jorge Stolfi stolfi@ic.unicamp.br
Josef Cejka jcejka@suse.com
Joseph D. Wagner joe@josephdwagner.info
Joseph S. Myers jsm28@cam.ac.uk
Josh Triplett josh@freedesktop.org
@@ -330,6 +330,7 @@ Josselin Mouette joss@debian.org
Juan F. Codagnone juam@arnet.com.ar
Juan M. Guerrero st001906@hrz1.hrz.tu-darmstadt.de
Julian Bradfield jcb@inf.ed.ac.uk
Julian Büning julian.buening@rwth-aachen.de
Jungshik Shin jshin@pantheon.yale.edu
Juraj Marko jmarko@redhat.com
Jürgen Fluk louis@dachau.marco.de
@@ -514,7 +515,6 @@ Petter Reinholdtsen pere@hungry.com
Phelippe Neveu pneveu@pcigeomatics.com
Phil Richards phil.richards@vf.vodafone.co.uk
Philipp Gortan gortan@gmail.com
Philipp Thomas pth@suse.de
Philippe De Muyter phdm@macqel.be
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
Phillip Jones mouse@datastacks.com
@@ -558,6 +558,7 @@ Ross Ridge rridge@calum.csclub.uwaterloo.ca
Rudolf Kastl rkastl@redhat.com
Sahil Amoli sahilamoli@gmail.com
Sami Farin sfarin@ratol.fi
Samuel Neves sneves@dei.uc.pt
Samuel Tardieu sam@rfc1149.net
Samuel Thibault samuel.thibault@ens-lyon.org
Samuli Karkkainen Samuli.Karkkainen@hut.fi
@@ -639,7 +640,6 @@ Uwe H. Steinfeld usteinfeld@gmx.net
Vesselin Atanasov vesselin@bgnet.bg
Ville Skyttä ville.skytta@iki.fi
Vin Shelton acs@alumni.princeton.edu
Vincent Lefevre vincent@vinc17.org
Vineet Chadha chadha@acis.ufl.edu
Vitali Lovich vlovich@gmail.com
Vitaly A. Ostanin vyt@altlinux.org

6
TODO
View File

@@ -67,10 +67,6 @@ lib/strftime.c: Since %N is the only format that we need but that
would expand /%(-_)?\d*N/ to the desired string and then pass the
resulting string to glibc's strftime.
unexpand: [http://www.opengroup.org/onlinepubs/007908799/xcu/unexpand.html]
printf 'x\t \t y\n'|unexpand -t 8,9 should print its input, unmodified.
printf 'x\t \t y\n'|unexpand -t 5,8 should print "x\ty\n"
sort: Investigate better sorting algorithms; see Knuth vol. 3.
We tried list merge sort, but it was about 50% slower than the
@@ -150,7 +146,7 @@ pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer
-----
Copyright (C) 2002-2016 Free Software Foundation, Inc.
Copyright (C) 2002-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,10 +1,10 @@
#! /bin/sh
# Print a version string.
scriptversion=2014-12-08.12; # UTC
scriptversion=2016-11-03.18; # UTC
# Bootstrap this package from checked-out sources.
# Copyright (C) 2003-2016 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,7 +42,7 @@ export LC_ALL
local_gl_dir=gl
# Honour $PERL, but work even if there is none
# Honor $PERL, but work even if there is none.
PERL="${PERL-perl}"
me=$0
@@ -418,28 +418,30 @@ sort_ver() { # sort -V is not generally available
done
}
get_version_sed='
# Move version to start of line.
s/.*[v ]\([0-9]\)/\1/
# Skip lines that do not start with version.
/^[0-9]/!d
# Remove characters after the version.
s/[^.a-z0-9-].*//
# The first component must be digits only.
s/^\([0-9]*\)[a-z-].*/\1/
#the following essentially does s/5.005/5.5/
s/\.0*\([1-9]\)/.\1/g
p
q'
get_version() {
app=$1
$app --version >/dev/null 2>&1 || { $app --version; return 1; }
$app --version 2>&1 |
sed -n '# Move version to start of line.
s/.*[v ]\([0-9]\)/\1/
# Skip lines that do not start with version.
/^[0-9]/!d
# Remove characters after the version.
s/[^.a-z0-9-].*//
# The first component must be digits only.
s/^\([0-9]*\)[a-z-].*/\1/
#the following essentially does s/5.005/5.5/
s/\.0*\([1-9]\)/.\1/g
p
q'
$app --version 2>&1 | sed -n "$get_version_sed"
}
check_versions() {
@@ -788,7 +790,7 @@ symlink_to_dir()
# Leave any existing symlink alone, if it already points to the source,
# so that broken build tools that care about symlink times
# aren't confused into doing unnecessary builds. Conversely, if the
# existing symlink's time stamp is older than the source, make it afresh,
# existing symlink's timestamp is older than the source, make it afresh,
# so that broken tools aren't confused into skipping needed builds. See
# <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
test -h "$dst" &&
@@ -1021,6 +1023,6 @@ echo "$0: done. Now you can run './configure'."
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

View File

@@ -1,6 +1,6 @@
# Bootstrap configuration.
# Copyright (C) 2006-2016 Free Software Foundation, Inc.
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,8 +35,8 @@ gnulib_modules="
assert
autobuild
backupfile
base64
base32
base64
buffer-lcm
c-strcase
c-strtod
@@ -88,6 +88,7 @@ gnulib_modules="
filemode
filenamecat
filevercmp
flexmember
fnmatch-gnu
fopen-safer
fprintftime
@@ -216,10 +217,10 @@ gnulib_modules="
sigaction
smack
ssize_t
statat
stat-macros
stat-size
stat-time
statat
stdbool
stdlib-safer
stpcpy
@@ -233,7 +234,7 @@ gnulib_modules="
strtod
strtoimax
strtoumax
symlink
symlinkat
sys_ioctl
sys_resource
sys_stat
@@ -268,7 +269,8 @@ gnulib_modules="
winsz-termios
write-any-file
xalloc
xfreopen
xbinary-io
xdectoint
xfts
xgetcwd
xgetgroups
@@ -278,7 +280,6 @@ gnulib_modules="
xprintf
xprintf-posix
xreadlink
xdectoint
xstrtod
xstrtoimax
xstrtol
@@ -329,7 +330,7 @@ gettext 0.19.2
git 1.4.4
gperf -
gzip -
makeinfo 4.13
makeinfo 6.1
patch -
perl 5.5
rsync -
@@ -375,6 +376,13 @@ bootstrap_epilogue()
perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
po/Makefile.in.in
# Add dummy 'install-html' target, required for packages using
# non-recursive makefiles with older gettext.
# See https://debbugs.gnu.org/25690
if ! grep -w 'install-html' po/Makefile.in.in ; then
printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
fi
# Install our git hooks, as long as "cp" accepts the --backup option,
# so that we can back up any existing files.
case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac

View File

@@ -234,7 +234,7 @@
-----
Copyright (C) 2002-2016 Free Software Foundation, Inc.
Copyright (C) 2002-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -32,6 +32,7 @@ build_if_possible_progs='
pinky
stdbuf
stty
timeout
uptime
users
who
@@ -41,6 +42,7 @@ build_if_possible_progs='
# be buildable without problems on any target system.
normal_progs='
[
b2sum
base64
base32
basename
@@ -119,7 +121,6 @@ normal_progs='
tail
tee
test
timeout
touch
tr
true

View File

@@ -2,55 +2,6 @@
# option. It specifies what changes to make to each given SHA1's commit
# log and metadata, using Perl-eval'able expressions.
3a169f4c5d9159283548178668d2fae6fced3030
# fix title:
s/all tile types/all file types/
e181802521d4e19e367dbe8cfa877296bb5dafb2
# fix the title!
s,seq:,factor:,
3ece0355d52e41a1b079c0c46477a32250278c11
# correct the URL
s,<http.+?>,<http://bugs.debian.org/412688>,
# This is wrong now only in the git log. The ChangeLog-2008
# entry was also erroneous, but has been corrected.
# ed5c4e770a27862813c0182be8680abeb005d15b
# # Wrong bug ID:
# s,/363011,/350541,
# # in this:
# # Suggested by Josselin Mouette in <http://bugs.debian.org/363011>
# This was wrong only in the git log. The ChangeLog entry was
# is from 2007, and so was recorded (correctly) in ChangeLog-2007.
# 1379ed974f1fa39b12e2ffab18b3f7a607082202
# # Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
# # Change the author to be Paul. Note the escaped "@":
# s,Jim .*>,Paul Eggert <eggert\@cs.ucla.edu>,
209850fd7e1e89cf8937310878bd22d70e3588a5
s/isspace/isblank/
# in this:
# * tests/misc/uniq: New file. Test for the above, but only
# when isspace(0240).
760bc6f7e73014e934a744a9d46ea8dbf5ba25c8
s/Now, each/Now, the/;
s!(elicits.*)\.!first $1, and the second works properly.!
# change the log from this:
# Without this, `truncate -s '> -1' F` would truncate F to length 0,
# and `truncate -s " +1" F` would truncate F to 1 byte. Now, each
# elicits a diagnostic.
# to this:
# Without this, `truncate -s '> -1' F` would truncate F to length 0,
# and `truncate -s " +1" F` would truncate F to 1 byte. Now, the
# first elicits a diagnostic, and the second works properly.
# Credit initial reporter of a related issue, now that the BZ is public.
1e18d8416f9ef43bf08982cabe54220587061a08
s,by ,by Nao Nishijima in http://bugzilla.redhat.com/766461\nand by ,
# I was unable to apply the c-set using normal methods, so
# applied it with patch and then forgot to reset the Author.
51a4b04954ad5ad12de1d1b82a3603fc350a3bfa

75
cfg.mk
View File

@@ -1,5 +1,5 @@
# Customize maint.mk -*- makefile -*-
# Copyright (C) 2003-2016 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,6 +21,9 @@ manual_title = Core GNU utilities
# it can take a while for the faster mirror links to become usable.
url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
# Exclude bundled external projects from syntax checks
VC_LIST_ALWAYS_EXCLUDE_REGEX = src/blake2/.*$$
# Tests not to run as part of "make distcheck".
local-checks-to-skip = \
sc_proper_name_utf8_requires_ICONV
@@ -45,7 +48,7 @@ export VERBOSE = yes
# 4914152 9e
export XZ_OPT = -8e
old_NEWS_hash = f17fb1ab51acb854afd2f45b8940a029
old_NEWS_hash = 48f0493682b6062af615abd4fb8c356f
# Add an exemption for sc_makefile_at_at_check.
_makefile_at_at_check_exceptions = ' && !/^cu_install_prog/ && !/dynamic-dep/'
@@ -226,6 +229,16 @@ sc_error_shell_always_quotes:
exit 1; } \
|| :
# Usage of error() with an exit constant, should instead use die(),
# as that avoids warnings and may generate better code, due to being apparent
# to the compiler that it doesn't return.
sc_die_EXIT_FAILURE:
@cd $(srcdir)/src && GIT_PAGER= git grep -E \
'error \(.*_(FAILURE|INVALID)' \
&& { echo '$(ME): '"Use die() instead of error" 1>&2; \
exit 1; } \
|| :
# Avoid unstyled quoting to internal slots and thus destined for diagnostics
# as that can leak unescaped control characters to the output, when using
# the default "literal" quoting style.
@@ -251,7 +264,7 @@ au_dotdot = authors-dotdot
au_actual = authors-actual
sc_check-AUTHORS: $(all_programs)
@locale=en_US.UTF-8; \
LC_ALL=$$locale ./src/cat --version \
LC_ALL=$$locale ./src/factor --version \
| grep ' Torbjorn ' > /dev/null \
&& { echo "$@: skipping this check"; exit 0; }; \
rm -f $(au_actual) $(au_dotdot); \
@@ -424,14 +437,14 @@ sc_prohibit_stat_macro_address:
$(_sc_search_regexp)
# Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N,
# documentation for GNU strftime. The only exception is %N and %q,
# which date accepts but GNU strftime does not.
extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
sc_strftime_check:
@if test -f $(srcdir)/src/date.c; then \
grep '^ %. ' $(srcdir)/src/date.c | sort \
| $(extract_char) > $@-src; \
{ echo N; \
{ echo N; echo q; \
info libc date calendar format 2>/dev/null \
| grep "^ *['\`]%.'$$"| $(extract_char); }| sort >$@-info;\
if test $$(stat --format %s $@-info) != 2; then \
@@ -492,11 +505,19 @@ sc_prohibit_fail_0:
# independently check its contents and thus detect any crash messages.
sc_prohibit_and_fail_1:
@prohibit='&& fail=1' \
exclude='(stat|kill|test |EGREP|grep|compare|2> *[^/])' \
exclude='(returns_|stat|kill|test |EGREP|grep|compare|2> *[^/])' \
halt='&& fail=1 detected. Please use: returns_ 1 ... || fail=1' \
in_vc_files='^tests/' \
$(_sc_search_regexp)
# Ensure that env vars are not passed through returns_ as
# that was seen to fail on FreeBSD /bin/sh at least
sc_prohibit_env_returns:
@prohibit='=[^ ]* returns_ ' \
halt='Passing env vars to returns_ is non portable' \
in_vc_files='^tests/' \
$(_sc_search_regexp)
# The mode part of a setfacl -m option argument must be three bytes long.
# I.e., an argument of user:bin:rw or user:bin:r will make Solaris 10's
# setfacl reject it with: "Unrecognized character found in mode field".
@@ -568,6 +589,14 @@ sc_prohibit_test_empty:
halt='use `compare /dev/null ...`, not `test -s ...` in tests/' \
$(_sc_search_regexp)
# Ensure that expr doesn't work directly on various unsigned int types,
# as that's not generally supported without GMP.
sc_prohibit_expr_unsigned:
@prohibit='expr .*(UINT|ULONG|[^S]SIZE|[UGP]ID|UINTMAX)' \
halt='avoid passing unsigned limits to `expr` (without GMP)' \
in_vc_files='^tests/' \
$(_sc_search_regexp)
# Programs like sort, ls, expr use PROG_FAILURE in place of EXIT_FAILURE.
# Others, use the EXIT_CANCELED, EXIT_ENOENT, etc. macros defined in system.h.
# In those programs, ensure that EXIT_FAILURE is not used by mistake.
@@ -714,15 +743,22 @@ sc_THANKS_in_duplicates:
&& { echo '$(ME): remove the above names from THANKS.in' \
1>&2; exit 1; } || :
# Ensure the contributor list stays sorted. Use our sort as other
# implementations may result in a different order.
sc_THANKS_in_sorted: src/sort
@sed '/^$$/,/^$$/!d;/^$$/d' $(srcdir)/THANKS.in > $@.1; \
LC_ALL=en_US.UTF-8 src/sort -f -k1,1 $@.1 > $@.2
@diff -u $@.1 $@.2; diff=$$?; \
rm -f $@.1 $@.2; \
test "$$diff" = 0 \
|| { echo '$(ME): THANKS.in is unsorted' 1>&2; exit 1; }
# Ensure the contributor list stays sorted. However, if the system's
# en_US.UTF-8 locale data is erroneous, give a diagnostic and skip
# this test. This affects OS X, up to at least 10.11.6.
# Use our sort as other implementations may result in a different order.
sc_THANKS_in_sorted:
@printf 'a\n.b\n'|LC_ALL=en_US.UTF-8 src/sort -c 2> /dev/null \
&& { \
sed '/^$$/,/^$$/!d;/^$$/d' $(srcdir)/THANKS.in > $@.1 && \
LC_ALL=en_US.UTF-8 src/sort -f -k1,1 $@.1 > $@.2 && \
diff -u $@.1 $@.2; diff=$$?; \
rm -f $@.1 $@.2; \
test "$$diff" = 0 \
|| { echo '$(ME): THANKS.in is unsorted' 1>&2; exit 1; }; \
} \
|| { echo '$(ME): this system has erroneous locale data;' \
'skipping $@' 1>&2; }
# Look for developer diagnostics that are marked for translation.
# This won't find any for which devmsg's format string is on a separate line.
@@ -742,7 +778,7 @@ sc_fs-magic-compare:
# Ensure gnulib generated files are ignored
# TODO: Perhaps augment gnulib-tool to do this in lib/.gitignore?
sc_gitignore_missing:
@{ sed -n '/^\/lib\/.*\.h$$/{p;p}' .gitignore; \
@{ sed -n '/^\/lib\/.*\.h$$/{p;p}' $(srcdir)/.gitignore; \
find lib -name '*.in*' ! -name '*~' ! -name 'sys_*' | \
sed 's|^|/|; s|_\(.*in\.h\)|/\1|; s/\.in//'; } | \
sort | uniq -u | grep . && { echo '$(ME): Add above' \
@@ -750,7 +786,8 @@ sc_gitignore_missing:
# Flag redundant entries in .gitignore
sc_gitignore_redundant:
@{ grep ^/lib .gitignore; sed 's|^|/lib|' lib/.gitignore; } | \
@{ grep ^/lib $(srcdir)/.gitignore; \
sed 's|^|/lib|' $(srcdir)/lib/.gitignore; } | \
sort | uniq -d | grep . && { echo '$(ME): Remove above' \
'entries from .gitignore' >&2; exit 1; } || :
@@ -779,7 +816,7 @@ exclude_file_name_regexp--sc_bindtextdomain = \
exclude_file_name_regexp--sc_trailing_blank = \
^(tests/pr/|gl/.*\.diff$$|man/help2man)
exclude_file_name_regexp--sc_system_h_headers = \
^src/((system|copy)\.h|make-prime-list\.c)$$
^src/((die|system|copy)\.h|make-prime-list\.c)$$
_src = (false|lbracket|ls-(dir|ls|vdir)|tac-pipe|uname-(arch|uname))
exclude_file_name_regexp--sc_require_config_h_first = \
@@ -807,7 +844,7 @@ _ll = ^src/longlong\.h$$
exclude_file_name_regexp--sc_useless_cpp_parens = $(_ll)
exclude_file_name_regexp--sc_space_before_open_paren = $(_ll)
tbi_1 = ^tests/pr/|(^gl/lib/reg.*\.c\.diff|\.mk|^man/help2man)$$
tbi_1 = ^tests/pr/|(\.mk|^man/help2man)$$
tbi_2 = ^scripts/git-hooks/(pre-commit|pre-applypatch|applypatch-msg)$$
tbi_3 = (GNU)?[Mm]akefile(\.am)?$$|$(_ll)
exclude_file_name_regexp--sc_prohibit_tab_based_indentation = \

View File

@@ -1,7 +1,7 @@
# -*- autoconf -*-
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1991-2016 Free Software Foundation, Inc.
# Copyright (C) 1991-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -132,6 +132,7 @@ if test "$gl_gcc_warnings" = yes; then
nw="$nw -Wswitch-enum" # Too many warnings for now
nw="$nw -Wswitch-default" # Too many warnings for now
nw="$nw -Wstack-protector" # not worth working around
nw="$nw -Wtype-limits" # False alarms for portable code
# things I might fix soon:
nw="$nw -Wfloat-equal" # sort.c, seq.c
nw="$nw -Wmissing-format-attribute" # copy.c
@@ -141,7 +142,7 @@ if test "$gl_gcc_warnings" = yes; then
# Using -Wstrict-overflow is a pain, but the alternative is worse.
# For an example, see the code that provoked this report:
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
# Code like that still infloops with gcc-4.6.0 and -O2. Scary indeed.
gl_MANYWARN_ALL_GCC([ws])
@@ -150,6 +151,7 @@ if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([$w])
done
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
gl_WARN_ADD([-Wno-type-limits]) # False alarms for portable code
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wno-format-nonliteral])
@@ -250,6 +252,8 @@ AC_CHECK_FUNCS([chroot],
gl_ADD_PROG([optional_bin_progs], [chroot]))
AC_CHECK_FUNCS([gethostid],
gl_ADD_PROG([optional_bin_progs], [hostid]))
AC_CHECK_FUNCS([sigsuspend],
gl_ADD_PROG([optional_bin_progs], [timeout]))
gl_WINSIZE_IN_PTEM

View File

@@ -120,6 +120,10 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check)
)
(cd $(t) && mv $(distdir) $(distdir).old \
&& $(amtar_extract_) - ) < $(preferred_tarball_)
# With post-v1.15 automake, "distclean" would fail to remove .deps
# directories, leading to a spurious failure of the following recursive diff.
# FIXME: remove this, once automake is fixed.
find $(t)/$(distdir).old $(t)/$(distdir) -name .deps | xargs -r rmdir
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
rmdir $(tmpdir)/$(PACKAGE) $(tmpdir)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# Make coreutils documentation. -*-Makefile-*-
# This is included by the top-level Makefile.am.
# Copyright (C) 1995-2016 Free Software Foundation, Inc.
# Copyright (C) 1995-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
@c File mode bits
@c Copyright (C) 1994-2016 Free Software Foundation, Inc.
@c Copyright (C) 1994-2017 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or

View File

@@ -1,6 +1,6 @@
/* buffer-lcm.c - compute a good buffer size for dealing with two files
Copyright (C) 2002-2016 Free Software Foundation, Inc.
Copyright (C) 2002-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Declare an access pattern hint for files.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Declare an access pattern hint for files.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Invoke open, but return either a desired file descriptor or -1.
Copyright (C) 2005-2016 Free Software Foundation, Inc.
Copyright (C) 2005-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Invoke open, but return either a desired file descriptor or -1.
Copyright (C) 2005-2016 Free Software Foundation, Inc.
Copyright (C) 2005-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Barebones heap implementation supporting only insert and pop.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Barebones heap implementation supporting only insert and pop.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Align/Truncate a string in a given screen width
Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copyright (C) 2009-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Align/Truncate a string in a given screen width
Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copyright (C) 2009-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Bob Jenkins's cryptographic random number generators, ISAAC and ISAAC64.
Copyright (C) 1999-2016 Free Software Foundation, Inc.
Copyright (C) 1999-2017 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999 Colin Plumb.
This program is free software: you can redistribute it and/or modify
@@ -40,7 +40,7 @@
/* If the platform supports unaligned access,
then don't have -fsanitize=undefined warn about it. */
#undef ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED
#if !_STRING_ARCH_unaligned \
#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) \
|| __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
# define ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED /* empty */
#else

View File

@@ -1,6 +1,6 @@
/* Bob Jenkins's cryptographic random number generators, ISAAC and ISAAC64.
Copyright (C) 1999-2016 Free Software Foundation, Inc.
Copyright (C) 1999-2017 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999 Colin Plumb.
This program is free software: you can redistribute it and/or modify

View File

@@ -1,6 +1,6 @@
/* Generate random integers.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
Copyright (C) 2006-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Generate random integers.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
Copyright (C) 2006-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Generate random permutations.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
Copyright (C) 2006-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Generate buffers of random data.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
Copyright (C) 2006-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@
# define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
#if _STRING_ARCH_unaligned
#if _STRING_ARCH_unaligned || _STRING_INLINE_unaligned
# define ALIGNED_POINTER(ptr, type) true
#else
# define ALIGNED_POINTER(ptr, type) ((size_t) (ptr) % alignof (type) == 0)

View File

@@ -1,6 +1,6 @@
/* Generate buffers of random data.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
Copyright (C) 2006-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,67 +0,0 @@
diff --git a/lib/regcomp.c b/lib/regcomp.c
index 4cbb1b2..ac81318 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -544,7 +544,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
size_t errbuf_size;
#else /* size_t might promote */
size_t
-regerror (int errcode, const regex_t *_Restrict_ preg,
+regerror (int errcode, const regex_t *_Restrict_ preg _UNUSED_PARAMETER_,
char *_Restrict_ errbuf, size_t errbuf_size)
#endif
{
@@ -1431,7 +1431,7 @@ calc_first (void *extra, bin_tree_t *node)
/* Pass 2: compute NEXT on the tree. Preorder visit. */
static reg_errcode_t
-calc_next (void *extra, bin_tree_t *node)
+calc_next (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
{
switch (node->token.type)
{
@@ -2828,8 +2828,10 @@ build_range_exp (const reg_syntax_t syntax,
static reg_errcode_t
internal_function
# ifdef RE_ENABLE_I18N
-build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
- Idx *coll_sym_alloc, const unsigned char *name)
+build_collating_symbol (bitset_t sbcset,
+ re_charset_t *mbcset _UNUSED_PARAMETER_,
+ Idx *coll_sym_alloc _UNUSED_PARAMETER_,
+ const unsigned char *name)
# else /* not RE_ENABLE_I18N */
build_collating_symbol (bitset_t sbcset, const unsigned char *name)
# endif /* not RE_ENABLE_I18N */
@@ -3399,7 +3401,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
static reg_errcode_t
parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
- re_token_t *token, int token_len, re_dfa_t *dfa,
+ re_token_t *token, int token_len,
+ re_dfa_t *dfa _UNUSED_PARAMETER_,
reg_syntax_t syntax, bool accept_hyphen)
{
#ifdef RE_ENABLE_I18N
@@ -3486,8 +3489,10 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
static reg_errcode_t
#ifdef RE_ENABLE_I18N
-build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
- Idx *equiv_class_alloc, const unsigned char *name)
+build_equiv_class (bitset_t sbcset,
+ re_charset_t *mbcset _UNUSED_PARAMETER_,
+ Idx *equiv_class_alloc _UNUSED_PARAMETER_,
+ const unsigned char *name)
#else /* not RE_ENABLE_I18N */
build_equiv_class (bitset_t sbcset, const unsigned char *name)
#endif /* not RE_ENABLE_I18N */
@@ -3891,7 +3896,7 @@ free_token (re_token_t *node)
and its children. */
static reg_errcode_t
-free_tree (void *extra, bin_tree_t *node)
+free_tree (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
{
free_token (&node->token);
return REG_NOERROR;

View File

@@ -1,25 +0,0 @@
diff --git a/lib/regex_internal.c b/lib/regex_internal.c
index 93d7ee9..9b86a07 100644
--- a/lib/regex_internal.c
+++ b/lib/regex_internal.c
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include "verify.h"
+#include "intprops.h"
static void re_string_construct_common (const char *str, Idx len,
re_string_t *pstr,
RE_TRANSLATE_TYPE trans, bool icase,
@@ -1389,7 +1391,10 @@ static void
internal_function
re_node_set_remove_at (re_node_set *set, Idx idx)
{
- if (idx < 0 || idx >= set->nelem)
+ verify (! TYPE_SIGNED (Idx));
+ /* if (idx < 0)
+ return; */
+ if (idx >= set->nelem)
return;
--set->nelem;
for (; idx < set->nelem; idx++)

View File

@@ -1,14 +0,0 @@
diff --git a/lib/regex_internal.h b/lib/regex_internal.h
index 0307a34..45c2d44 100644
--- a/lib/regex_internal.h
+++ b/lib/regex_internal.h
@@ -868,7 +868,8 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx)
static int
internal_function __attribute__ ((pure, unused))
-re_string_elem_size_at (const re_string_t *pstr, Idx idx)
+re_string_elem_size_at (const re_string_t *pstr _UNUSED_PARAMETER_,
+ Idx idx _UNUSED_PARAMETER_)
{
# ifdef _LIBC
const unsigned char *p, *extra;

View File

@@ -1,45 +0,0 @@
diff --git a/lib/regexec.c b/lib/regexec.c
index d3920c4..a8152b5 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include "verify.h"
+#include "intprops.h"
static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
Idx n) internal_function;
static void match_ctx_clean (re_match_context_t *mctx) internal_function;
@@ -373,8 +375,11 @@ re_search_2_stub (struct re_pattern_buffer *bufp,
Idx len = length1 + length2;
char *s = NULL;
- if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
- return -2;
+ verify (! TYPE_SIGNED (Idx));
+ if (BE (len < length1, 0))
+ return -2;
+ /* if (BE (length1 < 0 || length2 < 0 || stop < 0, 0))
+ return -2; */
/* Concatenate the strings. */
if (length2 > 0)
@@ -423,11 +428,14 @@ re_search_stub (struct re_pattern_buffer *bufp,
Idx last_start = start + range;
/* Check for out-of-range. */
- if (BE (start < 0 || start > length, 0))
- return -1;
+ verify (! TYPE_SIGNED (Idx));
+ /* if (BE (start < 0, 0))
+ return -1; */
+ if (BE (start > length, 0))
+ return -1;
if (BE (length < last_start || (0 <= range && last_start < start), 0))
last_start = length;
- else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+ else if (BE (/* last_start < 0 || */ (range < 0 && start <= last_start), 0))
last_start = 0;
lock_lock (dfa->lock);

View File

@@ -1,5 +1,5 @@
/* root-dev-ino.c -- get the device and inode numbers for '/'.
Copyright (C) 2003-2016 Free Software Foundation, Inc.
Copyright (C) 2003-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Root device and inode number checking.
Copyright (C) 2003-2016 Free Software Foundation, Inc.
Copyright (C) 2003-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Include and determine availability of smack routines
Copyright (C) 2013-2016 Free Software Foundation, Inc.
Copyright (C) 2013-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Compare integer strings.
Copyright (C) 2005-2016 Free Software Foundation, Inc.
Copyright (C) 2005-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Compare numeric strings. This is an internal include file.
Copyright (C) 1988-2016 Free Software Foundation, Inc.
Copyright (C) 1988-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Compare numeric strings.
Copyright (C) 2005-2016 Free Software Foundation, Inc.
Copyright (C) 2005-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Convert decimal strings with bounds checking and exit on error.
Copyright (C) 2014-2016 Free Software Foundation, Inc.
Copyright (C) 2014-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Convert decimal strings with bounds checking and exit on error.
Copyright (C) 2014-2016 Free Software Foundation, Inc.
Copyright (C) 2014-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* xfts.c -- a wrapper for fts_open
Copyright (C) 2003-2016 Free Software Foundation, Inc.
Copyright (C) 2003-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Test that fadvise works as advertised.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* Test that mbsalign works as advertised.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Test the ISAAC or ISAAC64 pseudorandom number generator.
Copyright (C) 2010-2016 Free Software Foundation, Inc.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

2
gnulib

Submodule gnulib updated: 85717b68b0...405cd67538

View File

@@ -1,6 +1,6 @@
# This file is sourced by init.sh, *before* its initialization.
# Copyright (C) 2010-2016 Free Software Foundation, Inc.
# Copyright (C) 2010-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -128,6 +128,15 @@ require_selinux_()
esac
}
# Return the SELinux type component if available
get_selinux_type() { ls -Zd "$1" | sed -n 's/.*:\(.*_t\)[: ].*/\1/p'; }
# Whether SELinux Multi Level Security is enabled
mls_enabled_() {
sestatus 2>&1 |
grep 'Policy MLS status:.*enabled' > /dev/null
}
# Skip this test if we're not in SELinux "enforcing" mode.
require_selinux_enforcing_()
{
@@ -618,7 +627,7 @@ skip_if_setgid_()
# Skip if files are created with a different group to the current user
# This can happen due to a setgid dir, or by some other mechanism on OS X:
# http://unix.stackexchange.com/q/63865
# http://bugs.gnu.org/14024#41
# https://bugs.gnu.org/14024#41
skip_if_nondefault_group_()
{
touch grp.$$
@@ -637,10 +646,13 @@ skip_if_mcstransd_is_running_()
# and if it's running, skip this test.
__ctx=$(stat --printf='%C\n' .) || framework_failure_
case $__ctx in
*:*:*:*) ;; # four components is ok
*) # anything else probably means mcstransd is running
skip_ "unexpected context '$__ctx'; turn off mcstransd" ;;
*:*:*:*) __ctx_ok=1 ;; # four components is ok
*:*:*) # three components is ok too if there is no MLS
mls_enabled_ || __ctx_ok=1 ;;
esac
test "$__ctx_ok" ||
skip_ "unexpected context '$__ctx'; turn off mcstransd"
}
# Skip the current test if umask doesn't work as usual.

View File

@@ -8746,7 +8746,7 @@
-----
Copyright (C) 2000-2016 Free Software Foundation, Inc.
Copyright (C) 2000-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Exercise chdir-long's sample main program.
# Copyright (C) 2005-2016 Free Software Foundation, Inc.
# Copyright (C) 2005-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -5004,7 +5004,7 @@
-----
Copyright (C) 1997-2016 Free Software Foundation, Inc.
Copyright (C) 1997-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -1,7 +1,7 @@
# boottime.m4 serial 4
# Determine whether this system has infrastructure for obtaining the boot time.
# Copyright (C) 1996-2016 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
#serial 26
# Check declarations for this package.
dnl Copyright (C) 1997-2016 Free Software Foundation, Inc.
dnl Copyright (C) 1997-2017 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,

View File

@@ -1,6 +1,6 @@
# Tests for GNU GMP (or any compatible replacement).
dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,

View File

@@ -1,5 +1,5 @@
#serial 2
dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

View File

@@ -1,8 +1,8 @@
#serial 110 -*- autoconf -*-
#serial 111 -*- autoconf -*-
dnl Misc type-related macros for coreutils.
# Copyright (C) 1998-2016 Free Software Foundation, Inc.
# Copyright (C) 1998-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -207,6 +207,7 @@ AC_DEFUN([gl_CHECK_ALL_HEADERS],
AC_CHECK_HEADERS_ONCE([
hurd.h
linux/falloc.h
linux/fs.h
paths.h
priv.h
stropts.h

View File

@@ -7,7 +7,7 @@ m4_pattern_forbid([^gl_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl
# directory of the coreutils package.
# Copyright (C) 1998-2016 Free Software Foundation, Inc.
# Copyright (C) 1998-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
# stat-prog.m4 serial 7
# Record the prerequisites of src/stat.c from the coreutils package.
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -1,13 +1,12 @@
# xattr.m4 - check for Extended Attributes (Linux)
# serial 3
# Copyright (C) 2003-2016 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Originally written by Andreas Gruenbacher.
# http://www.suse.de/~agruen/coreutils/5.91/coreutils-xattr.diff
AC_DEFUN([gl_FUNC_XATTR],
[

1
man/.gitignore vendored
View File

@@ -1,5 +1,6 @@
Makefile
Makefile.in
b2sum.1
base32.1
base64.1
basename.1

4
man/b2sum.x Normal file
View File

@@ -0,0 +1,4 @@
[NAME]
b2sum \- compute and check BLAKE2 message digest
[DESCRIPTION]
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 1998-2016 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 1998-2016 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 1998-2016 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 1998-2016 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

View File

@@ -780,7 +780,7 @@ sub convert_option
}
# Insert spacing escape characters \, and \/ before and after italic text. See
# http://www.gnu.org/software/groff/manual/html_node/Ligatures-and-Kerning.html
# https://www.gnu.org/software/groff/manual/html_node/Ligatures-and-Kerning.html
sub fix_italic_spacing
{
local $_ = shift;

View File

@@ -1,7 +1,7 @@
# Make coreutils man pages. -*-Makefile-*-
# This is included by the top-level Makefile.am.
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -56,10 +56,11 @@ if SINGLE_BINARY
mandeps += src/coreutils$(EXEEXT)
else
# Most prog.1 man pages depend on src/prog. List the exceptions:
man/arch.1: src/uname$(EXEEXT)
man/install.1: src/ginstall$(EXEEXT)
man/test.1: src/[$(EXEEXT)
man/arch.1: src/arch$(EXEEXT)
man/b2sum.1: src/b2sum$(EXEEXT)
man/base32.1: src/base32$(EXEEXT)
man/base64.1: src/base64$(EXEEXT)
man/basename.1: src/basename$(EXEEXT)

View File

@@ -3,6 +3,7 @@ md5sum \- compute and check MD5 message digest
[DESCRIPTION]
.\" Add any additional description here
[BUGS]
The MD5 algorithm should not be used any more for security related purposes.
Instead, better use an SHA\-2 algorithm, implemented in the programs
sha224sum(1), sha256sum(1), sha384sum(1), sha512sum(1)
Do not use the MD5 algorithm for security related purposes.
Instead, use an SHA\-2 algorithm, implemented in the programs
sha224sum(1), sha256sum(1), sha384sum(1), sha512sum(1),
or the BLAKE2 algorithm, implemented in b2sum(1)

View File

@@ -2,5 +2,7 @@
readlink \- print resolved symbolic links or canonical file names
[DESCRIPTION]
.\" Add any additional description here
Note realpath(1) is the preferred command to use
for canonicalization functionality.
[SEE ALSO]
readlink(2), realpath(1), realpath(3)

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 1998-2016 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

View File

@@ -2,3 +2,8 @@
sha1sum \- compute and check SHA1 message digest
[DESCRIPTION]
.\" Add any additional description here
[BUGS]
Do not use the SHA-1 algorithm for security related purposes.
Instead, use an SHA\-2 algorithm, implemented in the programs
sha224sum(1), sha256sum(1), sha384sum(1), sha512sum(1),
or the BLAKE2 algorithm, implemented in b2sum(1)

View File

@@ -1,4 +1,4 @@
'\" Copyright (C) 2009-2016 Free Software Foundation, Inc.
'\" Copyright (C) 2009-2017 Free Software Foundation, Inc.
'\"
'\" This is free software. You may redistribute copies of it under the terms
'\" of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
@@ -11,7 +11,7 @@ Run COMMAND, with modified buffering operations for its standard streams.
[EXAMPLES]
.B tail -f access.log | stdbuf -oL cut -d \(aq \(aq -f1 | uniq
.br
This will immedidately display unique entries from access.log
This will immediately display unique entries from access.log
[BUGS]
On GLIBC platforms, specifying a buffer size, i.e., using fully buffered mode
will result in undefined operation.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,759 +0,0 @@
[4.1.11]
* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
[4.1.10]
* rm once again gives a reasonable diagnostic when failing to remove a file
owned by someone else in a sticky directory [introduced in 4.1.9]
* df now rounds all quantities up, as per POSIX.
* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
* Any time style can be preceded by "posix-"; this causes "ls" to
use traditional timestamp format when in the POSIX locale.
* The default time style is now posix-long-iso instead of posix-iso.
Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 through 4.1.9.
* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
* stat: remove support for --secure/-s option and related %S and %C format specs
* stat: rename --link/-l to --dereference/-L.
The old options will continue to work for a while.
[4.1.9]
* rm can now remove very deep hierarchies, in spite of any limit on stack size
* new programs: link, unlink, and stat
* New ls option: --author (for the Hurd).
* `touch -c no-such-file' no longer fails, per POSIX
[4.1.8]
* mv no longer mistakenly creates links to preexisting destination files
that aren't moved
[4.1.7]
* rm: close a hole that would allow a running rm process to be subverted
[4.1.6]
* New cp option: --copy-contents.
* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
traditional (and rarely desirable) cp -r behavior.
* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
* cp and inter-partition mv no longer give a misleading diagnostic in some
unusual cases
[4.1.5]
* cp -r no longer preserves symlinks
* The block size notation is now compatible with SI and with IEC 60027-2.
For example, --block-size=1MB now means --block-size=1000000,
whereas --block-size=1MiB now means --block-size=1048576.
A missing `B' (e.g. `1M') has the same meaning as before.
A trailing `B' now means decimal, not binary; this is a silent change.
The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
* -H or --si now outputs the trailing 'B', for consistency with the above.
* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
* New df, du short option -B is short for --block-size.
* You can omit an integer `1' before a block size suffix,
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
* The following options are now obsolescent, as their names are
incompatible with IEC 60027-2:
df, du: -m or --megabytes (use -BM or --block-size=1M)
df, du, ls: --kilobytes (use --block-size=1K)
[4.1.4]
* df --local no longer lists smbfs file systems whose name starts with //
* dd now detects the Linux/tape/lseek bug at run time and warns about it.
[4.1.3]
* ls -R once again outputs a blank line between per-directory groups of files.
This was broken by the cycle-detection change in 4.1.1.
* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
On systems with the linux kernel (at least up to 2.4.16), dd must still
resort to emulating `skip=N' behavior using reads on tape devices, because
lseek has no effect, yet appears to succeed. This may be a kernel bug.
[4.1.2]
* cp no longer fails when two or more source files are the same;
now it just gives a warning and doesn't copy the file the second time.
E.g., cp a a d/ produces this:
cp: warning: source file `a' specified more than once
* chmod would set the wrong bit when given symbolic mode strings like
these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
of --w-r---w- rather than --w--w--w-.
[4.1.1]
* mv (likewise for cp), now fails rather than silently clobbering one of
the source files in the following example:
rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
* cp's -P option now means the same as --no-dereference, per POSIX.
Use --parents to get the old meaning.
* When copying with the -H and -L options, cp can preserve logical
links between source files with --preserve=links
* cp accepts new options:
--preserve[={mode,ownership,timestamps,links,all}]
--no-preserve={mode,ownership,timestamps,links,all}
* cp's -p and --preserve options remain unchanged and are equivalent
to `--preserve=mode,ownership,timestamps'
* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
mechanism to control whether one is prompted about certain existing
destination files. Note that cp's and mv's -f options don't have the
same meaning: cp's -f option no longer merely turns off `-i'.
* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
64-bit systems)
* mv now prompts before overwriting an existing, unwritable destination file
when stdin is a tty, unless --force (-f) is specified, as per POSIX.
* mv: fix the bug whereby `mv -uf source dest' would delete source,
even though it's older than dest.
* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
* cp now ensures that the set-user-ID and set-group-ID bits are cleared for
the destination file when when copying and not preserving permissions.
* `ln -f --backup k k' gives a clearer diagnostic
* ls no longer truncates user names or group names that are longer
than 8 characters.
* ls's new --dereference-command-line option causes it to dereference
symbolic links on the command-line only. It is the default unless
one of the -d, -F, or -l options are given.
* ls -H now means the same as ls --dereference-command-line, as per POSIX.
* ls -g now acts like ls -l, except it does not display owner, as per POSIX.
* ls -n now implies -l, as per POSIX.
* ls can now display dates and times in one of four time styles:
- The `full-iso' time style gives full ISO-style time stamps like
`2001-05-14 23:45:56.477817180 -0700'.
- The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
and '05-14 23:45'.
- The 'locale' time style gives locale-dependent time stamps like
'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
- The 'posix-iso' time style gives traditional POSIX-locale
time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
specifies a non-POSIX locale, in which case it uses ISO-style dates.
This is the default.
You can specify a time style with an option like --time-style='iso'
or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
and later can parse ISO dates, but older Emacs versions cannot, so
if you are using an older version of Emacs outside the default POSIX
locale, you may need to set TIME_STYLE="locale".
* --full-time is now an alias for "-l --time-style=full-iso".
Changes in release 4.1:
[4.0.45]
* dd conv=sync,block now pads only with spaces
* ls's -1 option no longer cancels the effect of a preceding -l
* regenerate configure using a patched version of autoconf-2.49e to work
around a bug in its test for a working memcmp function
* ls: fix off-by-one error introduced with the previous change
[4.0.44]
* ls: When given two or more arguments but the only one that exists is a
directory, don't treat it as if it were the only argument. Before,
`mkdir d; ls no-dir d 2>/dev/null' would act like `ls d' and produce
no output. Now, it prints `d:'.
* touch -d 'last friday' would use a time stamp that was one hour off
(e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
when run such that the current time and the target date/time fall on
opposite sides of a daylight savings time transition.
This problem arises only with relative date strings like `last monday'.
It is not a problem with strings that include absolute dates.
[4.0.43]
* regenerate configure-related files using autoconf-2.49d
[4.0.42]
* Using ls's short-named `-H' option evokes the warning that the
meaning of `-H' will soon change. Use `--si' instead.
[4.0.41]
* fix bug in rm introduced in 4.0.38: `chmod 0 f; rm f' would no longer prompt
before removal.
[4.0.40]
* portability fixes, mainly for UnixWare 7.1.1
[4.0.39]
* cp and mv accept --strip-trailing-slashes, not just --strip-trailing-slash
[4.0.38]
* ls --full-time now implies -l; before, without -l it was a no-op
[4.0.37]
* portability fixes for SunOS4.1.1, Fujitsu (f300-fujitsu-uxpv4.1_ES),
and Unicos (alphaev5-cray-unicosmk2.0.5.X)
[4.0.36]
* `mv dir/ new-name' no longer fails on SunOS4.1.1U
* attempting to use mv to move a symlink onto itself no longer removes
the symlink
* `cp -R directory file' no longer removes `file'. now it fails and gives
a diagnostic
* The manual now warns that ls's --full-time format string is planned
to change in a future release.
* ls -l's time stamp format now depends on LC_TIME, not LC_MESSAGES,
as POSIX requires.
* ls -l now reports the year for files even slightly in the future, as
POSIX requires. This helps warn users about clock skew problems.
* `cp -d file symlink-to-some-other-file' no longer fails
* performance improvements for ls
[4.0.35]
* ln --backup=simple --suffix=SUFFIX once again uses SUFFIX
* install: Likewise.
[4.0.34]
* fix a bug (introduced in 4.0z) that made `chown 123:456 file' act like
`chown 123:123 file'. Other uses with a numeric group ID would cause
chown to fail when it shouldn't have.
* the chown and chgrp programs preserve set-uid and set-gid bits, even on
systems for which the chown function call resets those bits.
* `ls -L dangling-symlink' now fails (per POSIX) rather than printing the
link name
* dd no longer honors the just-added `B' suffix on skip= and seek= arguments.
* `mkdir no-such-dir/' no longer fails on NetBSD systems
[4.0.33]
* dd now accepts skip=nB and seek=nB, to advance past some number of bytes, n,
that need not be a multiple of the block size.
* dd (without conv=notrunc) now complains only when ftruncate fails on a
regular file, a directory, or a shared memory object -- not when it fails
to truncate other types of files, like /dev/fd0.
* chmod --changes (-c) once again issues diagnostics only for the files
with changed permissions
* mkdir now gives one diagnostic (rather than two) for certain failures
* mkdir portability fix for NetBSD
[4.0.32]
* touch now interprets a lone numeric argument of 8 or 10 digits as a file name,
rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
* mkdir no longer sets the permissions of the final directory component
if it already exists (this bug, too, was introduced recently)
* ls's --full-time format string is now locale dependent
[4.0.31]
* mkdir: fix a bug introduced in 4.0.30 whereby `mkdir existing-dir' would
succeed. Now it fails, as it should (and used to).
[4.0.30]
* mkdir: fix a bug introduced in 4.0.28 whereby parent directories created
via `mkdir -p' would have permissions that did not account for the umask
[4.0.29]
* ls.c wouldn't compile on some systems: fix it
* `cp -R --parents dir1/ dir2' failed on NetBSD, due to a portability problem
[4.0.28]
* ls is much more efficient on systems (e.g., linux-2.4.*) that store file
type information in directory entries.
* shred now automatically determines the size of each block device argument
* ls's date/time format strings are now locale dependent
* mkdir, mknod, mkfifo, and chmod work better in conjunction with ACLs
* `cp --parents dir1/ dir2' no longer gets a failed assertion
* shred now determines the size of block devices like /dev/fd0
* `shred --exact file1 file2' now erases `file1', too
[4.0.27]
* install once again unlinks an existing destination before trying to open it
* mv no longer gets a failed assertion when moving a directory (specified with
a trailing slash) from one partition to another, and giving it a different
name at the destination.
* `cp --link -f src existing-dest' no longer fails (bug introduced in 4.0z)
* cp's new --remove-destination option now works with -R
[4.0z]
* `cp -p' once again preserves `special' permission bits (this bug was
introduced in 4.0y)
* mv's --force (-f) option now controls solely whether mv prompts (per POSIX)
* `cp -f' now first attempts to open an existing destination file, and only
if that fails does it resort to unlinking the file and retrying the open.
Before, it would unlink the file before trying to open it.
* cp accepts a new option, --remove-destination, that provides the old behavior
* cp's -f option no longer cancels the effect of --interactive (-i) (per POSIX)
* when ls sorts directory entries, it now honors the current locale settings
* dd's `skip=BLOCKS' operator once again works on systems with a buggy lseek
function (Linux, at least on SCSI tape devices)
* fix a typo in install-sh
[4.0y]
* cp now accepts the POSIX-mandated -H and -L options.
* cp -p and mv now try to preserve uid even if you're not root, as per POSIX.2.
This affects behavior only on hosts that let you give files away via chmod.
* du would fail when given `.' or `..' followed by other command line arguments
* Using cp's short-named `-P' option evokes the warning that the
meaning of `-P' will soon change. Use `--parents' instead.
* chgrp, chmod, and chown: when used with the --verbose option, might give an
invalid diagnostic (due to clobbered errno) when failing.
[4.0x]
* Fix cp so that `cp -r DIR1/ DIR2' works properly once again.
* New ls option --quoting-style=clocale acts like --quoting-style=locale,
except that it quotes "like this" by default instead of `like this'.
[4.0w]
* When `cp -pR' fails to copy a file, it now preserves permissions, owner,
and group of the containing directory.
[4.0v]
* df, du, and ls now round disk usage up and disk free space down
* df, du, ls: --block-size=N now works for values of N that are e.g.,
not a multiple of the file's block size
[4.0u]
* give proper diagnostic for mv usage error
* fix compile problem with lib/strnlen.c
[4.0t]
* `cp -d -u' no longer fails with certain existing destination symlinks
* rmdir and mkdir accept -v as synonym for --verbose
[4.0s]
* rm no longer segfaults on certain very deep hierarchies
* IMPORTANT SECURITY FIX: a running `rm -r' may no longer be subverted to
remove unintended directories
* cp can now remove unwritable files in interactive mode; contrary to how mv
works, cp's --interactive (-i) option does *not* cancel the effect of a
preceding --force (-f) option.
* all programs fail when printing --help or --version output to a full device
* install no longer performs chmod if chown fails (see ChangeLog for example)
[4.0r]
* `du dir/subdir1 dir/subdir2' no longer fails
* chown accepts new option: --from=CURRENT_OWNER:CURRENT_GROUP
* cp accepts new option: --strip-trailing-slashes
* install --directory (-d) may now be used to set special bits
e.g., `install -m a=rwx,o+t -d DIR' now honors the `o+t' part
* cp, mv, ln, install: document that while the --backup option takes an
optional argument, the -b option accepts none
* `ls -e' fails with a more useful diagnostic
* df produces better output for loop file system mount points
[4.0q]
* install -D bug is fixed
* chown now works properly when the specified login name contains a period
This is at the expense of always looking up the entire USER.GROUP string
as a login name first, and only then (upon failure) interpreting the `.'
as a separator and looking up `USER'. To avoid the extra getpwnam call,
always use the POSIX-mandated `:' character as the separator.
* `du some-other-dir' no longer fails if it can't open the current directory
* `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE. Now it gets an error
as POSIX says it must.
* touch no longer hangs on fifos
[4.0p]
* various tools: quote multibyte characters correctly in diagnostics
* mv: portability fix for alpha
* dd: portability fix
* unified lib/: now that directory and most of the configuration framework
is common between fileutils, textutils, and sh-utils
[4.0o]
* Include lib/nanosleep.h.
[4.0n]
* cp, install, ln, and mv: when making backup files in verbose mode, these
commands now print the backup file name on the same line as the rest of the
information, e.g., `a -> b (backup: b.~13~)' rather than on a separate line
as all but ln used to do. ln didn't output the backup file name at all.
[4.0m]
* mv accepts new option: --strip-trailing-slashes (soon, many other
programs will, too)
* df no longer hangs when there is an inaccessible mount point unrelated to PATH
* rmdir --verbose no longer prints extra, bogus diagnosic upon failure
* fix df bug that made it print bogus values in the `Use%' column.
* touch -d once again parses dates with `hh:mm ZONE' time zone info.
[4.0l]
* ls -l honors a trailing slash on a symlink argument, per POSIX.
* shred no longer appears to infloop when asked to remove files in
unwritable directories
* `ls -ul' and `ls -uc' sort by name once again, as they should
[4.0k]
* mv may now be used to move a file onto a symlink to itself when that
symlink is on a separate partition. With fileutils-4.0j, it would
fail with a diagnostic saying they were the same file.
* touch would fail with the misleading diagnostic `no such file' when asked
to create a file in an unwritable directory. Now it says something like
`permission denied' or `read-only file system'.
[4.0j]
* mkdir may now be used to set special bits e.g., `mkdir -m o+t dir' works
* touch can now change the time(s) of a file you own even if you don't have
read or write access to it
* rm no longer dumps core after warning about directory cycles
* mv now refuses to move a file onto a symlink to itself when that symlink
is on a separate partition. Before, it would remove the file and leave
only the symlink.
* `install -d -g foo 1/2' now sets the `group' of the final component as well
as that of the leading one.
* df, du, and ls no longer divide by zero when an invalid block size is
specified through an environment variable
* under certain conditions, chgrp would fail to affect files referenced
through symlinks. Now it does.
* ln now makes hard links to symlinks on systems that support it.
* touch: no longer infloop on dangling symlinks
* cp, install, ln, mv: deprecate the --version-control option. Use --backup's
new optional argument instead. The old option still works, but now evokes a
warning.
* cp, install, ln, mv: the --backup option now accepts an optional argument
* cp, install, ln, mv: accept new option: --target-directory=DIR
* chgrp: accept new option, --dereference. --no-dereference is now the default.
* New ls option --quoting-style=locale acts like --quoting-style=c, except
with locale-specific quoting symbols (` and ' by default) instead of ".
* `df DIR' is less likely to hang due to bad NFS mounts
* As per POSIX.2, `df -P' now uses ceiling rather than rounding, and its
header now says `1024-blocks ... Capacity' instead of `1k-blocks ... Use%'.
[4.0i]
* `cp -f FILE FILE' and `mv -f FILE FILE' no longer remove FILE
* touch works once again (DST-wise) when certain `--date DATE-TIME'
values are specified.
* shred's -u option (short form of --remove) is now accepted
[4.0h]
* cp --one-file-system (-x) no longer crosses filesystem boundaries.
* touch can once again operate on directories
[4.0g]
* New large-file support for AIX and HP-UX, and for cross-compiles.
* shred's default options are now suitable for devices, not files, since
shred is more reliable on devices. shred now does not remove by default;
the old -p or --preserve option was inverted and renamed to -u or --remove.
* shred -u now attempts to truncate devices before removing them.
* shred -v no longer outputs carriage-returns; shred -vv has no extra effect;
shred -v now outputs to stderr.
* shred now tries to find the size of a non-regular file by seeking to its end.
* dd now opens the output file for *read* access only if `seek=' is used.
[4.0f]
* `ls --color' no longer segfaults
* dd works once again
[4.0e]
* shred --devices option renamed to -D so that -d, -i and -r can be
compatible with rm.
* shred -s/--size=N option added to specify the size of the object to be
shredded.
* `shred -' now shreds stdout rather than stdin. This is incompatible with -v.
* shred now does not need to read from its output file, so opens it O_WRONLY
* `ls -l' uses `+' to designate each file that has a custom ACL
* eliminate race condition that could make touch truncate a nonempty file
* No longer use *_unlocked I/O macros on systems (like solaris5.5.1) where
they're not declared, so selected executables (e.g., rm) that are linked
with shared libraries will once again run on solaris5.6 systems.
[4.0d (aka 4.1-b3)]
* ls recognizes solaris 2 `doors'
* new program: shred
* ln: Allow creation of a hard link to a dangling symlink
* cp, mv, install: --verbose now prints a message for each backup-related
renaming
* portability fixes for copy.c's code to detect move-directory-into-self
* upgrade to automake-1.3b
* upgrade to autoconf-2.13, and...
* remove some of the kludges in m4/*.m4 that permitted
[4.1-b2]
* concurrent `mkdir -p' processes no longer fail when creating the
same hierarchy
* argmatch.c has been fixed so that the unambiguous usage `ls --color=n'
no longer evokes an error.
* now, specifying an improper argument for an option that accepts enumerated
values evokes diagnostics like this:
$ src/touch --time=x file
src/touch: invalid argument `x' for `--time'
Valid arguments are:
- `atime', `access', `use'
- `mtime', `modify'
Try `src/touch --help' for more information.
[4.1-b1]
* ls --quoting-style=c prints correct octal escapes for certain nonprinting
characters in file names.
* fix `ls -R .' formatting bug that broke mktexlsr
* moving a directory into itself is properly diagnosed in more cases
* moving a directory containing hard-linked files now works
Changes in release 4.0:
[4.0-b7]
* rm -rf '' no longer gets a failed assertion on the Hurd
[4.0-b6]
* rm simply fails as it should (rather than segfaulting) for
`mkdir -m 0100 x; rm -rf x'
[4.0-b5]
* still *more* mktime.c portability tweaks
[4.0-b4]
* mktime.c portability tweak for headers with GNU libc 5.4.44.
[4.0-b3]
* mktime.c works around problems with Digital Unix 4.0A and 4.0D.
* mktime.c handles dates in the spring-forward gap the same way other
implementations do
* install accepts long option --suffix=SUFFIX
[4.0-b2]
* man/Makefile.maint framework tweaks
* add test for `mv -i' bug
[4.0-pre1]
* fix serious bug whereby `touch a b; echo n|mv -i a b' would remove b.
[3.16z]
* portability tweaks
* avoid `root `cp -a' from Netapp snapshot' corruption
[3.16y]
* `install -D' now works
* distribute maintainer Makefiles in man/
[3.16x]
* man pages are now automatically generated from a combination of --help
output and the contents of new (though mostly empty), man/*.x files.
[3.16w]
* touch now interprets `-t TIME-DATE' as POSIX specifies
* `ls EMPTY-DIR EMPTY-DIR' once again outputs the directory names
[3.16v]
* portability fixes
* `ls -R EMPTY-DIR' now outputs the name of the directory
[3.16u]
* mv now fails (as it should) upon attempt to move a directory into itself
* `cp -a --one-file-system' now copies any mount point directories it
encounters on the selected file system.
[3.16t]
* cp (with --update) and ls compare time stamps with subsecond resolution when
available (e.g., on systems with recent Linux kernels and on Solaris 2.6).
* install once again does the -m-specified chmod *after* running strip
(this fixes another bug introduced in 3.16o)
[3.16s]
* df accept a new option --local (-l)
* touch works around a system-specific bug so it now affects existing,
zero-length files on certain systems
* chown now works even on certain SVR3 systems where it used to fail
[3.16r]
* include gettext's m4 macros
* minor cp bug fixed
* non-portable cp tests removed
* --without-included-regex now means don't compile regex.c
* rx support removed
[3.16q]
* `df', `du', and `ls' now accept a new option --block-size=SIZE,
where SIZE can be a positive integer block size, followed by an
optional SI prefix (e.g. `k' for kilo, `M' for Mega), followed by an
optional `B' (for ``byte'', indicating powers of 1024, which is the
default) or `D' (for ``decimal byte'', indicating powers of 1000).
SIZE can also be `human-readable' (for -h or --human-readable
behavior) or `si' (for -H or --si behavior).
* These suffixes can also be used by `dd'; e.g. `dd bs=1MB' is equivalent
to `dd bs=1048576'.
* The default block size for the `df' command is now obtained from the
DF_BLOCK_SIZE environment variable or, if that is not set, from BLOCK_SIZE.
Similarly for `du' and `ls'.
* The output columns of `df' have been adjusted slightly to accommodate
larger filesystems.
* fix gettext-related link failures seen when configuring certain ways
[3.16p]
* fix install bug introduced in 3.16o
* build/test changes only
[3.16o]
* chown accepts new option, --dereference. --no-dereference is now the default.
* install now shares core copying code with mv and cp
* mv (between distinct filesystems) now uses more of the core copying code
* fixed a bug or two in mv
* df once again displays negative numbers when that's what's returned
by get_fs_usage
[3.16n]
* `mv dir dir' once again does *not* remove dir/
* ls accepts new options:
--indicator-style=none (no indicators, the default)
--indicator-style=classify (all indicators)
(equivalent to -F or --classify)
--indicator-style=file-type (file type indicators)
(equivalent to -p or --file-type)
--quoting-style=literal (do not quote output)
--quoting-style=shell (minimally quote output for the shell)
--quoting-style=shell-always (always quote output with '' for the shell)
--quoting-style=c (quote output as for a C-language string)
(equivalent to -Q or --quote-name)
--quoting-style=escape (like c but omit enclosing "")
(equivalent to -b or --escape)
--show-control-chars is the opposite of --hide-control-chars
This option can be useful if output is to a terminal,
to override the default beahvior of hiding control characters.
* The QUOTING_STYLE environment variable can now be used to specify the
default value for ls's --quoting-style option. If not specified,
the default quoting style is 'literal', but this default may change to
'shell' in a future version of this package.
* ls's quoting style now affects operands in diagnostics, too.
* ls's --dired option now outputs the quoting style
using the format of the new --quoting-style option.
* ls's -e or --quote-shell option (introduced in 3.16j) has been removed;
use --quoting-style=shell to get its functionality.
[3.16m]
* mv can move (and doesn't read) special files
* remove maintainer mode
[3.16l]
* mv can finally move non-regular files between partitions
[3.16k]
* install accepts new option, -D
[3.16j]
* du accepts new options, --exclude=PAT and --exclude-from=FILE (-X FILE)
* ls now quotes file names for the shell by default, if they contain
characters that need quoting. Use -N to get the old default behavior.
The new behavior is also enabled by the new option -e or --quote-shell.
* ln --backup is now consistent with cp and mv in that --force is no longer
required when the destination is an existing non-directory.
* install accepts new option, --verbose (-v)
* mkdir -p is a lot faster when creating very deep directories on some systems
* rm -i no longer exits with status indicating failure solely because the
user declines to remove a file
* rm -r is a lot faster on some systems when removing deep hierarchies
* chgrp, chmod, and chown no longer give contradictory output when --verbose
is used and an operation fails
* ls's multicolumn option now uses variable width columns to conserve
vertical space
* install accepts new option, --preserve-timestamps
* du --megabytes --total now shows total in megabytes
* ls accepts new option, -h or --human-readable
* df, du, and ls now accept new option, -H or --si, for powers of 1000 not 1024
* df, du, and ls now consistently round to nearest, with ties going to even
* df, du, and ls now use `k' instead of `K' for `kilo',
and support larger abbreviations T(era), P(eta), E(xa), Z(etta), Y(otta)
* touch -d DATE now works on Unicos
* du accepts new option --max-depth=N
* rmdir accepts new options: --ignore-fail-on-non-empty and --verbose
* on most hosts df, du, and ls now overflow at 2**64 bytes, not 2**31 bytes
* all programs now work on large files on LFS systems like Solaris 2.6 and
Linux with the pre-2.1 development version of GNU libc.
* df now works with OpenBSD 2.1 beta
* cp -d FILE SYMLINK-TO-FILE doesn't erase FILE. Now it gives an error.
Changes in release 3.16:
* du --megabytes (-m) works
* ls -l works even on systems with non-POSIX strftime in their C library
Changes in release 3.15:
* touch --date=DATE bug (due to broken getdate.y) has been fixed
* ls -l no longer misformats the date when run in a locale for which the
locale's abbreviated week-day name (strftime's %a format) is shorter or
longer than the `normal' three bytes (with LANG=de it's a two-byte string).
* Using --program-prefix no longer applies the prefix twice
* ls --color properly restores color attributes upon completion when the
normal (`no') color attribute is not the default color.
* with ls -s --color, the `total' and size of the first file are printed
* ls --color stats symlinks and distinguishes between regular symlinks
and orphan ones.
* cp --preserve preserves owner and group of symlinks on Linux when run
with EUID == 0
* dircolors no longer accepts --print-data-base (alternate spelling of
--print-database)
Changes in release 3.14:
* ls --color highlights based on suffix rules only for regular files
* touch --date=DATE accepts dates like those in an RCS log listing, e.g.,
`1992/11/01 05:44:34'.
* install SRC DST no longer rejects non-regular, non-directory SRC
* df accepts -F as a synonym for -t for compatibility with Solaris
* cp -i /dev/null existing-file now prompts before overwriting the target
* ls --color highlights orphaned symlinks text on terminals that support it
* ls -l honors current locale with respect to abbreviated month names (and,
with --full-time day names) on systems with a locale-supporting strftime
function, e.g., ones based on recent versions of the GNU C library
* ls -l recognizes Cray's migrated dmf files.
* chgrp no longer aborts when given a group number larger than INT_MAX
* chgrp now fails when run by root with an unrecognized group name
* when possible, cp -p preserves owner/group even on symlinks in case
they're in a directory that has the sticky-bit set.
* cp --recursive --parents SRC DEST works when SRC is an absolute file name.
Changes in release 3.13:
* ls properly determines window size on SunOS and Solaris systems
* ls accepts new option --color[=WHEN] where WHEN is `always', `never',
or `auto'. --color=never is the default. --color is equivalent
to --color=always.
* new program: dircolors
* ls allows 0 as argument to --tabsize (-T) option. Using --tabsize=0
inhibits the use of TAB characters for separating columns.
* you can create a backup of FILE with cp --force --backup FILE FILE. Before,
that command failed saying that ``FILE' and `FILE' are the same file'.
* uses automake-generated Makefile templates
* chown and chgrp accept new option --no-dereference (-h)
* ln -f FILE FILE fails with a diagnostic rather than silently removing FILE
* when building on systems that have getopt_long (most GNU-oriented ones),
the system-provided function will be used -- so executables may be a
little smaller
* cp -p, and mv modify owner and/or group of symlinks on systems
(like Solaris) that provide the lchown system call.
* df no longer invokes the sync system call by default. You can use the
--sync option to make df invoke sync before getting file system sizes.
* internationalized diagnostic messages
* mkdir accepts new option: --verbose
* `cp file D/' uses the full file name `D/file' instead of `D//file'.
* cp --backup a~ a fails instead of silently destroying the source file
* df and du have new options --human-readable (-h) and --megabytes (-m).
* install now honors --backup (-b), --suffix=SUFFIX (-S SUFFIX), and
--version-control=WORD (-V WORD) options just as cp, ln, and mv do.
* ln --verbose output is less prone to misinterpretation
* ls -o works like -lG; for compatibility with other versions of ls
* cp has a new option to control creation of sparse files:
--sparse={auto,always,never}. --sparse=auto is the default.
* rm -rf '' behaves properly on SunOS 4 systems
* touch: rename long option name, --file, to --reference.
`touch --file' will continue to work a little longer.
* df fails if the same file system type is both selected and excluded.
* df works around SunOS statfs brokenness wrt filesystems larger than 2GB
* df better handles inconsistent mtab entries
* `ls -lDR dir dir2' works
* `ls -c' does what it's supposed to
* all programs include program name in --version output
* `ls --quote-name' works
* mv properly determines whether src and dest are the same file
Before, it could (though with very low probability) fail to do the move,
reporting that distinct source and destination are the same file.
* du --dereference (-L) works with directory symlinks
* du works on SunOS 4 systems even when accounting is enabled
* many programs that convert strings to integers now use strtol or strtoul
and detect overflow
User-visible changes in release 3.12:
* None.
User-visible changes in release 3.11:
* None.
User-visible changes in release 3.10:
* mkdir -p now ignores arguments that are existing directories. Before,
(contrary to POSIX spec) it would attempt to change ownership and/or
protections of existing directories listed on the command line. And
it would fail when such a directory was owned by another user.
* Fix bug in cp that made the commands `mkdir dir; touch foo; cp -P foo dir'
incorrectly change the permissions on directory, dir.
* df accepts a new option, --no-sync, that inhibits the default invocation
of the sync system call.
* ls accepts a new option, --dired, that makes emacs' dired mode more efficient
* skeletal texinfo documentation (mainly just the `invoking' nodes)
* ln accepts a new option: --no-dereference (-n). With this option,
if the destination command line argument is a symlink to a directory,
use that as the destination instead of the file in the directory.
* `ln -i no-such-file existing-file' gives a diagnostic and fails.
Before, if you responded `yes' to the prompt it would both remove
`existing-file' and fail to make a link.
* du no longer requires read access to all of the directory components
of the current working directory on systems with fchdir.
* touch -d 'date' is no longer off by one hour.
* New program: sync.
* Fix bug in cp that made the commands `ln -s . s; cp -rd s r' incorrectly
create `r' as a symlink instead of as a regular file.
* du's -S and -c options now work when used together.
Before, the grand total was always reported to be zero.
Major changes in release 3.9:
* --help gives a one-line description of each option and shows the
correspondence between short and long-named options.
* work around systems with BROKEN_STAT_MACROS
* work around problem where $(srcdir)/config.h was used instead of
../config.h -- this happened only when building in a subdirectory
and when config.h remained in $(srcdir) from a previous ./configure.
* GNU chmod treats symlinks the same way other vendor's versions do.
Now symlinks listed on the command line are processed (they were
ignored before); the permissions of the dereferenced files are
changed. Symlinks encountered in recursive traversals are still
ignored. This makes GNU chmod act more like e.g. Sun's.
* configure uses config.h, so DEFS won't exceed preprocessor limits of
some compilers on the number of symbols defined via -D.
* ls and cp can handle mount points on more systems
* cp, mkdir, and rmdir long option --path renamed to --parents; --path
will still work for a while
* cp, ln, and mv convert `cp A B/' to cp A B/A when A is not a directory.
This change affects only the two-argument form of the commands. It makes
such commands fail when the target has a trailing slash but is not a
directory or symlink to a directory and the source is not a directory.
They used to succeed, ignoring the implicitly contradictory trailing slash.
Major changes in release 3.8:
* install isn't as likely to produce spurious errors
* avoid redundant compilations for `dir' and `vdir';
* configure properly defines STAT_STATFS2_BSIZE on a Pyramid MIServer
running OSx 5.1
Major changes in release 3.7:
* none
Major changes in release 3.6:
* `ln -s dir_pathname .' works when the pathname has a trailing slash
* with the --version option programs print the version and exit immediately
* GNU ls -f works like Unix ls -f
* mktime replacement works
Major changes in release 3.5:
* adds support for DEC Alpha under OSF/1
* configuring with gcc uses CFLAGS='-g -O' by default
* all programs accept --help and --version options
* long-named options must be introduced with `--'; `+' is no longer
accepted since it is incompatible with the POSIX.2 standard
* chmod accepts long-named options
* dd conv=unblock doesn't hang
* new df option --exclude=fstype
* new ls option --full-time
Major changes in release 3.4:
* cp -p and mv preserve setuid and setgid bits
* chown works on systems where sizeof(uid_t) != sizeof(int)
or sizeof(uid) != sizeof(gid)
* catch errors from spurious slashes at ends of arguments
Major changes in release 3.3:
* df sped up by not calling sync for every filesystem
* df ported to AIX (RS/6000 and PS/2), and SVR2 port fixed
* df -i now also prints the total number of inodes per filesystem
* ls sped up by not reading symlink contents unnecessarily
* du doesn't die on POSIX systems when the root filesystem is NFS mounted
* cp and mv report chown Permission denied errors when run by root
========================================================================
Copyright (C) 1992-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,283 +0,0 @@
[2.0.15]
* date no longer accepts e.g., September 31 in the MMDDhhmm syntax
* fix a bug in this package's .m4 files and in configure.ac
[2.0.14]
* nohup's behavior is changed as follows, to conform to POSIX 1003.1-2001:
- nohup no longer adjusts scheduling priority; use "nice" for that.
- nohup now redirects stderr to stdout, if stderr is not a terminal.
- nohup exit status is now 126 if command was found but not invoked,
127 if nohup failed or if command was not found.
[2.0.13]
* uname and uptime work better on *BSD systems
* pathchk now exits nonzero for a path with a directory component
that specifies a non-directory
[2.0.12]
* kill: new program
* who accepts new options: --all (-a), --boot (-b), --dead (-d), --login,
--process (-p), --runlevel (-r), --short (-s), --time (-t), --users (-u).
The -u option now produces POSIX-specified results and is the same as
the long option `--users'. --idle is no longer the same as -u.
* The following changes apply on systems conforming to POSIX 1003.1-2001,
and are required by the new POSIX standard:
- `date -I' is no longer supported. Instead, use `date --iso-8601'.
- `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
* New 'uname' options -i or --hardware-platform, and -o or --operating-system.
'uname -a' now outputs -i and -o information at the end.
New uname option --kernel-version is an alias for -v.
Uname option --release has been renamed to --kernel-release,
and --sysname has been renamed to --kernel-name;
the old options will work for a while, but are no longer documented.
* 'expr' now uses the LC_COLLATE locale for string comparison, as per POSIX.
* 'expr' now requires '+' rather than 'quote' to quote tokens;
this removes an incompatibility with POSIX.
* date -d 'last friday' would print a date/time that was one hour off
(e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
when run such that the current time and the target date/time fall on
opposite sides of a daylight savings time transition.
This problem arose only with relative date strings like `last monday'.
It was not a problem with strings that include absolute dates.
* factor is twice as fast, for large numbers
[2.0.11]
* setting the date now works properly, even when using -u
* `date -f - < /dev/null' no longer dumps core
* some DOS/Windows portability changes
[2.0j]
* `date -d DATE' now parses certain relative DATEs correctly
[2.0i]
* fixed a bug introduced in 2.0h that made many programs fail with a
`write error' when invoked with the --version option
[2.0h]
* all programs fail when printing --help or --version output to a full device
* printf exits nonzero upon write failure
* yes now detects and terminates upon write failure
* date --rfc-822 now always emits day and month names from the `C' locale
* portability tweaks for Solaris8, Ultrix, and DOS
[2.0g]
* date now handles two-digit years with leading zeros correctly.
* printf interprets unicode, \uNNNN \UNNNNNNNN, on systems with the
required support; from Bruno Haible.
* stty's rprnt attribute now works on HPUX 10.20
* seq's --equal-width option works more portably
[2.0f]
* fix build problems with ut_name vs. ut_user
[2.0e]
* stty: fix long-standing bug that caused test failures on at least HPUX
systems when COLUMNS was set to zero
* still more portability fixes
* unified lib/: now that directory and most of the configuration framework
is common between fileutils, textutils, and sh-utils
[2.0d]
* fix portability problem with sleep vs lib/strtod.c's requirement for -lm
[2.0c]
* fix portability problems with nanosleep.c and with the new code in sleep.c
[2.0b]
* Regenerate lib/Makefile.in so that nanosleep.c is distributed.
[2.0a]
* sleep accepts floating point arguments on command line
* sleep's clock continues counting down when sleep is suspended
* when a suspended sleep process is resumed, it continues sleeping if
there is any time remaining
* who once again prints whatever host information it has, even without --lookup
Changes in release 2.0
* disable stty tests (otherwise they fail) when `make check' is run via rsh
[1.16m]
* false and true now ignore --help and --version when POSIXLY_CORRECT is set
[1.16l]
* false and true are now C programs rather than shell scripts
[1.16k]
* fix typos in my version of AC_SEARCH_LIBS.
* fix dates on config files so builders don't need autoconf/automake
[1.16j]
* work around problems with my use of AC_SEARCH_LIBS
* fix a bug in id
[1.16i]
* portability tweaks for lib/readutmp.[ch] and src/date.c
[1.16h]
* seq with no arguments now elicits a useful diagnostic rather than a segfault
* portability tweaks to work around utmpname differences
* who works on Solaris
[1.16g]
* factor now uses uintmax_t, so the largest number it can factor is now 2^64 - 1
on systems with type `long long'.
* nohup no longer modifies the shell's search path
* `basename /' now prints `/', per the single unix spec
* `who --lookup' no longer erroneously reports `localhost' for IP addresses
for which it could not do a reverse lookup.
* `id user' wouldn't report a group id in some situations. Now it always does.
[1.16f]
* chroot now calls chdir ("/") after chroot.
* `date -s' now exits with nonzero status upon failure
* new autoconf tests detect bugs in vendor mktime from Irix-6.4 and SunOS4.1.4
Your executables will be a little larger on such systems because you'll use
GNU's mktime function, but date will work more reliably.
* hostid: new program
* `yes --help' and `yes --version' print those strings when the POSIXLY_CORRECT
environment variable is set
* who no longer does DNS lookups by default -- the new option, --lookup (-l),
enables lookups
[1.16e]
* pinky: new lightweight finger-style program
[1.16d]
* the groups script now exits non-zero and doesn't print anything more
when `id' fails
[1.16c]
* date -u -d DATE now prints the correct date
* don't remove already-installed su unless it is possible to install the
new one setuid root.
[1.16b]
[1.16a]
* expr accepts new unary operator, quote.
* expr now returns 0 for failed matches where pattern contained e.g., `\\('
* date -d DATE now works on Unicos systems
* add tests for factor and more for date.
* factor runs a lot faster for large 64-bit inputs
* date works with relative offsets involving the `next' keyword
Changes in release 1.16
* stty -tabs works properly
* add tests for date
* date --date "02/29/1996 - 1 year" now works properly
Changes in release 1.15
* nice works with very recently-changed GNU libc getopt
* fix several bugs in m4 macros used to create `configure' script
* id works on systems with disfunctional getgroups function
* uptime configure test detects /proc/uptime on Linux
Changes in release 1.14
* fix bug in getdate.y that broke date's --date=DATE option on systems
like SunOS4.
* expr treats unadorned ? and + as literals. To make expr treat them as
operators you have to use \? and \+.
Changes in release 1.13
* two patches for ISC
* Regenerate all Makefile.in using a patched version of automake-1.1l.
[1.12s]
* lots of little bug fixes -- see ChangeLog
[1.12r]
* uname --processor (-p) works on systems that have sysinfo and define
SI_ARCHITECTURE.
* stty works better on systems like i386-pc-isc3.0
* date --date=DATE accepts dates like those in an RCS log listing, e.g.,
`1992/11/01 05:44:34'.
* printf now warns if excess arguments are ignored.
* tee no longer fails immediately upon receipt of SIGPIPE
[1.12q]
* running `make check' runs tests of nice
* lots of configuration-related improvements
* nice allows `+' in options like -+8 and -+13.
* when matching, expr warns about non-portability when the first character
of the basic regular expression is `^'
* `id user' no longer prints bogus group list
* uses automake-generated Makefile templates
* date accepts new %V format
* date's %U and %W formats work properly
* nice option handling works with 2-digit old-style-option adjustments.
Now, `nice -18 -- nice' prints `18'. Before it printed `8'.
* internationalized diagnostic messages
* `date -d "01/01/1998 3 years" +%Y' now works properly. It prints 2001.
* New programs: chroot, factor, seq, uptime.
* date accepts new option: --rfc-822 (-R)
* date accepts new format, %z, for RFC-822 style numeric timezone (-0500)
* date: fix bugs in the handling of date -u +'%s %Z'.
* date accepts new option --reference=FILE (-r FILE) analogous to the
like-named touch option.
* date can now format dates up to and including ones in the year 2037
User visible changes in release 1.12
* None.
User visible changes in release 1.11
* date accepts new option: (-f) --file=DATEFILE
* skeletal texinfo documentation (mainly just the `invoking' nodes)
* `stty werase ^W' works. Before, werase wasn't enabled for AIX-3.2.5.
* su with no arguments works properly
* nice accepts options like `--5' (this is interpreted like `-n -5')
* nice now interprets `-1 -1' like `-1' not like `-11'
* `stty speed' and `stty size' no longer output a spurious newline
User visible changes in release 1.10
* change package name from shellutils to sh-utils
* add hostname, pwd, and users commands
* --version outputs the name of the utility as well as the package name
and version number.
* Configure properly determines options for stty on SCO ODT 3.0 systems.
* `date -d' works better. Before, `date -d '4apr94'' produced
`Sun Apr 3 23:00:00 CDT 1994'.
User visible changes in release 1.9.4
* Repair stty option handling.
User visible changes in release 1.9.3
* `stty -a -g' gets a diagnostic
* `stty {-a|-g} any-other-argument' gets a diagnostic
* stty no longer ignores some of its arguments
* basename and dirname no longer treat `--' specially
* `basename -- file.c .c' generates a usage error. Before, it output `file'.
* `basename file-dist -dist' outputs `file'. Before it output `file-dist'.
* stty defaults `swtch' to undefined for Solaris so `susp' (^Z) will work.
Before, with the default settings ^Z did nothing.
* stty no longer gives an error message when it finds a spurious difference
(due to buggy tcgetattr/tcsetattr) between requested and current tty
modes under SunOS 4.1.x.
* stty no longer fails if the ioctl to determine the display width fails
when displaying settings.
* stty works around SunOS 4.x kernel bug that made `stty rows 0 cols 0' fail.
* who and tee no longer fail gratuitously when continued after an
interrupted read or write system call.
* date accepts new format: %s time in seconds since 1970-01-01 00:00:00 UCT
* date -d can parse dates like `11-JUL-1991'
* expr '' == 0 works (before, it printed 1)
* stty no longer fails on telnet sessions to Solaris systems
* `cd /etc; who utmp' now works. Before, any filename argument had to be
absolute or relative to /dev.
User visible changes in release 1.9.2:
* who output is better formatted on Solaris and other SysVr4 systems
* fix a minor problem in formatting the output from `stty -a'
* yes with arguments outputs newlines again
* partial stty failures are reported
Major changes in release 1.9.1:
* stty can be built on Suns again
* minor fix for who -q
Major changes in release 1.9:
* su fails gracefully when getpass is unable to open /dev/tty.
* printenv and tty detect and report write errors
* fix bug in stty
* stty accepts the new options status and flush on systems that provide them
* `expr 1 / 0' gives an error message rather than trying to divide by zero
* expr's `substr' doesn't overrun malloc'd buffer
* expr recognizes the string `0' as zero
* better support for Linux, Dec Alpha, and SGI Irix
* all programs (even true and false) accept --version and --help options
* uname's --version option is no longer equivalent to its -v option
* configure uses config.h, so DEFS won't exceed preprocessor limits of
some compilers on the number of symbols defined via -D.
* work around problem where $(srcdir)/config.h was used instead of
../config.h -- this happened only when building in a subdirectory
and when config.h remained in $(srcdir) from a previous ./configure.
* make may be run from the subdirectories
Major changes in release 1.8:
* add echo command
* fix some incorrect warnings in pathchk
* look at the right utmp file on 386BSD
* date doesn't dump core on some systems now
Major changes in release 1.7:
* add su, who, true, false commands
* add more tests to expr
* fix printf program handling of \ escapes
* printf can re-use format string for multiple groups of arguments
* printf catches numeric conversion errors with an ANSI C library
* stty nl and -nl were backwards
* date can format an arbitrary date without setting it
========================================================================
Copyright (C) 1992-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.

File diff suppressed because it is too large Load Diff

View File

@@ -1,471 +0,0 @@
Changes in release 2.1
[2.0.22]
* `od -t f8' works once again [bug introduced in textutils-2.0.8]
* various portability fixes, and general clean-up
* various minor, corner-case bug fixes
[2.0.21]
* split accepts new option -a or --suffix-length.
* split no longer generates longer suffixes than requested; instead, it reports
an error when suffixes are exhausted. POSIX requires this behavior.
* The _POSIX2_VERSION environment variable lets you select which version
of POSIX the utilities should conform to. Its default value is system
dependent. Set _POSIX2_VERSION=199209 to cause the utilities to support
obsolete usage like "sort +1".
* The following obsolete usages are no longer supported when conforming
to POSIX 1003.1-2001, which (at the time this change was made) was thought
to say that implementations must reject most digit-string options:
expand -N (instead, use expand -t N)
head -N (instead, use head -c N or head -n N)
fold -N (instead, use fold -w N)
split -N (instead, use split -l N)
tail -N (instead, use tail -c N or tail -n N)
unexpand -N (instead, use unexpand --first-only -t N)
uniq -N (instead, use uniq -f N)
The following obsolete usages (options without arguments) are no
longer supported when conforming to POSIX 1003.1-2001, which (at the
time this change was made) was thought to say that implementations must
reject options with optional arguments:
od -s (instead, use od --strings)
od -w (instead, use od --width)
pr -S (instead, use pr --sep-string)
[2.0.20]
* tr no longer gets failed a assertion for [==] or [::]
* The following obsolete usages are no longer supported when conforming
to POSIX 1003.1-2001, which says that arguments with leading "+"
are file names in these contexts:
sort +POS1 (instead, use sort -k)
tail +N (instead, use tail -c +N or tail -n +N)
uniq +N (instead, use uniq -s N)
* Warnings are issued for obsolete usages on older hosts,
unless POSIXLY_CORRECT is set in the environment.
* sort -m no longer segfaults when given an empty file
* sort -S now accepts 'K' as a synonym for 'k'.
* wc recognizes all locale-defined white-space characters, not just those
in the "C" locale.
[2.0.19]
* portability tweak to make lib/regex.c compile
* split translatable strings only in the middle of sentences
[2.0.18]
* sort could segfault on systems without a working mkstemp function and
with a gettimeofday function that clobbers the static buffer that
localtime uses for it's return value -- introduced in 2.0.17
[2.0.17]
* csplit no longer gets a failed assertion for this:
printf 'a\n\n'|csplit - '/^$/' 2
* sort detects physical memory attributes more portably
* tail no longer gets a segfault on Linux's /proc/ksyms
* sum -s produces the proper 16-bit checksum for large files
(this fixes a bug that was introduced in 2.0f)
* uniq is now about 3 times faster than the version from 2.0 on Linux systems;
the code uses lock-avoiding variants of common I/O functions
[2.0.16]
* tail -F no longer segfaults
[2.0.15]
* `head -c N' and `od -N N' now read no more than N bytes of input
* tail accepts new option: -F, equivalent to `--follow=name --retry',
for compatibility with the FreeBSD and NetBSD versions of tail.
* fmt no longer segfaults when using a maximum line width larger than 32767
* uniq's --all-repeated option has new modes to delimit groups
of duplicate lines: --all-repeated={precede,separate,none(default)}
[2.0.14]
* sort now accepts long options like "--reverse" and "--".
* sort now checks option syntax as POSIX requires, except that (as usual
for GNU) options can follow file names unless POSIXLY_CORRECT is set.
For example, invalid positional combinations like "sort +1 -r -2" are
now rejected as per POSIX.
* The next POSIX standard will require that obsolescent 'sort'
positional options like +1 be treated as file names, not options.
Please use 'sort -k' instead.
[2.0.13]
* pr accepts new -D or --date option, to specify date format.
* The following changes are required by POSIX:
- If POSIXLY_CORRECT is set, dates in pr headers now look something like
'Dec 4 23:59 2001', with the exact appearance affected by LC_TIME.
- pr -h now affects only the center header string, not the entire header.
- pr no longer truncates headers.
* Spacing in pr headers has been adjusted slightly.
* `fmt --prefix=S' now works when S contains a byte with the high bit set
[2.0.12]
* sort has improved performance when using very little main memory
* sort has improved memory management
* sort is no longer susceptible to certain denial of service attacks
* sort no longer suffers from a race condition whereby an interrupt received
during cleanup could cause it to fail to remove temporary files.
This problem could arise only on hosts without sigaction.
[2.0.11]
* sort accepts new -S SIZE option, to specify main-memory usage.
[2.0.10]
* od is faster and more portable than it was in 2.0.9
* tail avoids an uninitialized memory reference
[2.0.9]
* od now prints valid addresses for offsets of 2^32 and larger, and allows
the byte offset (-j) and byte count (-N) arguments to be 2^32 and larger.
* tail now works with line and byte counts of 2^32 and larger, on systems
with large file support
* join now works with an 8-bit delimiter
* fix a compilation failure on some Solaris systems with wc.c
[2.0.8]
* od now supports 8-byte integers, assuming they're printable with e.g., %lld
* new program: sha1sum
* wc accepts new -m option: count (potentially multi-byte) characters
* wc's `--chars' option is now equivalent to -m, not --bytes as it used to be
* `cat -n' works properly when processing 2^31 or more lines
[2.0g]
* sort's --help output now warns that it is locale-aware
* tail: fix a buffer underrun error that occurred on an empty pipe,
also thanks to bounded pointers
* pr: fix a bounds violation found by Greg McGary's bounded-pointers-enabled gcc
It could have caused (with low probability) the columns on the last page of
output *not* to be `balanced' when they should have been.
* sort: if the -T tmpdir option is given multiple times, all the given
directories are used; this can improve performance for huge sort/merges.
[2.0f]
* all programs fail when printing --help or --version output to a full device
* cut no longer gets a segfault under some circumstances
* unexpand accepts new option: --first-only
[2.0e]
* `tail -f directory' no longer gets a failed assertion
* sort: big performance improvement when sorting many small files;
from Charles Randall
* configure and portability changes in m4/ and lib/
[2.0d]
* preliminary sort performance improvements
* tsort now works more like the traditional UNIX tsort. Before it would
exit when it found a loop. Now it continues and outputs all items.
* unexpand no longer infloops on certain sequences of white space
* unified lib/: now that directory and most of the configuration framework
is common between fileutils, textutils, and sh-utils
[2.0c]
* include lib/nanosleep.h.
[2.0b]
* portability tweaks for error.c vs. systems with deficient strerror_r
[2.0a]
* `tail --follow=name' no longer gets a failed assertion for a
dev,inode-reusing race condition
* sort and comm no longer consider newlines to be part of the line,
as this requirement will likely be removed from POSIX.2.
This undoes some changes made for textutils 1.22m and 1.22n.
* tail's (short only) -f option no longer accepts an optional argument,
so e.g., `tail -fn 2 file' works again.
* tail no longer refuses to operate on certain types of files
* fixed bug in tsort's handling of cycles
Changes in release 2.0
[1.22q]
* HPUX portability fix: md5sum would dump core due to use of libc's getline
[1.22p]
* portability fixes from Paul Eggert based largely on tar-1.13 reports
* `tail --pid=PID' now works even when PID belongs to some other user
[1.22o]
* tail accepts new option: --pid=PID
[1.22n]
* tail accepts the following new options (some of which were added in 1.22g):
--retry
--follow[={name|descriptor}]
--max-unchanged-stats=N
--max-consecutive-size-changes=N
--sleep-interval=S
* wc uses the POSIX-mandated output format when POSIXLY_CORRECT is set
* To maintain compatibility with sort, comm and join now obey the LC_COLLATE
locale, and comm now considers newlines to be part of the lines.
* use lib/memchr.c only if it's not provided by the system -- this means
that on systems with a fast library memchr function you may notice an
improvement. If you use a system with a buggy or signifcantly slower
memchr, please report it.
[1.22m]
* sort now considers newlines to be part of the line, as required by POSIX.2.
E.g. a line starting with a tab now sorts before an empty line,
since tab precedes newline in the ASCII collating sequence.
* sort handles NUL bytes correctly when configured/compiled with --enable-nls
* fix typos in my version of AC_SEARCH_LIBS.
* fix dates on config files so builders don't need autoconf/automake
[1.22l]
* sort no longer autodetects the locale of numbers and months,
as that conflicts with POSIX.2
* `join -tC' now works when input contains trailing spaces
* portability tweaks for Irix's cc
[1.22k]
* `sort -n' works with negative numbers when configured/compiled
with --enable-nls
* head accepts byte and line counts of type uintmax_t (so up to 2^64 - 1)
[1.22j]
* tail: fix bug introduced in 1.22i
[1.22i]
* tail now terminates in `yes > k & sleep 1; tail -2c k'
* `tail -f' now ensures that stdout is unbuffered
* fix a bug in cut to allow use of 8-bit delimiters
* pr accepts POSIX compliant options -s and -w,
the new capital letter options -J, -S and _W turn off the
unexpected interferences of the small letter options -s and -w
if used together with the column options.
* pr output has been adapted to other UNIXes in some cases.
[1.22h]
* portability tweaks
* Window/NT/DOS support
[1.22g]
* uniq accepts new option: --all-repeated (-D).
* Windows/DOS portability fixes
* new program: tsort
* tail has several new options
* md5sum can handle file names with embedded backslash characters
* pr accepts long option names (see `pr --help')
* new program: ptx (moved to this package from being its own distribution)
[1.22f]
* cut accepts new --output-delimiter=STR option
* `sort -o no-such-file no-such-file' now fails, as it should
* fix pr bug: pr -td didn't double space
* fix tac bug when using -b, -r, and -s SEPARATOR
* fix sort bug whereby using key-local `d' option would cause following
key specs to be ignored when any two keys (in the `d'-modified test)
compared equal.
[1.22e]
* remove maintainer mode
[1.22d]
* wc accepts new option: --max-line-length (-L)
* sort can sort according to your locale if your C library supports that
[1.22c]
[1.22b]
* od supports a new trailing `z' character in a type specification:
$ od -tx1z .
0000000 be ef c6 0f fd f9 d7 e0 ec cb f3 c6 00 db e8 00 >................<
0000020 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 00 00 >................<
0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................<
*
0000600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 cc >..............5.<
0000620 05 63 76 74 2e 6f 00 00 29 ac 08 70 72 6f 6a 65 >.cvt.o..)..proje<
0000640 63 74 73 00 00 00 18 9a 05 63 76 74 2e 63 00 00 >cts......cvt.c..<
0000660 18 d9 03 52 43 53 00 00 18 c0 05 78 2e 64 61 74 >...RCS.....x.dat<
[1.22a]
* sort -c reports both the number and the contents of the first out-of-order
line, in addition to the file name.
* `head -c 4096m' is no longer treated just like `head -c 0'
now it gets a diagnostic about 4096m being too large.
* pr: For compatibility (also more POSIX compliant): Include default
separator `TAB' when merging lines of full length.
* When POSIXLY_CORRECT is not set, tail -N now accepts more than one file
argument, to be consistent with the way head -N works. If POSIXLY_CORRECT
is set, using two or more file arguments with the obsolescent form (-N)
evokes an error. To avoid the warning or failure, use the POSIX -n N option
or the GNU --lines=N option.
Changes in release 1.22
[1.21a]
* Fix a bug in tail when invoked with an argument like `+NUMBERc'
* Add test suite for tail
Changes in release 1.21
* Using --program-prefix no longer applies the prefix twice
Changes in release 1.20
* fix pr: -l now uses total number of lines per page also with -f
* fix pr: use left-hand-side truncation of header string to avoid line
overflow
* fix pr: it now accepts `form feeds set in input files', also with -m
and multiple form feeds at different pages in each file
* pr now accepts: -h "", print a blank line header
* pr: when skipping pages (+FIRST_PAGE option) line counting (-n option)
starts with 1st line of input file (not of 1st page printed) by default
* pr accepts new option: -N, start printing with an optional line number
* pr -t retains `form feeds set in input files' (`don't destroy page layout')
* pr accepts new option: -T, equivalent to -t, but eliminate also form feeds
(`clear file')
* pr accepts the extension: +FIRST_PAGE[:LAST_PAGE]
* pr -w and -s option disentangled (`use a separator' no longer destroys
column alignment)
* pr accepts new option: -j, merge lines of full length
* pr accepts the extension: -s[STRING], use separator string instead of
character only
* pr -b is no longer an independent option, balancing is always used
with -COLUMN (a requirement of unrestricted use of form feeds)
* pr accepts new option: --test, to run the pr tests with a constant
header string
* join passes all of its tests on Alpha OSF 4.0.
* sort no longer improperly ignores blanks in determining starting and ending
positions for keys with explicit character offsets
* fix bug in csplit with regexp and negative offset that led to infinite loop
Changes in test release 1.19q
* fix bug in sort -c that sometimes resulted in a segfault
Changes in test release 1.19p
* md5sum's --string option is being deprecated and is no longer documented.
It is still accepted, but will be removed altogether in 1.22.
* tr '[:lower:]' '[:upper:]' no longer fails when LC_CTYPE is set to
iso_8859_1 on Solaris -- or any other character set with differing
numbers of uppercase and lowercase characters
* split and tail diagnose unrecognized multiplier suffixes, in e.g.,
`split --bytes=1M' (should be `-b 1m' or `--bytes=1m')
* fix bug in md5sum's handling of partial reads
* fix bug in treatment by sort -f of bytes with high-bit set
* update configuration system to use automake's aclocal program
* configure performs sanity check on CC and CFLAGS to avoid a misleading
failure that suggested cross-compiling was the cause
* distribute test suites for cut, join, sort, and tr
* unexpand no longer gets in endless loop
* when verifying checksums, md5sum uses the binary mode flag from the
input stream rather than the one from the command line
Changes in release 1.19
* md5sum can verify digests of files with names containing newline characters
* update from gettext-0.10.20.
Changes in release 1.18
* when building sort, link with -lm on systems that use the replacement strtod
* update from gettext-0.10.17.
Changes in release 1.17
* include texinfo.tex in the distribution
Changes in release 1.16
* sort is compatible with Unix sort when a key-end spec refers to the N'th
character in a field that has fewer than N characters
* tail with old-style options like -20k and +31m operates on units of bytes,
as the --help usage message says. Before, it used units of lines.
Changes in release 1.15
* od gives better diagnostics for invalid format specs
* uses automake-generated Makefile templates
* configure takes a new option: --enable-maintainer-mode
* fix a bug in fmt when prefix has trailing white space
* internationalized diagnostic messages
* fix a couple bugs in tr involving use of -c and/or -d flags -- see ChangeLog
* diagnose some improper or questionable invocations of csplit
* properly handle `echo |csplit - 1 1', rather than aborting
* fix join: without -t it now ignores leading blanks
* sort accepts new option: -z for NUL terminated records
* join accepts new option: --ignore-case, -i
* uniq accepts new option: --ignore-case, -i
User-visible changes in release 1.14
* sort -i and sort -d properly order strings containing ignored characters
* nl: rename misleading --first-page=N option to --starting-line-number=N.
* sort diagnoses invalid arguments to -k, then fails
* sort -n properly orders invalid integers with respect to valid integers
* sorting works with character offsets larger than corresponding field width
* sort's -b option and `b' modifier work
* sort -k2,2 works.
* csplit detects integer overflow when converting command line arguments
* sort accepts new option/flag, -g, for sorting numbers in scientific notation
* join accepts POSIX `-o 0' field specifier.
* tr 'a[b*512]' '[a*]' < /dev/null terminates
* tr '[:*3][:digit:]' 'a-m' and tr 'a[=*2][=c=]' 'xyyz' no longer fail
* special characters in tr's string1 and string2 may be escaped with backslash
User-visible changes in release 1.13
* md5sum: with --check, distinguish between open/read failure and bad checksum
* md5sum: remove -h, -s, -v short options
* md5sum: rename --verbose to --warn, --quiet to --status
* md5sum --check fails if it finds no properly formatted checksum lines
* sort -c prints `disorder on...' message on standard error, not stdout
* sort -k works as described in the texinfo documentation
* tail works on NetBSD
* md5sum reads and writes (de facto) standard Plumb/Lankester format
* sort accepts -.1 +.2 options for compatibility
* od works properly when dump limit is specified and is a multiple of
bytes_per_block (set by --width, 16 by default).
User-visible changes in release 1.12
* sort no longer reports spurious errors on Ultrix systems
* new program: md5sum
* all --help messages have been improved
* join's -a1 and -a2 options work
* tr '[:upper:]' '[:lower:]' no longer reads uninitialized memory
* sort properly handles command line arguments like `+7.2n'
* fmt properly formats paragraphs not terminated by a newline
* tail -f flushes stdout before sleeping so that it will output partial
lines sooner
* sort properly orders fields where one field is a proper prefix of the other
* sort properly interprets field offsets specified via the -k option
* dd, od, and tail work on systems for which off_t is long long (e.g. BSD4.4)
* wc is faster when not counting words
* wc now works even when file pointer isn't at beginning of file
* expand no longer seg faults with very long tab lists
User-visible changes in release 1.11
* fmt is built
User-visible changes in release 1.10
* skeletal texinfo documentation (mainly just the `invoking' nodes)
* new program: fmt
* tail -f on multiple files reports file truncation
* tail -q has been fixed so it never prints headers
* wc -c is much faster when operating on non-regular files
* unexpand gives a diagnostic (rather than a segfault) when given a name of
a nonexistent file.
* cat, csplit, head, split, sum, tac, tail, tr, and wc no longer fail
gratuitously when continued after a suspended read or write system call.
* cut interprets -d '' to mean `use the NUL byte as the delimiter' rather
than reporting that no delimiter was specified and failing.
* `echo a:b:c: | cut -d: -f3,4' prints `c:'. Before it printed just `c'.
* cut has been rewritten, is markedly faster for large inputs, and passes a
fairly large test suite.
* sort properly handles the argument to the -T option.
Major changes in release 1.9.1:
* cut no longer ignores the last line of input when that line lacks a
trailing newline character
Major changes in release 1.9:
* `echo a:b:c: | cut -d: -f3-' prints `c:' and
`echo a:b | cut -d: -f1' prints `a'.
* the command `printf '\t\n' |fold -w n' now terminates.
Before, it wouldn't stop for n less than 8.
* sort accepts and ignores -y[string] options for compatibilty with Solaris.
* cat -v /dev/null works on more systems
* od's --compatible (-C) flag renamed to --traditional (no short option)
* --help and --version exit successfully
* --help gives a one-line description of each option and shows the
correspondence between short and long-named options.
* fix bug in cut. Now `echo 'a:b:c:' | cut -d: -f3-' works.
Before it printed `c' instead of `c:'
* csplit allows repeat counts to be specified via `{*}'.
* csplit accepts a new option, --suffix=format that supercedes the
--digits option. The --digits option will continue to work.
* csplit accepts a new option, --elide-empty-files.
* configure uses config.h, so DEFS won't exceed preprocessor limits of
some compilers on the number of symbols defined via -D.
* work around problem where $(srcdir)/config.h was used instead of
../config.h -- this happened only when building in a subdirectory
and when config.h remained in $(srcdir) from a previous ./configure.
Major changes in release 1.8:
* added non-ANSIfied version of memchr.c from GNU libc.
Major changes in release 1.7:
* none
Major changes in release 1.6:
* with the --version option programs print the version and exit immediately
* pr -2a really terminates
* pr -n produces multi-column output
Major changes in release 1.5:
* sort is 8-bit clean
* sort's -n and -M options no longer imply -b
* several bugs in sort have been fixed
* all programs accept --help and --version options
* od --compatible accepts pre-POSIX arguments
* pr -2a terminates
Major changes in release 1.4:
* add od and cksum programs
* move cmp to GNU diff distribution
* tail -f works for multiple files
* pr prints the file name in error messages
* fix some off by 1 errors in pr and fold
* optimize wc -c on regular files
* sort handles `-' argument correctly
* sort supports -T option
* tr ranges like a-a work
* tr x '' fails gracefully
* default sum output format is BSD compatible
* paste -d '' works
========================================================================
Copyright (C) 1992-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.

View File

@@ -1,253 +0,0 @@
2007-08-19 Eric Blake <ebb9@byu.net>
* POTFILES.in: Add lib/closein.c.
2007-08-08 Jim Meyering <jim@meyering.net>
Adapt to gnulib's latest xstrtol change.
* POTFILES.in: Use lib/xstrtol-error.c, not lib/xstrtol.h.
2007-08-04 Jim Meyering <jim@meyering.net>
* POTFILES.in: Remove lib/human.c.
2007-05-19 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/mktemp.c.
2007-02-02 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/runcon.c.
2007-01-13 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/chcon.c.
2006-10-19 Jim Meyering <jim@meyering.net>
* POTFILES.in: Also include lib/regcomp.c, since it too uses gettext.
2006-10-19 Paul Eggert <eggert@cs.ucla.edu>
* POTFILES.in: Add lib/xstrtol.h.
2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
* .cvsignore: More ../bootstrap-related fixes, plus remove old
cruft. Add *.po, LINGUAS, Makevars. Remove *.cat, *.msg,
cat-id-dbl.c, messages.mo, stamp-cat-id.
2006-08-22 Jim Meyering <jim@meyering.net>
* .cvsignore: Add files that are now generated by ../bootstrap.
2006-08-20 Paul Eggert <eggert@cs.ucla.edu>
* LINGUAS, Makefile.in.in, Makevars, Rules-quot, af.po, be.po:
* bg.po, boldquot.sed, ca.po, cs.po, da.po, de.po, el.po:
* en@boldquot.header, en@quot.header, es.po, et.po, eu.po:
* fi.po, fr.po, ga.po, gl.po, hr.po, hu.po, insert-header.sin:
* it.po, ja.po, ko.po, lg.po, ms.po, nb.po, nl.po, no.po, pl.po:
* pt.po, pt_BR.po, quot.sed, remove-potcdate.sin, ro.po, ru.po:
* rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, uk.po, vi.po, wa.po:
* zh_CN.po, zh_TW.po:
Remove from CVS, since ../bootstrap generates them automatically.
2006-08-17 Paul Eggert <eggert@cs.ucla.edu>
* po/ChangeLog: Add copyright notice.
* po/Makevars: Likewise.
2006-08-10 Paul Eggert <eggert@cs.ucla.edu>
* Makevars (XGETTEXT_OPTIONS): Add pass-c-format flags for
_ and N_, so that we get format checking even when --enable-nls.
Add c-format flags for error, error_at_line, asprintf, vasprintf,
asnprintf, vasnprintf, wrapf.
(USE_MSGCTXT): New macro.
* Rules-quot (en@quot.po-create, en@boldquot.po-create): New rules.
2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
* Makefile.in.in: Sync from gettext 0.15.
* LINGUAS: Add ro, sr, uk, wa.
* ro.po, sr.po, uk,po, wa.po: New files,
gotten from the following files relative to
<http://www.iro.umontreal.ca/translation/teams/PO/>:
ro/fileutils-4.1.11.ro.po, sr/sh-utils-2.0.15.sr.po,
uk/fileutils-4.1.11.uk.po, wa/fileutils-4.1.11.wa.po.
2006-08-09 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/randread.c, lib/xmemxfrm.c, and src/shuf.c.
2006-02-27 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/base64.c.
2005-12-17 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/acl.c.
2005-12-13 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Kinyarwanda (rw).
Add Croatian (hr).
2005-11-22 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/euidaccess-stat.c.
2005-10-24 Jim Meyering <jim@meyering.net>
* Makefile.in.in: Update from gettext cvs (0.15).
(Makefile): Remove stray po-directories argument.
2005-10-07 Jim Meyering <jim@meyering.net>
* POTFILES.in: Remove the lib/euidaccess-stat.c line,
until I'm ready to add the corresponding file.
2005-10-02 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/euidaccess-stat.c.
2005-09-24 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/gai_strerror.c.
2005-06-14 Jim Meyering <jim@meyering.net>
* POTFILES.in: Change openat.c to openat-die.c.
2005-06-02 Jim Meyering <jim@meyering.net>
* POTFILES.in: Change makepath.c to mkdir-p.c here, too.
2005-05-10 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Vietnamese (vi).
2005-04-06 Jim Meyering <jim@meyering.net>
* LINGUAS: Remove rw.
* rw.po: Remove file -- many invalid message strings.
2005-04-05 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Kinyarwanda (rw).
2004-12-14 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Bulgarian (bg).
2004-11-28 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/openat.c.
2004-10-11 Jim Meyering <jim@meyering.net>
* fr.po: Fix two typos reported in http://bugs.debian.org/275924
2004-09-22 Jim Meyering <jim@meyering.net>
* POTFILES.in: Remove lib/xmalloc.c.
Add lib/xalloc-die.c.
2004-06-26 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Basque (eu).
2004-04-16 Jim Meyering <jim@meyering.net>
* fr.po: Correct typo in the french rendition of date's --help output:
s/%r/%R/. Patch by Nicolas Boulenguez.
2004-03-02 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Afrikaans (af)
2004-01-13 Jim Meyering <jim@meyering.net>
* POTFILES.in: Replace src/sys2.h with src/system.h.
2004-01-12 Jim Meyering <jim@meyering.net>
* Makefile.in.in: Update from gettext-0.13.1.
2003-11-09 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/root-dev-ino.h.
2003-10-17 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add lib/xfts.c.
2003-09-22 Jim Meyering <jim@meyering.net>
* Makevars (XGETTEXT_OPTIONS): Add --from-code=UTF-8 to accommodate the
non-ASCII comment to translators in ptx.c regarding the author's name.
2003-08-27 Jim Meyering <jim@meyering.net>
* Makefile.in.in: Update from gettext-0.12.2.
2003-08-19 Jim Meyering <jim@meyering.net>
* Makevars (MSGID_BUGS_ADDRESS): Define.
2003-08-12 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Irish (ga).
2003-07-11 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/nohup.c and src/setuidgid.c.
2003-03-18 Jim Meyering <jim@meyering.net>
* POTFILES.in: Remove lib/c-stack.c.
2003-02-16 Jim Meyering <jim@meyering.net>
* LINGUAS: Add Finnish (fi).
2003-01-11 Jim Meyering <jim@meyering.net>
* POTFILES.in: Add src/readlink.c.
2002-11-21 Jim Meyering <jim@meyering.net>
* LINGUAS: Add ms (Malay).
2002-11-14 Jim Meyering <jim@meyering.net>
* POTFILES.in: Remove lib/long-options.c and lib/same.c.
Although each defines `_', neither actually used it.
2002-11-09 Jim Meyering <jim@meyering.net>
* Makevars (EXTRA_LOCALE_CATEGORIES): Add LC_TIME.
Patch by Tim Waugh for Red Hat bug #73669.
2002-09-25 gettextize <bug-gnu-gettext@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.11.5.
2002-09-16 Jim Meyering <jim@meyering.net>
* LINGUAS: Add be (Belarusian).
2002-09-02 Jim Meyering <jim@meyering.net>
* LINGUAS: Add lg (Luganda).
-----
Copyright (C) 2002-2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice
and this notice are preserved.

View File

@@ -1,5 +1,5 @@
# List of files which contain translatable strings.
# Copyright (C) 1996-2016 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# These are nominally temporary...
lib/argmatch.c
@@ -26,7 +26,7 @@ lib/userspec.c
lib/verror.c
lib/version-etc.c
lib/xalloc-die.c
lib/xfreopen.c
lib/xbinary-io.c
lib/xmemcoll.c
lib/xprintf.c
lib/xstrtol-error.c
@@ -57,6 +57,7 @@ src/dirname.c
src/du.c
src/echo.c
src/env.c
src/expand-common.c
src/expand.c
src/expr.c
src/factor.c

View File

@@ -14,8 +14,8 @@ $editor = "vi" if $? != 0 or $editor =~ /^\s*\z/;
# Keywords allowed before the colon on the first line of a commit message:
# program names and a few general category names.
my @valid = qw(
arch base32 base64 basename cat chcon chgrp chmod chown chroot cksum comm
cp csplit cut date dd df dir dircolors dirname du echo env expand
arch b2sum base32 base64 basename cat chcon chgrp chmod chown chroot cksum
comm cp csplit cut date dd df dir dircolors dirname du echo env expand
expr factor false fmt fold groups head hostid hostname id install
join kill link ln logname ls md5sum mkdir mkfifo mknod mktemp
mv nice nl nohup nproc numfmt od paste pathchk pinky pr printenv printf

Some files were not shown because too many files have changed in this diff Show More