1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-20 10:51:48 +02:00
Commit Graph

27649 Commits

Author SHA1 Message Date
Jim Meyering
090294b0e4 scripts: tweak URLs in autotools-install
* scripts/autotools-install (tarballs): Use http:// URLs rather
than ftp:// ones.  The former are more likely to work, these days.
Update URLs to point to the latest versions.
2013-04-22 10:26:25 -07:00
Bernhard Voelker
8f97679836 tail: exit following by descriptor when no tailable file left
As a side effect of the previous commit which fixes 'tail -f --retry'
to wait for a file to appear, tail would not exit when the last file
appears untailable and gives up on this file.
This can happen, for example, when the argument file name appears
as directory.  Tail sets the 'ignore' flag of this file to true,
but instead of exiting the program, tail would continue the loop.

* src/tail.c (any_live_files): Change the function to return true
if any of the files is still tailable or if tail should continue to
try to check again.
(tail_forever): Change the condition to break the loop in the
"no files remaining" case, because now any_live_files() will care
about it, as mentioned above.
(parse_options): When --retry is used without any follow mode,
then reset reopen_inaccessible_files to false.
* tests/tail-2/retry.sh: Add test case.
2013-04-20 16:34:23 +02:00
Bernhard Voelker
d461bfd274 tail: let -f --retry wait for inaccessible files
The --retry option is indeed useful for both following modes
by name and by file descriptor.  The difference is that in the
latter case, it is effective only during the initial open.

As a regression of the implementation of the inotify support,
tail -f --retry would immediately exit if the given file is
inaccessible.

* src/tail.c (usage): Change the description of the --retry option:
remove the note that this option would mainly be useful when
following by name.
(main): Change diagnosing dubios uses of --retry option:
when the --retry option is used without following, then issue
a warning that this option is ignored; when it is used together
with --follow=descriptor, then issue a warning that it is only
effective for the initial open.
Disable inotify also in the case when the initial open in tail_file()
failed (which is the actual bug fix).
* init.cfg (retry_delay_): Pass excess arguments to the test function.
* tests/tail-2/retry.sh: Add new tests.
* tests/local.mk (all_tests): Mention it.
* doc/coreutils.texi (tail invocation): Enhance the documentation
of the --retry option.  Clarify the difference in tail's behavior
regarding the --retry option when combined with the following modes
name versus descriptor.
* NEWS (Bug fixes): Mention the fix.

Reported by Noel Morrison in:
http://lists.gnu.org/archive/html/coreutils/2013-04/msg00003.html
2013-04-20 16:33:06 +02:00
Pádraig Brady
1dd8a33169 tests: avoid false failures with non default groups
On OS X it was seen that the group ID used for new files,
are set to a that of the directory rather than the current user.
It's not currently understood when this happens, but it was confirmed
that ACLs, extended attributes and setgid bits are _not_ involved.

* init.cfg (skip_if_nondefault_group_): A new function to detect
and avoid this situation.  Document with links to the discussions
for hopefully future clarification.
* tests/install/install-C-root.sh: Use the new function.
* tests/install/install-C-selinux.sh: Likewise.
* tests/install/install-C.sh: Likewise.
2013-04-14 01:03:56 +01:00
Pádraig Brady
c8ac385299 doc: mention caveats with using install --compare
* doc/coreutils.texi (install invocation): Mention that install(1) may
not correctly determine the default user or permissions for installed
files, and so is best used with options specifying these attributes.
2013-04-14 01:03:41 +01:00
Pádraig Brady
1fe218888a head: with --bytes=-N only allocate memory as needed
* src/head.c (elide_tail_bytes_pipe): Don't use calloc as that
bypasses memory overcommit due to the zeroing requirement.
Also realloc rather than malloc the pointer array to avoid
dependence on overcommit entirely.
* tests/misc/head-c.sh: Add a test case.
Fixes http://bugs.gnu.org/13530
2013-04-14 01:01:21 +01:00
Ondrej Oprala
8901e010fa dd: avoid buffer allocations unless needed
* src/dd.c: Add new static global variable ibuf.
(alloc_ibuf, alloc_obuf): New functions factored from dd_copy().
(dd_copy): Call the new functions to allocate memory for
ibuf and obuf when necessary.
(skip): Likewise.
* tests/dd/no-allocate.sh: New test.
* tests/local.mk: Reference the test.
2013-04-14 01:00:45 +01:00
Assaf Gordon
4114c93af3 csplit: add the --suppress-matched option
With --suppress-matched, the lines that match the pattern will not be
printed in the output files.  I.E. the first line from the second
and subsequent splits will be suppressed.

