Compare commits

...

312 Commits
v8.13 ... v8.17

Author SHA1 Message Date
Jim Meyering
e9024b7d89 version 8.17
* NEWS: Record release date.
2012-05-10 19:16:52 +02:00
Jim Meyering
3a696dee72 tests: misc/tty-eof: increase timeout to avoid unwarranted failure
* tests/misc/tty-eof: Increase timeout from 1s to 10s, to avoid
unwarranted failure under heavy load.
* tests/Makefile.am (TESTS): Move misc/tty-eof "up" to nearer the
beginning of the list (from near the middle) so that it is started
earlier in parallel test runs.  Otherwise, it would frequently be
among the last two tests to complete.
2012-05-10 17:09:42 +02:00
Jim Meyering
e121071489 stat,tail: recognize new FS types: bdevfs, inodefs, qnx6
* src/stat.c (human_fstype) [__linux__]: Add 'case's for these local
file system types: bdevfs (0x62646576), inodefs (0x42494E4D),
qnx6 (0x68191122).
Now that the kernel has a name for S_MAGIC_BINFMTFS, use
theirs in place of our S_MAGIC_BINFMT_MISC.
* NEWS (New features): Mention it.
2012-05-10 16:00:34 +02:00
Jim Meyering
53276320df scripts: encourage use of shorter "bugs.gnu.org" in bug URLs
* scripts/git-hooks/commit-msg: Also ding debbugs.gnu.org URLs.
2012-05-10 11:02:46 +02:00
Paul Eggert
9d308df132 maint: handle file sizes more reliably
Problem reported by Samuel Thibault in <http://bugs.gnu.org/11424>.
* NEWS: Document this.
* src/dd.c (skip): Handle skipping past EOF on shared or typed
memory objects the same way as with regular files.
(dd_copy): It's OK to truncate shared memory objects.
* src/du.c (duinfo_add): Check for overflow.
(print_only_size): Report overflow.
(process_file): Ignore negative file sizes in the --apparent-size case.
* src/od.c (skip): Fix comment about st_size.
* src/split.c (main):
* src/truncate.c (do_ftruncate, main):
On files where st_size is not portable, fall back on using lseek
with SEEK_END to determine the size.  Although strictly speaking
POSIX says the behavior is implementation-defined, in practice
if lseek returns a nonnegative value it's a reasonable one to
use for the file size.
* src/system.h (usable_st_size): Symlinks have reliable st_size too.
* tests/misc/truncate-dir-fail: Don't assume that getting the size
of a dir is not allowed, as it's now allowed on many platforms,
e.g., GNU/Linux.
2012-05-10 11:02:42 +02:00
Paul Eggert
2c436decf8 stat: don't report negative file size as huge positive number
* src/stat.c (print_stat): Use out_int, not out_uint for stat.st_size.
* NEWS (Bug fixes): Mention it.
2012-05-09 23:32:24 -07:00
Jim Meyering
a6f94fcebc split: avoid apparent infloop when splitting /dev/zero w/-n on the Hurd
* src/split.c (main): Use stat.st_size only for regular files.
Samuel Thibault reported in http://bugs.gnu.org/11424 that the
/dev/zero-splitting tests would appear to infloop on GNU/Hurd,
because /dev/zero's st_size is LONG_MAX.  It was only a problem
when using the --number (-n) option.
* NEWS (Bug fixes): Mention it.
This bug was introduced with the --number option, via
commit v8.7-25-gbe10739
2012-05-08 18:32:58 +02:00
Jim Meyering
30071b2f5c build: update gnulib submodule to latest; also bootstrap and init.sh
* bootstrap: Update from gnulib.
* tests/init.sh: Likewise.
2012-05-08 15:47:46 +02:00
Pádraig Brady
be2dabef95 doc: clarify dd conv=sparse usage with devices
* doc/coreutils.texi (dd invocation): Clarify that NUL blocks
are not copied for devices either, and give examples of where
it might be useful.
2012-05-08 14:12:48 +01:00
Jim Meyering
452dc6b5ef maint: new function: usable_st_size 2012-05-08 10:34:31 +02:00
Kevin Lyda
aa078afcf9 maint: fix common spelling errors
These were identified using: https://github.com/lyda/misspell-check
executed like: git ls-files | misspellings -f -

* src/cat.c: Correct a spelling error.
* src/comm.c: Likewise.
* src/expr.c: Likewise.
* src/pr.c: Likewise.
* src/tac.c: Likewise.
* src/test.c: Likewise.
* src/ChangeLog-2005: Likewise.
* src/ChangeLog-2007: Likewise.
* src/NEWS: Likewise.
* src/doc/coreutils.texi: Likewise.
* src/lib/ChangeLog-2007: Likewise.
* src/man/help2man: Likewise.
* src/old/fileutils/ChangeLog-1997: Likewise.
* src/old/fileutils/NEWS: Likewise.
* src/old/sh-utils/ChangeLog.0: Likewise.
* src/old/textutils/ChangeLog: Likewise.
* src/tests/misc/comm: Likewise.
* src/tests/misc/uniq: Likewise.
* src/tests/mv/dir2dir: Likewise.
* src/cfg.mk (old_NEWS_hash): update with `make update-NEWS-hash`
2012-05-08 02:18:39 +01:00
Jim Meyering
fedebc59a0 tests: avoid LD_PRELOAD lookup error for dlsym
* tests/cp/nfs-removal-race: Link with -ldl.
2012-05-07 22:01:20 +02:00
Jim Meyering
ee9e43460f cp: handle a race condition more sensibly
* src/copy.c (copy_reg): In a narrow race (stat sees dest, yet
open-without-O_CREAT fails with ENOENT), retry the open with O_CREAT.
* tests/cp/nfs-removal-race: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Philipp Thomas and Neil F. Brown in
http://bugs.gnu.org/11100
2012-05-07 13:39:48 +02:00
Jim Meyering
3468d26884 doc: NEWS: note when the id/groups bug was introduced
* NEWS (Bug fixes): Note the first affected release.
The id bug was introduced by commit v8.0-112-g719a95a.
2012-05-07 09:51:07 +02:00
Jim Meyering
bdc99991d3 build: update gnulib submodule to latest 2012-05-04 12:13:36 +02:00
Jim Meyering
c999133e53 maint: rely on gnulib's new sys_resource module
* bootstrap.conf (gnulib_modules): Add sys_resource.
* src/sort.c: Remove #if HAVE_SYS_RESOURCE_H guard around inclusion
of <sys/resource.h> and move the inclusion "up" into the alphabetized
list of its peers.  This also avoids a failure of the
sc_prohibit_always_true_header_tests syntax-check rule.
* m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Remove sys/resource.h.
2012-05-04 12:13:26 +02:00
Pádraig Brady
15f1d0c9aa cp,mv,install: provide POSIX_FADV_SEQUENTIAL hint to input
This was inadvertently omitted from v8.5-104-g47076e3,
and gives the same 5% speedup when copying from an SSD.

* src/copy.c (copy_internal): Apply the FADVISE_SEQUENTIAL hint.
2012-05-02 18:41:53 +01:00
Jim Meyering
e744f4b7b7 maint: prohibit an operator at end of line
Many coding standards, including GNU's, advocate that when
splitting a line near a binary operator, one should put the
operator at the beginning of the continued line, rather than
at the end of the preceding one.  This is for readability:
such operators are relatively important to readability, and
they are more apparent at the beginning of a line than
at the varying-column end of line,
* cfg.mk (sc_prohibit_operator_at_end_of_line): New rule.
Exempt test.c and head.c.
2012-05-02 10:31:53 +02:00
Jim Meyering
57e0a882ef maint: adjust comments to avoid FP match on binary-operator-at-EOL
* src/ls.c (print_long_format): Reformat comment to avoid "=="
at end of line.
Also, "sortkey" is not a word: s/sortkey/sort key/.
* src/ioblksize.h: Likewise, for "|" from a shell snippet.
* src/runcon.c: Likewise, for "|" in grammar-like usage.
2012-05-02 10:31:53 +02:00
Jim Meyering
b8a6996e25 maint: with split lines, don't leave an operator at end of line
* src/copy.c (copy_reg): Split an expression before a binary operator,
not after it.
* src/cut.c (set_fields): Likewise.
* src/id.c (main): Likewise.
* src/install.c (setdefaultfilecon): Likewise.
* src/join.c (ignore_case): Likewise.
* src/pr.c (cols_ready_to_print, init_parameters, print_page): Likewise.
* src/stty.c (set_window_size): Likewise.
* src/wc.c (SUPPORT_OLD_MBRTOWC): Likewise.
* src/who.c (scan_entries): Likewise.
* src/test.c (binary_operator): Join a split line.
* src/extent-scan.c (extent_scan_read): Move an ">" from end of line
to beginning of the following.
Likewise for two other expressions.
2012-05-02 10:31:47 +02:00
Pádraig Brady
a18ba2f10a cat,cp,mv,install,split: Set the minimum IO block size used to 64KiB
* NEWS: Mention the change in behavior.
* src/ioblksize.h: Add updated test results and
increase value from 32KiB to 64KiB.
2012-04-30 11:14:31 +01:00
Jim Meyering
c83f723267 id: -Zn/-Zr: avoid an invalid diagnostic
* src/id.c (main): Using -Z with -r or -n would fail with "id: cannot
print only names or real IDs in default format", in spite of that "-Z",
which specifies a non-default format.  Now, it succeeds and ignores
the -n or -r option.  The error was that the test for default_format
was not updated when I added the new --context (-Z) option in
commit v6.9-33-g5320d0f.
2012-04-27 23:01:21 +02:00
Jim Meyering
c8b8279d2b id: don't call getcon unnecessarily
* src/id.c (main): Invocations like "id" and "id -G" would call getcon
to determine the current security context even though that result would
not be used.  Similarly, when POSIXLY_CORRECT is set.  Rearrange
conditionals and hoist the POSIXLY_CORRECT test so that we call
getcon only when necessary.
2012-04-27 23:00:55 +02:00
Jim Meyering
a6719d9f72 maint: id: minor factorization
* src/id.c (main): Factor out uses of "argc - optind".
Move option-consistency checks to precede the potential getcon call.
2012-04-27 22:50:42 +02:00
Jim Meyering
032a549481 id,groups: with no user name, print only real and/or effective IDs,
... i.e., don't use the getpw* functions.

Before this change, running groups or id with no user name argument
would include a group name or ID from /etc/passwd.  Thus, under unusual
circumstances (default group is changed, but has not taken effect for a
given session), those programs could print a name or ID that is neither
real nor effective.

To demonstrate, run this:

    echo 'for i in 1 2; do id -G; sleep 1.5; done' \
      |su -s /bin/sh ftp - &
    sleep 1; perl -pi -e 's/^(ftp\d+):(\d+)/$1:9876/' /etc/passwd

Those id -G commands printed the following:

    50
    50 9876

With this change, they print this:

    50
    50

Similarly, running those programs set-GID could make them
print one ID too many.

