summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-07-28tests: fix intermittent failure in test/du/inodes.shPádraig Brady
Prompted by the continuous integration build failure at: http://hydra.nixos.org/build/5582213 * test/du/inodes.sh: Due to undefined order in returned directory entries, the expected output might not match, so sort both expected and actual output when returning --all directory entries. Also use a simpler test for ensuring no errors are output.
2013-07-27du: add --inodes optionBernhard Voelker
This new option can be used to find directories with a huge amount of files. The GNU find utility has the printf format "%h" which prints the number of entries in a directory, but this is non-cumulative and doesn't handle hard links. * src/du.c (struct duinfo): Add new member for counting inodes. (duinfo_init): Initialize inodes member with Zero. (duinfo_set): Set inodes counter to 1. (duinfo_add): Sum up the 2 given inodes counters. (opt_inodes): Add new boolean flag to remember if the --inodes option has been specified. (INODES_OPTION): Add new enum value to be used ... (long_options): ... here. (usage): Add description of the new option. (print_size): Pass inodes counter or size to print_only_size, depending on the inodes mode. (process_file): Adapt threshold handling: with --inodes, print or elide the entries according to the struct member inodes. (main): Add a case for accepting the new INODES_OPTION. Print a warning diagnostic when --inodes is used together with the option --apparent-size or -b. Reset the output_block_size to 1 ... and thus ignoring the options -m and -k. * tests/du/inodes.sh: Add a new test. * tests/local.mk (all_tests): Mention it. * doc/coreutils.texi (du invocation): Document the new option. * NEWS: Mention the new option.
2013-07-25mv: replace empty directories in cross file system moveKen Booth
src/copy.c (copy_internal): Use rmdir() rather than unlink() when the source is a directory, so that empty directories are replaced in the destination as per POSIX. * tests/mv/part-rename.sh: Augment with various combinations. * NEWS: Mention the bug fix. Fixes http://bugs.gnu.org/14763
2013-07-22maint: use new gnulib function to free mount entries in duBernhard Voelker
* src/du.c (fill_mount_table): Use free_mount_entry() instead of freeing struct members manually.
2013-07-22maint: make some shell and perl scripts executable in 'tests/'Bernhard Voelker
Some newer test scripts - partially ones from me - are not executable. It does not seem to be a problem, but for consistency and to avoid future problems on unusual platforms or shells change the permissions by adding the executable bit. * cfg.mk (sc_tests_executable): Add new syntax-check rule to ensure that all test scripts are executable. * tests/df/df-output.sh: Change file mode from 644 to 755. * tests/du/threshold.sh: Likewise. * tests/factor/run.sh: Likewise. * tests/init.sh: Likewise. * tests/misc/csplit-suppress-matched.pl: Likewise. * tests/misc/numfmt.pl: Likewise. * tests/tail-2/retry.sh: Likewise.
2013-07-19rm: output number of arguments at the interactive promptRasmus Villemoes
Include the number of arguments which rm received in the "Remove all arguments?" prompt. This is useful in the, presumably, common case where the arguments were not provided by hand, but instead were the result of various shell expansions. A simple, if somewhat contrived, example (assuming rm is aliased to rm -I) could be: rm * .o where the prompt "Remove 120 arguments?" is more likely to make the user catch the problem. * src/rm.c (main): Include correctly pluralized n_files in the output message. Also remove the now redudant "all". * tests/rm/interactive-always.sh: Adjust to the new prompt. * tests/rm/interactive-once.sh: Likewise.
2013-07-19dd: make status=none suppress all diagnosticsPádraig Brady
* src/dd.c (STATUS_NONE): Simplify the enum so that it's more general than just suppressing transfer counts. Then test this in all locations where non fatal diagnostics are output. * tests/dd/misc.sh: Ensure the diagnostic about being unable to skip past the end of input is suppressed. * NEWS: Mention the change in behavior. Fixes http://bugs.gnu.org/14897
2013-07-12head: avoid redundant allocations when reading empty filesPádraig Brady
* src/head.c (elide_tail_lines_file): For seekable empty files, or seekable files where the current offset is after the end of the file, return immediately. Previously the short circuit code could not be reached due to logic error. Spotted by coverity.
2013-07-12maint: avoid a valgrind memory leak warning from pinkyPádraig Brady
Similarly to commit v8.21-84-g8d2da3f in src/uptime.c avoid a "definitely lost" error from valgrind. Note this only happens with pinky when compiled without optimization, in which case certain paths aren't eliminated casuing valgrind to trigger the message. Note also that coverity flags this "resource leak" too. * src/pinky.c (short_pinky): free utmp_buf for developer builds.
2013-07-11df: reduce memory usage when filtering mount entriesAnton Ovchinnikov
Avoid Valgrind reports of "definitely lost" items and while at it, free all discarded mount entries to minimize the amount of memory used. * src/df.c (filter_mount_list): Use the newly exported free_mount_entry() from gnulib to free all mount entries as they're discarded.
2013-07-11build: update gnulib submodule to latestPádraig Brady
2013-07-11build: fix a build warning on 32 bit systems in shuf.cPádraig Brady
Prompted by the continuous integration build failure at: http://hydra.nixos.org/build/5508873 * src/shuf.c (write_random_numbers): Convert to an int type that matches the prinft format spec.
2013-07-11shuf: add --repetition to support repetition in outputAssaf Gordon
main(): Process new option. Replace input_numbers_option_used() with a local variable. Re-organize argument processing. usage(): Describe the new option. (write_random_numbers): A new function to generate a permutation of the specified input range with repetition. (write_random_lines): Likewise for stdin and --echo. (write_permuted_numbers): New function refactored from write_permuted_output(). (write_permuted_lines): Likewise. * tests/misc/shuf.sh: Add tests for --repetitions option. * doc/coreutils.texi: Mention --repetitions, add examples. * TODO: Mention an optimization to avoid needing to read all of the input into memory with --repetitions. * NEWS: Mention new shuf option.
2013-07-11tests: add more tests for shuf option combinationsAssaf Gordon
* test/misc/shuf.sh: Add tests for erroneous conditions like multiple '-o' and '--random-source'.
2013-07-11maint: adjust indentation in df.cPádraig Brady
* src/df.c: Adjust indentation and spacing with has gotten quite out of line in a couple of places.
2013-07-09df: fix mount list processing with unstatable mount dirsPádraig Brady
* src/df.c (filter_mount_list): Initialize devlist->dev_num correctly when unable to stat() a mount point. This will avoid possible invalid deduplication done on the list due to use of uninitialized memory. * tests/df/skip-duplicates.sh: Ensure this code path is exercised. Also refactor the test to be table driven. * NEWS: Mention the bug fix.
2013-07-07maint: avoid a valgrind memory leak warning from uptimeAnton Ovchinnikov
* src/uptime.c (uptime): Free utmp_buf returned from read_utmp, to avoid a "definitely lost" warning from valgrind.
2013-07-06build: update gnulib submodule to latestPaul Eggert
2013-07-05tests: fix "shuf unreadable" test to work when run as rootPádraig Brady
* tests/misc/shuf.sh: Restrict the test to the significant case where we can't in fact read the "unreadable" file.
2013-07-02stat: ensure --context emits an "unrecognized option" diagnosticPádraig Brady
* src/stat.c (long_options): Remove the "context" option as it's no longer referenced since commit v8.5-65-g13f3237
2013-07-02mkdir,mkfifo,mknod: give scontext-related variable a better scopeBernhard Voelker
* src/mkdir.c (main): Move the variable ret and issuing the error message into the body of the scontext-related if-block. * src/mkfifo.c (main): Likewise. * src/mknod.c (main): Likewise.
2013-07-02maint: refactor SMACK interface to a separate modulePádraig Brady
Consolidate all smack routines and checks in a module. We replace and wrap the most commonly used smack routines, which allows removing ifdefs throughout the code. * gl/lib/smack.h: A new header containing the implementation of the wrapped and replacement routines. Note the is_smack_enabled() routine should be optimized out at compile time when compiled on a system without libsmack. * gl/modules/smack: Describe the new module and move the configure time code here from ... * m4/jm-macros.m4: ... here. * bootstrap.conf: Reference the new module. * src/id.c: Use the routines without ifdefs where possible. * src/ls.c: Likewise. * src/mkdir.c: Likewise. * src/mkfifo.c: Likewise. * src/mknod.c: Likewise.
2013-07-02id: don't show SMACK errors unless -Z is specifiedPádraig Brady
* src/id.c (main): Be consistent with the SELinux case, and only show errors in getting the security context when -Z is specified.
2013-07-01mkdir,mkfifo,mknod: with -Z, create SMACK security contextJarkko Sakkinen
Enable creation of SMACK security context with -Z command-line switch if SMACK is enabled. * mkdir.c (main): Set process security context to given SMACK label. * mkfifo.c (main): Likewise. * mknod.c (main): Likewise. * src/local.mk: link mk{dir, fifo, nod} with libsmack. * NEWS: Mention the new feature.
2013-06-27doc: fix details on the interaction of df with device nodesD. Hugh Redelmeier
* man/df.x: Don't say that a dev node is always on the root file system. * doc/coreutils.texi (df invocation): Likewise. Also state that the device node to mounted file system interpretation is only done when passed absolute paths to device nodes.
2013-06-24ls: with -Z, show SMACK security contextJarkko Sakkinen
Enable showing of file SMACK security with '-Z' command-line switch if SMACK is enabled. Showing SMACK context of a file does not strictly require SMACK to be enabled but this required to make choice whether to show SELinux or SMACK security context. * src/ls.c (getfilecon_cache): Retrieve SMACK context if available. (gobble_file): Handle SMACK context similarly to SELinux context. * src/local.mk: Link lsl with libsmack. * NEWS: Mention the new feature. * .mailmap: Merge the Author's 2 email addresses.
2013-06-22stdbuf: make it mandatory to specify a buffering optionPádraig Brady
This is consistent with the documented interface and avoids any ambiguity in a user thinking that stdbuf without options might reset to a "standard" buffering setup. * src/stdbuf.c (set_libstdbuf_options): Indicate with the return value whether any env variables were actually set. (main): Fail unless some env variables were set. * tests/misc/stdbuf.sh: Ensure this constraint is enforced. * NEWS: Mention the small change in behavior.
2013-06-22doc: clarify that truncate --size represents bytes by defaultPádraig Brady
* src/truncate.c (usage): Mention that --size is in bytes which is by far the most common usage. * doc/coreutils.texi (truncate invocation): Likewise. Also cross reference the --io-blocks option. Reported in http://bugs.gnu.org/14686
2013-06-20id: adjust/restrict smack support to newer versions of libsmackJarkko Sakkinen
There was slight change to libsmack such that positive values are reserved for returning length of the label for smack_new_label_from_* functions. * m4/jm-macros.m4: Set HAVE_SMACK when both smack_new_label_from_self() and recently added smack_new_label_from_path() are present. The latter's presence indicates the newer API of the former. * src/id.c (main): Check that smack_new_label_from_self() < 0, and not just non-zero.
2013-06-18tests: use appropriate precision when printing float limitsPádraig Brady
* src/getlimits.c (print_float): Adjust to use the ftoastr module, which uses the appropriate precision so that no info is lost. * cfg.mk (sc_prohibit_continued_string_alpha_in_column_1): Exclude od.c fixes http://bugs.gnu.org/14650
2013-06-13maint: update gitignore entriesPádraig Brady
* .gitignore: Exclude the generated doc/manual directory, and also the src/fs-latest-magic.h file referenced in README-release.
2013-06-12doc: clarify the description of du --separate-dirsPádraig Brady
* src/du.c (usage): Clarify that --separate-dirs doesn't exclude all directories. * doc/coreutils.texi (du invocation): Avoid implying that -S excludes the size of any non directory entries for a directory. Also don't mention st_size as it's dependent on --apparent-size. Reported by C de-Avillez in <https://launchpad.net/bugs/1187044>
2013-06-05doc: mention prior stat changeEric Blake
For a file of size 1234 bytes, commit ca9aa759 had the side effect of changing 'stat -c "%'s" file' from outputting "?s" to the nicer "1,234", depending on locale. This is worth mentioning in the NEWS. Resolves part of http://bugs.gnu.org/14556. * NEWS: Mention 8.7 improvement in stat. * cfg.mk (old_NEWS_hash): Adjust accordingly.
2013-06-05build: update gnulib submodule; also bootstrap to latestBernhard Voelker
Notes tests/init.sh is still in sync with gnulib. * bootstrap: Update to latest. * gnulib: Update avoiding gnulib-test failures.
2013-06-03tests: avoid a race in tail --retry testingPádraig Brady
Prompted by the continuous integration build failure at: http://hydra.nixos.org/build/5221053 * tests/tail-2/retry.sh: Ensure the 'out' file is truncated, as it's used to arbitrate the run order of commands. Relying on the truncation in the background tail command is racy because the truncation can occur after the fork of the background shell and thus wait4lines would not wait for output to occur in 'out', which would mean that the 'missing' file could be populated by the time tail(1) gets to process it.
2013-06-03doc: mention 'UTC' in date --utc helpAndreas Mohr
src/date.c (usage): Make -u apparent in searches for UTC.
2013-06-02od: -wN, N>64K, avoid misbehavior on systems with 32-bit size_tJim Meyering
* src/od.c (PRINT_FIELDS): Declare "i" to be of type uintmax_t, so that the numerator in the expression for "next_pad" does not overflow. (print_named_ascii): Likewise. (print_ascii): Likewise. Bug introduced via commit v6.12-42-g20c0b87. * tests/misc/od.pl: Exercise each of the three affected code paths. * NEWS (Bug fixes): Mention it. Reported by Rich Burridge.
2013-06-01tests: head-c: avoid spurious failure with a 32-bit size_tJim Meyering
* tests/misc/head-c.sh: Don't try to elide 1 exabytes, since on 32-bit systems, that number is not representable as a size_t. This command would fail on 32-bit systems, where SIZE_MAX < 1E: head --bytes=-E < /dev/null Instead of "E", use $SSIZE_MAX. For discussion, see http://bugs.gnu.org/13530
2013-05-27tests: avoid spurious failure when SIZE_MAX is 2^32-1Jim Meyering
* tests/split/line-bytes.sh: Since we've limited virtual memory to 20MB, choose a smaller size, 1GiB (which is <= SIZE_MAX) rather than 1EiB, which is larger than SIZE_MAX on 32-bit systems. I confirmed that this test still fails when the split.c-modifying part of v8.21-58-gfec363c is backed out.
2013-05-26tests: fix an ls test not to fail when user or group name contains SPJim Meyering
* tests/ls/block-size.sh (size_etc): The sed expression through which we filtered the output of "ls -l ..." assumed that the user and group name components of each line would not contain spaces. Avoid the problem by using -og instead of -l, thus not printing either of those fields. Adjust the sed expression accordingly.
2013-05-27tests: numfmt: use the printf program, not the shell builtinStefano Lattarini
* tests/misc/numfmt.pl: Avoid a spurious failure when /bin/sh is dash (as can happen on Debian systems).
2013-05-24stat: tune for large-LDAP casePaul Eggert
* src/stat.c (print_stat): Omit unnecessary calls to setpwent, setgrent. Problem reported by Fridolín Pokorný in <http://bugs.gnu.org/14462>.
2013-05-23split: with --line-bytes only allocate memory as neededPádraig Brady
* src/split.c (line_bytes_split): Rewrite to only buffer when necessary. I.E. only increase the buffer when we've already lines output in a split and we encounter a line larger than the input buffer size, in which case a hold buffer will be increased in increments of the input buffer size. (lines_rr): Use the more abstract xalloc_die() just like we did in line_bytes_split(), rather than explicitly printing the "memory exhausted" message and exiting. * tests/split/line-bytes.sh: Add a new test for this function which previously had no test coverage. * tests/local.mk: Reference the new test. * NEWS: Mention the improvement. Fixes http://bugs.gnu.org/13537
2013-05-18maint: port --enable-gcc-warnings to clangPaul Eggert
* configure.ac: If clang, add -Wno-format-extra-args and -Wno-tautological-constant-out-of-range-compare. * gl/lib/rand-isaac.c (ind): * gl/lib/randread.c (readisaac): * src/ls.c (dev_ino_push, dev_ino_pop): * src/sort.c (buffer_linelim): * src/system.h (is_nul): * src/tail.c (tail_forever_inotify): Rewrite to avoid casts that clang dislikes. It's good to avoid casts anyway. * src/expr.c (integer_overflow): Declare only if it exists. (die): Remove; unused. * src/ls.c (dev_ino_push): New function, replacing ... (DEV_INO_PUSH): ... this removed macro. All uses changed. (decode_switches): Rewrite "str"+i to &str[i].
2013-05-18build: update gnulib submodule to latestPaul Eggert
2013-05-18tests: don't assume expr was built with GMPPaul Eggert
* tests/misc/cut-huge-range.sh (subtract_one): New string. (CUT_MAX): Don't pass a too-large integer to 'expr'.
2013-05-12doc: link to the list of rejected feature requestsPádraig Brady
* README: Update the email address best suited to discussing feature requests, and also link to the list of previously discussed and rejected requests.
2013-05-12build: avoid new syntax-check failureJim Meyering
* po/POTFILES.in: Reflect renaming.
2013-05-11maint: add FIXME commentPaul Eggert
2013-05-11mkdir: don't assume umask equals POSIX default ACL maskPaul Eggert
This fixes Bug#14371, reported by Killer Bassist. * NEWS: Document this. * src/mkdir.c (struct mkdir_options): Remove member ancestor_mode. New member umask_value. All uses changed. * src/mkdir.c (make_ancestor): Fix umask assumption. * src/mkdir.c, src/mkfifo.c, src/mknod.c (main): Leave umask alone. This requires invoking lchmod after creating the file, which introduces a race condition, but this can't be avoided on hosts with "POSIX" default ACLs, and there's no easy way with network file systems to tell what kind of host the directory is on. * tests/local.mk (all_tests): Add tests/mkdir/p-acl.sh. * tests/mkdir/p-acl.sh: New file.