* src/csplit.c: process_regexp(),process_line_count(): Don't output the
matched lines.  Since csplit includes "up to but not including" matched
lines in each split, the first line (in the next group) is the matched
line - so just skip it.
main(): Handle new option.
usage(): Mention new option.
* doc/coreutils.texi (csplit invocation): Mention new option, examples.
* tests/misc/csplit-suppress-matched.pl: New test script.
* tests/local.mk: Reference the new test.
* NEWS: Mention new feature.
2013-04-10 14:34:52 +01:00
Enrico Scholz
ec02161aef build: fix man page build failure with some permissions setups
Use the more portable 'chmod a-w', instead of the 'chmod -w' form.
The latter is not always supported.  Also its operation is
dependent on umask controlling the permissions bits for new files,
which is not the case in the presence of POSIX default ACLs for e.g.
In that case, chmod may print a warning like the following, and
exit with failure status:

chmod: man/hostid.1-t: new permissions are r--rw-r--, not r--r--r--

* man/local.mk: s/-w/a-w/
2013-04-07 11:53:17 +01:00
Pádraig Brady
e92d16f68a tests: avoid shared lib tests on unsupported platforms
* init.cfg (require_gcc_shared_): A new function to check
that we can build shared libraries in the particular manner
we use in our tests.
* tests/cp/nfs-removal-race.sh: Use require_gcc_shared_.
Then fail rather than skip, if the actual shared lib build fails.
* tests/df/no-mtab-status.sh: Likewise.
* tests/df/skip-duplicates.sh: Likewise.
* tests/ls/getxattr-speedup.sh: Likewise.
Reported in http://bugs.gnu.org/14024
2013-04-04 03:02:10 +01:00
Pádraig Brady
7abf99e190 tail: exit without reading input if would never output
* src/tail.c (main): If -n0 or -c0 were specified without -f,
then no data would ever be output, so exit without reading input.
* tests/tail-2/tail-n0f.sh: Augment the related test with this case.
2013-04-04 03:01:48 +01:00
Pádraig Brady
f7867e73ca shuf: exit without reading if would never output
* src/shuf.c (main): If -n0 specified then no data would ever be output,
so exit without reading input.
* tests/misc/shuf.sh: Augment the related test with this case.
2013-04-04 02:55:55 +01:00
Pádraig Brady
34023817cb doc: add details on ln --relative symlink resolution
* doc/coreutils.texi (ln invocation): Describe how symlinks are
resolved with --relative, and give an example showing the greater
control available through realpath(1).
* tests/ln/relative.sh: Add a test to demonstrate full symlink
resolution, in a case where it might not be wanted.
2013-04-04 02:46:52 +01:00
Rémy Lefevre
e52293aa7f ln: --relative: fix updating of existing symlinks
Don't dereference an existing symlink being replaced.
I.E. generate the symlink relative to the symlink's containing dir,
rather than to some arbitrary place it points to.

* src/ln.c (convert_abs_rel): Don't consider the final component
of the symlink name when canonicalizing, as we want to avoid
dereferencing the final component.
* tests/ln/relative.sh: Add a test case.
* NEWS: Mention the fix.
Resolves http://bugs.gnu.org/14116
2013-04-04 02:46:35 +01:00
Assaf Gordon
20d7bce0f7 shuf: use reservoir-sampling for large or unknown sized inputs
Reservoir sampling optimizes selecting K random lines from large or
unknown-sized input: http://en.wikipedia.org/wiki/Reservoir_sampling
Note this also avoids reading any input when -n0 is specified.