* src/group-list.c (print_group_list): When username is NULL, pass
egid, not getpwuid(ruid)->pw_gid), to xgetgroups, per the API
requirements of xgetgroups callee, mgetgroups.
When not using the password database, don't call getpwuid.
* NEWS (Bug fixes): Mention it.
* tests/misc/id-setgid: New file.
* tests/Makefile.am (TESTS): Add it.
(root_tests): It's a root-only test, so add it here, too.
Originally reported by Brynnen Owen as http://bugs.gnu.org/7320.
Raised again by Marc Mengel in http://bugzilla.redhat.com/816708.
2012-04-27 19:54:03 +02:00
Stefano Lattarini
8f6c5d4327 maint: sync up required autoconf version in bootstrap.conf
* bootstrap.conf ($buildreq): Require autoconf 2.64, not 2.62.  This is
consistent with what is required by AC_PREREQ in configure.ac.
2012-04-22 23:41:05 +01:00
Jim Meyering
6539e15620 doc: fix a grammar nit
* doc/coreutils.texi (split invocation): s/are/is/ in "P or Q are".
2012-04-19 19:39:54 +02:00
Bernhard Voelker
fdf0a44967 tests: factor out expensive "pairs" code of misc/stty
* tests/Makefile.am (TESTS): Add misc/stty-pairs.
* tests/init.cfg (stty_reversible_init_): New function.
(stty_reversible_query_): New function.
* tests/misc/stty: Factor out expensive "pairs" code into new test.
Use new stty_reversible_* functions instead of evaluating static
REV_* variables.
* tests/misc/stty-pairs: Add new test.  Code added from misc/stty.
Mark this as an expensive test.  Skip 'parenb' and 'cread' options,
as these tests are known to fail.  Like in misc/stty, also use
the new stty_reversible_* functions.
2012-04-19 19:31:48 +02:00
Bernhard Voelker
26996738e4 tests: add iutf8 option to misc/stty
* tests/misc/stty: Add iutf8 to the list of REV_* options.
That option has been implemented in commit v5.2.1-193-g733e79e.
2012-04-19 19:27:16 +02:00
Jim Meyering
219b894de4 maint: tac: use memcpy, not strcpy
* src/tac.c (main): Use memcpy, not strcpy, since we know the length.
2012-04-19 13:10:36 +02:00
Jim Meyering
bcb9078e38 maint: ls: use stpncpy/stpcpy, not strncpy/strcpy
* src/ls.c (gobble_file): Move a decl "down".
(make_link_name): Do not hard-code '/'.  Use IS_ABSOLUTE_FILE_NAME
and dir_len instead.
Use stpcpy/stpncpy in place of strncpy/strcpy.
2012-04-19 13:10:36 +02:00
Jim Meyering
280aa28c4d maint: modernize/clean-up a small function in ls.c
* src/ls.c (make_link_name): Adjust comment style to refer to VARIABLE
names, not 'variable'.
Move each of two declarations "down" to first use.
Compare pointer to NULL, not to 0.
Don't reuse local, "linkbuf" for a different purpose.
2012-04-19 13:10:36 +02:00
Jim Meyering
e50751d845 doc: tweak README-hacking
* README-hacking: Don't say "...on your hard drive".
That is unnecessary, and now, borderline anachronistic.
2012-04-19 13:10:36 +02:00
Jim Meyering
2bb1876c9a doc: use @xref{... only at start of a sentence
* doc/coreutils.texi: Correct many misuses of @xref.
2012-04-17 09:24:22 +02:00
Jim Meyering
31f19d681f maint: replace a use of strcpy in chmod.c with memcpy
* src/chmod.c (main): Use memcpy rather than strcpy,
since we already have the length handy.
2012-04-16 15:12:02 +02:00
Karl Berry
4c13a6d743 doc: remove a little direntry redundancy
* doc/coreutils.texi (Basics direntry): Remove 3rd "Common options."
2012-04-14 10:06:38 +02:00
Bruce Korb
0092d5d88b fmt: accept new --goal=WIDTH (-g) option
Accept -g for BSD/Plan9 compatibility.
* NEWS (New features): Mention it.
* tests/fmt/goal-option: New test.
* tests/fmt/long-line: Rename from tests/fmt-long-line.
* tests/fmt/base: Rename from tests/misc/fmt.
* doc/coreutils.texi: Document it.
* src/fmt.c (main): Accept the new option
(check_for_goals): new function to implement the operands
Based on BSD's and Plan-9's fmt programs.
2012-04-12 22:46:51 +02:00
Pádraig Brady
3d53e7fe1c cp: change --attributes-only to not truncate existing files
* src/copy.c (copy_reg): Don't truncate an existing file,
to support copying attributes between existing files.
The original use case only considered creating new files,
and it would be a very unusual use case to be relying
on the truncating behavior.
* doc/coreutils.texi (cp invocation): Mention the non
truncating behavior.
* tests/cp/attr-existing: A new test to ensure O_TRUNC skipped.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the change in behavior.
2012-04-12 18:35:17 +01:00
Andreas Schwab
7e0ef7c035 tests: avoid unnecessary subshells in misc/stty
* tests/misc/stty: Don't waste a subshell to perform this:
eval rev=\$REV_$opt.  Fix rev1,rev2 assignments similarly.
2012-04-04 16:09:49 +02:00
Jim Meyering
9cf086f318 build: update gnulib submodule to latest 2012-04-04 14:30:18 +02:00
Jim Meyering
89779e8497 tests: correct reversed args to "compare"
* tests/misc/sort-discrim: Correct reversed args to "compare".
This nit was masked by a bug in maint.mk that effectively disabled
many of the syntax-check rules.
2012-04-04 14:30:18 +02:00
Jim Meyering
e82602833d tests: new syntax-check rule to prohibit use of ... in tests/
* cfg.mk (sc_prohibit_test_backticks): New rule.  Exempt 3 files.
2012-04-04 12:34:22 +02:00
Jim Meyering
33230a19ca tests: remove nearly all remaining backticks
* tests/rm/isatty: Remove now-unneeded "# `" line.
* tests/misc/ls-time: Likewise.
* tests/misc/date-sec: Remove stray "`" in comment.
* tests/du/long-sloop: Likewise.
* tests/mv/part-symlink: Replace multi-line `...` by $(...).
* tests/mv/sticky-to-xpart: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/ls/nameless-uid: Likewise.
* tests/cp/perm: Likewise.
* tests/cp/preserve-gid: Likewise.
* tests/cp/same-file: Likewise.
2012-04-04 12:22:24 +02:00
Jim Meyering
b1e9cb9cd2 tests: use perl's qx!...! rather than ...
* tests/misc/expr: As above.
* tests/misc/ls-misc: Likewise.
* tests/misc/pwd-long: Likewise.
* tests/misc/uniq: Likewise.
2012-04-04 12:22:24 +02:00
Jim Meyering
e43d30eab3 tests: convert nearly all ... expressions to $(...)
Exempt init.sh because it runs before we're assured to have a
shell that groks $(...).  Exempt *.mk because "$" would have to
be doubled, and besides, any `...` expression in a .mk file is
almost certainly evaluated before init.sh is run.  Finally, also
exempt the perl-based tests, because perl's `...` cannot be
converted to $(...).  Do that by running this command:

git grep -l '`.*`' tests \
  | grep -Ev 'init\.sh|\.mk$' | xargs grep -Lw perl \
  | xargs perl -pi -e 's/`(.*?)`/\$($1)/g'

One minor fix-up change was required after that, due to how
quoting differs:
diff --git a/tests/chmod/equals b/tests/chmod/equals
-    expected_perms=$(eval 'echo \$expected_'$dest)
+    expected_perms=$(eval 'echo $expected_'$dest)

Another was to make these required quoting adjustments:
diff --git a/tests/misc/stty b/tests/misc/stty
...
-  rev=$(eval echo "\\\$REV_$opt")
+  rev=$(eval echo "\$REV_$opt")
...
-      rev1=$(eval echo "\\\$REV_$opt1")
-      rev2=$(eval echo "\\\$REV_$opt2")
+      rev1=$(eval echo "\$REV_$opt1")
+      rev2=$(eval echo "\$REV_$opt2")

Also, transform two files that were needlessly excluded above:
(both use perl, but are mostly bourne shell)

  perl -pi -e 's/`(.*?)`/\$($1)/g' \
    tests/du/long-from-unreadable tests/init.cfg
2012-04-04 12:20:56 +02:00
Jim Meyering
64ecea53d9 tests: convert one ... expression manually
* tests/ls/stat-vs-dirent: Manually convert `(...)` to $(...),
to avoid automatically producing an invalid result.
2012-04-03 22:17:28 +02:00
Jim Meyering
64cf1033cc tests: fix quoting bug in misc/nohup
* tests/misc/nohup: Fix invalid quoting.
2012-04-03 22:17:28 +02:00
Jim Meyering
5e1f5c5739 doc: identify/refer to source of each fixed bug in log and in NEWS
* HACKING (Commit log requirements): Describe our policy: when you
fix a bug, put the "git describe" string of the bug-introducing commit
in your commit log and put the "fixed-in-release version number"
in the NEWS blurb.
2012-04-03 16:14:32 +02:00
Jim Meyering
0f35329876 tests: avoid spurious misc/expr failure on AIX 6.1
* tests/misc/expr: Avoid spurious failure on AIX 6.1 due to
differing regexp diagnostic.  Reported by Michael Felt.
2012-04-03 08:24:20 +02:00
Paul Eggert
ef44086db0 chmod: undo previous change
It's not portable; see <http://bugs.gnu.org/11108#17>.
* src/chmod.c, NEWS: Undo previous change.
2012-03-28 13:26:58 -07:00
Paul Eggert
5911eff83e chmod: fix symlink race condition
* NEWS: Document this.
* src/chmod.c (process_file): Don't follow symlink if we
think the file is not a symlink.
2012-03-28 11:05:25 -07:00
Jim Meyering
1a1c46afe2 tests: remove temporary skip for sort-stale-thread-mem failure
* tests/misc/sort-stale-thread-mem: Invoke framework_failure_, now,
hoping that valgrind is fixed (or we add exclusions) before the
next release.
2012-03-26 20:56:44 +02:00
Jim Meyering
911ffaaf30 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-03-26 14:15:35 +02:00
Jim Meyering
9566c5851a version 8.16
* NEWS: Record release date.
2012-03-26 14:06:43 +02:00
Jim Meyering
cd65eb9798 tests: work around F17-valgrind sort-stale-thread-mem failure
* tests/misc/sort-stale-thread-mem: Skip upon known failure.
2012-03-26 13:52:58 +02:00
Jim Meyering
a4d14d3533 doc: use $(...), not ... in documentation and comments
* doc/coreutils.texi (dircolors invocation, Examples of expr):
(shred invocation, seq invocation): Use $(...), not `...`.
* src/mv.c (do_move): Likewise, in a comment.
2012-03-26 07:38:37 +02:00
Jim Meyering
488172c499 tests: skip ls/stat-free-color on XFS, rather than always failing
* tests/init.cfg (require_dirent_d_type_): Manually skip when
"." is an xfs file system.
2012-03-23 18:39:11 +01:00
Jim Meyering
4b101ccd17 tests: skip part of dd/sparse on some file systems
* tests/dd/sparse: The last two parts of this test would fail due to
the underlying file system at least on Solaris 10 with NFS.  That file
system would report that a 3MiB file was occupying <= 1KiB of space
for nearly 50 seconds after creation.
Improved-by: Bernhard Voelker
2012-03-23 12:47:52 +01:00
Pádraig Brady
a04110e568 maint: avoid a doc syntax check failure
Prompted by the continuous integration build failure at:
http://hydra.nixos.org/build/2315847

* doc/coreutils.texi (ln invocation): s/path/file name/
2012-03-22 21:25:39 +00:00
Harald Hoyer
15b8318e93 ln: add the --relative option
With the "--relative --symbolic" options, ln computes the relative
symbolic link for the user.

So, ln works just as cp, but creates relative symbolic links instead
of copying the file.

I miss this feature since the beginning of using ln.

$ tree ./
/
`-- usr
    |-- bin
    `-- lib
        `-- foo
            `-- foo

4 directories, 1 file

$ ln -s -v --relative usr/lib/foo/foo usr/bin/foo
‘usr/bin/foo’ -> ‘../lib/foo/foo’

$ tree ./
/
`-- usr
    |-- bin
    |   `-- foo -> ../lib/foo/foo
    `-- lib
        `-- foo
            `-- foo

4 directories, 2 files

$ ln -s -v --relative usr/bin/foo usr/lib/foo/link-to-foo
‘usr/lib/foo/link-to-foo’ -> ‘foo’

$ tree ./
/
`-- usr
    |-- bin
    |   `-- foo -> ../lib/foo/foo
    `-- lib
        `-- foo
            |-- link-to-foo -> foo
            `-- foo

4 directories, 3 files

* src/Makefile.am: Reference the relpath module.
* src/ln.c (usage): Mention the new option.
(do_link): Call the relative conversion if specified.
(convert_abs_rel): Perform the relative conversion
using the relpath module.
* tests/ln/relative: Add a new test.
* tests/Makefile.am: Reference the new test.
* doc/coreutils.texi: Document the new feature.
* NEWS: Mention the new feature.
2012-03-22 20:51:20 +00:00
Pádraig Brady
b1428e3152 maint: refactor relpath() from realpath for use by ln
* src/relpath.c: Refactored from realpath.c and adjusted
to support returning the relative path rather than just
printing to stdout.
* src/relpath.h: Export the relpath function.
* src/Makefile.am: Reference the refactored relpath module.
* po/POTFILES.in: Likewise.
* src/realpath.c: Adjust to the refactored relpath module.
2012-03-22 20:34:57 +00:00
Pádraig Brady
049f1dbe68 maint: ensure PATH_MAX is set correctly
This reverts part of commit v8.12-103-g54cbe6e.

* src/system.h: Include gnulib's pathmax.h to honor
system specific limits, and then we set PATH_MAX only if needed.
Note pathmax.h no longer uses pathconf ("/", _PC_PATH_MAX).
Note I didn't reinstate the comments about limits.h inclusion
order, because pathmax.h includes limits.h anyway.
2012-03-22 12:12:26 +00:00
Jim Meyering
1b1d656b2d build: add numerous gnulib modules, mostly for improved portability
* bootstrap.conf (gnulib_modules): Add numerous modules for
improved portability.  Reported by Eric Blake in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2426/focus=2489
* po/POTFILES.in: Add new files.
2012-03-21 22:00:17 +01:00
Jim Meyering
1fcb4ba932 build: update gnulib submodule to latest 2012-03-21 22:00:17 +01:00
Jim Meyering
ee7740c300 maint: use more modern fseeko, rather than fseek
* src/tac.c (temp_stream): Use fseeko, not fseek, on principle:
use the more modern interface.  In general it is better to avoid
fseek due to its ABI-imposed 4GiB limit on the "offset", here its
use was fine because the offset was always 0.  Using fseeko also
has the advantage of not triggering a GNULIB_POSIXCHECK warning.
Reported by Eric Blake in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2426/focus=2489
2012-03-21 22:00:17 +01:00
Eric Blake
89bf03c9a1 build: speed up configure for releases
Since most users won't be building with GNULIB_POSIXCHECK defined in
CFLAGS, and since we can make ./configure 10% (several seconds!) faster
by omitting the framework for a posix check, this patch makes it so
that the framework is omitted by default, while still giving
instructions for maintainers to re-enable it.

It's been a while since we've used GNULIB_POSIXCHECK; see this email:
https://lists.gnu.org/archive/html/coreutils/2012-03/msg00126.html
Some of those failures are because we are intentionally avoiding
specific gnulib modules (that is, we have chosen not to use things
like fprintf-posix), but until we work with gnulib to avoid particular
warnings, wiring up an automatic GNULIB_POSIXCHECK to happen during
'make my-distcheck' is not feasible.

* configure.ac (gl_ASSERT_NO_GNULIB_POSIXCHECK): Conditionally
define, according to whether $GNULIB_POSIXCHECK is in environment.
2012-03-20 13:33:04 -06:00
Jim Meyering
56673dbe8a tests: avoid spurious misc/factor failure on OpenBSD 5.1
* tests/misc/factor: Map OpenBSD 5.1's "unknown option" to our
expected "invalid option".  Reported by Bruno Haible.
2012-03-20 17:34:28 +01:00
Jim Meyering
cbedb8aa21 maint: remove now-superfluous coreutils-path-check rule
* dist-check.mk (coreutils-path-check): Now that we set PATH in
TESTS_ENVIRONMENT, it seems like overkill to make "distcheck"
rerun all tests just to check this.
(my-distcheck): Remove sole use.
2012-03-20 17:34:26 +01:00
Eric Blake
a6342a320e doc: clarify current realpath --relative-base behavior
For compatibility with MacOS relpath(1), as seen here:

http://opensource.apple.com/source/bootstrap_cmds/\
bootstrap_cmds-79/relpath.tproj/relpath.c

we implemented 'realpath --relative-base=dir1 --relative-to=dir2 file'
in the same way as 'relpath -d dir1 dir2 file'.  This can result
in --relative-base rendering --relative-to as a no-op if dir1 is a
child of dir2.  Document this.

* doc/coreutils.texi (realpath invocation): Mention restriction.
2012-03-20 10:13:13 -06:00
Pádraig Brady
d42f3a4d41 tests: avoid spurious dd/sparse failure
* tests/dd/sparse: Allow for greater variation in sparse-block counts.
Reported by Nelson H. F. Beebe and Bruno Haible.
2012-03-20 10:30:39 +00:00
Pádraig Brady
eb7ef0148a tests: fix sort-discrim to work without GMP
* tests/misc/sort-discrim: The expr limit is intmax_t without GMP.
2012-03-17 09:39:13 +00:00
Pádraig Brady
ae7b1c383f tests: avoid an ls-time false positive on Solaris 10
* tests/misc/ls-time: Force a ctime update as updating
the atime doesn't update ctime on tmpfs on Solaris 10.
2012-03-16 14:41:51 +00:00
Eric Blake
be17e3b98a realpath: optimize --relative-base usage
There is no need to recompute for every path being visited whether
the base is a prefix of the relative location.

* src/realpath.c (relpath): Hoist base check...
(main): ...here.
Based on a suggestion by Pádraig Brady.
2012-03-15 13:28:19 -06:00
Eric Blake
9f5aa48501 realpath: let --relative-to default to --relative-base
Most of the time, if someone wants to filter which paths are
relative while leaving all others absolute, they also want to
to the filtering based on the same --relative-to directory.
Make this easier to specify.

* src/realpath.c (main): Convert error to default.
* doc/coreutils.texi (realpath invocation): Document this.
* tests/misc/realpath: Adjust test to match.
* NEWS: Document it.
2012-03-15 12:24:05 -06:00
Eric Blake
61167bae9f tests: cover more realpath scenarios
'realpath --relative-base --relative-to' is identical to
--relative-base=--relative-to, so the test wasn't covering what
it claimed.  Expose recent fixes for handling of // on systems
where // is distinct, and for --relative-base=/.  Add test that
exposes our design decision that --relative-base that is not a
prefix of --relative-to is a no-op (if we later change behavior,
we will also have to change that part of the test).

* tests/misc/realpath: Fix typo. Add some tests.
2012-03-15 10:28:42 -06:00
Eric Blake
5e264bf248 realpath: fix problems with root handling
When --relative-base is /, all other paths should be treated as
relative (except for // where it matters).

Also, on platforms like Cygwin where / and // are distinct, realpath
was incorrectly collapsing // into /.  http://debbugs.gnu.org/10472.

* src/realpath.c (path_prefix, path_common_prefix): Treat /
and // as having no common match.
(relpath): Allow for no match even without --relative-base.
* NEWS: Document this.
2012-03-15 10:28:40 -06:00
Eric Blake
a84286ce7a test: expose recent gnulib canonicalize bug
https://lists.gnu.org/archive/html/bug-gnulib/2012-02/msg00038.html
detailed a couple of bugs in gnulib's canonicalize that were visible
through coreutils' readlink, but only on systems where // is distinct
from /.  This particular test assumes the POSIX fix which requires
canonicalization of a symlink containing just slashes to behave as
if slashes separating the symlink from the rest of the name are
elided (see http://austingroupbugs.net/view.php?id=541), as that is
the only useful (and current) behavior on Cygwin.  That is,

ln -s / root
ls root/dev

must list the contents of /dev, not //dev.

* tests/misc/readlink-root: New test.
* tests/Makefile.am (TESTS): Run it.
2012-03-14 09:23:40 -06:00
Paul Eggert
0dd13c463d tests: new discriminator-based test for sort -n and -h
* tests/Makefile.am (TESTS): Add misc/sort-discrim.
* tests/misc/sort-discrim: New file, which tests a discriminator-based
implementation of 'sort'.  Coreutils doesn't use this implementation
yet, but the test is useful anyway.

Co-authored-by: Drew Kutilek <dkutilek@ucla.edu>
Co-authored-by: James Wendt <jwendt@cs.ucla.edu>
2012-03-13 23:23:07 -07:00
Jérémy Compostella
57c929da8b dirname: support more than one argument
* src/dirname.c (main): Handle new -z option and manage more than one
  argument.
* doc/coreutils.texi (dirname invocation): Mention it.
* NEWS (New features): Mention it.
* tests/misc/dirname: Add a two arguments test.
2012-03-10 19:53:06 +00:00
Jérémy Compostella
7480e2db29 split: support an arbitrary number of split files by default
* src/split.c (next_file_name): If `suffix_auto' is true and the first
suffix character is 'z', generate a new file file name adding `z' to
the prefix and increasing the suffix length by one.
(set_suffix_length): Disable auto suffix width in various cases.
* tests/split/suffix-auto-length: Test it.
* doc/coreutils.texi (split invocation): Mention it.
* NEWS (Improvements): Likewise.
2012-03-10 19:36:13 +00:00
Jérémy Compostella
94c21417fe doc: add missing documentation for basename -z
doc/coreutils.texi (basename invocation): Add -z option documentation.
2012-03-09 15:27:48 +00:00
Bernhard Voelker
73f9879ce2 maint: fix a version number typo in NEWS
* NEWS: s/8.14/8.15/
2012-03-09 12:44:30 +00:00
Paul Eggert
8931cdbfda chmod: add notations +40, 00440, etc.
* NEWS: Document this.
* doc/perm.texi (Operator Numeric Modes): New section.
(Numeric Modes, Directory Setuid and Setgid): Document new behavior.
* src/chmod.c (usage): Document new behavior.
(main): Support new options -0, -1, etc.
* tests/chmod/setgid: Test these new features.
2012-03-08 19:01:26 -08:00
Paul Eggert
9076b28464 build: update gnulib submodule to latest 2012-03-08 19:01:26 -08:00
Jim Meyering
f7f398a1d9 du: fix -x: don't ignore non-directory arguments
Surprise!  "du -x non-DIR" would print nothing.
Note that the problem arises only when processing a non-directory
specified on the command line.  Not surprisingly, "du -x" still
works as expected for any directory argument.

When performing its same-file-system check, du may skip an entry
only if it is at fts_level 1 or greater.  Command-line arguments
are at fts_level == 0 (FTS_ROOTLEVEL).

* src/du.c (process_file): Don't use the top-level FTS->fts_dev
when testing for --one-file-system (-x).  It happens to be valid
for directories, but it is always 0 for a non-directory.
* tests/du/one-file-system: Add tests for this.
* NEWS (Bug fixes): Mention it.
Reported by Daniel Stavrovski in http://bugs.gnu.org/10967.
Introduced by commit v8.14-95-gcfe1040.
2012-03-08 13:04:09 +01:00
Jim Meyering
c1d07237a8 maint: use an optimal-for-coreutils xz compression setting
* cfg.mk: Set XZ_OPT = -8e (determined empirically).
This sacrifices 8 KiB of compressed tarball size for a 32-MiB
decrease in the memory required during decompression.  I.e.,
using -9e would shave off only 8 KiB from the tar.xz file, yet
would force every decompression process to use 32 MiB more memory.
2012-03-07 21:08:26 +01:00
Jérémy Compostella
a3eb71a98f basename: support more than one argument
* src/basename.c (perform_basename): New function refactored from
main() that performs the basename work on a STRING, optionally
removes a trailing SUFFIX and outputs the result.
(main): Handle new options.
* doc/coreutils.texi (basename invocation): Mention new options.
* test/misc/basename: Add new options test cases.
* NEWS (New features): Mention it.
2012-03-07 12:59:00 +00:00
Pádraig Brady
4b4a465798 maint: refactor copy to use is_nul()
* src/dd.c: Move is_nul() from here to ...
* src/system.h: ... here
* src/copy.c (sparse_copy): Adjust to use the refactored is_nul()
2012-03-06 23:43:21 +00:00
Pádraig Brady
8195165839 tests: work around a block alignment issue in dd/sparse
Prompted by the continuous integration build failure at:
http://hydra.nixos.org/build/2188210 (which uses XFS).

* tests/dd/sparse (alloc_equal): Add a block allocation
comparison function that accounts for variations due
to alignment.
2012-03-02 10:57:56 +00:00
Rodrigo Campos
4724cd8fe8 doc: timeout: document the exit status when run with "-s KILL"
* src/timeout.c (usage): Document the exit status for this case,
in --help and thus in the man page.  Word so that it covers
both the -s9 and -k options.
* doc/coreutils.texi (timeout invocation): Document the exit
status for this case.
2012-02-29 15:41:15 +00:00
Bernhard Voelker
409a7cc7ea tests: compile and link shared object with $CC to make LD_PRELOAD work
* tests/ls/getxattr-speedup: Compile and link in one step with $CC.
If the shared object file is created by ld (binutils), then the
destructor print_call_count() may not run (seen on OpenSuSE 12.1).
See http://lists.opensuse.org/opensuse/2012-02/msg01342.html
Thanks to Cristian Rodríguez.
2012-02-29 10:01:50 +01:00
Roman Rybalko
4e776faa84 dd: add support for the conv=sparse option
Notes:
  Small seeks are not coalesced to larger ones,
  like is done in cache_round() for example.

  conv= is used rather then oflag= for FreeBSD compatibility.

* src/dd.c (final_op_was_seek): A new global boolean to flag
whether the final "write" was converted to a seek.
(usage): Describe the new conf=sparse option.
(iwrite): Convert a write of a NUL block to a seek if requested.
(do_copy): Initialize the output buffer to have a sentinel,
to allow for efficient testing for NUL output blocks.
If the last block in the file was converted to a seek,
then convert back to a write so the size is updated.
* NEWS: Mention the new feature.
* tests/dd/sparse: A new test for the feature.
* tests/Makefile.am: Reference the new test.
2012-02-29 00:17:56 +00:00
Jérémy Compostella
697d00c321 doc: fix a wrong option reference in split invocation
* doc/coreutils.texi (split invocation): replace `-r' reference with
`-nr/n'.
2012-02-27 00:55:24 +00:00
Jim Meyering
72addfcac9 tests: fix help-version on cygwin, where $EXEEXT is nonempty
* tests/misc/help-version: Remove the $EXEEXT suffix from each
program name before comparing with a literal.
2012-02-26 09:48:48 +01:00
Bernhard Voelker
f19747455e tests: remove unnecessary use of -lc
* tests/ls/getxattr-speedup: Remove unneeded use of -lc.
2012-02-26 09:37:31 +01:00
Paul Eggert
a507ed6ede sort: default to physmem/8, not physmem/16
* src/sort.c (default_sort_size): Don't divide advice by 2.
Just divide the hard limits by 2.  This matches the comments.
Reported by Rogier Wolff in http://bugs.gnu.org/10877
2012-02-25 10:34:57 -08:00
Jim Meyering
4624581d53 doc: clarify a comment in system.h
* src/system.h (STRNCMP_LIT): Clarify comment.
Suggested by Bruno Haible.
2012-02-24 12:22:52 +01:00
Jérémy Compostella
69fed0dfec split: add the --additional-suffix option
Add the --additional-suffix option, to append an
additional static suffix to output file names.

* src/split.c (next_file_name): Append suffix to output file names.
(main): Handle new --additional-suffix option.
* NEWS (New features): Mention it.
* doc/coreutils.texi (split invocation): Mention it.
* tests/split/additional-suffix: New file. Test --additional-suffix.
* tests/Makefile.am (TESTS): Add it.
Requested by Peng Yu, in bug 6554
2012-02-20 13:30:26 +00:00
Pádraig Brady
7f48aa570d ls: adjust errnos indicating device non support for xattrs
* src/ls.c (errno_unsupported): Remove EBUSY, as this caters for
the case where ACLs can't be accessed because the _file_ is locked.
http://lists.gnu.org/archive/html/bug-coreutils/2005-06/msg00191.html
Also ENOENT is not safe to include as you get that if the _file_
is removed between the stat() and subsequent querying of xattrs.
2012-02-20 12:41:21 +00:00
Jérémy Compostella
933989eca6 tests: ls/getxattr-speedup: include <sys/types.h> for older headers
Modern <stdio.h> provides ssize_t, but the one from Debian's
libc6-dev 2.11.2-10 apparently does not.
* tests/ls/getxattr-speedup: Also include <sys/types.h>.
2012-02-19 18:43:53 +01:00
Jérémy Compostella
2fe737e595 doc: fix file names in split --filter=command example
* doc/coreutils.texi (split invocation): Output file names should be
prefixed with `big-' not `big-x'.
2012-02-18 19:31:22 +00:00
Jim Meyering
b29db67676 tests: test for ls speed-up
* tests/ls/getxattr-speedup: New test.
* tests/Makefile.am (TESTS): Add it.
Improved-by: Bernhard Voelker
2012-02-18 13:55:06 +01:00
Jim Meyering
8ca2b9659d ls: cache ACL- and CAP-querying syscall failures
Like the optimization to avoid always-failing getfilecon calls,
this change avoids always-failing queries for whether a file has
a nontrivial ACL and for whether a file has certain "capabilities".
When such a query fails for one file (indicating no support), we know it
will always fail that way for the affected device.  With this change, we
have thus eliminated nearly all failing-unsupported getxattr syscalls.
* src/ls.c (has_capability) [!HAVE_CAP]: Set errno to ENOTSUP.
(errno_unsupported): Expand the list of E* errno values to match
that of lib/acl-internal.h's ACL_NOT_WELL_SUPPORTED macro.
(file_has_acl_cache, has_capability_cache): New functions.
(gobble_file): Use them in place of non-caching ones.
* NEWS (Improvements): Mention it.
Suggested by Sven Breuner in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2187
While eliminating most getfilecon calls saved about 33%,
eliminating these other calls can save almost all of the
remaining ~67% cost, on some remote file systems.
2012-02-18 10:26:10 +01:00
Jim Meyering
9f237a03c0 ls: optimize for when getfilecon would often fail (~33% perf. gain)
On systems or file systems without SELinux support, all getfilecon
and lgetfilecon calls would fail due to lack of support.  We can non-
invasively cache such failure (on most recently accessed device) and
avoid the vast majority of the failing underlying getxattr syscalls.
* src/ls.c (errno_unsupported): New function.
(selinux_challenged_device): New file-scoped global.
(getfilecon_cache, lgetfilecon_cache): New error-caching wrapper
functions.
(gobble_file): Use the caching wrappers, for when many *getfilecon
calls would fail with ENOTSUP or EOPNOTSUPP.
Suggested by Sven Breuner in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2187
Improved-by: Pádraig Brady.
2012-02-18 10:26:10 +01:00
Jérémy Compostella
d55d3dd588 split: support optional start value for --numeric-suffixes
Allow changing the --numeric-suffixes start number
from the default of 0.

* src/split.c (next_file_name): Initialize the suffix index
and the output filename according to start value.
(main): Check that the suffix length is large enough for the
numerical suffix start value.
* doc/coreutils.texi (split invocation): Mention it.
* NEWS (New features): Mention it.
* tests/split/numeric: New file. Test --numeric-suffixes[=FROM].
* tests/Makefile.am (TESTS): Reference the new test.
2012-02-18 02:09:32 +00:00
Pádraig Brady
557b3b2a35 doc: fix a typo about seek_bytes in NEWS
* NEWS: s/count_bytes/seek_bytes/2
2012-02-17 11:28:01 +00:00
Bernhard Voelker
bf5ba002c2 doc: improve 'rm -f' description
* doc/coreutils.texi (rm invocation): Mention that the -f option also
silences the message for missing operands, which is useful in scripts
e.g., for "rm -f $file_list" when $file_list is empty.
* src/rm.c (usage):  Likewise.
Reported by Jérémy Magrin in http://bugs.gnu.org/10819
2012-02-16 14:54:49 +01:00
Pádraig Brady
4bb5dbcfef dd: fix issues in the count_bytes and seek_bytes flags change
These edge cases were missed in the previous commit 140eca15c.

* src/dd.c (main): Include the bytes slop when truncating
without further I/O.  Don't invalidate the whole file cache
in the case where 0 < count < ibs.
* tests/dd/bytes: Change to using the independent truncate
command to generate the file for comparison.  Remove a redundant
test case and replace with one testing the truncation only logic.
2012-02-13 21:58:21 +00:00
Jérémy Compostella
140eca15c4 dd: add count_bytes, skip_bytes and seek_bytes flags
dd now accepts the count_bytes and skip_bytes input flag and the
seek_bytes output flag, to more easily allow processing portions of a
file.

* src/dd.c (scanargs): Compute skip_records and skip_bytes when
'skip_bytes' iflag is used. Compute max_records and max_bytes when
'count_bytes' iflag is used. Compute seek_records and seek_bytes
when 'seek_bytes' oflag is used.
(skip_via_lseek): Use new 'bytes' parameter and handle potential
'records' equals to zero. Update the bytes parameter when called with
'fdesc' equal to STDOUT_FILENO. Update the header comments.
(dd_copy): Skip accordingly to skip_records AND skip_bytes. Count
accordingly to max_records AND max_bytes. Seek on output accordingly
to seek_records AND seek_bytes.
* NEWS (New features): Mention it.
* doc/coreutils.texi (dd invocation): Detail new flags and behaviors.
* tests/dd/bytes: New file. Tests for these new flags.
* tests/Makefile.am (TESTS): Add it.
2012-02-12 17:34:28 +00:00
Jim Meyering
da2b32e7af build: correct @@-,length values in last hunk of regcomp.c.diff
* gl/lib/regcomp.c.diff: Correct invalid hunk lengths (s/1/7/g)
in the last hunk's @@-line.
2012-02-12 14:37:00 +01:00
Jim Meyering
e57a547bc0 build: update gnulib, bootstrap, gl/lib/regcomp.c.diff
* gnulib: Update submodule to latest.
* bootstrap: Update from gnulib.
* gl/lib/regcomp.c.diff: Adapt to gnulib changes.
2012-02-12 12:21:56 +01:00
Jim Meyering
b01355a1dc mv: "mv A B" would sometimes succeed, yet A would remain, ...
But only when both A and B were hard links to the same symlink.
* src/copy.c (same_file_ok): Handle another special case: the one
in which we are moving a symlink onto a hard link to itself.
In this case, we must explicitly tell the caller to unlink the
source file.  Otherwise, at least the linux-3.x kernel rename
function would do nothing, as mandated by POSIX 2008.
* tests/mv/symlink-onto-hardlink-to-self: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Bernhard Voelker in http://bugs.gnu.org/10686
2012-02-12 12:21:53 +01:00
Jérémy Compostella
31eeead938 maint: add braces as requested by HACKING coding standard
* src/dd.c (dd_copy): Braces were missing for this do/while statement.
2012-02-06 01:34:20 +00:00
Pádraig Brady
02551d8a62 doc: clarify --help output for some optional arguments
* src/pr.c (usage): Fix the -S description to indicate
that the argument is optional for the short option.
* doc/coreutils.texi (pr invocation): Likewise.
* src/od.c (usage): Fix the -S description to indicate
that the argument is required for the short option.
Clarify -w takes an argument and that it is optional.
2012-01-31 12:53:45 +00:00
Jim Meyering
447b5d9320 maint: sort: remove the last uses of "'%s'" in diagnostics
* src/sort.c (key_warnings): Use quote (quote_n, since there are two)
rather than literal single quotes ('%s') in diagnostic.
2012-01-30 20:43:58 +01:00
Jim Meyering
d1b0155d80 mv: allow moving symlink onto same-inode dest with >= 2 hard links
Normally, mv detects a few subtle cases in which proceeding with a
same-file rename would, with very high probability, cause data loss.
Here, we have found a corner case in which one of these same-inode
tests makes mv refuse to perform a useful operation.  Permit that
corner case.
* src/copy.c (same_file_ok): Detect/exempt this case.
* tests/mv/symlink-onto-hardlink: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Initially reported by: Matt McCutchen in http://bugs.gnu.org/6960.
Raised again by Anders Kaseorg due to http://bugs.debian.org/654596.
Improved-by: Paul Eggert.
2012-01-30 20:43:07 +01:00
Jim Meyering
67ebdb9f20 build: update gnulib, for syntax-check vs canonicalize fix 2012-01-30 08:36:25 +01:00
Jim Meyering
d7878454cd maint: use single copyright year range
Run "make update-copyright".
2012-01-27 11:35:24 +01:00
Jim Meyering
3068c84765 maint: make copyright statements more consistent; update gnulib
* cfg.mk (update-copyright-env): Add UPDATE_COPYRIGHT_FORCE=1
to rejoin some split lines, and UPDATE_COPYRIGHT_USE_INTERVALS=2
to make update-copyright use only one year range.
* gnulib: Update to latest, for newer update-copyright script.
2012-01-27 11:33:19 +01:00
Jim Meyering
2a90c5a125 maint: fix copyright in old fileutils ChangeLog
* old/fileutils/ChangeLog-1997: Insert omitted "Free Software" in
the name of the copyright holder.  Compress year range.
2012-01-27 11:32:24 +01:00
Pádraig Brady
d955282324 maint: remove some redundant automake _SOURCES
* src/Makefile.am: Remove auto generated entries.
2012-01-26 00:02:37 +00:00
Pádraig Brady
14a1e3ea83 maint: cleanup an extraneous version output in a test
* test/misc/stdbuf: Fixup the minor copy & paste issue
introduced in commit ff7f0ff8
2012-01-25 23:16:17 +00:00
Pádraig Brady
9d46b25ded realpath: avoid the use of printf
This was seen to give an 11% performance improvement.

* src/realpath.c (relpath): Avoid using printf.
(process_path): Likewise.
2012-01-25 19:51:43 +00:00
Pádraig Brady
c5cb291939 maint: use the standard require_perl_ function
* tests/cp/sparse-fiemap: Don't use a separate check.
2012-01-25 18:19:55 +00:00
Pádraig Brady
11af4b31b6 realpath: remove extraneous '/' for --relative-to edge cases
* src/realpath.c (path_common_prefix): Be consistent and
always include a leading '/' in the count returned.
(relpath): Account for the change in path_common_prefix()
and avoid outputting extra '/' chars in relative paths that
span the root dir.
* tests/misc/realpath: Add the two reported cases.
Reported by Mike Frysinger
2012-01-25 18:01:52 +00:00
Jim Meyering
e9a2555826 build: update gnulib to latest, for test warning fixes
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29810
for details.
2012-01-23 17:59:57 +01:00
Jim Meyering
dec02bb98e tests: remove crufty test=test_name code from old tests
Before init.sh and similar, we would set test=test_name, and then
construct temporary file names using $test.  Now that each
init.sh-using test is in its own directory, that practice is unwelcome.
Remove bad examples.
* tests/rm/f-1: Per above.
* tests/rm/i-1: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/ir-1: Likewise.
* tests/rm/r-1: Likewise.
2012-01-23 14:42:10 +01:00
Paul Eggert
80bc8651fd maint: quote 'like this' or "like this", not `like this'
* doc/coreutils.texi (Formatting the file names):
coreutils now quotes 'like this'.
* man/help2man:
* src/timeout.c (usage): Quote 'like this' in diagnostics.
* HACKING, Makefile.am, NEWS, README, README-hacking, TODO, cfg.mk:
* doc/Makefile.am, doc/coreutils.texi, m4/jm-macros.m4:
* man/Makefile.am, man/help2man, src/Makefile.am, src/copy.h:
* src/extract-magic, src/ls.c, src/pinky.c, src/pr.c, src/sort.c:
* src/split.c, src/timeout.c, src/who.c, tests/dd/skip-seek-past-file:
* tests/pr/pr-tests: Quote 'like this' in commentary.
* cfg.mk (old_NEWS_hash): Update due to changed old NEWS.
2012-01-22 15:26:38 -08:00
Pádraig Brady
132d005515 stat: clarify the description of the %o stat format
* src/stat.c (usage):  Indicate this is a transfer size
suggestion, rather than some persistent block size.
* doc/coreutils.texi (stat invocation): Likewise.
2012-01-20 14:22:56 +00:00
Jim Meyering
fd0b040fa5 doc: tweak an @uref so its alt reference text renders in info
* doc/coreutils.texi (Opening the software toolbox): Remove commas
from @uref argument, so the alternate text renders properly in info.
Reported by Reuben Thomas.
2012-01-14 21:47:41 +01:00
Pádraig Brady
3c8e42957e maint: fix minor whitespace issues
The previous commit introduced a couple of spacing issues,
luckily one of which caused a test to fail.

* src/stat.c (default_format): Add a space so times are aligned.
* src/tr.c (string2_extentd): Remove an extraneous space.
2012-01-11 15:32:09 +00:00
Jim Meyering
d3227eeb90 maint: adjust formatting of certain continued strings
Add a rule to ding any source file that has a continued string
with a word in the first column of the following line.
Those tend to trigger malfunction in tools that try to map an
arbitrary line number to an enclosing function name.  Of course,
very many strings do precisely this, *when they are part of the
usage function*.  So we exempt the body of each usage function.
* src/dircolors.c (main): Separate a long, continued string
into two separately-quoted parts.
* src/od.c (decode_one_format): Likewise.
(decode_one_format, main): Move a space from end of
preceding line to the beginning of the continued line.
* src/tr.c (unquote, string2_extend, validate): Likewise.
* src/seq.c (main): Split in two and use string concatenation.
* src/stat.c (default_format): Use a mix of techniques.
* cfg.mk (sc_prohibit_continued_string_alpha_in_column_1): New rule.
Exempt three files in src: system.h, od.c, printf.c.
2012-01-11 09:27:50 +01:00
Jim Meyering
bfe711db1c maint: straggler *.[ch] files: convert more `...' to '...'
The preceding commands ignored .[ch] files in lib/ and gl/.
This is what I should have been doing from the start:

  git grep -l '`.*'\' $(g ls-files |grep '\.[ch]$') \
    | xargs perl -pi -e 's/`(.+?'\'')/'\''$1/'
2012-01-09 22:38:24 +01:00
Jim Meyering
3ba8b04426 maint: src/*.[ch]: convert more `...' to '...'
Run this (twice):
  git grep -E -l '`.+'\' src/*.[ch] \
    |xargs perl -pi -e 's/`(.+?'\'')/'\''$1/'
2012-01-09 21:51:59 +01:00
Jim Meyering
a517386f1b maint: src/*.c: change remaining quotes (without embedded spaces)
Run this (twice):
  git grep -E -l '`[^ ]+'\' src/*.c \
    |xargs perl -pi -e 's/`([^ ]+'\'')/'\''$1/'
2012-01-09 21:50:08 +01:00
Jim Meyering
9af0dced5a maint: convert `...' to '...' in --help output
All affected lines end with \ or \n\, so run this command
until it produces no new changes (4 times):
  git grep -E -l '`[^ ]+'\''.*\\' src \
    |xargs perl -pi -e 's/`([^ ]+'\''.*\\)/'\''$1/'
2012-01-09 21:50:08 +01:00
Jim Meyering
36b9a1b6ac maint: adjust quoting: emit '...', not `...' in diagnostics
* src/csplit.c (parse_repeat_count, extract_regexp): As above.
* src/date.c (main): Likewise.
* src/ls.c (decode_switches): Likewise.
* src/od.c (decode_one_format, main): Likewise.
* src/pathchk.c (no_leading_hyphen): Likewise.
* src/pr.c (main, getoptarg): Likewise.
* src/rm.c (diagnose_leading_hyphen): Likewise.
* src/sort.c (key_warnings, incompatible_options, main): Likewise.
* src/stat.c (print_esc_char): Print '\x', not `\x' in diagnostic.
* src/test.c (main): Likewise.
* src/touch.c (main): Likewise.
* src/tr.c (build_spec_list, validate, append_range): Likewise.
* tests/misc/mktemp: This is an unusual case, since the affected
string contains only the ` of an `...' string.  So we change
the long ` to a lone '.
* tests/pr/pr-tests: Manual quote adapting fix-up.
* tests/ln/hard-to-sym: Likewise.
* tests/split/suffix-length: Likewise.
* tests/mv/part-fail: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/stat-printf: Likewise.
2012-01-09 21:50:08 +01:00
Jim Meyering
ae2b0d2ddc tests: more automated quote adjustment
Relax initial regexp to match more instances, but add a
filter to avoid some invalid conversions.  Run this:

git grep -l "\`[^']*'" tests | xargs perl -pi -e '$q=q"'\''";' \
  -e '$q="$q\\$q$q"; /(= ?\`|\`expr|\`echo|\Q$q\E)/ and next;' \
  -e ' s/\`([^'\''"]*?'\'')/'\''$1/g'
The last disjunct in the above (...) filter is to exempt
any line that contains this string: '\''
With quoting like that, converting a ` to ' is likely to cause trouble,
so we'll handle those manually.  Here are three examples where
the exemption is required:

  *': `link-to-dir/'\'': hard link not allowed for directory'*) ;;
  printf 'creating file `%s'\''\n' $f
  'mv: inter-device move failed: `%s'\'' to `%s'\'';'\
2012-01-09 21:50:08 +01:00
Jim Meyering
dd0e4c5621 tests: change `...' to '...' on lines not matching /[=\$]/
Exempt lines with '$' or '=', since those are prone to improper
conversion.  Run this:
  git grep -l "\`[^']*'" tests \
   |xargs perl -pi -e '/[=\$]/ and next;s/\`([^'\''"]*?'\'')/'\''$1/g'
2012-01-09 21:50:08 +01:00
Jim Meyering
50610144b0 tests: adjust \`...' quoting to '...' to adapt to latest gnulib
Run this:
  git grep -l "\\\\\`[^']*'" tests \
    |xargs perl -pi -e 's/\\\`(.*?'\'')/'\''$1/g
2012-01-09 21:50:08 +01:00
Jim Meyering
68a959262a build: update gnulib submodule to latest (quoting change)
This pulls in changes to the quote and quotearg modules that
render quoted strings in diagnostics.  `Old' vs 'new'.
2012-01-09 21:50:07 +01:00
Jim Meyering
84e742fab4 maint: prep for global quoting changes: handle irregular cases manually
* src/chroot.c (usage): Change ``...'' to '...', and describe the
default more accurately (also adding quotes): s,/bin/sh,'/bin/sh -i',
* src/join.c (usage): Change ` ...'' ' to "...''".
* src/fmt.c (isopen): Change `' to '` in list of bytes, so that
a subsequent change can safely perform the `...' to '...' conversion.
* src/truncate.c (main): Tweak quoting in comments to use '...',
not `...`, for consistency with the rest of comments in coreutils.
2012-01-09 21:49:51 +01:00
Jim Meyering
8ac05f82a2 maint: update quoting of "Try `prog --help'" to "Try 'prog --help'"
Automatically adjust both the source (now in only one place)
and all tests that expect the resulting output via this:

git grep -l 'Try.*--help' src/system.h tests \
  | xargs perl -pi -e 's/Try \\?`(\S+ --help)/Try '\''$1/'
2012-01-07 17:18:14 +01:00
Jim Meyering
101d1203c6 maint: use new emit_try_help in place of equivalent fprintf
Run this command:
  perl -0777 -pi -e \
   's/fprintf \(stderr, _\("Try `%s --help.*\n.*;/emit_try_help ();/m'\
     src/*.c
2012-01-07 16:54:26 +01:00
Jim Meyering
22af6d9752 maint: factor out all `Try --help'-emitting statements
* src/system.h (emit_try_help): New function.
2012-01-07 16:42:41 +01:00
Jim Meyering
1df91bd6b9 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-01-06 18:29:53 +01:00
Jim Meyering
b26c2cd3d7 version 8.15
* NEWS: Record release date.
2012-01-06 18:05:54 +01:00
Jim Meyering
ce0e4459c4 scripts: allow one-line summary to start with "[Vv]ersion \d"
* scripts/git-hooks/commit-msg: Do not reject the commit log
message generated by our automated release-and-tag process.
(bad_first_line): New function, extracted from...
(check_msg): ... here.  Use it.
2012-01-06 17:51:52 +01:00
Jim Meyering
59cb41ecd7 build: update gnulib submodule to latest 2012-01-06 14:16:15 +01:00
Jim Meyering
e8fb9b0169 tests: adjust quoting in expected output to match new gnulib policy
* tests/misc/xstrtol: Use '...' to match new quoting in most places.
However, leave `9x' to match the sole comparison against output
from the quote function, which still uses `...'.
* tests/misc/sort-merge: Likewise, though here I had to leave
`...'-quoted output to match output from four tests.
* tests/pr/pr-tests: Convert a single `...' to '...'.
* gnulib: Update submodule to latest.
2012-01-06 11:00:36 +01:00
Jim Meyering
847446ac84 maint: adjust ChangeLog to reflect earlier df request
* build-aux/git-log-fix: Credit early reporter.
* THANKS.in: Add a name.
2012-01-06 10:14:19 +01:00
Pádraig Brady
c84c362207 tests: avoid stty icanon issues on some platforms
* tests/misc/stty: Exclude 'icanon' for the list to check,
as it's problematic on ppc*|sparc* platforms.
2012-01-05 15:31:50 +00:00
Pádraig Brady
45354d58de tests: avoid ulimit issue on bash 3.2 on OS X
* tests/misc/sort-continue: Perform the glob before
the ulimit, as it was seen to make the glob fail
on bash 3.2 on Mac OS X 10.6.8 at least.
2012-01-05 15:13:34 +00:00
Pádraig Brady
512662fb30 tests: avoid a false positive due to overflow on Linux/HPPA
* tests/misc/timeout-parameters: Verify that the timer doesn't
fire immediately in the problematic range, and avoid overflow
checks in that case.
* man/timeout.x: Mention the possible bug.

Reported by Bruno Haible
2012-01-05 15:12:16 +00:00
Jim Meyering
101a30a2a0 tests: adjust setfacl usage to accommodate Solaris 10
* cfg.mk (sc_prohibit_short_facl_mode_spec): New rule.
* tests/cp/acl: Extend setfacl mode spec to have length 3.
* tests/ls/slink-acl: Likewise.
* tests/mv/acl: Likewise.
Report and analysis by Bruno Haible.
2012-01-05 11:48:35 +01:00
Bruno Haible
931e0f2a70 split: avoid failure due to leftover 'errno' value
* src/split.c (lines_chunk_split): Fix logic bug that led to
unwarranted failure of "split -n l/2 /dev/zero" on NetBSD 5.1.
The same would happen when splitting a growing file, where
open/lseek-end gives one size, but by the time we read, there
is more data available.
(bytes_chunk_extract): Likewise.
* NEWS (Bug fixes): Mention this.
* tests/split/l-chunk: The latter case was not exercised.
Add code to do that.
Bug introduced with the chunk-selecting feature in v8.7-25-gbe10739.

Co-authored-by: Jim Meyering <meyering@redhat.com>
2012-01-05 11:46:48 +01:00
Jim Meyering
4d3e398a74 doc: README: recommend GNU make to run tests on IRIX 6.5 and Solaris 9
* README: Document vendor "make check" failure on those two systems.
Reported by Bruno Haible.
2012-01-05 08:10:29 +01:00
Jim Meyering
d015505528 maint: ignore *.trs files, lib/getopt.h and build-aux/test-driver
* .gitignore: Also ignore automake's new .trs files and its
build-aux/test-driver, as well as lib/getopt.h.
2012-01-04 20:25:38 +01:00
Jim Meyering
2403b1caa5 doc: adjust NEWS
* NEWS (New programs): Move this small section to the top.
(df): Reword entry, from Pádraig Brady.
2012-01-03 17:34:31 +01:00
Jim Meyering
1e18d8416f df: work around long-named /dev/disk/by-uuid/... symlinks
On systems with recent kernel/tools, a symlink from /etc/mtab to
/proc/mounts, and a by-UUID mount (i.e., soon, nearly everyone),
you will see something like the following when running "df -hT":
(this has been truncated to fit in a width-limited ChangeLog file)

Filesystem                                             Type      Siz...
rootfs                                                 rootfs     11G
udev                                                   devtmpfs  3.8G
tmpfs                                                  tmpfs     774M
/dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66 ext4       11G
tmpfs                                                  tmpfs     1.6G
/dev/sda2                                              ext3      494M
/dev/sda5                                              ext4       12G
/dev/sda6                                              ext4      9.9G

Contrast that with what we're used to seeing (modulo the
two entries mounted on "/", which is a separate problem):

Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs     11G  1.9G  8.0G  19% /
udev           devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs          tmpfs     774M  376K  774M   1% /run
/dev/sda3      ext4       11G  1.9G  8.0G  19% /
tmpfs          tmpfs     1.6G  8.0K  1.6G   1% /run/shm
/dev/sda2      ext3      494M   78M  392M  17% /boot
/dev/sda5      ext4       12G  7.6G  3.7G  68% /usr
/dev/sda6      ext4      9.9G  6.6G  2.8G  71% /var

When that long /dev/disk/by-uuid/... name is merely a symlink
to a much shorter (and often more useful) device name like
"/dev/sda3", and when it's part of a listing of all file systems,
I would much prefer to see only the latter.  Similarly, when using
an encrypted root file system, you would see a name like
/dev/mapper/luks-828fc648-9f30-43d8-a0b1-f7196a2edb66 pointing
to say, /dev/dm-0, I prefer the shorter name.

I.e., if I explicitly run
"df -hT /dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7096a2edb66",
then, it's fine -- and expected -- to print to the long name.
It was explicitly given.  However, with no non-option argument,
df should print the shorter name.  Note that performing this
translation at a lower level (via a change to gnulib's mountlist.c)
would make it impossible to distinguish those two cases.

* src/df.c: Include "canonicalize.h".
(get_dev): Add a parameter, telling when we're in process-all-
mount-points mode; update all callers.  When true, resolve
UUID-suffixed symlinks.
* NEWS (Changes in behavior): Mention it.
Reported by Dan Jacobson in http://bugs.gnu.org/10363
2012-01-03 16:55:58 +01:00
Jim Meyering
520b69ce36 tests: adjust realpath test to avoid "make distcheck" failure
* tests/misc/realpath: Quote lhs of test ... = ..., so that
when $PWD contains a space (like it does via "make distcheck"),
the test does not fail
2012-01-03 12:58:37 +01:00
Pádraig Brady
77ea441f79 realpath: a new program to print the resolved path
This program is compatible with other realpath(1)
implementations, and also incorporates relpath like support,
through the --relative options.  The relpath support
was suggested by Peng Yu, who also provided an initial
implemenation of that functionality.

* AUTHORS: Add my name.
* NEWS: Mention the new command.
* README: Likewise.
* doc/coreutils.texi (realpath invocation): Add realpath info.
* man/Makefile.am (realpath.1): Add dependency.
* man/realpath.x: New template.
* man/.gitignore: Ignore generated man page.
* po/POTFILES.in: Add src/realpath.c.
* src/.gitignore: Exclude realpath.
* src/Makefile.am (EXTRA_PROGRAMS): Add realpath.
* src/realpath.c: New file.
* scripts/git-hooks/commit-msg: Add realpath to the list of prefixes.
* tests/Makefile.am (TESTS): Add misc/realpath.
* tests/misc/realpath: New file.
2012-01-03 11:36:32 +00:00
Pádraig Brady
76352c770e build: update gnulib for canonicalize_filename_mode improvements
This is required for the new realpath command.
2012-01-03 11:34:42 +00:00
Jim Meyering
3a189ae0ce build: tail: avoid type/format mismatch warning from gcc
Without this change, gcc's -Werror=format would complain that
the '%lx' format requires 'long unsigned int', not 'int'.
* src/tail.c (fremote): Use a temporary variable.
2012-01-02 22:35:36 +01:00
Jim Meyering
794e52b7bd tests: also print chmod's --version
* tests/rm/many-dir-entries-vs-OOM: This test also exercises chmod.
2012-01-01 18:40:54 +01:00
Jim Meyering
5111aa4296 maint: update all copyright year number ranges
Run "make update-copyright".
2012-01-01 10:04:06 +01:00
Jim Meyering
75a21e6248 tests: change copyright year from 2011 to 2012 in sample-test
This file is special.  We don't want to use a range,
but merely the current year number.
* tests/sample-test: s/2011/2012/
2012-01-01 10:03:50 +01:00
Jim Meyering
76fd122a85 tests: fix a missing-dependency problem
* tests/check.mk (.built-programs): Depend on src/Makefile.am,
so that when we add a program, this file is updated, and the new
program is tested via misc/help-version.  Spotted by Pádraig Brady.
2011-12-31 12:30:46 +01:00
Jim Meyering
9be9d120f0 build: avoid spurious test.c warning with -Wsuggest-attribute=pure
* src/test.c: Add pragma to suppress gcc-4.6.2's warning that
"advance" might be candidate for attribute 'pure'.
2011-12-30 22:48:38 +01:00
Jim Meyering
6e00315bf2 tail: avoid theoretically undefined behavior
* src/tail.c (start_lines): Do not form potentially-invalid address.
Use safe_read's return value as a pointer offset only after
ensuring that it is not SAFE_READ_ERROR (size_t)(-1).
Spotted by coverity.
Also, move declaration of "p" to be closer to first use.
2011-12-28 18:53:32 +01:00
Jim Meyering
3e7a1473ae tests: also unset _STDBUF_E, _STDBUF_I and _STDBUF_O
* tests/envvar-check (vars): Add these to the list of envvars we
ignore: _STDBUF_E, _STDBUF_I, _STDBUF_O, used by libstdbuf.
2011-12-28 18:01:01 +01:00
Pádraig Brady
44e20cda07 doc: homologize ch{con,grp,mod,own} option descriptions
* src/chgrp.c (usage): Group associated options together,
to aid users.  Also minimize the differences between
individual messages across these four commands, to
aid translators.
* src/chmod.c: Likewise.
* src/chown.c: Likewise.
* src/chcon.c (usage): Likewise.  Document the
--dereference option.

Suggested by Paul Eggert and Jari Aalto
2011-12-26 22:19:46 +00:00
Jim Meyering
b1230020dc stat,tail: recognize new FS type: pipefs
* src/stat.c (human_fstype) [S_MAGIC_PIPEFS]: New case.
* NEWS (Bug fixes): Mention this.
2011-12-26 16:37:55 +01:00
Jim Meyering
b2a6fb0ac9 doc: stat: clarify that %t and %T expand to the file system type
* src/stat.c (usage): Mention "file system type", not just "type"
for %t and %T.  Do not capitalize the first letter of each description.
2011-12-24 12:03:18 +01:00
Jim Meyering
9c54c0a1d0 tail: with -f, use polling when a file is on an FS of unknown type
Before, we would use inotify in that case, which would work as long
as updates were taking place locally, but not at all when remote.
Move hard-coded list of known remote FS types into a more
maintainable table in stat.c, alongside the list of FS
names and magic numbers.  Generate a new is_local_fs_type function.
* src/Makefile.am (fs-is-local.h): New rule, generated file.
* src/extract-magic: Revamp to parse local/remote keyword after
each magic number in src/stat.c's case statements.
Accept new --local option.
* src/.gitignore: Ignore the generated fs-is-local.h.
* src/tail.c [HAVE_INOTIFY]: Include fs-is-local.h.
(fremote) [HAVE_INOTIFY]: Use the new function in place of
the switch stmt with hard-coded list of FS types.
Emit a warning when processing a file on a file system of unknown type.
* NEWS (Changes in behavior): Mention it.
Suggested by Sven Breuner.
2011-12-23 22:39:14 +01:00
Jim Meyering
6e3299fcdb doc: update README-release with process to check for new FS magic
* README-release: Run the Makefile rule that checks for new file
system magic numbers.
2011-12-22 10:15:51 +01:00
Jim Meyering
8965297092 tail,stat: add support for FhGFS
* src/stat.c (human_fstype): Add a case: fhgfs, 0x19830326.
* src/tail.c (fremote): Add S_MAGIC_FHGFS.
* NEWS (Bug fixes): Update the entry for GPFS to mention FhGFS, too.
Reported by Sven Breuner.
2011-12-22 09:36:31 +01:00
Jim Meyering
ed71262bc2 doc: improve factor example
* doc/coreutils.texi (factor invocation): Adjust example to use $(...)
consistently, not a mix of `...` and $(...).  Separate the computation
of the product and the actual factorization, so the timing of the
latter doesn't include the cost of the former.
2011-12-20 14:39:57 +01:00
Jim Meyering
f797c04415 build: remove now-useless code from bootstrap.conf
* bootstrap.conf (bootstrap_epilogue): Remove now-unnecessary,
snippet that edited gnulib-tests/gnulib.mk.  This snippet was
rendered unnecessary by commit v8.14-73-g5bf2c0e.
2011-12-17 17:26:00 +01:00
Jim Meyering
e71f0d9df3 build: merge in bootstrap changes from gnulib
* bootstrap: Pull in the combination of gnulib's "bootstrap: detect
tools required by gnulib-tool" patch and the related fix.
2011-12-17 16:38:23 +01:00
Paul Eggert
cfe1040c09 du: -x should not count files in other file systems
This fixes Bug#10293, which I guess was introduced in commit
95c948b06a dated 2003-10-02.
* NEWS: Document fix.
* src/du.c (process_file): Don't count files in different file
systems if -x is given.
* tests/du/one-file-system: Test for this bug.
2011-12-14 18:04:05 -08:00
Paul Eggert
021a066409 doc: document 'touch' and timestamps better
* doc/coreutils.texi (touch invocation): Explain file timestamps
better.  Problem reported by Nelson H.F. Beebe (Bug#7999).
2011-12-12 16:57:33 -08:00
Jim Meyering
a3fee8b6af ls: give a more useful diagnostic for a bogus --time-style arg
* src/ls.c (decode_switches): Replace our use of XARGMATCH
with open-coded version so that we can give a better diagnostic.
* tests/ls/time-style-diag: New file.
* tests/Makefile.am (TESTS): Add it.
Reported by Dan Jacobson in http://bugs.gnu.org/10253
with suggestions from Eric Blake and Paul Eggert.
2011-12-12 12:19:55 +01:00
Jim Meyering
da4793e949 maint: remove a misleading comment from shred.c
* src/shred.c: Remove obsolete TODO comment.  The first two and the
last item were done, adding --recursive (-r) is neither necessary
nor appropriate, and I don't want to add --interactive.  I don't
see a need for the others.  Prompted by comments from Amr Ali.
2011-12-09 20:18:29 +01:00
Jim Meyering
c592a00f8f ls: be responsive to interrupts when color-listing large directories
Starting with commit adc30a83, when using --color, ls inhibited
interrupts to avoid corrupting the state of an output terminal.
However, for very large directories, that inhibition rendered ls
uninterruptible for too long, including a potentially long period
even before any output is generated.
* src/ls.c: Two phases of processing are time-consuming enough that
they can provoke this: the readdir loop and the printing loop.  The
printing was supposed to be covered by a call to process_signals in
(print_name_with_quoting): ... but that call was mistakenly guarded
by a condition that might be false for many or even all files being
processed.  Call process_signals unconditionally.
(print_dir): Also call process_signals in the readdir loop.
* NEWS (Bug fixes): Mention it.
Reported by Arkadiusz Miśkiewicz in http://bugs.gnu.org/10243
Co-authored-by: Eric Blake <eblake@redhat.com>
2011-12-08 12:17:54 +01:00
Paul Eggert
6eb3cf234f ln: clarify usage of -L, -n, -T
* src/ln.c (usage): Use clearer wording to describe the -L, -n,
and -T options (Bug#9896).
2011-12-05 14:39:51 -08:00
Paul Eggert
db38db4836 maint: don't assume GNU make \# syntax (fix previous)
* src/Makefile.am (fs_normalize_perl_subst, fs-magic, fs-kernel-magic):
Undo previous patch; it missed a \#.
(fs_normalize_perl_subst): Use \043 rather than \#.
\043 is portable to all ASCIIish platforms, whereas \# is portable
only to platforms that are compatible with GNU make (and are
incompatible with POSIX make).  Porting this to EBCDIC is left as
an exercise for the reader....
2011-12-05 14:04:37 -08:00
Jim Meyering
d72e8dff04 maint: sort, stat: remove unused parameters
* src/sort.c (struct thread_args) [is_lo_child]: Remove member.
(sortlines): Remove unused parameter, "is_lo_child".  Update callers.
* src/stat.c (out_epoch_sec): Mark unused parameter.
(do_statfs, do_stat): Remove unused parameter, "terse". Update callers.
2011-12-05 22:49:34 +01:00
Paul Eggert
787592587d maint: don't assume GNU make \# syntax
* src/Makefile.am (fs_normalize_perl_subst): Don't make unportable
assumption about \# in the right hand side of a macro definition.
This works with GNU make, but not with POSIX make.
Problem reported by Basavaraj B (Bug#10220).
(fs-magic, fs-kernel-magic): Do the #-substitution here instead.
2011-12-05 13:30:15 -08:00
Jim Meyering
63098ee582 od,test: address warnings from gcc's -Wjump-misses-init
* src/test.c (unary_operator): gcc reported that initializations
in two case statements were skipped.  Enclose in braces.
* src/od.c (decode_one_format): Likewise.
2011-12-04 10:31:03 +01:00
Jim Meyering
bea7b10489 maint: remove redundant usage declarations (-Wredundant-decls)
* src/csplit.c (usage): Remove declaration.
* src/ls.c (usage): Likewise.
* src/pr.c (usage): Likewise.
2011-12-04 10:27:52 +01:00
Jim Meyering
79c5fcc681 maint: add missing ":" after "License" in local gnulib module files
This avoids spurious diagnostics when running our "bootstrap" script.
* gl/modules/heap: Append colon after "License".
* gl/modules/randint: Likewise.
* gl/modules/randperm: Likewise.
* gl/modules/randread: Likewise.
Reported by Stefano Lattarini.  Diagnosed by Bruno Haible.
2011-12-03 14:04:23 +01:00
Eric Blake
01fc9e146c doc: fix list of GNU extension date formats
I didn't check how long these were documented as GNU extensions,
nor when they were added by POSIX; but since they are all part
of POSIX 2008, we no longer need call them out as extensions.

The next version of POSIX will standardize %s:
http://austingroupbugs.net/view.php?id=169
but as that is not out yet, I didn't change %s.

* doc/coreutils.texi (Time conversion specifiers): %R and %z are
now POSIX.
(Date conversion specifiers): Likewise for %F, %g, %G.
2011-12-01 12:13:02 -07:00
Bernhard Voelker
8df7652cfa tests: adjust PATH to generally include /sbin and /usr/sbin
Commit 5eeaca94 added /sbin to the PATH for tests using mkfs. For other
tests, e.g. tests/cp-fiemap-perf using filefrag, we need /usr/sbin also.
Add both directories generally for the tests, "since many of us always
augment our PATH with all of the sbin paths all of the time anyway" (Bob
in http://lists.gnu.org/archive/html/coreutils/2011-11/msg00107.html).
The previous commit is hereby obsolete.
* tests/init.cfg (sanitize_path_): Add /sbin and /usr/sbin to PATH
unless already included. Needed for tests using admin tools like mkfs
and filefrag on systems where the user's environment does not have
these directories in the PATH.
* tests/init.cfg (require_mkfs_PATH_): Remove obsolete function.
* tests/cp/cp-a-selinux: Remove require_mkfs_PATH_ call.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/sparse-fiemap: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/rm/read-only: Likewise.
2011-12-01 09:07:13 +01:00
Eric Blake
92b7b7708e build: simplify warnings based on last gnulib update
We no longer need to exclude this warning.

* configure.ac (WARN_CFLAGS): Gnulib dropped
-Wunsuffixed-float-constants, as non-portable.
2011-11-29 16:16:45 -07:00
Eric Blake
20dfc04204 build: update gnulib for syntax-check improvement
Commit 5b3e538 proved useful enough to migrate to gnulib after
enhancing it to be more generic, which in turn pointed out that
commit a2c811db missed an offender.

* gnulib: Update to latest.
* cfg.mk (sc_prohibit_reversed_compare_failure): Delete, now that
gnulib provides it.
* tests/ls/dangle: Fix last offender.
2011-11-29 16:10:40 -07:00
Jim Meyering
1a85d4a05a build: update gnulib to fix build failure with --enable-gcc-warnings 2011-11-29 14:51:15 +01:00
Jim Meyering
73a9acd6e8 build: enable -Wsuggest-attribute=pure|const in lib/,...
but not in gnulib-tests/.
* configure.ac (GNULIB_WARN_CFLAGS): Do not exclude
-Wsuggest-attribute=pure|const, thus enabling these two warning
options in lib/, since gnulib now toes the line.
Continue to disable them in gnulib-tests/, since some programs
there trigger these suggestions and are not worth fixing.
2011-11-28 10:29:01 +01:00
Jim Meyering
1e676ec844 build: update gnulib for const+pure attributes 2011-11-28 10:29:01 +01:00
Jim Meyering
5b3e538b7f tests: add a syntax check for last week's global change
Last week I made a global change, commit a2c811db, `tests: use
"compare exp out", not "compare out exp"', but forgot to add a
corresponding syntax check rule.  Without that, it is far too
easy to add a new test or to merge in an old one that would
be non-conforming.  Obviously this is only a heuristic, since
it relies on the expected-output file to have a name that starts
with "exp".
* cfg.mk (sc_prohibit_reversed_compare_failure): Prohibit use of
compare with reversed arguments.
2011-11-27 21:13:18 +01:00
Jim Meyering
040bc8b50f maint: update comment gcc-4.6.2 still botches -Wsuggest-attribute=pure
* configure.ac: Update the comment on which gcc versions still must
not use -Wsuggest-attribute=pure option: still required on post-
Fedora 16 rawhide's 4.6.2 20111027.
2011-11-27 13:52:11 +01:00
Jim Meyering
3e26551096 maint: bootstrap: run autopoint and libtoolize *before* gnulib-tool
* bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
Run autopoint and libtoolize *before* gnulib-tool.
After it, run an abbreviated autoreconf, rather than a loop around
all tools.
* bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
and --makefile-name=gnulib.mk.  Remove stray use of $bt.
* lib/Makefile.am: Initialize all of the following so that
generated code in gnulib.mk may use += to append to those variables:
AM_CFLAGS, AM_CPPFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST,
MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES,
noinst_LIBRARIES.
2011-11-24 22:18:29 +01:00
Jim Meyering
5bf2c0eed3 maint: bootstrap: remove some now-unneeded code
This bootstrap script arose back when gnulib-tool was young.
Since then, it has seen improvements that render much of this
script unnecessary.  In particular, it can now make symlinks
to the files it uses.  Also, I no longer see as much value in
marking files as read-only via comments.
* bootstrap (slirp, bt_mark_as_generated): Remove.
2011-11-24 22:18:29 +01:00
Jim Meyering
2d9ddc4aef maint: use gnulib's gettext-h, not the gettext module
* bootstrap.conf (gnulib_modules): Use gnulib's gettext-h, not the
gettext module.  Not only is gettext-h far smaller (it has far fewer
dependencies than the gnulib module), but it does not suffer from
the problem with the gettext module whereby it adds a -I.../intl
option to compilation flags.  That can provoke warnings, since we
don't have such a directory.  We used to work around that via a
hack in bootstrap, but that was ugly and inefficient.
2011-11-24 22:18:29 +01:00
Jim Meyering
729cfdb578 maint: append many lib/ and m4/ names to .gitignore 2011-11-24 22:18:29 +01:00
Jim Meyering
b7fbf82d9b build: update gnulib submodule to latest for fixed stdalign test 2011-11-24 22:18:29 +01:00
Jim Meyering
0fd74a564e scripts: commit-msg: tweak 72-column test to avoid a false-positive
* scripts/git-hooks/commit-msg: Don't warn about a line that is
longer than 72 if it is a comment.  Git-generated comments would
occasionally trigger this.
2011-11-23 09:05:08 +01:00
Jim Meyering
3d213a17fa build: update gnulib and tests/init.sh
* gnulib: Update.
* tests/init.sh: Update from gnulib.
2011-11-23 08:56:56 +01:00
Jim Meyering
da38f12d6f build: --enable-gcc-warnings: disable some new warnings
* configure.ac: Disable some new warning options pulled in via
an update to gnulib's manywarnings module: -Wformat-nonliteral,
-Wunsuffixed-float-constants, -Wdouble-promotion.
2011-11-23 08:56:48 +01:00
Jim Meyering
a2c811db42 tests: use "compare exp out", not "compare out exp"
Likewise, when an empty file is expected, use "compare /dev/null out",
not "compare out /dev/null". I.e., specify the expected/desired contents
via the first file name.  Prompted by a suggestion from Bruno Haible
in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154

Run these commands:

    git grep -l -E 'compare [^ ]+ exp' \
      |xargs perl -pi -e 's/(compare) (\S+) (exp\S*)/$1 $3 $2/'
    git grep -l -E 'compare [^ ]+ /dev/null' \
      |xargs perl -pi -e 's/(compare) (\S+) (\/dev\/null)/$1 $3 $2/'

* tests/chgrp/no-x: As above.
* tests/chmod/no-x: Likewise.
* tests/chmod/silent: Likewise.
* tests/chmod/thru-dangling: Likewise.
* tests/chown/basic: Likewise.
* tests/chown/deref: Likewise.
* tests/chown/preserve-root: Likewise.
* tests/cp/abuse: Likewise.
* tests/cp/backup-is-src: Likewise.
* tests/cp/cp-a-selinux: Likewise.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/fail-perm: Likewise.
* tests/cp/into-self: Likewise.
* tests/cp/proc-zero-len: Likewise.
* tests/cp/src-base-dot: Likewise.
* tests/cp/thru-dangling: Likewise.
* tests/dd/reblock: Likewise.
* tests/dd/unblock-sync: Likewise.
* tests/du/2g: Likewise.
* tests/du/8gb: Likewise.
* tests/du/basic: Likewise.
* tests/du/bigtime: Likewise.
* tests/du/deref-args: Likewise.
* tests/du/exclude: Likewise.
* tests/du/files0-from-dir: Likewise.
* tests/du/hard-link: Likewise.
* tests/du/inacc-dest: Likewise.
* tests/du/inacc-dir: Likewise.
* tests/du/long-sloop: Likewise.
* tests/du/max-depth: Likewise.
* tests/du/move-dir-while-traversing: Likewise.
* tests/du/no-deref: Likewise.
* tests/du/no-x: Likewise.
* tests/du/one-file-system: Likewise.
* tests/du/slash: Likewise.
* tests/du/trailing-slash: Likewise.
* tests/install/strip-program: Likewise.
* tests/ln/hard-backup: Likewise.
* tests/ls/block-size: Likewise.
* tests/ls/color-clear-to-eol: Likewise.
* tests/ls/color-dtype-dir: Likewise.
* tests/ls/color-norm: Likewise.
* tests/ls/dangle: Likewise.
* tests/ls/dired: Likewise.
* tests/ls/file-type: Likewise.
* tests/ls/follow-slink: Likewise.
* tests/ls/infloop: Likewise.
* tests/ls/m-option: Likewise.
* tests/ls/no-arg: Likewise.
* tests/ls/recursive: Likewise.
* tests/ls/rt-1: Likewise.
* tests/ls/stat-dtype: Likewise.
* tests/ls/stat-failed: Likewise.
* tests/ls/stat-free-symlinks: Likewise.
* tests/ls/x-option: Likewise.
* tests/misc/arch: Likewise.
* tests/misc/cat-buf: Likewise.
* tests/misc/cat-proc: Likewise.
* tests/misc/chcon: Likewise.
* tests/misc/csplit: Likewise.
* tests/misc/df-P: Likewise.
* tests/misc/fmt-long-line: Likewise.
* tests/misc/groups-dash: Likewise.
* tests/misc/groups-version: Likewise.
* tests/misc/head-pos: Likewise.
* tests/misc/nl: Likewise.
* tests/misc/od-N: Likewise.
* tests/misc/od-multiple-t: Likewise.
* tests/misc/od-x8: Likewise.
* tests/misc/printf: Likewise.
* tests/misc/printf-hex: Likewise.
* tests/misc/pwd-option: Likewise.
* tests/misc/readlink-fp-loop: Likewise.
* tests/misc/runcon-no-reorder: Likewise.
* tests/misc/seq-long-double: Likewise.
* tests/misc/sort-NaN-infloop: Likewise.
* tests/misc/sort-benchmark-random: Likewise.
* tests/misc/sort-debug-keys: Likewise.
* tests/misc/sort-float: Likewise.
* tests/misc/sort-merge-fdlimit: Likewise.
* tests/misc/sort-unique-segv: Likewise.
* tests/misc/stat-hyphen: Likewise.
* tests/misc/stat-slash: Likewise.
* tests/misc/stdbuf: Likewise.
* tests/misc/sum-sysv: Likewise.
* tests/misc/tac-2-nonseekable: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/misc/tr-case-class: Likewise.
* tests/misc/truncate-fail-diag: Likewise.
* tests/misc/wc-files0: Likewise.
* tests/mkdir/selinux: Likewise.
* tests/mv/backup-dir: Likewise.
* tests/mv/backup-is-src: Likewise.
* tests/mv/diag: Likewise.
* tests/mv/dir2dir: Likewise.
* tests/mv/dup-source: Likewise.
* tests/mv/force: Likewise.
* tests/mv/hard-verbose: Likewise.
* tests/mv/i-link-no: Likewise.
* tests/mv/into-self: Likewise.
* tests/mv/into-self-2: Likewise.
* tests/mv/into-self-3: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/perm-1: Likewise.
* tests/mv/sticky-to-xpart: Likewise.
* tests/mv/trailing-slash: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/rm/cycle: Likewise.
* tests/rm/dir-no-w: Likewise.
* tests/rm/dir-nonrecur: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/rm/fail-eacces: Likewise.
* tests/rm/i-never: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/isatty: Likewise.
* tests/rm/one-file-system: Likewise.
* tests/rm/rm3: Likewise.
* tests/rm/rm5: Likewise.
* tests/rm/unread2: Likewise.
* tests/rm/v-slash: Likewise.
* tests/sample-test: Likewise.
* tests/split/b-chunk: Likewise.
* tests/split/fail: Likewise.
* tests/split/l-chunk: Likewise.
* tests/split/lines: Likewise.
* tests/split/r-chunk: Likewise.
* tests/split/suffix-length: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/tail-2/follow-name: Likewise.
* tests/tail-2/follow-stdin: Likewise.
* tests/tail-2/pipe-f: Likewise.
* tests/tail-2/pipe-f2: Likewise.
* tests/tail-2/start-middle: Likewise.
* tests/touch/60-seconds: Likewise.
* tests/touch/fail-diag: Likewise.
* tests/touch/not-owner: Likewise.
* tests/touch/relative: Likewise.
2011-11-22 10:35:03 +01:00
Jim Meyering
9d98634b39 tests: use compare, not "diff", in a few stray tests
* tests/install/basic-1: Use compare, not diff.
* tests/mkdir/p-v: Likewise.
* tests/mv/part-fail: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/touch/not-owner: Likewise.
2011-11-22 10:34:43 +01:00
Jim Meyering
ad10c145ff maint: revert "build: update gnulib submodule to latest"
Don't update to latest from gnulib just yet.
This reverts commit 173f4d9bd6.
In particular, manywarnings is too aggressive.
2011-11-20 23:58:13 +01:00
Jim Meyering
173f4d9bd6 build: update gnulib submodule to latest 2011-11-20 23:38:03 +01:00
Jim Meyering
67b442f2aa maint: make generated THANKS file read-only
* Makefile.am (THANKS): Make generated file read-only.
2011-11-20 23:30:25 +01:00
Jim Meyering
054567f5a7 doc: clarify ln's --help output
* src/ln.c (usage): Use TARGET, not "source" in description.
Reported by Michael J Daniel in http://bugs.gnu.org/9896.
2011-11-20 23:30:25 +01:00
Paul Eggert
71b7ddcdd5 port to GNU hosts, where getuid and friends can fail
* src/groups.c (main):
* src/install.c (need_copy):
* src/su.c (log_su):
* src/test.c (unary_operator):
* src/whoami.c (main):
Don't assume that getuid and friends always succeed.
This fixes the same problem that we recently fixed with 'id'.
2011-11-20 14:09:53 -08:00
Jim Meyering
8ffc159611 maint: avoid gitlog-to-changelog diagnostic about unused entries
* build-aux/git-log-fix: Comment out two unused entries.
Each of those two entries does indicate an error in a commit log,
but precedes the cut-off date, so has an actual VC'd ChangeLog entry.
I.e., gitlog-to-changelog generates ChangeLog entries since 2008-02,
and these two predate that.
* ChangeLog-2008: Make the indicated correction.
2011-11-20 15:34:59 +01:00
Erik Auerswald
5d39ad6419 ln: fix position of --backup values description
* src/ln.c (usage): A paragraph describing interactions of -s
with -L and -P somehow snuck in between the description of the
--backup option and the values used to control it. Fix this by
moving the value description up.
2011-11-20 08:46:30 +01:00
Jim Meyering
1c5ca5c05b scripts: rewrite git commit-msg hook in Perl
* scripts/git-hooks/commit-msg: Rewrite in perl.
This is still a work in progress in that it hard-codes coreutils-
specific program names and policies that should be easy to selectively
enable or disable without modifying the script.
2011-11-18 15:38:18 +01:00
Eric Blake
c0582b9df7 sort: clarify wording on -k syntax
* src/sort.c (usage): Use KEYDEF instead of POS, and call out the
specific OPTS that can occur in KEYDEF.
Based on a report by Lars Noodén, http://bugs.gnu.org/10019
2011-11-16 10:25:47 -07:00
Paul Eggert
8f512f9bdb id: fix bug when euid != ruid
* src/id.c (main): Report an error if no args are given and getuid
fails, because print_full_info needs ruid.  Redo code so that
getuid and friends are invoked only when needed; this makes the
code easier to follow, and is how I found the above bug.
2011-11-15 13:24:02 -08:00
Ruediger Meier
e36e6f2c6e ls: another reword of generic size note
* src/system.h (emit_size_note): Use "unit" rather than "suffix",
and move multiplication to example instead of in suffix list.
See additional discussion in Bug#9939.
2011-11-15 11:55:23 -07:00
Eric Blake
97842f0b97 id: tweak comment
* src/id.c (main): Replace confusing use of "etc.".
2011-11-15 11:48:51 -07:00
Paul Eggert
47e511a1d0 id: handle (uid_t) -1 more portably
* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for nonzero errno, rather than having a compile-time
GETID_MAY_FAIL guess.  Suggested by Roland McGrath in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10021#47>.
Also, the old code was incorrect if uid_t was narrower than int.
(print_full_info): Remove unnecessary cast to -1.
2011-11-15 09:31:21 -08:00
Paul Eggert
7db79cc4f8 id: undo previous commit, which was done by mistake
* src/id.c (GETID_MAY_FAIL, main, print_full_info): Undo previous change.
2011-11-15 08:41:35 -08:00
Paul Eggert
06ca3797ac doc: update for ISO/IEC 80000-13
* doc/coreutils.texi (Block size): IEC 60027-2 has been superseded
by ISO/IEC 80000-13, so prefer the newer standard but also mention
the old.  The new standard specifies Zi and Yi, so they are no
longer GNU extensions.  Fix stale URL to BIPM.

2011-11-14  Paul Eggert  <eggert@cs.ucla.edu>

id: handle (uid_t) -1 more portably
* src/id.c (GETID_MAY_FAIL): Remove.
(main): Check for negative return values, not for -1.
The old code was incorrect if uid_t was narrower than int,
regardless of whether we were on a GNU or a POSIX platform.
The new code is simpler and doesn't need GETID_MAY_FAIL.
(print_full_info): Remove unnecessary cast to -1.
2011-11-15 08:23:23 -08:00
Ludovic Courtès
40324ca8b2 id: fail when getuid, getgid, etc. fail, e.g., on GNU/Hurd
POSIX-conforming getuid, geteuid, etc. functions cannot fail,
but on GNU/Hurd systems and some others, they may.
* src/id.c (main) [__GNU__]: Detect and diagnose any such failure.
* tests/id/gnu-zero-uids: New file.
* tests/Makefile.am (TESTS): Add it to the list.
* tests/init.cfg (require_gnu_): New function.
2011-11-14 09:52:42 +01:00
Nix
b8b6dd27a6 tests: avoid rare fp failure in du/move-dir-while-traversing
* tests/du/move-dir-while-traversing: Boost the mkdir iteration count
yet again.
2011-11-13 20:02:55 +01:00
Jim Meyering
47052ddbfa maint: adjust git hook to allow "copy: ..." on line 1 of commit message
* scripts/git-hooks/commit-msg: Add "copy" to the list of valid
command-name-like summary line prefixes.
2011-11-13 20:02:55 +01:00
Jim Meyering
5f47550b16 maint: id, groups: use conforming diagnostics
* src/groups.c (main): Don't capitalize the first word of diagnostic.
* src/id.c (main): Likewise.
Reported by Ludovic Courtès.
2011-11-13 10:46:40 +01:00
Jim Meyering
ac9581d80c maint: avoid new syntax-check failure due to indentation with TABs
* cfg.mk (tbi_2): Exempt pre-applypatch, since it too is from git.
2011-11-13 10:40:05 +01:00
Jim Meyering
4df39704b8 maint: install customized git hooks to keep commit logs consistent
* bootstrap.conf (buildreq): Copy (with backup) coreutils-supplied
git hooks into .git/hooks, to help keep commit logs normalized.
2011-11-12 22:49:58 +01:00
Jim Meyering
7bd653dada maint: add rule to ensure that our commit hook copies are up to date
* Makefile.am (check-git-hook-script-sync): New rule -- not used
anywhere, because it depends on having very recent git.
* scripts/git-hooks/pre-applypatch: New file.
2011-11-12 22:23:09 +01:00
Jim Meyering
635bcd0d19 maint: sync pre-commit script with git's
* scripts/git-hooks/pre-commit (allownonascii): Remove double quotes
around $(...) construct, to make this file identical to git's
sample hook script.
2011-11-12 14:00:18 +01:00
Jim Meyering
b64afe0605 build: update gnulib for fstatat cross-compile improvement 2011-11-12 13:32:30 +01:00
Jim Meyering
ceae907fb8 maint: adjust the URL that will appear in the generated announcement
* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
for the first link listed in the generated announcement.
announce-gen now provides the faster mirror link automatically.
2011-11-12 10:22:55 +01:00
Jim Meyering
f8245e96cd ls: plug a per-argument leak
Using ls -l on an SELinux-enabled system would leak one SELinux
context string per non-empty-directory command-line argument.
* src/ls.c (free_ent): New function, factored out of...
(clear_files): ...here.  Use it.
(extract_dirs_from_files): Call free_ent (f), rather than simply
free (f->name).  The latter failed to free the possibly-malloc'd
linkname and scontext members, and thus could leak one of those
strings per command-line argument.
* THANKS.in: Update.
* NEWS (Bug fixes): Mention it.
Reported by Juraj Marko in http://bugzilla.redhat.com/751974.
2011-11-12 10:22:55 +01:00
Paul Eggert
91a5badc7b * tests/misc/sort-continue: Port to Fedora 15.
Redirect with the shell command, not in a separate 'exec'.
Without this patch, Fedora 15 x86-64 /bin/sh (i.e., Bash 4.2.10)
complained about running out of file descriptors in the shell.
2011-11-12 00:20:33 -08:00
Paul Eggert
4ea3e6dee1 * tests/ls/block-size: Make it executable. 2011-11-12 00:11:22 -08:00
Paul Eggert
50e5d024ba * src/system.h (emit_size_note): Reword for clarity.
See discussion in Bug#9939.
2011-11-11 23:37:04 -08:00
Paul Eggert
448718c123 ls: -k no longer affects -l's file sizes
This fixes an incompatibility with POSIX 2008 and with BSD.
Problem reported by Abdallah Clark (Bug#9939)
via Alan Curry (Bug#10016).
* NEWS: Document this.
* doc/coreutils.texi (General output formatting): Document the
new -k behavior, and --kibibytes.
* src/ls.c (file_human_output_opts): New static var.
(long_options, usage): Add --kibibytes.
(decode_switches, gobble_file, print_long_format):
Implement the new -k behavior.
* tests/ls/block-size: New file.
* tests/Makefile.am (TESTS): Add it.
2011-11-11 23:21:50 -08:00
Eric Blake
1d9fe527a0 doc: fix typo in sort description
* doc/coreutils.texi (sort invocation): Fix typo.
2011-11-08 12:11:39 -07:00
Jim Meyering
9aac54cdd8 build: update gnulib for more openat changes 2011-11-05 20:57:19 +01:00
Jim Meyering
ee1d9396fc build: do use fstatat and unlinkat modules, now that they're separate
* bootstrap.conf (gnulib_modules): Add fstatat and unlinkat.
2011-11-04 20:44:34 +01:00
Jim Meyering
d973e8a434 build: update gnulib to pull in openat module separation changes
No semantic change.
2011-11-04 19:48:20 +01:00
Pádraig Brady
6603e37c1f tests: avoid signal issues in timeout-group
These issues were seen on an OpenSuse 10.3 system
(kernel 2.6.22.5 x86_64, glibc 2.6.1-18, bash updated to 4.2),
and also on a 64 bit SLES system with a 2.6.16 kernel.
Both systems had 2 CPUs.

There were two issues seen.  1. Occasionally the
timeout.cmd shell script would block SIGINT until
the sleep command exited.  2. Much less frequently the
signal handler in the timeout command itself was ignored,
causing SIGALRM to kill the process.

* tests/misc/timeout-group: Detect the above two cases,
and skip rather than fail.  Note only issue 2. causes
a failure unless skipped, but we skip for case 1. also,
for diagnostic purposes.
2011-11-03 18:36:28 +00:00
Pádraig Brady
aa6448b8d5 tests: fix a race in timeout-group
This could cause a false failure, or even
an infinite loop in rare circumstances.

* tests/misc/timeout-group: Increase the timeouts
passed to the timeout command, so that they're
effectively not used.  Instead the command termination
is triggered by the kill commands when everything
is in the correct state.

Reported by Bernhard Voelker.
2011-11-03 18:36:28 +00:00
Jim Meyering
d84d8764cc build: adapt to gnulib's recent openat/fchmodat separation
* gnulib: Update to latest, pulling in the openat/fchmodat separation.
* bootstrap.conf (gnulib_modules): Add fchmodat, now that gnulib
has moved it into its own module.
2011-11-02 11:58:10 +01:00
Jim Meyering
2b5ef2dd9d maint: fix git-log typos when generating ChangeLog
* gnulib: Update to latest, for new gitlog-to-changelog.
* Makefile.am (gen-ChangeLog): Use its new --amend=F option.
* build-aux/git-log-fix: New file, with ChangeLog fixes.
2011-11-02 09:12:32 +01:00
Jim Meyering
ba4b05c94c stat: avoid compilation failure with gnulib's new alignof
* src/stat.c: Include <stdalign.h>, not "alignof.h" for alignof use.
2011-11-02 09:12:32 +01:00
Jim Meyering
e6ac01c7a1 scripts: reject references to long-form bug URLs
* scripts/git-hooks/commit-msg: Require the normalized/shortened
form of bugzilla.redhat.com and bugs.gnu.org bug URLs.
2011-11-02 08:40:01 +01:00
Pádraig Brady
5128605918 doc: date: mention that the hardware clock might not be set
* doc/coreutils.texi (Setting the time): Reorganize slightly
and mention that the hardware clock might need to be explicitly
updated by the user as is the case on Fedora 16 currently.
See http://bugzilla.redhat.com/749516
2011-11-01 22:02:55 +00:00
Jim Meyering
65527e1c1a build: adapt to gnulib's recent openat/fchownat separation
* bootstrap.conf (gnulib_modules): Add fchownat, now that gnulib
has moved it into its own module.
* gnulib: Update to latest.
2011-11-01 11:49:56 +01:00
Jim Meyering
8ad8306327 build: update gnulib for GNUmakefile fix 2011-10-30 22:38:47 +01:00
Jim Meyering
50424fe2a5 maint: avoid new "make syntax-check" failure due to stdalign definition
* gl/modules/randread (Depends-on): Add stdalign.
* gl/lib/randread.c: Include <stdalign.h>, so we can ...
[!_STRING_ARCH_unaligned]: remove definition of stdalign.
2011-10-30 22:38:47 +01:00
Jim Meyering
53f48c7b0e tests: update gnulib to latest to avoid FP DST-related test failure
Otherwise, "make check" would fail after e.g., a CEST-to-CST
daylight savings transition.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28825
2011-10-30 18:19:19 +01:00
Jim Meyering
f15673fecb tests: doc: fix stale comment in new rm/many-dir-entries-vs-OOM 2011-10-30 11:51:45 +01:00
Jim Meyering
f013fe07ab tests: don't make tail's pipe-f2 test take the full 10 seconds
* tests/tail-2/pipe-f2: Don't always wait 10 seconds.
Before, this test would always wait 10 seconds.
Now, it stops early when it detects that tail -f has written output.
BTW, the race condition that prompted changing the timeout from 1 second
to 10 was that tail -f could be killed by the timeout before producing
any output.
2011-10-29 08:32:11 +02:00
Jim Meyering
2f1384b7e4 date: reinstate the --iso-8601 (-I) option
We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format.  Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.
2011-10-27 22:02:26 +02:00
Jim Meyering
e8f703c000 build: avoid bootstrap failure when using patch-2.5.8
* gl/modules/tempname.diff: Regenerate to correct bogus offsets
and adjust for 1-line offset.  Eric Blake reported that this
patch failed to apply when using patch-2.5.8.
Note that it applies fine using patch-2.6.1.
2011-10-27 19:04:45 +02:00
Jim Meyering
22f3b2e960 build: do not remove definition of ENODATA, after all
* src/system.h (ENODATA): Restore definition.
gnulib defines it only on native Windows systems, so removing our
definition would have provoked build failure on systems that use it,
like FreeBSD.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795
* gnulib: Update to latest, to get new ENODATA-exempting maint.mk rule.
2011-10-25 12:31:49 +02:00
Eric Blake
5bb6316bd7 doc: NEWS: correct "bug introduced in ..." version number
* NEWS: s/7.0/8.0/
2011-10-24 16:20:34 +02:00
Jim Meyering
f8ae6440eb rm: update gnulib to get an fts fix for Cygwin+NWFS/NcFsd file systems
* NEWS (Bug fixes): Mention it.
As far as we know, this fix affects only Cygwin with NWFS or NcFsd
file systems.  See these:
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=71f13422f3e634
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739
http://cygwin.com/ml/cygwin/2011-10/msg00365.html
* src/system.h (ENODATA): Remove fall-back definition, now that
gnulib provides one.  Caught by the sc_prohibit_always-defined_macros
syntax-check rule.
Also remove now-irrelevant "Don't use bcopy..." comment.
2011-10-24 10:46:42 +02:00
Jim Meyering
2ade806cf5 maint: add git hook scripts
We find it worthwhile to use consistent commit summary prefixes.
To that end, the commit-msg script requires that all commits I make
start with "$P: " (where $P is one of ~100 programs in coreutils)
or one of a few other words, like gnulib tests maint doc build.
It allows more than one word, so e.g., "cat tail head: " would also
be accepted.  Pádraig Brady wrote the initial version, with its
72-column and blank-if-present second line checks.
The pre-commit script is the same as the git-supplied sample script,
modulo a bug fix and the "exec 1>&2" redirection.
* scripts/git-hooks/commit-msg: New file.
* scripts/git-hooks/pre-commit: New file.
* scripts/git-hooks/applypatch-msg: New file.  Verbatim from .sample.
* cfg.mk: Exempt two of the new scripts from the no-leading-TABs check,
since they're nearly verbatim from git, and we want to stay in sync.
Exempt the commit-msg script from the no-"fail=0" check.
2011-10-23 11:44:40 +02:00
Martial Bornet
d191bfe8a6 tail: with -f, use nanosleep (not inotify) on a GPFS file system
Because tail's fremote function did not designate GPFS as
a remote file system type, tail -f would mistakenly attempt
to use inotify, which cannot work with a remote file system.
* src/tail.c (fremote): List GPFS as a remote file system type.
* NEWS (Bug fixes): Mention it.
Reported in http://bugs.debian.org/646022.
2011-10-21 09:03:30 +02:00
Mike Frysinger
f5b498c09a build: include man-pages for non-default progs
At the moment, things like man/arch.1 are not included in the tarball.
This makes perl a requirement if you want to build/install the arch
helper.

* man/Makefile.am (EXTRA_DIST): Add $(NO_INSTALL_PROGS_DEFAULT:%=%.1).
2011-10-20 16:05:32 +01:00
Jim Meyering
e6fb579f41 maint: tac: prefer "failed to" diagnostic over "cannot"
* src/tac.c: Change wording in diagnostic: "failed to open" seems
clearer than "cannot open".
2011-10-19 09:31:52 +02:00
Jim Meyering
1bb97e2aa1 tac: do not let failed allocation cause immediate exit
* src/tac.c (temp_stream): Don't exit immediately upon failed heap
allocation, here.  That would inhibit processing of any additional
command-line arguments.
2011-10-19 09:31:52 +02:00
Jim Meyering
d96c2069d9 tac: use only one temporary file, with multiple nonseekable inputs
* src/tac.c (temp_stream): New function, factored out of...
(copy_to_temp): ...here.
(tac_nonseekable): Don't free or fclose, now that we reuse the file.
Suggested by Ambrose Feinstein.
* THANKS.in: Update.
2011-10-19 09:31:30 +02:00
Paul Eggert
385634c8dd maint: make tac.c slightly cleaner
* src/tac.c (copy_to_temp): Now that the template string tacXXXXXX
is used in only one place, don't bother using a separate variable.
Also, using three unconditional assignments seems slightly clearer.
2011-10-18 07:43:58 +02:00
Jim Meyering
866844826c tac: don't leak a file descriptor for each non-seekable input
* src/tac.c (tac_nonseekable): Call fclose and free tmp_file after
each successful call to copy_to_temp.
2011-10-17 17:44:54 +02:00
Jim Meyering
537f9da37f tac: don't misbehave with multiple non-seekable inputs
* src/tac.c (copy_to_temp): Do not reuse the template buffer.
Instead, scribble only on a freshly-xstrdup'd copy each time.
Free that buffer both here, upon failure, and ...
(tac_nonseekable): ...free the buffer in caller, upon success.
* tests/misc/tac-2-nonseekable: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Ambrose Feinstein in http://debbugs.gnu.org/9762.
2011-10-17 17:44:54 +02:00
Jim Meyering
60cd4c271d maint: tac: remove sole use of sprintf in favor of filenamecat
* src/tac.c: Include filenamecat.h.
(copy_to_temp): Use filenamecat rather than xmalloc and sprintf.
Move some declarations "down" to point of initialization.
2011-10-17 17:44:49 +02:00
Pádraig Brady
ead96f9ede maint: speed up make check (vc_exe_in_TESTS)
* tests/check.mk (vc_exe_in_TESTS): The main change is to
not start a sed process for each file under tests/,
which was taking around 2.5s on a 2.1GHz i3-2310M.
Also adjust the rule to no longer use temporary files.
2011-10-17 11:56:10 +01:00
Jim Meyering
563bb94068 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-10-12 11:57:25 +02:00
Jim Meyering
7b68a43111 version 8.14
* NEWS: Record release date.
2011-10-12 11:45:24 +02:00
Pádraig Brady
2629776078 tests: avoid a false failure on systems without inotify
* tests/tail-2/follow-name: Exclude the inotify warning
from the comparison.
Reported by Bruno Haible.
2011-10-12 10:56:04 +02:00
Jim Meyering
3fb0f4aaf2 build: update gnulib to latest to fix MacOS X 10.5 test link failure
Details here:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1743
2011-10-09 19:05:03 +02:00
Jim Meyering
d12ca9764b rm: do not resort to stat'ing very long names even on deficient systems
This change affects only systems that have neither *at function support
nor the /proc/self/fd support required to emulate those *at functions.
* src/remove.c (write_protected_non_symlink): Call faccessat
unconditionally.  Thus we no longer need euidaccess_stat, which was
the sole function used here to operate on a full relative file name.
Remove full_name parameter and update caller.
* lib/euidaccess-stat.h: Remove file.
* lib/euidaccess-stat.c: Likewise.
* m4/euidaccess-stat.m4: Likewise.
* po/POTFILES.in: Remove lib/euidaccess-stat.c.
* m4/prereq.m4 (gl_PREREQ): Don't require gl_EUIDACCESS_STAT.
Prompted by a report from Bruno Haible that the rm/deep-2
test was failing on HP-UX 11.31.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1748
2011-10-09 19:04:35 +02:00
Jim Meyering
c977d5de8d tests: skip rather than failing when perl is not available
* tests/df/total-verify: Use require_perl_, so that this test is
skipped when perl is not available.
* tests/rm/deep-2: Likewise, and fix wording in a comment.
Reported by Bruno Haible.
2011-10-09 10:00:12 +02:00
Jim Meyering
bb1c6912f2 tests: avoid tail-2/F-vs-missing failure on NFS
* tests/tail-2/F-vs-missing: This test would fail about 80% of the
time on linux/powerpc when run in an NFS-mounted directory.
Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1727
2011-10-08 19:57:21 +02:00
Jim Meyering
11cb50ee6d tests: avoid ls/slink-acl test failure on Solaris 10
* tests/ls/slink-acl: Use setfacl's "-m user::r" option rather than
less-portable "-m m::r".  The latter did not work with Solaris 10's
version of setfacl.  Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1737
2011-10-08 17:57:01 +02:00
Jim Meyering
fc4c062ffa tests: avoid false-positive failures on linux/sparc64
* tests/init.cfg (require_strace_): Detect a version of strace
that fails on linux/sparc64 for 64-bit executables.  Report and
most of the suggested fix from Bruno Haible:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1726/focus=1728
2011-10-08 17:11:10 +02:00
Bernhard Voelker
43a987e179 build: let bootstrap resort to wget for downloading .po files
* bootstrap (download_po_files): Fallback to wget when downloading
the .po files via rsync failed.  This is necessary to bootstrap behind
a strict firewall.
2011-10-06 09:05:26 +02:00
Jim Meyering
e1fc300b59 doc: clean up NEWS
* NEWS: Mention when the sort -g infloop bug was introduced and
alphabetize entries.  Clarify a sentence in the pwd-improvement entry.
2011-10-05 23:26:29 +02:00
Jim Meyering
5f567ce4bd tests: add a test to exercise today's ls-lL-vs-ACL bug
* tests/ls/slink-acl: New file.
* tests/Makefile.am (TESTS): Add it.
* tests/init.cfg (require_setfacl_): New function.
* gnulib: Update to latest, for file-has-acl changes.
* NEWS (Bug fixes): Mention it.
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28538.  This
":>k; setfacl -m m::r k; ln -s k s; ls -Log s" should print e.g.,
    -rw-r-----+ 1 0 Oct  5 19:22 s
With the ls from coreutils-8.13, it would print this (with "." or
nothing in place of the "+"):
    -rw-r-----. 1 0 Oct  5 19:22 s
2011-10-05 23:26:21 +02:00
Jim Meyering
88873501cf build: don't use automake's obsolete AM_C_PROTOTYPES macro
* m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove use of AM_C_PROTOTYPES,
now that automake rejects it.
2011-10-03 11:01:44 +02:00
Jim Meyering
d588c8100c maint: clean up m4 syntax
* m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS):
Remove unnecessary backslashes and add quotes around multi-line
argument lists.
2011-10-01 19:48:17 +02:00
Markus Duft
07498748d2 build: use getgr*_nomembers functions on Interix
Interix provides faster replacements for getgr{gid,nam,ent} where
group member information is not fetched from domain controllers.
This makes 'id' usable on domain controlled interix boxes.
* m4/jm-macros.m4: Check for _nomembers functions.
* src/system.h: Redefine function to _nomembers when available.
2011-10-01 19:17:26 +02:00
Markus Duft
7289f12588 build: accommodate missing setgroups on Interix
Add a dummy, non-functional, always-successful replacement setgroups
function, to keep the original code untouched and simple.
 * src/chroot.c (setgroups) [! HAVE_SETGROUPS]: Define.
2011-10-01 19:17:21 +02:00
Jim Meyering
e1c589ecd5 build: stop distributing gzip'd releases; xz is enough
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist-gzip.
* NEWS (Build-related): Mention that we're dropping .tar.gz.
2011-10-01 17:50:32 +02:00
Jim Meyering
28460826d3 build: update gnulib submodule to latest 2011-10-01 17:50:32 +02:00
Pádraig Brady
f215f7fe06 doc: mention the recent ls -L "argetm" fix in NEWS
* NEWS: Mention the bug fix
2011-10-01 02:35:32 +01:00
Pádraig Brady
84457c491e ls: fix output of dangling symlinks colored as target
This is related to commit b7f2b51c, 2010-01-01,
"ls: fix color of broken symlinks colored as target"
which didn't handle the --dereference case.
The simplest way to reproduce the resultant
erroneous "argetm" is as follows:

 $ ln -s /no-such dangle
 $ env LS_COLORS=ln=target ls --dereference --color
 ls: cannot access dangle: No such file or directory
 argetmdangle

This is also an issue with the `tree` utility,
reported here: http://bugs.debian.org/586765

* src/ls.c (print_color_indicator): Move the handling
of 'ln=target' in $LS_COLORS (color_symlink_as_referent == true)
to a higher scope, to handle all cases where type == C_LINK.
* tests/misc/ls-misc: Add a test case for the specific issue,
and 2 further test cases to verify other code paths in this area.

Reported by Jason Glassey.
2011-10-01 02:15:12 +01:00
Jim Meyering
4f38e9f249 ls: avoid reading beyond end of color indicator
At first this looked like a buffer overrun, since there was no test
to ensure that the buffer length was 6.  However, since the LS_COLORS
string is NUL-terminated and since settings within it are separated by
":" there was neither the risk of reading beyond end of buffer nor risk
of a false-positive match.
* src/ls.c (print_color_indicator): Use color_symlink_as_referent
rather than manually comparing against "target" again.
* src/system.h (STRNCMP_LIT): Correct description in comment.
2011-09-30 22:03:47 +02:00
Jim Meyering
bec8920923 tests: update gnulib to latest, to fix test link failure 2011-09-28 11:00:13 +02:00
Jim Meyering
57ee5493d9 sort: avoid a NaN-induced infloop
These commands would fail to terminate:
    yes -- -nan | head -156903 | sort -g > /dev/null
    echo nan > F; sort -m -g F F
That can happen with any strtold implementation that includes
uninitialized data in its return value.  The problem arises in the
mergefps function when bubble-sorting the two or more lines, each
from one of the input streams being merged: compare(a,b) returns 64,
yet compare(b,a) also returns a positive value.  With a broken
comparison function like that, the bubble sort never terminates.
Why do the long-double bit strings corresponding to two identical
"nan" strings not compare equal?  Because some parts of the result
are uninitialized and thus depend on the state of the stack.
For more details, see http://bugs.gnu.org/9612.
* src/sort.c (nan_compare): New function.
(general_numcompare): Use it rather than bare memcmp.
Reported by Aaron Denney in http://bugs.debian.org/642557.
* NEWS (Bug fixes): Mention it.
* tests/misc/sort-NaN-infloop: New file.
* tests/Makefile.am (TESTS): Add it.
2011-09-27 16:49:51 +02:00
Jim Meyering
1d0a7ed7d5 build: update gnulib submodule to latest 2011-09-24 13:18:30 +02:00
Jim Meyering
081e262daf maint: avoid new syntax-check failure
Pulling in the latest gnulib triggered a new false-positive
syntax-check failure.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_always-defined_macros):
Exempt remove.c; its definitions of DT_UNKNOWN, DT_DIR and DT_LNK are
harmless.
2011-09-24 13:17:22 +02:00
Bernhard Voelker
eb6f977ff5 tests: mention new check-expensive/check-very-expensive in test logs
* tests/init.cfg: (very_expensive_): Mention toplevel make target,
check-very-expensive.
(expensive_): Likewise for check-expensive.
2011-09-24 13:17:22 +02:00
Bernhard Voelker
57db1fc2a9 tests: introduce make targets check-expensive and check-very-expensive
* Makefile.am: add shortcuts to run (very) expensive tests.
Use "make check-expensive" to run tests with RUN_EXPENSIVE_TESTS=yes,
use "make check-very-expensive" to run tests with both
RUN_EXPENSIVE_TESTS=yes and RUN_VERY_EXPENSIVE_TESTS=yes.
Non-expensive tests are included in all cases.
2011-09-24 13:17:21 +02:00
Pádraig Brady
80a1aca0d2 timeout: handle implicitly created threads
On some systems like glibc on GNU/kFreeBSD, a thread is
implicitly created when timer_settime() is used.
This breaks our scheme to ignore signals we've
sent ourselves.

* src/timeout.c (send_sig): Change the scheme used to
ignore signals we've sent ourselves, to a more robust
but perhaps limited scheme of ignoring all signals of
a certain type after we've sent that signal to the job.
* NEWS: Mention the change in behavior.
2011-09-22 12:01:05 +01:00
Bruno Haible
a4fa14849a tests: init.sh: support any non-GNU diff
* tests/init.sh (compare): If "diff -c" is supported but "diff -u" is
not, use "diff -c".  Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1,
Solaris 8.
2011-09-19 19:24:46 +02:00
Jim Meyering
9bb92a4db1 gnulib: update for getcwd fix on systems without openat
This fixes a bug in pwd and all getcwd-using applications (for some
uses: df, readlink, stat) when run from a directory whose absolute name
contains more than PATH_MAX / 3 components.  For more details, see
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=f6fe351fc534ae1
* gnulib: Update.
* NEWS (Improvements): Mention it.
2011-09-19 17:25:43 +02:00
Reuben Thomas
f2fb24809c md5sum: clarify what is meant by binary/text flag.
src/md5sum.c: Clarify that we are talking about input mode.
        doc/coreutils.texi: Ditto.
2011-09-19 10:55:37 +02:00
Jim Meyering
6c93cd4512 tests: cp-parents: don't let a failing chmod go unnoticed
* tests/cp/cp-parents: If somehow a chmod set-up command failed,
subsequent tests would fail in a harder-to-diagnose manner.
2011-09-19 10:53:45 +02:00
Paul Eggert
e92b0dbc13 randread: add FIXME comment for RDRAND
* gl/lib/randread.c: Add a FIXME comment suggesting how to improve
performance by using the RDRAND hardware instruction.
2011-09-17 08:54:26 -07:00
Pádraig Brady
7da844cc86 md5sum: handle BSD reversed format checksums
* src/md5sum.c (split_3): Detect and handle BSD reversed
format checksums.
* tests/misc/md5sum-bsd: Add a new test.
* tests/Makefile.am: Reference new test.
* NEWS: Mention the improvement
Suggested by Rimas Kudelis.
2011-09-16 19:09:26 +01:00
Eric Blake
b98e41cc74 doc: improve description of join's -a option
* src/join.c (usage): Mention that -a adds to the overall output,
rather than replacing the default output.
* THANKS: Update.
Reported by Tomas Volka.
2011-09-14 07:46:09 -06:00
Jim Meyering
3f456c54bb build: avoid unwarranted failure w/gcc-4.6.1 and --enable-gcc-warnings
* configure.ac (gl_GCC_VERSION_IFELSE): Define new macro.
(WERROR_CFLAGS): With --enable-gcc-warnings, use it to
add -Wsuggest-attribute=pure only with gcc 4.7 or newer.
2011-09-12 19:07:00 +02:00
Jim Meyering
82e86b4831 doc: fix typo in test script comment
* tests/d_type-check: Fix typo in comment.
2011-09-08 22:03:17 +02:00
Jim Meyering
1888629627 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2011-09-08 17:23:21 +02:00
728 changed files with 8487 additions and 4599 deletions

80
.gitignore vendored
View File

@@ -2,6 +2,7 @@
*.[EIOX]
*.bak
*.o
*.trs
*/.deps
*~
._bootmp
@@ -18,11 +19,14 @@
/build-aux/.gitignore
/build-aux/compile
/build-aux/config.guess
/build-aux/config.rpath
/build-aux/config.sub
/build-aux/depcomp
/build-aux/install-sh
/build-aux/mdate-sh
/build-aux/missing
/build-aux/snippet/
/build-aux/test-driver
/build-aux/texinfo.tex
/build-aux/ylwrap
/config.cache
@@ -36,6 +40,7 @@
/gnulib-tests
/lib/.cvsignore
/lib/.gitignore
/lib/alloca.h
/lib/arg-nonnull.h
/lib/arpa
/lib/binary-io.h
@@ -44,20 +49,85 @@
/lib/config.h
/lib/config.hin
/lib/configmake.h
/lib/ctype.h
/lib/dirent.h
/lib/fcntl.h
/lib/getopt.h
/lib/glthread
/lib/iconv.h
/lib/iconv_open-aix.h
/lib/iconv_open-hpux.h
/lib/iconv_open-irix.h
/lib/iconv_open-osf.h
/lib/iconv_open-solaris.h
/lib/inttypes.h
/lib/langinfo.h
/lib/libcoreutils.a
/lib/link-warning.h
/lib/locale.h
/lib/math.h
/lib/netdb.h
/lib/parse-datetime.c
/lib/printf.c
/lib/progname.c
/lib/progname.h
/lib/ref-add.sed
/lib/ref-del.sed
/lib/selinux
/lib/signal.h
/lib/stamp-h1
/lib/stdalign.h
/lib/stdio.h
/lib/stdlib.h
/lib/string.h
/lib/strings.h
/lib/sys/
/lib/termios.h
/lib/time.h
/lib/unistd.h
/lib/unistr
/lib/unistr.h
/lib/unitypes.h
/lib/uniwidth
/lib/uniwidth.h
/lib/unused-parameter.h
/lib/warn-on-use.h
/lib/wchar.h
/lib/wctype.h
/m4/.cvsignore
/m4/.gitignore
/m4/codeset.m4
/m4/fcntl-o.m4
/m4/gettext.m4
/m4/glibc2.m4
/m4/glibc21.m4
/m4/gnulib-cache.m4
/m4/iconv.m4
/m4/intdiv0.m4
/m4/intl.m4
/m4/intldir.m4
/m4/intlmacosx.m4
/m4/intmax.m4
/m4/inttypes-pri.m4
/m4/inttypes_h.m4
/m4/lcmessage.m4
/m4/lib-ld.m4
/m4/lib-link.m4
/m4/lib-prefix.m4
/m4/lock.m4
/m4/longlong.m4
/m4/nls.m4
/m4/po.m4
/m4/printf-posix.m4
/m4/progtest.m4
/m4/size_max.m4
/m4/stdint_h.m4
/m4/threadlib.m4
/m4/uintmax_t.m4
/m4/visibility.m4
/m4/wchar_t.m4
/m4/wint_t.m4
/m4/xsize.m4
/maint.mk
/man/*.1
/po/*.gmo
@@ -66,10 +136,20 @@
/po/.reference
/po/LINGUAS
/po/Makefile.in
/po/Makefile.in.in
/po/Makevars
/po/Makevars.template
/po/POTFILES
/po/Rules-quot
/po/boldquot.sed
/po/checksums
/po/coreutils.pot
/po/en@boldquot.header
/po/en@quot.header
/po/insert-header.sin
/po/quot.sed
/po/remove-potcdate.sed
/po/remove-potcdate.sin
/po/stamp-po
/src/version.c
/src/version.h

View File

@@ -1 +1 @@
8.12
8.16

View File

@@ -1,6 +1,6 @@
# Suppress valgrind diagnostics we don't care about.
# Copyright (C) 2003-2004, 2006-2011 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 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

@@ -62,6 +62,7 @@ printf: David MacKenzie
ptx: François Pinard
pwd: Jim Meyering
readlink: Dmitry V. Levin
realpath: Pádraig Brady
rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
rmdir: David MacKenzie
runcon: Russell Coker

View File

@@ -1206,7 +1206,7 @@
* tests/Coreutils.pm: New keywords, ENV and ENV_DEL, to support
tests/misc/date.
With todays additions, the generated shell script,
With today's additions, the generated shell script,
tests/date/date-tests had becoming far too large (over 350KB),
so use the superior-but-perl-requiring framework instead.
* tests/date/Test.pm: Move all tests from here...
@@ -11609,7 +11609,7 @@
-----
Copyright (C) 2002-2005, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2002-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -4033,7 +4033,7 @@
-----
Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -3262,7 +3262,7 @@
rm without -f: give a better diagnostic when euidaccess fails.
* src/remove.c (write_protected_non_symlink): Return int, not bool,
so that we can indicate failure too (as a postive error number).
so that we can indicate failure too (as a positive error number).
(prompt): If write_protected_non_symlink fails, report that error
number and fail rather than charging ahead and removing the dubious
entry. Redo the logic of printing a diagnostic so that we need to
@@ -4015,7 +4015,7 @@
-----
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2007-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -104,7 +104,7 @@
(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/363011>
Suggested by Josselin Mouette in <http://bugs.debian.org/350541>
via Bob Proulx.
* NEWS: Mention the improvement.
@@ -372,7 +372,7 @@
-----
Copyright (C) 2008-2011 Free Software Foundation, Inc.
Copyright (C) 2008-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

17
HACKING
View File

@@ -232,6 +232,17 @@ Try to make the summary line fit one of the following forms:
build: change-description
maint: change-description
If your commit fixes a bug, try to find the commit that introduced that
bug. If you do that, add a note in your new commit log saying something
like "Introduced by commit v8.12-103-g54cbe6e." and add something like
[bug introduced in coreutils-8.13] in the corresponding NEWS blurb.
Assuming you found the bug in commit 54cbe6e6, "git describe 54cbe6e6"
will print the longer tag-relative string that you'll need.
Note that we used to use an 8-byte SHA1 prefix like "54cbe6e6", because
that was automatically rendered as a clickable link by "gitk", but with
git-1.7.10, the more descriptive version-containing "git describe" format
that we now require is also highlighted.
Curly braces: use judiciously
=============================
@@ -603,11 +614,11 @@ Then just open the index.html file (in the generated lcov-html directory)
in your favorite web browser.
========================================================================
Copyright (C) 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2009-2012 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.
Texts. A copy of the license is included in the "GNU Free
Documentation License" file as part of this distribution.

View File

@@ -1,6 +1,6 @@
# Make coreutils. -*-Makefile-*-
# Copyright (C) 1990, 1993-2011 Free Software Foundation, Inc.
# Copyright (C) 1990-2012 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
@@ -66,11 +66,17 @@ ALL_RECURSIVE_TARGETS += check-root
check-root:
cd tests && $(MAKE) $@ SUBDIRS=
# Shortcut targets to make it easier to run (very) expensive tests.
check-expensive:
$(MAKE) check RUN_EXPENSIVE_TESTS=yes
check-very-expensive:
$(MAKE) check-expensive RUN_VERY_EXPENSIVE_TESTS=yes
# Just prior to distribution, ...
# transform the automake-generated rule that runs `rm -f rm'.
# transform the automake-generated rule that runs 'rm -f rm'.
# On some systems, that command would fail with a diagnostic like
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
# in the shell's search path that running `rm' would run the `rm'
# "rm: cannot unlink 'rm': Text file busy" when '.' appears so early
# in the shell's search path that running 'rm' would run the 'rm'
# executable in the current directory.
# Similarly, adjust the clean-binPROGRAMS rule.
rm_subst = \
@@ -93,6 +99,7 @@ gen_start_date = 2008-02-08
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--amend=$(srcdir)/build-aux/git-log-fix \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
@@ -136,7 +143,7 @@ ASSORT = LC_ALL=C sort
prologue = perl -ne '/^\#\#/ and exit; print' $(srcdir)/THANKS.in
THANKS: THANKS.in Makefile.am .mailmap thanks-gen .version
$(AM_V_GEN) \
$(AM_V_GEN)rm -f $@-t $@; \
{ \
$(prologue); echo; \
{ perl -ne '/^$$/.../^$$/ and print' $(srcdir)/THANKS.in \
@@ -147,4 +154,18 @@ THANKS: THANKS.in Makefile.am .mailmap thanks-gen .version
| LC_ALL=en_US.UTF-8 sort -f; \
echo; \
printf ';; %s\n' 'Local Variables:' 'coding: utf-8' End:; \
} > $@-t && mv $@-t $@
} > $@-t && chmod a-w $@-t && mv $@-t $@
# Some of our git hook scripts are supposed to be identical to git's samples.
# See if they are still in sync.
.PHONY: check-git-hook-script-sync
check-git-hook-script-sync:
@fail=0; \
t=$$(mktemp -d) \
&& cd $$t && git init -q && cd .git/hooks \
&& for i in pre-commit pre-applypatch applypatch-msg; do \
diff $(abs_top_srcdir)/scripts/git-hooks/$$i $$i.sample \
|| fail=1; \
done; \
rm -rf $$t; \
test $$fail = 0

496
NEWS
View File

@@ -1,5 +1,221 @@
GNU coreutils NEWS -*- outline -*-
* Noteworthy changes in release 8.17 (2012-05-10) [stable]
** Bug fixes
id and groups, when invoked with no user name argument, would print
the default group ID listed in the password database, and sometimes
that ID would be neither real nor effective. For example, when run
set-GID, or in a session for which the default group has just been
changed, the new group ID would be listed, even though it is not
yet effective. [bug introduced in coreutils-8.1]
cp S D is no longer subject to a race: if an existing D were removed
between the initial stat and subsequent open-without-O_CREATE, cp would
fail with a confusing diagnostic saying that the destination, D, was not
found. Now, in this unusual case, it retries the open (but with O_CREATE),
and hence usually succeeds. With NFS attribute caching, the condition
was particularly easy to trigger, since there, the removal of D could
precede the initial stat. [This bug was present in "the beginning".]
split --number=C /dev/null no longer appears to infloop on GNU/Hurd
[bug introduced in coreutils-8.8]
stat no longer reports a negative file size as a huge positive number.
[bug present since 'stat' was introduced in fileutils-4.1.9]
** New features
split and truncate now allow any seekable files in situations where
the file size is needed, instead of insisting on regular files.
fmt now accepts the --goal=WIDTH (-g) option.
stat -f recognizes new file system types: bdevfs, inodefs, qnx6
** Changes in behavior
cp,mv,install,cat,split: now read and write a minimum of 64KiB at a time.
This was previously 32KiB and increasing to 64KiB was seen to increase
throughput by about 10% when reading cached files on 64 bit GNU/Linux.
cp --attributes-only no longer truncates any existing destination file,
allowing for more general copying of attributes from one file to another.
* Noteworthy changes in release 8.16 (2012-03-26) [stable]
** New features
As a GNU extension, 'chmod', 'mkdir', and 'install' now accept operators
'-', '+', '=' followed by octal modes; for example, 'chmod +40 FOO' enables
and 'chmod -40 FOO' disables FOO's group-read permissions. Operator
numeric modes can be combined with symbolic modes by separating them with
commas; for example, =0,u+r clears all permissions except for enabling
user-read permissions. Unlike ordinary numeric modes, operator numeric
modes do not preserve directory setuid and setgid bits; for example,
'chmod =0 FOO' clears all of FOO's permissions, including setuid and setgid.
Also, ordinary numeric modes with five or more digits no longer preserve
setuid and setgid bits, so that 'chmod 00755 FOO' now clears FOO's setuid
and setgid bits. This allows scripts to be portable to other systems which
lack the GNU extension mentioned previously, and where ordinary numeric
modes do not preserve directory setuid and setgid bits.
dd now accepts the count_bytes, skip_bytes iflags and the seek_bytes
oflag, to more easily allow processing portions of a file.
dd now accepts the conv=sparse flag to attempt to create sparse
output, by seeking rather than writing to the output file.
ln now accepts the --relative option, to generate a relative
symbolic link to a target, irrespective of how the target is specified.
split now accepts an optional "from" argument to --numeric-suffixes,
which changes the start number from the default of 0.
split now accepts the --additional-suffix option, to append an
additional static suffix to output file names.
basename now supports the -a and -s options, which allow processing
of more than one argument at a time. Also the complementary
-z option was added to delimit output items with the NUL character.
dirname now supports more than one argument. Also the complementary
-z option was added to delimit output items with the NUL character.
** Bug fixes
du --one-file-system (-x) would ignore any non-directory specified on
the command line. For example, "touch f; du -x f" would print nothing.
[bug introduced in coreutils-8.15]
mv now lets you move a symlink onto a same-inode destination file that
has two or more hard links. Before, it would reject that, saying that
they are the same, implicitly warning you that the move would result in
data loss. In this unusual case, when not moving the symlink onto its
referent, there is no risk of data loss, since the symlink will
typically still point to one of the hard links.
"mv A B" could succeed, yet A would remain. This would happen only when
both A and B were hard links to the same symlink, and with a kernel for
which rename("A","B") does nothing and returns 0 (POSIX mandates this
surprising rename no-op behavior). Now, mv handles this case by skipping
the usually-useless rename and simply unlinking A.
realpath no longer mishandles a root directory. This was most
noticeable on platforms where // is a different directory than /,
but could also be observed with --relative-base=/ or
--relative-to=/. [bug since the beginning, in 8.15]
** Improvements
ls can be much more efficient, especially with large directories on file
systems for which getfilecon-, ACL-check- and XATTR-check-induced syscalls
fail with ENOTSUP or similar.
'realpath --relative-base=dir' in isolation now implies '--relative-to=dir'
instead of causing a usage failure.
split now supports an unlimited number of split files as default behavior.
* Noteworthy changes in release 8.15 (2012-01-06) [stable]
** New programs
realpath: print resolved file names.
** Bug fixes
du -x no longer counts root directories of other file systems.
[bug introduced in coreutils-5.1.0]
ls --color many-entry-directory was uninterruptible for too long
[bug introduced in coreutils-5.2.1]
ls's -k option no longer affects how ls -l outputs file sizes.
It now affects only the per-directory block counts written by -l,
and the sizes written by -s. This is for compatibility with BSD
and with POSIX 2008. Because -k is no longer equivalent to
--block-size=1KiB, a new long option --kibibyte stands for -k.
[bug introduced in coreutils-4.5.4]
ls -l would leak a little memory (security context string) for each
nonempty directory listed on the command line, when using SELinux.
[bug probably introduced in coreutils-6.10 with SELinux support]
rm -rf DIR would fail with "Device or resource busy" on Cygwin with NWFS
and NcFsd file systems. This did not affect Unix/Linux-based kernels.
[bug introduced in coreutils-8.0, when rm began using fts]
split -n 1/2 FILE no longer fails when operating on a growing file, or
(on some systems) when operating on a non-regular file like /dev/zero.
It would report "/dev/zero: No such file or directory" even though
the file obviously exists. Same for -n l/2.
[bug introduced in coreutils-8.8, with the addition of the -n option]
stat -f now recognizes the FhGFS and PipeFS file system types.
tac no longer fails to handle two or more non-seekable inputs
[bug introduced in coreutils-5.3.0]
tail -f no longer tries to use inotify on GPFS or FhGFS file systems
[you might say this was introduced in coreutils-7.5, along with inotify
support, but the new magic numbers weren't in the usual places then.]
** Changes in behavior
df avoids long UUID-including file system names in the default listing.
With recent enough kernel/tools, these long names would be used, pushing
second and subsequent columns far to the right. Now, when a long name
refers to a symlink, and no file systems are specified, df prints the
usually-short referent instead.
tail -f now uses polling (not inotify) when any of its file arguments
resides on a file system of unknown type. In addition, for each such
argument, tail -f prints a warning with the FS type magic number and a
request to report it to the bug-reporting address.
* Noteworthy changes in release 8.14 (2011-10-12) [stable]
** Bug fixes
ls --dereference no longer outputs erroneous "argetm" strings for
dangling symlinks when an 'ln=target' entry is in $LS_COLORS.
[bug introduced in fileutils-4.0]
ls -lL symlink once again properly prints "+" when the referent has an ACL.
[bug introduced in coreutils-8.13]
sort -g no longer infloops for certain inputs containing NaNs
[bug introduced in coreutils-8.5]
** Improvements
md5sum --check now supports the -r format from the corresponding BSD tool.
This also affects sha1sum, sha224sum, sha384sum and sha512sum.
pwd now works also on systems without openat. On such systems, pwd
would fail when run from a directory whose absolute name contained
more than PATH_MAX / 3 components. The df, stat and readlink programs
are also affected due to their use of the canonicalize_* functions.
** Changes in behavior
timeout now only processes the first signal received from the set
it is handling (SIGTERM, SIGINT, ...). This is to support systems that
implicitly create threads for some timer functions (like GNU/kFreeBSD).
** Build-related
"make dist" no longer builds .tar.gz files.
xz is portable enough and in wide-enough use that distributing
only .tar.xz files is enough.
* Noteworthy changes in release 8.13 (2011-09-08) [stable]
** Bug fixes
@@ -91,7 +307,7 @@ GNU coreutils NEWS -*- outline -*-
unsorted input, rather than e.g., "join: file 1 is not in sorted order".
shuf outputs small subsets of large permutations much more efficiently.
For example `shuf -i1-$((2**32-1)) -n2` no longer exhausts memory.
For example 'shuf -i1-$((2**32-1)) -n2' no longer exhausts memory.
stat -f now recognizes the GPFS, MQUEUE and PSTOREFS file system types.
@@ -696,7 +912,7 @@ GNU coreutils NEWS -*- outline -*-
On Solaris 9, many commands would mistakenly treat file/ the same as
file. Now, even on such a system, path resolution obeys the POSIX
rules that a trailing slash ensures that the preceeding name is a
rules that a trailing slash ensures that the preceding name is a
directory or a symlink to a directory.
** Changes in behavior
@@ -917,7 +1133,7 @@ GNU coreutils NEWS -*- outline -*-
** Changes in behavior
shred, sort, shuf: now use an internal pseudorandom generator by default.
This is mainly noticable in shred where the 3 random passes it does by
This is mainly noticeable in shred where the 3 random passes it does by
default should proceed at the speed of the disk. Previously /dev/urandom
was used if available, which is relatively slow on GNU/Linux systems.
@@ -938,7 +1154,7 @@ GNU coreutils NEWS -*- outline -*-
df now pre-mounts automountable directories even with automounters for
which stat-like syscalls no longer provoke mounting. Now, df uses open.
`id -G $USER` now works correctly even on Darwin and NetBSD. Previously it
'id -G $USER' now works correctly even on Darwin and NetBSD. Previously it
would either truncate the group list to 10, or go into an infinite loop,
due to their non-standard getgrouplist implementations.
[truncation introduced in coreutils-6.11]
@@ -1733,9 +1949,9 @@ GNU coreutils NEWS -*- outline -*-
uses a relative file name. This avoids some race conditions, but it
means you may need to kill two processes to stop these programs.
rm now rejects attempts to remove the root directory, e.g., `rm -fr /'
rm now rejects attempts to remove the root directory, e.g., 'rm -fr /'
now fails without removing anything. Likewise for any file name with
a final `./' or `../' component.
a final './' or '../' component.
tail now ignores the -f option if POSIXLY_CORRECT is set, no file
operand is given, and standard input is any FIFO; formerly it did
@@ -1817,23 +2033,23 @@ GNU coreutils NEWS -*- outline -*-
chmod, install, and mkdir now preserve a directory's set-user-ID and
set-group-ID bits unless you explicitly request otherwise. E.g.,
`chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's
'chmod 755 DIR' and 'chmod u=rwx,go=rx DIR' now preserve DIR's
set-user-ID and set-group-ID bits instead of clearing them, and
similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'. To
similarly for 'mkdir -m 755 DIR' and 'mkdir -m u=rwx,go=rx DIR'. To
clear the bits, mention them explicitly in a symbolic mode, e.g.,
`mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly
in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR',
`mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on
'mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly
in either a symbolic or a numeric mode, e.g., 'mkdir -m 2755 DIR',
'mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on
systems where these bits inherit from parents. Unfortunately other
operating systems are not consistent here, and portable scripts
cannot assume the bits are set, cleared, or preserved, even when the
bits are explicitly mentioned. For example, OpenBSD 3.9 `mkdir -m
777 D' preserves D's setgid bit but `chmod 777 D' clears it.
Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and
`chmod 0777 D' all preserve D's setgid bit, and you must use
something like `chmod g-s D' to clear it.
bits are explicitly mentioned. For example, OpenBSD 3.9 'mkdir -m
777 D' preserves D's setgid bit but 'chmod 777 D' clears it.
Conversely, Solaris 10 'mkdir -m 777 D', 'mkdir -m g-s D', and
'chmod 0777 D' all preserve D's setgid bit, and you must use
something like 'chmod g-s D' to clear it.
`cp --link --no-dereference' now works also on systems where the
'cp --link --no-dereference' now works also on systems where the
link system call cannot create a hard link to a symbolic link.
This change has no effect on systems with a Linux-based kernel.
@@ -1865,7 +2081,7 @@ GNU coreutils NEWS -*- outline -*-
now checks for).
install and mkdir now implement the X permission symbol correctly,
e.g., `mkdir -m a+X dir'; previously the X was ignored.
e.g., 'mkdir -m a+X dir'; previously the X was ignored.
install now creates parent directories with mode u=rwx,go=rx (755)
instead of using the mode specified by the -m option; and it does
@@ -1899,7 +2115,7 @@ GNU coreutils NEWS -*- outline -*-
seq defaults to a minimal fixed point format that does not lose
information if seq's operands are all fixed point decimal numbers.
You no longer need the `-f%.f' in `seq -f%.f 1048575 1024 1050623',
You no longer need the '-f%.f' in 'seq -f%.f 1048575 1024 1050623',
for example, since the default format now has the same effect.
seq now lets you use %a, %A, %E, %F, and %G formats.
@@ -1980,7 +2196,7 @@ GNU coreutils NEWS -*- outline -*-
shred and sort now accept the --random-source option.
sort now accepts the --random-sort (-R) option and `R' ordering option.
sort now accepts the --random-sort (-R) option and 'R' ordering option.
sort now supports obsolete usages like "sort +1 -2" unless
POSIXLY_CORRECT is set. However, when conforming to POSIX
@@ -1997,7 +2213,7 @@ GNU coreutils NEWS -*- outline -*-
cp -p would fail in a /proc-less chroot, on some systems
When `cp -RL' encounters the same directory more than once in the
When 'cp -RL' encounters the same directory more than once in the
hierarchy beneath a single command-line argument, it no longer confuses
them with hard-linked directories.
@@ -2059,11 +2275,11 @@ GNU coreutils NEWS -*- outline -*-
du no longer overflows a counter when processing a file larger than
2^31-1 on some 32-bit systems (at least some AIX 5.1 configurations).
md5sum once again defaults to using the ` ' non-binary marker
(rather than the `*' binary marker) by default on Unix-like systems.
md5sum once again defaults to using the ' ' non-binary marker
(rather than the '*' binary marker) by default on Unix-like systems.
mkdir -p and install -d no longer exit nonzero when asked to create
a directory like `nonexistent/.'
a directory like 'nonexistent/.'
rm emits a better diagnostic when (without -r) it fails to remove
a directory on e.g., Solaris 9/10 systems.
@@ -2108,7 +2324,7 @@ GNU coreutils NEWS -*- outline -*-
** Deprecated options
Using ls, du, or df with the --kilobytes option now evokes a warning
that the long-named option is deprecated. Use `-k' instead.
that the long-named option is deprecated. Use '-k' instead.
du's long-named --megabytes option now evokes a warning.
Use -m instead.
@@ -2116,7 +2332,7 @@ GNU coreutils NEWS -*- outline -*-
* Major changes in release 5.90 (2005-09-29) [unstable]
** Bring back support for `head -NUM', `tail -NUM', etc. even when
** Bring back support for 'head -NUM', 'tail -NUM', etc. even when
conforming to POSIX 1003.1-2001. The following changes apply only
when conforming to POSIX 1003.1-2001; there is no effect when
conforming to older POSIX versions.
@@ -2139,9 +2355,9 @@ GNU coreutils NEWS -*- outline -*-
The following usages no longer work, due to the above changes:
date -I TIMESPEC (use `date -ITIMESPEC' instead)
od -w WIDTH (use `od -wWIDTH' instead)
pr -S STRING (use `pr -SSTRING' instead)
date -I TIMESPEC (use 'date -ITIMESPEC' instead)
od -w WIDTH (use 'od -wWIDTH' instead)
pr -S STRING (use 'pr -SSTRING' instead)
A few usages still have behavior that depends on which POSIX standard is
being conformed to, and portable applications should beware these
@@ -2271,7 +2487,7 @@ GNU coreutils NEWS -*- outline -*-
"mkdir -m =+x dir" no longer ignores the umask when evaluating "+x",
and similarly for mkfifo and mknod.
"mkdir -p /tmp/a/b dir" no longer attempts to create the `.'-relative
"mkdir -p /tmp/a/b dir" no longer attempts to create the '.'-relative
directory, dir (in /tmp/a), when, after creating /tmp/a/b, it is unable
to return to its initial working directory. Similarly for "install -D
file /tmp/a/b/file".
@@ -2293,7 +2509,7 @@ GNU coreutils NEWS -*- outline -*-
nice now works on Darwin 7.7.0 in spite of its invalid definition of NZERO.
`rm -r' can remove all entries in a directory even when it is on a
'rm -r' can remove all entries in a directory even when it is on a
file system for which readdir is buggy and that was not checked by
coreutils' old configure-time run-test.
@@ -2429,7 +2645,7 @@ GNU coreutils NEWS -*- outline -*-
pathchk no longer accepts trailing options, e.g., "pathchk -p foo -b"
now treats -b as a file name to check, not as an invalid option.
`pr --columns=N' was not equivalent to `pr -N' when also using
'pr --columns=N' was not equivalent to 'pr -N' when also using
either -s or -w.
pr now supports page numbers up to 2**64 on most hosts, and it
@@ -2513,11 +2729,11 @@ GNU coreutils NEWS -*- outline -*-
** New features
For efficiency, `sort -m' no longer copies input to a temporary file
For efficiency, 'sort -m' no longer copies input to a temporary file
merely because the input happens to come from a pipe. As a result,
some relatively-contrived examples like `cat F | sort -m -o F - G'
are no longer safe, as `sort' might start writing F before `cat' is
done reading it. This problem cannot occur unless `-m' is used.
some relatively-contrived examples like 'cat F | sort -m -o F - G'
are no longer safe, as 'sort' might start writing F before 'cat' is
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
@@ -2561,7 +2777,7 @@ GNU coreutils NEWS -*- outline -*-
stty now provides support (iutf8) for setting UTF-8 input mode.
With stat, a specified format is no longer automatically newline terminated.
If you want a newline at the end of your output, append `\n' to the format
If you want a newline at the end of your output, append '\n' to the format
string.
'df', 'du', and 'ls' now take the default block size from the
@@ -2577,12 +2793,12 @@ GNU coreutils NEWS -*- outline -*-
Date syntax as used by date -d, date -f, and touch -d has been
changed as follows:
Dates like `January 32' with out-of-range components are now rejected.
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 be entered via integer counts of seconds since 1970 when
prefixed by `@'. For example, `@321' represents 1970-01-01 00:05:21 UTC.
prefixed by '@'. For example, '@321' represents 1970-01-01 00:05:21 UTC.
Time zone corrections can now separate hours and minutes with a colon,
and can follow standard abbreviations like "UTC". For example,
@@ -2594,7 +2810,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
'date' has a new option --iso-8601=ns that outputs
nanosecond-resolution time stamps.
echo -e '\xHH' now outputs a byte whose hexadecimal value is HH,
@@ -2616,10 +2832,10 @@ GNU coreutils NEWS -*- outline -*-
printf supports \u, \U, \x.
tail supports two or more files when using the obsolete option syntax.
The usual `--' operand is now supported by chroot, hostid, hostname,
The usual '--' operand is now supported by chroot, hostid, hostname,
pwd, sync, and yes.
`od' now conforms to POSIX better, and is more compatible with BSD:
'od' now conforms to POSIX better, and is more compatible with BSD:
The older syntax "od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]" now works
even without --traditional. This is a change in behavior if there
@@ -2660,32 +2876,32 @@ GNU coreutils NEWS -*- outline -*-
mv could mistakenly fail to preserve hard links when moving two
or more arguments between partitions.
`cp --sparse=always F /dev/hdx' no longer tries to use lseek to create
'cp --sparse=always F /dev/hdx' no longer tries to use lseek to create
holes in the destination.
nohup now sets the close-on-exec flag for its copy of the stderr file
descriptor. This avoids some nohup-induced hangs. For example, before
this change, if you ran `ssh localhost', then `nohup sleep 600 </dev/null &',
this change, if you ran 'ssh localhost', then 'nohup sleep 600 </dev/null &',
and then exited that remote shell, the ssh session would hang until the
10-minute sleep terminated. With the fixed nohup, the ssh session
terminates immediately.
`expr' now conforms to POSIX better:
'expr' now conforms to POSIX better:
Integers like -0 and 00 are now treated as zero.
The `|' operator now returns 0, not its first argument, if both
arguments are null or zero. E.g., `expr "" \| ""' now returns 0,
The '|' operator now returns 0, not its first argument, if both
arguments are null or zero. E.g., 'expr "" \| ""' now returns 0,
not the empty string.
The `|' and `&' operators now use short-circuit evaluation, e.g.,
`expr 1 \| 1 / 0' no longer reports a division by zero.
The '|' and '&' operators now use short-circuit evaluation, e.g.,
'expr 1 \| 1 / 0' no longer reports a division by zero.
** New features
`chown user.group file' now has its traditional meaning even when
'chown user.group file' now has its traditional meaning even when
conforming to POSIX 1003.1-2001, so long as no user has a name
containing `.' that happens to equal `user.group'.
containing '.' that happens to equal 'user.group'.
* Major changes in release 5.2.0 (2004-02-19) [stable]
@@ -2699,8 +2915,8 @@ GNU coreutils NEWS -*- outline -*-
** Bug fixes
`cp -d' now works as required even on systems like OSF V5.1 that
declare stat and lstat as `static inline' functions.
'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,
when available -- or .0000000 for files without that information.
@@ -2814,7 +3030,7 @@ GNU coreutils NEWS -*- outline -*-
ls --width=N (with -x or -C) no longer allocates more space
(potentially much more) than necessary for a given directory.
dd `unblock' and `sync' may now be combined (e.g., dd conv=unblock,sync)
dd 'unblock' and 'sync' may now be combined (e.g., dd conv=unblock,sync)
* Major changes in release 5.0.91 (2003-09-08):
@@ -2836,18 +3052,18 @@ GNU coreutils NEWS -*- outline -*-
sort option order no longer matters for the options -S, -d, -i, -o, and -t.
Stronger options override weaker, and incompatible options are diagnosed.
`sha1sum --check' now accepts the BSD format for SHA1 message digests
'sha1sum --check' now accepts the BSD format for SHA1 message digests
in addition to the BSD format for MD5 ones.
who -l now means `who --login', not `who --lookup', per POSIX.
who -l now means 'who --login', not 'who --lookup', per POSIX.
who's -l option has been eliciting an unconditional warning about
this impending change since sh-utils-2.0.12 (April 2002).
** Bug fixes
Mistakenly renaming a file onto itself, e.g., via `mv B b' when `B' is
the same directory entry as `b' no longer destroys the directory entry
referenced by both `b' and `B'. Note that this would happen only on
Mistakenly renaming a file onto itself, e.g., via 'mv B b' when 'B' is
the same directory entry as 'b' no longer destroys the directory entry
referenced by both 'b' and 'B'. Note that this would happen only on
file systems like VFAT where two different names may refer to the same
directory entry, usually due to lower->upper case mapping of file names.
Now, the above can happen only on file systems that perform name mapping and
@@ -2860,14 +3076,14 @@ GNU coreutils NEWS -*- outline -*-
(B may well have a link count larger than 1)
2) B and b are hard links to the same file
stat no longer overruns a buffer for format strings ending in `%'
stat no longer overruns a buffer for format strings ending in '%'
fold -s -wN would infloop for N < 8 with TABs in the input.
E.g., this would not terminate: printf 'a\t' | fold -w2 -s
`split -a0', although of questionable utility, is accepted once again.
'split -a0', although of questionable utility, is accepted once again.
`df DIR' used to hang under some conditions on OSF/1 5.1. Now it doesn't.
'df DIR' used to hang under some conditions on OSF/1 5.1. Now it doesn't.
seq's --width (-w) option now works properly even when the endpoint
requiring the larger width is negative and smaller than the other endpoint.
@@ -2877,7 +3093,7 @@ GNU coreutils NEWS -*- outline -*-
paste no longer mistakenly outputs 0xFF bytes for a nonempty input file
without a trailing newline.
`tail -n0 -f FILE' and `tail -c0 -f FILE' no longer perform what amounted
'tail -n0 -f FILE' and 'tail -c0 -f FILE' no longer perform what amounted
to a busy wait, rather than sleeping between iterations.
tail's long-undocumented --allow-missing option now elicits a warning
@@ -2889,14 +3105,14 @@ GNU coreutils NEWS -*- outline -*-
sort is now up to 30% more CPU-efficient in some cases
`test' is now more compatible with Bash and POSIX:
'test' is now more compatible with Bash and POSIX:
`test -t', `test --help', and `test --version' now silently exit
'test -t', 'test --help', and 'test --version' now silently exit
with status 0. To test whether standard output is a terminal, use
`test -t 1'. To get help and version info for `test', use
`[ --help' and `[ --version'.
'test -t 1'. To get help and version info for 'test', use
'[ --help' and '[ --version'.
`test' now exits with status 2 (not 1) if there is an error.
'test' now exits with status 2 (not 1) if there is an error.
wc count field widths now are heuristically adjusted depending on the input
size, if known. If only one count is printed, it is guaranteed to
@@ -2912,7 +3128,7 @@ GNU coreutils NEWS -*- outline -*-
Why wasn't this noticed? Although many tests use kill, none of
them made an effort to avoid using the shell's built-in kill.
`[' invoked with no arguments no longer evokes a segfault
'[' invoked with no arguments no longer evokes a segfault
rm without --recursive (aka -r or -R) no longer prompts regarding
unwritable directories, as required by POSIX.
@@ -2929,10 +3145,10 @@ GNU coreutils NEWS -*- outline -*-
split -a0 now works, as POSIX requires.
`sort --version' and `sort --help' fail, as they should
'sort --version' and 'sort --help' fail, as they should
when their output is redirected to /dev/full.
`su --version > /dev/full' now fails, as it should.
'su --version > /dev/full' now fails, as it should.
** Fewer arbitrary limitations
@@ -2943,7 +3159,7 @@ GNU coreutils NEWS -*- outline -*-
* Major changes in release 5.0.1 (2003-07-15):
** New programs
- new program: `[' (much like `test')
- new program: '[' (much like 'test')
** New features
- head now accepts --lines=-N (--bytes=-N) to print all but the
@@ -2951,9 +3167,9 @@ GNU coreutils NEWS -*- outline -*-
- md5sum --check now accepts the output of the BSD md5sum program, e.g.,
MD5 (f) = d41d8cd98f00b204e9800998ecf8427e
- date -d DATE can now parse a DATE string like May-23-2003
- chown: `.' is no longer recognized as a separator in the OWNER:GROUP
- chown: '.' is no longer recognized as a separator in the OWNER:GROUP
specifier on POSIX 1003.1-2001 systems. If chown *was not* compiled
on such a system, then it still accepts `.', by default. If chown
on such a system, then it still accepts '.', by default. If chown
was compiled on a POSIX 1003.1-2001 system, then you may enable the
old behavior by setting _POSIX2_VERSION=199209 in your environment.
- chown no longer tries to preserve set-user-ID and set-group-ID bits;
@@ -2969,24 +3185,24 @@ GNU coreutils NEWS -*- outline -*-
** Bug fixes
- chown --dereference no longer leaks a file descriptor per symlink processed
- `du /' once again prints the `/' on the last line
- 'du /' once again prints the '/' on the last line
- split's --verbose option works once again [broken in 4.5.10 and 5.0]
- tail -f is no longer subject to a race condition that could make it
delay displaying the last part of a file that had stopped growing. That
bug could also make tail -f give an unwarranted `file truncated' warning.
bug could also make tail -f give an unwarranted 'file truncated' warning.
- du no longer runs out of file descriptors unnecessarily
- df and `readlink --canonicalize' no longer corrupt the heap on
- df and 'readlink --canonicalize' no longer corrupt the heap on
non-glibc, non-solaris systems
- `env -u UNSET_VARIABLE' no longer dumps core on non-glibc systems
- 'env -u UNSET_VARIABLE' no longer dumps core on non-glibc systems
- readlink's --canonicalize option now works on systems like Solaris that
lack the canonicalize_file_name function but do have resolvepath.
- mv now removes `a' in this example on all systems: touch a; ln a b; mv a b
- mv now removes 'a' in this example on all systems: touch a; ln a b; mv a b
This behavior is contrary to POSIX (which requires that the mv command do
nothing and exit successfully), but I suspect POSIX will change.
- date's %r format directive now honors locale settings
- date's `-' (no-pad) format flag now affects the space-padded-by-default
- date's '-' (no-pad) format flag now affects the space-padded-by-default
conversion specifiers, %e, %k, %l
- fmt now diagnoses invalid obsolescent width specifications like `-72x'
- fmt now diagnoses invalid obsolescent width specifications like '-72x'
- fmt now exits nonzero when unable to open an input file
- tsort now fails when given an odd number of input tokens,
as required by POSIX. Before, it would act as if the final token
@@ -2998,12 +3214,12 @@ GNU coreutils NEWS -*- outline -*-
- split can now handle --bytes=N and --lines=N with N=2^31 or more.
** Portability
- `kill -t' now prints signal descriptions (rather than `?') on systems
- 'kill -t' now prints signal descriptions (rather than '?') on systems
like Tru64 with __sys_siglist but no strsignal function.
- stat.c now compiles on Ultrix systems
- sleep now works on AIX systems that lack support for clock_gettime
- rm now works around Darwin6.5's broken readdir function
Before `rm -rf DIR' would fail to remove all files in DIR
Before 'rm -rf DIR' would fail to remove all files in DIR
if there were more than 338.
* Major changes in release 5.0 (2003-04-02):
@@ -3017,8 +3233,8 @@ GNU coreutils NEWS -*- outline -*-
[4.5.11]
* seq no longer requires that a field width be specified
* seq no longer fails when given a field width of `0'
* seq now accepts ` ' and `'' as valid format flag characters
* seq no longer fails when given a field width of '0'
* seq now accepts " " and "'" as valid format flag characters
* df now shows a HOSTNAME: prefix for each remote-mounted file system on AIX 5.1
* portability tweaks for HP-UX, AIX 5.1, DJGPP
@@ -3026,7 +3242,7 @@ GNU coreutils NEWS -*- outline -*-
* printf no longer segfaults for a negative field width or precision
* shred now always enables --exact for non-regular files
* du no longer lists hard-linked files more than once
* du no longer dumps core on some systems due to `infinite' recursion
* du no longer dumps core on some systems due to "infinite" recursion
via nftw's use of the buggy replacement function in getcwd.c
* portability patches for a few vendor compilers and 64-bit systems
* du -S *really* now works like it did before the change in 4.5.5
@@ -3036,12 +3252,12 @@ GNU coreutils NEWS -*- outline -*-
* work around Linux kernel bug in getcwd (fixed in 2.4.21-pre4), so that pwd
now fails if the name of the working directory is so long that getcwd
truncates it. Before it would print the truncated name and exit successfully.
* `df /some/mount-point' no longer hangs on a GNU libc system when another
* 'df /some/mount-point' no longer hangs on a GNU libc system when another
hard-mounted NFS file system (preceding /some/mount-point in /proc/mounts)
is inaccessible.
* rm -rf now gives an accurate diagnostic when failing to remove a file
under certain unusual conditions
* mv and `cp --preserve=links' now preserve multiple hard links even under
* mv and 'cp --preserve=links' now preserve multiple hard links even under
certain unusual conditions where they used to fail
[4.5.8]
@@ -3050,15 +3266,15 @@ GNU coreutils NEWS -*- outline -*-
* du accepts new option: --apparent-size
* du --bytes (-b) works the same way it did in fileutils-3.16 and before
* du reports proper sizes for directories (not zero) (broken in 4.5.6 or 4.5.7)
* df now always displays under `Filesystem', the device file name
* df now always displays under 'Filesystem', the device file name
corresponding to the listed mount point. Before, for a block- or character-
special file command line argument, df would display that argument. E.g.,
`df /dev/hda' would list `/dev/hda' as the `Filesystem', rather than say
/dev/hda3 (the device on which `/' is mounted), as it does now.
'df /dev/hda' would list '/dev/hda' as the 'Filesystem', rather than say
/dev/hda3 (the device on which '/' is mounted), as it does now.
* test now works properly when invoked from a set user ID or set group ID
context and when testing access to files subject to alternate protection
mechanisms. For example, without this change, a set-UID program that invoked
`test -w F' (to see if F is writable) could mistakenly report that it *was*
'test -w F' (to see if F is writable) could mistakenly report that it *was*
writable, even though F was on a read-only file system, or F had an ACL
prohibiting write access, or F was marked as immutable.
@@ -3071,8 +3287,8 @@ GNU coreutils NEWS -*- outline -*-
* du --exclude=FILE works once again (this was broken by the rewrite for 4.5.5)
* du no longer gets a failed assertion for certain hierarchy lay-outs
involving hard-linked directories
* `who -r' no longer segfaults when using non-C-locale messages
* df now displays a mount point (usually `/') for non-mounted
* 'who -r' no longer segfaults when using non-C-locale messages
* df now displays a mount point (usually '/') for non-mounted
character-special and block files
[4.5.5]
@@ -3086,16 +3302,16 @@ GNU coreutils NEWS -*- outline -*-
* ls has a new option --dereference-command-line-symlink-to-dir, which
corresponds to the new default behavior when none of -d, -l -F, -H, -L
has been specified.
* ls dangling-symlink now prints `dangling-symlink'.
Before, it would fail with `no such file or directory'.
* ls dangling-symlink now prints 'dangling-symlink'.
Before, it would fail with 'no such file or directory'.
* ls -s symlink-to-non-dir and ls -i symlink-to-non-dir now print
attributes of `symlink', rather than attributes of their referents.
attributes of 'symlink', rather than attributes of their referents.
* Fix a bug introduced in 4.5.4 that made it so that ls --color would no
longer highlight the names of files with the execute bit set when not
specified on the command line.
* shred's --zero (-z) option no longer gobbles up any following argument.
Before, `shred --zero file' would produce `shred: missing file argument',
and worse, `shred --zero f1 f2 ...' would appear to work, but would leave
Before, 'shred --zero file' would produce 'shred: missing file argument',
and worse, 'shred --zero f1 f2 ...' would appear to work, but would leave
the first file untouched.
* readlink: new program
* cut: new feature: when used to select ranges of byte offsets (as opposed
@@ -3107,13 +3323,13 @@ GNU coreutils NEWS -*- outline -*-
[4.5.4]
* cp no longer fails to parse options like this: --preserve=mode,ownership
* `ls --color -F symlink-to-dir' works properly
* 'ls --color -F symlink-to-dir' works properly
* ls is much more efficient on directories with valid dirent.d_type.
* stty supports all baud rates defined in linux-2.4.19.
* `du symlink-to-dir/' would improperly remove the trailing slash
* `du ""' would evoke a bounds violation.
* In the unlikely event that running `du /' resulted in `stat ("/", ...)'
failing, du would give a diagnostic about `' (empty string) rather than `/'.
* 'du symlink-to-dir/' would improperly remove the trailing slash
* 'du ""' would evoke a bounds violation.
* In the unlikely event that running 'du /' resulted in 'stat ("/", ...)'
failing, du would give a diagnostic about '' (empty string) rather than '/'.
* printf: a hexadecimal escape sequence has at most two hex. digits, not three.
* The following features have been added to the --block-size option
and similar environment variables of df, du, and ls.
@@ -3130,18 +3346,18 @@ GNU coreutils NEWS -*- outline -*-
sizes are now always rounded up, for consistency with df and du.
* df now displays the block size using powers of 1000 if the requested
block size seems to be a multiple of a power of 1000.
* nl no longer gets a segfault when run like this `yes|nl -s%n'
* nl no longer gets a segfault when run like this 'yes|nl -s%n'
[4.5.3]
* du --dereference-args (-D) no longer fails in certain cases
* `ln --target-dir=DIR' no longer fails when given a single argument
* 'ln --target-dir=DIR' no longer fails when given a single argument
[4.5.2]
* `rm -i dir' (without --recursive (-r)) no longer recurses into dir
* `tail -c N FILE' now works with files of size >= 4GB
* `mkdir -p' can now create very deep (e.g. 40,000-component) directories
* 'rm -i dir' (without --recursive (-r)) no longer recurses into dir
* 'tail -c N FILE' now works with files of size >= 4GB
* 'mkdir -p' can now create very deep (e.g. 40,000-component) directories
* rmdir -p dir-with-trailing-slash/ no longer fails
* printf now honors the `--' command line delimiter
* printf now honors the '--' command line delimiter
* od's 8-byte formats x8, o8, and u8 now work
* tail now accepts fractional seconds for its --sleep-interval=S (-s) option
@@ -3154,7 +3370,7 @@ Here are the NEWS entries made from fileutils-4.1 until the
point at which the packages merged to form the coreutils:
[4.1.11]
* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
* '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]
@@ -3163,8 +3379,8 @@ point at which the packages merged to form the coreutils:
* 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 thru 4.1.9.
* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
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.
@@ -3172,7 +3388,7 @@ point at which the packages merged to form the coreutils:
* 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
* '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
@@ -3183,7 +3399,7 @@ point at which the packages merged to form the coreutils:
* 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
* 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
@@ -3192,14 +3408,14 @@ point at which the packages merged to form the coreutils:
* 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.
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'.
* 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)
@@ -3210,9 +3426,9 @@ point at which the packages merged to form the coreutils:
[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.
* 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
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;
@@ -3220,7 +3436,7 @@ point at which the packages merged to form the coreutils:
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
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
@@ -3235,21 +3451,21 @@ point at which the packages merged to form the coreutils:
--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'
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'.
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,
* 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
* '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
@@ -3260,8 +3476,8 @@ 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
`2001-05-14 23:45:56.477817180 -0700'.
- 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
@@ -3302,10 +3518,10 @@ point at which the packages merged to form the coreutils:
* 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 long option '--users'. --idle is no longer the same as -u.
* The following changes apply on systems conforming to POSIX 1003.1-2001:
- `date -I' is no longer supported. Instead, use `date --iso-8601'.
- `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
- 'date -I' is no longer supported. Instead, use 'date --iso-8601'.
- 'nice -NUM' is no longer supported. Instead, use 'nice -n NUM'.
[This change was reverted in coreutils 5.3.1.]
* New 'uname' options -i or --hardware-platform, and -o or --operating-system.
'uname -a' now outputs -i and -o information at the end.
@@ -3320,23 +3536,23 @@ point at which the packages merged to form the coreutils:
(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'.
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
* 'date -f - < /dev/null' no longer dumps core
* some DOS/Windows portability changes
[2.0j]
* `date -d DATE' now parses certain relative DATEs correctly
* '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
'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
* 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.
@@ -3374,11 +3590,11 @@ packages, see ./old/*/NEWS.
========================================================================
Copyright (C) 2001-2011 Free Software Foundation, Inc.
Copyright (C) 2001-2012 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.
Texts. A copy of the license is included in the "GNU Free
Documentation License" file as part of this distribution.

34
README
View File

@@ -11,11 +11,11 @@ The programs that can be built with this package are:
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 od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf
sleep sort split stat stdbuf stty su sum sync tac tail tee test timeout
touch tr true truncate tsort tty uname unexpand uniq unlink uptime users
vdir wc who whoami yes
nproc od paste pathchk pinky pr printenv printf ptx pwd readlink realpath
rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
shuf sleep sort split stat stdbuf stty su sum sync tac tail tee test
timeout touch tr true truncate tsort tty uname unexpand uniq unlink
uptime users vdir wc who whoami yes
See the file NEWS for a list of major changes in the current release.
@@ -134,17 +134,25 @@ the best solution is to use GNU make. Otherwise, simply remove
all mention of "[$(EXEEXT)" from src/Makefile.
*************************************************
"make check" failure on IRIX 6.5 and Solaris <= 9
-------------------------------------------------
Using the vendor make program to run "make check" fails on these two systems.
If you want to run all of the tests there, use GNU make.
**********************
Running tests as root:
----------------------
If you run the tests as root, note that a few of them create files
and/or run programs as a non-root user, `nobody' by default.
and/or run programs as a non-root user, 'nobody' by default.
If you want to use some other non-root username, specify it via
the NON_ROOT_USERNAME environment variable. Depending on the
permissions with which the working directories have been created,
using `nobody' may fail, because that user won't have the required
using 'nobody' may fail, because that user won't have the required
read and write access to the build and test directories.
I find that it is best to unpack and build as a non-privileged
user, and then to run the following command as that user in order
@@ -163,7 +171,7 @@ Reporting bugs:
---------------
IMPORTANT: if you take the time to report a test failure,
please be sure to include the output of running `make check'
please be sure to include the output of running 'make check'
in verbose mode for each failing test. For example,
if the test that fails is tests/misc/df, then you would
run this command:
@@ -171,7 +179,7 @@ run this command:
(cd tests && make check TESTS=misc/df VERBOSE=yes) >> log 2>&1
For some tests, you can get even more detail by adding DEBUG=yes.
Then include the contents of the file `log' in your bug report.
Then include the contents of the file 'log' in your bug report.
Send bug reports, questions, comments, etc. to bug-coreutils@gnu.org.
If you would like to suggest a patch, see the files README-hacking
@@ -215,7 +223,7 @@ or any Makefile.am, then don't be surprised if what gets regenerated no
longer works. To make things work, you'll have to be using appropriate
versions of the tools listed in bootstrap.conf's buildreq string.
All of these programs except `test' recognize the `--version' option.
All of these programs except 'test' recognize the '--version' option.
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.
@@ -232,11 +240,11 @@ the address on the last line of --help output.
========================================================================
Copyright (C) 1998, 2002-2011 Free Software Foundation, Inc.
Copyright (C) 1998-2012 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.
Texts. A copy of the license is included in the "GNU Free
Documentation License" file as part of this distribution.

View File

@@ -19,7 +19,7 @@ Valgrind <http://valgrind.org/> is also highly recommended, if
Valgrind supports your architecture. See also README-valgrind.
While building from a just-cloned source tree may require installing a
few prerequisites, later, a plain `git pull && make' should be sufficient.
few prerequisites, later, a plain 'git pull && make' should be sufficient.
* First GIT checkout
@@ -29,8 +29,8 @@ You can get a copy of the source repository like this:
$ cd coreutils
As an optional step, if you already have a copy of the gnulib git
repository on your hard drive, then you can use it as a reference to
reduce download time and disk space requirements:
repository, then you can use it as a reference to reduce download
time and disk space requirements:
$ export GNULIB_SRCDIR=/path/to/gnulib
@@ -94,7 +94,7 @@ each program. One way to do this is to use vc-dwim
-----
Copyright (C) 2002-2011 Free Software Foundation, Inc.
Copyright (C) 2002-2012 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

@@ -24,6 +24,16 @@ Here are most of the steps we (maintainers) follow when making a release.
FIXME: enable excluded programs like arch? to get their manual pages?
* Check for new file system types by running the following command on
a system with the most recent kernel possible (e.g., Fedora rawhide):
make -C src fs-magic-compare
If it finds a new file system magic number, add it to src/stat.c.
If it is a remote file system, add the new S_MAGIC_* name you created
in stat.c to the list of remote file system types in src/tail.c's
fremote function.
* Pre-release testing:
Run the following on at least one SELinux-enabled (enforcing) and

View File

@@ -1,7 +1,7 @@
#! /bin/bash
# Convert this package for use with valgrind.
# Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
# Copyright (C) 2002-2012 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

@@ -37,6 +37,9 @@ Alexandre Duret-Lutz duret_g@epita.fr
Alexey Solovyov alekso@math.uu.se
Alexey Vyskubov alexey@pippuri.mawhrin.net
Alfred M. Szmidt ams@kemisten.nu
Ambrose Feinstein ambrose@google.com
Amr Ali amr.ali.cc@gmail.com
Anders Kaseorg andersk@mit.edu
Andi Kleen freitag@alancoxonachip.com
Andre Novaes Cunha Andre.Cunha@br.global-one.net
Andreas Frische andreasfrische@gmail.com
@@ -58,6 +61,7 @@ Anthony Thyssen anthony@griffith.edu.au
Antonio Rendas ajrendas@yahoo.com
Ariel Faigon ariel@cthulhu.engr.sgi.com
Arjan Opmeer arjan.opmeer@gmail.com
Arkadiusz Miśkiewicz arekm@maven.pl
Arne Henrik Juul arnej@imf.unit.no
Arnold Robbins arnold@skeeve.com
Arthur Pool pool@commerce.uq.edu.au
@@ -94,6 +98,7 @@ Brian Silverman bsilverman@conceptxdesign.com
Brian Youmans 3diff@gnu.org
Britton Leo Kerin fsblk@aurora.uaf.edu
Bruce Robertson brucer@theodolite.dyndns.org
Brynnen Owen owen@illinois.edu
Carl Johnson carlj@cjlinux.home.org
Carl Lowenstein cdl@mpl.UCSD.EDU
Carl Roth roth@urs.us
@@ -130,6 +135,7 @@ Dan Hagerty hag@gnu.ai.it.edu
Dan Pascu dan@services.iiruc.ro
Daniel Bergstrom noa@melody.se
Daniel P. Berrangé berrange@redhat.com
Daniel Stavrovski d@stavrovski.net
Dániel Varga danielv@axelero.hu
Danny Levinson danny.levinson@overture.com
Darrel Francis d.francis@cheerful.com
@@ -272,6 +278,7 @@ Jens Elkner elkner@imsgroup.de
Jens Schmidt jms@jsds.hamburg.com
Jeph Cowan jeph@ucar.edu
Jeremy Maitin-Shepard jbms@cmu.edu
Jérémy Magrin jeremy.magrin@epitech.eu
Jerome Abela abela@hsc.fr
Jérôme Zago bug-coreutils-ml@agt-the-walker.net
Jesse Kornblum kornblum@usna.edu
@@ -310,6 +317,7 @@ Juan M. Guerrero st001906@hrz1.hrz.tu-darmstadt.de
Julian Bradfield jcb@inf.ed.ac.uk
Jungshik Shin jshin@pantheon.yale.edu
Jürgen Fluk louis@dachau.marco.de
Juraj Marko jmarko@redhat.com
Jurriaan thunder7@xs4all.nl
Justin Pryzby justinpryzby@users.sourceforge.net
jvogel jvogel@linkny.com
@@ -348,6 +356,7 @@ Manfred Hollstein manfred@s-direktnet.de
Марк Коренберг socketpair@gmail.com
Marc Boucher marc@mbsi.ca
Marc Haber mh+debian-bugs@zugschlus.de
Marc Mengel mengel@fnal.gov
Marc Lehman schmorp@schmorp.de
Marc Olzheim marcolz@stack.nl
Marco Franzen Marco.Franzen@Thyron.com
@@ -380,6 +389,7 @@ Mate Wierdl mw@moni.msci.memphis.edu
Matej Vela mvela@public.srce.hr
Matias A. Fonzo selk@dragora.org
Matt Kraai kraai@ftbfs.org
Matt McCutchen matt@mattmccutchen.net
Matt Perry matt@primefactor.com
Matt Pham mattvpham@gmail.com
Matt Schalit mschalit@pacbell.net
@@ -406,6 +416,7 @@ Michael Gaughen mgaughen@polyserve.com
Michael Hasselberg mikelh@zonta.ping.de
Michael Hohn hohn@math.utah.edu
Michael J. Croghan mcroghan@usatoday.com
Michael J. Daniel michael.j.daniel@comcast.net
Michael McFarland sidlon@yahoo.com
Michael McLagan mmclagan@invlogic.com
Michael Piefel piefel@informatik.hu-berlin.de
@@ -426,8 +437,9 @@ Mikulas Patocka mikulas@artax.karlin.mff.cuni.cz
Miles Bader miles@gnu.ai.mit.edu
Minh Tran-Le tranle@intellicorp.com
Morten Welinder terra@diku.dk
Nao Nishijima nao.nishijima.xt@hitachi.com
Neal H Walfield neal@cs.uml.edu
Neil Brown neilb@cse.unsw.edu.au
Neil F. Brown neilb@suse.de
Nelson H. F. Beebe beebe@math.utah.edu
Nick Estes debian@nickstoys.com
Nick Graham nick.d.graham@gmail.com
@@ -477,6 +489,7 @@ Phil Richards phil.richards@vf.vodafone.co.uk
Philippe De Muyter phdm@macqel.be
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
Phillip Jones mouse@datastacks.com
Philipp Thomas pth@suse.de
Piergiorgio Sartor sartor@sony.de
Pieter Bowman bowman@math.utah.edu
Piotr Gackiewicz gacek@intertele.pl
@@ -548,6 +561,7 @@ Steven P Watson steven@magelico.net
Stuart Citrin ctrn3e8@gmail.com
Stuart Kemp skemp@peter.bmc.com
Stuart Shelton stuart@shelton.me
Sven Breuner sven.breuner@itwm.fraunhofer.de
Szakacsits Szabolcs szaka@sienet.hu
Tadayoshi Funaba tadf@kt.rim.or.jp
TAKAI Kousuke takai@vlsi.kuee.kyoto-u.ac.jp

16
TODO
View File

@@ -51,7 +51,7 @@ cp --no-preserve=X should not attempt to preserve attribute X
reported by Andreas Schwab
copy.c: Address the FIXME-maybe comment in copy_internal.
And once that's done, add an exclusion so that `cp --link'
And once that's done, add an exclusion so that 'cp --link'
no longer incurs the overhead of saving src. dev/ino and dest. filename
in the hash table.
@@ -78,7 +78,7 @@ 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"
Let GNU su use the `wheel' group if appropriate.
Let GNU su use the 'wheel' group if appropriate.
(there are a couple patches, already)
sort: Investigate better sorting algorithms; see Knuth vol. 3.
@@ -125,7 +125,7 @@ Changes expected to go in, someday.
an implicit --NO-dereference-command-line-symlink-to-dir meaning.
Pointed out by Karl Berry.
dd: consider adding an option to suppress `bytes/block read/written'
dd: consider adding an option to suppress 'bytes/block read/written'
output to stderr. Suggested here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045
@@ -138,17 +138,17 @@ Changes expected to go in, someday.
------------------------------
Remove long-deprecated options. Search case-insensitive for
`deprecated' and `remove in '. Automate this.
'deprecated' and 'remove in '. Automate this.
Add a distcheck-time test to ensure that every distributed
file is either read-only(indicating generated) or is
version-controlled and up to date.
remove `%s' notation (now that they're all gone, add a maint.mk sc_
remove '%s' notation (now that they're all gone, add a maint.mk sc_
rule to ensure no new ones are added):
grep -E "\`%.{,4}s'" src/*.c
remove all uses of the `register' keyword: Done. add a maint.mk rule
remove all uses of the 'register' keyword: Done. add a maint.mk rule
for this, too.
remove or adjust chown's --changes option, since it
@@ -162,13 +162,13 @@ integers. To be converted: seq.
Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be
multibyte aware. The problem is that I want to avoid duplicating
significant blocks of logic, yet I also want to incur only minimal
(preferably `no') cost when operating in single-byte mode.
(preferably 'no') cost when operating in single-byte mode.
pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer
-----
Copyright (C) 2002-2011 Free Software Foundation, Inc.
Copyright (C) 2002-2012 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

290
bootstrap
View File

@@ -1,10 +1,10 @@
#! /bin/sh
# Print a version string.
scriptversion=2011-08-11.17; # UTC
scriptversion=2012-04-26.13; # UTC
# Bootstrap this package from checked-out sources.
# Copyright (C) 2003-2011 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 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
@@ -36,12 +36,12 @@ nl='
LC_ALL=C
export LC_ALL
# Ensure that CDPATH is not set. Otherwise, the output from cd
# would cause trouble in at least one use below.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
local_gl_dir=gl
# Temporary directory names.
bt='._bootmp'
bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
bt2=${bt}2
me=$0
usage() {
@@ -88,9 +88,12 @@ gnulib_modules=
# Any gnulib files needed that are not in modules.
gnulib_files=
# A function to be called to edit gnulib.mk right after it's created.
: ${AUTOPOINT=autopoint}
: ${AUTORECONF=autoreconf}
# A function to be called right after gnulib-tool is run.
# Override it via your own definition in bootstrap.conf.
gnulib_mk_hook() { :; }
bootstrap_post_import_hook() { :; }
# A function to be called after everything else in this script.
# Override it via your own definition in bootstrap.conf.
@@ -105,6 +108,11 @@ po_download_command_format=\
"rsync --delete --exclude '*.s1' -Lrtvz \
'translationproject.org::tp/latest/%s/' '%s'"
# Fallback for downloading .po files (if rsync fails).
po_download_command_format2=\
"wget --mirror -nd -q -np -A.po -P '%s' \
http://translationproject.org/latest/%s/"
extract_package_name='
/^AC_INIT(/{
/.*,.*,.*, */{
@@ -312,8 +320,8 @@ insert_vc_ignore() {
pattern="$2"
case $vc_ignore_file in
*.gitignore)
# A .gitignore entry that does not start with `/' applies
# recursively to subdirectories, so prepend `/' to every
# A .gitignore entry that does not start with '/' applies
# recursively to subdirectories, so prepend '/' to every
# .gitignore entry.
pattern=`echo "$pattern" | sed s,^,/,`;;
esac
@@ -419,12 +427,28 @@ check_versions() {
$use_git || continue
fi
# Honor $APP variables ($TAR, $AUTOCONF, etc.)
appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
appvar=`echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
test "$appvar" = TAR && appvar=AMTAR
case $appvar in
GZIP) ;; # Do not use $GZIP: it contains gzip options.
*) eval "app=\${$appvar-$app}" ;;
esac
# Handle the still-experimental Automake-NG programs specially.
# They remain named as the mainstream Automake programs ("automake",
# and "aclocal") to avoid gratuitous incompatibilities with
# pre-existing usages (by, say, autoreconf, or custom autogen.sh
# scripts), but correctly identify themselves (as being part of
# "GNU automake-ng") when asked their version.
case $app in
automake-ng|aclocal-ng)
app=`echo "$app" | sed 's/-ng$//'`
($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
echo "$me: Error: '$app' not found or not from Automake-NG" >&2
ret=1
continue
} ;;
esac
if [ "$req_ver" = "-" ]; then
# Merely require app to exist; not all prereq apps are well-behaved
# so we have to rely on $? rather than get_version.
@@ -473,6 +497,32 @@ if test $use_libtool = 1; then
find_tool LIBTOOLIZE glibtoolize libtoolize
fi
# gnulib-tool requires at least automake and autoconf.
# If either is not listed, add it (with minimum version) as a prerequisite.
case $buildreq in
*automake*) ;;
*) buildreq="automake 1.9
$buildreq" ;;
esac
case $buildreq in
*autoconf*) ;;
*) buildreq="autoconf 2.59
$buildreq" ;;
esac
# When we can deduce that gnulib-tool will require patch,
# and when patch is not already listed as a prerequisite, add it, too.
if test ! -d "$local_gl_dir" \
|| find "$local_gl_dir" -name '*.diff' -exec false {} +; then
:
else
case $buildreq in
*patch*) ;;
*) buildreq="patch -
$buildreq" ;;
esac
fi
if ! printf "$buildreq" | check_versions; then
echo >&2
if test -f README-prereq; then
@@ -574,7 +624,7 @@ if $bootstrap_sync; then
fi
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
<$gnulib_tool || exit
<$gnulib_tool || exit $?
# Get translations.
@@ -583,6 +633,9 @@ download_po_files() {
domain=$2
echo "$me: getting translations into $subdir for $domain..."
cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
eval "$cmd" && return
# Fallback to HTTP.
cmd=`printf "$po_download_command_format2" "$subdir" "$domain"`
eval "$cmd"
}
@@ -703,56 +756,38 @@ symlink_to_dir()
}
}
cp_mark_as_generated()
{
cp_src=$1
cp_dst=$2
# NOTE: we have to be careful to run both autopoint and libtoolize
# before gnulib-tool, since gnulib-tool is likely to provide newer
# versions of files "installed" by these two programs.
# Then, *after* gnulib-tool (see below), we have to be careful to
# run autoreconf in such a way that it does not run either of these
# two just-pre-run programs.
if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst"
elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
symlink_to_dir $local_gl_dir "$cp_dst"
else
case $cp_dst in
*.[ch]) c1='/* '; c2=' */';;
*.texi) c1='@c '; c2= ;;
*.m4|*/Make*|Make*) c1='# ' ; c2= ;;
*) c1= ; c2= ;;
esac
# Import from gettext.
with_gettext=yes
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
with_gettext=no
# If the destination directory doesn't exist, create it.
# This is required at least for "lib/uniwidth/cjk.h".
dst_dir=`dirname "$cp_dst"`
test -d "$dst_dir" || mkdir -p "$dst_dir"
if test $with_gettext = yes; then
# Released autopoint has the tendency to install macros that have been
# obsoleted in current gnulib, so run this before gnulib-tool.
echo "$0: $AUTOPOINT --force"
$AUTOPOINT --force || exit
fi
if test -z "$c1"; then
cmp -s "$cp_src" "$cp_dst" || {
# Copy the file first to get proper permissions if it
# doesn't already exist. Then overwrite the copy.
echo "$me: cp -f $cp_src $cp_dst" &&
rm -f "$cp_dst" &&
cp "$cp_src" "$cp_dst-t" &&
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
mv -f "$cp_dst-t" "$cp_dst"
}
else
# Copy the file first to get proper permissions if it
# doesn't already exist. Then overwrite the copy.
cp "$cp_src" "$cp_dst-t" &&
(
echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
sed "s!$bt_regex/!!g" "$cp_src"
) > $cp_dst-t &&
if cmp -s "$cp_dst-t" "$cp_dst"; then
rm -f "$cp_dst-t"
else
echo "$me: cp $cp_src $cp_dst # with edits" &&
mv -f "$cp_dst-t" "$cp_dst"
fi
fi
fi
}
# Autoreconf runs aclocal before libtoolize, which causes spurious
# warnings if the initial aclocal is confused by the libtoolized
# (or worse out-of-date) macro directory.
# libtoolize 1.9b added the --install option; but we support back
# to libtoolize 1.5.22, where the install action was default.
if test $use_libtool = 1; then
install=
case $($LIBTOOLIZE --help) in
*--install*) install=--install ;;
esac
echo "running: $LIBTOOLIZE $install --copy"
$LIBTOOLIZE $install --copy
fi
version_controlled_file() {
dir=$1
@@ -771,83 +806,17 @@ version_controlled_file() {
test $found = yes
}
slurp() {
for dir in . `(cd $1 && find * -type d -print)`; do
copied=
sep=
for file in `ls -a $1/$dir`; do
case $file in
.|..) continue;;
# FIXME: should all file names starting with "." be ignored?
.*) continue;;
esac
test -d $1/$dir/$file && continue
for excluded_file in $excluded_files; do
test "$dir/$file" = "$excluded_file" && continue 2
done
if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then
copied=$copied${sep}$gnulib_mk; sep=$nl
remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
sed "$remove_intl" $1/$dir/$file |
cmp - $dir/$gnulib_mk > /dev/null || {
echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
rm -f $dir/$gnulib_mk &&
sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
gnulib_mk_hook $dir/$gnulib_mk
}
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
version_controlled_file $dir $file; then
echo "$me: $dir/$file overrides $1/$dir/$file"
else
copied=$copied$sep$file; sep=$nl
cp_mark_as_generated $1/$dir/$file $dir/$file
fi || exit
done
for dot_ig in x $vc_ignore; do
test $dot_ig = x && continue
ig=$dir/$dot_ig
if test -n "$copied"; then
insert_vc_ignore $ig "$copied"
# If an ignored file name ends with .in.h, then also add
# the name with just ".h". Many gnulib headers are generated,
# e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
# Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
f=`echo "$copied" |
sed '
s/\.in\.h$/.h/
s/\.sin$/.sed/
s/\.y$/.c/
s/\.gperf$/.h/
'
`
insert_vc_ignore $ig "$f"
# For files like sys_stat.in.h and sys_time.in.h, record as
# ignorable the directory we might eventually create: sys/.
f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
insert_vc_ignore $ig "$f"
fi
done
done
}
# Create boot temporary directories to import from gnulib and gettext.
rm -fr $bt $bt2 &&
mkdir $bt $bt2 || exit
# Import from gnulib.
gnulib_tool_options="\
--import\
--no-changelog\
--aux-dir $bt/$build_aux\
--doc-base $bt/$doc_base\
--aux-dir $build_aux\
--doc-base $doc_base\
--lib $gnulib_name\
--m4-base $bt/$m4_base/\
--source-base $bt/$source_base/\
--tests-base $bt/$tests_base\
--m4-base $m4_base/\
--source-base $source_base/\
--tests-base $tests_base\
--local-dir $local_gl_dir\
$gnulib_tool_option_extras\
"
@@ -859,25 +828,13 @@ if test $use_libtool = 1; then
fi
echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
slurp $bt || exit
for file in $gnulib_files; do
symlink_to_dir "$GNULIB_SRCDIR" $file || exit
done
# Import from gettext.
with_gettext=yes
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
with_gettext=no
if test $with_gettext = yes; then
echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..."
cp configure.ac $bt2 &&
(cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac) &&
slurp $bt2 $bt || exit
fi
rm -fr $bt $bt2 || exit
bootstrap_post_import_hook \
|| { echo >&2 "$me: bootstrap_post_import_hook failed"; exit 1; }
# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
# gnulib-populated directories. Such .m4 files would cause aclocal to fail.
@@ -891,28 +848,21 @@ find "$m4_base" "$source_base" \
-depth \( -name '*.m4' -o -name '*.[ch]' \) \
-type l -xtype l -delete > /dev/null 2>&1
# Reconfigure, getting other files.
# Skip autoheader if it's not needed.
grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null ||
AUTOHEADER=true
for command in \
libtool \
"${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
"${AUTOCONF-autoconf} --force" \
"${AUTOHEADER-autoheader} --force" \
"${AUTOMAKE-automake} --add-missing --copy --force-missing"
do
if test "$command" = libtool; then
test $use_libtool = 0 \
&& continue
command="${LIBTOOLIZE-libtoolize} -c -f"
fi
echo "$0: $command ..."
eval "$command" || exit
done
# Some systems (RHEL 5) are using ancient autotools, for which the
# --no-recursive option had not been invented. Detect that lack and
# omit the option when it's not supported. FIXME in 2017: remove this
# hack when RHEL 5 autotools are updated, or when they become irrelevant.
no_recursive=
case $($AUTORECONF --help) in
*--no-recursive*) no_recursive=--no-recursive;;
esac
# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
echo "running: AUTOPOINT=true LIBTOOLIZE=true " \
"$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS"
AUTOPOINT=true LIBTOOLIZE=true \
$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS \
|| exit 1
# Get some extra files from gnulib, overriding existing files.
for file in $gnulib_extra_files; do
@@ -939,6 +889,16 @@ if test $with_gettext = yes; then
}
' po/Makevars.template >po/Makevars || exit 1
# If the 'gettext' module is in use, grab the latest Makefile.in.in.
# If only the 'gettext-h' module is in use, assume autopoint already
# put the correct version of this file into place.
case $gnulib_modules in
*gettext-h*) ;;
*gettext*)
cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in || exit 1
;;
esac
if test -d runtime-po; then
# Similarly for runtime-po/Makevars, but not quite the same.
rm -f runtime-po/Makevars

View File

@@ -1,6 +1,6 @@
# Bootstrap configuration.
# Copyright (C) 2006-2011 Free Software Foundation, Inc.
# Copyright (C) 2006-2012 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
@@ -70,10 +70,14 @@ gnulib_modules="
faccessat
fadvise
fchdir
fchmodat
fchownat
fclose
fcntl
fcntl-safer
fdatasync
fdl
fdopen
fdutimensat
file-type
fileblocks
@@ -86,10 +90,12 @@ gnulib_modules="
freopen
freopen-safer
fseeko
fstatat
fsusage
fsync
ftello
ftoastr
ftruncate
fts
full-read
full-write
@@ -97,11 +103,12 @@ gnulib_modules="
gethrxtime
getline
getloadavg
getlogin
getndelim2
getopt-gnu
getpagesize
getpass-gnu
gettext
gettext-h
gettime
gettimeofday
getugroups
@@ -124,6 +131,7 @@ gnulib_modules="
inttostr
inttypes
isapipe
isatty
isblank
largefile
lchmod
@@ -152,6 +160,8 @@ gnulib_modules="
mkancesdirs
mkdir
mkdir-p
mkfifo
mknod
mkstemp
mktime
modechange
@@ -161,8 +171,10 @@ gnulib_modules="
nproc
obstack
parse-datetime
pathmax
perl
physmem
pipe
posix-shell
posixtm
posixver
@@ -206,12 +218,15 @@ gnulib_modules="
stpncpy
strdup-posix
strftime
strncat
strpbrk
strsignal
strtod
strtoimax
strtoumax
symlink
sys_ioctl
sys_resource
sys_stat
sys_wait
termios
@@ -222,6 +237,7 @@ gnulib_modules="
unicodeio
unistd-safer
unlink-busy
unlinkat
unlocked-io
unsetenv
update-copyright
@@ -235,8 +251,8 @@ gnulib_modules="
verify
verror
version-etc-fsf
wcwidth
wcswidth
wcwidth
winsz-ioctl
winsz-termios
write-any-file
@@ -286,11 +302,13 @@ XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--keyword=proper_name_utf8:1,'"$see_manual"'\\\
'
gnulib_tool_option_extras="--tests-base=$bt/gnulib-tests --with-tests"
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
--makefile-name=gnulib.mk
"
# Build prerequisites
buildreq="\
autoconf 2.62
autoconf 2.64
automake 1.11.1
autopoint -
bison -
@@ -311,11 +329,6 @@ touch ChangeLog || exit 1
bootstrap_epilogue()
{
# Change paths in gnulib-tests/gnulib.mk from "../.." to "..".
m=gnulib-tests/gnulib.mk
sed 's,\.\./\.\.,..,g' $m > $m-t
mv -f $m-t $m
# Since this is a "GNU" package, replace this line
# if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
# | grep -v 'libtool:' >/dev/null; then
@@ -326,4 +339,18 @@ bootstrap_epilogue()
# first grep may well run out of memory.
perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
po/Makefile.in.in
# 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
if test $backup = 1; then
hooks=$(cd scripts/git-hooks && git ls-files)
for f in $hooks; do
# If it is identical, skip it.
cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
&& continue
cp --backup=numbered scripts/git-hooks/$f .git/hooks
chmod a-w .git/hooks/$f
done
fi
}

View File

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

52
build-aux/git-log-fix Normal file
View File

@@ -0,0 +1,52 @@
# This file is expected to be used via gitlog-to-changelog's --amend=FILE
# 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 ,

97
cfg.mk
View File

@@ -1,5 +1,5 @@
# Customize maint.mk -*- makefile -*-
# Copyright (C) 2003-2011 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 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
@@ -17,6 +17,10 @@
# Used in maint.mk's web-manual rule
manual_title = Core GNU utilities
# Use the direct link. This is guaranteed to work immediately, while
# it can take a while for the faster mirror links to become usable.
url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
# Tests not to run as part of "make distcheck".
local-checks-to-skip = \
sc_texinfo_acronym
@@ -27,7 +31,21 @@ bootstrap-tools = autoconf,automake,gnulib,bison
# Now that we have better tests, make this the default.
export VERBOSE = yes
old_NEWS_hash = d491296a7e0e2269b2b96dc4bd5f77a8
# Comparing tarball sizes compressed using different xz presets, we see that
# an -8e-compressed tarball is only 9KiB larger than the -9e-compressed one.
# Using -8e is preferred, since that lets the decompression process use half
# the memory (32MiB rather than 64MiB).
# $ for i in {7,8,9}{e,}; do \
# (n=$(xz -$i < coreutils-8.15*.tar|wc -c);echo $n $i) & done |sort -nr
# 5129388 7
# 5036524 7e
# 5017476 8
# 5010604 9
# 4923016 8e
# 4914152 9e
export XZ_OPT = -8e
old_NEWS_hash = d2ba572c2f1135b74e24ea3fb20e674e
# Add an exemption for sc_makefile_at_at_check.
_makefile_at_at_check_exceptions = ' && !/^cu_install_program =/'
@@ -66,7 +84,7 @@ ifneq ($(wildcard $(dd_c)),)
fi
endif
# Many m4 macros names once began with `jm_'.
# Many m4 macros names once began with 'jm_'.
# On 2004-04-13, they were all changed to start with gl_ instead.
# Make sure that none are inadvertently reintroduced.
sc_prohibit_jm_in_m4:
@@ -182,6 +200,18 @@ sc_no_exec_perl_coreutils:
exit 1; } || :; \
fi
# With split lines, don't leave an operator at end of line.
# Instead, put it on the following line, where it is more apparent.
# Don't bother checking for "*" at end of line, since it provokes
# far too many false positives, matching constructs like "TYPE *".
# Similarly, omit "=" (initializers).
binop_re_ ?= [-/+^!<>]|[-/+*^!<>=]=|&&?|\|\|?|<<=?|>>=?
sc_prohibit_operator_at_end_of_line:
@prohibit='. ($(binop_re_))$$' \
in_vc_files='\.[chly]$$' \
halt='found operator at end of line' \
$(_sc_search_regexp)
# Don't use "readlink" or "readlinkat" directly
sc_prohibit_readlink:
@prohibit='\<readlink(at)? \(' \
@@ -241,6 +271,15 @@ sc_prohibit_fail_0:
halt='fail=0 initialization' \
$(_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".
# Use hyphens to give it a length of 3: "...:rw-" or "...:r--".
sc_prohibit_short_facl_mode_spec:
@prohibit='\<setfacl .*-m.*:.*:[rwx-]{1,2} ' \
halt='setfacl mode string length < 3; extend with hyphen(s)' \
$(_sc_search_regexp)
# Ensure that "stdio--.h" is used where appropriate.
sc_require_stdio_safer:
@if $(VC_LIST_EXCEPT) | grep -l '\.[ch]$$' > /dev/null; then \
@@ -276,6 +315,32 @@ sc_prohibit_framework_failure:
halt='use framework_failure_ instead' \
$(_sc_search_regexp)
# Prohibit the use of `...` in tests/. Use $(...) instead.
sc_prohibit_test_backticks:
@prohibit='`' in_vc_files='^tests/' \
halt='use $$(...), not `...` in tests/' \
$(_sc_search_regexp)
# Exempt the contents of any usage function from the following.
_continued_string_col_1 = \
s/^usage .*?\n}//ms;/\\\n\w/ and print ("$$ARGV\n"),$$e=1;END{$$e||=0;exit $$e}
# Ding any source file that has a continued string with an alphabetic in the
# first column of the following line. We prohibit them because they usually
# trigger false positives in tools that try to map an arbitrary line number
# to the enclosing function name. Of course, very many strings do precisely
# this, *when they are part of the usage function*. That is why we exempt
# the contents of any function named "usage".
sc_prohibit_continued_string_alpha_in_column_1:
@perl -0777 -ne '$(_continued_string_col_1)' \
$$($(VC_LIST_EXCEPT) | grep '\.[ch]$$') \
|| { echo '$(ME): continued string with word in first column' \
1>&2; exit 1; } || :
# Use this to list offending lines:
# git ls-files |grep '\.[ch]$' | xargs \
# perl -n -0777 -e 's/^usage.*?\n}//ms;/\\\n\w/ and print "$ARGV\n"' \
# | xargs grep -A1 '\\$'|grep '\.[ch][:-][_a-zA-Z]'
###########################################################
_p0 = \([^"'/]\|"\([^\"]\|[\].\)*"\|'\([^\']\|[\].\)*'
_pre = $(_p0)\|[/][^"'/*]\|[/]"\([^\"]\|[\].\)*"\|[/]'\([^\']\|[\].\)*'\)*
@@ -355,7 +420,8 @@ announcement_Cc_ = $(translation_project_), \
-include $(srcdir)/dist-check.mk
update-copyright-env = \
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
UPDATE_COPYRIGHT_FORCE=1 \
UPDATE_COPYRIGHT_USE_INTERVALS=2 \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79
# List syntax-check exemptions.
@@ -375,7 +441,8 @@ exclude_file_name_regexp--sc_require_config_h = \
$(exclude_file_name_regexp--sc_require_config_h_first)
exclude_file_name_regexp--sc_po_check = ^gl/
exclude_file_name_regexp--sc_prohibit_always-defined_macros = ^src/seq\.c$$
exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
^src/(seq|remove)\.c$$
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/pr/
exclude_file_name_regexp--sc_program_name = ^(gl/.*|lib/euidaccess-stat)\.c$$
exclude_file_name_regexp--sc_file_system = \
@@ -383,13 +450,25 @@ exclude_file_name_regexp--sc_file_system = \
exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \
^m4/stat-prog\.m4$$
exclude_file_name_regexp--sc_prohibit_fail_0 = \
(^tests/init\.sh|Makefile\.am|\.mk)$$
(^scripts/git-hooks/commit-msg|^tests/init\.sh|Makefile\.am|\.mk)$$
exclude_file_name_regexp--sc_prohibit_atoi_atof = ^lib/euidaccess-stat\.c$$
tbi_1 = ^tests/pr/|(^gl/lib/reg.*\.c\.diff|Makefile(\.am)?|\.mk|^man/help2man)$$
tbi_2 = ^scripts/git-hooks/(pre-commit|pre-applypatch|applypatch-msg)$$
exclude_file_name_regexp--sc_prohibit_tab_based_indentation = \
^tests/pr/|(^gl/lib/reg.*\.c\.diff|Makefile(\.am)?|\.mk|^man/help2man)$$
$(tbi_1)|$(tbi_2)
exclude_file_name_regexp--sc_preprocessor_indentation = \
^(gl/lib/rand-isaac\.[ch]|gl/tests/test-rand-isaac\.c)$$
exclude_file_name_regexp--sc_prohibit_stat_st_blocks = \
^(src/system\.h|tests/du/2g)$$
exclude_file_name_regexp--sc_prohibit_continued_string_alpha_in_column_1 = \
^src/(system\.h|od\.c|printf\.c)$$
exclude_file_name_regexp--sc_prohibit_test_backticks = \
^tests/(init\.sh|check\.mk|misc/stdbuf)$$
# Exempt test.c, since it's nominally shared, and relatively static.
exclude_file_name_regexp--sc_prohibit_operator_at_end_of_line = \
^src/(ptx|test|head)\.c$$

View File

@@ -1,7 +1,7 @@
# -*- autoconf -*-
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1991, 1993-2011 Free Software Foundation, Inc.
# Copyright (C) 1991-2012 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
@@ -32,9 +32,23 @@ AC_CONFIG_SRCDIR([src/ls.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
AM_INIT_AUTOMAKE([1.11.1 dist-xz color-tests parallel-tests])
AM_INIT_AUTOMAKE([1.11.1 no-dist-gzip dist-xz color-tests parallel-tests])
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
dnl POSIXCHECK is worthwhile for maintainers, but adds several seconds
dnl (more than 10% execution time) to ./configure, with no benefit for
dnl most users. Using it to look for bugs requires:
dnl GNULIB_POSIXCHECK=1 autoreconf -f
dnl ./configure
dnl make
dnl make -C src clean
dnl make CFLAGS=-DGNULIB_POSIXCHECK=1
dnl FIXME: Once we figure out how to avoid false positives, we should
dnl have 'make my-distcheck' in dist-check.mk exercise this.
m4_syscmd([test "${GNULIB_POSIXCHECK+set}" = set])
m4_if(m4_sysval, [0], [], [dnl
gl_ASSERT_NO_GNULIB_POSIXCHECK])
AC_PROG_CC_STDC
AM_PROG_CC_C_O
AC_PROG_CPP
@@ -56,6 +70,24 @@ AC_ARG_ENABLE([gcc-warnings],
[gl_gcc_warnings=no]
)
# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
# ------------------------------------------------
# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
# Otherwise, run RUN-IF-NOT-FOUND.
AC_DEFUN([gl_GCC_VERSION_IFELSE],
[AC_PREPROC_IFELSE(
[AC_LANG_PROGRAM(
[[
#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
/* ok */
#else
# error "your version of gcc is older than $1.$2"
#endif
]]),
], [$3], [$4])
]
)
if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
AC_SUBST([WERROR_CFLAGS])
@@ -102,8 +134,15 @@ if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wsuggest-attribute=const])
gl_WARN_ADD([-Wsuggest-attribute=pure])
gl_WARN_ADD([-Wsuggest-attribute=noreturn])
gl_WARN_ADD([-Wno-format-nonliteral])
# Enable this warning only with gcc-4.7 and newer. With 4.6.2 20111027,
# it suggests test.c's advance function may be pure, even though it
# increments a global variable. Oops.
# Normally we'd write code to test for the precise failure, but that
# requires a relatively large input to make gcc exhibit the failure.
gl_GCC_VERSION_IFELSE([4], [7], [gl_WARN_ADD([-Wsuggest-attribute=pure])])
# In spite of excluding -Wlogical-op above, it is enabled, as of
# gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
@@ -127,15 +166,18 @@ if test "$gl_gcc_warnings" = yes; then
nw="$nw -Wunused-macros"
nw="$nw -Wmissing-prototypes"
nw="$nw -Wold-style-definition"
# FIXME: remove/reenable the following two, once gnulib is adjusted.
nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=pure"
# FIXME: it may be easy to remove this, since it affects only one file:
# the snprintf call at ftoastr.c:132.
nw="$nw -Wdouble-promotion"
gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_WARN_CFLAGS])
# For gnulib-tests, the set is slightly smaller still.
nw=
nw="$nw -Wstrict-prototypes"
# It's not worth being this picky about test programs.
nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=pure"
gl_MANYWARN_COMPLEMENT([GNULIB_TEST_WARN_CFLAGS],
[$GNULIB_WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_TEST_WARN_CFLAGS])

View File

@@ -96,43 +96,6 @@ define my-instcheck
}
endef
# The hard-linking for-loop below ensures that there is a bin/ directory
# full of all of the programs under test (except the ones that are required
# for basic Makefile rules), all symlinked to the just-built "false" program.
# This is to ensure that if ever a test neglects to make PATH include
# the build srcdir, these always-failing programs will run.
# Otherwise, it is too easy to test the wrong programs.
# Note that "false" itself is a symlink to true, so it too will malfunction.
define coreutils-path-check
{ \
echo running coreutils-path-check; \
if test -f $(srcdir)/src/true.c; then \
fail=1; \
mkdir $(bin) \
&& ($(write_loser)) > $(bin)/loser \
&& chmod a+x $(bin)/loser \
&& for i in $(built_programs); do \
case $$i in \
rm|expr|basename|echo|sort|ls|tr);; \
cat|dirname|mv|wc);; \
*) ln $(bin)/loser $(bin)/$$i;; \
esac; \
done \
&& ln -sf ../src/true $(bin)/false \
&& PATH=`pwd`/$(bin)$(PATH_SEPARATOR)$$PATH \
$(MAKE) -C tests check \
&& { test -d gnulib-tests \
&& $(MAKE) -C gnulib-tests check \
|| :; } \
&& rm -rf $(bin) \
&& fail=0; \
else \
fail=0; \
fi; \
test $$fail = 1 && exit 1 || :; \
}
endef
# Use this to make sure we don't run these programs when building
# from a virgin compressed tarball file, below.
null_AM_MAKEFLAGS ?= \
@@ -156,7 +119,6 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check)
$(MAKE) dvi; \
$(install-transform-check); \
$(my-instcheck); \
$(coreutils-path-check); \
$(MAKE) distclean \
)
(cd $(t) && mv $(distdir) $(distdir).old \

View File

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

View File

@@ -1,6 +1,6 @@
# Make coreutils documentation. -*-Makefile-*-
# Copyright (C) 1995-1998, 2001-2011 Free Software Foundation, Inc.
# Copyright (C) 1995-2012 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
@@ -87,7 +87,7 @@ sc-avoid-path:
&& fail=1; \
exit $$fail
# Use `time zone', not `timezone'.
# Use "time zone", not "timezone".
sc-avoid-timezone:
$(AM_V_GEN)$(EGREP) timezone $(srcdir)/*.texi && exit 1 || :
@@ -108,7 +108,7 @@ sc-avoid-io:
sc-avoid-non-zero:
$(AM_V_GEN)$(EGREP) non-zero $(srcdir)/*.texi && exit 1 || :
# Use `zeros', not `zeroes' (nothing wrong with `zeroes'. just be consistent).
# Use "zeros", not "zeroes" (nothing wrong with "zeroes"; just be consistent).
sc-avoid-zeroes:
$(AM_V_GEN)$(EGREP) -i '$(_W)zeroes$(W_)' $(srcdir)/*.texi \
&& exit 1 || :

View File

@@ -23,7 +23,7 @@
@dircategory Basics
@direntry
* Coreutils: (coreutils). Core GNU (file, text, shell) utilities.
* Common options: (coreutils)Common options. Common options.
* Common options: (coreutils)Common options.
* File permissions: (coreutils)File permissions. Access modes.
* Date input formats: (coreutils)Date input formats.
@end direntry
@@ -94,6 +94,7 @@
* ptx: (coreutils)ptx invocation. Produce permuted indexes.
* pwd: (coreutils)pwd invocation. Print working directory.
* readlink: (coreutils)readlink invocation. Print referent of a symlink.
* realpath: (coreutils)readpath invocation. Print resolved file names.
* rm: (coreutils)rm invocation. Remove files.
* rmdir: (coreutils)rmdir invocation. Remove empty directories.
* runcon: (coreutils)runcon invocation. Run in specified SELinux CTX.
@@ -139,7 +140,7 @@
This manual documents version @value{VERSION} of the @sc{gnu} core
utilities, including the standard programs for text and file manipulation.
Copyright @copyright{} 1994-1996, 2000-2011 Free Software Foundation, Inc.
Copyright @copyright{} 1994-2012 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -194,7 +195,7 @@ Free Documentation License''.
* Printing text:: echo printf yes
* Conditions:: false true test expr
* Redirection:: tee
* File name manipulation:: dirname basename pathchk mktemp
* File name manipulation:: dirname basename pathchk mktemp realpath
* Working context:: pwd stty printenv tty
* User information:: id logname whoami groups users who
* System context:: date arch nproc uname hostname hostid uptime
@@ -381,6 +382,7 @@ File name manipulation
* dirname invocation:: Strip last file name component
* pathchk invocation:: Check file name validity and portability
* mktemp invocation:: Create temporary file or directory
* realpath invocation:: Print resolved file names
Working context
@@ -901,10 +903,10 @@ A block size specification can be a positive integer specifying the number
of bytes per block, or it can be @code{human-readable} or @code{si} to
select a human-readable format. Integers may be followed by suffixes
that are upward compatible with the
@uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI prefixes}
@uref{http://www.bipm.org/en/si/si_brochure/chapter3/prefixes.html, SI prefixes}
for decimal multiples and with the
@uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2
prefixes for binary multiples}.
@uref{http://physics.nist.gov/cuu/Units/binary.html, ISO/IEC 80000-13
(formerly IEC 60027-2) prefixes} for binary multiples.
With human-readable formats, output sizes are followed by a size letter
such as @samp{M} for megabytes. @code{BLOCK_SIZE=human-readable} uses
@@ -946,7 +948,7 @@ kilobyte: @math{10^3 = 1000}.
@itemx KiB
@cindex kibibyte, definition of
kibibyte: @math{2^{10} = 1024}. @samp{K} is special: the SI prefix is
@samp{k} and the IEC 60027-2 prefix is @samp{Ki}, but tradition and
@samp{k} and the ISO/IEC 80000-13 prefix is @samp{Ki}, but tradition and
@acronym{POSIX} use @samp{k} to mean @samp{KiB}.
@item MB
@cindex megabyte, definition of
@@ -989,14 +991,12 @@ zettabyte: @math{10^{21} = 1,000,000,000,000,000,000,000}
@item Z
@itemx ZiB
@math{2^{70} = 1,180,591,620,717,411,303,424}.
(@samp{Zi} is a @acronym{GNU} extension to IEC 60027-2.)
@item YB
@cindex yottabyte, definition of
yottabyte: @math{10^{24} = 1,000,000,000,000,000,000,000,000}.
@item Y
@itemx YiB
@math{2^{80} = 1,208,925,819,614,629,174,706,176}.
(@samp{Yi} is a @acronym{GNU} extension to IEC 60027-2.)
@end table
@opindex -k
@@ -1327,7 +1327,7 @@ other parts of that standard.
@cindex symbolic link to directory, controlling traversal of
The following options modify how @command{chown} and @command{chgrp}
@c FIXME: note that `du' has these options, too, but they have slightly
@c FIXME: note that 'du' has these options, too, but they have slightly
@c different meaning.
traverse a hierarchy when the @option{--recursive} (@option{-R})
option is also specified.
@@ -2203,9 +2203,15 @@ between sentences to two spaces.
@opindex -@var{width}
@opindex -w
@opindex --width
Fill output lines up to @var{width} characters (default 75). @command{fmt}
initially tries to make lines about 7% shorter than this, to give it
room to balance line lengths.
Fill output lines up to @var{width} characters (default 75 or @var{goal}
plus 10, if @var{goal} is provided).
@itemx -g @var{goal}
@itemx --goal=@var{goal}
@opindex -g
@opindex --goal
@command{fmt} initially tries to make lines @var{goal} characters wide.
By default, this is 7% shorter than @var{width}.
@item -p @var{prefix}
@itemx --prefix=@var{prefix}
@@ -2299,8 +2305,8 @@ The program accepts the following options. Also see @ref{Common options}.
@item +@var{first_page}[:@var{last_page}]
@itemx --pages=@var{first_page}[:@var{last_page}]
@c The two following @opindex lines evoke warnings because they contain `:'
@c The `info' spec does not permit that. If we use those lines, we end
@c The two following @opindex lines evoke warnings because they contain ':'
@c The 'info' spec does not permit that. If we use those lines, we end
@c up with truncated index entries that don't work.
@c @opindex +@var{first_page}[:@var{last_page}]
@c @opindex --pages=@var{first_page}[:@var{last_page}]
@@ -2360,7 +2366,7 @@ Double space the output.
@cindex time formats
@cindex formatting times
Format header dates using @var{format}, using the same conventions as
for the command @samp{date +@var{format}}; @xref{date invocation}.
for the command @samp{date +@var{format}}. @xref{date invocation}.
Except for directives, which start with
@samp{%}, characters in @var{format} are printed unchanged. You can use
this option to specify an arbitrary string in place of the header date,
@@ -2518,7 +2524,7 @@ three column options (@option{-COLUMN}|@option{-a -COLUMN}|@option{-m}) unless
@option{-w} is set. This is a @acronym{POSIX}-compliant formulation.
@item -S@var{string}
@item -S[@var{string}]
@itemx --sep-string[=@var{string}]
@opindex -S
@opindex --sep-string
@@ -2528,8 +2534,8 @@ does not affect line truncation or column alignment.
Without @option{-S}, and with @option{-J}, @command{pr} uses the default output
separator, TAB@.
Without @option{-S} or @option{-J}, @command{pr} uses a @samp{space}
(same as @option{-S"@w{ }"}). @option{--sep-string} with no
@samp{=@var{string}} is equivalent to @option{--sep-string=""}.
(same as @option{-S"@w{ }"}).
If no @samp{@var{string}} argument is specified, @samp{""} is assumed.
@item -t
@itemx --omit-header
@@ -2990,8 +2996,15 @@ The output files' names consist of @var{prefix} (@samp{x} by default)
followed by a group of characters (@samp{aa}, @samp{ab}, @dots{} by
default), such that concatenating the output files in traditional
sorted order by file name produces the original input file (except
@option{-r}). If the output file names are exhausted, @command{split}
reports an error without deleting the output files that it did create.
@option{-nr/@var{n}}). By default split will initially create files
with two generated suffix characters, and will increase this width by two
when the next most significant position reaches the last character.
(@samp{yz}, @samp{zaaa}, @samp{zaab}, @dots{}). In this way an arbitrary
number of output files are supported, which sort as described above,
even in the presence of an @option{--additional-suffix} option.
If the @option{-a} option is specified and the output file names are
exhausted, @command{split} reports an error without deleting the
output files that it did create.
The program accepts the following options. Also see @ref{Common options}.
@@ -3040,7 +3053,7 @@ xz -dc BIG.xz | split -b200G --filter='xz > $FILE.xz' - big-
@end example
Assuming a 10:1 compression ratio, that would create about fifty 20GiB files
with names @file{big-xaa.xz}, @file{big-xab.xz}, @file{big-xac.xz}, etc.
with names @file{big-aa.xz}, @file{big-ab.xz}, @file{big-ac.xz}, etc.
@item -n @var{chunks}
@itemx --number=@var{chunks}
@@ -3081,13 +3094,26 @@ and so can be a pipe for example.
@itemx --suffix-length=@var{length}
@opindex -a
@opindex --suffix-length
Use suffixes of length @var{length}. The default @var{length} is 2.
Use suffixes of length @var{length}. If a @var{length} of 0 is specified,
this is the same as if (any previous) @option{-a} was not specified, and
thus enables the default behavior, which starts the suffix length at 2,
and unless @option{-n} or @option{--numeric-suffixes=@var{from}} is
specified, will auto increase the length by 2 as required.
@item -d
@itemx --numeric-suffixes
@itemx --numeric-suffixes[=@var{from}]
@opindex -d
@opindex --numeric-suffixes
Use digits in suffixes rather than lower-case letters.
Use digits in suffixes rather than lower-case letters. The numerical
suffix counts from @var{from} if specified, 0 otherwise.
Note specifying a @var{from} value also disables the default
auto suffix length expansion described above, and so you may also
want to specify @option{-a} to allow suffixes beyond @samp{99}.
@itemx --additional-suffix=@var{suffix}
@opindex --additional-suffix
Append an additional @var{suffix} to output file names. @var{suffix}
must not contain slash.
@item -e
@itemx --elide-empty-files
@@ -3612,7 +3638,7 @@ md5sum [@var{option}]@dots{} [@var{file}]@dots{}
@end example
For each @var{file}, @samp{md5sum} outputs the MD5 checksum, a flag
indicating a binary or text input file, and the file name.
indicating binary or text input mode, and the file name.
If @var{file} contains a backslash or newline, the
line is started with a backslash, and each problematic character in
the file name is escaped with a backslash, making the output
@@ -3631,7 +3657,7 @@ The program accepts the following options. Also see @ref{Common options}.
Treat each input file as binary, by reading it in binary mode and
outputting a @samp{*} flag. This is the inverse of @option{--text}.
On systems like @acronym{GNU} that do not distinguish between binary
and text files, this option merely flags each input file as binary:
and text files, this option merely flags each input mode as binary:
the MD5 checksum is unaffected. This option is the default on systems
like MS-DOS that distinguish between binary and text files, except
for reading standard input when standard input is a terminal.
@@ -3645,7 +3671,7 @@ The input to this mode of @command{md5sum} is usually the output of
a prior, checksum-generating run of @samp{md5sum}.
Each valid line of input consists of an MD5 checksum, a binary/text
flag, and then a file name.
Binary files are marked with @samp{*}, text with @samp{ }.
Binary mode is indicated with @samp{*}, text with @samp{ } (space).
For each such line, @command{md5sum} reads the named file and computes its
MD5 checksum. Then, if the computed message digest does not match the
one on the line with the file name, the file is noted as having
@@ -4362,7 +4388,7 @@ sort -n -r
@end example
@item
Run no more that 4 sorts concurrently, using a buffer size of 10M.
Run no more than 4 sorts concurrently, using a buffer size of 10M.
@example
sort --parallel=4 -S 10M
@@ -4813,7 +4839,7 @@ contains lines unique to @var{file1}, column two contains lines unique
to @var{file2}, and column three contains lines common to both files.
Columns are separated by a single TAB character.
@c FIXME: when there's an option to supply an alternative separator
@c string, append `by default' to the above sentence.
@c string, append "by default" to the above sentence.
@opindex -1
@opindex -2
@@ -4884,7 +4910,7 @@ all @sc{gnu} extensions and reverts to traditional mode, thus introducing some
limitations and changing several of the program's default option values.
When @option{-G} is not specified, @sc{gnu} extensions are always enabled.
@sc{gnu} extensions to @command{ptx} are documented wherever appropriate in this
document. For the full list, see @xref{Compatibility in ptx}.
document. @xref{Compatibility in ptx}, for the full list.
Individual options are explained in the following sections.
@@ -5021,8 +5047,9 @@ if it is listed in the Only file and not in the Ignore file.
On each input line, the leading sequence of non-white space characters will be
taken to be a reference that has the purpose of identifying this input
line in the resulting permuted index. For more information about reference
production, see @xref{Output formatting in ptx}.
line in the resulting permuted index.
@xref{Output formatting in ptx},
for more information about reference production.
Using this option changes the default value for option @option{-S}.
Using this option, the program does not try very hard to remove
@@ -7127,10 +7154,19 @@ Append @samp{*} for executable regular files, otherwise behave as for
@end table
@item -k
@itemx --kibibytes
@opindex -k
Print file sizes in 1024-byte blocks, overriding the default block
size (@pxref{Block size}).
This option is equivalent to @option{--block-size=1K}.
@opindex --kibibytes
Set the default block size to its normal value of 1024 bytes,
overriding any contrary specification in environment variables
(@pxref{Block size}). This option is in turn overridden by the
@option{--block-size}, @option{-h} or @option{--human-readable}, and
@option{--si} options.
The @option{-k} or @option{--kibibytes} option affects the
per-directory block count written by the @option{-l} and similar
options, and the size written by the @option{-s} or @option{--size}
option. It does not affect the file size written by @option{-l}.
@item -m
@itemx --format=commas
@@ -7192,6 +7228,7 @@ a date like @samp{Mar 30@ @ 2002} for non-recent timestamps, and a
date-without-year and time like @samp{Mar 30 23:45} for recent timestamps.
This format can change depending on the current locale as detailed below.
@cindex clock skew
A timestamp is considered to be @dfn{recent} if it is less than six
months old, and is not dated in the future. If a timestamp dated
today is not listed in recent form, the timestamp is in the future,
@@ -7391,7 +7428,7 @@ locale.
@c Use @t instead of @samp to avoid duplicate quoting in some output styles.
Quote strings as for C character string literals, except use
surrounding quotation marks appropriate for the locale, and quote
@t{`like this'} instead of @t{"like
@t{'like this'} instead of @t{"like
this"} in the default C locale. This looks nicer on many displays.
@end table
@@ -7444,7 +7481,7 @@ terminal for color output from @command{ls} (and @command{dir}, etc.).
Typical usage:
@example
eval "`dircolors [@var{option}]@dots{} [@var{file}]`"
eval "$(dircolors [@var{option}]@dots{} [@var{file}])"
@end example
If @var{file} is specified, @command{dircolors} reads it to determine which
@@ -7619,9 +7656,9 @@ Equivalent to @option{-dR --preserve=all} with the reduced diagnostics.
@itemx --attributes-only
@opindex --attributes-only
Preserve the specified attributes of the original files in the copy,
but do not copy any data. See the @option{--preserve} option for
controlling which attributes to copy.
Copy only the specified attributes of the source file to the destination.
If the destination already exists, do not alter its contents.
See the @option{--preserve} option for controlling which attributes to copy.
@item -b
@itemx @w{@kbd{--backup}[=@var{method}]}
@@ -8047,18 +8084,24 @@ When converting variable-length records to fixed-length ones
(@option{conv=block}) or the reverse (@option{conv=unblock}),
use @var{bytes} as the fixed record length.
@item skip=@var{blocks}
@item skip=@var{n}
@opindex skip
Skip @var{blocks} @samp{ibs}-byte blocks in the input file before copying.
Skip @var{n} @samp{ibs}-byte blocks in the input file before copying.
If @samp{iflag=skip_bytes} is specified, @var{n} is interpreted
as a byte count rather than a block count.
@item seek=@var{blocks}
@item seek=@var{n}
@opindex seek
Skip @var{blocks} @samp{obs}-byte blocks in the output file before copying.
Skip @var{n} @samp{obs}-byte blocks in the output file before copying.
if @samp{oflag=seek_bytes} is specified, @var{n} is interpreted
as a byte count rather than a block count.
@item count=@var{blocks}
@item count=@var{n}
@opindex count
Copy @var{blocks} @samp{ibs}-byte blocks from the input file, instead
Copy @var{n} @samp{ibs}-byte blocks from the input file, instead
of everything until the end of the file.
if @samp{iflag=count_bytes} is specified, @var{n} is interpreted
as a byte count rather than a block count.
@item status=noxfer
@opindex status
@@ -8117,6 +8160,20 @@ Change lowercase letters to uppercase.
The @samp{lcase} and @samp{ucase} conversions are mutually exclusive.
@item sparse
@opindex sparse
Try to seek rather than write @sc{nul} output blocks.
On a file system that supports sparse files, this will create
sparse output when extending the output file.
Be careful when using this option in conjunction with
@samp{conv=notrunc} or @samp{oflag=append}.
With @samp{conv=notrunc}, existing data in the output file
corresponding to @sc{nul} blocks from the input, will be untouched.
With @samp{oflag=append} the seeks performed will be ineffective.
Similarly, when the output is a device rather than a file,
@sc{nul} input blocks are not copied, and therefore this option
is most useful with virtual or pre zeroed devices.
@item swab
@opindex swab @r{(byte-swapping)}
@cindex byte-swapping
@@ -8311,6 +8368,27 @@ When that happens, continue calling @code{read} to fill the remainder
of the block.
This flag can be used only with @code{iflag}.
@item count_bytes
@opindex count_bytes
Interpret the @samp{count=} operand as a byte count,
rather than a block count, which allows specifying
a length that is not a multiple of the I/O block size.
This flag can be used only with @code{iflag}.
@item skip_bytes
@opindex skip_bytes
Interpret the @samp{skip=} operand as a byte count,
rather than a block count, which allows specifying
an offset that is not a multiple of the I/O block size.
This flag can be used only with @code{iflag}.
@item seek_bytes
@opindex seek_bytes
Interpret the @samp{seek=} operand as a byte count,
rather than a block count, which allows specifying
an offset that is not a multiple of the I/O block size.
This flag can be used only with @code{oflag}.
@end table
These flags are not supported on all systems, and @samp{dd} rejects
@@ -8333,10 +8411,13 @@ should not be too large---values larger than a few megabytes
are generally wasteful or (as in the gigabyte..exabyte case) downright
counterproductive or error-inducing.
Use different @command{dd} invocations to use different block sizes for
skipping and I/O@. For example, the following shell commands copy data
in 512 KiB blocks between a disk and a tape, but do not save or restore a
4 KiB label at the start of the disk:
To process data that is at an offset or size that is not a
multiple of the I/O@ block size, you can use the @samp{skip_bytes},
@samp{seek_bytes} and @samp{count_bytes} flags. Alternatively
the traditional method of separate @command{dd} invocations can be used.
For example, the following shell commands copy data
in 512 KiB blocks between a disk and a tape, but do not save
or restore a 4 KiB label at the start of the disk:
@example
disk=/dev/rdsk/c0t1d0s2
@@ -8729,7 +8810,7 @@ The program accepts the following options. Also see @ref{Common options}.
@itemx --force
@opindex -f
@opindex --force
Ignore nonexistent files and never prompt the user.
Ignore nonexistent files and missing operands, and never prompt the user.
Ignore any previous @option{--interactive} (@option{-i}) option.
@item -i
@@ -9060,7 +9141,7 @@ The intended use of this is to shred a removed temporary file.
For example:
@example
i=`mktemp`
i=$(mktemp)
exec 3<>"$i"
rm -- "$i"
echo "Hello, world" >&3
@@ -9318,6 +9399,22 @@ symbolic link with identical contents; since symbolic link contents
cannot be edited, any file name resolution performed through either
link will be the same as if a hard link had been created.
@item -r
@itemx --relative
@opindex -r
@opindex --relative
Make symbolic links relative to the link location.
Example:
@smallexample
ln -srv /a/file /tmp
'/tmp/file' -> '../a/file'
@end smallexample
@xref{realpath invocation}, which gives greater control
over relative file name generation.
@item -s
@itemx --symbolic
@opindex -s
@@ -9547,7 +9644,7 @@ for a FIFO
for a block special file
@item c
@c Don't document the `u' option -- it's just a synonym for `c'.
@c Don't document the 'u' option -- it's just a synonym for 'c'.
@c Do *any* versions of mknod still use it?
@c @itemx u
@opindex c @r{for character special file}
@@ -9595,7 +9692,6 @@ Set the default SELinux security context to be used for created files.
@cindex displaying value of a symbolic link
@cindex canonical file name
@cindex canonicalize a file name
@pindex realpath
@findex realpath
@command{readlink} may work in one of two supported modes:
@@ -9678,8 +9774,8 @@ Report error messages.
The @command{readlink} utility first appeared in OpenBSD 2.1.
There is a @command{realpath} command on some systems
which operates like @command{readlink} in canonicalize mode.
The @command{realpath} command without options, operates like
@command{readlink} in canonicalize mode.
@exitstatus
@@ -10254,11 +10350,39 @@ A @var{file} argument string of @samp{-} is handled specially and
causes @command{touch} to change the times of the file associated with
standard output.
@cindex clock skew
By default, @command{touch} sets file timestamps to the current time.
Because @command{touch} acts on its operands left to right, the
resulting timestamps of earlier and later operands may disagree.
Also, the determination of what time is ``current'' depends on the
platform. Platforms with network file systems often use different
clocks for the operating system and for file systems; because
@command{touch} typically uses file systems' clocks by default, clock
skew can cause the resulting file timestamps to appear to be in a
program's ``future'' or ``past''.
@cindex file timestamp resolution
The @command{touch} command sets the file's timestamp to the greatest
representable value that is not greater than the requested time. This
can differ from the requested time for several reasons. First, the
requested time may have a higher resolution than supported. Second, a
file system may use different resolutions for different types of
times. Third, file timestamps may use a different resolution than
operating system timestamps. Fourth, the operating system primitives
used to update timestamps may employ yet a different resolution. For
example, in theory a file system might use 10-microsecond resolution
for access time and 100-nanosecond resolution for modification time,
and the operating system might use nanosecond resolution for the
current time and microsecond resolution for the primitive that
@command{touch} uses to set a file's timestamp to an arbitrary value.
@cindex permissions, for changing file timestamps
If changing both the access and modification times to the current
time, @command{touch} can change the timestamps for files that the user
running it does not own but has write permission for. Otherwise, the
user must own the files.
When setting file timestamps to the current time, @command{touch} can
change the timestamps for files that the user does not own but has
write permission for. Otherwise, the user must own the files. Some
older systems have a further restriction: the user must own the files
unless both the access and modification times are being set to the
current time.
Although @command{touch} provides options for changing two of the times---the
times of last access and modification---of a file, there is actually
@@ -10994,7 +11118,7 @@ The valid @var{format} directives for files with @option{--format} and
@item %m - Mount point (See note below)
@item %n - File name
@item %N - Quoted file name with dereference if symbolic link
@item %o - I/O block size
@item %o - Optimal I/O transfer size hint
@item %s - Total size, in bytes
@item %t - Major device type in hex
@item %T - Minor device type in hex
@@ -12108,7 +12232,7 @@ Here are a few examples, including quoting for shell metacharacters.
To add 1 to the shell variable @code{foo}, in Bourne-compatible shells:
@example
foo=`expr $foo + 1`
foo=$(expr $foo + 1)
@end example
To print the non-directory part of the file name stored in
@@ -12318,6 +12442,7 @@ This section describes commands that manipulate file names.
* dirname invocation:: Strip last file name component.
* pathchk invocation:: Check file name validity and portability.
* mktemp invocation:: Create temporary file or directory.
* realpath invocation:: Print resolved file names.
@end menu
@@ -12336,6 +12461,7 @@ This section describes commands that manipulate file names.
@example
basename @var{name} [@var{suffix}]
basename @var{option}... @var{name}...
@end example
If @var{suffix} is specified and is identical to the end of @var{name},
@@ -12359,8 +12485,33 @@ for everything except file names containing a trailing newline.
result is @samp{//} on platforms where @var{//} is distinct from
@var{/}, and @samp{/} on platforms where there is no difference.
The only options are @option{--help} and @option{--version}. @xref{Common
options}. Options must precede operands.
The program accepts the following options. Also see @ref{Common options}.
Options must precede operands.
@table @samp
@item -a
@itemx --multiple
@opindex -a
@opindex --multiple
Support more than one argument. Treat every argument as a @var{name}.
With this, an optional @var{suffix} must be specified using the
@option{-s} option.
@item -s @var{suffix}
@itemx --suffix=@var{suffix}
@opindex -s
@opindex --suffix
Remove a trailing @var{suffix}.
This option implies the @option{-a} option.
@item -z
@itemx --zero
@opindex -z
@opindex --zero
Separate output items with @sc{nul} characters.
@end table
@exitstatus
@@ -12372,6 +12523,12 @@ basename /usr/bin/sort
# Output "stdio".
basename include/stdio.h .h
# Output "stdio".
basename -s .h include/stdio.h
# Output "stdio" followed by "stdlib"
basename -a -s .h include/stdio.h include/stdlib.h
@end smallexample
@@ -12383,13 +12540,13 @@ basename include/stdio.h .h
@cindex stripping non-directory suffix
@cindex non-directory suffix, stripping
@command{dirname} prints all but the final slash-delimited component of
@var{name}. Slashes on either side of the final component are also
removed. If the string contains no slash, @command{dirname} prints
@samp{.} (meaning the current directory). Synopsis:
@command{dirname} prints all but the final slash-delimited component
of each @var{name}. Slashes on either side of the final component are
also removed. If the string contains no slash, @command{dirname}
prints @samp{.} (meaning the current directory). Synopsis:
@example
dirname @var{name}
dirname [@var{option}] @var{name}...
@end example
@var{name} need not be a file name, but if it is, this operation
@@ -12403,8 +12560,17 @@ including the case when the final component is itself a directory.
result is @samp{//} on platforms where @var{//} is distinct from
@var{/}, and @samp{/} on platforms where there is no difference.
The only options are @option{--help} and @option{--version}. @xref{Common
options}.
The program accepts the following option. Also see @ref{Common options}.
@table @samp
@item -z
@itemx --zero
@opindex -z
@opindex --zero
Separate output items with @sc{nul} characters.
@end table
@exitstatus
@@ -12415,6 +12581,9 @@ Examples:
dirname /usr/bin/sort
dirname /usr/bin//.//
# Output "dir1" followed by "dir2"
dirname dir1/str dir2/str
# Output ".".
dirname stdio.h
@end smallexample
@@ -12671,6 +12840,123 @@ Exit status:
@end display
@node realpath invocation
@section @command{realpath}: Print the resolved file name.
@pindex realpath
@cindex file names, canonicalization
@cindex symlinks, resolution
@cindex canonical file name
@cindex canonicalize a file name
@pindex realpath
@findex realpath
@command{realpath} expands all symbolic links and resolves references to
@samp{/./}, @samp{/../} and extra @samp{/} characters. By default,
all but the last component of the specified files must exist. Synopsis:
@example
realpath [@var{option}]@dots{} @var{file}@dots{}
@end example
The program accepts the following options. Also see @ref{Common options}.
@table @samp
@item -e
@itemx --canonicalize-existing
@opindex -e
@opindex --canonicalize-existing
Ensure that all components of the specified file names exist.
If any component is missing or unavailable, @command{realpath} will output
a diagnostic unless the @option{-q} option is specified, and exit with a
nonzero exit code. A trailing slash requires that the name resolve to a
directory.
@item -m
@itemx --canonicalize-missing
@opindex -m
@opindex --canonicalize-missing
If any component of a specified file name is missing or unavailable,
treat it as a directory.
@item -L
@itemx --logical
@opindex -L
@opindex --logical
Symbolic links are resolved in the specified file names,
but they are resolved after any subsequent @samp{..} components are processed.
@item -P
@itemx --physical
@opindex -P
@opindex --physical
Symbolic links are resolved in the specified file names,
and they are resolved before any subsequent @samp{..} components are processed.
This is the default mode of operation.
@item -q
@itemx --quiet
@opindex -q
@opindex --quiet
Suppress diagnostic messages for specified file names.
@item -s
@itemx --strip
@itemx --no-symlinks
@opindex -s
@opindex --strip
@opindex --no-symlinks
Do not resolve symbolic links. Only resolve references to
@samp{/./}, @samp{/../} and remove extra @samp{/} characters.
When combined with the @option{-m} option, realpath operates
only on the file name, and does not touch any actual file.
@item -z
@itemx --zero
@opindex -z
@opindex --zero
Separate output items with @sc{nul} characters.
@itemx --relative-to=@var{file}
@opindex --relative-to
@cindex relpath
Print the resolved file names relative to the specified file.
Note this option honors the @option{-m} and @option{-e} options
pertaining to file existence.
@itemx --relative-base=@var{base}
@opindex --relative-base
This option is valid when used with @option{--relative-to}, and will restrict
the output of @option{--relative-to} so that relative names are output,
only when @var{file}s are descendants of @var{base}. Otherwise output the
absolute file name. If @option{--relative-to} was not specified, then
the descendants of @var{base} are printed relative to @var{base}. If
@option{--relative-to} is specified, then that directory must be a
descendant of @var{base} for this option to have an effect.
Note: this option honors the @option{-m} and @option{-e}
options pertaining to file existence. For example:
@example
realpath --relative-to=/usr /tmp /usr/bin
@result{} ../tmp
@result{} bin
realpath --relative-base=/usr /tmp /usr/bin
@result{} /tmp
@result{} bin
@end example
@end table
@cindex exit status of @command{realpath}
Exit status:
@display
0 if all file names were printed without issue.
1 otherwise.
@end display
@node Working context
@chapter Working context
@@ -13952,7 +14238,6 @@ This is a @acronym{GNU} extension.
locale's 12-hour clock time (e.g., @samp{11:11:04 PM})
@item %R
24-hour hour and minute. Same as @samp{%H:%M}.
This is a @acronym{GNU} extension.
@item %s
@cindex epoch, seconds since
@cindex seconds since the epoch
@@ -13976,7 +14261,6 @@ appropriate for the current time, using the time zone rules specified
by the @env{TZ} environment variable.
The time (and optionally, the time zone rules) can be overridden
by the @option{--date} option.
This is a @acronym{GNU} extension.
@item %:z
@w{@acronym{RFC} 3339/@acronym{ISO} 8601} style numeric time zone with
@samp{:} (e.g., @samp{-06:00} or @samp{+05:30}), or nothing if no time
@@ -14033,14 +14317,12 @@ full date in @acronym{ISO} 8601 format; same as @samp{%Y-%m-%d}.
This is a good choice for a date format, as it is standard and
is easy to sort in the usual case where years are in the range
0000@dots{}9999.
This is a @acronym{GNU} extension.
@item %g
year corresponding to the @acronym{ISO} week number, but without the century
(range @samp{00} through @samp{99}). This has the same format and value
as @samp{%y}, except that if the @acronym{ISO} week number (see
@samp{%V}) belongs
to the previous or next year, that year is used instead.
This is a @acronym{GNU} extension.
@item %G
year corresponding to the @acronym{ISO} week number. This has the
same format and value as @samp{%Y}, except that if the @acronym{ISO}
@@ -14050,7 +14332,6 @@ instead.
It is normally useful only if @samp{%V} is also used;
for example, the format @samp{%G-%m-%d} is probably a mistake,
since it combines the ISO week number year with the conventional month and day.
This is a @acronym{GNU} extension.
@item %h
same as @samp{%b}
@item %j
@@ -14188,11 +14469,9 @@ is available, it is ignored.
If given an argument that does not start with @samp{+}, @command{date} sets
the system clock to the date and time specified by that argument (as
described below). You must have appropriate privileges to set the
system clock. The @option{--date} and @option{--set} options may not be
used with such an argument. The @option{--universal} option may be used
with such an argument to indicate that the specified date and time are
relative to Coordinated Universal Time rather than to the local time
zone.
system clock. Note for changes to persist across a reboot, the
hardware clock may need to be updated from the system clock, which
might not happen automatically on your system.
The argument must consist entirely of digits, which have the following
meaning:
@@ -14214,7 +14493,10 @@ last two digits of year (optional)
second (optional)
@end table
The @option{--set} option also sets the system clock; see the next section.
Note, the @option{--date} and @option{--set} options may not be used with an
argument in the above format. The @option{--universal} option may be used
with such an argument to indicate that the specified date and time are
relative to Coordinated Universal Time rather than to the local time zone.
@node Options for date
@@ -14262,6 +14544,34 @@ input. This is useful when you have many dates to process, because the
system overhead of starting up the @command{date} executable many times can
be considerable.
@item -I[@var{timespec}]
@itemx --iso-8601[=@var{timespec}]
@opindex -I[@var{timespec}]
@opindex --iso-8601[=@var{timespec}]
Display the date using the @acronym{ISO} 8601 format, @samp{%Y-%m-%d}.
The argument @var{timespec} specifies the number of additional
terms of the time to include. It can be one of the following:
@table @samp
@item auto
Print just the date. This is the default if @var{timespec} is omitted.
@item hours
Append the hour of the day to the date.
@item minutes
Append the hours and minutes.
@item seconds
Append the hours, minutes and seconds.
@item ns
Append the hours, minutes, seconds and nanoseconds.
@end table
If showing any time terms, then include the time zone using the format
@samp{%z}.
@item -r @var{file}
@itemx --reference=@var{file}
@opindex -r
@@ -14327,6 +14637,7 @@ This is equivalent to the format @samp{%Y-%m-%d %H:%M:%S.%N%:z}.
@opindex -s
@opindex --set
Set the date and time to @var{datestr}. See @option{-d} above.
See also @ref{Setting the time}.
@item -u
@itemx --utc
@@ -14583,7 +14894,7 @@ parsed reliably. In the following example, @var{release} is
@smallexample
uname -a
@result{} Linux dum 2.2.18 #4 SMP Tue Jun 5 11:24:08 PDT 2001 i686@c
@result{} Linux dumdum 2.2.18 #4 SMP Tue Jun 5 11:24:08 PDT 2001 i686@c
unknown unknown GNU/Linux
@end smallexample
@@ -15693,7 +16004,7 @@ the @var{command}.
@opindex --signal
Send this @var{signal} to @var{command} on timeout, rather than the
default @samp{TERM} signal. @var{signal} may be a name like @samp{HUP}
or a number. Also see @xref{Signal specifications}.
or a number. @xref{Signal specifications}.
@end table
@cindex time units
@@ -15716,6 +16027,7 @@ Exit status:
125 if @command{timeout} itself fails
126 if @var{command} is found but cannot be invoked
127 if @var{command} cannot be found
137 if @var{command} is sent the KILL(9) signal (128+9)
the exit status of @var{command} otherwise
@end display
@@ -15800,8 +16112,9 @@ number like @samp{1}, or an exit status of a process terminated by the
signal. A signal name can be given in canonical form or prefixed by
@samp{SIG}. The case of the letters is ignored, except for the
@option{-@var{signal}} option which must use upper case to avoid
ambiguity with lower case option letters. For a list of supported
signal names and numbers see @xref{Signal specifications}.
ambiguity with lower case option letters.
@xref{Signal specifications}, for a list of supported
signal names and numbers.
@node Delaying
@chapter Delaying
@@ -15903,8 +16216,10 @@ Factoring the product of the eighth and ninth Mersenne primes
takes about 30 milliseconds of CPU time on a 2.2 GHz Athlon.
@example
M8=`echo 2^31-1|bc` ; M9=`echo 2^61-1|bc`
/usr/bin/time -f '%U' factor $(echo "$M8 * $M9" | bc)
M8=$(echo 2^31-1|bc)
M9=$(echo 2^61-1|bc)
n=$(echo "$M8 * $M9" | bc)
/usr/bin/time -f %U factor $n
4951760154835678088235319297: 2147483647 2305843009213693951
0.03
@end example
@@ -16004,7 +16319,7 @@ If you want hexadecimal integer output, you can use @command{printf}
to perform the conversion:
@example
$ printf '%x\n' `seq 1048575 1024 1050623`
$ printf '%x\n' $(seq 1048575 1024 1050623)
fffff
1003ff
1007ff
@@ -16064,7 +16379,7 @@ outputs 1.0000000000000000007 twice and skips 1.0000000000000000008.
An earlier version of this chapter appeared in
@uref{http://www.linuxjournal.com/article.php?sid=2762, the
@cite{What's GNU?} column of @cite{Linux Journal}, 2 (June, 1994)}.
@cite{What's GNU?} column of the June 1994 @cite{Linux Journal}}.
It was written by Arnold Robbins.
@menu

View File

@@ -1,7 +1,6 @@
@c File mode bits
@c Copyright (C) 1994, 1996, 1999-2001, 2003-2006, 2008-2011 Free Software
@c Foundation, Inc.
@c Copyright (C) 1994-2012 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
@@ -18,6 +17,7 @@ symbolic form or as an octal number.
* Mode Structure:: Structure of file mode bits.
* Symbolic Modes:: Mnemonic representation of file mode bits.
* Numeric Modes:: File mode bits as octal numbers.
* Operator Numeric Modes:: ANDing, ORing, and setting modes octally.
* Directory Setuid and Setgid:: Set-user-ID and set-group-ID on directories.
@end menu
@@ -496,13 +496,16 @@ alternative to giving a symbolic mode, you can give an octal (base 8)
number that represents the mode.
This number is always interpreted in octal; you do not have to add a
leading @samp{0}, as you do in C. Mode @samp{0055} is the same as
mode @samp{55}.
mode @samp{55}. (However, modes of five digits or more, such as
@samp{00055}, are sometimes special. @xref{Directory Setuid and Setgid}.)
A numeric mode is usually shorter than the corresponding symbolic
mode, but it is limited in that normally it cannot take into account the
previous file mode bits; it can only set them absolutely.
(As discussed in the next section, the set-user-ID and set-group-ID
bits of directories are an exception to this general limitation.)
The set-user-ID and set-group-ID bits of directories are an exception
to this general limitation. @xref{Directory Setuid and Setgid}.
Also, operator numeric modes can take previous file mode bits into
account. @xref{Operator Numeric Modes}.
The permissions granted to the user,
to other users in the file's group,
@@ -542,6 +545,26 @@ For example, numeric mode @samp{4755} corresponds to symbolic mode
@samp{ug=rw,o=r}. Numeric mode @samp{0} corresponds to symbolic mode
@samp{a=}.
@node Operator Numeric Modes
@section Operator Numeric Modes
An operator numeric mode is a numeric mode that is prefixed by a
@samp{-}, @samp{+}, or @samp{=} operator, which has the same
interpretation as in symbolic modes. For example, @samp{+440} enables
read permission for the file's owner and group, @samp{-1} disables
execute permission for other users, and @samp{=600} clears all
permissions except for enabling read-write permissions for the file's
owner. Operator numeric modes can be combined with symbolic modes by
separating them with a comma; for example, @samp{=0,u+r} clears all
permissions except for enabling read permission for the file's owner.
The commands @samp{chmod =755 @var{dir}} and @samp{chmod 755
@var{dir}} differ in that the former clears the directory @var{dir}'s
setuid and setgid bits, whereas the latter preserves them.
@xref{Directory Setuid and Setgid}.
Operator numeric modes are a @acronym{GNU} extension.
@node Directory Setuid and Setgid
@section Directories and the Set-User-ID and Set-Group-ID Bits
@@ -560,8 +583,10 @@ bits of directories. If commands like @command{chmod} and
mechanisms would be less convenient and it would be harder to share
files. Therefore, a command like @command{chmod} does not affect the
set-user-ID or set-group-ID bits of a directory unless the user
specifically mentions them in a symbolic mode, or sets them in
a numeric mode. For example, on systems that support
specifically mentions them in a symbolic mode, or uses an operator
numeric mode such as @samp{=755}, or sets them in a numeric mode, or
clears them in a numeric mode that has five or more octal digits.
For example, on systems that support
set-group-ID inheritance:
@example
@@ -583,22 +608,32 @@ explicitly in the symbolic or numeric modes, e.g.:
@example
# These commands try to set the set-user-ID
# and set-group-ID bits of the subdirectories.
mkdir G H
mkdir G
chmod 6755 G
chmod u=rwx,go=rx,a+s H
mkdir -m 6755 I
chmod +6000 G
chmod u=rwx,go=rx,a+s G
mkdir -m 6755 H
mkdir -m +6000 I
mkdir -m u=rwx,go=rx,a+s J
@end example
If you want to try to clear these bits, you must mention them
explicitly in a symbolic mode, e.g.:
explicitly in a symbolic mode, or use an operator numeric mode, or
specify a numeric mode with five or more octal digits, e.g.:
@example
# This command tries to clear the set-user-ID
# These commands try to clear the set-user-ID
# and set-group-ID bits of the directory D.
chmod a-s D
chmod -6000 D
chmod =755 D
chmod 00755 D
@end example
This behavior is a @acronym{GNU} extension. Portable scripts should
not rely on requests to set or clear these bits on directories, as
@acronym{POSIX} allows implementations to ignore these requests.
The @acronym{GNU} behavior with numeric modes of four or fewer digits
is intended for scripts portable to systems that preserve these bits;
the behavior with numeric modes of five or more digits is for scripts
portable to systems that do not preserve the bits.

View File

@@ -1,5 +1,5 @@
/* Declare an access pattern hint for files.
Copyright (C) 2010-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2009-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2009-2012 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-2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1999-2012 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 @@
/* Bob Jenkins's cryptographic random number generators, ISAAC and ISAAC64.
Copyright (C) 1999-2005, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1999-2012 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, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 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, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 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-2007, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 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, 2008-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 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
@@ -17,6 +17,9 @@
/* Written by Paul Eggert. */
/* FIXME: Improve performance by adding support for the RDRAND machine
instruction if available (e.g., Ivy Bridge processors). */
#include <config.h>
#include "randread.h"
@@ -26,6 +29,7 @@
#include <exitfail.h>
#include <fcntl.h>
#include <quotearg.h>
#include <stdalign.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
@@ -59,7 +63,6 @@
#if _STRING_ARCH_unaligned
# define ALIGNED_POINTER(ptr, type) true
#else
# define alignof(type) offsetof (struct { char c; type x; }, x)
# define ALIGNED_POINTER(ptr, type) ((size_t) (ptr) % alignof (type) == 0)
#endif

View File

@@ -1,6 +1,6 @@
/* Generate buffers of random data.
Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2006-2012 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

@@ -11,7 +11,7 @@ index d5968bd..4926676 100644
char *_Restrict_ errbuf, size_t errbuf_size)
#endif
{
@@ -1383,7 +1383,7 @@ calc_first (void *extra, bin_tree_t *node)
@@ -1415,7 +1415,7 @@ calc_first (void *extra, bin_tree_t *node)
/* Pass 2: compute NEXT on the tree. Preorder visit. */
static reg_errcode_t
@@ -20,17 +20,20 @@ index d5968bd..4926676 100644
{
switch (node->token.type)
{
@@ -2744,7 +2744,8 @@ static reg_errcode_t
@@ -2792,8 +2792,10 @@ build_range_exp (const reg_syntax_t synt
static reg_errcode_t
internal_function
build_collating_symbol (bitset_t sbcset,
# ifdef RE_ENABLE_I18N
- re_charset_t *mbcset, Idx *coll_sym_alloc,
+ re_charset_t *mbcset _UNUSED_PARAMETER_,
-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_,
# endif
const unsigned char *name)
{
@@ -3323,7 +3324,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ const unsigned char *name)
# else /* not RE_ENABLE_I18N */
build_collating_symbol (bitset_t sbcset, const unsigned char *name)
# endif /* not RE_ENABLE_I18N */
@@ -3377,7 +3379,8 @@ parse_bracket_exp (re_string_t *regexp,
static reg_errcode_t
parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
@@ -40,19 +43,20 @@ index d5968bd..4926676 100644
reg_syntax_t syntax, bool accept_hyphen)
{
#ifdef RE_ENABLE_I18N
@@ -3410,8 +3412,9 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
@@ -3464,8 +3467,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_,
+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 */
@@ -3816,7 +3819,7 @@ free_token (re_token_t *node)
@@ -3869,7 +3874,7 @@ free_token (re_token_t *node)
and its children. */
static reg_errcode_t

View File

@@ -1,5 +1,5 @@
/* root-dev-ino.c -- get the device and inode numbers for `/'.
Copyright (C) 2003, 2005-2006, 2009-2011 Free Software Foundation, Inc.
/* root-dev-ino.c -- get the device and inode numbers for '/'.
Copyright (C) 2003-2012 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
@@ -22,7 +22,7 @@
#include <stdlib.h>
/* Call lstat to get the device and inode numbers for `/'.
/* Call lstat to get the device and inode numbers for '/'.
Upon failure, return NULL. Otherwise, set the members of
*ROOT_D_I accordingly and return ROOT_D_I. */
struct dev_ino *

View File

@@ -1,6 +1,6 @@
/* Root device and inode number checking.
Copyright (C) 2003, 2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2003-2012 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 @@
#serial 3
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2005-2012 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

@@ -17,7 +17,7 @@ lib_SOURCES += heap.c heap.h
Include:
"heap.h"
License
License:
GPL
Maintainer:

View File

@@ -17,7 +17,7 @@ lib_SOURCES += randint.c randint.h
Include:
"randint.h"
License
License:
GPL
Maintainer:

View File

@@ -18,7 +18,7 @@ lib_SOURCES += randperm.c randperm.h
Include:
"randperm.h"
License
License:
GPL
Maintainer:

View File

@@ -14,6 +14,7 @@ inline
fopen-safer
gettimeofday
quotearg
stdalign
stdbool
stdint
unlocked-io
@@ -27,7 +28,7 @@ lib_SOURCES += randread.c randread.h rand-isaac.c rand-isaac.h
Include:
"randread.h"
License
License:
GPL
Maintainer:

View File

@@ -1,14 +1,14 @@
--- /gnulib/modules/tempname 2011-06-17 11:41:46.070787376 +0200
+++ gl/modules/tempname 2011-06-17 11:43:49.571154551 +0200
@@ -1,2 +1,2 @@
--- tempname 2011-10-27 18:55:14.672722002 +0200
+++ tempname 2011-10-27 18:55:25.200999149 +0200
@@ -1,5 +1,5 @@
Description:
-gen_tempname() function: create a private temporary file or directory.
+gen_tempname, gen_tempname_len: create a private temporary file or directory.
Files:
lib/tempname.c
@@ -10,6 +10,8 @@ Depends-on:
extensions
@@ -11,6 +11,8 @@ extensions
fcntl-h
gettimeofday
lstat
+randint

View File

@@ -1,5 +1,5 @@
/* Test that fadvise works as advertised.
Copyright (C) 2010-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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-2011 Free Software Foundation, Inc.
Copyright (C) 2010-2012 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: da1717b7f9...a3a049672d

View File

@@ -2729,7 +2729,7 @@
(local_zone): Accumulate dsts_seen rather than relying on tm_isdst
not being INT_MAX.
(get_date): Initialize dsts_seen, and check that it doesn't go over 1.
Use pc_rels_seen to decide whther a date is absolute.
Use pc_rels_seen to decide whether a date is absolute.
* getdate.y (number): Don't overwrite year.
(get_date): Initialize pc.year.digits to 0, not 4, to enable above
@@ -8746,7 +8746,7 @@
-----
Copyright (C) 2000-2011 Free Software Foundation, Inc.
Copyright (C) 2000-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -1,6 +1,6 @@
## Makefile for gnulib/lib -*-Makefile-*-
# Copyright (C) 1995-2007, 2009-2011 Free Software Foundation, Inc.
# Copyright (C) 1995-2012 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
@@ -15,6 +15,17 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CFLAGS =
AM_CPPFLAGS =
BUILT_SOURCES =
CLEANFILES =
EXTRA_DIST =
MAINTAINERCLEANFILES =
MOSTLYCLEANDIRS =
MOSTLYCLEANFILES =
SUFFIXES =
noinst_LIBRARIES =
include gnulib.mk
AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)

View File

@@ -1,6 +1,6 @@
/* buffer-lcm.c - compute a good buffer size for dealing with two files
Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2002-2012 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,134 +0,0 @@
/* euidaccess-stat -- check if effective user id can access lstat'd file
This function is probably useful only for choosing whether to issue
a prompt in an implementation of POSIX-specified rm.
Copyright (C) 2005-2006, 2009-2011 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
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Adapted for use in GNU remove.c by Jim Meyering. */
#include <config.h>
#include "euidaccess-stat.h"
#include <unistd.h>
#include "stat-macros.h"
/* Return true if the current user has permission of type MODE
on the file from which stat buffer *ST was obtained, ignoring
ACLs, attributes, `read-only'ness, etc...
Otherwise, return false.
Like the reentrant version of euidaccess, but starting with
a stat buffer rather than a file name. Hence, this function
never calls access or accessx, and doesn't take into account
whether the file has ACLs or other attributes, or resides on
a read-only file system. */
bool
euidaccess_stat (struct stat const *st, int mode)
{
uid_t euid;
unsigned int granted;
/* Convert the mode to traditional form, clearing any bogus bits. */
if (R_OK == 4 && W_OK == 2 && X_OK == 1 && F_OK == 0)
mode &= 7;
else
mode = ((mode & R_OK ? 4 : 0)
+ (mode & W_OK ? 2 : 0)
+ (mode & X_OK ? 1 : 0));
if (mode == 0)
return true; /* The file exists. */
euid = geteuid ();
/* The super-user can read and write any file, and execute any file
that anyone can execute. */
if (euid == 0 && ((mode & X_OK) == 0
|| (st->st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))))
return true;
/* Convert the file's permission bits to traditional form. */
if ( S_IRUSR == (4 << 6)
&& S_IWUSR == (2 << 6)
&& S_IXUSR == (1 << 6)
&& S_IRGRP == (4 << 3)
&& S_IWGRP == (2 << 3)
&& S_IXGRP == (1 << 3)
&& S_IROTH == (4 << 0)
&& S_IWOTH == (2 << 0)
&& S_IXOTH == (1 << 0))
granted = st->st_mode;
else
granted = ( (st->st_mode & S_IRUSR ? 4 << 6 : 0)
+ (st->st_mode & S_IWUSR ? 2 << 6 : 0)
+ (st->st_mode & S_IXUSR ? 1 << 6 : 0)
+ (st->st_mode & S_IRGRP ? 4 << 3 : 0)
+ (st->st_mode & S_IWGRP ? 2 << 3 : 0)
+ (st->st_mode & S_IXGRP ? 1 << 3 : 0)
+ (st->st_mode & S_IROTH ? 4 << 0 : 0)
+ (st->st_mode & S_IWOTH ? 2 << 0 : 0)
+ (st->st_mode & S_IXOTH ? 1 << 0 : 0));
if (euid == st->st_uid)
granted >>= 6;
else
{
gid_t egid = getegid ();
if (egid == st->st_gid || group_member (st->st_gid))
granted >>= 3;
}
if ((mode & ~granted) == 0)
return true;
return false;
}
#ifdef TEST
# include <errno.h>
# include <stdio.h>
# include <stdlib.h>
# include "error.h"
# define _(msg) msg
char *program_name;
int
main (int argc, char **argv)
{
char *file;
int mode;
bool ok;
struct stat st;
program_name = argv[0];
if (argc < 3)
abort ();
file = argv[1];
mode = atoi (argv[2]);
if (lstat (file, &st) != 0)
error (EXIT_FAILURE, errno, _("cannot stat %s"), file);
ok = euidaccess_stat (&st, mode);
printf ("%s: %s\n", file, ok ? "y" : "n");
return 0;
}
#endif

View File

@@ -1,5 +0,0 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <stdbool.h>
bool euidaccess_stat (struct stat const *st, int mode);

View File

@@ -1,6 +1,6 @@
/* Invoke open, but return either a desired file descriptor or -1.
Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
Copyright (C) 2005-2012 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
@@ -26,7 +26,7 @@
#include <unistd.h>
/* Open a file to a particular file descriptor. This is like standard
`open', except it always returns DESIRED_FD if successful. */
'open', except it always returns DESIRED_FD if successful. */
int
fd_reopen (int desired_fd, char const *file, int flags, mode_t mode)

View File

@@ -1,6 +1,6 @@
/* Invoke open, but return either a desired file descriptor or -1.
Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2005-2012 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-2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2005-2012 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,6 @@
/* Compare numeric strings. This is an internal include file.
Copyright (C) 1988, 1991-1993, 1995-1996, 1998-2000, 2003-2006, 2009-2011
Free Software Foundation, Inc.
Copyright (C) 1988-2012 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
@@ -34,7 +33,7 @@
- It's typically faster.
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
isdigit unless it's important to use the locale's definition
of `digit' even when the host does not conform to POSIX. */
of 'digit' even when the host does not conform to POSIX. */
# define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)

View File

@@ -1,6 +1,6 @@
/* Compare numeric strings.
Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2005-2012 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 @@
#!/bin/sh
# Exercise chdir-long's sample main program.
# Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
# Copyright (C) 2005-2012 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, 2005-2007, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 2003-2012 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-2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1997-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -1,8 +1,7 @@
# boottime.m4 serial 4
# Determine whether this system has infrastructure for obtaining the boot time.
# Copyright (C) 1996, 2000, 2002-2004, 2006, 2008-2011 Free Software
# Foundation, Inc.
# Copyright (C) 1996-2012 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,8 +1,7 @@
#serial 26
# Check declarations for this package.
dnl Copyright (C) 1997-2001, 2003-2006, 2008-2011 Free Software Foundation,
dnl Inc.
dnl Copyright (C) 1997-2012 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,11 +0,0 @@
# serial 1
dnl Copyright (C) 2005, 2009-2011 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.
AC_DEFUN([gl_EUIDACCESS_STAT],
[
AC_LIBSOURCES([euidaccess-stat.c, euidaccess-stat.h])
AC_LIBOBJ([euidaccess-stat])
])

View File

@@ -1,6 +1,6 @@
# Invoke open, but return either a desired file descriptor or -1.
dnl Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2005-2012 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-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2008-2012 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, 2009-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2007-2012 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

@@ -2,7 +2,7 @@
dnl Misc type-related macros for coreutils.
# Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc.
# Copyright (C) 1998-2012 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
@@ -71,23 +71,33 @@ AC_DEFUN([coreutils_MACROS],
[AC_DEFINE([HAVE_INOTIFY], [1],
[Define to 1 if you have usable inotify support.])])
AC_CHECK_FUNCS_ONCE( \
endgrent \
endpwent \
fchown \
fchmod \
ftruncate \
iswspace \
mkfifo \
mbrlen \
setgroups \
sethostname \
siginterrupt \
sync \
sysctl \
sysinfo \
tcgetpgrp \
)
AC_CHECK_FUNCS_ONCE([
endgrent
endpwent
fchown
fchmod
ftruncate
iswspace
mkfifo
mbrlen
setgroups
sethostname
siginterrupt
sync
sysctl
sysinfo
tcgetpgrp
])
# These checks are for Interix, to avoid its getgr* functions, in favor
# of these replacements. The replacement functions are much more efficient
# because they do not query the domain controller for user information
# when it is not needed.
AC_CHECK_FUNCS_ONCE([
getgrgid_nomembers
getgrnam_nomembers
getgrent_nomembers
])
dnl This can't use AC_REQUIRE; I'm not quite sure why.
cu_PREREQ_STAT_PROG
@@ -131,7 +141,7 @@ AC_DEFUN([coreutils_MACROS],
fi
AC_SUBST([LIB_CAP])
# See if linking `seq' requires -lm.
# See if linking 'seq' requires -lm.
# It does on nearly every system. The single exception (so far) is
# BeOS which has all the math functions in the normal runtime library
# and doesn't have a separate math library.
@@ -173,16 +183,15 @@ AC_DEFUN([coreutils_MACROS],
AC_DEFUN([gl_CHECK_ALL_HEADERS],
[
AC_CHECK_HEADERS_ONCE( \
hurd.h \
paths.h \
priv.h \
stropts.h \
sys/param.h \
sys/resource.h \
sys/systeminfo.h \
syslog.h \
)
AC_CHECK_HEADERS_ONCE([
hurd.h
paths.h
priv.h
stropts.h
sys/param.h
sys/systeminfo.h
syslog.h
])
AC_CHECK_HEADERS([sys/sysctl.h], [], [],
[AC_INCLUDES_DEFAULT
[#if HAVE_SYS_PARAM_H
@@ -193,11 +202,6 @@ AC_DEFUN([gl_CHECK_ALL_HEADERS],
# This macro must be invoked before any tests that run the compiler.
AC_DEFUN([gl_CHECK_ALL_TYPES],
[
dnl This test must precede tests of compiler characteristics like
dnl that for the inline keyword, since it may change the degree to
dnl which the compiler supports such features.
AC_REQUIRE([AM_C_PROTOTYPES])
dnl Checks for typedefs, structures, and compiler characteristics.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_VOLATILE])

View File

@@ -2,8 +2,7 @@
dnl Misc lib-related macros for coreutils.
# Copyright (C) 1993-1997, 2000-2001, 2003-2006, 2008-2011 Free Software
# Foundation, Inc.
# Copyright (C) 1993-2012 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,4 +1,4 @@
#serial 77
#serial 78
dnl We use gl_ for non Autoconf macros.
m4_pattern_forbid([^gl_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl
@@ -7,7 +7,7 @@ m4_pattern_forbid([^gl_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl
# directory of the coreutils package.
# Copyright (C) 1998, 2000-2001, 2003-2011 Free Software Foundation, Inc.
# Copyright (C) 1998-2012 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
@@ -36,7 +36,6 @@ AC_DEFUN([gl_PREREQ],
# Invoke macros of modules that may migrate into gnulib.
# There's no need to list gnulib modules here, since gnulib-tool
# handles that; see ../bootstrap.conf.
AC_REQUIRE([gl_EUIDACCESS_STAT])
AC_REQUIRE([gl_FD_REOPEN])
AC_REQUIRE([gl_FUNC_XATTR])
AC_REQUIRE([gl_FUNC_XFTS])

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-2004, 2006, 2008-2011 Free Software Foundation, Inc.
# Copyright (C) 2002-2012 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.
dnl Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2005-2012 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,7 +1,7 @@
# xattr.m4 - check for Extended Attributes (Linux)
# serial 3
# Copyright (C) 2003, 2008-2011 Free Software Foundation, Inc.
# Copyright (C) 2003-2012 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.

View File

@@ -1,5 +1,5 @@
#serial 1
dnl Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
dnl Copyright (C) 2005-2012 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.

1
man/.gitignore vendored
View File

@@ -59,6 +59,7 @@ printf.1
ptx.1
pwd.1
readlink.1
realpath.1
rm.1
rmdir.1
seq.1

View File

@@ -1,6 +1,6 @@
# Make coreutils man pages. -*-Makefile-*-
# Copyright (C) 2002-2011 Free Software Foundation, Inc.
# Copyright (C) 2002-2012 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,7 +19,8 @@ dist_man1_MANS = $(MAN)
man_aux = $(dist_man1_MANS:.1=.x)
EXTRA_DIST = $(man_aux) $(NO_INSTALL_PROGS_DEFAULT:%=%.x) help2man
EXTRA_DIST = $(man_aux) $(NO_INSTALL_PROGS_DEFAULT:%=%.x) help2man \
$(NO_INSTALL_PROGS_DEFAULT:%=%.1)
MAINTAINERCLEANFILES = $(dist_man1_MANS)
# Depend on ../.version to get version number changes.
@@ -91,6 +92,7 @@ printf.1: $(common_dep) $(srcdir)/printf.x ../src/printf.c
ptx.1: $(common_dep) $(srcdir)/ptx.x ../src/ptx.c
pwd.1: $(common_dep) $(srcdir)/pwd.x ../src/pwd.c
readlink.1: $(common_dep) $(srcdir)/readlink.x ../src/readlink.c
realpath.1: $(common_dep) $(srcdir)/realpath.x ../src/realpath.c
rm.1: $(common_dep) $(srcdir)/rm.x ../src/rm.c
rmdir.1: $(common_dep) $(srcdir)/rmdir.x ../src/rmdir.c
runcon.1: $(common_dep) $(srcdir)/runcon.x ../src/runcon.c
@@ -141,12 +143,12 @@ $(MAN): $(top_srcdir)/src/system.h
SUFFIXES = .x .1
# Ensure that help2man runs the ../src/ginstall binary as
# `install' when creating install.1.
# 'install' when creating install.1.
# Similarly, ensure that it uses the ../src/[ binary to create test.1.
t = $*.td
mapped_name = `echo $*|sed 's/^install$$/ginstall/; s/^test$$/[/'`
# Note the use of $t/$*, rather than just `$*' as in other packages.
# Note the use of $t/$*, rather than just '$*' as in other packages.
# That is necessary to avoid failures for programs that are also shell built-in
# functions like echo, false, printf, pwd.
.x.1:

View File

@@ -1,5 +1,4 @@
'\" Copyright (C) 1998-1999, 2001, 2006-2007, 2009-2011 Free Software
'\" Foundation, Inc.
'\" Copyright (C) 1998-2012 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,5 +1,4 @@
'\" Copyright (C) 1998-1999, 2001, 2006, 2009-2011 Free Software Foundation,
'\" Inc.
'\" Copyright (C) 1998-2012 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-1999, 2004, 2009-2011 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2012 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-2000, 2002, 2009-2011 Free Software Foundation, Inc.
'\" Copyright (C) 1998-2012 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,7 +1,7 @@
#!/usr/bin/perl -w
# Generate a short man page from --help and --version output.
# Copyright (C) 1997-2004, 2008-2011 Free Software Foundation, Inc.
# Copyright (C) 1997-2012 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
@@ -72,7 +72,7 @@ Written by Brendan O'Dea <bod@debian.org>
EOT
my $help_info = sprintf _(<<'EOT'), $this_program, $this_program;
`%s' generates a man page out of `--help' and `--version' output.
'%s' generates a man page out of '--help' and '--version' output.
Usage: %s [OPTION]... EXECUTABLE
@@ -81,15 +81,15 @@ Usage: %s [OPTION]... EXECUTABLE
-m, --manual=TEXT name of manual (User Commands, ...)
-S, --source=TEXT source of program (FSF, Debian, ...)
-L, --locale=STRING select locale (default "C")
-i, --include=FILE include material from `FILE'
-I, --opt-include=FILE include material from `FILE' if it exists
-o, --output=FILE send output to `FILE'
-i, --include=FILE include material from 'FILE'
-I, --opt-include=FILE include material from 'FILE' if it exists
-o, --output=FILE send output to 'FILE'
-p, --info-page=TEXT name of Texinfo manual
-N, --no-info suppress pointer to Texinfo manual
--help print this help, then exit
--version print version number, then exit
EXECUTABLE should accept `--help' and `--version' options although
EXECUTABLE should accept '--help' and '--version' options although
alternatives may be specified using:
-h, --help-option=STRING help option string
@@ -157,7 +157,7 @@ while (@opt_include)
my ($inc, $required) = @{shift @opt_include};
next unless -f $inc or $required;
kark N_("%s: can't open `%s' (%s)"), $this_program, $inc, $!
kark N_("%s: can't open '%s' (%s)"), $this_program, $inc, $!
unless open INC, $inc;
my $key;
@@ -214,7 +214,7 @@ while (@opt_include)
close INC;
kark N_("%s: no valid information found in `%s'"), $this_program, $inc
kark N_("%s: no valid information found in '%s'"), $this_program, $inc
unless $key;
}
@@ -227,7 +227,7 @@ for my $hash (\(%include, %append))
# Grab help and version info from executable.
my ($help_text, $version_text) = map {
join '', map { s/ +$//; expand $_ } `$ARGV[0] $_ 2>/dev/null`
or kark N_("%s: can't get `%s' info from %s"), $this_program,
or kark N_("%s: can't get '%s' info from %s"), $this_program,
$_, $ARGV[0]
} $help_option, $version_option;
@@ -254,7 +254,7 @@ if ($opt_output)
# <program> ({GNU,Free} <package>) <version>
# <program> - {GNU,Free} <package> <version>
#
# and seperated from any copyright/author details by a blank line.
# and separated from any copyright/author details by a blank line.
($_, $version_text) = split /\n+/, $version_text, 2;
@@ -278,7 +278,7 @@ else
$program =~ s!.*/!!;
# No info for `info' itself.
# No info for 'info' itself.
$opt_no_info = 1 if $program eq 'info';
for ($include{_('NAME')})

6
man/realpath.x Normal file
View File

@@ -0,0 +1,6 @@
[NAME]
realpath \- print the resolved path
[DESCRIPTION]
.\" Add any additional description here
[SEE ALSO]
readlink(1), readlink(2), realpath(3)

View File

@@ -1,5 +1,4 @@
'\" Copyright (C) 1998-1999, 2001, 2003-2004, 2006, 2009-2011 Free Software
'\" Foundation, Inc.
'\" Copyright (C) 1998-2012 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) 2009-2011 Free Software Foundation, Inc.
'\" Copyright (C) 2009-2012 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

@@ -4,3 +4,5 @@ timeout \- run a command with a time limit
.\" Add any additional description here
[SEE ALSO]
kill(1)
[BUGS]
Some platforms don't curently support timeouts beyond 2038

View File

@@ -8390,7 +8390,7 @@
-----
Copyright (C) 1998-2011 Free Software Foundation, Inc.
Copyright (C) 1998-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -2542,7 +2542,7 @@ Thu Feb 15 23:08:41 1996 Jim Meyering (meyering@na-net.ornl.gov)
Mon Feb 12 23:23:25 1996 Jim Meyering (meyering@na-net.ornl.gov)
* configure.in (LIBOBJS): Split assignment into two statements to
accomodate automake-0.29 buglet.
accommodate automake-0.29 buglet.
Update for automake-0.29.
* Makefile.am (CONFIG_HEADER): Don't define. Automake now does it.
@@ -6158,8 +6158,7 @@ Mon Feb 5 17:29:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
-----
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
Foundation, Inc.
Copyright (C) 1990-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -8,7 +8,7 @@
* 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 thru 4.1.9.
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.
@@ -749,7 +749,7 @@ Major changes in release 3.3:
========================================================================
Copyright (C) 1992-2003, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1992-2012 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

@@ -4858,8 +4858,7 @@ Thu Nov 17 23:47:26 1994 Jim Meyering (meyering@comco.com)
-----
Copyright (C) 1994-1997, 1999-2002, 2006, 2010-2011 Free Software
Foundation, Inc.
Copyright (C) 1994-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -269,7 +269,7 @@ Mon Aug 01 21:58:14 1994 Jim Meyering (meyering@comco.com)
* date.1: Correct the documentation, too.
* date.c (main, show_date): For -u, use gmtime instead of relying on
localtime's ability to interpret the TZ enviroment variable.
localtime's ability to interpret the TZ environment variable.
`date -u' failed (by reporting local time) on romp-ibm-bsd and PCs
(DOS and OS/2) running emx 0.8h. From R. Bernstein
<rocky@watson.ibm.com>.
@@ -1362,7 +1362,7 @@ Mon Jul 22 15:21:21 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
* stty.c: Use tcflag_t for termios bitmasks.
Use speed_t for speeds. Use unsigned long for baud rates to
accomodate large values, and support 57600 and 115200 if available.
accommodate large values, and support 57600 and 115200 if available.
* date.c, configure: Instead of SIZE_T_MISSING,
define size_t if it's missing.
@@ -1706,7 +1706,7 @@ Sat Oct 28 13:20:43 1989 David J. MacKenzie (djm at spiff)
-----
Copyright (C) 1989-1994, 2010-2011 Free Software Foundation, Inc.
Copyright (C) 1989-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -273,7 +273,7 @@ Major changes in release 1.7:
========================================================================
Copyright (C) 1992-2003, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1992-2012 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

@@ -4869,7 +4869,7 @@ Fri Dec 27 17:29:02 1996 Jim Meyering <meyering@na-net.ornl.gov>
this time with duplicates removed.
* src/pr.c (usage): Break long string literal into two separate
printf statements to accomodate default maximum of 2048 characters
printf statements to accommodate default maximum of 2048 characters
for Irix-4.0.5. Reported by Kaveh Ghazi.
* Makefile.am (aclocal.m4): No longer depend on acinclude.m4.
@@ -5203,7 +5203,7 @@ Fri Oct 4 07:20:37 1996 Jim Meyering <meyering@na-net.ornl.gov>
(PACKAGE_VERSION): Remove now-unused variable.
* lib/long-options.c (parse_long_options): Separate package name
and version number to accomodate new --version output requirement.
and version number to accommodate new --version output requirement.
* lib/long-options.h: Update prototype.
Thu Oct 3 23:27:31 1996 Jim Meyering <meyering@na-net.ornl.gov>
@@ -5245,7 +5245,7 @@ Thu Sep 26 21:02:54 1996 Jim Meyering <meyering@na-net.ornl.gov>
removed soon. Using this option can provoke a memory access
violation on some systems because of (unavoidable in an efficient
implementation) alignment assumptions made by functions in md5.c.
md5sum.c could leave the option in and accomodate the alignment
md5sum.c could leave the option in and accommodate the alignment
restriction, but this option was intended solely for testing, and
the tests are now all file-oriented, so it's not necessary.
@@ -8697,7 +8697,7 @@ Tue Feb 20 17:09:19 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
Sat Feb 10 02:16:40 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
* cmp.c (cmp): Rename `r' to `first_diff', and `x' to `smaller'.
Remove unneccessary variable `c1'. If -l was given, increase
Remove unnecessary variable `c1'. If -l was given, increase
`char_number' by the number of bytes read, after producing output,
rather than by the offset of the first differing bytes, before
producing output.
@@ -8745,7 +8745,7 @@ Sat Dec 16 15:15:50 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
-----
Copyright (C) 1998-2011 Free Software Foundation, Inc.
Copyright (C) 1998-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice

View File

@@ -461,7 +461,7 @@ Major changes in release 1.4:
========================================================================
Copyright (C) 1992-2002, 2006, 2009-2011 Free Software Foundation, Inc.
Copyright (C) 1992-2012 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

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

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