* src/shuf.c (main): Use reservoir-sampling when the number of output
lines is known, and the input size is large or unknown.
(input_size): A new function to get the input size for regular files.
(read_input_reservoir_sampling): New function to read lines from input,
keeping only K lines in memory, replacing lines with decreasing prob.
(write_permuted_output_reservoir): New function to output reservoir.
* tests/misc/shuf-reservoir.sh: An expensive_ test using valgrind to
exercise the reservoir-sampling code.
* tests/local.mk: Reference new test.
* NEWS: Mention the improvement.
2013-03-25 20:07:14 +00:00
Pádraig Brady
4c49dc823f stat,tail: improve support for efivarfs, exofs, f2fs and ubifs
* src/stat.c (human_fstype): Add new file system ID definitions.
* NEWS: Mention the improvement.
Fixes http://bugs.gnu.org/14020
2013-03-24 02:30:20 +00:00
Pádraig Brady
bb9197c406 maint: improve make src/fs-magic-compare
* README-release: fix the `make` command, and mention how
to get the latest results without requring running a
system with the latest kernel.
* src/local.mk (src/fs-latest-magic.h): A new target to
document how/where to place the latest magic header.
(src/fs-kernel-magic): Adjust to include separately
downloaded header if available.
(src/fs-magic): Undefine MANPAGER as it may impact the
ability to pipe the output of man(1).
(fs-magic-compare): Don't echo the commands run as they're
distracting from the output which needs to be examined.
2013-03-24 02:29:57 +00:00
Pádraig Brady
dc4fbb99a9 build: fix issues when building with GMP
* m4/gmp.m4 (cu_GMP): Add an extra check that gmp.h is available
which is required on one Mac OS X 10.5.8 system at least,
where the lib was available but the header wasn't.
Also enable our GMP code on systems where GMP is not in a separate lib.
2013-03-24 02:28:38 +00:00
Pádraig Brady
a24e4a01ca doc: clarify the printable characters output by od
* src/od.c (usage): Mention any printable character is output,
Not just ASCII.
* doc/coreutils.texi (od invocation): Further clarify that only
single byte characters are output (due to the alignment requirement).
Also mention the fact that 3 digit octal sequences are output
for non printable characters without a corresponding C escape.
Reported in http://bugs.gnu.org/13947
2013-03-22 16:18:45 +00:00
Pádraig Brady
3324282665 doc: clarify stat the meaning of --format="%t %T"
* src/stat.c (usage): Mention that the values are only
defined for character and block special files.
* doc/coreutils.texi (stat invocation): Likewise.
Also mention st_rdev.
Reported in http://bugs.gnu.org/13927
2013-03-22 08:58:30 +00:00
Pádraig Brady
2c2d0b3644 doc: mention numfmt as an alternative to sort -h
* doc/coreutils.texi (sort invocation): Mention that numfmt
can achieve the same results with a possibly more accurate sort.
2013-03-06 16:15:23 +00:00
Pádraig Brady
e57d5c2bf8 doc: remove a redundant numfmt heading from texinfo
* doc/coreutils.texi (detailmenu): Remove the redundant numfmt heading.
2013-03-06 16:15:23 +00:00
Pádraig Brady
78cd77c16f maint: ensure proper backslash quoting in texinfo macros
* doc/coreutils.texi (ambiguousGroupNote): Ensure '\' is escaped
appropriately within the macro.  This was verified to generate
a single '\' in both "info" and "pdf" outputs.
2013-03-06 16:15:22 +00:00
Torbjörn Granlund
9fe7c5b6eb build: fix factor build failure on aarch64
* src/longlong.h (__aarch64__): Make add_ssaaaa and sub_ddmmss work.
* NEWS: Mention the build fix.
Reported at https://bugzilla.redhat.com/917735
2013-03-04 18:09:49 +00:00
Assaf Gordon
0a16f9732d tests: don't skip all uniq tests when locale is missing
* tests/misc/uniq.pl: Previously, if LOCALE_FR was not defined, all
tests would be skipped. Modified to skip only the relevant test.
2013-02-28 23:35:45 +00:00
Assaf Gordon
374f569579 uniq: add the --group option
* src/uniq.c (usage): Summarize the new option,
and adjust the --all-repeated option to be more consistent.
(check_file): Merge the --group functionality into
the core loop for the default uniq operation since
it's very similar and can output lines immediately upon reading.
(main): Handle the new --group option and make it
mutually exclusive with other selection options.
* tests/misc/uniq.pl: Add tests.
* NEWS: Mention the new feature.
* doc/coreutils.texi (uniq invocation): Describe --group.
2013-02-28 18:20:30 +00:00
Pádraig Brady
8b6d3c5700 doc: move some info from all --help messages, online
* src/system.h (emit_ancillary_info): Link to the bug report email
addresses and general help URLs online rather than specifying directly.
This give us greater scope to present better info like describing
the difference between bug-coreutils@gnu.org and coreutils@gnu.org etc.
* tests/misc/help-version.sh: Remove the check for bug-coreutils@gnu.org
* tests/local.mk: Remove the no longer needed PACKAGE_BUGREPORT.
2013-02-28 11:03:01 +00:00
Assaf Gordon
8682142ff2 tests: add '--ignore-case' tests for uniq
* tests/misc/uniq.pl: add tests for --ignore-case.
2013-02-28 03:36:35 +00:00
Javier López
4c4f9e1173 dircolors: add a new entry to colorize 'arc' files
* src/dircolors.hin: Add an entry for arc.  Suggested in:
https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/1088131
2013-02-28 03:33:14 +00:00
Assaf Gordon
6eb51ce29e join: Add the -z, --zero-terminated option
* NEWS: Mention join's new option: --zero-terminated (-z).
* src/join.c: Add new option, --zero-terminated (-z), to make
join use the NUL byte as separator/delimiter rather than newline.
(get_line): Use readlinebuffer_delim in place of readlinebuffer.
(main): Handle the new option.
(usage): Describe new option the same way sort does.
* doc/coreutils.texi (join invocation): Describe the new option.
* tests/misc/join.pl: add tests for -z option.
2013-02-28 01:49:56 +00:00
Ondřej Vašík
551128ebd7 dircolors: add new entries to colorized archive formats
* src/dircolors.hin:  Add .cab, .alz, .lzo, .lrz, .t7z, .tzo, .lha
to colorized archives.
Suggested by Ville Skyttä in https://bugzilla.redhat.com/868510
2013-02-28 01:21:50 +00:00
Ondrej Oprala
3a20f68885 install: cleanup properly if the strip program failed for any reason
* src/install.c (strip): Indicate failure with a return code instead
of terminating the program.
(install_file_in_file): Handle strip's return code and unlink the
created file if necessary.
* tests/install/strip-program.sh: Add a test to cover the changes.
* NEWS (Bug fixes): Mention the fix.
Reported by John Reiser in http://bugzilla.redhat.com/632444.
2013-02-22 21:31:32 +01:00
Joachim Schmitz
6229654741 copy: ensure the correct root ID is checked on all platforms
* src/copy.c (copy_reg): Check ROOT_UID rather than 0,
which is significant on HP-NonStop.
2013-02-20 04:05:30 +00:00
Pádraig Brady
31861f663a maint: cleanup up various uses of __attribute__
* src/cfg.mk (sc_prohibit-gl-attributes): Disallow the __attribute()
form without trailing underscores as that is not elided where required.
Also ensure we use gnulib macros rather than defining our own.
* src/system.h: Remove gnulib provided macros.
* src/chown-core.c: Likewise.
* src/chroot.c: Likewise.
* src/copy.c: Likewise.
* src/csplit.c: Likewise.
* src/dd.c: Likewise.
* src/expr.c: Likewise.
* src/extent-scan.c: Likewise.
* src/factor.c: Likewise.
* src/ls.c: Likewise.
* src/od.c: Likewise.
* src/paste.c: Likewise.
* src/ptx.c: Likewise.
* src/sort.c: Likewise.
* src/stat.c: Likewise.
* src/stty.c: Likewise.
* src/system.h: Likewise.
* src/tac.c: Likewise.
* src/test.c: Likewise.
* src/tsort.c: Likewise.
2013-02-20 04:04:25 +00:00
Joachim Schmitz
04b035670d build: fix numfmt build error on compilers without __attribute
* src/numfmt.c (): Use the more standard _GL_ATTRIBUTE_PURE
which is elided where required.
Reported in http://bugs.gnu.org/10305
2013-02-20 04:04:25 +00:00
Pádraig Brady
b469fa044a tests: avoid false failures on file systems with smaller NAME_MAX
* tests/du/long-from-unreadable.sh: This test requires a NAME_MAX
of at least 200, so skip the test otherwise.
* tests/rm/deep-2.sh: Likewise.
Reported by C de-Avillez with ecryptfs where NAME_MAX = 143.
2013-02-20 04:04:00 +00:00
Stefano Lattarini
5bff307bdb maint: choose editor in the commit-msg git hook the same way git does
Git honours the GIT_EDITOR environment variable, the "core.editor" Git
configuration variable, and the EDITOR environment variable (in that
order, and defaulting to "vi" if none of them is set) to decide which
editor should be invoked for the user when he has to or want to edit
his commit message.

However, our commit-msg hook, when invoking an editor on behalf of the
user to allow him to fix a non-policy-complaint commit message, only
honoured the EDITOR environment variable.  To avoid potential annoying
inconsistencies, we should really use the same logic used by Git in the
selection of the editor.  Luckily, we don't have to duplicate this
logic (that would be brittle in the long term), as we can rely on the
"git var" command, designed exactly to be used in situations like this.

* scripts/git-hooks ($editor): Adjust definition.
2013-02-18 01:28:49 +00:00
Stefano Lattarini
bf7b0e0358 maint: don't reset PATH in the commit-msg git hook
I have a custom 'editor' script in ~/bin, and a system-provided
'editor' program in /usr/bin (on Debian, this is a link set up the
"debian alternatives" subsystem).  My '$EDITOR' and '$GIT_EDITOR'
variables are set simply to 'editor' (no absolute path), which I
expect should point to my 'editor' script, since ~/bin precedes
/usr/bin in my PATH definition.  But the 'commit-msg' hook used in
coreutils unconditionally resets its PATH to '/bin:/usr/bin', which
causes it to call the "wrong" editor (the one in /usr/bin, not the
one in ~/bin) when it makes me update a botched commit message.

* scripts/git-hooks: Don't reset $ENV{PATH} to '/bin:/usr/bin',
which was only done to avoid failure when enabling Perl's taint
checking.
2013-02-18 01:27:47 +00:00
Bernhard Voelker
c53c5e2395 maint: prevent trailing period at first line of a commit message
* scripts/git-hooks/commit-msg (bad_first_line): Return an error
message if the first line of a commit message ends with a period.
2013-02-14 23:19:57 +01:00
Pádraig Brady
44715883e1 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2013-02-14 16:23:45 +00:00
Pádraig Brady
1cb8e6392c version 8.21
* NEWS: Record release date.
v8.21
2013-02-14 15:52:18 +00:00
Pádraig Brady
4f03385e9b tests: avoid non portable sed use of \t
* tests/du/threshold.sh: use `cut` rather than
sed to avoid using the non portable \t which
fails on sed on openbsd 5 at least.
Also remove a redundant call to `tr` and avoid
explicit setting of LANG=C which is done globally.
2013-02-14 14:49:31 +00:00
Pádraig Brady
3025644443 build: avoid link failure in devmsg() on older linkers
On linkers that don't remove unused functions,
there will be a reference to a missing dev_debug symbol
in the devmsg() function.  So for now ...

* src/system.h: ... move devmsg() from here ...
* src/numfmt.c: ... to here, and document future cleanup.
* src/factor.c: Likewise.
2013-02-14 03:24:46 +00:00
Assaf Gordon
fff11aca4f numfmt: fix strtol() return code handling
src/numfmt.c (parse_format_string): On some systems, strtol() returns
EINVAL if no conversion was performed.  So only handle ERANGE here,
and handle other format errors directly.
2013-02-13 22:20:10 +00:00
Bernhard Voelker
54cdb0e88b maint: avoid running check-root tests in gnulib
* tests/local.mk (check-root): Restrict to SUBDIRS=. as traversing
into gnulib-tests induces a false failure.
2013-02-11 10:30:04 +00:00
Pádraig Brady
6c1a3b0a29 doc: improve the numfmt man page format
* src/numfmt.c (usage): Keep a single space between the "K = 1000",
so that it's not displayed on a separate line.  Also place ','
between each unit entry to improve readability.
2013-02-11 10:24:26 +00:00
Benno Schulenberg
b5f45b640c doc: standardize helptext of numfmt and slice into single options
* src/numfmt.c (usage): Correct synopsis and make command description
clearer.  Start option descriptions with lowercase letter; use
semicolon instead of period where needed; indent continuation lines;
gettextize single options for ease of translation and maintenance;
sort options alphabetically.
* doc/coreutils.texi (numfmt invocation): Sort numfmt options
alphabetically.  Enforce double-blank-after-period style.

This addresses http://bugs.gnu.org/13681.
Improved-by: Bernhard Voelker
2013-02-10 23:00:54 +01:00
Pádraig Brady
3309e880fb maint: consolidate developer debug messages
Both factor and numfmt recently introduced debug messages
for developers, enabled by --verbose and ---devdebug respectively.
There were a few issues though:
 1. They used different mechanisms to enable these messages.
 2. factor used --verbose which might be needed for something else
 3. They used different methods to output the messages,
    and numfmt used error() which added an unwanted newline
 4. numfmt marked all these messages for translation and factor
    marked a couple.  We really don't need these translated.
So we fix the above issues here while renaming the enabling
option for both commands to ---debug (still undocumented).

* src/factor.c (verbose): Rename to dev_debug and change from int to
bool as it's just a toggle flag.
(long_options): Rename --verbose to ---debug.
* src/system.h (devmsg): A new inline function to output a message
if enabled by a global dev_debug variable in the compilation unit.
* src/numfmt.c: Use devmsg() rather than error().
Also remove the translation tags from these messages.
Also change debug flag to bool from int.
* tests/misc/numfmt.pl: Adjust for the ---devdebug to ---debug change.
* cfg.mk (sc_marked_devdiagnostics): Add a syntax check to ensure
translations are not added to devmsg calls.

Reported by Göran Uddeborg in http://bugs.gnu.org/13665
2013-02-10 20:30:53 +00:00
Pádraig Brady
71ab11eac1 tests: tail-2/inotify-rotate: fix a false failure on NFS
* tests/tail-2/inotify-rotate.sh: Avoid a subshell with bash,
which in turn causes the `kill` to be ineffective to the tail
processes (as the SIGTERM is sent to the subshell which doesn't
propagate the signal on to its children).  On NFS the test
cleanup will then fail as there will be .nfs files maintained
in the directory for the files still opened by the tail processes.
Reported by Bernhard Voelker.
2013-02-10 05:05:38 +00:00
Pádraig Brady
54deb54db9 tests: skip numfmt grouping tests on some systems
* tests/misc/numfmt.pl: When the system locale grouping doesn't
match our expected format for grouping 1234 in the fr_FR locale,
reset the locale to 'C' so as to skip all locale tests.
2013-02-10 05:04:09 +00:00