diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-01-20 10:55:18 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-01-20 10:55:18 +0000 |
commit | 70e9163c9c18e995515598085cb824e554eb7ae7 (patch) | |
tree | a42dc8b2a6c031354bf31472de888bfc8a060132 /ChangeLog | |
parent | cbf5993c43f49281173f185863577d86bfac6eae (diff) | |
download | coreutils-tarball-master.tar.gz |
coreutils-8.25HEADcoreutils-8.25master
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 36263 |
1 files changed, 31777 insertions, 4486 deletions
@@ -1,5539 +1,32830 @@ -2007-03-22 Jim Meyering <jim@meyering.net> +2016-01-20 Pádraig Brady <P@draigBrady.com> + + version 8.25 + * NEWS: Record release date. + +2016-01-19 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failure in tail inotify test + * tests/tail-2/wait.sh: Restrict inotify specific test portion + to local file systems and also not with ---disable-inotify specified. + Failure noticed on NFS. + + tests: avoid false failure due to remove() ignoring u-w on NFS + * tests/rm/rm1.sh: Also remove the group write bit which + was required on one NFS setup at least. Note u-w was + enough to deny file creation, g-w was also required to + deny file removal. + * tests/rm/cycle.sh: Likewise. + * tests/mv/perm-1.sh: Likewise. + + tests: avoid false failure in preserve-slink-time.sh on GPFS + * tests/cp/preserve-slink-time.sh: Add a delay between the + ln and the cp so that there is enough difference between + the timestamps so GPFS won't discard the update. + Reported by Assaf Gordon. + + tests: avoid false failure in shred-passes.sh + * tests/misc/shred-passes.sh: Specify an exact amount to shred, + to avoid running out of simulated random data on file systems + with a large st_blksize like GPFS for example. + Reported by Assaf Gordon. + +2016-01-19 Pádraig Brady <P@draigBrady.com> + + tail: disable inotify with only non existent files + tests/tail-2/F-headers.sh and test/tail-2/retry.sh fail on + on remote file systems due to tail going into inotify mode + due to not being able to determine the remoteness of the + non existent files. + + * src/tail.c (any_non_remote_file): A new function used + to disable inotify when there are no open files, as + we can't determine remoteness in that case. + * NEWS: Mention the bug fix. - Version 6.9. - * NEWS: Record release date and new version number. - * configure.ac (AC_INIT): New version number. +2016-01-18 Pádraig Brady <P@draigBrady.com> + + all: don't unconditionally use leaf optimization for NFS + * gnulib: Update to latest where the only change is to + not unconditionally enable leaf optimization for fts on NFS, + as it was seen to abort() with some NFS servers as per: + https://bugzilla.redhat.com/1299169 + This affects utilities that traverse directories like + cp, rm, chmod etc. + * NEWS: Adjust the improvement message to leave only XFS. + +2016-01-18 Assaf Gordon <assafgordon@gmail.com> + + tests: adjust memory limits in head-c.sh + * tests/misc/head-c.sh: Further increase the limit to 8MB over + the base test command. 5.1MB was seen as minimum extra needed + on FreeBSD 9.3 x86_64. + +2016-01-18 Pádraig Brady <P@draigBrady.com> + + tests: adjust delays to avoid false positives + * tests/rm/dangling-symlink.sh: The effective delay was only + 1.5s. So delay before the operation, and increase the iteration + count by 1 to increase the delay to 6.3s. This failure was + noticed once on a FreeBSD 10.2 x86_64 virtual machine. + * tests/dd/stats.sh: Remove quotes on sleep argument + to ensure arguments are accumulated appropriately. + * tests/du/move-dir-while-traversing.sh: sleep before operation, + to increase the effective delay from 1.6s to 3.2s. + * tests/tail-2/flush-initial.sh: Likewise. + * tests/tail-2/pipe-f2.sh: Sleep first so that the effective delay + matches the commented value. + + test: skip test rather than fail with Solaris 10 sed + * tests/rm/r-root.sh: This test was seen to ERROR due to + sed input not having a terminating '\n'. Therefore just skip + with diagnostics upon failure to adjust the error output with sed. + Reported by Assaf Gordon. + +2016-01-16 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure with spaces in absolute $PWD + * tests/install/create-leading.sh: Ensure $PWD is quoted. + Reported by `make dist-check`. + +2016-01-16 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + Mainly for: + + * dce117a sig2str: list all signals on FreeBSD >= 7 + * cff4b38 acl-permissions: port to USE_ACL==0 platforms + +2016-01-16 Pádraig Brady <P@draigBrady.com> + + tests: show mount list on failure for df tests + * init.cfg (dump_mount_list_): A new function to output the + system mount list. + * tests/df/df-symlink.sh: Call dump_mount_list_ upon failure. + * tests/df/over-mount-device.sh: Likewise. + * tests/df/problematic-chars.sh: Likewise. + * tests/df/skip-rootfs.sh: Likewise. + * tests/df/total-verify.sh: Likewise. + * tests/df/unreadable.sh: Likewise. + + tests: avoid false failure with BTRFS subvolumes + * tests/df/df-symlink.sh: Only check the symmetry of + the source <-> target lookup, when the source is only mounted once, + which isn't the case if '.' is a BTRFS subvolume for example. + Reported by Assaf Gordon on a default OpenSUSE 42.1 install. + + mv: consistently warn about multiply specified source dirs + * src/copy.c (copy internal): Remember directories irrespective + of their link count, because on some file systems like BTRFS, + directories always have a link count of 1. + +2016-01-15 Pádraig Brady <P@draigBrady.com> + + tests: remove a non portable localtime test + * tests/misc/date.pl: This test was dependent on perl + unconditionally calling the system localtime() as date(1) does. + However perl has its own configure checks in place to avoid buggy + localtime implementations. Therefore comment out this test + as a FIXME for now. This test was seen to fail on FreeBSD 10 + where localtime() returns nonsense values instead of failing + for arguments >= 2^56. + + tests: adjust memory limits in head-c.sh + * tests/misc/head-c.sh: Further increase the limit, to account + for the fact that head(1) needs at least 1.576MB over the base test + command on FreeBSD 10. 4MB should be enough headroom while + still providing over allocation protection. + Reported by Assaf Gordon. + + tests: simplify invalid signal determination for kill -l + * src/operand2sig.c (operand2sig): Add a detailed comment explaining + why we validate even very large shell exit status values. + * tests/misc/kill.sh: Add a test case for the ksh scheme. + Simplify the INVALID signal number determination which also avoids + a false failure on systems like FreeBSD 10 with incomplete + signal list (caused by inaccurate NSIG). + + tests: support older fallocate number formats + * tests/cp/fiemap-extents.sh: Support RHEL6 fallocate + which doesn't support IEC suffixes like "MiB" on numbers. + Also add some extra framework_failure_ protections. + Reported by Assaf Gordon. + + tests: avoid coredumps when determining memory limits + * init.cfg (get_min_ulimit_v_): Refactor ulimit call to... + (ulimit_supported_): ...here, and add calls to avoid coredumps. + +2016-01-14 Pádraig Brady <P@draigBrady.com> + + sort: with --debug, flag setlocale() failures on OpenBSD + Locale categories are not equivalent on OpenBSD, + and LC_COLLATE only supports "C" for example. + Now LC_ALL is supported to set multiple other categories + on OpenBSD, so setlocale(LC_ALL, "") returns a string + indicating which categories were updated and which ignored. + Therefore... + + * src/sort.c (main): ...Call setlocale(LC_COLLATE, "") + to explicitly check whether a specified LC_ALL or + LC_COLLATE environment variable value is supported + for the LC_COLLATE category. Also use !! to explicitly + convert to bool to support c89 systems where bool is an int, + and thus would get values > 1. + Reported by Assaf Gordon. + +2016-01-13 Pádraig Brady <P@draigBrady.com> + + maint: remove temporary doc/constants.texi-t during build + * doc/local.mk (constants.texi): Remove temp file. + + maint: fix old spelling mistakes in NEWS + * NEWS: s/descendent/descendant/; s/indiscriminite/indiscriminate/. + * cfg.mk (old_NEWS_hash): Update via `make update-NEWS-hash`. + + doc: suggest dd "sync" flag to maximize "nocache" effectiveness + doc/coreutils.texi (dd invocation): Add oflag=sync to the streaming + example. Also reference the "direct" flag. Mention this is only + a request to the system. + * src/dd.c (usage): Mention the "sync" flag along with "nocache". + Also mention that it's only a request to drop the cache. + * THANKS.in: Add reporter Francois Rigault. + + doc: mention the '0#' printf flags with stat %a + * src/stat.c (usage): Mention the '#' and '0' flags are useful with %a. + * doc/coreutils.texi (stat invocation): Likewise. Also give an example + printing unambiguous octal output. + Reported at http://bugs.debian.org/810539 + +2016-01-13 Pádraig Brady <P@draigBrady.com> + + mv: fix data loss with repeated source dir and same destination + commit v8.23-31-g90aa291 failed to consider this case, + where the previous rename has failed, thus causing the + following to remove the specified directory: + + mv dir dir dir + + * src/copy.c (copy_internal): Assume this rename attempt has + succeeded, as a previous failure will already have been handled, + and we don't want to remove the source directory in this case. + * tests/cp/duplicate-sources.sh: Consolidate this test file to... + * tests/mv/dup-source.sh: ...here. Add test cases for same + source and dest. + * tests/local.mk: Remove the consolidated test. + * NEWS: Mention the bug fix. - * tests/mv/hard-3: Correct the preceding change: $3 -> $2. + Reported at https://bugzilla.redhat.com/1297464 + +2016-01-13 Pádraig Brady <P@draigBrady.com> + + tests: include part of wc-files0.sh skipped by mistake + * tests/misc/wc-files0.sh: $fail is always set to 0, + so correct the test to include that part of the test case. + + wc: avoid ambiguous output with '\n' in file names + * src/wc.c (write_counts): Shell escape the file name + if it contains '\n' so only a single line per file is output. + * tests/misc/wc-files0.sh: Add a test case. + * NEWS: Mention the improvement. + +2016-01-13 Assaf Gordon <assafgordon@gmail.com> + + numfmt: add the -z,--zero-terminated option + * doc/coreutils.texi (numfmt invocation): Reference the description. + * src/numfmt.c: Parameterize '\n' references. + * tests/misc/numfmt.pl: Add tests for character and field processing. + * NEWS: Mention the new feature. + +2016-01-13 Pádraig Brady <P@draigBrady.com> + + paste: add the -z,--zero-terminated option + * doc/coreutils.texi (paste invocation): Reference -z description. + * src/paste.c (main): Parameterize the use of '\n'. + * tests/misc/paste.pl: Add test cases. + * NEWS: Mention the new feature. + + comm: support NUL --output-delimiter for consistency + * src/comm.c (main): Track the output delimiter length, + so that it can be adjusted to 1 for the NUL delimiter. + Also rename the global variable from "delimiter" to + "col_sep" so its use is more obvious, and to distinguish + from the recently added "delim" global variable. + * tests/misc/comm.pl: Adjust accordingly. + + comm: add the -z,--zero-terminated option + * doc/coreutils.texi (comm invocation): Reference option description. + * src/comm.c (main): Use readlinebuffer_delim() to support + a parameterized delimiter. + * tests/misc/comm.pl: Add test cases. + * NEWS: Mention the new feature. + + tac: support an empty (NUL) --separator + * doc/coreutils.texi (tac invocation): Mention the + NUL delineation with an empty --separator. + * src/tac.c (main): Allow an empty separator when -r not specified. + * tests/misc/tac.pl: Add test cases. + * NEWS: Mention the new feature. + Fixes http://bugs.gnu.org/8103 + + cut: add the -z,--zero-terminated option + * doc/coreutils.texi (cut invocation): Reference the description. + * src/cut.c: Parameterize '\n' references. + * tests/misc/cut.pl: Add tests for character and field processing. + * NEWS: Mention the new feature. + +2016-01-13 Richard Russon <rich@flatcap.org> + + head,tail: add the -z,--zero-terminated option + * doc/coreutils.texi: Reference the option description. + * src/head.c: Parameterize the delimiter character. + * src/tail.c: Likewise. + * tests/misc/head.pl: Add test case. + * tests/misc/tail.pl: Likewise. + * NEWS: Mention the new feature. + +2016-01-13 Pádraig Brady <P@draigBrady.com> + + join,sort,uniq: with -z, treat '\n' as a field separator + * NEWS: Mention the change in behavior. + * doc/coreutils.texi (newlineFieldSeparator): A new description, + referenced from ({join,sort,uniq} invocation). + * src/system.h (field_sep): A new inline function to determine + if a character is a field separator. + * src/join.c (usage): s/whitespace/blank/ to be more accurate + wrt which characters are field separators. + (xfields): s/isblank/field_sep/. + * src/sort.c (inittables): Likewise. + * src/uniq.c (find_field): Likewise. + * tests/misc/join.pl: Adjust -z test, and add a test/example + for processing the whole record with field processing. + * tests/misc/sort.pl: Add -z test cases, including case with '\n'. + * tests/misc/uniq.pl: Add -z -f test case with \n. + +2016-01-10 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix races wrt output files of background processes + At least the false positive in tail-2/follow-stdin.sh could be seen + on a 4-core i5 system with -j8. Fix similar cases. too. + + * tests/tail-2/follow-stdin.sh: Empty the 'out' file in each iteration. + Otherwise, under heavy system load, 'check_tail_output' would see the + expected output from the previous round before tail would have the + chance to come up in the background. + While at it, move the creation of the 'exp' file out of the loop. + * tests/dd/stats.sh: Empty the output file of the background process + here, too. + * tests/misc/cat-buf.sh: Likewise. + * tests/misc/stdbuf.sh: Likewise. + * tests/tail-2/wait.sh: Likewise. + +2016-01-06 Pádraig Brady <P@draigBrady.com> + + stty: support "flusho" local setting + This is used to discard terminal output on FreeBSD based systems. + + * src/stty.c (mode_info): Add FLUSHO where supported. + (usage): Document for "local" and "combination" settings. + * doc/coreutils.texi (local stty settings): Document, + mentioning that this option is supported but ignored on GNU/Linux. + +2016-01-06 Pádraig Brady <P@draigBrady.com> + + stty: support [-]drain setting to control waiting for pending Tx + Instead of commit v8.24-132-g5171bef which only provides + control to disable this behavior (with -I), provide + the symmetrical "[-]drain" special setting. + + * src/stty.c (main): Parse the [-]drain setting instead of -I, + and treat like a global option. + (usage): Adjust accordingly. + * tests/misc/stty.sh: Test "drain" with and without options. + * NEWS: Mention the new feature. + +2016-01-04 Pádraig Brady <P@draigBrady.com> + + stty: support -I, --immediate to not wait for pending transmission + In some cases an initial drain may block indefinitely as discussed at: + http://lists.gnu.org/archive/html/coreutils/2016-01/msg00007.html + + * src/stty.c (main): Use TCSANOW rather than TCSADRAIN if -I specified. + (usage): Document the new option. + * doc/coreutils.texi (stty invocation): Likewise. + * tests/misc/stty.sh: Ensure -I is supported. + * NEWS: Mention the new feature. + +2016-01-03 Pádraig Brady <P@draigBrady.com> + + doc: avoid unwanted display of the 'coreutils' command info + * doc/coreutils.texi (coreutils): Remove this direntry + so that `info coreutils` will display the table of contents, + rather than the unlikely intended coreutils Multi-call invocation. + This also supports lookups like `info coreutils readlink`, + but note that only works with the standard info viewer, + and not with pinfo for example. + + doc: mention in more places that -D will create --target-directory + * src/install.c (usage): Mention this commonly required functionality + in the -D option description. + * doc/coreutils.texi (install invocation): Likewise for the + --target-directory description. + + install: only attempt to create a target dir once + * src/install.c (main): As an optimization, when calling + install_file_in_dir() for each file, only attempt to create + the target directory once, as this is invariant over the loop. + + install: fix relative copies to absolute directory with -D + * src/install.c (mkancesdirs_safe_wd): Unconditionally + restore the current working directory when possibly called + multiple times (from install_file_in_dir()). + * tests/install/create-leading.sh: Add a test case. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/21497 -2007-03-22 Paul Eggert <eggert@cs.ucla.edu> +2016-01-02 Bernhard Voelker <mail@bernhard-voelker.de> - Improve a test script. - * tests/mv/hard-3: Check for 'ls' failure, too. - Generate more-useful debugging output when 'ls' fails. + maint: fix sc_long_lines to warn about 100+ maximum line length again + Since commit v8.23-60-g414a8cf, the above check failed to find sources + where the length of the longest line is a 3 or more digit number. -2007-03-21 Jim Meyering <jim@meyering.net> + * cfg.mk (sc_long_lines): Remove the '\' escape character before '{' + and '}', because this would mean literal '{' and '}' characters in + an extended regular expression in sed(1). - Fix a test script not to claim an ext2 file system is of type xfs. - * tests/du/slink: When using df --local and df --type=TYPE, - test only the exit code. Don't bother with stdout. - Prompted by a report by Thomas Schwinge of an inaccurate diagnostic. +2016-01-01 Pádraig Brady <P@draigBrady.com> - * gl/lib/savewd.c: Remove this file, since the savewd_save change - is now in gnulib. The other wasn't useful. + maint: avoid a sc_long_lines failure in recent commit + * src/dd.c (alloc_ibuf): Shorten line length. -2007-03-20 Jim Meyering <jim@meyering.net> +2016-01-01 Pádraig Brady <P@draigBrady.com> - * gl/lib/acl.c: Remove this file, now that gnulib's version subsumes it. + maint: update all copyright year number ranges + Run "make update-copyright" and then... - Skip part of this test when "." is not a local file system. - * tests/install/basic-1: Otherwise, it would fail on some NFS - file systems. - * tests/mkdir/p-3: Likewise. + * gnulib: Update to latest with copyright year adjusted. + * tests/init.sh: Sync with gnulib to pick up copyright year. + * bootstrap: Likewise. + * tests/sample-test: Adjust to use the single most recent year. -2007-03-19 Paul Eggert <eggert@cs.ucla.edu> +2015-12-31 Paul Eggert <eggert@cs.ucla.edu> - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): - Add $(LIB_ACL_TRIVIAL). + build: update gnulib submodule to latest -2007-03-18 Jim Meyering <jim@meyering.net> + dd: append spaces to shorter status=progress line + Problem noted by Pádraig Brady in: http://bugs.gnu.org/22277#8 + Also, make the output a bit more precise while we're at it. + * NEWS: Document this. + * src/dd.c (previous_time): Remove, replacing with ... + (next_time): New var. All uses changed. + This avoids some rounding errors, and should be a bit faster. + (newline_pending): Remove, replacing with ... + (progress_len): New var. All uses changed. + This lets us keep track of how many trailing spaces to append. + (print_xfer_stats): Get the time first thing, so that it's + closer to being correct. Count the bytes output, and append + trailing spaces if needed. Add remarks to translators about + translation lengths. + + dd: summarize in --human-readable format too + Problem reported by Linda Walsh in: http://bugs.gnu.org/17505 + * NEWS: Document this. + * doc/coreutils.texi (dd invocation): Use a simpler script. + Adjust output example to match new behavior. + * src/dd.c (human_size): Remove. + All uses changed to use human_readable and ... + (human_opts): ... this new constant. + (abbreviation_lacks_prefix): New function. + (print_xfer_stats): Use it. Output both --si and --human-readable + summaries, but only if they have prefixes. + * tests/dd/reblock.sh, tests/dd/stats.sh: Test new behavior. + +2015-12-23 Pádraig Brady <P@draigBrady.com> + + build: update to latest gnulib + Mainly for these changes: + - freadptr: fix to work with ungetc on all uClibc configs + - fts: enable leaf optimization for XFS + - fts: ensure leaf optimization used for NFS + - strftime-tests: avoid false failure on OS X + - intprops-tests: avoid warnings (causing CI failures) + + * NEWS: Update with items from above that are + significant from the previous coreutils release. + +2015-12-22 Pádraig Brady <P@draigBrady.com> + + doc: describe test operator precedence and associativity + * doc/coreutils.texi (Connectives for test): Add notes + on precedence and associativity. Also mention the + portability caveats with these operators. + * cfg.mk: Avoid sc_prohibit_test_minus_ao for coreutils.texi. + Fixes http://bugs.gnu.org/22216 + +2015-12-17 Pádraig Brady <P@draigBrady.com> + + tests: avoid root test false failure without libxattr + * tests/cp/cp-mv-enotsup-xattr.sh: Exclude xattr copy verification + when libxattr is not available. + +2015-12-17 Bernhard Voelker <mail@bernhard-voelker.de> + + build: rely on umask for setting permissions in tarball + Commit v8.24-116-g896006b changed the file permissions for the tarball + using ug+rw. Better to let the umask decide whether the file should + be group-writeable or not. + + * Makefile.am (dist-hook): Change chmod call from 'ug+rw' to '+rw'. + +2015-12-17 Pádraig Brady <P@draigBrady.com> + + tests: avoid intermittent ulimit -v failures + * init.cfg (get_min_ulimit_v_): Increase the determined + virtual memory limit for the command by a page size + to avoid alignment issues causing false failures for + subsequent runs. + * tests/misc/cut-huge-range.sh: Be defensive and match + the cut invocations under test, more closely with the + form used to determine the VM memory limit. + + This was noticed on i686 linux at: + http://hydra.nixos.org/build/28990456 + +2015-12-17 Pádraig Brady <P@draigBrady.com> + + build: ensure all files are writable in the tarball + * Makefile.am (dist-hook): Ensure all files are writable + so that extracted tarballs are easy to remove, without + getting prompts about removing read-only files. + Reported by Benno Schulenberg. + +2015-12-15 Pádraig Brady <P@draigBrady.com> + + maint: ensure emit_mandatory_arg_note() used if needed + * cfg.mk (sc_emit_mandatory_arg_note): Add new syntax check. + + maint: include 'env' commands in returns_ syntax check + * cfg.mk (sc_prohibit_and_fail_1): Remove 'env' from + the exclusion list. + * tests/misc/env.sh: Adjust accordingly. + * tests/misc/help-version.sh: Likewise. + + tests: improve kill tests + * tests/misc/kill.sh: + - verify kill -[lt] support multiple parameters. + - verify kill -[lt] fail with (some) invalid parameters. + - Use returns_1 ... || fail=1, rather than ... && fail=1. + +2015-12-14 Pádraig Brady <P@draigBrady.com> + + sort: fix --debug marking for -b -k1.x + We were erroneously skipping blanks in the marked comparison + _after_ the key start offset was applied. + * src/sort.c (debug_keys): Don't skip starting blanks + if already handled by begfield(). + * tests/misc/sort-debug-keys.sh: Add a test case. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/22155 + + stat: report file system type for "overlayfs" + * src/stat.c (human_fstype): Add "overlayfs", and tag it as "remote" + to ensure that tail continues to use the more conservative polling mode. + * README-release: Remove a stale comment about updating fremote() + in tail.c. Also give a link to *_SUPER_MAGIC definitions + not in the standard linux/magic.h location. + * NEWS: Mention that this file system is recognized. + +2015-12-14 Pádraig Brady <P@draigBrady.com> + + kill: add undocumented -L for compatibility + procps, bash >= 4.4, and util-linux >= 2.23 + all have the -L option to output a table. + + * src/kill.c (main): Have -L synonymous with -t. + Luckily there is no signal that begins with 'L'. + * tests/misc/kill.sh: Update the test. + +2015-12-14 Pádraig Brady <P@draigBrady.com> + + tests: add tests for the kill command + * tests/misc/kill.sh: Add first tests for kill. + * tests/local.mk: Reference the new test. + + maint: fix incorrect spellings etc + * NEWS: Use a standard version specification. + * doc/coreutils.texi: Fix incorrect grammar. + * src/df.c: Update a stale comment. + * src/copy.c: Fix incorrect spellings. + * src/factor.c: Likewise. + * src/ls.c: Likewise. + * src/pr.c: Likewise. + * src/relpath.c: Likewise. + * src/shred.c: Likewise. + * src/sort.c: Likewise. + * src/split.c: Likewise. + * src/stdbuf.c: Likewise. + * tests/misc/seq-precision.sh: Likewise. - Fix a generic NFS-related test failure. - * tests/mkdir/p-3: When setting up an unreadable "." in an - inaccessible parent, make the parent inaccessible *after* making "." - unreadable. Otherwise, running "chmod a-r ." in an already- - inaccessible parent would fail on NFS with "Stale NFS file handle". +2015-12-14 Pádraig Brady <P@draigBrady.com> - Fix a bug in how pr -m -s works. - * NEWS: Describe how the fix affects pr. - * src/pr.c (init_parameters): The --merge (-m) option does - not imply --expand-tabs (-e), so don't set "untabify_input". - Reported by Wis Macomson. - * tests/misc/pr: New file. Test for the above fix. - * tests/misc/Makefile.am (TESTS): Add pr. - * THANKS: Update. + maint: remove form feed characters from sources + These are no longer useful and can impact viewing + patches in some mail programs for example. -2007-03-17 Jim Meyering <jim@meyering.net> + * src/cksum.c: Remove ^L characters. + * src/comm.c: Likewise. + * src/kill.c Likewise. + * src/ln.c Likewise. + * src/nl.c Likewise. + * src/pr.c Likewise. + * src/ptx.c Likewise. + * src/split.c Likewise. + * src/tr.c Likewise. + * src/tsort.c Likewise. + * src/uniq.c Likewise. + * src/wc.c Likewise. + * cfg.mk (sc_prohibit-form-feed): A new syntax check. - Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted. - * bootstrap: Put ""s around use of $build_aux, in case - someone uses a name containing shell meta-characters. - Reported by Alfred M. Szmidt. - * tests/misc/tty-eof: Add shuf to the list of tested commands. +2015-12-07 Eric Blake <eblake@redhat.com> - Avoid test failure on NFS-mounted Solaris ZFS file system. - * tests/du/basic: Skip a test if "." is on a non-local file system. + sort: promote '--debug' + * src/sort.c (usage): Mention --debug in KEYDEF paragraph. + +2015-12-07 Paul Eggert <eggert@cs.ucla.edu> - Avoid an obscure build failure, prefer waitpid over wait. - * src/install.c (strip): Use waitpid, not wait. It's equivalent, - but feels less obsolescent. + doc: promote 'sort --debug' + * README, doc/coreutils.texi (Introduction, sort invocation): + Suggest 'sort --debug' more prominently. - * bootstrap: Don't use \> in grep regexp. For HP-UX. +2015-12-04 Pádraig Brady <P@draigBrady.com> -2007-03-16 Jim Meyering <jim@meyering.net> + doc: improve the description of sort --random-sort + * src/sort.c (usage): Avoid mentioning the implementation, + rather focusing on the result of the operation. + +2015-12-03 Paul Eggert <eggert@cs.ucla.edu> - Begin adding support for Solaris ZFS (4 entries per trivial ACL) - * gl/lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro. - (file_has_acl, copy_acl): Use it, rather than enumerating errno values. - (is_trivial_acl): New function. Incomplete, for now. - (file_has_acl, copy_acl): Use the new function, rather than - counting the number of entries in an ACL. + build: port to Studio C on Solaris 12 + Reported by Rich Burridge in: http://bugs.gnu.org/22087 + * configure.ac (HAVE_UT_HOST, HAVE_C_LINE, stdbuf): + Pacify picky compilers that complain about unreachable statements. + +2015-12-01 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: clarify behaviour of mv for existing target directories + * doc/coreutils.texi (mv invocation): Add a sentence to clarify that + mv(1) will only replace empty directories in the target, and fail with + a diagnostic otherwise. Discussed at: + http://lists.gnu.org/archive/html/coreutils/2015-12/msg00000.html + +2015-11-30 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: avoid confusing K argument in the man pages of head and tail + The character 'K' representing numeric user input can be confusing, + especially in the context where it can be suffixed by the multipliers + K, M, G, etc. + Use NUM instead. + + * doc/coreutils.texi (head invocation): Replace @var{k} by @var{num}. + Also change @var{count} in the paragraph about the obsolete option + syntax. + (tail invocation): Likewise. Furthermore, adjust the option order to + alphabetical sorting. + * src/head.c (usage): s/K/NUM/ in as placeholder in the -c and -n + options. Furthermore, print the actual DEFAULT_NUMBER instead of the + hard-coded 10. + * src/tail.c (usage): s/K/NUM/ in as placeholder in the -c and -n + options. Add "[+]" to clarify that NUM may optionally be preceded by + this sign. Remove the redundant explanation of the optional '+' prefix + for NUM, as that is now clear from the option description above. + + Suggested by Dan Jacobson in http://bugs.gnu.org/22042 + +2015-11-28 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: reference each other in the man pages of head and tail + * man/head.x: Add "SEE ALSO" section referencing tail(1). + * man/tail.x: Add "SEE ALSO" section referencing head(1). + + Suggested by Dan Jacobson in http://bugs.gnu.org/22041 + +2015-11-28 Pádraig Brady <P@draigBrady.com> + + build: support reproducible builds with consistent man pages + Use a consistent date in the generated man pages + even if SOURCE_DATE_EPOCH is not set. + + * Makefile.am: Generate .timestamp in the tarball. + * man/local.mk: Pass .timestamp if available to help2man. + * man/dummy-man: Don't bother with the year in the stub. + + Reported in http://bugs.debian.org/806321 + +2015-11-27 Pádraig Brady <P@draigBrady.com> + + doc: update to latest help2man + Sync with version 1.47.3 which provides these significant changes: + + - support for reproducible builds by using $SOURCE_DATE_EPOCH. + - Adjust spacing of italic text at roman/italic boundaries. + +2015-11-25 Pádraig Brady <P@draigBrady.com> + + tests: for compare_(), use cmp -s where available + * tests/init.sh (compare_): Only fall back to cmp without + the POSIX defined -s option, where this is not available. + + build: avoid makeinfo unless required + * doc/local.mk (constants.texi): Avoid calling makeinfo unless + the constants derived from tail and shred have changed. + This avoids a dependence on makeinfo from patched sources, + and avoids an expensive makeinfo call for developers. - * bootstrap: Update from gnulib. + doc: clarify descriptions for tr --squeeze-repeats + * doc/coreutils.texi (uniq invocation): Fix the description of + problematic input to say "blank lines" rather than "two or more + blank lines". + (tr invocation): Clarify that -s only works with SET1 when + not translating (when SET2 not specified). Also explicitly + state in examples where blank lines are deleted. + Also add "deleting" to the menu item. + * src/tr.c (usage): Improve the -s summary to say it always + operates on the last specified SET. + + doc: provide an example for prefixing all tail output lines + * doc/coreutils.texi (tail invocation): Provide an example using awk + to convert tail ==> file <== headers to file: prefixes on each line. + Suggested by Stephen Shirley. - * .x-sc_prohibit_atoi_atof: Add TODO here, too. +2015-11-24 Dmitry Monakhov <dmonakhov@openvz.org> + + copy: fix copying of extents beyond the apparent file size + fallocate can allocate extents beyond EOF via FALLOC_FL_KEEP_SIZE. + Where there is a gap (hole) between the extents, and EOF is within + that gap, the final hole wasn't reproduced, resulting in silent + data corruption in the copied file (size too small). + + * src/copy.c (extent_copy): Ensure we don't process extents + beyond the apparent file size, since processing and allocating + those is not currently supported. + * tests/cp/fiemap-extents.sh: Renamed from tests/cp/fiemap-empty.sh + and re-enable parts checking the extents at and beyond EOF. + * tests/local.mk: Reference the renamed test. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/21790 + +2015-11-23 Pádraig Brady <P@draigBrady.com> + + md5sum,sha*sum: ensure --ignore-missing fails when no file verified + * src/md5sum.c (digest_check): Update a matched_checksums bool upon + matched checksum, and fail (loudly unless --status is specified) + if there were no matches. Also change properly_formatted_lines + to a bool while at it since we don't need to track the plurality. + * tests/misc/md5sum.pl: Add a test case. + Suggested by Jim Meyering. + +2015-11-23 Luther Thompson <lutheroto@gmail.com> + + md5sum,sha*sum: add --ignore-missing for checking a subset of files + * doc/coreutils.texi (md5sum invocation): Document the new option. + * src/md5sum.c (digest_file): Return an empty digest to indicate + a missing file. + (digest_check): Don't fail or output status given an empty checksum. + (usage): Document the new option. + (main): Process and validate the new option. + * tests/misc/md5sum.pl: Add new test cases. + * NEWS: Mention the new feature. + Fixes http://bugs.gnu.org/15604 + +2015-11-23 Pádraig Brady <P@draigBrady.com> + + maint: allow 'sha*sum:' tag in commit summaries + To support "md5sum,sha*sum:" + Suggested by Bernhard Voelker. + +2015-11-21 Pádraig Brady <P@draigBrady.com> + + doc: give a tee example for combining process substitution outputs + This can be useful if you want to further process data + from process substitutions. For example: + datagen | tee >(md5sum --tag) > >(sha256sum --tag) | sort + + * doc/coreutils.texi (tee invocation): Mention that -p is + useful with pipes that may not consume all data. + Add an example, similar to the one above. + * THANKS.in: Add Jirka Hladky. + +2015-11-21 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failure on older NFS implementations + * tests/ls/stat-failed.sh: Skip the test if 'd' is returned as the type, + and document where this was seen. Also flag failure to write small + temp files during the test as an error rather than a failure. + Fixes http://bugs.gnu.org/21130 + +2015-11-19 Pádraig Brady <P@draigBrady.com> + + build: fix VPATH build with --disable-dependency-tracking + * src/local.mk: Run `mkdir -p src` in all our explicit rules, + as in a VPATH build the src/ dir is only created at configure time + as a side effect of dependency tracking generation. + +2015-11-17 Jim Meyering <meyering@fb.com> + + scripts: update versions of gettext and libtool + + maint: remove unmaintained file, c99-to-c89.diff + * src/c99-to-c89.diff: Remove file. + * src/local.mk (EXTRA_DIST): Remove it from this list. + * README (Pre-C99 build failure): Update section. + +2015-11-12 Assaf Gordon <assafgordon@gmail.com> + + csplit: check and report fwrite errors with errno + discussed in: + http://lists.gnu.org/archive/html/coreutils/2015-10/msg00091.html + + * src/csplit.c: (save_line_to_file): check fwrite failures, report + and exit immediately instead of deferring to 'close_output'. + * tests/misc/csplit-io-err.sh: test fwrite failure using LD_PRELOAD. + * tests/local.mk: add new test. + +2015-11-11 Pádraig Brady <P@draigBrady.com> + + stat: improve support for new Linux pseudo FS and ACFS + * src/stat.c (human_fstype): Add new file system ID definitions. + * NEWS: Mention the improvement. + +2015-11-10 Pádraig Brady <P@draigBrady.com> + + tests: ensure programs are built before testing + programs may not be built due to missing system dependencies, + or any program can be excluded at configure time with + --enable-no-install-program. So ensure we're not testing the + system versions in these cases. + + * init.cfg (print_ver_): Call require_built_ first. + * tests/misc/tty-eof.pl: Skip programs not built. + * tests/Coreutils.pm (run_tests): Likewise. + * tests/misc/ls-misc.pl: Use 'env test' rather than abs path. + * tests/misc/test-diag.pl: Likewise. + * tests/local.mk: Adjust include order for dependencies. + * tests/misc/arch.sh: Remove redundant calls to require_built_. + * tests/misc/chroot-fail.sh: Likewise. + * tests/misc/groups-dash.sh: Likewise. + * tests/misc/groups-version.sh: Likewise. + * tests/misc/stdbuf.sh: Likewise. + * tests/cp/acl.sh: Remove problematic call to print_ver_ [gs]etfacl. + * tests/mv/acl.sh: Likewise. + * cfg.mk (sc_env_test_dependencies): A new syntax check to enforce + specifying dependencies with print_ver_ for programs + specified through the env command. + * du/bigtime.sh: Add new print_ver_ dependencies. + * du/max-depth.sh: Likewise. + * dd/ascii.sh: Likewise. + * tests/ls/capability.sh: Likewise. + * tests/ls/root-rel-symlink-color.sh: Likewise. + * tests/misc/chroot-fail.sh: Likewise. + * tests/misc/readlink-fp-loop.sh: Likewise. + * tests/misc/sort-debug-keys.sh: Likewise. + * tests/readlink/can-e.sh: Likewise. + * tests/readlink/can-f.sh: Likewise. + * tests/readlink/can-m.sh: Likewise. + * tests/tail-2/inotify-race.sh: Likewise. + * tests/tail-2/inotify-race2.sh: Likewise. + * tests/touch/no-create-missing.sh: Likewise. + * tests/touch/no-dereference.sh: Likewise. + * tests/misc/printenv.sh: Tweak to avoid syntax check trigger. + * tests/misc/help-version.sh: Likewise. + * tests/misc/yes.sh: Likewise. + * tests/misc/printf-quote.sh: Use previously unused $prog. + * configure.ac (EXTRA_MANS): Add $gl_no_install_prog to the list + so that check-x-vs-1 syntax check is satisfied. + +2015-11-10 Pádraig Brady <P@draigBrady.com> + + maint: use standard spacing in shebang line in tests + It's better to be consistent even though spacing is insignificant: + http://www.in-ulm.de/~mascheck/various/shebang/#blankrequired + +2015-11-10 Pádraig Brady <P@draigBrady.com> + + tests: cleanup trapping of signal names + A side effect of this cleanup is we no longer + depend on our own kill command being built. + + * init.cfg (require_trap_signame_): A new function to verify + that the shell supports specifying traps by signal name. + (require_kill_group_): A new function to ensure the shell + supports sending a signal to a group. + * tests/du/move-dir-while-traversing.sh: Ensure trap supports + signal names. + * tests/misc/stty-invalid.sh: Likewise. + * tests/misc/stty-pairs.sh: Likewise. + * tests/misc/stty-row-col.sh: Likewise. + * tests/misc/stty.sh: Likewise. + * tests/misc/sort-compress.sh: Likewise. Also simplify trap call. + * tests/install/trap.sh: Likewise. + * tests/misc/timeout.sh: Likewise. + * tests/dd/stats.sh: Likewise. Also use default kill command. + * tests/misc/timeout-group.sh: Likewise. + +2015-11-06 Pádraig Brady <P@draigBrady.com> + + tests: fix dirent d_type support verification + * init.cfg (require_dirent_d_type_): Don't use df -x + to exclude XFS, since this depends on a correct mtab + which is brittle and often not correct within chroots. + * tests/d_type-check: Check also the d_type of files, + which excludes XFS appropriately. Specify all argument + and return types to avoid truncated pointers being passed, + which skipped the test due to crashes on x86_64 at least. + Simplify the C library lookup by reusing the interpreter's. + + chroot issue reported at https://bugzilla.redhat.com/1263341 + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + maint: add a syntax check to avoid unstyled quoting + * src/paste.c (main): Use our styled wrapper for quotearg_colon(). + * cfg.mk (sc_prohibit-quotearg): A new syntax check to avoid + future uses of unstyled quotearg to one of the internal slots, + and thus destined for diagnostic output. + + paste: avoid confusing backslash quoting in diagnostic + * src/paste.c (main): Setting the quoting style to "escape" + went against the intent of the comment about presenting + doubled backslashes to the user. Instead use "c-maybe" + which is the only mode which avoids doubled backslashes, + and provides protection against arbitrary control characters. + * tests/misc/paste.pl: Adjust accordingly. + + ls: default to --quoting=shell-escape for output to terminal + * src/ls.c (decode_switches): Set "shell-escape" if isatty(). + * doc/coreutils.texi (ls invocation): Update the defaults description. + * NEWS: Mention the change in behavior. It should not have + backwards compat issues, but mentioning here just in case. + + printf: support the %q format to quote for shell + * src/printf.c (usage): Mention the new format. + (print_formatted): Handle the quoting by calling + out to the quotearg module with "shell-escape" mode. + * doc/coreutils.texi (printf invocation): Document %q. + * tests/misc/printf-quote.sh: New test. + * tests/local.mk: Reference new test. + * NEWS: Mention the new feature. + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + ls: avoid redundant processing when already escaping + This is mainly noticeable when the multi-byte code + within ls.c is triggered by multi-byte quotes. + + $ seq 200000 | xargs touch + $ time ls-old -U --quoting=locale --hide-control-chars >/dev/null + real 0m0.483s + $ time ls-new -U --quoting=locale --hide-control-chars >/dev/null + real 0m0.430s + + * src/ls.c (quote_name): Avoid rescanning the output looking for + unprintable chars when we know the quoting mode already escapes them. + * tests/misc/ls-misc.pl: Add tests for all quoting modes, with and + without -q, to verify this assumption. + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + ls: document and test new shell-escape quoting + * doc/coreutils.texi (ls invocation): Describe the new + 'shell-escape' and 'shell-escape-always' quoting options. + * src/ls.c (usage): Mention the new quoting options. + * tests/misc/ls-misc.pl: Add a test for 'shell-escape' + + test: use consistent quoting + * src/test.c (test_syntax_error): Reuse verror() rather than + open coding the error output format. + (term): Don't hardcode '' quoting. + (main): Likewise. + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + all: avoid quoting file names when possible + Quote file names using the "shell-escape" or "shell-escape-always" + methods, which quote as appropriate for most shells, + and better support copy and paste of presented names. + The "always" variant is used when the file name is + embedded in an error message with surrounding spaces. + + * cfg.mk (sc_error_shell_quotes): A new syntax check rule + to suggest quotef() where appropriate. + (sc_error_shell_always_quotes): Likewise for quoteaf(). + * src/system.h (quotef): A new define to apply shell quoting + when needed. I.E. when shell character or ':' is present. + (quoteaf): Likewise, but always quote. + * src/*.c: Use quotef() and quoteaf() rather than quote() + where appropriate. + * tests/: Adjust accordingly. + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + Includes support for "shell-escape" from quotearg + + md5sum: ensure a single status line per file + * src/md5sum.c: Use the same file name escaping method used + when generating and checking checksums. I.E. ensure a single line + per file by starting the line with '\' for any file name containing '\n' + and replacing those with "\\n". + * NEWS: Move the item from changes in behavior to improvements, + since this is no longer a backwards incompat change when + processing stdout status messages. + * tests/misc/md5sum.pl: Remove quotes from expected status output. + * tests/misc/sha1sum.pl: Likewise. + +2015-11-04 Pádraig Brady <P@draigBrady.com> + + all: replace most uses of quotearg_colon() with quote() + Related to commit v8.24-61-g6796698 this provides + more consistent quoting, as quotearg_colon() defaults + to "literal" quoting by default, while quote() + provides appropriate quoting for diagnostics by default. + + * gl/modules/randread: Depend on quote module rather than quotearg. + * gl/lib/randread.c: Used quote() not quotearg_colon(). + * src/: Likewise. + * src/shred.c: Likewise. Also avoid unnecessary quoting + introducing overhead when wiping names. + * cfg.mk: Relax the matching expression to allow + "qname" variables as used in shred.c to satisfy the check. + * tests/: Adjust accordingly. + +2015-11-02 Pádraig Brady <P@draigBrady.com> + + doc: fix texinfo for short options taking a parameter + * doc/coreutils.texi: (tail invocation): Add missing -s, + along with the existing --sleep-interval description. + (csplit invocation): s/--suffix/--suffix-format/. + (head invocation): Use same variable (COUNT) for -n and --head-count. + (seq invocation): Add opindex items for all options. + (ptx invocation): Likewise. + Fix typo s/--flac-truncation/--flag-truncation/. + (touch invocation): State explicitly that -d takes a parameter, + which also indicates that an '=' is not to be used + for the short option syntax. + (ls invocation): Likewise for the -w option. + Fixes http://bugs.gnu.org/21809 + +2015-10-29 Pádraig Brady <P@draigBrady.com> + + maint: allow 'all:' tag in commit summaries + To tag changes that are user visible + and affect all (or many) commands. + +2015-10-28 Pádraig Brady <P@draigBrady.com> + + doc: clarify iso-8601 formats used by ls and du + * doc/coreutils.texi (du invocation): Remove 'like' from + mentions of ISO-8601 as the components are individually conformant. + (ls invocation): Likewise, except for --time-style=iso for recent + files, where the MM-DD component is not a valid ISO-8601 timestamp. + +2015-10-27 Pádraig Brady <P@draigBrady.com> + + date: use extended format timezone for --iso-8601 + * src/date.c (main): Use %:z rather than %z with --iso-8601 + as the standard states to consistently use extended format. + Note either format can be parsed by date. + * tests/misc/date.pl: Adjust accordingly. + * doc/coreutils.texi (du invocation): Clarify that "iso" + time styles are only similar to ISO-8601. + (ls invocation): Likewise. + (date invocation): Adjust the comment stating + that only --rfc-3339 output can be parsed by date(1). + * NEWS: Mention the change in behavior. + Reported at http://bugs.debian.org/799479 + + doc: reference related commands from users(1) and groups(1) + * man/users.x: See also getent, who + * man/groups.x: See also getent + Addresses http://bugs.gnu.org/21735 + + copy,dd: simplify and optimize NUL bytes detection + * src/factor.c: Move LIKELY() definition to... + * src/system.h: ...here. + (is_nul): Reimplement with a version that doesn't + require a sentinel after the buffer, and which calls + down to (the system optimized) memcmp. + Performance analyzed at http://rusty.ozlabs.org/?p=560 + * src/dd.c (alloc_obuf): Simplify the is_nul() call by + not needing to write the sentinel. + * src/copy.c (sparse_copy): Likewise. + (copy_reg): Simplify the buffer allocation by avoiding + consideration of the sentinel in the buffer size calculation. + +2015-10-27 Pádraig Brady <P@draigBrady.com> + + all: quote string arguments in error messages + These strings are often file names or other user specified + parameters, which can give confusing errors in + the presence of unexpected characters for example. + + * cfg.mk (sc_error_quotes): A new syntax check rule. + * src/*.c: Wrap error() string arguments with quote(). + * tests/: Adjust accordingly. + * NEWS: Mention the improvement. + +2015-10-27 Pádraig Brady <P@draigBrady.com> + + md5sum: quote all printed file names + This is especially significant when using --check + with files generated on a windows system, where the \r + characters produce corrupted and confusing error messages. + This also ensures status messages are output on a single line. + + * src/md5sum.c: Use quote() for printed file names. + * tests/misc/md5sum.pl: Adjust accordingly. + * NEWS: Mention the change in behavior. + Fixes http://bugs.gnu.org/21757 + +2015-10-21 Pádraig Brady <P@draigBrady.com> + + ls: fix off by one error when determining max display columns + * src/ls.c (main): Account for the first column not including + a separator when calculating max_idx. + * tests/ls/w-option.sh: Add a test case. + * NEWS: Mention the bug fix. -2007-03-16 Paul Eggert <eggert@cs.ucla.edu> + ls: allow -w0 to mean no limit on line length + * src/ls.c (print_with_separator): Renamed from print_with_commas, + and parameterized to accept the separator to print. + Also fix an edge case where '\n' not printed when + the POS variable overflows SIZE_MAX. + (print_current_files): Degenerate -x and -C to using the + cheaper print_with_separator() in the -w0 case. + * doc/coreutils.texi (ls invocation): Document the new feature. + * tests/ls/w-option.sh: A new test. + * tests/local.mk: Reference the new test. + * NEWS: Mention the improvement. + Fixes http://bugs.gnu.org/21325 + +2015-10-19 Pádraig Brady <P@draigBrady.com> + + ls: detect terminal color support using glob patterns + * src/ls.c (know_term_type): Corresponding to commit v8.24-48-gc249a5a, + use fnmatch to inspect the dircolors database. Noticed due to + failing tests/ls/color-{dtype-dir,term}.sh tests. + + tests: adjust recent change to csplit VM limit + * tests/misc/csplit-heap.sh: A little more memory is required + for the full run case. Noticed with --enable-single-binary. + +2015-10-19 Pádraig Brady <P@draigBrady.com> + + maint: fixes to support improved sc_tight_scope + The gnulib provided sc_tight_scope target was ineffective, + as it was checking against an invalid blank regular expression, + and thus ignoring any extern function issues. This is now + fixed up in gnulib, and so we need to fix our scoping issues + before the next gnulib update. + + * cfg.mk: Setup and document the tight_scope config variables + appropriately. + * src/selinux.h: Since declared in *_SOURCES, use the two line + form for the extern function declarations. + * src/set-fields.h: Add the extern declarations, and since declared + in noinst_HEADERS use the single line form. + +2015-10-19 Pádraig Brady <P@draigBrady.com> + + tests: avoid failure when auto selecting factor tests + * tests/factor/run.sh: If this template is found through + `grep -El "print_ver_.* factor"` for example, then just skip it. + +2015-10-19 Pádraig Brady <P@draigBrady.com> + + factor: remove unreachable SQUFOF code at compile time + It was a little confusing as to whether the SQUFOF algorithm was + enabled, and in fact there were no options available to enable it. + Therefore clarify the 3 configurable behaviors for the code to + 3 defines at the top of the program, and only include the SQUFOF + code if enabled at compile time. + + $ size src/factor-before + text data bss + 93997 1412 2504 + $ size src/factor-after + text data bss + 87885 1404 2504 + + * src/factor.c: Only include the SQUFOF factor code + when enabled via the USE_SQUFOF define. + * doc/coreutils.texi (factor invocation): Update note about + factor limits, as we can factor 128 bit numbers without GMP. + +2015-10-19 Pádraig Brady <P@draigBrady.com> + + doc: reference shuf(1) from the sort (-R) man page + * man/sort.x: Cross reference with shuf(1). + * src/sort.c (usage): Mention shuf(1) with -R option. + Suggested in http://bugs.debian.org/641166 + +2015-10-18 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: avoid duplicate test runs + * tests/local.mk (all_tests): Remove the tests 'tests/id/setgid.sh' and + 'tests/mkdir/smack-root.sh' because they are mentioned in the + 'all_root_tests' list; these tests are skipped anyway during a non-root + run because flagged with 'require_root_'. + +2015-10-16 Paul Eggert <eggert@cs.ucla.edu> + + doc: remove obsolete performance comment + sha512sum can be faster than sha256sum. + E.g., ‘dd if=/dev/zero bs=1024k count=1024 | time sha256sum’ + reports 8.16 user CPU seconds on my host, whereas sha512sum + consumes 5.45 seconds (Fedora x86-64 on an AMD Phenom II X4 910e). + Although sha512sum is still considerably slower on x86, a good + chunk of uses are on 64-bit hosts and anyway there’s little point + to scaring people away from sha512sum nowadays. + * doc/coreutils.texi (sha2 utilities): Remove obsolete comment. + +2015-10-16 Jim Meyering <meyering@fb.com> + + maint: avoid uniq.c warning from bleeding-edge gcc's -Wstrict-overflow + * src/uniq.c (main): Make the type of "nfiles" unsigned, + to avoid a brand new warning from a gcc I built from today's + sources (gcc version 6.0.0 20151015 (experimental) (GCC)): + src/uniq.c:523:14: error: assuming signed overflow does not occur \ + when simplifying conditional to constant [-Werror=strict-overflow] + if (nfiles == 2) + ^ + +2015-10-16 Pádraig Brady <P@draigBrady.com> + + dircolors: support globbing of TERM entries + * src/dircolors.c (dc_parse_stream): Support globbing of + TERM entries, to allow entries like "TERM *256color*" for example. + * src/dircolors.hin: Reduce the internal list with globbing. + * tests/misc/dircolors.pl: New test cases. + * NEWS: Mention the improvement. + +2015-10-15 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failure in rm/r-root.sh with gdb warnings + * tests/rm/r-root.sh: Skip the test if there are gdb warnings + that will impact further stderr checks. For example some + buggy gdb versions may report "Got object file from memory + but can't read symbols: File truncated". Also fix an incorrect + stderr check from the previous change. + Reported by Bernhard Voelker. + + tests: avoid false failure in rm/r-root.sh under load + * tests/rm/r-root.sh: Use gdb rather than timeout(1) as the + last resort protection against unlinkat() calls. The timeout + of 2s was susceptible to false positives under load, and + gdb is stronger protection in any case. We remove the + "expensive" tag on this test also since it should be robust. + Reported by Jim Meyering. + + tests: avoid false failure in a tail test under load + * tests/tail-2/follow-stdin.sh: Use the standard tail + testing framework to avoid the race seen under very high load, + and also test the non inotify case. + Reported by Jim Meyering + +2015-10-14 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failures with default ACLs + To reproduce: + setfacl -dm group::rx . + setfacl -dm other::rx . + make check + + * init.cfg (require_no_default_acl_): A new function to skip + when default ACLs are detected, or if the getfacl utility is + not available then skip if any non LSM ACLs detected. + * tests/cp/existing-perm-race.sh: Call require_no_default_acl_. + * tests/mkdir/parents.sh: Likewise. + * tests/mkdir/perm.sh: Likewise. + +2015-10-12 Pádraig Brady <P@draigBrady.com> + + tail: no longer warn about unrecognized file systems + * src/tail.c (fremote): No longer prompt the user to email + with the unrecognized file system constant, since we have + process in place to sync periodically with the latest Linux + constants, and the fall back polling mode is still fully functional. + +2015-10-10 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failure when restorecon is ineffective + * tests/cp/cp-a-selinux.sh: Ensure we skip the portion of the test + depending on restorecon to be effective. I.E. also skip when restorecon + warns, as it doesn't exit with error status when matchpathcon fails to + find a match for a file. This is the case in /tmp on Fedora for + example, in which case the new destination that cp creates will have the + default security context of the process, rather than the explicit + context we set on the source file. + Details at: http://bugzilla.redhat.com/1247641 + + tests: make a long running test responsive to Ctrl-C + * tests/misc/sort-compress-hang.sh: Use --foreground with the + timeout(1) command (noting the caveats), to run the sort command + in the foreground program group, and thus be responsive to Ctrl-C. + This very_expensive_ test takes over a minute on a i3-2310M, + with RAM backed /tmp. + +2015-10-08 Pádraig Brady <P@draigBrady.com> + + tests: adjust recent changes to virtual memory limits + * tests/dd/no-allocate.sh: Account for timeout(1) when + determining the required mem, as timeout has additional shared libs. + This avoids the need for the hardcoded 4M addition to the limit. + * tests/misc/head-c.sh: Increase the base limit, to account for + the fact that head(1) will allocate some additional mem in this case. + * tests/misc/cut-huge-range.sh: Remove mention of specific limits. + * tests/misc/printf-surprise.sh: Likewise. + Reported by Dmitry V. Levin + +2015-10-06 Pádraig Brady <P@draigBrady.com> + + csplit: remove erroneous mention of -m in --help + * src/csplit.c (usage): -m is not accepted, only --suppress-matched. + * tests/misc/csplit-suppress-matched.pl: Spelling fix. + + Reported by Ondrej Oprala + +2015-10-04 Paul Eggert <eggert@cs.ucla.edu> + + tee: simplify argv handling + * src/tee.c (tee_files): Last arg is now char ** instead of char + const **, as that is a bit simpler. All callers changed. Modify + files[-1], not files[nfiles], as that is a bit faster and simpler. + Latter problem pointed out by Rainer Deyke in: + http://bugs.gnu.org/21611 + +2015-10-03 Paul Eggert <eggert@cs.ucla.edu> + + build: update gnulib submodule to latest + + build: Pacify GCC 5 on 32-bit hosts + This pacifies GCC 5 in a better way, without disabling diagnostics. + * src/df.c (main): Tell compiler that optind is positive. + * src/shred.c (known): New function. + (dopass): Go back to off_t for file sizes. + Avoid integer overflow if we run off the end of the file. + Tell compiler that a write cannot write more bytes than requested. + +2015-10-03 Pádraig Brady <P@draigBrady.com> + + tail: handle kernel dentry unlink race + Avoid the intermittent loss of "... has become inaccessible" messages. + That would cause tests/tail-2/assert.sh to fail sometimes, + mainly on uniprocessor systems. + + * src/tail.c (tail_forever_inotify): Also monitor IN_DELETE + events on the directory, to avoid a dentry unlink()..open() race, + where the open() on the deleted file was seen to succeed after an, + unlink() and a subsequent IN_ATTRIB, was sent to tail. Note an + IN_ATTRIB is sent on the monitored file to indicate the change in + number of links, and we can't just use a decrease in the number of + links to determine the file being unlinked, due to the possibility + of the file having multiple links. + + Reported by Assaf Gordon and Ludovic Courtès. + Fixes http://bugs.gnu.org/21460 + +2015-10-03 Pádraig Brady <P@draigBrady.com> + + build: avoid -Wstrict-overflow warnings with GCC 5.1 on 32 bit + * src/shred.c (dopass): With -O2, GCC 5.1 gives "assuming signed + overflow does not occur when simplifying conditional to constant" + warnings, in regard to the signed (off_t) variables. Therefore + use unsigned (uintmax_t) instead, and a separate boolean to cater + for the special meaning of the negative part of the integer range. + Noticed at http://hydra.nixos.org/build/24983447 + + build: update gnulib submodule to latest + Includes a change to xalloc.h to avoid -Wstrict-overflow warnings + with GCC 5.1 on 32 bit with optimization enabled. A subsequent + commit will fix similar issues in shred. + +2015-10-02 Dario Giovannetti <dariogiova@gmail.com> + + dircolors: add xterm-termite entry + * src/dircolors.hin: Add "xterm-termite" as this VTE based terminal + emulator is quite different from xterm, despite the name. + For example "Termite supports italic text and it won't work if TERM + is set to xterm. Even the backspace key won't work properly anymore + for applications relying on terminfo". + Reported also by Lukas Sabota and Sven-Hendrik Haase. + +2015-09-23 Dave Chiluk <chiluk@canonical.com> + + df: prioritize mounts nearer the device root + In the presence of bind mounts of a device, the 4th "mount root" field + from /proc/self/mountinfo is now considered, so as to prefer mount + points closer to the root of the device. Note on older systems with + an /etc/mtab file, the source device was listed as the originating + directory, and so this was not an issue. + Details at http://pad.lv/1432871 + + * src/df.c (filter_mount_list): When deduplicating mount entries, + only prefer sources nearer or at the root of the device, when the + target is nearer the root of the device. + * NEWS: Mention the change in behavior. + +2015-09-23 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + This includes a change to propagate the 4th "mount root" + field from /proc/self/mountinfo from the mountlist module, + which is needed in a subsequent commit in df. + + * gl/lib/regcomp.c.diff: Regenerate against latest gnulib. + * gl/lib/regex_internal.c.diff: Likewise. + * gl/lib/regex_internal.h.diff: Likewise. + * cfg.mk: Exclude diffs from trailing whitespace check, + which is generally correct, and now needed. + +2015-09-22 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: use adaptive approach for `ulimit -v` based tests + When configured with either 'symlinks' or 'shebangs' as value for + the --enable-single-binary option, tests based on `ulimit -v` are + skipped. The reason is that the multicall 'coreutils' binary requires + much more memory due to shared libraries being loaded, and the size of + the 'date' binary (~290KiB) compared to the multicall binary (~5MiB), + of course. Finally, in the case of 'shebangs', the starting shell + requires more memory, too + + Instead of using hard-coded values for the memory limit, use an + adaptive approach: first determine the amount of memory for a similar, + yet more trivial invocation of the command, and then do the real test + run using that limit (plus some buffer in some cases). + + * init.cfg (require_ulimit_v_): Remove function. + (get_min_ulimit_v_): Add function to determine the minimum memory limit + required for a given command in an adaptive way. + * cfg.mk (sc_prohibit_test_ulimit_without_require_): Change the name + of the above function in the syntax-check rule. + * tests/cp/link-heap.sh: Use the above function to determine the + minimum memory required to run a command simpler than in the real test + run. Use that limit plus a buffer there. While at it, change to list + of commands in the subshell to fail also if the beginning `ulimit -v` + fails. + * tests/dd/no-allocate.sh: Likewise. + * tests/misc/csplit-heap.sh: Likewise. + * tests/misc/cut-huge-range.sh: Likewise. + * tests/misc/head-c.sh: Likewise. + * tests/misc/printf-surprise.sh: Likewise. + * tests/split/line-bytes.sh: Likewise. + * tests/rm/many-dir-entries-vs-OOM.sh: Likewise - doing it separately + for each program under test. + +2015-09-22 Pádraig Brady <P@draigBrady.com> + + maint: avoid deprecation warning with <selinux/flask.h> + * src/runcon.c (main): As per the compile time warning from + libselinux-2.4-3, lookup the class with string_to_security_class(), + rather than using defines from flask.h. + + sort,numfmt: with --debug, diagnose failure to set locale + * src/sort.c (main): With --debug, warn upon setlocale() failure, + which can happen due to incorrectly specified environment variables, + or due to memory exhaustion (simulated with ulimit -v), etc. + * tests/misc/sort-debug-warn.sh: Add a test case. + See also http://savannah.gnu.org/bugs/11004 + +2015-09-18 Bernhard Voelker <mail@bernhard-voelker.de> + + du: avoid to stat all mount points if possible + du calls stat for each mount point at startup. This would block or + even make du fail if stat for an unrelated mount point hangs. + The result is not needed in the normal case anyway and therefore + should be avoided. Issue introduced in commit v8.19-2-gcf7e1b5. + + * src/du.c (fill_mount_table): Move function up as it's not used ... + (mount_point_in_fts_cycle): ... here, i.e., the DI_MNT set is + initialized and filled only iff FTS has detected a directory cycle. + (main): Remove the initialization and filling of the DI_MNT set here, + and free the DI_MNT set only if it was used. + +2015-09-17 Paul Eggert <eggert@cs.ucla.edu> + + shred: don’t document -NUMBER option + The -NUMBER option was removed from ‘shred’ in 1999, but the + manual wasn’t updated to match. Problem reported by Nick Rose in: + http://bugs.gnu.org/21502 + * doc/coreutils.texi (shred invocation): + Remove documentation for -NUMBER option. + +2015-09-12 Assaf Gordon <assafgordon@gmail.com> + + numfmt: use new set-fields module to parse --field + numfmt --field=LIST can accept the same options as cut. + + * bootstrap.conf: remove xlist, linked-list + * src/local.mk: link numfmt with set-fields + * src/numfmt.c: use set-fields.c instead of custom field parsing code. + (include_field): adapt to new code. + * tests/misc/numfmt.pl: add new tests, adapt current tests to new + error message wording from set-fields.c + +2015-09-12 Assaf Gordon <assafgordon@gmail.com> + + cut: refactor into set-fields module + Extract the functionality of parsing --field=LIST into a separate + module, to be used by other programs. + + * src/cut.c: move field parsing code from here ... + * src/set-fields.{c,h}: ... to here. + (set_fields): generalize by supporting multiple parsing/reporting + options. + (struct range_pair): rename to field_range_pair. + * src/local.mk: link cut with set-field. + * po/POTFILES.in: add set-field.c + * tests/misc/cut.pl: update wording of error messages + +2015-09-08 Pádraig Brady <P@draigBrady.com> + + maint: fix heap manipulations in previous commit + * src/sort.c (main): Ensure we don't free() and invalid + pointer when reading implicit stdin. Also avoid + "definitely lost" valgrind warnings in the --files0-from case. + +2015-09-04 Pádraig Brady <P@draigBrady.com> + + maint: avoid "definitely lost" valgrind warnings + Since commit v8.23-19-g8defcee, main() will return, + rather than call exit(), this inducing "definitely lost" + warnings in valgrind's leak checker. That precludes using + the following to flag memory leaks: + + valgrind --leak-check=full --error-exitcode=1 \ + --errors-for-leak-kinds=definite + + * src/pr.c (main): In dev builds, explicitly free memory allocated. + * src/sort.c (main): Likewise. + * src/tail.c (main): Likewise. + * src/tsort.c (tsort): Likewise. + +2015-09-03 Pádraig Brady <P@draigBrady.com> + + tests: test numfmt stdin behavior + * tests/misc/tty-eof.pl: Add numfmt to the list of programs + that accept input on stdin. + + ls,ptx: restrict quotearg use to file name output + * src/ls.c (getenv_quoting_style, decode_switches, parse_ls_color): + Use quote() rather than quotearg(), as the latter defaults to + outputting the input unquoted. + * src/ptx.c (main): Likewise. + + base64: no longer support hex or oct --wrap params + * src/base64.c (main): Support decimal numbers with leading zeros, + by disabling the auto detection of octal and hex. It's not + envisaged that base conversion is needed for --wrap parameters, + and in the edge case it is, $((0x0)) shell constructs can be used. + * tests/misc/base64.pl: Adjust accordingly. + * NEWS: Mention the change in behavior. + + base64: use stricter validation on wrap column + * src/base64.c (main): Use the higher level xnumtoumax() + rather than xstrtoumax(), which is simpler and improves + validation of input. Also pass the _empty_ rather than NULL + string as the suffixes parameter so that invalid trailing + characters are not allowed. For example -w08 is now + flagged as an error, rather than being interpreted as 0. + A subsequent commit will further improve verification + of numbers with leading zeros by dropping backwards compatibility + wrt auto parsing oct and hex numbers. + * tests/misc/base64.pl: Add tests for invalid wrap values. + +2015-09-03 Pádraig Brady <P@draigBrady.com> + + base32: A new program similar to base64 + Suggested in https://bugzilla.redhat.com/1250113 + + * AUTHORS: Add base32. + * THANKS.in: Add suggester. + * README: Reference the new program. + * NEWS: Mention the new program. + * src/.gitignore: Ignore the new binary. + * bootstrap.conf: Reference the gnulib base32 module. + * build-aux/gen-lists-of-programs.sh: Add base32. + * man/base32.x: A new template. + * man/.gitignore: Ignore the new man page. + * man/local.mk: Reference the new man page. + * doc/coreutils.texi (base32 invocation): Document the new command. + * src/local.mk: Adjust to build base32 based on base64.c. + * src/base64.c: Parameterize to use the correct headers, + functions and buffer sizes, depending on which binary + is being built. + * tests/misc/base64.pl: Adjust to test both base32 and base64. + * tests/misc/tty-eof.pl: Add base32 as a program that + accepts input on stdin without any options specified. + * scripts/git-hooks/commit-msg: Add base32 to the template. + +2015-09-01 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + This includes a tweak to support building + the gnulib base32 module with -Wsuggest-attribute=const + +2015-08-31 Pádraig Brady <P@draigBrady.com> + + doc: clarify in --help/man where short options take no param + * src/shred.c (usage): For -u, separate the decscription + of the short and long option, to clarify that the short option + takes no parameter. + * src/split.c (usage): Likewise for -d. + * src/tee.c (usage): Likewise for -p. + * src/uniq.c (usage): Likewise for -D. + + Suggested by Stephane Chazelas + +2015-08-30 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: avoid FP of ls/stat-free-color.sh with newer glibc + Since glibc-2.22, specifically commit [0], the opendir() implementation + implicitly makes an additional stat call thus leading to a FP. + Seen on openSUSE:Tumbleweed since snapshot 20150821. + + [0] + https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=46f894d8c60a + + * tests/ls/stat-free-color.sh: Change the test to verify that ls(1) + needs the same number of stat-like calls for a single, empty directory + argument as for one with a few directory entries (sub-directory, + regular file, symlink, etc.). + +2015-08-27 Pádraig Brady <P@draigBrady.com> + + doc: clarify where ambiguous if short options take no param + * doc/coreutils.texi (split invocation): Clarify that -d takes no param. + (uniq invocation): Likewise for -D. + (shred invocation): Likewise for -u. + (tee invocation): Likewise for -p. + +2015-08-23 Paul Eggert <eggert@cs.ucla.edu> + + ls: allow -w18446744073709551616 + Problem reported by Beco in: http://bugs.gnu.org/21325 + * src/ls.c (set_line_length): New function. + (decode_switches): Use it to decode COLUMNS and -w. + +2015-08-18 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: add syntax check to ensure larger man/*.x files have a Copyright + * cfg.mk (sc_man_check_x_copyright): Add rule to ensure that non-trivial + .x files in the 'man/' subdirectory, i.e., files exceeding a line count + of 20 or a byte count of 1000, contain a proper Copyright notice. + +2015-07-24 Paul Eggert <eggert@cs.ucla.edu> + + build: fprintftime/nstrftime API changes + * bootstrap.conf (gnulib_modules): Add time_rz, + since the main source code now uses timezone_t. + * src/date.c (batch_convert, main, show_date): + * src/ls.c (align_nstrftime, long_time_expected_width) + (print_long_format): + * src/stat.c (human_time): + Use timezone_t rather than boolean to specify which time zone + is wanted. + * src/ls.c (localtz): New static var. + (main): Initialize it. + + build: update gnulib submodule to latest + +2015-07-22 Pádraig Brady <P@draigBrady.com> + + doc: discourage use of uname -i and -p options + * src/uname.c (usage): State that the non POSIX -i and -p options + are non-portable. + * doc/coreutils.texi (uname invocation): Mention the discrepancies + even across GNU/Linux distros, and that the results should + be used as informational only, rather than impacting any + logic decisions. + Fixes http://bugs.gnu.org/13001 + +2015-07-15 Pádraig Brady <P@draigBrady.com> + + doc: improve man page for realpath -m + * src/realpath.c (usage): Mention 'directory' in the --help + output, so that ENOTDIR errors may be more easily investigated, + by inspecting the man page. + Reported at http://pad.lv/1474519 + +2015-07-15 Peter Bray <pdb_ml@yahoo.com.au> + + tests: avoid test warning with perl >= 5.22 + * doc/local.mk (sc-lower-case-var): Escape a literal + left curly bracket, needed with perl >= 5.22 + Fixes http://bugs.gnu.org/21060 + + sync: fix build with separate $(LIB_FDATASYNC) + * src/local.mk: Link with $(LIB_FDATASYNC) needed + on some Solaris 10 systems for example. + Fixes http://bugs.gnu.org/21059 + +2015-07-09 Pádraig Brady <P@draigBrady.com> + + dircolors: add tmux entries + * src/dircolors.hin: tmux entries were added to ncurses in: + http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff;\ + f=misc/terminfo.src;h=ce9bdc3b;hp=7e576ef1;hb=be512fa0;hpb=ee1bcda2 + +2015-07-07 Pádraig Brady <P@draigBrady.com> + + shred: fix pattern selection for certain iteration counts + This was detected in about 25% of runs with gcc -fsanitize=address + + ERROR: AddressSanitizer: global-buffer-overflow on address ... + READ of size 4 at 0x000000416628 thread T0 + #0 0x40479f in genpattern src/shred.c:782 + #1 0x4050d9 in do_wipefd src/shred.c:921 + #2 0x406203 in wipefile src/shred.c:1175 + #3 0x406b84 in main src/shred.c:1316 + #4 0x7f3454a1ef9f in __libc_start_main (/lib64/libc.so.6+0x1ff9f) + #5 0x4025d8 (/tmp/coreutils-8.23/src/shred+0x4025d8) + 0x000000416628 is located 56 bytes to the left of + global variable '*.LC49' from 'src/shred.c' (0x416660) of size 17 + 0x000000416628 is located 12 bytes to the right of + global variable 'patterns' from 'src/shred.c' (0x416540) of size 220 + SUMMARY: AddressSanitizer: global-buffer-overflow src/shred.c:782 + + * src/shred.c (gen_patterns): Restrict pattern selection + to the K available, which regressed due to v5.92-1462-g65533e1. + * tests/misc/shred-passes.sh: Add a deterministic test case. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/20998 + +2015-07-03 Pádraig Brady <P@draigBrady.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.24 + * NEWS: Record release date. + + maint: fix distclean-check failure due to THANKS + * Makefile.am: Remove our dependence on src/sort which + induces awkward dependencies for `make dist` since + THANKS will be rebuilt once src/sort is newer. + Instead we remove the problematic -f option to sort + which actually doesn't change the order given + our current input. + + maint: avoid false syntax-check failure in distcheck + * cfk.mk (sc_tests_executable): Restrict the check to git files, + so we don't flag any gnulib files added to test/ during + `make distcheck`. + + tests: update gnulib submodule and tests/init.sh to latest + * gnulib: Update to latest, with fixes to tests edge cases. + * tests/init.sh: Update from gnulib. + +2015-07-03 Pádraig Brady <P@draigBrady.com> + + tests: avoid side effects of $SHELL environment variable + Since non interactive shells don't generally set $SHELL, + its value is propagated through the tests and may cause issues; + for example if $SHELL implicitly adjusts $PATH when run. + Instead we set $SHELL to that determined by the posix-shell module, + and use that consistently for all test sub scripts, + including those created thorugh the `split --filter` command. + + * tests/local.mk: Explicitly set $SHELL to $(PREFERABLY_POSIX_SHELL) + which defaults to $CONFIG_SHELL and thus usually /bin/sh. + * tests/envvar-check: Remove bash environment variables with + side effects, in case /bin/bash was selected for $SHELL. + * tests/misc/help-version.sh: Remove redundant initialization of $SHELL. + * tests/install/strip-program.sh: Use $SHELL for sub script. + * tests/misc/sort-compress-hang.sh: Likewise. + * tests/misc/sort-compress-proc.sh: Likewise. + * tests/misc/sort-compress.sh: Likewise. + * tests/misc/timeout-group.sh: Likewise. + * tests/rm/fail-eperm.xpl: Remove redundant elision of bash env vars. + * tests/misc/pwd-long.sh: Likewise. + +2015-07-02 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failures on OpenBSD 5.7 + * tests/du/threshold.sh: Homogenize getopt error messages. + * tests/misc/numfmt.pl: Likewise. + * tests/mv/i-3.sh: Skip on *BSD not just FreeBSD. + +2015-07-02 Pádraig Brady <P@draigBrady.com> + + wc: fix reading of /proc files on aarch64 + tests/misc/wc-proc.sh fails when the page size is 64K + + * src/wc.c (wc): The lseek adjustment should be based on st_blksize, + rather than on the internal buffer size. This is significant on + aarch64 where st_blksize in /proc is the 64K (the page size) and + thus larger than the internal buffer. + * src/split.c (main): Even though the similar processing is done + on the internal buffer size, that's based on st_blksize and + so fine in this regard. Add an assert to enforce this. + Avoid this path for the undocumented ---io-blksize option. + +2015-07-01 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + Mainly with build fixes for FreeBSD and OS X. + + numfmt: increase precision on 32 bit FreeBSD + * m4/jm-macros.m4 (HAVE_FPSETPREC): Define if needed. + * src/numfmt.c (main): Call fpsetprec() if needed. + Fixes large-15 and large-16 test failures on 32 bit FreeBSD. + + tests: avoid false failure on FreeBSD systems + * tests/misc/stty.sh: FreeBSD returns ENOTTY for + the TIOCEXT ioctl, so just avoid this option for now. + +2015-07-01 Pádraig Brady <P@draigBrady.com> + + factor: ensure atomic output through pipes + The new tests/misc/factor-parallel.sh test was + seen to fail on FreeBSD (derived) systems, which was + due to split(1) --filter reading partial lines + through pipes, as factor(1) was writing a little + over PIPE_BUF each time. + + * src/factor.c (lbuf): A new structure to internally buffer lines. + (lbuf_alloc): A new function to allocate enough at program start. + (lbuf_putint): A new function to buffer a uintmax_t. + (lbuf_flush): A new function to write directly to standard output. + (lbuf_putc): A new function to buffer a character and if enough + lines are buffered, then output complete lines <= PIPE_BUF, + and continue to buffer the rest. + (main): Call the internal buffer allocator, and register + the final flush from the internal buffer at program exit. + +2015-07-01 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure on slower systems + * tests/dd/stats.sh: Wait 20s for dd to write 250MB through a fifo, + rather than 10s for 500MB. The failure was seen often on + a lightly loaded SPARC-Enterprise-T5220 running Solaris 10. + +2015-06-29 Jim Meyering <meyering@fb.com> + + maint: stdbuf.c: avoid the OS X putenv function + * bootstrap.conf (gnulib_modules): Add setenv, to make this + module dependency explicit; setenv is also used by split. + * src/stdbuf.c (set_LD_PRELOAD) [__APPLE__]: Use the OS X setenv + function, rather than putenv, per that documentation: + https://developer.apple.com/\ + library/mac/documentation/Darwin/Reference/ManPages/man3/putenv.3.html + +2015-06-29 Jim Meyering <meyering@fb.com> + + build: numfmt.c: avoid a shadowing warning + * src/numfmt.c (parse_field_arg): Rename parameter s/optarg/arg/, + to avoid shadowing getopt's global variable. + Otherwise, building on OS X, with --enable-gcc-warnings, I saw this: + + In file included from src/numfmt.c:19:0: + src/numfmt.c: In function 'parse_field_arg': + ./lib/config.h:3109:25: error: declaration of 'rpl_optarg' shadows\ + a global declaration [-Werror=shadow] + +2015-06-29 Assaf Gordon <assafgordon@gmail.com> + + numfmt: fix printf argument order + * src/numfmt.c (double_to_human): Fix the argument order + passed to snprintf, which happened to work on amd64 with + its separate va_arg storage area for floats¹, + but would fail tests for example on i686. + + ¹ https://blog.nelhage.com/2010/10/amd64-and-va_arg/ + +2015-06-28 Pádraig Brady <P@draigBrady.com> + + maint: clarify df's use of device IDs from /proc/self/mountinfo + * src/df.c (filter_mount_list): Clarify why we still stat even + though devices IDs may already be available. Note using + /proc/self/mountinfo is still an advantage to get filtered items + with accurate device patchs in chroots and with bind mounts. + I.E. on older setups with static /etc/mtab, df will now + bypass that to get the more accuracte and dynamic info. + +2015-06-26 Pádraig Brady <P@draigBrady.com> + + chroot: quote argument in error diagnostic + * src/chroot.c (main): Quote the passed argument, + to avoid confusing error messages. + +2015-06-25 Pádraig Brady <P@draigBrady.com> + + maint: clarify integer operations in recent commit + * src/factor.c (print_uintmaxes): Comment that the + value of n_out doesn't matter on error, and add an + explicit cast to avoid any future warnings. + Suggested by Jim Meyering RE commit v8.23-229-g4d2d6c5 + + tests: avoid false failure when running as root + * tests/misc/sync.sh: Ensure dir is unreadable before + including the permission check. + +2015-06-25 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failures with LD_PRELOAD=libasan.so.2 + The LD_PRELOAD checks by -fsanitize=address are overly strict: + https://groups.google.com/forum/#!topic/address-sanitizer/jEvOJgkDqQk + A workaround is to first export LD_PRELOAD=libasan.so.2 + The tests below are adjusted so that workaround is not discarded. + + * tests/cp/no-ctx.sh: Append to $LD_PRELOAD. + * tests/df/no-mtab-status.sh: Likewise. + * tests/df/skip-duplicates.sh: Likewise. + * tests/ls/getxattr-speedup.sh: Likewise. + * tests/rm/r-root.sh: Likewise. + * tests/cp/nfs-removal-race.sh: Likewise. Also check that + LD_PRELOAD is effective to aid future maintainability + and avoid false failure if libasan.so.2 is not preloaded. + +2015-06-25 Pádraig Brady <P@draigBrady.com> + + build: update to latest gnulib + Mainly for -fsanitize=address and -fsanitize=undefined fixes + + build: allow build to complete with -fsanitize=address + * src/make-prime-list.c (main): When building with + the above option, avoid this build stopping error: + "LeakSanitizer: detected memory leaks" + +2015-06-24 Pádraig Brady <P@draigBrady.com> + + maint: avoid undefined behavior in qsort call + GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning: + "runtime error: null pointer passed as argument 1, + which is declared to never be null" + * src/ptx.c (sort_found_occurs): Avoid the call with no entries. + + factor: avoid interspersed lines for parallel runs + * src/factor.c (n_out): A new global variable to track + how much data has been written to stdout. + (print_factors_single): Use n_out to determine whether + to flush the current (and previous) lines. + * tests/misc/factor-parallel.sh: Add a new test. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug fix. - * src/copy.c: Include filemode.h. - (overwrite_prompt): Say "try to overwrite", not "overwrite", to - make it clearer that the attempt may fail. Problem reported by - Dan Jacobson in: - http://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00130.html - Output symbolic mode as well as numeric. - * tests/mv/i-2 (fail): Adjust to new prompt format. + seq: handle exponents more consistently + src/seq.c (scan_arg): Set precision and width _after_ exponentiation. + For example, this will make '1.1e1 12' and '11 1.2e1' equivalent. + One can still set the precision by specifying extra precision on + the start value, or more naturally with a precision on a step value. + * tests/misc/seq-precision.sh: Add new cases. + + seq: use consistent output format with hex integers + * src/seq.c (scan_arg): Set precision to 0 for hex constants + (while avoiding hex floats). This will use then use the + fast path for these arguments. Note we also set the precision + of inf to 0 here, which ensures we use consistent precision + on output where possible. + * tests/misc/seq-precision.sh: Add corresponding test cases. + + seq: support inf last item more generally/efficiently + * src/seq.c (main): Call seq_fast for infinite last value. + This implicitly avoids format conversion on the + 999999 -> 1000000 transition. + * src/seq.c (seq_fast): Generalize the buffer handling, + and adjust to handle the "inf" last value specifics. + * tests/misc/seq-precision.sh: A new test. + * tests/local.mk: Reference the new test. + +2015-06-22 Pádraig Brady <P@draigBrady.com> + + doc: list numfmt in the main menu with "Numeric operations" + * doc/coreutils.texi (main menu): Add numfmt. + + numfmt: don't hardcode floating point limits + * src/numfmt.c (MAX_UNSCALED_DIGITS): Set this to LDBL_DIG + rather than hardcoding at 18 for better portability. + * tests/misc/numfmt.pl: Restrict limit tests to supported platforms. + + numfmt: handle leading zeros correctly + * src/numfmt.c (simple_strtod_int): Don't count leading zeros + as significant digits. Also have leading zeros as optional + for floating point numbers. + * tests/misc/numfmt.pl: Add test cases. + * NEWS: Mention the fix. -2007-03-15 Jim Meyering <jim@meyering.net> +2015-06-22 Pádraig Brady <P@draigBrady.com> + + numfmt: avoid integer overflow when rounding + Due to existing limits this is usually triggered + with an increased precision. We also add further + restrictions to the output of increased precision numbers. + + * src/numfmt.c (simple_round): Avoid intmax_t overflow. + (simple_strtod_int): Count digits consistently + for precision loss and overflow detection. + (prepare_padded_number): Include the precision + when excluding numbers to output, since the precision + determines the ultimate values used in the rounding scheme + in double_to_human(). + * tests/misc/numfmt.pl: Add previously failing test cases. + * NEWS: Mention the fix. - Enforce policy: don't use *scanf functions. - * Makefile.maint (sc_prohibit_atoi_atof): Add to regexp and diagnostic. - * .x-sc_prohibit_atoi_atof: Give stty a temporary pass. - * TODO: note that stty.c needs this small clean-up. +2015-06-21 Pádraig Brady <P@draigBrady.com> -2007-03-13 Jim Meyering <jim@meyering.net> + numfmt: support user specified output precision + * src/numfmt.c (usage): Update the --format description + to indicate precision is allowed. + (parse_format_string): Parse a precision specification + like the standard printf does. + (double_to_human): Honor the precision in --to mode. + * tests/misc/numfmt.pl: New tests. + * doc/coreutils.texi (numfmt invocation): Mention the new feature. + * NEWS: Likewise. - Prepare to work on ACL-related failure when using Solaris ZFS. - * gl/lib/acl.c: New file, copied from gnulib. +2015-06-19 Dylan Cali <calid1984@gmail.com> + + numfmt: implement support for field ranges + * src/numfmt.c: Replace field handling code with logic that understands + field range specifiers. Instead of processing a single field and + printing line prefix/suffix around it, process each field in the line + checking whether it has been included for conversion. If so convert and + print, otherwise just print the unaltered field. + (extract_fields): Removed. + (skip_fields): Removed. + (process_line): Gutted and heavily reworked. + (process_suffixed_number): FIELD is now passed as an arg instead of + using a global. + (parse_field_arg): New function that parses field range specifiers. + (next_field): New function that returns pointers to the next field in + a line. + (process_field): New function that wraps the field conversion logic + (include_field): New function that checks whether a field should be + converted + (compare_field): New function used for field value comparisons in a + gl_list. + (free_field): New function used for freeing field values in a gl_list. + Global variable FIELD removed. + New global variable all_fields indicates whether all fields should be + processed. + New global variable all_fields_after stores the first field of a N- + style range. + New global variable all_fields_before stores the last field of a -M + style range. + New global variable field_list stores explicitly specified fields to + process (N N,M or N-M style specifiers). + (usage): Document newly supported field range specifiers. + * bootstrap.conf: Include xlist and linked-list modules. numfmt now + uses the gl_linked_list implementation to store the field ranges. + * tests/misc/numfmt.pl: Add tests for 'cut style' field ranges. + Adjust existing tests as partial output can occur before an error + Remove test for the 'invalid' field -5.. this is now a valid range. + * gnulib: update to avoid compiler warnings in linked-list. + * NEWS: Mention the new feature. + +2015-06-19 Pádraig Brady <P@draigBrady.com> + + doc: use correct units in df | numfmt example + * src/numfmt.c (usage): Don't scale output from df + so that numfmt outputs the correct values. + + numfmt: handle suffixes consistently with --{from,to}-unit + * src/numfmt.c (unit_to_umax): Support SI (power of 10) suffixes + with the --from-unit and --to-unit options. Treat suffixes like + is done with --from=auto, which for example will change the meaning + of --to-unit=G to that of --to-unit=Gi. The suffix support was + previously undocumented and it's better to avoid the traditional + coreutils suffix handling in numfmt by default. + * doc/coreutils.texi: Document the new behavior. Also fix a typo + mentioning {from,to}=units=. + * tests/misc/numfmt.pl: Adjust accordingly. + * NEWS: Mention the change in behavior. + +2015-06-17 Pádraig Brady <P@draigBrady.com> + + maint: remove stale online manual items at release + * gnulib: Update to get the new gnu-web-doc-update with --mirror option. + * README-release: Use the --mirror option in the instructions. + Also clarify and update various release steps. + +2015-06-09 Pádraig Brady <P@draigBrady.com> + + tail: display consistent diagnostics upon file replacement + * src/tail.c (recheck): Display diagnostices for replaced files + even with reused inodes which is a common case. + * tests/tail-2/F-vs-missing.sh: Use correct diagnostic in comment. + * tests/tail-2/F-vs-rename.sh: Likewise. + + tail: display file headers correctly with inotify + * src/tail.c (tail_forever_inotify): Use the fspec pointer to + distinguish previously output files, rather than a descriptor + from the inotify event. That event descriptor was that of + the parent directory when files were created or renamed etc. + (check_fspec): Adjust for the new comparison. Also show the + header when the file is truncated, since we show data + in this case also. + * tests/tail-2/F-headers.sh: A new test case. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug fix. - Work around a failing test due to an NFS-based race condition. - * tests/cp/sparse: Accept a report that the copy is *smaller*. +2015-06-07 Pádraig Brady <P@draigBrady.com> + + maint: sync .gitignore items with gnulib entries + * .gitignore: Add entries for potentially generated headers. + Also remove a couple of items already present in lib/.gitignore. + * cfg.mk (sc_gitignore_missing): A new syntax check rule to + identify missing .gitignore entries. + (sc_gitignore_redundant): A new syntax check rule to + identify redundant .gitignore entries. + Reported by Tomas Nordin. + +2015-06-06 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure in recent test adjustment + * configure.ac: Comment on why we link rather than run the test, + and remove the moot __ELF__ check since we never ran it anyway, + and the new CFLAGS and LDFLAGS are a more direct test of support. + * tests/misc/wc-parallel.sh: Fix a syntax error in the previous change. + * tests/misc/md5sum-parallel.sh: Use better error checking, consistent + with that used in wc-parallel.sh. + +2015-06-06 Paul Eggert <eggert@cs.ucla.edu> + + build: port to AIX + Problems reported by Michael Felt, and and part of this fix taken + from code suggested by Pádraig Brady in: + http://bugs.gnu.org/20733#112 + * configure.ac (stdbuf_supported): Check for warnings, and + for -fPIC and -shared, for AIX. + * src/stat.c (STRUCT_STATVFS): Define to struct statvfs64 if + STATFS is statvfs64. + * src/sync.c (sync_arg) [_AIX]: Open in write mode, + since AIX fsync doesn't work on read-only file descriptors. + * tests/misc/wc-parallel.sh: Skip test if xargs -P does not work. + + build: update gnulib submodule to latest + +2015-06-05 Paul Eggert <eggert@cs.ucla.edu> + + build: update gnulib submodule to latest + +2015-06-04 Paul Eggert <eggert@cs.ucla.edu> + + build: port single_binary_prog to POSIX shell + Problem reported privately by Michael Felt. + * Makefile.am (install-exec-hook): + * src/local.mk (src/coreutils_symlinks, src/coreutils_shebangs) + (clean-local): + Port to POSIX shell, which doesn't allow 'for i in ; do ...'. + +2015-06-03 Pádraig Brady <P@draigBrady.com> + + build: add a dependency on the gnulib tempname module + * bootstrap.conf: Add "tempname" which is needed by mktemp(1). + The explicit dependency supports running gnulib-tool with + the --conditional-dependencies option, used to minimize built + modules. Note on a Fedora 22 system, that results in avoiding + redundant builds of: areadlinkat.o asnprintf.o fd-hook.o + fseterr.o printf-args.o printf-parse.o sockets.o vasnprintf.o. + However --conditional-dependencies is not enabled, since it + currently precludes the inclusion of gnulib tests. + +2015-06-02 Pádraig Brady <P@draigBrady.com> + + build: update to latest gnulib + Mainly with build fixes for Mac OS X. + +2015-06-01 Pádraig Brady <P@draigBrady.com> + + tests: fix race in tail test without inotify + * tests/tail-2/wait.sh: Without inotify, skip a portion of the test + that checks that -F never outputs from a tailed descriptor + after the followed name is recreated, because tail_forever() + doesn't guarantee that. + Noticed at http://hydra.nixos.org/build/22766288 + + tests: fix false failure on loaded systems + * tests/misc/uniq-perf.sh: Use our standard 10s timeout, + which is sufficient to trigger the failure and also + avoids a false failure on slow/loaded systems. + Noticed at http://hydra.nixos.org/build/22766288 + +2015-05-30 Pádraig Brady <P@draigBrady.com> + + maint: avoid new coverity warnings + * src/sync.c (sync_arg): Initialise variable to avoid + unitialized access if assert is disabled. + * src/head.c (elide_tail_bytes_file): Support this function + with ---presume-input-pipe and larger files, + which regressed with commit v8.23-47-g2662702. + (elide_tail_lines_file): Likewise. + * src/dd.c (dd_copy): Explicitly don't try to ftruncate() + upon failure to lseek() (the existing check against + st_size was already protecting that). + * src/factor.c (factor_using_squfof): Assert (only when + linting due to performance) to avoid the implication of + divide by zero. + * src/od.c (read_block): Remove dead code. + * src/tac.c (tac_seekable): Likewise. + * src/ls.c (gobble_file): Likewise. + +2015-05-28 Pádraig Brady <P@draigBrady.com> + + build: remove workarounds for unsupported gettext versions + Now that we depend on gettext >= 0.19.2 remove the workaround + for issues in autopoint 0.18.3. Note the scheme currently used in + newer gettext (autopoint) to avoid these issues requires + autoconf >= 2.69, therefore we update this requirement also. + + Note the gettext version dependence from gnulib comes from + gnulib using gettext macros, and coreutils indirectly depends on + the gettext module due to: + http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=41dca647 + bootstrap will then update m4/po.m4 and thus require a + supportng gettext version. + + * bootstrap: Remove moot warning (resyncing with gnulib). + * configure.ac (AC_PREREQ): Change to 2.69 (now 3 years old). + +2015-05-28 Pádraig Brady <P@draigBrady.com> + + tests: ln/hard-to-sym FAIL rather than ERROR when ln fails + * tests/ln/hard-to-sym.sh: Only call framework_failure_ when ln + returns success. + + copy: prefer our hardlink to symlink emulation on OS X 10.10 + * src/copy.c (CAN_HARDLINK_SYMLINKS): Don't enable use of linkat() + on Darwin 14, as the gnulib fallback emulation there doesn't + preserve ownership and timestamps etc. This fixes a test failure + in tests/cp/link-symlink.sh + * tests/cp/link-deref.sh: Adjust accordingly. + +2015-05-26 Pádraig Brady <P@draigBrady.com> + + maint: remove sys/types.h include order check + * src/system.h: This was inadvertently ineffective due to + a typo in commit v8.9-10-ge1aaf89 (Jan 2011), but has + not caused any issues, so remove. + +2015-05-23 Pádraig Brady <P@draigBrady.com> + + mkdir: fix -pZ with existing parent directories + When the parent directory exists and has a different + default context to the final directory, the context + was incorrectly left as that of the parent directory. + + * src/mkdir.c (process_dir): Because defaultcon() is called for + existing ancestors (as it must be to avoid races), then we must + unconditionally call restorecon() on the last component due to + the already documented caveat with make_dir_parents(). + Alternatively you could temp disable o->set_security_context + around make_dir_parents(), but that would be subject to races. + * tests (tests/mkdir/restorecon.sh): Add a TODO for improvement. + Reference mknod and mkfifo with print_ver_. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/20616 + +2015-05-22 Assaf Gordon <assafgordon@gmail.com> + + tests: df-output: accept multiple spaces in header + * tests/df/df-output.sh: Allow for multiple spaces in the header line + of 'df', resulting from alignment with disk sizes >= 10TB. + +2015-05-19 Pádraig Brady <P@draigBrady.com> + + tests: fix non POSIX constructs causing failures with dash + * tests/cp/no-ctx.sh: Scope of `var=val func` is inconsistent + across shells, so avoid that construct with functions. + * tests/df/no-mtab-status.sh: Likewise. + * tests/tail-2/inotify-race.sh: `read` needs an argument. + * tests/tail-2/inotify-race2.sh: Likewise. + +2015-05-17 Pádraig Brady <P@draigBrady.com> + + build: fix 'dist' and 'syntax-check' targets in VPATH build + * cfg.mk: Various syntax-check adjustments so that it's + not assumed the $builddir is the base distribution directory. + * Makefile.am: Likewise for the 'dist' target. + + build: avoid issues with case insensitive file systems + * cfg.mk (sc_case_insensitive_file_names): A new syntax-check rule. + * tests/tail-2/descriptor-vs-rename.sh: Rename from + tests/tail-2/f-vs-rename.sh + * tests/local.mk: Reference the renamed test. + Reported by Jim Meyering. + +2015-05-14 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix check for local file system in inotify-rotate-resources.sh + * tests/tail-2/inotify-rotate-resources.sh: s/(is_local_dir)/\1_/ + +2015-05-14 Pádraig Brady <P@draigBrady.com> + + tests: fix async allocation race on BTRFS + * tests/dd/sparse.sh: Sync files before checking allocations, + which may be done asynchronously on NFS and BTRFS at least. + Also mark this test as very expensive on remote file systems. + * tests/du/2g.sh: Likewise, also use fallocate if available + to efficiently allocate the large file, otherwise skip + on remote file systems. + * tests/tail-2/inotify-rotate-resources.sh: Use the more + standard is_local_dir_() to check remoteness. + * tests/cp/fiemap-empty.sh: Comment on the sync issue + for this currerntly unused test. + Fixes http://bugs.gnu.org/20570 + +2015-05-13 Pádraig Brady <P@draigBrady.com> + + timeout: with --foreground don't send SIGCONT + * src/timeout.c (cleanup): Don't send SIGCONT to the monitored program + when --foreground is specified, as it's generally not needed for + foreground programs, and can cause intermittent signal delivery + issues with monitors like GDB for example. + * doc/coreutils.texi (timeout invocation): Mention that SIGCONT + is not sent with --foreground. + * NEWS: Mention the behavior change. + +2015-05-13 Pádraig Brady <P@draigBrady.com> + + split: auto set suffix len for --numeric-suffixes=<N --number=N + Supporting `split --numeric-suffixes=1 -n100` for example. + + * doc/coreutils.texi (split invocation): Mention the two + use cases for the FROM parameter, and the consequences on + the suffix length determination. + * src/split.c (set_suffix_length): Use the --numeric-suffixes + FROM parameter in the suffix width calculation, when it's + less than the number of files specified in --number. + * tests/split/suffix-auto-length.sh: Add test cases. + Fixes http://bugs.gnu.org/20511 + +2015-05-13 Assaf Gordon <assafgordon@gmail.com> + + doc: clarify the operation of wc -L + * src/wc.c (usage): State that it calculates display width. + * doc/coreutils.texi (wc invocation): Detail the distinct + items used to determine the display width. + +2015-05-11 Pádraig Brady <P@draigBrady.com> + + tail: consistently output all data for truncated files + Generally if logs are truncated, they're truncated to 0 length, + so output all existing data when our heuristic determines truncation. + Note with inotify, truncate() and write() are often determined + independently and so all data would be written if that was the case. + + * src/tail.c (check_fspec): Reset file offset to 0 upon truncation. + (tail_forever): Likewise. + (recheck): Add a FIXME for the related issue where tail may lose + data due to tail discounting older log files too early. + * tests/tail-2/truncate.sh: A new test. + * tests/local.mk: Reference the new test. + * NEWS: Mention the fix. -2007-03-12 Jim Meyering <jim@meyering.net> +2015-05-11 Pádraig Brady <P@draigBrady.com> + + tail: fix inotify startup races + The previous fixes to races in the various tail tests, + identified actual races in the tail inotify implementation. + With --follow=descriptor, if the tailed file was replaced before + the inotify watch was added, then any subsequent changes were ignored. + Similarly in --follow=name mode, all changes to a new name were + effectively ignored if that name was created after the original open() + but before the inotify_add_watch(). + + * src/tail.c (tail_forever_inotify): Fix 3 cases. + 1. With -f, don't stop tailing when file removed before watch. + 2. With -f, watch right file when file replaced before watch. + 3. With -F, inspect correct file when replaced before watch. + Existing tests identify these when tail compiled with TAIL_TEST_SLEEP. + * tests/tail-2/inotify-rotate-resources.sh: + This test also identifies the issue with --follow=name + when TAIL_TEST_SLEEP is used. Adjust so the test is immune + to such races, and also fail quicker on remote file systems. + * tests/tail-2/inotify-race2.sh: A new test using GDB, + based on inotify-race.sh, which tests the -F race + without needed recompilation with sleeps. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug. + +2015-05-11 Pádraig Brady <P@draigBrady.com> + + tests: cleanup background processes upon interruption + Reap background processes so that: + - Stray processes aren't left on the system + - Files aren't held open causing deletion issues on NFS + - Partitions used to run the tests from can be unmounted + + * tests/tail-2/F-vs-missing.sh: Add the `kill && wait` of the + background $pid(s) to cleanup_(). + * tests/tail-2/F-vs-rename.sh: Likewise. + * tests/tail-2/f-vs-rename.sh: Likewise. + * tests/tail-2/append-only.sh: Likewise. + * tests/tail-2/assert-2.sh: Likewise. + * tests/tail-2/assert.sh: Likewise. + * tests/tail-2/flush-initial.sh: Likewise. + * tests/tail-2/inotify-hash-abuse.sh: Likewise. + * tests/tail-2/inotify-hash-abuse2.sh: Likewise. + * tests/tail-2/inotify-race.sh: Likewise. + * tests/tail-2/inotify-rotate-resources.sh: Likewise. + * tests/tail-2/inotify-rotate.sh: Likewise. + * tests/tail-2/pid.sh: Likewise. + * tests/tail-2/pipe-f2.sh: Likewise. + * tests/tail-2/retry.sh: Likewise. + * tests/tail-2/symlink.sh: Likewise. + * tests/tail-2/tail-n0f.sh: Likewise. + * tests/tail-2/wait.sh: Likewise. + * tests/cp/existing-perm-race.sh: Likewise. + * tests/cp/file-perm-race.sh: Likewise. + * tests/cp/parent-perm-race.sh: Likewise. + * tests/cp/sparse-to-pipe.sh: Likewise. + * tests/dd/stats.sh: Likewise. + * tests/du/move-dir-while-traversing.sh: Likewise. + * tests/misc/cat-buf.sh: Likewise. + * tests/misc/help-version.sh: Likewise. + * tests/misc/printf-surprise.sh: Likewise. + * tests/misc/sort-compress-proc.sh: Likewise. + * tests/misc/sort-spinlock-abuse.sh: Likewise. + * tests/misc/stdbuf.sh: Likewise. + * tests/misc/tac-continue.sh: Likewise. + * tests/misc/timeout-group.sh: Likewise. + * tests/mv/i-3.sh: Likewise. + * tests/rm/dangling-symlink.sh: Likewise. + * tests/rm/isatty.sh: Likewise. + * cfg.mk (sc_prohibit_test_background_without_cleanup_): + A new syntax-check to ensure cleanup_() is defined + when background tasks are created in a test. + +2015-05-11 Pádraig Brady <P@draigBrady.com> + + tests: avoid hung processes due to gdb SIGCONT handling + * tests/tail-2/inotify-race.sh: Add a `wait` to ensure that + we reap all background gdb and tail processes. That resulted + in the test hanging intermittently and upon investigation was + due to gdb intermittently failing to terminate the child process + due to receiving a SIGCONT signal. Therefore we avoid using + timeout(1) which sends that signal, and instead rely on tail's + inbuilt --pid monitoring on a background sleep process. + Given this new implementation, the VERY_EXPENSIVE guard was removed. + Related issues with this test hanging were previously discussed at: + https://lists.gnu.org/archive/html/bug-coreutils/2009-12/msg00025.html + + tests: fix races in and standardize the tail tests + * tests/tail-2/F-vs-missing.sh: Use standard "fastpoll" options + (-s.1 --max-unchanged-stats=1) to speedup the non-inotify case. + Add the non-inotify case to the test. `wait` on the background + tail process to terminate which should avoid the need for the + non standard `retry_delay_ cleanup ...` on NFS. + * tests/tail-2/F-vs-rename.sh: Remove 'out' at the start of the loop, + to avoid a race in checking its contents. Also ensure 'a' & 'b' + files are present before the tail process starts. Use the standard + "fastpoll" options as above. + * tests/tail-2/f-vs-rename.sh: Likewise. + * tests/tail-2/append-only.sh: Use more standard variable names. + * tests/tail-2/flush-initial.sh: Use "fastpoll" options for + non-inotify platforms. Also `wait` on the background tail to avoid + stray processes and file cleanup issues on NFS. + * tests/tail-2/inotify-hash-abuse.sh: Always run non-inotify case. + Use "fastpoll" options. Use a more standard retry_delay_ instead + of a hardcoded sleep loop. Add a `wait` on the background tail. + * tests/tail-2/inotify-hash-abuse2.sh: Likewise. + * tests/tail-2/inotify-rotate-resources.sh: Wait just on the + specific tail $pid needed. + * tests/tail-2/inotify-rotate.sh: Use "fastpoll" options. + * tests/tail-2/pid.sh: Use standard variable names. + Add a `wait` on the background tails. + * tests/tail-2/pipe-f2.sh: Likewise. + * tests/tail-2/tail-n0f.sh: Likewise. + * tests/tail-2/retry.sh: Use "fastpoll" options. + * tests/tail-2/symlink.sh: Likewise. + * tests/tail-2/wait.sh: Likewise. Speedup by using sub second + parameters to timeout(1). Improve the part ensuring that + -F never follows a renamed file. + * tests/tail-2/infloop-1.sh: Remove invalid test. tail(1) was not + being passed the --pid=$yes_pid option, retry_delay_ wasn't used + to avoid races, and yes could write huge files before being killed. + * tests/local.mk: Remove the invalid test reference. + * tests/tail-2/assert-2.sh: Rewrite using retry_delay_(). Since + no longer hardcoding large delays, remove the VERY_EXPENSIVE tag. + * tests/tail-2/assert.sh: Likewise. + +2015-05-10 Paul Eggert <eggert@cs.ucla.edu> + + build: rewrite is_ENOTSUP without an #if directive + * src/system.h (is_ENOTSUP): Avoid in-function #if directive. + +2015-05-10 Jim Meyering <meyering@fb.com> + + build: avoid a warning form gcc's new -Wlogical-op + Without this change, very recent gcc (e.g., version 6.0.0 20150509) + would print the following when configured with --enable-gcc-warnings: + + src/copy.c:165:30: error: logical 'or' of equal expressions \ + [-Werror=logical-op] + && (errno == EOPNOTSUPP || errno == ENOTSUP || errno == ENOSYS)) + ^ + * src/system.h (is_ENOTSUP): New function. + * src/copy.c (punch_hole): Use it. + * src/ls.c (errno_unsupported, gobble_file): Use it. + +2015-04-30 Pádraig Brady <P@draigBrady.com> + + doc: standardize messages about the '-' stdin FILE + * src/system.h (emit_stdin_note): A new function, refactoring + the usage note about the '-' FILE implying stdin. + * src/base64.c (usage): Use the new function to emit the + note in a standard location and with standard separation. + * src/cat.c (usage): Likewise. + * src/csplit.c (usage): Likewise. + * src/cut.c (usage): Likewise. + * src/expand.c (usage): Likewise. + * src/fmt.c (usage): Likewise. + * src/head.c (usage): Likewise. + * src/md5sum.c (usage): Likewise. + * src/nl.c (usage): Likewise. + * src/od.c (usage): Likewise. + * src/paste.c (usage): Likewise. + * src/pr.c (usage): Likewise. + * src/ptx.c (usage): Likewise. + * src/shred.c (usage): Likewise. + * src/shuf.c (usage): Likewise. + * src/sort.c (usage): Likewise. + * src/sum.c (usage): Likewise. + * src/tac.c (usage): Likewise. + * src/tail.c (usage): Likewise. + * src/tsort.c (usage): Likewise. + * src/unexpand.c (usage): Likewise. + * src/wc.c (usage): Likewise. + * src/join.c (usage): Adjust the separation used for + the message referring to FILE1 or FILE2 as stdin. + * src/comm.c (usage): Add a message using the same + wording (translation) as used in join. + * src/split.c (usage): Reword to using FILE rather than + INPUT, allowing use of emit_stdin_note(). Also remove + the mention of "fixed-size" pieces as this isn't now + always the case. + Fixes http://pad.lv/1450179 + + tests: don't skip df tests with /proc/self/mountinfo + * tests/df/no-mtab-status.sh: getmntent is no longer called + when /proc/self/mountinfo is present, thus causing the test + to be skipped. Therefore wrap fopen() to ignore mountinfo, + and use the test genmntent table instead. + * tests/df/skip-duplicates.sh: Likewise. + +2015-04-28 Yunlian Jiang <yunlian@chromium.org> + + build: fix SINGLE_BINARY build when printf is a macro + * src/coreutils.c (usage): include coreutils.h outside + the printf call, because if it's a macro you will get the error: + embedding a #include directive within macro arguments is not supported + +2015-04-28 Pádraig Brady <P@draigBrady.com> + + maint: avoid a new -Werror=return-type warning in yes.c + * src/yes.c (main): Simplify the logic so that the + compiler can see this function always returns a value. + This was seen with GCC 5.0 in SINGLE_BINARY mode. + + tests: run ls capability coloring test irrespective of $LS_COLORS + * tests/ls/no-cap.sh: Ensure the test isn't skipped even if + capability coloring is disabled in the current $LS_COLORS. + Also just enable/disable capability coloring to avoid the + dircolors(1) overhead. + +2015-04-27 Pádraig Brady <P@draigBrady.com> + + maint: use gnulib styling with the online manual + The equivalent styling added in v8.23-155-g3b98ee7, + is now applied to gnulib using projects by default. + + build: rely on gnulib to determine printf routines are safe + gnulib now only checks that the printf routines never crash, + which is all coreutils currrently requires, and so we revert + commit v8.23-81-gf57bfbb to let gnulib decide whether to replace + the system printf routines. + + maint: fix printf format for signed integers + With GCC 5 and the newly added warnings from gnulib, ensure the + correct signed integer is passed for the printf format, + to avoid -Werror=format= failures. + + build: update gnulib submodule to latest + Fix file-has-acl build failure on RHEL/Centos 6. + Fix GCC 5 warnings with printf and in fts.c. + + build: reduce gettext dependency to 0.19.2 + * bootstrap.conf: 0.19.2 is available on openSUSE-13.2, + Debian-8.0, and Ubuntu-14.10. Given there were issues + with earlier 0.19 gettext releases, set this as the new minimum. + * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise. + Reported by Bernhard Voelker + +2015-04-27 Paul Eggert <eggert@cs.ucla.edu> + + ls: on GNU/Linux, remove dependency on libacl + * src/local.mk (src_ls_LDADD): Change from LIB_ACL to LIB_HAS_ACL. + + build: update gnulib submodule to latest + * bootstrap.conf (gnulib_modules): Add file-has-acl. + (buildreq): Bump autopoint and gettext to 0.19.4. + * configure.ac (AM_GNU_GETTEXT_VERSION): + Bump to 0.19.4. + * gl/lib/tempname.c.diff, gl/lib/tempname.h.diff: + Merge recent gnulib changes. + +2015-04-23 Michael Witten <mfwitten@gmail.com> + + doc: fix grammar issue in truncate info + * doc/coreutils.texi (truncate invocation): The word 'their' is + incorrect; 'each file' is the antecedent, and is singular, + so 'its' is the correct pronoun. + +2015-04-22 Pádraig Brady <P@draigBrady.com> + + build: fix potential factor build failure on arm and mips + * src/longlong.h: Sync with the latest longlong.h from libgmp to: + - Use __builtin_c[lt]zl on arm64. + - Fix sparc64 vis3 build failure due to missing __clz_tab. + - Avoid a clang build issue on mips. + - Support thumb2 arm 32 bit system. + * src/cfg.mk (sc_ensure_comma_after_id_est): Exclude longlong.h + to ease merges. + +2015-04-22 Pádraig Brady <P@draigBrady.com> + + maint: avoid -Werror=strict-overflow warnings with GCC 5 + All warnings were of the form: "assuming signed overflow does not occur + when simplifying conditional to constant [-Werror=strict-overflow]" + + * src/dd.c (cache_round): Use an appropriately sized unsigned type, + to avoid possibility of undefined signed overflow. + * src/mknod.c (main): Likewise. + * src/pr.c (pad_down): Likewise. + * src/wc.c (main): Likewise. + * src/tail.c (main): Assert that argc >= 0 thus allowing the + compiler to assume without implication that argc - optind + is positive. + +2015-04-17 Pádraig Brady <P@draigBrady.com> + + dircolors: add 'MISSING' to the default database + * src/dircolors.hin: Add the MISSING entry, to indicate + this as a possibility in new templates output from dircolors, + and also to ease comparison with existing databases that + generally do define a MISSING entry. + +2015-04-13 Andreas Gruenbacher <andreas.gruenbacher@gmail.com> + + doc: clarify how cp behaves with default ACLs + * doc/coreutils.texi (cp invocation): Mention that when copying files + without preserving permissions, the umask or a default ACL affect + the mode of new files. + * THANKS.in: Remove committer. + Related to http://bugs.gnu.org/8527 + +2015-04-13 Pádraig Brady <P@draigBrady.com> + + df: fix --local hanging with inaccessible remote mounts + * src/df.c (filter_mount_list): With -l, avoid stating remote mounts. + * init.cfg: Avoid test hangs with inaccessible remote mounts. + * tests/df/no-mtab-status.sh: Skip with inaccessible remote mounts. + * tests/df/skip-rootfs.sh: Likewise. + * tests/df/total-verify.sh: Likewise. + * NEWS: Mention the bug fix. + Reported at http://bugzilla.redhat.com/1199679 + +2015-04-09 Mitchel Humpherys <mitch.special@gmail.com> + + doc: correct pluralization for mkfifo and mknod + * doc/coreutils.texi: `mkfifo' and `mknod' use the optContext macro + which adds a description for the SELinux security context in addition to + the single option already described in each case. The result in both + cases is two options being introduced as `option' (singular). Fix this + by introducing them as `options' (plural). + +2015-04-03 Pádraig Brady <P@draigBrady.com> + + df: fix use of uninitialized variable reported by valgrind + Conditional jump or move depends on uninitialised value(s) + at 0x40380C: get_field_values (df.c:840) + by 0x403E16: get_dev (df.c:994) + by 0x404D65: get_all_entries (df.c:1364) + by 0x405926: main (df.c:1714) + + * src/df.c (get_dev): Initialize the fsu.fsu_bavail_top_bit_set + member, when adding placeholder entries. + (main): Avoid a "definitely lost" memory leak warning from valgrind, + reported by Bernhard Voelker. + +2015-04-01 Pádraig Brady <P@draigBrady.com> + + doc: clarify that ls --sort=time is newest first + * src/ls.c (usage): Add punctuation to avoid ambiguity in the + description of the --time option. Mention that both the -u + and --sort=time default order is newest first. + +2015-03-31 Stephane Chazelas <stephane.chazelas@gmail.com> + + tail: fix -f to follow changes after a rename + * src/tail.c (tail_forever_inotify): Only monitor write()s and + truncate()s to files in --follow=descriptor mode, thus avoiding + the bug where we removed the watch on renamed files. + Also adjust the inotify event processing code that is + now significant only in --follow=name mode. + * tests/tail-2/F-vs-rename.sh: Improve this existing test by running + in both polling and inotify modes. + * tests/tail-2/f-vs-rename.sh: A new test based on the existing one. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug. + Fixes http://bugs.gnu.org/19760 + +2015-03-29 Pádraig Brady <P@draigBrady.com> + + doc: move numfmt info to the 'Numeric operations' section + * doc/coreutils.texi: Move numfmt info to this section, + as numfmt functionality aligns more with seq and factor, + than fmt and pr etc. + +2015-03-27 Paul Eggert <eggert@cs.ucla.edu> + + nohup: clarify stdin redirection + Problem reported by Isaac Schwabacher in: + http://bugs.gnu.org/20214 + * doc/coreutils.texi (nohup invocation): Clarify that when nohup's + stdin gets redirected, it's unreadable. + * doc/coreutils.texi (nohup invocation): + * src/nohup.c (usage): Don't promise /dev/null. + +2015-03-27 Assaf Gordon <assafgordon@gmail.com> + + tests: fix false test failure with df on Debian/kFreeBSD + * tests/fs/skip-duplicates.sh: On this platform .mnt_opts is significant + so define to empty to avoid a NULL deref in read_file_system_list(). + Fixes http://bugs.gnu.org/20210 + +2015-03-26 Christoph Anton Mitterer <calestyo@scientia.net> + + doc: disambiguate the ls --color description + * src/ls.c (usage): Avoid the implication that the + default ls behavior is to --color=always. + Reported in http://bugs.debian.org/781208 + +2015-03-26 Pádraig Brady <P@draigBrady.com> + + doc: clarify the date standard output formats + * src/date.c (usage): Use FMT rather than TIMESPEC as the parameter, + since it's simpler to understand and can be better aligned. + Give an example for the --iso-8601 output format. + Adjust the example used for the 3 standard formats to be unambiguous + with respect to day/mon ordering and use of leading zeros in the time. + Reorder the options descriptions slightly, so that the + 3 standards options are together. + Indent the multi-line descriptions so that grouping is obvious. + Remove a redundant description of the --rfc-3339 format, + which is obvious in the existing example. + Separate these 3 standards options to their own translatable string + to simplify translation. + Change 'date and time' to 'date/time' in the --iso-8601 description + to be consistent with --rfc-3339 and to help avoid the implication + that the time is always output or even output by default. + Fixes http://bugs.gnu.org/20203 + +2015-03-24 Pádraig Brady <P@draigBrady.com> + + maint: apply basic styling to online manual + * README-release: Reference http://www.gnu.org/s/coreutils/manual.css + to apply basic styling to the online coreutils manual, consistent + with the Emacs documentation. + + doc: clarify the uniq -D man page description + * src/uniq.c (usage): The description was very confusing in the man page + due to the stripped newlines. Add punctuation for clarification. + + wc: use a more adaptive wc -l implementation + * src/wc.c (wc): Allow any block to select the count implementation, + rather than just using the first 10 lines. This also simplifies + the code from 3 loops to 2. + +2015-03-23 Dan Jacobson <jidanni@jidanni.org> + + doc: clarify default order for ls --sort=size + * src/ls.c (usage): Mention that default order is largest first. + Fixes http://bugs.gnu.org/20172 + +2015-03-20 Pádraig Brady <P@draigBrady.com> + + maint: really fix wildcard quoting in sc_tests_executable + * cfg.mk (sc_tests_executable): The previous commit avoided + the globbing, but also passed on the quoted wildcards to find(1). + We could use eval to handle the quoting, though that's a bit + awkward and dangerous, so instead explicitly disable globbing + for the whole make target subshell. Note noglob is not available + on solaris, where we fall back to set -f. Note also that zsh + uses set -F for this, but that's moot here. Also correct the + find(1) expression to include the -o between each wildcard. + + maint: fix wildcard quoting in sc_tests_executable + * cfg.mk (sc_tests_executable): If there are files with + $TEST_EXTENSIONS in the current directory, then the + lack of quoting of the $test_extensions_rx contents + could result in globbing and an inconsequential run. + find(1) produces warnings only with more than one expansion. + +2015-03-20 Kristoffer Brånemyr <ztion1@yahoo.se> + + wc: speedup counting of short lines + Using a test file generated with: + yes | head -n100M > 2x100M.txt + + before> time wc -l 2x100M.txt + real 0.842s + user 0.810s + sys 0.033s + + after> time wc -l 2x100M.txt + real 0.142s + user 0.111s + sys 0.031s + + * src/wc.c (wc): Split the loop that deals with -l into 3. + The first is used at the start of the input to determine if + the average line length is < 15, and if so the second loop is + used to look for '\n' internally to wc. For longer lines, + memchr is used as before to take advantage of system specific + optimizations which any outweigh function call overhead. + Note the first 2 loops could be combined, though in testing, + GCC 4.9.2 at least, wasn't sophisticated enough to separate + the loops based on the "check_len" invariant. + Note also __builtin_memchr() isn't significant here as + GCC currently only applies constant folding with that. + * NEWS: Mention the improvement. + +2015-03-10 Giuseppe Scrivano <gscrivano@gnu.org> + + yes: improve efficiency when all args aren't buffered + * src/yes.c (main): Even when the internal buffer isn't large enough, + output what we've buffered already, and interate over the rest. + This improves the performance in the edge case where there are + many small arguments that overflow the buffer. + * tests/misc/yes.sh: Add a test case for the many small arguments case. + +2015-03-10 Pádraig Brady <P@draigBrady.com> + + yes: output data more efficiently + yes(1) may be used to generate repeating patterns of text + for test inputs etc., so adjust to be more efficient. + + Profiling the case where yes(1) is outputting small items + through stdio (which was the default case), shows the overhead + of continuously processing small items in main() and in stdio: + + $ yes >/dev/null & perf top -p $! + 31.02% yes [.] main + 27.36% libc-2.20.so [.] _IO_file_xsputn@@GLIBC_2.2.5 + 14.51% libc-2.20.so [.] fputs_unlocked + 13.50% libc-2.20.so [.] strlen + 10.66% libc-2.20.so [.] __GI___mempcpy + 1.98% yes [.] fputs_unlocked@plta + + Sending more data per stdio call improves the situation, + but still, there is significant stdio overhead due to memory copies, + and the repeated string length checking: + + $ yes "`echo {1..1000}`" >/dev/null & perf top -p $! + 42.26% libc-2.20.so [.] __GI___mempcpy + 17.38% libc-2.20.so [.] strlen + 5.21% [kernel] [k] __srcu_read_lock + 4.58% [kernel] [k] __srcu_read_unlock + 4.27% libc-2.20.so [.] _IO_file_xsputn@@GLIBC_2.2.5 + 2.50% libc-2.20.so [.] __GI___libc_write + 2.45% [kernel] [k] system_call + 2.40% [kernel] [k] system_call_after_swapgs + 2.27% [kernel] [k] vfs_write + 2.09% libc-2.20.so [.] _IO_do_write@@GLIBC_2.2.5 + 2.01% [kernel] [k] fsnotify + 1.95% libc-2.20.so [.] _IO_file_write@@GLIBC_2.2.5 + 1.44% yes [.] main + + We can avoid all stdio overhead by building up the buffer + _once_ and outputting that, and the profile below shows + the bottleneck moved to the kernel: + + $ src/yes >/dev/null & perf top -p $! + 15.42% [kernel] [k] __srcu_read_lock + 12.98% [kernel] [k] __srcu_read_unlock + 9.41% libc-2.20.so [.] __GI___libc_write + 9.11% [kernel] [k] vfs_write + 8.35% [kernel] [k] fsnotify + 8.02% [kernel] [k] system_call + 5.84% [kernel] [k] system_call_after_swapgs + 4.54% [kernel] [k] __fget_light + 3.98% [kernel] [k] sys_write + 3.65% [kernel] [k] selinux_file_permission + 3.44% [kernel] [k] rw_verify_area + 2.94% [kernel] [k] __fsnotify_parent + 2.76% [kernel] [k] security_file_permission + 2.39% yes [.] main + 2.17% [kernel] [k] __fdget_pos + 2.13% [kernel] [k] sysret_check + 0.81% [kernel] [k] write_null + 0.36% yes [.] write@plt + + Note this change also ensures that yes(1) will only write + complete lines for lines shorter than BUFSIZ. + + * src/yes.c (main): Build up a BUFSIZ buffer of lines, + and output that, rather than having stdio process each item. + * tests/misc/yes.sh: Add a new test for various buffer sizes. + * tests/local.mk: Reference the new test. + Fixes http://bugs.gnu.org/20029 + +2015-03-07 Pádraig Brady <P@draigBrady.com> + + build: fix make dependencies for test.1 + In certain parallel build situations this would give the error: + help2man: can't get `--help' info from man/test.td/[ + Makefile:14189: recipe for target 'man/test.1' failed + + * man/local.mk (test.1): Depend on `[` rather than `test`, + as `test --help` outputs nothing. Also move dir.1 and vdir.1 + back to the main list, as they're no more exceptions than + sha1sum etc. + +2015-03-05 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: be less strict about executable permissions of tests + With "umask 0027" or even "umask 0077", the git clone of coreutils + does not have the executable bit set for 'other' (or 'group). + Therefore, "make syntax-check" would fail. + + * cfg.mk (sc_tests_executable): Change the -perm argument of find(1) + to only print the names of the files which are not executable by the + user, rather than insisting on ugo+x (octal 111). + +2015-03-05 Stéphane Aulery <saulery@free.fr> + + doc: mention persistence caveats in sync man page + * man/sync.x ([BUGS]): Mention the caveats and reference + the system call man pages for more details. + Fixes http://bugs.gnu.org/19995 + + Debian bug #507085 reported by jidanni@jidanni.org + +2015-03-04 Pádraig Brady <P@draigBrady.com> + + tee: generalize the --write-error option to --output-error + Adjust commit v8.23-140-gfdd6ebf to add the --output-error option + instead of --write-error, and treat open() errors like write() errors. + + * doc/coreutils.texi (tee invocation): s/write-error/output-error/. + * src/tee.c (main): Exit on open() error if appropriate. + * tests/misc/tee.sh: Add a case to test open() errors. + * NEWS: Adjust for the more general output error behavior. + + Suggested by Bernhard Voelker. + +2015-03-04 Jarosław Gruca <jgruca1981@gmail.com> + + maint: update stale comment about ls color sequences + * src/ls.c (color_indicator[C_END]): Comment with the correct + sequence, which was used since commit v6.10-61-g483297d + Fixes http://bugs.gnu.org/19992 + +2015-02-27 Shane M Seymour <shane.seymour@hp.com> + + tail,stat: improve support for the IBRIX file system + Note that IBRIX used to have a different magic number 0x013111A7 + instead of the current 0x013111A8. However, the former is no longer + used and the version of IBRIX it was used in is really ancient, so + it's extremely unlikely anyone is still using it. Therefore, just + add the newer magic number. + Mark IBRIX as a 'remote' file system type as inotify support had + never been officially tested with it. + + * src/stat.c (human_fstype): Add file system ID definition. + * NEWS: Mention the improvement. + + Fixes http://bugs.gnu.org/19951 + +2015-02-24 Pádraig Brady <P@draigBrady.com> + + tee: add --write-error to control handling of closed pipes + tee is very often used with pipes and this gives better control + when writing to them. There are 3 classes of file descriptors + that tee can write to: files(1), pipes(2), and early close pipes(3). + Handling write errors to 1 & 2 is supported at present with the caveat + that failure writing to any pipe will terminate tee immediately. + Handling write errors to type 3 is not currently supported. + To improve the supported combinations we add these options: + + --write-error=warn + Warn if error writing any output including pipes. + Allows continued writing to still open files/pipes. + Exit status is failure if any output had error. + --write-error=warn-nopipe, -p + Warn if error writing any output except pipes. + Allows continued writing to still open files/pipes. + Exit status is failure if any non pipe output had error. + --write-error=exit + Exit if error writing any output including pipes. + --write-error=exit-nopipe + Exit if error writing any output except pipes. + + Use the "nopipe" variants when files are of types 1 and 3, otherwise + use the standard variants with types 1 and 2. A caveat with the above + scheme is that a combination of pipe types (2 & 3) is not supported + robustly. I.e. if you use the "nopipe" variants when using both type + 2 and 3 pipes, then any "real" errors on type 2 pipes will not be + diagnosed. + Note also a general issue with type 3 pipes that are not on tee's + stdout, is that shell constructs don't allow to distinguish early + close from real failures. For example `tee >(head -n1) | grep -m1 ..` + can't distinguish between an error or an early close in "head" pipe, + while the fail on the grep part of the pipe is distinguished + independently from the resulting pipe errors. This is a general + issue with the >() construct, rather than with tee itself. + + * NEWS: Mention the new feature. + * doc/coreutils.texi (tee invocation): Describe the new option. + * src/tee.c (usage): Likewise. + (main): With --write-error ignore SIGPIPE, and handle + the various exit, diagnostics combinations. + * tests/misc/tee.sh: Tess all the new options. + Fixes http://bugs.gnu.org/11540 + +2015-02-23 Bernhard Voelker <mail@bernhard-voelker.de> + + tee: close "-" file + This is a cleanup to the previous commit v8.23-138-g7ceaf1d. + + * src/tee.c (tee_files): Do not exempt the "-" file from being closed, + as this is no longer stdout but a normal file. + +2015-02-20 Bernhard Voelker <mail@bernhard-voelker.de> + + tee: treat '-' operand as file name as mandated by POSIX + Since v5.2.1-1247-g8dafbe5, tee(1) treated '-' as stdout while POSIX + explicitly requires to treat this as a file name. Revert this change, + as the interleaved output - due to sending another copy of input to + stdout - is not considered to be useful. Discussed in + http://lists.gnu.org/archive/html/coreutils/2015-02/msg00085.html + + * src/tee.c (tee_files): Remove the special handling for "-" operands. + (usage): Remove the corresponding sentence. + * doc/coreutils.texi (common options): Remove the "tee -" example. + (tee invocation): Document that tee(1) now treats "-" as a file name. + * tests/misc/tee.sh: Add a test case for "tee -". + While at it, re-indent the above multi-argument processing case and + extend that to 13 operands, as POSIX mandates that, too. + * tests/misc/tee-dash.sh: Remove now-obsolete test. + * tests/local.mk (all_tests): Remove the above test. + * NEWS (Changes in behavior): Mention the change. + +2015-02-18 Pádraig Brady <P@draigBrady.com> + + tee: exit early if no more writable outputs + * src/tee.c (main): Don't continue reading if we can't + output anywhere. + * tests/misc/tee.sh: Ensure we exit when no more outputs. + * NEWS: Mention the change in behavior. + + tests: support stderr verification with returns_() + * tests/init.sh (returns_): Disable tracing for this wrapper + function, so that stderr of the wrapped command is unchanged, + allowing for verification of the contents. + +2015-02-17 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: prefer STREQ_LEN and STRPREFIX over strncmp in all cases + * cfg.mk (sc_prohibit_strncmp): Improve the search pattern: use + _sc_search_regexp to find all invocations of strncmp except when + used on a macro definition line; just match the function name with + an opening parenthesis. Before, the expression missed places where + the comparison against 0 was in a subsequent line. + * src/system.h (STRNCMP_LIT): Shorten 'literal' to 'lit' to move + the whole definition of the macro into one line - thus making + sc_prohibit_strncmp pass. + (STRPREFIX): Add space before parenthesis. + * src/du.c (main): Prefer STREQ_LEN over strncmp. + * src/pinky.c (scan_entries): Likewise. + * src/tac.c (tac_seekable): Likewise. + * src/who.c (scan_entries): Likewise. + +2015-02-17 Pádraig Brady <P@draigBrady.com> + + stty: fix setting of 'extproc' on BSD + This setting is unusual on BSD as it's read normally in the local + flags returned by tcgetattr(), but can only be set with an ioctl. + Setting with tcsetattr() is ignored. + + * src/stty.c (NO_SETATTR): A new flag to indicate the setting + is read and displayed like a normal termios flag, but is set + in some other manner. + (main): Skip tcsetattr() for this setting when this flag is set. + Also fixup the exiting 'extproc' processing to handle the + '-extproc' case correctly. + (sane_mode): Skip setting '-extproc' for 'sane' to avoid the error. + This isn't ideal but matches the operation of the BSD native stty. + +2015-02-12 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: enhance '.mailmap' mappings for THANKS generation + * .mailmap (jeff.liu@oracle.com): There are 3 different names in the + 'git log' output for this email address; choose "Jeff Liu" as canonical + form. + (Алексей Шилин): Convert name to latin1 ("Aleksej Shilin") + to improve the sort order of the generated 'THANKS' file. + +2015-02-12 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: sort THANKS using our own gear + At least 'sort' on openSUSE/Fedora have a bug in the case-folding code + of their I18N downstream patch which leads to wrong sort results, + e.g. "Dániel" coming after "Dylan". + + * Makefile.am (THANKS): Sort the final contributor list using our + own sort implementation - as others may result in a different order; + add a FIXME comment to remove this again once common platforms have + a functional 'sort -f'. Add '-k1,1' for a better sort order. + While at it, save a grep and perl call to prepare the list from + 'THANKS.in' by doing all in the first perl call. + +2015-02-11 Pádraig Brady <P@draigBrady.com> + + maint: remove redundant diff filtering from sc_long_lines + * cfg.mk (sc_long_lines): diff files are now completely excluded, + so no need to filter portions of them. + Reported by Bernhard Voelker. + +2015-02-11 Pádraig Brady <P@draigBrady.com> + + build: update to latest gnulib + This includes a change to require --with-libmount + to be used with configure, due to the many libmount dependencies. + + * bootstrap: Sync with gnulib to exit early on gnulib-tool error. + * gl/lib/tempname.c.diff: Adjust for gnulib changes. + * gl/lib/tempname.h.diff: Likewise. + * gl/modules/tempname: Likewise. + * doc/.gitignore: Add new gendocs_template_min gnulib script. + +2015-02-11 Pádraig Brady <P@draigBrady.com> + + maint: exclude diff files from long lines check + * cfg.mk: Add .diff files to the exclusion expression + for sc_long_lines, since the gnulib code might be >= 80 chars. + Note 80 char lines trigger due to the added +/- diff marks. + Also normalize the $$ used in the other sc_long_lines exclusion + expressions. - Make bootstrap.conf a tiny bit more generic. - * bootstrap.conf (XGETTEXT_OPTIONS): Exclude gettext-related .m4 - files when e.g., AM_GNU_GETTEXT([external] appears in configure.ac. + maint: avoid arbitrary memory access with buggy localtime() + * src/ls.c (align_nstrftime): Be defensive and validate the tm_mon + index before using to access the abmon array. This was _not_ seen + to be an issue any system. See https://bugzilla.redhat.com/1190454 + + doc: give an example of using a seed for random operations + * doc/coreutils.texi (Random sources): Give an example using openssl, + generating a reproducible arbitrary amount of randomly distributed + data, given a seed value. + +2015-02-09 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: make sc_dd_O_FLAGS more robust + The construct "diff ... || diff=1 || diff=" does not set the variable + in all cases. This could be triggered with: + + $ env make diff=1 make sc_dd_O_FLAGS + dd_O_FLAGS + maint.mk: ./src/dd.c has inconsistent O_ flag lists + cfg.mk:59: recipe for target 'sc_dd_O_FLAGS' failed + make: *** [sc_dd_O_FLAGS] Error 1 + + * cfg.mk (sc_dd_O_FLAGS): Remember $? of the diff command directly + and check its value later rather than using the above mentioned + mapping. + +2015-02-09 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: make sc_THANKS_in_duplicates more robust + The previous commit v8.23-124-g7b1ca5f made the above syntax-check rule + fail, because that took the whole content of THANKS.in for comparison. + + * cfg.mk (sc_THANKS_in_duplicates): Strip off the header (all before the + first empty line) and the footer (all past the next empty line) from + 'THANKS.in' for the check. + +2015-02-09 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: sort contributors in THANKS.in + * THANKS.in: Document the preferred sort order as a comment + at the top of the file. Change "Марк Коренберг" to latin1 + ("Mark Korenberg"). Sort all entries. + * cfg.mk (sc_THANKS_in_sorted): Add rule to ensure that + 'THANKS.in' remains sorted. + +2015-02-06 Pádraig Brady <P@draigBrady.com> + + maint: document a caveat in the tail inotify implementation + * src/tail.c (main): Document another caveat with the + inotify implementation wrt multiple hardlinked files. + +2015-02-06 Pádraig Brady <P@draigBrady.com> + + tail: return inotify resources where possible + Each user has a maximum number of inotify watches, + so handle the cases where we exhaust these resources. + + * src/tail.c (tail_forever_inotify): Ensure we inotify_rm_watch() + the watch for an inode, when replacing with a new watch for a name. + Return all used inotify resources when reverting to polling. + Revert to polling upon first indication of inotify resource exhaustion. + Revert to polling on any inotify resource exhaustion. + Diagnose resource exhaustion correctly in all cases. + Avoid redundant reinsertion in the hash for unchanged watches + (where only attributes of the file are changed). + * tests/tail-2/retry.sh: Avoid false failure when reverting to polling. + * tests/tail-2/inotify-rotate.sh: Likewise. + * tests/tail-2/symlink.sh: Likewise. + * tests/tail-2/inotify-rotate-resources.sh: New test to check + that we're calling inotify_rm_watch() for replaced files. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug fix. + * THANKS.in: Thanks for reporting and problem identification. + +2015-02-06 Pádraig Brady <P@draigBrady.com> + + tests: fix recent regression in tail inotify test + * tests/tail-2/inotify-rotate.sh (cleanup_fail_): Set fail=1 + so that failures are identified. Regression in v8.23-63-g111a2b9 + Also use print_ver_ rather than open coding --verbose support. + Also check for more than a single 'b' which seems brittle. + +2015-02-05 Yury Usishchev <y.usishchev@samsung.com> + + build: ensure make-prime-list doesn't access out of bounds memory + The -fsanitize=address run associated with v8.22-75-gf940fec + failed to check make-prime-list, as src/primes.h is not + regenerated with `make clean`. Running with -fsanitize=address + indicates a read 1 byte beyond the allocated buffer. + + $ rm src/make-prime-list.o + $ make AM_CFLAGS=-fsanitize=address src/make-prime-list + $ src/make-prime-list 5000 + + ================================================================= + ==13913==ERROR: AddressSanitizer: heap-buffer-overflow on address + 0x61e00000fa43 at pc 0x4016f5 bp 0x7fff9d9840e0 sp 0x7fff9d9840d0 + READ of size 1 at 0x61e00000fa43 thread T0 + #0 0x4016f4 in main src/make-prime-list.c:214 + #1 0x7f98892c5fdf in __libc_start_main (/lib64/libc.so.6+0x1ffdf) + #2 0x401774 (src/make-prime-list+0x401774) + + 0x61e00000fa43 is located 0 bytes to the right of 2499-byte + region [0x61e00000f080,0x61e00000fa43) allocated by thread T0 here: + #0 0x7f98896ba7b7 in malloc (/lib64/libasan.so.1+0x577b7) + #1 0x400f3f in xalloc src/make-prime-list.c:163 + #2 0x400f3f in main src/make-prime-list.c:198 + + SUMMARY: AddressSanitizer: heap-buffer-overflow + src/make-prime-list.c:214 main + Shadow bytes around the buggy address: + 0x0c3c7fff9ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0x0c3c7fff9f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0x0c3c7fff9f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0x0c3c7fff9f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0x0c3c7fff9f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + =>0x0c3c7fff9f40: 00 00 00 00 00 00 00 00[03]fa fa fa fa fa fa fa + 0x0c3c7fff9f50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c3c7fff9f60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c3c7fff9f70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c3c7fff9f80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c3c7fff9f90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + Shadow byte legend (one shadow byte represents 8 application bytes): + Addressable: 00 + Partially addressable: 01 02 03 04 05 06 07 + Heap left redzone: fa + ... + ==13913==ABORTING + + * src/make-prime-list.c (main): Bounds check the incremented index, + before using to access the buffer. + Fixes http://bugs.gnu.org/19784 + +2015-02-03 Pádraig Brady <P@draigBrady.com> + + build: fix invalid gnulib patch + * gl/lib/tempname.c.diff: Fix recent breakage so it applies again. + Invalid patch was noticed at http://hydra.nixos.org/eval/1172233 + * cfg.mk: Exempt diff files from these "id_est" syntax checks. + (sc_ensure_gl_diffs_apply): A new syntax check, to ensure all + patches under gl/ apply cleanly. Note we use --fuzz=0 to check + patches apply cleanly for safety, due to the patch(1) issue detailed + in commit v8.21-117-g46f7e05 + * gl/lib/regcomp.c.diff: Rediffed. + * gl/lib/regex_internal.c.diff: Likewise. + * gl/lib/regex_internal.h.diff: Likewise. + * gl/lib/regexec.c.diff: Likewise. + * gl/lib/tempname.h.diff: Likewise. + +2015-02-03 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: avoid a FP on aarch64 when comparing env/printenv output + The following test fails on aarch64 on openSUSE's OpenBuildService + due to glibc's execvp reversing the pointers of 'environ', i.e., + the output of "env|tac" equals "env env" on that platform. + + * tests/misc/printenv.sh: Use 'env env' to work around the behavior + on that platform. + While at it, fix the grep pattern which suppressed all environment + variables starting with an underscore "_" instead of "$_" (and + "$LD_PRELOAD") only. + +2015-02-02 Pádraig Brady <P@draigBrady.com> + + dircolors: sync with Xiph file extensions + * src/dircolors.hin: Remove deprecated anx, axa, axv. Add opus. + Suggested by Scott Teal. + +2015-01-31 Bernhard Voelker <mail@bernhard-voelker.de> + + doc,maint: fix use of "i.e." in documentation and comments + To align with all other places (and correct grammar), change all + upper-case "I.E." to "I.e.". Furthermore, ensure that "i.e." is + followed by a comma. Finally, ensure to use a double-space before + "I.e.," at the beginning of a sentence. + + The following was used to change all offending uses (apart from + old ChangeLog files): + + $ git grep -liF 'i.e.' \ + | xargs sed -i \ + -e 's/I\.E\./I.e./g' \ + -e 's/\. \(I\.e\.\)/. \1/g' \ + -e 's/\([Ii]\.e\.\)\( \)/\1,\2/g' \ + -e 's/\([Ii]\.e\.\)$/\1,/g' + + * cfg.mk (sc_prohibit_uppercase_id_est): Add new rule. + (sc_ensure_double_space_after_dot_before_id_est): Likewise. + (sc_ensure_comma_after_id_est): Likewise. + (old_NEWS_hash): Refresh hash via "make update-NEWS-hash". + * NEWS: Change use of "id est" abbreviation via the above command. + * README: Likewise. + * README-prereq: Likewise. + * doc/coreutils.texi: Likewise. + * gl/lib/rand-isaac.c: Likewise. + * gl/lib/tempname.c.diff: Likewise. + * man/stdbuf.x: Likewise. + * src/cat.c: Likewise. + * src/copy.c: Likewise. + * src/copy.h: Likewise. + * src/cp.c: Likewise. + * src/cut.c: Likewise. + * src/dd.c: Likewise. + * src/df.c: Likewise. + * src/fiemap.h: Likewise. + * src/longlong.h: Likewise. + * src/ls.c: Likewise. + * src/numfmt.c: Likewise. + * src/pr.c: Likewise. + * src/shred.c: Likewise. + * src/shuf.c: Likewise. + * src/split.c: Likewise. + * tests/Coreutils.pm: Likewise. + * tests/df/df-symlink.sh: Likewise. + * tests/df/skip-rootfs.sh: Likewise. + * tests/init.sh: Likewise. + * tests/ls/color-norm.sh: Likewise. + * tests/misc/basename.pl: Likewise. + * tests/misc/ls-misc.pl: Likewise. + * tests/misc/md5sum-bsd.sh: Likewise. + * tests/misc/shred-exact.sh: Likewise. + * tests/misc/sort.pl: Likewise. + * tests/misc/stdbuf.sh: Likewise. + * tests/misc/tac-continue.sh: Likewise. + * tests/rm/r-root.sh: Likewise. + * tests/tail-2/symlink.sh: Likewise. + +2015-01-29 Pádraig Brady <P@draigBrady.com> + + doc: clarify the output format for the *sum utilities + * src/md5sum.c (usage): Detail the reasons for the default + double space between checksum and file name. + * doc/coreutils.texi (md5sum invocation): Likewise. + Explicitly mention the 3 formats that --check supports. + + Fixes http://bugs.gnu.org/19725 + +2015-01-28 Giuseppe Scrivano <gscrivano@gnu.org> + + sync: support syncing specified arguments + * m4/jm-macros.m4 (coreutils_MACROS): Check for syncfs(). + * man/sync.x: Add references to syncfs, fsync and fdatasync. + * doc/coreutils.texi (sync invocation): Document the new feature. + * src/sync.c: Include "quote.h". + (AUTHORS): Include myself. + (MODE_FILE, MODE_DATA, MODE_FILE_SYSTEM, MODE_SYNC): New enum values. + (long_options): Define. + (sync_arg): New function. + (usage): Describe that arguments are now accepted. + (main): Add arguments parsing and add support for fsync(2), + fdatasync(2) and syncfs(2). + * tests/misc/sync.sh: New (and only) test for sync. + * tests/local.mk: Reference the new test. + * AUTHORS: Add myself to sync's authors. + * NEWS: Mention the new feature. + +2015-01-25 Jim Meyering <meyering@fb.com> + + scripts: autotools-install: update + * scripts/autotools-install: Increase automake's version number + to 1.15 and add Stefano Lattarini's new GPG key ID. + Increase gettext's version to 0.19.4 and add Daiki Ueno's GPG key ID. + Also move VERSION definition "up" so that it is once again + automatically updated via the emacs hook snippet at the end + of the file. + +2015-01-24 Pádraig Brady <P@draigBrady.com> + + stty: only print supported options for combined options + * src/stty.c (usage): Don't reference unsupported options, + in the combined options descriptions. + * doc/coreutils.texi (stty invocation): Adjust for the + new order of the 'sane' and 'raw' combined options. + Also add -iutf8 to the 'sane' list. + + stty: document the 'status' character where supported + * src/stty.c (usage): On systems that support this setting (BSD), + display 'status' in the list of adjustable special characters. + * doc/coreutils.texi (stty invocation): Mention the option, and that + it's not currently supported on Linux. + +2015-01-24 Pádraig Brady <P@draigBrady.com> + + stty: document the 'discard' character setting + The equivalent of this is 'flush', but that was never documented + as an option (though was output with stty -a). Therefore use + the more descriptive name, also generally used on BSD systems. + Note even though this setting seems ineffective on Linux, supporting + the setting is useful to allow terminal programs to receive + the default ^O character code. + + * doc/coreutils.texi (stty invocation): Document the 'discard' option. + * src/stty.c (struct control_info): Add 'discard'; same as 'flush'. + (display_all): Show 'discard' rather than 'flush' char. + (display_changed): Likewise. + (usage): Document the 'discard' option. + +2015-01-24 Pádraig Brady <P@draigBrady.com> + + stty: add support for extproc/LINEMODE + Add support for the "extproc" option which is well described at: + http://lists.gnu.org/archive/html/bug-readline/2011-01/msg00004.html + + * src/stty.c (usage): Describe the extproc option if either the + Linux EXTPROC local option is defined, or the equivalent + BSD TIOCEXT ioctl is defined. + (main): Make the separate ioctl call for extproc on BSD. + * doc/coreutils.texi (stty invocation): Describe the option, + and reference the related RFC 1116. + * NEWS: Mention the new feature. + +2015-01-20 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: use returns_ function for new split test + * tests/split/record-sep.sh: Use the recently added returns_ function + to simplify the shell syntax in this test. Also remove the redirection + of stdout/stderr to /dev/null as this eases analyzing errors. + +2015-01-19 Assaf Gordon <assafgordon@gmail.com> + + split: new -t option to select record separator + * src/split.c (eolchar): A new variable to hold + the separator character (unibyte for now). + This is reference throughout rather than hardcoding '\n'. + (usage): Describe the new --separator option, and + mention records along with lines so there is no ambiguity + that all options treat lines and records equivalently. + (main): Have -t update eolchar, or default to '\n'. + * tests/split/record-sep.sh: New test case. + * tests/local.mk: Reference the new test. + * doc/coreutils.texi (split invocation): Document the new option. + Adjust --lines, --line-bytes, --number=[lr]/... to mention + they pertain to records if --separator is specified. + * NEWS: Mention the new feature. + +2015-01-19 Pádraig Brady <P@draigBrady.com> + + maint: fix typo in THANKS.in in previous commit + * THANKS.in: s/Stehpen/Stephen/ + +2015-01-19 Pádraig Brady <P@draigBrady.com> + + doc: clarify that du operands are interdependent + Following on from http://bugs.gnu.org/17546 + make it more obvious that du may elide specified operands + to avoid double counting in the set. + + * src/du.c (usage): Specify that du operates on the set of + operands, rather than each independently. + * doc/coreutils.texi (du invocation): Likewise. Also state + that the number of entries printed may change due to the + order specified. Currently, deeper items specified earlier + will result in them being displayed, but don't mention that + implementation detail in the documentation. + * THANKS.in: Add reporter. + Reported by Stephen Shirley + +2015-01-14 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: use compare-vs-/dev/null instead of 'test -s' + When some program produces unexpected output, that use of + compare-vs-/dev/null will ensure that the surprising output is + printed in the test's output. With "test -s err" only, one + would have to instrument and rerun in order to see the offending + output. + + * cfg.mk (sc_prohibit_and_fail_1): Exempt 'compare' from this check. + * tests/dd/misc.sh: Change "tests -s ... || fail=1" to + "compare /dev/null ... && fail=1". + * tests/misc/nice.sh: Likewise. + * tests/rm/read-only.sh: Likewise. + * tests/tail-2/inotify-race.sh: Likewise. + * tests/touch/no-dereference.sh: Likewise. + + Suggested by Jim Meyering in + http://lists.gnu.org/archive/html/coreutils/2015-01/msg00042.html + +2015-01-14 Pádraig Brady <P@draigBrady.com> + + tests: add extra protection against unexpected exits + Many tests use `program ... && fail=1` to ensure expected + error situations are indicated. However that would mask + an unexpected exit (like a crash). Therefore explicitly + check the expected exit code. + Note where error messages are also verified, the extra + protection is not added. + + * tests/init.sh (returns_): A new helper function to + check the return code of a command, and used + throughout the tests. + * cfg.mk (sc_prohibit_and_fail_1): Add a syntax check + to avoid new instances of this issue. + +2015-01-12 Pádraig Brady <P@draigBrady.com> + + tests: avoid skipping some df tests with libmount + * tests/df/no-mtab-status.sh: Provide libmount placeholders, + to avoid skipping the test when libmount is in use. + * tests/df/skip-duplicates.sh: Likewise. + * tests/df/skip-rootfs.sh: Comment that the test is moot + when libmount (/proc/self/mountinfo) is being used. + +2015-01-10 Pádraig Brady <P@draigBrady.com> + + maint: clean up some test issues identified with shellcheck + * tests/cp/cp-a-selinux.sh: Comment why unused variables are assigned. + Fix misspellings noticed while adjusting. + * tests/cp/fiemap-perf.sh: Fix quoting. + * tests/misc/shuf.sh: Avoid useless use of cat. + * tests/misc/printf-surprise.sh: Likewise. + +2015-01-08 Daiki Ueno <ueno@gnu.org> + + maint: adjustments related to previous shuf crash fix + * tests/misc/shuf.sh: Improve the test so it detects + crashes in more cases. + * NEWS: Mention the previous fix. + +2015-01-08 Assaf Gordon <assafgordon@gmail.com> + + maint: skip long-lines syntax-check if unsupported + * cfg.mk(sc_long_lines): Skip if required wc and sed options + are not supported, which is currently the case on OS X. + +2015-01-06 Paul Eggert <eggert@cs.ucla.edu> + + shuf: do not mishandle 'shuf -i0-0 1' + Problem reported by Daiki Ueno in: http://bugs.gnu.org/19520 + * src/shuf.c (main): Avoid core dump if !input_range. + * tests/misc/shuf.sh: Test for this bug. + +2015-01-01 Bernhard Voelker <mail@bernhard-voelker.de> -2007-03-10 Jim Meyering <jim@meyering.net> + maint: update further copyright year number ranges + * bootstrap: Update copyright year manually (missing in previous + gnulib update). + * tests/init.sh: Likewise. + + The entries in the exemption list are processed by + "grep -vEf ./.x-update-copyright", and therefore evaluated as an + extended regular expression (ERE). Thus, the "bootstrap" entry + also matched for bootstrap.conf which we want to be updated. + + * .x-update-copyright: Change all entries to EREs, i.e. including + the caret ^ and dollar sign $ meta-characters matching the beginning + and the end of a line. + * bootstrap.conf: Update copyright year by "make update-copyright". + + Finally, the only one showing up with the following command should + be the COPYING file: + $ git grep 'Copyright .* Free Software' | grep -v '2015 Free Software' + +2015-01-01 Pádraig Brady <P@draigBrady.com> + + doc: fix man page formatting for split CHUNKS options + * src/split.c (usage): Indent the info on CHUNKS so that + help2man can match it and align appropriately in its own section. + Fixes http://bugs.gnu.org/19228 + + build: update to latest gnulib + Pick up an errno adjustment in xstrtol() that fixes + a spurious test failure on Darwin 14.0.0. + Also update copyright year to 2015 avoiding a syntax-check failure. + +2015-01-01 Pádraig Brady <P@draigBrady.com> + + maint: update all copyright year number ranges + Run "make update-copyright" and then... + + * tests/sample-test: Adjust to use the single most recent year. + * tests/du/bind-mount-dir-cycle-v2.sh: Fix case in copyright message, + so that year is updated automatically in future. + +2014-12-30 Pádraig Brady <P@draigBrady.com> + + tests: fix possible 8 minute running time of inotify-rotate.sh + Commit v8.23-63-g111a2b9 removed the expensive tag on this test, + as it runs quickly on systems with inotify. However without that + it would take about 8 minutes for the test to complete all iterations. + + * tests/tail-2/inotify-rotate.sh: Tag as expensive without inotify. + Also adjust the polling parameters used on systems without inotify + so that the test completes within about 15 seconds. + +2014-12-30 Pádraig Brady <P@draigBrady.com> + + build: update to latest gnulib + Included in this are gnulib changes 3ea43e02 2768ceb7 + which make the device IDs from /proc/self/mountinfo + available to df. This can be leveraged by a subsequent + change to df to present a more accurate list of file systems. + + * bootstrap: Merge from gnulib. + * src/ls.c (dev_ino_pop): s/obstack_blank/obstack_blank_fast/ + as this API/ABI has changed, giving memory exhausted errors + if negative (large positive) numbers are passed to obstack_blank(). + * tests/df/skip-duplicates.sh: Adjust as the new gnulib code + requires a non NULL mnt_opts even when mnt_type is not "none". + +2014-12-29 Pádraig Brady <P@draigBrady.com> - Try to fix today's NFS-related failure: Treat ESTALE like EACCES. - * gl/lib/savewd.c: Copy this file from gnulib, then change - "errno != EACCES" to (errno != EACCES && errno != ESTALE). - The symptom was this failure in tests/install/basic-1: - ginstall: cannot create directory `rel/a': Stale NFS file handle + maint: remove duplicate names from THANKS + * .mailmap: Adjust so that there is only a single + entry per name in the generated THANKS. + +2014-12-26 Pádraig Brady <P@draigBrady.com> + + doc: update the URL referencing SI prefixes + Identified at https://www.gnu.org/software/gnun/linc/linc.html - The preceding change solved part of the problem. Now ginstall fails. - * tests/install/basic-1: Temporarily, don't redirect ginstall's - stderr to /dev/null, so I can see why the NFS autobuilder's NFS test - is failing. + * doc/coreutils.texi (Block size): Fix the stale link. + +2014-12-25 Pádraig Brady <P@draigBrady.com> + + tests: fix error message check on some systems + http://hydra.nixos.org/build/18129583 identified (on OS X) + an incorrect test assumption in the previous commit. - * tests/install/basic-1: When setting up an unreadable "." in an - inaccessible parent, make the parent inaccessible *after* making "." - unreadable. Otherwise, running "chmod a-r ." in an already- - inaccessible parent would fail on NFS with "Stale NFS file handle". - Reported by Bob Proulx. + * gl/lib/xdectoint.c (__xnumtoint): Suppress the EINVAL + error message as it's redundant in this context. + * tests/misc/tail.pl: Suppress _optionally_ appended + strerror messages. + * tests/fmt/base.pl: Likewise. + * tests/pr/pr-tests.pl: Likewise. + * tests/split/l-chunk.sh: Likewise. + +2014-12-19 Pádraig Brady <P@draigBrady.com> + + diagnose too-large numbers better + Following on from commit v8.23-82-gaddae94, consistently diagnose + numbers that are too large, so as to distinguish from other errors, + and make the limits obvious. + + * gl/modules/xdectoint: A new module implementing xdecto[iu]max(), + which handles the common case of parsing a bounded integer and + exiting with a diagnostic on error. + * gl/lib/xdectoimax.c: The signed variant. + * gl/lib/xdectoint.c: The parameterized implementation. + * gl/lib/xdectoint.h: The interface. + * gl/lib/xdectoumax.c: The unsigned variant. + * bootstrap.conf: Reference the new module. + * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): + Exclude the parameterized templates. + * src/csplit.c: Output EOVERFLOW or ERANGE errors if appropriate. + * src/fmt.c: Likewise. + * src/fold.c: Likewise. + * src/head.c: Likewise. + * src/ls.c: Likewise. + * src/nl.c: Likewise. + * src/nproc.c: Likewise. + * src/shred.c: Likewise. + * src/shuf.c: Likewise. + * src/stdbuf.c: Likewise. + * src/stty.c: Likewise. + * src/tail.c: Likewise. + * src/truncate.c: Likewise. + * src/split.c: Likewise. + * src/pr.c: Likewise. + * tests/pr/pr-tests.pl: Adjust to avoid matching errno diagnostic. + * tests/fmt/base.pl: Likewise. + * tests/split/l-chunk.sh: Likewise. + * tests/misc/shred-negative.sh: Likewise. + * tests/misc/tail.pl: Likewise. Also remove the redundant + existing ERR_SUBST from test err-6. + * tests/ls/hex-option.sh: Check HEX/OCT options. + * tests/misc/shred-size.sh: Likewise. + * tests/misc/stty-row-col.sh: Likewise. + +2014-12-19 KO Myung-Hun <komh@chollian.net> + + build: add $(EXEEXT) suffix to man page make targets + * man/local.mk: Add $(EXEEXT) suffix to the executables, + which is significant on OS/2 for example. + + build: don't call OS/2 routines on all systems + * src/system.h: Add a missing __OS2__ ifdef guard. + Also adjust spacing around () to avoid a syntax-check failure. + +2014-12-18 KO Myung-Hun <komh@chollian.net> + + build: expand a response file and a wildcard on OS/2 + OS/2 traditional shells(cmd) do not expand a response file(@file) + or a wildcard. Expand them in each utility itself. + + * src/system.h (initialize_main): Define on OS/2. Expand a response + file and a wildcard. + +2014-12-16 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: fix how to request changes for THANKS.in + * THANKS.in: Change the comment at the top to send change requests + regarding this file to the main mailing list rather than referring + to cp's --help output for the mailing list's address - which does + not include that information anymore. + +2014-12-16 Paul Eggert <eggert@cs.ucla.edu> + + dd: fix typo in previous change + Reported by Bernhard Voelker in: + http://lists.gnu.org/archive/html/bug-gnulib/2014-12/msg00191.html + * src/dd.c (scanargs): s/IN/OUT/. + + dd: diagnose too-large numbers better + Reported by Isabella Parakiss in: + http://lists.gnu.org/archive/html/bug-gnulib/2014-12/msg00184.html + * src/dd.c (parse_integer): Return strtol_error code, not bool. + All callers changed. + (scanargs): Improve quality of diagnostic when a number is too large. + +2014-12-10 Pádraig Brady <P@draigBrady.com> + + build: use the system printf routines in most cases + glibc <= 2.5 would crash when passed invalid long double values, + therefore internal gnulib routines were used, essentially only by od, + to output such invalid values. Later glibc versions don't crash, + as per https://sourceware.org/bugzilla/show_bug.cgi?id=4586 + and subsequently od was adjusted to use the system printf routines + through the use of the ftoastr module with commit v8.7-22-ga71c22f. + Consequently our testing of this feature was moot, and use of + the gnulib printf replacement for printf(1), od(1) and error(3) etc. + was redundant. + + * configure.ac (gl_printf_safe): Unset so that we don't check that + "nan" is output for these long double values. + * tests/misc/od-float.sh: Adjust all existing checks to fail if od + exits with failure status (like crashing for example). Add a new case + for one of the problematic invalid long double values for x86_64. + We only check that od exits successfully at present, which may change + if https://sourceware.org/bugzilla/show_bug.cgi?id=17661 is resolved. + +2014-12-03 Pádraig Brady <P@draigBrady.com> + + maint: avoid -fsanitize=undefined warning in rand-isaac + * gl/lib/rand-isaac.c (isaac_refill): readisaac() purposefully passes + unaligned pointers to avoid memory copies. This is only done on + platforms where this is defined, so avoid the associated + runtime warning generated with -fsanitize=undefined, which is: + + lib/rand-isaac.c:125:182: runtime error: store to misaligned address + 0x63100003d7fd for type 'isaac_word', which requires 8 byte alignment + 0x63100003d7fd: note: pointer points here + 47 ce ed a4 be be be 00 00 00 00 00 00 00 00 ... + ^ + +2014-12-02 Pádraig Brady <P@draigBrady.com> + + maint: avoid signed overflow warning with -O3 + Prompted by the implicit -O3 added by american-fuzzy-lop, + seen with GCC 4.9.2 on x86_64. + + src/pr.c: In function 'print_files.part.5': + src/pr.c:1781:6: error: assuming signed overflow does not occur + when simplifying conditional to constant [-Werror=strict-overflow] + if (cols_ready_to_print () == 0) + + This happens because cols_ready_to_print() is inlined + thus reducing the comparison to the N variable in print_page(). + Now this can't overflow due to the protection when parsing the + specified column, but use an unsigned type to avoid the + apparent signed overflow. + + * src/pr.c (cols_ready_to_print): Increment an unsigned type to + avoid the subsequent signed overflow warning. + +2014-12-02 Boris Ranto <branto@redhat.com> + + du: handle sub-bind-mount cycles gracefully + This patch fixes the handling of sub-bind-mount cycles which are + incorrectly detected as the file system errors. If you bind mount the + directory 'a' to its subdirectory 'a/b/c' and then run 'du a/b' you + will get the circular dependency warning even though nothing is wrong + with the file system. This happens because the first directory that is + traversed twice in this case is not a bind mount but a child of bind + mount. The solution is to traverse all the directories in the cycle + that fts detected and check whether they are not a (bind) mount. + + * src/du.c (mount_point_in_fts_cycle): New function that checks whether + any of the directories in the cycle that fts detected is a mount point. + * src/du.c (process_file): Update the function to use the new function + that looks up all the directories in the fts cycle instead of only the + last one. + * tests/du/bind-mount-dir-cycle-v2.sh: New test case that exhibits the + described behavior. + * tests/local.mk: Reference the new root test. + * NEWS: Mention the bug fix. - * Makefile.maint (po-check): Exclude c99-to-c89.diff. +2014-11-29 Pádraig Brady <P@draigBrady.com> -2007-03-09 Jim Meyering <jim@meyering.net> + tests: avoid hardlink to symlink tests where not supported + These checks weren't correctly avoided in commit v8.23-66-g222d7ac - Avoid test failures on Darwin 7.9.0 (MacOS X 10.3.9) - * tests/chgrp/basic: Don't let failure by chgrp to set the - group of a symlink make this test fail. Do give a diagnostic. - In the chgrp-no-change-ctime test, add darwin7.9.0 as another - known-failing system. - When failing on some other system, print $host_triplet, too. - Also avoid test failures on Darwin 8.8.x (MacOS X 10.4). - Reported by Peter Fales. + * tests/cp/same-file.sh: Avoid all hardlink to symlink tests + on platforms where that's not supported. + Identified by http://hydra.nixos.org/build/17636446 -2007-03-08 Jim Meyering <jim@meyering.net> +2014-11-28 Pádraig Brady <P@draigBrady.com> - * src/c99-to-c89.diff: Reflect the new c99'ism, update offsets. + build: fix missing casts from recent change + * src/dd.c (alloc_[io]buf): I committed a stale patch that omitted + the casts needed on 32 bit. + Identified by http://hydra.nixos.org/build/17610188 -2007-03-08 Paul Eggert <eggert@cs.ucla.edu> +2014-11-27 Pádraig Brady <P@draigBrady.com> - 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). - (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 - invoke quote (full_filename (...)) only once. More details at: - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9952/focus=9996> + rm: fix prompted number of arguments to remove on some platforms + "zu" was output on solaris 8 for example rather than the number, + since coreutils-8.22. -2007-03-08 Jim Meyering <jim@meyering.net> + * cfg.mk: Disallow %z, since we don't currently use the gnulib + fprintf module, so any usage with it is non portable. Also + our usage with error() currently works only through an ancillary + dependency on the vfprintf gnulib module. + * src/rm.c (main): Use %PRIuMAX rather than %zu for portability. + * src/dd.c (alloc_[io]buf): Likewise for consistency. + * src/od.c (main): Likewise. + * src/split.c (set_suffix_length): Likewise. + * NEWS: Mention the rm bug fix. + Reported in http://bugs.gnu.org/19184 - Generalize a few more cvs-isms. - * bootstrap (checkout_only_file): Rename from CVS_only_file. - Change comments and diagnostics not to say "CVS". +2014-11-26 Pádraig Brady <P@draigBrady.com> - * bootstrap: Run libtool, if necessary. + tests: fix portability issue in dd/ascii test + Solaris 8 was seen to issue this error: + "printf: `&': illegal format character" - Make bootstrap a little more general. - * bootstrap (build_aux): Factor out/use this definition. - Formally require a "AC_CONFIG_AUX_DIR($build_aux)" line in configure.ac. - (insert_sorted_if_absent): Move function definition "up", to - precede new first use. - If $build_aux/ doesn't exist initially, create it, and - mark it as ignored. + * test/dd/ascii.sh: Use the coreutils printf in this test + rather than the system one, to avoid portability issues. -2007-03-03 Andrew Church <achurch@achurch.org> (tiny change) - Paul Eggert <eggert@cs.ucla.edu> +2014-11-26 Paul Eggert <eggert@cs.ucla.edu> - Fix a bug: cp -x would fail to set mount point permissions. - * NEWS: mention cp -x bug fix - * src/copy.c (copy_internal): Don't return immediately after - copying a mount point that we do not intend to recurse under. - Based on a patch by Andrew Church. + build: port new rule for coreutils.h to old Bash + Reported by Ted Carr in: http://bugs.gnu.org/19184 + * src/local.mk (src/coreutils.h): + Don't assume single_binary_progs is nonempty. -2007-03-03 Jim Meyering <jim@meyering.net> +2014-11-24 Tobias Stoeckmann <tobias@stoeckmann.org> - pwd-unreadable-parent: Skip test on ia64/Linux, too. - * tests/misc/pwd-unreadable-parent: Also skip when $REPLACE_GETCWD. - Reported by Bob Proulx. + paste: fix possible truncated output with large files + If '\n' was present at the size_t boundary of a file, + then that and subsequent data would be discarded. -2007-03-02 Jim Meyering <jim@meyering.net> + * src/paste.c (paste_parallel): Avoid the overflow issue + by changing the flag to a boolean rather than a count. + * NEWS: Mention the bug fix. - pwd-unreadable-parent: Skip test on non-Linux/GNU systems. - * tests/misc/pwd-unreadable-parent: Rather than trying to decide - whether this test has a chance of succeeding, run it only when - $(host_os) is linux-gnu. It was failing on powerpc-apple-darwin8.8.0 - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Add host_os=$(host_os). +2014-11-24 Pádraig Brady <P@draigBrady.com> + + df: only suppress remote mounts of separate exports with --total + * src/df.c (filter_mount_list): Separate remote locations are + generally explicitly mounted, so list each even if they share + the same remote device and thus storage. However with --total + keep the suppression to give a more accurate value for the + total storage available. + (usage): Expand on the new implications of --total and move + it in the options list according to alphabetic order. + doc/coreutils.texi (df invocation): Mention that --total impacts + on deduplication of remote file systems and also move location + according to alphabetic order. + * tests/df/skip-duplicates.sh: Add remote test cases. + * NEWS: Mention the change in behavior. + + Reported in http://bugs.debian.org/737399 + Reported in http://bugzilla.redhat.com/920806 + Reported in http://bugzilla.opensuse.org/866010 + Reported in http://bugzilla.opensuse.org/901905 + +2014-11-23 Pádraig Brady <P@draigBrady.com> + + df: ensure -a shows all remote file system entries + commit v8.22-125-g9d736f8 printed placeholder "-" values + for device names that didn't match the preferred device name + for a particular mount point. However that was seen to erroneously + suppress values for aliased host names or exports, common with + remote file systems. + + * src/df.c (me_for_dev): Rename from devname_for_dev() so that + we can determine the remoteness as well as the name for the + preferred mount entry. + (get_dev): Don't output place holder values when both + current and preferred mount entries are remote. + + Reported in http://bugs.debian.org/737399 + +2014-11-22 Pádraig Brady <P@draigBrady.com> + + tests: add a case verifying mv on case insensitive file systems + * NEWS: Update the recent entry to also mention the avoidance + of incorrectly unlinking a multi-hardlinked "source" file when + presented with source and dest that only differ in case. + * src/copy.c (same_file_ok): Mention the case issue with same_name(). + * tests/mv/hardlink-case.sh: Test the issue on HFS+. + * tests/local.mk: Reference the new test case. + * tests/mv/vfat: Remove an old related but unused test case. + +2014-11-21 Pádraig Brady <P@draigBrady.com> + + doc: mention how to avoid newlines impacting ls -1 + * src/ls.c (usage): Mention the -b and -q options + in the -1 description. + * doc/coreutils.texi (ls invocation): Likewise. + +2014-11-21 Pádraig Brady <P@draigBrady.com> + + tests: chcon: avoid false failure with newer selinux + file_t is now mapped to unlabeled_t as per: + http://danwalsh.livejournal.com/68189.html + + Therefore use the latter to ensure we match correctly. + This is needed on >= Fedora 21 for example, + while it also works on earlier releases. + +2014-11-21 Boris Ranto <branto@redhat.com> + + mv: fail when moving a file to a hardlink + We may run into a race condition if we treat hard links to the same file + as distinct files. If we do 'mv a b' and 'mv b a' in parallel, both a + and b can disappear from the file system. The reason is that in this + case the unlink on src is called and the system calls can end up being + run in the order where unlink(a) and unlink(b) are the last two system + calls. Therefore exit with an error code so that we avoid the potential + data loss. + + * src/copy.c (same_file_ok): Don't set unlink_src that was used by mv, + and return false for two hardlinks to a file in move_mode. + *src/copy.c (copy_internal): No longer honor the unlink_src option, + used only by mv. + NEWS: Mention the change in behavior. + * tests/cp/same-file.sh: Augment to cover the `cp -a hlsl1 sl1` case. + * tests/mv/hard-verbose.sh: Remove no longer needed test. + * tests/local.mk: Remove the reference to hard-verbose.sh. + * tests/mv/hard-4.sh: Adjust so we fail in this case. + * tests/mv/i-4.sh: Likewise. + * tests/mv/symlink-onto-hardlink-to-self.sh: Likewise. + +2014-11-18 Pádraig Brady <P@draigBrady.com> + + maint: run strftime syntax check on newer systems + * cfg.mk (sc_strftime_check): Adjust regex to handle + newer glibc info formatting with different indentation + and quoting. + +2014-10-30 Pádraig Brady <P@draigBrady.com> + + maint: tests: fix comments about retry_delay_ + * tests/tail-2/F-vs-missing.sh: Comment with the correct total delay. + * tests/tail-2/F-vs-rename.shi: Likewise. + * tests/tail-2/flush-initial.sh: Likewise. + * tests/tail-2/inotify-hash-abuse.sh: Likewise. + * tests/tail-2/pipe-f2.sh: Likewise. + * tests/misc/chroot-fail.sh: Initialize can_chroot_root in all cases. + + tests: make inotify-rotate more robust and efficient + * tests/tail-2/inotify-rotate.sh: Use retry_delay_ + to employ an exponential backoff with a total delay of + up to 25.5s. The 15s delay was seen to trigger a false + failure in http://hydra.nixos.org/build/16546517 + Also remove the .1s sleep in each of the 50 iterations + to reduce the running time of the test and thus the + expensive_ tag on this test was removed. + Also ensure that we use the standard exit procedure + upon failure to avoid any erroneous diagnostics due + to persistent files on NFS. + +2014-10-29 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: make du/move-dir-while-traversing more robust + * tests/du/move-dir-while-traversing.sh: Catch failure of retry_delay_ + when waiting for the watcher to get ready. + +2014-10-27 Pádraig Brady <P@draigBrady.com> + + doc: mention that df -a includes duplicate file systems + * src/df.c (usage): Mention that duplicate file systems are shown + with this option, not just dummy file systems. + * doc/coreutils.texi (df invocation): For the --all option, expand + on the class of normally suppressed mount entries that it includes. + + Reported in http://bugs.debian.org/737399 + +2014-10-23 Pádraig Brady <P@draigBrady.com> + + maint: improve sc_long_lines syntax-check speed + sc_long_lines was the slowest syntax check + + before$ time make sc_long_lines + long_lines + real 0m2.740s + + after $ time make sc_long_lines + long_lines + real 0m0.677s + + * src/cfg.mk (sc_dd_max_sym_length): s/--max-line-length/-L/ + for compat with BSDs. + (sc_long_lines): Prefilter with wc -L to only identify lines + in files that have lines longer than 80 characters. + +2014-10-23 Mike Frysinger <vapier@gentoo.org> + + tests: d_type-check: don't hardcode the C library name + * tests/d_type-check: The hardcoded name doesn't hold true for all + Linux/glibc platforms, let alone Linux/non-glibc. + Use ctypes.util.find_library() instead to search for the library. + +2014-10-17 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: avoid false failure when comparing /proc files + At least the MHz number in /proc/cpuinfo may change, thus leading to + a false positive failure when comparing the expected against the + actual output file. Use an invariant file instead: /proc/version. + + * tests/misc/head-c.sh: s/cpuinfo/version/ + +2014-10-16 Pádraig Brady <P@draigBrady.com> + + tests: fix test hang with unstable inodes in /proc + * cp/proc-zero-len.sh: Search the 'err' file + for the error to ignore, not stdin. + + chroot: call chroot() unconditionally to handle bind mounted "/" + * src/chroot.c (is_root): Adjust to compare canonicalized paths + rather than inodes, to handle (return false in) the case where + we have a tree that is constructed by first bind mounting "/" + (thus having the same inode). + (main): Unconditionally call chroot() because it's safer + and of minimal performance benefit to avoid in this case. + This will cause inconsistency with some platforms + not allowing `chroot / true` for non root users. + * tests/misc/chroot-fail.sh: Adjust appropriately. + * NEWS: Mention the bug fixes. + Fixes http://bugs.gnu.org/18736 + +2014-10-15 Pádraig Brady <P@draigBrady.com> + + copy: avoid an extraneous error when reporting errors + * src/copy.c (copy_reg): If sparse_copy() failed, then an + erroneous error about failing to extend the file would be reported. + + cp: read sparse files more efficiently with non regular destination + * src.copy.c (copy_reg): Use fiemap to read sparse files, even + if the output is not to a regular file. + * NEWS: Mention the improvement. + +2014-10-15 Pádraig Brady <P@draigBrady.com> + + cp: avoid speculative preallocation with --sparse=always + With --sparse=always use fallocate(...PUNCH_HOLE...) to + avoid any permanent allocation due to speculative + preallocation employed by file systems such as XFS. + + * m4/jm-macros.m4: Check for <linux/falloc.h> and fallocate(). + * src/copy.c (punch_hole): A new function to try and punch + a hole at the specified offset if supported. + (create_hole): Call punch_hole() after requesting a hole. + (extent_copy): Likewise. + * NEWS: Mention the improvement. + +2014-10-15 Pádraig Brady <P@draigBrady.com> - * tests/misc/pwd-long: Also allow "+" in $PWD. + copy: detect smaller holes than the copy buffer size + Previously cp would not detect runs of NULs that were + smaller than the buffer size used for I/O (currently 128KiB). - Remove another coreutils-ism. Formatting cleanup. - * Makefile.maint (my-distcheck): Update an outdated comment. - (emit_upload_commands): Use $(PACKAGE) rather than "coreutils". - (my-distcheck): Skip the c99/c89 check if there's no such .diff file. + * src/copy.c (copy_reg): Use an independent hole_size, set to + st_blksize, to increase the chances of detecting a representable hole, + in a run of NULs read from the input. + (create_hole): A new function refactored from sparse_copy() and + extent_copy() so we have a single place to handle holes. + (sparse_copy): Adjust to loop over the larger input buffer + in chunks of the passed hole size. Also adjust to only call + lseek once per hole, rather than at least once per input buffer. + * tests/cp/sparse.sh: Add test cases for various sparse chunk sizes. + * NEWS: Mention the improvement. -2007-03-01 Jim Meyering <jim@meyering.net> +2014-10-09 Wieland Hoffmann <themineo@gmail.com> - * Makefile.maint (warn_cflags): Hoist, adding "-Dlint -O". - (my-distcheck): Use the new variable, instead of too-long literal. + doc: clarify that timeout limits are not 2038 seconds + * man/timeout.x: The 2038 that the sentence is referring to is the year + 2038, not 2038 seconds (the default unit used for timeouts). + +2014-10-08 Pádraig Brady <P@draigBrady.com> + + maint: avoid new signed overflow warning on 32 bit + Prompted by http://hydra.nixos.org/build/15682577 + with GCC 4.8.3 on i686 + + src/tac.c:557:6: error: assuming signed overflow does not occur + when simplifying conditional to constant [-Werror=strict-overflow] + if (bytes_copied < 0) + + This happens because copy_to_temp() is inlined in tac_nonseekable(), + thus reducing the comparison to the bytes_copied variable in + copy_to_temp. Now this can't overflow on either 32 or 64 bit + due to the protection of the preceding fwrite(). We could use a + guard like "if (bytes_copied <= OFF_T_MAX - bytes_read)" to avoid + the warning, but rather than a runtime branch, just use an unsigned + type to avoid apparent signed overflow on systems where the accumulation + is not promoted to unsigned (32 bit size_t, 64 bit off_t). + + * src/tac.c (copy_to_temp): Increment an unsigned type to + avoid the subsequent signed overflow warning. + +2014-10-08 Jim Meyering <meyering@fb.com> + + tests: split/b-chunk.sh: avoid spurious fail on non-Linux + * tests/split/b-chunk.sh: Skip each file that does not exist. + Some systems lack /proc/version or /sys/kernel/profiling + +2014-10-08 Pádraig Brady <P@draigBrady.com> + + maint: avoid syntax-check failures in previous patch + * tests/misc/od-j.sh: Non standard comparison order. + * tests/split/b-chunk.sh: Confusing input file name. + * tests/tail-2/tail-c.sh: Redundant require ulimit. + +2014-10-08 Paul Eggert <eggert@cs.ucla.edu> + + wc: don't miscount /sys and similar file systems + Fix similar problems in head, od, split, tac, and tail. + Reported by George Shuklin in: http://bugs.gnu.org/18621 + * NEWS: Document this. + * src/head.c (elseek): Move up. + (elide_tail_bytes_pipe, elide_tail_lines_pipe): New arg + CURRENT_POS. All uses changed. + (elide_tail_bytes_file, elide_tail_lines_file): + New arg ST and remove arg SIZE. All uses changed. + * src/head.c (elide_tail_bytes_file): + * src/od.c (skip): Avoid optimization for /sys files, where + st_size is bogus and st_size == st_blksize. + Don't report error at EOF when not optimizing. + * src/head.c, src/od.c, src/tail.c: Include "stat-size.h". + * src/split.c (input_file_size): New function. + (bytes_split, lines_chunk_split, bytes_chunk_extract): New arg + INITIAL_READ. All uses changed. Use it to double-check st_size. + * src/tac.c (tac_seekable): New arg FILE_POS. All uses changed. + (copy_to_temp): Return size of temp file. All uses changed. + * src/tac.c (tac_seekable): + * src/tail.c (tail_bytes): + * src/wc.c (wc): + Don't trust st_size; double-check by reading. + * src/wc.c (wc): New arg CURRENT_POS. All uses changed. + * tests/local.mk (all_tests): Add tests/misc/wc-proc.sh, + tests/misc/od-j.sh, tests/tail-2/tail-c.sh. + * tests/misc/head-c.sh: + * tests/misc/tac-2-nonseekable.sh: + * tests/split/b-chunk.sh: + Add tests for problems with /proc and /sys files. + * tests/misc/od-j.sh, tests/misc/wc-proc.sh, tests/tail-2/tail-c.sh: + New files. - Make "make syntax-check" rules less coreutils-specific. - * Makefile.maint (sc_cast_of_x_alloc_return_value): Use CVS_LIST_EXCEPT. - (sc_cast_of_alloca_return_value): Likewise. - (sc_root_tests): Do nothing if there is no check-root target - in tests/Makefile.am. +2014-10-04 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: document stat's output with the --terse option + * doc/coreutils.texi (stat invocation): Add a paragraph documenting + stat's output format when the --terse option is specified, both in + normal and in --file-system mode. + + Reported by Dan Jacobson <jidanni@jidanni.org> + in http://bugs.gnu.org/18624 + +2014-10-02 Nick Alcock <nick.alcock@oracle.com> + + tests: fix false failure for test referencing libdl + * init.cfg (gcc_shared_): -ldl has to be positioned after the object + files that may rely upon it. This fixes tests/cp/nfs-removal-race.sh + which references dlsym() from libdl. + +2014-10-02 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: avoid double semicolon syntax check failure + A syntax-check recently added to gnulib would trigger a failure + (once gnulib gets updated here) for a statement introduced with + commit v8.23-43-gaf2a4ed: + + src/dd.c:806: char const *time_fmt = _(", %g s, %s/s\n");; + maint.mk: Double semicolon detected + make: *** [sc_prohibit_double_semicolon] Error 1 + + * src/dd.c (print_xfer_stats): s/;;/;/ + +2014-09-30 Federico Simoncelli <fsimonce@redhat.com> + + dd: new status=progress level to print stats periodically + * src/dd.c: Report the transfer progress every second when the + new status=progress level is used. Adjust the handling and + description of the status= option so that they're treated as + mutually exclusive levels, rather than flags with implicit precedence. + * doc/coreutils.texi (dd invocation): Document the new progress + status level. Reference the new level in the description of SIGUSR1. + * tests/dd/stats.sh: Add new test for status=progress. + * tests/dd/misc.sh: Change so status=none only takes precedence + if it's the last level specified. + * NEWS: Mention the feature. + +2014-09-30 Pádraig Brady <P@draigBrady.com> + + dd: use more robust SIGUSR1 handling + * src/dd.c (ifd_reopen): A new wrapper to ensure we + don't exit upon receiving a SIGUSR1 in a blocking open() + on a fifo for example. + (iftruncate): Likewise for ftruncate(). + (iread): Process signals also after a short read. + (install_signal_handlers): Install SIGINFO/SIGUSR1 handler + even if set to SIG_IGN, as this is what the parent can easily + set from a shell script that can send SIGUSR1 without the + possiblity of inadvertently killing the dd process. + * doc/coreutils.texi (dd invocation): Improve the example to + show robust usage wrt signal races and short reads. + * tests/dd/stats.sh: A new test for various signal races. + * tests/local.mk: Reference the new test. + * NEWS: Mention the fix. - Run the writable-files check only for release-building targets. - * Makefile.maint (local-checks-available): Remove writable-files. - (alpha beta major): Put it here, instead. +2014-09-24 Paul Eggert <eggert@cs.ucla.edu> - "make syntax-check" now runs only Makefile.cfg-selected tests - * Makefile.maint (syntax-check-rules): Hoist this definition so that - it precedes the indirect use in the definition of $(local-check). - (local-check): Use :=, not just "=". - (syntax-check): Depend on $(local-check), not $(syntax-check-rules). + test: check for Fedora 20 sort key bug + Problem reported by Göran Uddeborg in: http://bugs.gnu.org/18540 + * tests/misc/sort.pl: New test 23. -2007-02-28 Bruno Haible <bruno@clisp.org> +2014-09-24 David Sterba <dsterba@suse.cz> - * bootstrap.conf (gnulib_modules): Replace xreadlink with - xreadlink-with-size. Add xreadlink. - * src/copy.c (copy_internal): Update. - * src/ls.c (is_directory): Update. - * src/stat.c (print_stat): Update. - * src/readlink.c (main): Use the one-argument xreadlink function. + mv: use reflink=auto mode by default + On some filesystems (BTRFS), moving a file within the filesystem may + cross subvolume boundaries and we can use a lightweight reflink copy, + similar to what cp(1) can do, which is faster than a full file copy. + This is enabled by default because it's only an optimization for + the fall back copy and does not break user expectations or usability. -2007-02-28 Paul Eggert <eggert@cs.ucla.edu> + * src/mv.c (cp_option_init): Set the reflink mode to AUTO. + * NEWS: Mention the improvement. - * doc/coreutils.texi (Common options): --si outputs "M", not "MB". - Problem reported by Philip Rowlands in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-02/msg00283.html>. +2014-09-23 Pádraig Brady <P@draigBrady.com> -2007-02-28 Jim Meyering <jim@meyering.net> + stty: only list supported options in --help and man pages + * src/stty.c (usage): Exclude unsupported options from --help, + which for example impacts the "dsusp" and "cdtrdsr" options on Linux. + Fixes http://bugs.gnu.org/18506 - * .x-sc_file_system: Add the new test, tests/misc/df-P, to this - list of exceptions, for the "make distcheck" sc_file_system rule. +2014-09-23 Michal Nazarewicz <mina86@mina86.com> - * Makefile.maint (gnulib_snapshot_date): Remove now-unused definition. + doc: fix use of "e.g." in stdbuf help message + "E.g." stands for latin "exempli gratia" which is typically read + as "for example". "E.g." does not stand for the word "example". + As such, "for e.g." might be read as "for for example". -2007-02-27 Paul Eggert <eggert@cs.ucla.edu> + Fix this usage by simply replacing "e.g." with "example". - Make df -P immune to effects of e.g., the BLOCK_SIZE envvar. - * NEWS: With -P, the default block size and output format is not - affected by DF_BLOCK_SIZE, BLOCK_SIZE, or BLOCKSIZE. - * src/df.c (main): Implement this. +2014-09-23 Bernhard Voelker <mail@bernhard-voelker.de> -2007-02-27 Jim Meyering <jim@meyering.net> + build: pass program name to help2man after other options + * man/local.mk (.x.1): Move the program name argument down after + the last option argument when calling $(run_help2man). + While the other way would be accepted for the GNU help2man program, + it is not for the 'dummy-man' script (called as a fallback on + systems lacking perl). + The wrong order was introduced in commit v8.21-119-gb3578fc while + adding the --info-page option. - Add a test for the above. - * tests/misc/df-P: New file. - * tests/misc/Makefile.am (TESTS): Add df-P. + build: fix argument count check in dummy-man again + * man/dummy-man: Fix argument count check, now only permitting + exactly 1 argument, the program name. + Reported by Andreas Schwab <schwab@linux-m68k.org> -2007-02-25 Jim Meyering <jim@meyering.net> +2014-09-22 Alban Bedel <alban.bedel@avionic-design.de> - * Makefile.maint (announcement): Adjust so that it works with - announce-gen's --gnulib-snapshot-time-stamp option. - Indent one of the command lines using TAB, not 8 spaces. + build: fix an inverted test breaking dummy-man + * man/dummy-man: Fix argument count check, + allowing dummy-man to run (on systems without perl). + Fixes http://bugs.gnu.org/18531 - Post-release version change. - * NEWS: Add a line for 6.8+. - * configure.ac (AC_INIT): Set new version string. +2014-09-19 Pádraig Brady <P@draigBrady.com> -2007-02-24 Jim Meyering <jim@meyering.net> + build: fix dependency issues with man page generation + * .gitignore: Remove reference to no longer generated make file. + * configure.ac: Don't bother generating placeholder make file. + * man/local.mk: Hardcode the man page deps list for normal builds + to be compatible with all make implementations and configure options. + Note in SINGLE_BINARY mode, all man pages will be generated on + any change to the coreutils binary, but development will generally + not be done in this mode, so this shouldn't be an issue. - Version 6.8. - * NEWS: Record release date and new version number. - * configure.ac (AC_INIT): New version number. + Fixes http://bugs.gnu.org/18055 - Don't skip this test on new-enough Linux/GNU systems. - * tests/misc/pwd-unreadable-parent: Test $REPLACE_GETCWD = 0, - rather than for __GETCWD_PREFIX in config.h (the latter is no - longer defined, ever, due to gnulib changes). - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define REPLACE_GETCWD. +2014-09-19 Jim Meyering <meyering@fb.com> - Remove the "gnits" option; it prohibits my using "+" as a version - string suffix, and all it does (beyond the default "gnu" option) - is to _require_ the THANKS file. - * configure.ac (AM_INIT_AUTOMAKE): Remove it. + maint: don't trigger gcc-5's new -Wlogical-not-parentheses warning + * src/dircolors.c (main): Parenthesize !VAR as LHS to "<", + to avoid triggering gcc's new -Wlogical-not-parentheses warning. - Remove all AUTOMAKE_OPTIONS settings in Makefile.am files. - * tests/chgrp/Makefile.am, tests/chmod/Makefile.am: - * tests/chown/Makefile.am, tests/cp/Makefile.am: - * tests/du/Makefile.am, tests/expr/Makefile.am: - * tests/factor/Makefile.am, tests/general/Makefile.am: - * tests/install/Makefile.am, tests/ln/Makefile.am: - * tests/ls/Makefile.am, tests/mkdir/Makefile.am: - * tests/mv/Makefile.am, tests/readlink/Makefile.am: - * tests/rm/Makefile.am, tests/rmdir/Makefile.am: - * tests/seq/Makefile.am, tests/stty/Makefile.am: - * tests/tee/Makefile.am, tests/touch/Makefile.am: +2014-09-19 Pádraig Brady <P@draigBrady.com> - * README: Document the OSF/1 4.0d build failure and work-around. - Reported by Bruno Haible. + cp: fix handling of -H with multiply specified source dirs + Following on from commit v5.92-729-g130dd06, also avoid + the erroneous directory hardlink warning with -H. + + * src/copy.c (copy_internal): Also handle the -H case + for command line arguments. + * tests/cp/duplicate-sources.sh: Augment the test case. + * NEWS: Augment the news entry. + +2014-09-19 Pádraig Brady <P@draigBrady.com> + + cp: issue correct warning and ignore duplicate source dirs + * src/copy.c (copy_internal): Handle the case where we have the + same destination directory as already encountered, which can only + be due to the corresponding source directory being specified multiple + times. + * tests/cp/duplicate-sources.sh: Add a test for the new multiply + specified directory case, and the existing multiply specified file case. + * tests/local.mk: Reference the new test. + * NEWS: Mention the bug fix. + + doc: output correct --help references with --program-prefix + * src/system.h (emit_ancillary_info): Take the invariant PROGRAM_NAME + as a parameter, so that consistent references are made to online docs + and texinfo nodes, when a --program-prefix is in place. Note the + man pages don't need this fix as they're generated before the program + prefix is used. + * NEWS: Mention the improvements in references to online documentation. + + doc: ensure the correct texinfo nodes are referenced in --help + * src/system.h (emit_ancillary_info): For commands that don't have + a 1:1 mapping with the texinfo node names, provide a mapping to + the correct node. + * doc/coreutils.texi: Add some extra cross references noticed while + checking this. + Fixes http://bugs.debian.org/762092 + +2014-09-16 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix false du failure on newer XFS + On XFS, when creating the ~2G test file 'big' in a for-loop by + appending 20M each time, the file ends up using ~4G - visible in + 'st_blocks'. The unused space would be reclaimed later. + This feature is called "speculative preallocation" which aims at + avoiding fragmentation. + According to the XFS FAQ [1], there are two particular aspects of + XFS speculative preallocation that are triggering this: + + 1. "Applications that repeatedly trigger preallocation and reclaim + cycles [after file close] can cause fragmentation. + Therefore, this pattern is detected and causes the preallocation + to persist beyond the lifecycle of the file descriptor." + + 2. "Preallocation sizes grow as files grow larger." + + [1] http://xfs.org/index.php/XFS_FAQ + + Avoid one of the above by only doing a single close (reclaim cycle). + + * tests/du/2g.sh: Similar to the fix for a dd test (see commit + v8.22-65-g7c03fe2), avoid speculative preallocation by creating + the 'big' file in one go instead of appending to it in the loop. + Remove debugging statements as the output with 'set -x' is + sufficient nowadays. + +2014-09-11 Paul Eggert <eggert@cs.ucla.edu> + + cat: allow copying empty files to themselves + Problem reported by Vincent Lefevre in: http://bugs.gnu.org/18449 + * src/cat.c (main): Allow copying an empty file to itself. + * tests/misc/cat-self.sh: New test. + * tests/local.mk (all_tests): Add it. + +2014-09-11 Pádraig Brady <P@draigBrady.com> + + doc: reference online info pages directly from man pages + * src/system.h (emit_ancillary_info): Add a direct reference + to the corresponding online info documentation. Corresponding + redirects were put in place on www.gnu.org to allow for concise links. + * help2man: Adjust to add the "online help" link (and subsequent + translation bugs link) to a "REPORTING BUGS" section. + Also add the concise links for further information in --help + to the "SEE ALSO" section, and dispense with the more verbose + default for that. + +2014-09-10 Pádraig Brady <P@draigBrady.com> + + doc: adjust reference to info nodes in man pages + old form: coreutils '$cmd invocation' + new form: '(coreutils) $cmd invocation' + + The old form erroneously referenced the node for the 'coreutils' + multi-call program. Now that problematic node name was renamed + in commit v8.23-18-g72e470b, but the newer less ambiguous form + also has the advantage of working with the pinfo viewer for example. + Full discussion at http://bugs.gnu.org/18428 + + * man/local.mk: Adjust man page references to texinfo nodes. + * src/system.h: Adjust --help references to texinfo nodes. + +2014-09-10 Pádraig Brady <P@draigBrady.com> + + maint: include libstdbuf.c in extraneous headers check + * cfg.mk (sc_system_h_headers): Don't exclude libstdbuf.c. + * src/libstdbuf.c: Remove headers already included in system.h. + + build: adjust previous transformations on libstdbuf name + * src/local.mk (transform): commit v8.23-22-g6f9b018 discarded all + transformations on the libstdbuf.so name. Be more conservative and + only exclude the $(program_transform_name) portion for libstdbuf. + + build: avoid name transformations on libstdbuf + * src/local.mk (transform): Skip the transformation for libstdbuf + since that should not be subject to name clashes, and we need + to reference the name directly in LD_PRELOAD etc. + * configure.ac: Add a comment on the coupling of pkglibexec_PROGRAMS + to $(transform). + Issue reported at https://trac.macports.org/ticket/44922 + Improved by Nick Bowler + +2014-09-09 Pádraig Brady <P@draigBrady.com> + + maint: fix syntax-check issues in recent commit + Avoid 2 new syntax-check failures introduced in commit v8.23-19-g8defcee + + * cfg.mk (sc_some_programs_must_avoid_exit_failure): s/exit/return/. + * src/whoami.c (main): Reinstate translation marker for diagnostic. + +2014-09-09 Paul Eggert <eggert@cs.ucla.edu> + + maint: avoid file-scope names of the form _[a-z]* + The C standard says this isn't portable, if you include + standard include files. + * build-aux/gen-single-binary.sh: + * src/coreutils-arch.c (single_binary_main_arch) + (single_binary_main_uname): + * src/coreutils-dir.c (single_binary_main_ls) + (_single_binary_main_dir): + * src/coreutils-vdir.c (single_binary_main_ls) + (_single_binary_main_vdir): + * src/coreutils.c (SINGLE_BINARY_PROGRAM): + Remove leading _ from single_binary prefix. + * src/numfmt.c (round_style): Rename from _round. All uses changed. + (inval_style): Rename from _invalid. All uses changed. + + maint: prefer 'return status;' to 'exit (status);' in 'main' + * build-aux/gen-single-binary.sh: Don't use ATTRIBUTE_NORETURN + for main functions. + * src/base64.c, src/basename.c, src/cat.c, src/chcon.c, src/chgrp.c: + * src/chmod.c, src/chown.c, src/chroot.c, src/cksum.c, src/comm.c: + * src/cp.c, src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c: + * src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c: + * src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c: + * src/getlimits.c, src/groups.c, src/head.c, src/hostid.c: + * src/hostname.c, src/id.c, src/install.c, src/join.c, src/kill.c: + * src/link.c, src/ln.c, src/logname.c, src/ls.c, src/make-prime-list.c: + * src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mktemp.c: + * src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/nproc.c: + * src/numfmt.c, src/od.c, src/paste.c, src/pathchk.c, src/pinky.c: + * src/pr.c, src/printenv.c, src/printf.c, src/ptx.c, src/pwd.c: + * src/readlink.c, src/realpath.c, src/rm.c, src/rmdir.c, src/runcon.c: + * src/seq.c, src/shred.c, src/shuf.c, src/sleep.c, src/sort.c: + * src/split.c, src/stat.c, src/stdbuf.c, src/stty.c, src/sum.c: + * src/sync.c, src/tac.c, src/tail.c, src/tee.c, src/timeout.c: + * src/touch.c, src/tr.c, src/true.c, src/truncate.c, src/tsort.c: + * src/tty.c, src/uname.c, src/unexpand.c, src/uniq.c, src/unlink.c: + * src/uptime.c, src/users.c, src/wc.c, src/who.c, src/whoami.c: + In 'main' functions, Prefer 'return status;' to 'exit (status);'. + * src/coreutils-arch.c (_single_binary_main_uname) + (_single_binary_main_arch): + * src/coreutils-dir.c, src/coreutils-vdir.c (_single_binary_main_ls) + (_single_binary_main_dir, _single_binary_main_vdir): + Omit ATTRIBUTE_NORETURN. Return a value. + * src/coreutils.c (SINGLE_BINARY_PROGRAM): Omit ATTRIBUTE_NORETURN. + (launch_program): Now static. + * src/dd.c (finish_up): New function. + (quit, main): Use it. + * src/getlimits.c (main): Return a proper exit status. + * src/test.c (test_main_return): New macro. + (main): Use it. + * src/logname.c, src/nohup.c, src/whoami.c: + Use 'error' to simplify exit status in 'main' function. + * src/yes.c (main): Use 'return' rather than 'error' to exit, + so that GCC doesn't suggest ATTRIBUTE_NORETURN. + + doc: rename "coreutils invocation" to "Multi-call invocation" + This supports longstanding shell commands like + 'info coreutils "touch invocation"'. + Problem reported by Vincent Lefevre via Bob Proulx in: + http://bugs.gnu.org/18428 + * doc/coreutils.texi (Multi-call invocation): + Rename from "coreutils invocation". + + doc: mention which commands are optional + * doc/coreutils.texi (coreutils invocation, df invocation) + (stty invocation, whoami invocation, nproc invocation) + (arch invocation, hostname invocation, hostid invocation) + (uptime invocation, chroot invocation, nice invocation) + (stdbuf invocation): Document that the command is installed + optionally. + +2014-09-07 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: fix typos + * doc/coreutils.texi: Fix normal typos: + s/pseudorandom/pseudo-random/; + s/behaviour/behavior/; + s/linux-based/Linux-based/; + s/nonnegative/non-negative/. + Fix IEC's long name: s/Electronical/Electrotechnical/. + Wrap 'getopt' into the @code{} macro. + Fix a grammatical error (from myself): s/splitted/split/. + +2014-09-03 Paul Eggert <eggert@cs.ucla.edu> + + doc: spell "indeterminate" correctly + * doc/coreutils.texi (timeout invocation): Fix misspelling. + Reported by Yureruchihirosan via OKANO Takayoshi in: + http://bugs.gnu.org/18394 + +2014-08-23 Pádraig Brady <P@draigBrady.com> + + maint: ensure fiemap extents flags are compared correctly + * src/extent-scan.c (extent_scan_read): Following on from the flags size + adjustment in commit v8.23-13-g1505b37, verify that the internal + representation of the flags is never truncated which could happen in the + unlikely case on 32 bit if the kernel flags ever expanded to 64 bits + which is theoretically possible given the reserved space. + +2014-08-22 Paul Eggert <eggert@cs.ucla.edu> + + maint: avoid int64_t and similar types unless they're needed + C11 doesn't require them, even POSIX doesn't strictly require the + 64-bit versions, and it makes the code a bit clearer if they're + used only when needed. + * src/copy.c (write_zeros, extent_copy): + * src/extent-scan.h (struct extent_info.ext_length): + Use off_t, not uint64_t, for a value derived from a file offset. + * src/extent-scan.h (struct extent_info.ext_flags) + Prefer plain unsigned int to uint32_t where either will do. + (struct extent_scan.ei_count): + Use size_t, not uint32_t, for a value bounded by SIZE_MAX. + * src/factor.c (MAGIC64, MAGIC63, MAGIC65): + Remove unnecessary casts to uint64_t. + +2014-08-21 Yurij Goncharuk <lnkgyv@gmail.com> + + maint: refactor ls QUOTING_STYLE env var handling + * src/ls.c (main): As per the FIXME comment, move the + QUOTING_STYLE handling to a separate function. + +2014-08-21 Fridolin Pokorny <fpokorny@redhat.com> + + doc: clarify that duplicate NFS mounts are skipped by df + * doc/coreutils.texi (df invocation): Add a sentence that eliding + duplicate entries for the same file system is not limited to bind + mounts, but also happens for remote file systems like NFS. + +2014-08-19 Pádraig Brady <P@draigBrady.com> + + df: improve mount point selection with inaccurate mount list + v8.23 has a test failure on Fedora rawhide build servers + in tests/df/skip-duplicate.sh. This was due to no '/' + entry being output by df. That was due to an inaccurate + /proc/mounts on the build environment as stat(/mnt/point) + identified all these /proc/mounts entries as having the + same device id: + + / rootfs + / /dev/md1 + /dev devtmpfs + /run tmpfs + /boot /dev/md0 + /proc/filesystems /dev/md1 + + Since the device name on the right changes for a given id, + that causes the entries to be continually replaced, thus + resulting in no '/' entry. I'm guessing this is due to + the mock environment bind mounting unneeded or sensitive + items to a dummy file on the host / (/dev/md1) though + have not looked into those details. + + So rather than relying on an accurate /proc/mounts, + the attached patch takes a more conservative replacement + approach and only swaps a new device entry when the + mount point matches. That should handle all practical + cases while also avoiding this situation. + + * src/df.c (filter_mount_list): Only replace entries with + different device names when the mount point also matches. + +2014-08-11 Rasmus Borup Hansen <rbh@intomics.com> + + cp: remove redundant possibly expensive heap deallocation + If the hash structures grow sufficiently large so that + the system is actively swapping, then the deallocation + can take a significant amount of time. Details at: + http://lists.gnu.org/archive/html/coreutils/2014-08/msg00012.html + + * src/cp.c (main): Only call hash deallocation routines + when in lint checking mode. + * THANKS.in: Remove as now in the git author list. + +2014-08-04 Reuben Thomas <rrt@sc3d.org> + + doc: indicate that FILE arguments are optional with rm -f + * src/rm.c (usage): s/FILE/[FILE]/. + Fixes http://bugs.gnu.org/18187 + +2014-08-03 Anders Jonsson <anders.jonsson@norsjovallen.se> + + numfmt: fix misspelling in --debug message + * src/numfmt.c (parse_format_string): s/overridding/overriding/. + Fixes http://bugs.gnu.org/18050 + +2014-08-01 Paul Eggert <eggert@cs.ucla.edu> + + tests: fix typo in tail-2/inotify-race + Reported by Andreas Schwab in: http://bugs.gnu.org/18057 + * tests/tail-2/inotify-race.sh (break_src): + Use abs_top_srcdir, not abs_top_builddir. + +2014-08-01 Bernhard Voelker <mail@bernhard-voelker.de> + + chroot: perform chdir("/") again unless new --skip-chdir is specified + Since commit v8.22-94-g99960ee, chroot(1) skips the chroot(2) syscall + for "/" arguments (and synonyms). The problem is that it also skips + the following chdir("/") call in that case. The latter breaks existing + scripts which expect "/" to be the working directory inside the chroot. + While the first part of the change - i.e., skipping chroot("/") - is + okay for consistency with systems where it might succeed for a non-root + user, the second part might be malicious, e.g. + + cd /home/user && chroot '/' bin/foo + + In the "best" case, chroot(1) could not execute 'bin/foo' with ENOENT, + but in the worst case, chroot(1) would execute '/home/user/bin/foo' in + the case that exists - instead of '/bin/foo'. + + Revert that second part of the patch, i.e., perform the chdir("/) + in the common case again - unless the new --skip-chdir option is + specified. Restrict this new option to the case of "/" arguments. + + * src/chroot.c (SKIP_CHDIR): Add enum. + (long_opts): Add entry for the new --skip-chdir option. + (usage): Add --skip-chdir option, and while at it, move the other + to options into alphabetical order. + (main): Accept the above new option, allowing it only in the case + when NEWROOT is the old "/". + Move down the chdir() call after the if-clause to ensure it is + run in any case - unless --skip-chdir is specified. + Add a 'newroot' variable for the new root directory as it is used + in a couple of places now. + * tests/misc/chroot-fail.sh: Invert the last tests which check the + working directory of the execvp()ed program when a "/"-like + argument was passed: now expect it to be "/" - unless --skip-chdir + is given. + * doc/coreutils.texi (chroot invocation): Document the new option. + Document that chroot(1) usually calls chdir("/") unless the new + --skip-chdir option is specified. Sort options. + * NEWS (Changes in behavior): Mention the fix. + (New features): Mention the new option. + * init.cfg (nonroot_has_perm_): Add chroot's new --skip-chdir option. + * tests/cp/preserve-gid.sh (t1): Likewise. + * tests/cp/special-bits.sh: Likewise. + * tests/id/setgid.sh: Likewise. + * tests/misc/truncate-owned-by-other.sh: Likewise. + * tests/mv/sticky-to-xpart.sh: Likewise. + * tests/rm/fail-2eperm.sh: Likewise. + * tests/rm/no-give-up.sh: Likewise. + * tests/touch/now-owned-by-other.sh: Likewise. + + Reported by Andreas Schwab in http://bugs.gnu.org/18062 + +2014-07-31 Pádraig Brady <P@draigBrady.com> + + build: avoid building stdbuf on cygwin + * configure.ac: Don't add stdbuf to the list of programs to build + if EXEEXT is set, as that is not handled in configure.ac for + libstdbuf.so yet (see bin_PRGRAMS handling in configure.ac). + Also the LD_PRELOAD mechanism will need to be adjusted to support + cygwin in any case, so avoid stdbuf completely in this case for now. + Problem reported by Eric Blake. + +2014-07-29 Eric Blake <eblake@redhat.com> + + doc: clarify that floating point parses "inf" + * doc/coreutils.texi (Floating point): Document handling of "inf", + "infinity", "NaN", and so on. + +2014-07-19 Paul Eggert <eggert@cs.ucla.edu> + + maint: fix message translation glitches + Problem reported by Sebastian Rasmussen in: http://bugs.gnu.org/18054 + * gl/lib/randread.c (randread_error): Don't put multiple string + literals inside _(...), as xgettext doesn't support that. + * src/chroot.c (main): In diagnostics, don't bother to distinguish + between setting the number of supplemental group IDs to a zero or + to a nonzero value, as the underlying system call is the same + either way. This also makes the string easier to translate correctly. + +2014-07-18 Pádraig Brady <P@draigBrady.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.23 + * NEWS: Record release date. + + build: port new bootstrap script to POSIX shells + * build-aux/gen-single-binary.sh: Avoid bash only constructs. + Reported by Assaf Gordon + + tests: fix false failure with spaces in the test directory + * tests/misc/env.sh: Skip if we can't execute the generated shebang, + which would be the case if there are spaces in the directory hierarchy. + This is triggered by `make distcheck` + +2014-07-18 Pádraig Brady <P@draigBrady.com> + + build: don't distribute generated coreutils.h + This issue was identified by the manifest comparisons + done by `make distcheck` + + * src/local.mk (noinst_HEADERS): Remove coreutils.h from this always + distributed list. + (nodist_src_coreutils_SOURCES): Add coreutils.h as its contents + are determined at configure time, so pointless to distribute. + (src_coreutils_SOURCES): Define explicitly so that the corresponding + nodist_ variable is honored. + (DISTCLEANFILES): Add coreutils.h to this rather than CLEANFILES, + as its contents are determined at configure time. + +2014-07-18 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure in cp --preserve=context test + With libselinux-2.2.1-6.fc20.x86_64, kernel-3.12.6-300.fc20.x86_64 + `cp --preserve=context src dst` was seen to succeed when src and + dst where on the same fixed context file system, as lsetfilecon() + returned success in this case when the context wasn't being changed. + + * tests/cp/cp-a-selinux.sh: Copy from a different file system to + most likely have a different context that will test context + setting logic correctly. + +2014-07-18 Pádraig Brady <P@draigBrady.com> + + maint: avoid a syntax-check warning in previous commit + * cfg.mk: Avoid warning for @AMDEP_TRUE@ usage in man/local.mk + +2014-07-17 Paul Eggert <eggert@cs.ucla.edu> + + build: port to non-GNU make + This fixes a problem with native Solaris 'make', which does not + grok '-include' lines (a GNU extension to POSIX 'make'). + * configure.ac (man/dynamic-deps.mk): Create it, with an old + time stamp, if doing dynamic dependency tracking. + * man/local.mk (DISTCLEANFILES): Put man/dynamic-deps.mk here, + rather than in CLEANFILES. + (man/dynamic-deps.mk): Don't create it read-only, so that we + can easily touch it later. + Include it with '@AMDEP_TRUE@@am__include@', not with '-include', + as '-include' does not work with native Solaris 'make'. + +2014-07-16 Assaf Gordon <assafgordon@gmail.com> + + numfmt: fix isblank() usage for some unibyte locales + * src/numfmt.c (simple_strtod_int): Replace isdigit() with c_isdigit() + to avoid locale concerns and -Wchar-subscripts warnings on cygwin. + Remove the now redundant locale guard. + (simple_strtod_human): Cast characters to unsigned so that the promoted + int value passed to isblank() is positive, allowing it to work correctly + for all characters in unibyte locales. Previously character 0xA0, + i.e. non-breaking space, would be misclassified for example. + (process_suffixed_number): Likewise. + (skip_fields): Likewise. + Both issues were triggered by the -Wchar-subscripts warning on GCC 4.8.3 + on cygwin, due to the is*() implementations used there, but the issue + is present on all platforms defaulting to signed chars. + * NEWS: Mention the bug fix. + + Reported by Eric Blake + +2014-07-14 Pádraig Brady <P@draigBrady.com> + + tests: fix portabilitiy issue in new od-endian test + * tests/misc/od-endian.sh: '\n' is not generally supported + in the replacement, so use the more portable "\\$NL". + + tests: fix portability issue in new dd/ascii test + * tests/dd/ascii.sh: Quote so that '\\' is passed + to printf rather than a single '\', as that's not portable. + bash, dash, zsh and external solaris printf were seen to support + printf '\%03o' 1 2 + while ksh, freebsh shell and external GNU printf need the more portable + printf '\\%03o' 1 2 + Note we don't use env here to call the coreutils printf implementation, + as there are many printf calls, so relying on portable shell + implementations will be faster. + + tests: avoid hang when files created with wrong permissions + * tests/split/b-chunk.sh: Never show the rm prompt which would + hang the test suite. This was seen when split erroneously + created files with no persmissions, which was triggered by + this compiler bug in clang 3.4: + http://llvm.org/bugs/show_bug.cgi?id=18346 + + maint: avoid clang -Wint-to-pointer-cast warning + * src/chroot.c: Explicitly cast int to pointer type. + +2014-07-13 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + * gnulib: Sync recent cleanups and the fix for + missing df entries in the presence of bind mounts: + http://bugs.gnu.org/17833 + * NEWS: Detail the df bug fix. + +2014-07-13 Pádraig Brady <P@draigBrady.com> + + sort: avoid undefined operation with destroying locked mutex + This didn't seem to cause any invalid operation on GNU/Linux at least, + but depending on the implementation, mutex deadlocks could occur. + For example this might be the cause of lockups seen on Solaris: + http://lists.gnu.org/archive/html/coreutils/2013-03/msg00048.html + + This was identified with valgrind 3.9.0 with this setup: + + seq 200000 > file.sort + valgrind --tool=drd src/sort file.sort -o file.sort + + With that, valgrind would _intermittently_ report the following: + + Destroying locked mutex: mutex 0x5419548, recursion count 1, owner 2. + at 0x4C2E3F0: pthread_mutex_destroy(in vgpreload_drd-amd64-linux.so) + by 0x409FA2: sortlines (sort.c:3649) + by 0x409E26: sortlines (sort.c:3621) + by 0x40AA9E: sort (sort.c:3955) + by 0x40C5D9: main (sort.c:4739) + mutex 0x5419548 was first observed at: + at 0x4C2DE82: pthread_mutex_init(in vgpreload_drd-amd64-linux.so) + by 0x409266: init_node (sort.c:3276) + by 0x4092F4: init_node (sort.c:3286) + by 0x4090DD: merge_tree_init (sort.c:3234) + by 0x40AA5A: sort (sort.c:3951) + by 0x40C5D9: main (sort.c:4739) + + Thread 2: + The object at address 0x5419548 is not a mutex. + at 0x4C2F4A4: pthread_mutex_unlock(in vgpreload_drd-amd64-linux.so) + by 0x4093CA: unlock_node (sort.c:3323) + by 0x409C85: merge_loop (sort.c:3531) + by 0x409F8F: sortlines (sort.c:3644) + by 0x409CE3: sortlines_thread (sort.c:3574) + by 0x4E44F32: start_thread (in /usr/lib64/libpthread-2.18.so) + by 0x514EEAC: clone (in /usr/lib64/libc-2.18.so) + + * src/sort.c (sortlines): Move pthread_mutex_destroy() out to + merge_tree_destroy(), so that we don't overlap mutex destruction + with threads still operating on the nodes. + (sort): Call the destructors only with "lint" defined, as the + memory used will be deallocated implicitly at process end. + * NEWS: Mention the bug fix. + +2014-07-13 Shayan Pooya <shayan@liveve.org> + + sort: fix two threading issues reported by valgrind + Neither issue impacts on the correct operation of sort. + The issues were detected by both valgrind 3.8.1 and 3.9.0 using: + + seq 200000 > file.sort + valgrind --tool=drd src/sort file.sort -o file.sort + + For tool usage and error details see: + http://valgrind.org/docs/manual/drd-manual.html + + * src/sort.c (queue_insert): Unlock mutex _after_ signalling the + associated condition variable. Valgrind flags this with: + "Probably a race condition: condition variable 0xffeffffb0 has been + signaled but the associated mutex 0xffeffff88 is not locked by the + signalling thread." + The explanation at the above URL is: + "Sending a signal to a condition variable while no lock is held on + the mutex associated with the condition variable. This is a common + programming error which can cause subtle race conditions and + unpredictable behavior." + This should at least give more defined scheduling behavior. + + (merge_tree_destroy): Make symmetrical with merge_tree_init() thus + destroying the correct mutex. Valgrind flags this with: + "The object at address 0x5476cf8 is not a mutex." + +2014-07-13 Pádraig Brady <P@draigBrady.com> + + maint: avoid an inconsequential mem leak + * src/df.c (get_disk): Avoid an inconsequential mem leak + spotted by coverity. Also s/duplicities/duplicates/. + +2014-07-13 Jim Meyering <meyering@fb.com> + + build: adjust new rule not to depend on bash-4.x + * man/local.mk (man/dynamic-deps.mk): Use the same code to + derive FOO from man/FOO.1 as in the .x.1 rule below. + Using the more concise "name=$${man:4: -2}" is not portable enough. + +2014-07-13 Alex Deymo <deymo@chromium.org> + + build: support building all tools in a single binary + Add the --enable-single-binary option to the configure file. + When enabled, this option builds a single binary file containing + the selected tools. Which tool gets executed depends on the value + of argv[0] which can be set implicitly through symlinks to the + single program. + + This setup reduces significantly the size of a complete coreutils + install, since code from lib/libcoreutils.a is not duplicated in + every one of the more than 100 binaries. Runtime overhead is + increased due to more dynamic libraries being loaded, and extra + initialization being performed for all utils. Also initially + a larger binary is loaded from storage, though this is usually + alleviated due to caching and lazy mmaping of unused blocks, + and in fact the single binary should have better caching + characteristics. + + Comparing the size of the individual versus single binary on x86_64: + $ cd src + $ size coreutils + $ size -t $(../build-aux/gen-lists-of-programs.sh --list-progs | + grep -Ev '(coreutils|libstdbuf)') | tail -n1 + text data bss dec hex filename + 1097416 5388 88432 1191236 122d44 src/coreutils + 4901010 124964 163768 5189742 4f306e (TOTALS) + + Storage requirements are reduced similarly: + $ cd src + $ du -h coreutils + $ du -ch $(../build-aux/gen-lists-of-programs.sh --list-progs | + grep -Ev '(coreutils|libstdbuf)') | tail -n1 + 1.2M coreutils + 5.3M total + + When installing, the makefile will create either symlinks or + shebangs based on the --enable-single-binary setting, for + each configured tool. In this way, all the tools are still + callable individually, but they are all implemented by the same + "coreutils" binary installed on the same directory. + + * .gitignore: Add new generated files. + * Makefile.am: New rules to generate build-aux/gen-single-binary.sh + and install symlinks. + * NEWS: Mention the new feature. + * README: Add "coreutils" to the list of utils. + * bootstrap.conf: Regenerate src/single-binary.mk + * build-aux/gen-lists-of-programs.sh: New --list-progs option. + * build-aux/gen-single-binary.sh: Regenerate + * configure.ac: New --enable-single-binary option and other variables. + Disallow --enable-single-binary=symlinks with --program-prefix et. al. + * man/coreutils.x: Manpage hook. + * man/local.mk: Add manpage hook and fix dependencies. + * src/coreutils.c: Multicall implementation. + * src/local.mk: New rules for the single binary option. + * tests/local.mk: Add $single_binary_progs to support + require_built_() from init.cfg + * tests/misc/env.sh: Avoid the use of symlink to echo. + * tests/misc/help-version.sh: Add exception for coreutils. + * tests/install/basic-1.sh: Really avoid using ginstall strip + functionality if there is an issue with the independent strip command. + * src/kill.c: Changes to call exit() in main. + * src/readlink.c: Likewise. + * src/shuf.c: Likewise. + * src/timeout.c: Likewise. + * src/truncate.c: Likewise. + +2014-07-04 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: simplify parsing df's output in shell scripts + Avoid complicated and error-prone parsing of df's output via + sed(1), cut(1), etc., and instead use df's more modern --output + option. + + * src/ioblksize.h (in a comment): Simplify the extraction of the + device name of the mounted file system from df's output. + * tests/dd/skip-seek-past-dev.sh: Likewise. + * tests/du/2g.sh: Likewise for the 'avail' column here. + Also avoid the deprecated use of "tail -NUM". + * tests/misc/stat-mount.sh: While at it, remove the determination + of the mount point of "." via df(1) plus sed(1) as it is unused + since commit v8.5-159-gf57cb37 anyway. Instead, improve this test + by verifying that the output of "stat -c%m ." at least starts with + a slash '/'. + +2014-07-02 Pádraig Brady <P@draigBrady.com> + + pwd: revert default mode back to -P + Revert commit v8.22-131-g3e89d5b as even though POSIX + states that the default mode should be -L, + common practice for stand-alone pwd implementations + is to default to -P. + + * src/pwd.c (usage): Retain mention of the default mode of operation. + + Suggested by Bob Proulx + +2014-07-02 Pádraig Brady <P@draigBrady.com> + + tests: avoid false failure with spaces in mount point paths + * tests/ls/readdir-mountpoint-inode.sh: Quote appropriately + to process mount points with spaces in the path. + Previously items like these would usually be skipped, + though if the path also contained a '-' for example, + that would stat stdin, thus producing a wrong inode + and a false failure. + Fixes http://bugs.gnu.org/17863 + + tests: avoid errors on systems without getmntent + * tests/df/no-mtab-status.sh: Skip if getmntent() not available. + * tests/df/skip-duplicates.sh: Likewise. + Fixes http://bugs.gnu.org/17863 + +2014-07-02 Jim Meyering <meyering@fb.com> + + tests: use "env builtin" in place of "$abs_top_builddir/src/builtin" + This works for any program that might also be a shell built-in. + It is more concise. In addition, it makes output more reproducible: + some diagnostics include argv[0], which will now be just the program + name, rather than the full absolute name of the executable. + * tests/misc/sort-compress.sh: Use env kill, rather than absolute name. + * tests/install/trap.sh: Likewise. + * tests/misc/timeout.sh: Likewise. + * tests/touch/no-dereference.sh: Do the same for two uses of "test". + * tests/touch/no-create-missing.sh: Likewise. + +2014-07-02 Alex Deymo <deymo@chromium.org> + + maint: fix context_t init warning on systems without selinux + On systems without libselinux, context_t is defined as an int type, + but defined as a pointer type by SELinux. + + * src/chcon.c: Init with 0 rather than NULL to avoid warning. + +2014-07-01 Jim Meyering <meyering@fb.com> + + tests: adapt tests to change in pwd's default + * tests/misc/pwd-option.sh (base): Initialize with -P, + now that -L is the default, to accommodate an initial + working directory with a symlink component. + * tests/misc/readlink-fp-loop.sh: Use $(env pwd -P) to get the + absolute working directory. Using "env" ensures we do not invoke + any shell built-in, and PATH ensures we invoke the one from coreutils. + * tests/readlink/can-e.sh: Likewise. + * tests/readlink/can-f.sh: Likewise. + * tests/readlink/can-m.sh: Likewise. + +2014-07-01 Pádraig Brady <P@draigBrady.com> + + maint: fix const correctness warnings with security_context_t + The security_context_t type was always an artificial separation + from a standard char* string, and various libselinux using code + assumed both were synonymous. In addition, prior to libselinux 2.3 + function declarations were incorrect wrt constness of this type. + Here we replace security_context_t with char*, and also + provide a wrapper function to cater for the const issue on + older libselinux. + + * src/system.h (se_const): A new function to avoid and identify + the const issue on older libselinux. + * src/copy.c: s/security_context_t/char */. + * src/cp.c: Likewise. + * src/id.c: Likewise. + * src/install.c: Likewise. + * src/ls.c: Likewise. + * src/mkdir.c: Likewise. + * src/mkfifo.c: Likewise. + * src/mknod.c: Likewise. + * src/runcon.c: Likewise. + * src/selinux.c: Likewise. + * tests/cp/no-ctx.sh: Likewise. + * src/chcon.c: Likesize. + +2014-07-01 Namhyung Kim <namhyung@gmail.com> + + chcon: avoid redundant context allocations + Since context is verified by security_check_context() it can be used in + change_file_context() without converting to context_t every time. + + * src/chcon.c (change_file_context): Use specified_context directly. + +2014-07-01 Namhyung Kim <namhyung@gmail.com> + + chcon: use security_check_context() for context validation + context_new() and _free() are used for checking validity of a + specified context. libselinux provides security_check_context + for this purpose so use it. + + Note that context_new() can fail for a valid context - e.g. ENOMEM. + + * src/chcon.c (main): Use security_check_context(). + +2014-06-30 Pádraig Brady <P@draigBrady.com> + + pwd: assume -L mode by default, as per POSIX + * src/pwd.c (main): Adjust default mode to be "logical" + and independent of the POSIXLY_CORRECT env var. + (usage): Mention the default mode of operation. + * doc/coreutils.texi (pwd invocation): Adjust accordingly. + * tests/misc/pwd-option.sh: Likewise. + * NEWS: Mention the change in behavior. + +2014-06-26 Pádraig Brady <P@draigBrady.com> + + tests: use predetermined NON_ROOT_GID + * HACKING: GID is more useful in tests than group name, so rename + input param from NON_ROOT_GROUP to NON_ROOT_GID to make it obvious + that only a group ID is now acceptable, thus allowing GID lookups + to be avoided throughout the tests. + * init.cfg (require_root_): Likewise. + * tests/misc/truncate-owned-by-other.sh: Avoid looking up the GID. + * tests/touch/now-owned-by-other.sh: Likewise. + * tests/misc/chroot-credentials.sh: Likewise. Also fix an instance + of comparison against NON_ROOT_GROUP which would have given a false + failure if a non numeric value was passed in. + * tests/id/setgid.sh: Use previously looked up gid as a more + accurate base for the subsequent adjustment, and move + the uid lookup within chroot, rather than having the overhead + of a separate `id` invocation. + + maint: mention when the du cycle warning bug was introduced + * NEWS: Mention bug introduced in v8.1 (with commit v8.0-88-g8ba5d1a). + +2014-06-26 Petr Stodůlka <pstodulk@redhat.com> + + id: output the effective group for the process + * src/id.c (print_full_info): When no user is specified, + output the effective group for the _process_, rather than + the default group from the system database, which may be different. + * tests/id/setgid.sh: Add a case for `id` as well as `id -G`. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/7320 + Reported at http://bugzilla.redhat.com/1016163 + +2014-06-25 Pádraig Brady <P@draigBrady.com> + + df: report correct device in presence of eclipsed mounts + * src/df.c (last_device_for_mount): A new function to identify + the last device mounted for a mount point. + (get_disk): Use the above to discard mount entries for a device, + where a later mount entry uses a different device name than + that of the user specified device. + * tests/df/over-mount-device.sh: A new root test. + * tests/local.mk: Reference the new test. + * NEWS: Reword for all these related recent fixes. + Discussed at: http://bugs.gnu.org/16539#69 + +2014-06-24 Pádraig Brady <P@draigBrady.com> + + df: look for accessible mount points for specified devices + * src/df.c (get_disk): Include whether we can access the mount dir, + in the mount entry selection criteria. This handles the case where + a device is (bind) mounted multiple times with the shortest mount path + not being accessible, while some of the other mount points are. + Discussed at: http://bugs.gnu.org/16539#63 + +2014-06-24 Pádraig Brady <P@draigBrady.com> + + df: output placeholder values for inaccessible mount points + A system provided mount entry may be unavailable due to TOCTOU race, + or if another device has been over-mounted at that position, or due to + access permissions. In all these cases output "-" placeholder values + rather than either producing an error, or in the over-mount case + outputting values for the wrong device. + + * src/df.c (device_list): A new global list now updated by + filter_mount_list(). + (filter_mount_list): Adjust to take a parameter as to whether + update the global mount list, or only the mount <-> device ID mapping. + (get_dev): Use the device ID mapping to ensure we're not outputting + stats for the wrong device. Also output placeholder values when we + can't access a system specified mount point. + (get_all_entries): Set the DEVICE_ONLY param for filter_mount_list(). + (devname_for_dev): A new function to search the mount <-> dev mapping. + * test/df/skip-duplicates.sh: Adjust accordingly. + * NEWS: Mention the bug fixes. + + Discussed at: http://bugs.gnu.org/16539 + +2014-06-24 Pádraig Brady <P@draigBrady.com> + + du: ignore directory cycles due to bind mounts + * src/du.c (process_file): Treat cycles due to bind mounts + like cycles due to following symlinks. + * tests/du/bind-mount-dir-cycle.sh: Adjust accordingly. + * NEWS: Mention the change in behavior. + Reported at http://bugzilla.redhat.com/836557 + + doc: state in ls --help, that -h affects --size format + * src/ls.c (usage): State that --human changes --size format. + Fixes http://bugs.gnu.org/17838 + +2014-06-19 Pádraig Brady <P@draigBrady.com> + + doc: clarify chgrp restrictions + * doc/coreutils.texi (chown invocation): Mention the system dependent + restrictions on setting groups. + (chgrp invocation): Likewise. Reference the 'chown' superset. + * man/chgrp.x: Cross reference chown(1) which is the superset interface, + and also chown(2) which gives details of the platform restrictions. + Fixes http://bugs.gnu.org/17495 + +2014-06-18 Pádraig Brady <P@draigBrady.com> + + df: use all of the last device details provided + * src/df.c (filter_mount_list): Recent commit v8.22-108-g25a2c94 + failed to copy file system type along with the updated device name. + Therefore simply replace the existing mount entry with the + current one with all the latest device details. Note the name, + even if not shorter in this entry, will be replaced with a shorter + name in a subsequent mount entry. + * tests/df/skip-duplicates.sh: Add a test case. + + seq: fix incorrect output with start or end of -0 + * src/seq.c (main): Avoid seq_fast() with a start or end of -0. + * tests/misc/seq.pl: Add test cases. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/17800 - * NEWS: Use a simple "+" suffix to denote pre-release, not "-dirty". - Nicer connotations. - * configure.ac: Use 6.7+, not 6.7-dirty. +2014-06-13 Pádraig Brady <P@draigBrady.com> -2007-02-24 Paul Eggert <eggert@cs.ucla.edu> + tail: fix --follow to use polling mode for VXFS + Veritas File System can run in single instance or clustered mode, + so mark as remote to avoid using inotify for the latter case. - * NEWS: sort no longer compresses temporaries by default. - * bootstrap.conf: Remove findprog. - * doc/coreutils.texi (sort invocation): The default is to not - compress. Don't treat "" specially. - * src/sort.c: Don't include findprog.h. - (create_temp): Compress only if the user specified --compress-program. - * tests/misc/sort-compress: Adjusts tests to match new behavior. + * src/stat.c (human_fstype): Tag VXFS as remote, to use polling + for the clustered variant (VXCFS). + * NEWS: Mention the bug fix. -2007-02-24 Jim Meyering <jim@meyering.net> + Reported by Ondřej Vašík in http://bugzilla.redhat.com/1104244 + Fixes http://bugs.gnu.org/17770 + +2014-06-12 Pádraig Brady <P@draigBrady.com> + + maint: suppress a theoretical buffer overflow warning + * src/numfmt.c (double_to_human): The printf format is built up in + a stack buffer which is big enough to hold any of the possible formats. + However the size parameter passed to snprintf was too big by 1 + when GROUP was true. So decrease the buffer available to snprintf + to avoid this theoretical in practise but valid coverity warning. + +2014-06-11 Pádraig Brady <P@draigBrady.com> + + tests: fix version printing for ginstall in one test + * tests/install/d-slashdot.sh: 'ginstall' is the binary name + in the build directory, not 'install'. + +2014-06-11 Bernhard Voelker <mail@bernhard-voelker.de> + + install: allow options -D and -t to be used together + * src/install.c (install_file_in_file_parents): Factor out the + creation of any parent directories into ... + (mkancesdirs_safe_wd): ... this new function. + (install_file_in_dir): Add the parameter 'mkdir_and_install', and + call the above new function if it evaluates to true. + (main): During parsing of the -t option, move the check whether + the target_directory exists down after the option parsing loop, + and do not complain about stat(optarg,...) failing if -D was given. + Pass 'mkdir_and_install' to install_file_in_dir(). + * doc/coreutils.texi (install invocation): Remove the (false) + restriction that -D would be ignored together with -t. Instead, + clarify install's new bahavior. + Fix the node's reference in the top-level @direntry for consistency. + * src/install/basic-1.sh: Add tests for the now-allowed combination + of the -D and -t options. + * NEWS: Mention the improvement. + +2014-06-11 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule and tests/init.sh to latest + * gnulib: Update to latest. + * tests/init.sh: Update from gnulib. + +2014-06-11 Pádraig Brady <P@draigBrady.com> + + build: update GCC warnings + * configure.ac: Remove the -Wsuggest-attribute=pure + enablement on GCC >= 4.7, as that was moot since + gnulib was already enabling that warning in its default set. + The false positive was seen with 4.6.2, but confirmed + not present in 4.6.3, so that's sufficiently old to + just leave this enabled unconditionally. + + Remove the -Wsuggest-attribute={const,noreturn} + enablement, as gnulib already has those in the default set. + + Enable the -Wlogical-op warning for GCC >= 4.8.0 + as that is confirmed OK with coreutils at least, due to + fixing: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43772 + + Remove the -Wno-logical-op override since the main + -Wlogical-op flag is now sufficient to control this warning + as of GCC 4.6.3 at least. + +2014-06-03 Pádraig Brady <P@draigBrady.com> + + tests: consolidate tests for true and false + * src/true.c (main): Add a comment about the possibility + of true returning EXIT_FAILURE due to write failure. + * tests/misc/false-status.sh: Fix so we're testing + the tool and not the shell builtin. Add a case for true(1). + * tests/misc/help-version.sh: Skip /dev/full test + for true as well as false since the exit status is tested separately. + Also remove the iterations for different LC_MESSAGES, as this was only + applied for false(1). Translations are not honored in the test dir + and so would need separate handling in any case. + +2014-06-02 Ben Walton <bdwalton@gmail.com> + + maint: avoid compiler warnings with some assert() implementations + * src/df.c (get_dev): asssert() on Solaris 10 is not marked as + __noreturn__ and thus the compiler may think V is uninitialized + later on in the function. + * THANKS.in: Remove the now committer. + + build: be more specific about .git repo before enabling warnings + * configure.ac: When looking for a .git checkout, exclude repos that + contain a .tarball-version file as these are probably releases + that are imported into git for patch management. + +2014-06-01 Pádraig Brady <P@draigBrady.com> + + cut: restore special case handling of -f with -d$'\n' + commits v8.20-98-g51ce0bf and v8.20-99-gd302aed changed cut(1) + to process each line independently and thus promptly output + each line without buffering. As part of those changes we removed + the special handling of --delimiter=$'\n' --fields=... which + could be used to select arbitrary (ranges of) lines, so as to + simplify and optimize the implementation while also matching the + behavior of different cut(1) implementations. + + However that GNU behavior was in place for a long time, and + could be useful in certain cases like making a separated list like + `seq 10 | cut -f1- -d$'\n' --output-delimiter=,` although other tools + like head(1) and paste(1) are more suited to this operation. + This patch reinstates that functionality but restricts the + "line behind" buffering behavior to only the -d$'\n' case. + + We also fix the following related edge case to be more consistent: + + before> printf "\n" | cut -s -d$'\n' -f1- | wc -l + 2 + before> printf "\n" | cut -d$'\n' -f1- | wc -l + 1 + after > printf "\n" | cut -s -d$'\n' -f1- | wc -l + 1 + after > printf "\n" | cut -d$'\n' -f1- | wc -l + 1 + + * src/cut.c (cut_fields): Adjust as discussed above. + * tests/misc/cut.pl: Likewise. + * NEWS: Mention the change in behavior both for v8.21 + and this effective revert. + * cfg.mk (old_NEWS_hash): Adjust for originally omitted v8.21 entry. + * src/paste.c: s/delimeter/delimiter/ comment typo fix. + +2014-06-01 Pádraig Brady <P@draigBrady.com> + + stat: avoid redundant stat() calls + * src/stat.c (find_bind_mount): NAME is invariant in the loop, + so only stat(NAME) outside the loop. + +2014-05-29 Pádraig Brady <P@draigBrady.com> + + df: use the last device name provided by the system + The device name reported for a particular mount entry + may no longer be valid if the mount point was subsequently + mounted on a different device. Therefore honor the order + of the mount list returned by the system and use the last + reported device name. + + * src/df.c (filter_mount_list): When discarding the current + mount entry, ensure that a new device name is not also discarded. + * tests/df/skip-duplicates.sh: Add a test case. Also fix + a false failure in the edge case of a system with only a + single file system. + * NEWS: Mention the fix. - Avoid a shell syntax error, when building with an inadequate Perl. - * man/Makefile.am (.x.1): Add quotes around $(PERL) in case, since - it can expand to "/.../missing perl". +2014-05-26 Pádraig Brady <P@draigBrady.com> - * man/Makefile.am (.x.1): Warn when unable to update a man page. - Suggestion from Bruno Haible. + stdbuf: support OS X + * src/stdbuf.c (set_LD_PRELOAD): Adjust to use Mac OS X + specific environment variables on __APPLE__ platforms. + Fixes http://bugs.gnu.org/17590 -2007-02-23 Bruno Haible <bruno@clisp.org> +2014-05-26 Jim Meyering <meyering@fb.com> - Handle better the combination of old Perl and a pre-c99 compiler. - * man/Makefile.am (.x.1): If the autoconf test has determined that - perl is missing or not a sufficient version, do nothing. + build: uname: avoid shadowing warning + * src/uname.c (main) [__APPLE__]: Rename inner "s" to "cs", + to avoid gcc shadowing warning. - * tests/readlink/can-e: Put the closing double-quote at the end of a - backquoted word, not in the middle. Works around a bug in sh on - OSF/1 4.0d. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. +2014-05-26 Pádraig Brady <P@draigBrady.com> - * tests/du/slink: Skip the test if executing on an nfsv3 file system. - This avoids a test failure at least on OSF/1 4.0d. + doc: clarify --zero-terminated option + * src/join.c (usage): Reword to avoid implication that + the NUL byte is only generated as the output delimeter. + * src/sort.c (usage): Likewise. + * src/shuf.c (usage): Likewise. Also since we're changing the + translation string take the opportunity to separate out + the description to a separate string to reduce translation overhead. + * src/uniq.c (usage): Likewise. + * src/stty.c (usage): s/null/NUL/ for consistency. + * src/basename.c (usage): Reword for accuracy/consistency. + * src/dirname.c (usage): Likewise. + * src/du.c (usage): Likewise. + * src/env.c (usage): Likewise. + * src/printenv.c (usage): Likewise. + * src/readlink.c (usage): Likewise. + * src/realpath.c (usage): Likewise. + * doc/coreutils.texi: Consolidate/share the descriptions of + --null, --zero and --zero-terminated. + +2014-05-25 Jim Meyering <meyering@fb.com> + + build: libstdbuf.so: avoid new OS X link failure + * src/local.mk (src_libstdbuf_so_LDADD): Add $(LIBINTL), + to avoid link failure on OS X. + + cat,cp,split: use a larger buffer for copying + * src/ioblksize.h (IO_BUFSIZE): Double the size, to 128KB. + Add four more columns to the blksize-vs-bandwidth table + +2014-05-24 Paul Eggert <eggert@cs.ucla.edu> + + doc: use nicer quotes + * doc/coreutils.texi: Add "@documentencoding UTF-8". + +2014-05-23 Pádraig Brady <P@draigBrady.com> + + stat,tail: improve support for LogFS and ConfigFS + * src/stat.c (human_fstype): Add new file system ID definitions. + * NEWS: Mention the improvement. + +2014-05-22 Pádraig Brady <P@draigBrady.com> + + maint: enforce consistent width and case of file system constants + * src/stat.c (human_fstype): Adjust a couple of existing constants + to be a consistent width and capitalization so that the + src/fs-magic-compare target works without reporting false positives. + * cfg.mk (sc_fs-magic-compare): A new syntax check to enforce this. + + Improved by: Jim Meyering + +2014-05-21 Pádraig Brady <P@draigBrady.com> + + stdbuf: support compilers other than __GNUC__ + __SUNPRO_C >= 0x590 /*12.0*/ supports __attribute((constructor)) + required by stdbuf, so use a more direct check for this. + + Note ensure that --libexecdir is set to the appropriate + install location for libstdbuf.so so that stdbuf works + when installed on the system like it does when running + tests in the build directory. + + * configure.ac (stdbuf_supported): Use a test prog to determine support. + * src/libstdbuf.c (stdbuf): Define appropriately for non GCC compilers, + and provide early feedback (compilation warning) if trying to compile + libstdbuf without the necessary support. + * src/stdbuf.c (set_LD_PRELOAD): Add a note on having stdbuf + look for libstdbuf.so in the default lib search path. + * cfg.mk (sc_prohibit-gl-attributes): Adjust so we can exclude + libstdbuf.so from prohibiting '__attribute', since we want + this form to avoid silently eliding this required attribute on non GCC. + + Reported and tested by Rich Burridge. + +2014-05-21 Pádraig Brady <P@draigBrady.com> + + tests: use chroot --user rather than internal setuidgid tool + * init.cfg (require_root_): Adjust to use chroot, and make + `require_built_ chroot` implicit when chroot used in the test. + * po/POTFILES.in: Remove reference to setuidgid tool. + * src/.gitignore: Likewise. + * src/local.mk: Likewise. + * src/setuidgid.c: Remove. + * tests/cp/preserve-gid.sh: s/setuidgid/chroot --user/. + * tests/cp/special-bits.sh: Likewise. + * tests/id/setgid.sh: Likewise. + * tests/misc/truncate-owned-by-other.sh + * tests/mv/sticky-to-xpart.sh: Likewise. + * tests/rm/fail-2eperm.sh: Likewise. + * tests/rm/no-give-up.sh: Likewise. + * tests/touch/now-owned-by-other.sh: Likewise. + * tests/misc/chroot-fail.sh: Skip if chroot not built. + + chroot: make changing root check more robust + * src/chroot.c (is_root): A new helper function to + determine if the passed argument is the root directory + based on inode comparison. + (main): Use the new helper rather than comparing strings. + * tests/misc/chroot-fail.sh: Add cases for alternative root paths. + + chroot: exit immediately upon failure + * src/chroot.c (main): Consistently exit with failure status immediately + upon hitting a terminal issue, rather than diagnosing multiple issues + lest users think previous failing actions are optional. + +2014-05-21 Pádraig Brady <P@draigBrady.com> + + chroot: with --userspec clear root's supplemental groups + It's dangerous and confusing to leave root's supplemental + groups in place when specifying other users with --userspec. + In the edge case that that is desired one can explicitly + specify --groups. + + Also we implicitly set the system defined supplemental groups + for a user. The existing mechanism where supplemental groups + needed to be explicitly specified is confusing and not general + when the lookup needs to be done within the chroot. + + Also we extend the --groups syntax slightly to allow clearing + the set of supplementary groups using --groups=''. + + * src/chroot.c (setgroups): On systems without supplemental groups, + clearing then is a noop and so should return success. + (main): Lookup the primary GID with getpwuid() when just a numeric + uid is specified, and also infer the USERNAME from this call, + needed when we're later looking up the supplemental groups for a user. + Support clearing supplemental groups, either implicitly for + unknown users, or explicitly when --groups='' is specified. + * tests/misc/chroot-credentials.sh: Various new test cases + * doc/coreutils.texi (chroot invocation): Adjust for the new behavior. + * NEWS: Mention the change in behavior. + +2014-05-16 Pádraig Brady <P@draigBrady.com> + + chroot: don't chdir() if not changing root + This allows chroot to be used as a light weight tool + to change user identification for a command, + while not changing the current working directory. + It also makes `chroot / true` consistently succeed on + all platforms for non root users. + + * src/chroot.c (main): If the same root is specified. i.e. '/' + then don't change the current working directory, and avoid the + overhead of the other redundant calls. + * tests/misc/chroot-fail.sh: Remove failure guard previously + needed on some systems. Also add an explicit case to ensure + we don't change directory. + * NEWS: Mention the change in behavior. + +2014-05-13 Pádraig Brady <P@draigBrady.com> + + maint: avoid clang -Wtautological-constant-out-of-range-compare warning + * src/df.c (decode_output_arg): Use only enum constants to avoid + clang "warning: comparison of constant -1 with expression of + type 'display_field_t' is always false" + +2014-05-13 Pádraig Brady <P@draigBrady.com> + + df: ignore non file system entries in /proc/mounts + Linux with network namespaces contains entries in /proc/mounts like: + proc net:[4026532464] proc rw,nosuid,nodev,noexec,relatime 0 0 + resulting in a failure to stat 'net:[...]', inducing a warning + and an exit with failure status. + + * src/df.c (get_dev): Ignore all relative mount points. + * tests/df/skip-duplicates.sh: Add an entry to test relative dirs. + +2014-05-13 Pádraig Brady <P@draigBrady.com> + + df: fix handling of symlinks in mount list + The symlink handling in commit v8.21-172-g33660b4 was incomplete + in the case where there were symlinks in the mount list itself. + For example, in the case where /dev/mapper/fedora-home was in the + mount list and that in turn was a symlink to /dev/dm-2, we have: + + before> df --out=source /dev/mapper/fedora-home + devtmpfs + + after > df --out=source /dev/mapper/fedora-home + /dev/mapper/fedora-home + + * src/df.c (get_disk): Compare canonicalized device names from + the mount list. Note we still display the non canonicalized name, + even if longer, as we assume that is the most representative. + * tests/df/df-symlink.sh: This could theoretically fail on some systems + depending on the content of the mount list, but adjust to fail on any + system where symlinks are present in the mount list for the current dir. + +2014-05-13 Pádraig Brady <P@draigBrady.com> + + df: also deduplicate virtual file systems + * src/df.c (filter_mountlist): Remove the constraint that + a '/' needs to be in the device name for a mount entry to + be considered for deduplication. Virtual file systems also + have storage associated with them (like tmpfs for example), + and thus need to be deduplicated since they will be shown + in the default df output and subject to --total processing also. + * test/df/skip-duplicates.sh: Add a test to ensure we deduplicate + all entries, even for virtual file systems. Also avoid possible + length operations on many remote file systems in the initial + check of df operation. Also avoid the assumption that "/root" + is on the same file system as "/". + * NEWS: Mention the change in behavior. + + tests: fix spurious failure with leading spaces in file names + * tests/ls/stat-vs-dirent.sh: This test lists all parent directories, + and would spuriously fail if any of those had a file name with a + leading space as the first entry. There is only ever a single space + between the right aligned inode number and the file name, so + process accordingly. + +2014-05-12 Assaf Gordon <assafgordon@gmail.com> + + build: avoid bootstrap error with gettext 0.18.3.1 + * bootstrap: Create critical bootstrap files for autopoint, + before gnulib re-generates them, avoiding the issue. See: + http://lists.gnu.org/archive/html/coreutils/2013-11/msg00038.html + http://savannah.gnu.org/bugs/?40083 + https://pad.lv/1311895 + +2014-05-10 Jim Meyering <meyering@fb.com> + + shred: don't infloop upon negative size + * src/shred.c (main): With the preceding change, shred -s-2 FILE + would write 64KB blocks forever -- or until disk full. This change + makes shred reject a negative size. + * tests/misc/shred-negative.sh: New file. + * tests/local.mk (all_tests): Add it. + +2014-05-10 Paul Eggert <eggert@cs.ucla.edu> + + shred: fix overflow checking of command-line options + * src/shred.c (main): Limit -n (number of passes) value to + ULONG_MAX, not to UINT32_MAX, since the vars are unsigned long. + Limit the -s (file size) value to OFF_T_MAX. + +2014-05-07 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: improve new ascii test of dd + * tests/dd/ascii.sh: Avoid unnecessary subshells. Catch dd's + exit code. Remove testing artifact. In the case of a comparison + failure, show the differences in octal format in addition to + "binary files differ". Simplify the creation of the 'in' file. + +2014-05-07 Paul Eggert <eggert@cs.ucla.edu> + + dd: fix conv=ascii, conv=ebcdic, conv=ibm to match POSIX + Problem reported by Don Baggett in <http:/bugs.gnu.org/17422>. + * NEWS: + * doc/coreutils.texi (dd invocation): Document this. + * src/dd.c (conversions): conv=ascii implies conv=unblock. + conv=ebcdic and conv=ibm imply conv=block. + (ascii_to_ebcdic, ebcdic_to_ascii): Correct to match + POSIX 1003.1-2013. + * tests/dd/ascii.sh: New file. + * tests/local.mk (all_tests): Add it. + +2014-05-07 Pádraig Brady <P@draigBrady.com> + + tests: improve diagnostics when asserting empty files + * tests/chmod/c-option.sh: Use `compare /dev/null ... || fail=1` + rather than `test -s ... && fail=1`, so that the file contents + are output, thus improving diagnostics for failing tests. + * tests/cp/acl.sh: Likewise. + * tests/cp/cp-a-selinux.sh: Likewise. + * tests/cp/cp-mv-enotsup-xattr.sh: Likewise. + * tests/cp/reflink-perm.sh: Likewise. + * tests/dd/misc.sh: Likewise. + * tests/misc/env-null.sh: Likewise. + * tests/misc/env.sh: Likewise. + * tests/misc/nice.sh: Likewise. + * tests/misc/nohup.sh: Likewise. + * tests/misc/printenv.sh: Likewise. + * tests/misc/xattr.sh: Likewise. + * tests/mv/update.sh: Likewise. + * tests/rm/deep-2.sh: Likewise. + * tests/rm/read-only.sh: Likewise. + * tests/split/r-chunk.sh: Likewise. + * tests/tail-2/follow-stdin.sh: Likewise. + * tests/tail-2/inotify-race.sh: Likewise. + * tests/tail-2/wait.sh: Likewise. + * tests/touch/no-dereference.sh: Likewise. + + * cfg.mk (sc_prohibit_test_empty:): New syntax-check. + * tests/cp/proc-zero-len.sh: Adjust to avoid false syntax-check failure. + * tests/cp/proc-zero-len.sh: Likewise. + * tests/mv/part-symlink.sh: Likewise. + * tests/tail-2/infloop-1.sh: Likewise. + +2014-05-06 Pádraig Brady <P@draigBrady.com> + + mv,cp: preserve symlink xattrs when copying across file systems + * src/copy.c (copy_internal): Include the copy_attr() call for symlinks. + This should not dereference symlinks, since llistxattr() is used + in attr_copy_file() in libattr, and so should copy all but the filtered + extended attributes. Note we don't just move the copy_attr() call + before the set_owner() call, as that would break capabilities + for non symlinks. + * tests/cp/cp-mv-enotsup-xattr.sh: Add a test case. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/16131 + +2014-05-05 Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> + + tests: initial SMACK tests + * init.cfg (require_smack_): New function. + * local.mk: Referenced new tests. + * tests/id/smack.sh: SMACK tests (new file). + * tests/mkdir/smack-no-root.sh: SMACK tests (new file). + * tests/mkdir/smack-root.sh: SMACK tests (new file). + +2014-05-04 Jim Meyering <meyering@fb.com> + + maint: autotools-install: update tool version numbers to latest + * scripts/autotools-install (tarballs): Update to latest. + +2014-05-03 Jim Meyering <meyering@fb.com> + + maint: don't let envvar setting break ChangeLog generation + * Makefile.am (gen-ChangeLog): Clear amend_git_log when we + don't set it, so that an envvar setting cannot cause trouble. + +2014-05-02 Pádraig Brady <P@draigBrady.com> + + numfmt: improve processing throughput by 800% + The devmsg() calls that took quote_n() arguments, + didn't normally output anything, but still incurred + the overhead of those quote_n() calls. + + * src/numfmt.c (devmsg): Move the inline function + with _internal_ enablement check to... + * src/system.h: ...here as a variadic macro, with + the enablement check at the outer level. + * src/factor.c: As per numfmt.c but there is no + performance change in this case. + * NEWS: Mention the significant performance improvement. + +2014-05-02 Pádraig Brady <P@draigBrady.com> + + numfmt: support zero padding using --format="%010f" + * src/numfmt.c (setup_padding_buffer): Simplify the code by not + explicitly dealing with heap exhaustion. + (parse_format_string): Likewise. Handle multiple grouping + modifiers as does the standard printf. Handle the new leading + zero --format modifier. + (double_to_human): Use more defensive coding against overwriting + stack buffers. Honor the leading zeros width. + (usage): Mention the leading zero --format modifier. + (main): Allow --padding in combo with a --format (width), + as the number of leading zeros are useful independent of + the main field width. + * doc/coreutils.texi (numfmt invocation): Likewise. + * tests/misc/numfmt.pl: Add new test cases. + * NEWS: Mention the improvement. + +2014-04-29 Pádraig Brady <P@draigBrady.com> + + doc: clarify the pr --page-width descriptions + * doc/coreutils.texi (pr invocation): Clarify that -w or -W + will be rounded down so that each column has the same width. + Adjust the wording for -W, to avoid the implication that the + width of -S is insignificant to the page width. + * src/pr.c (usage): Add a period to avoid ambiguity in + the man page output. + +2014-04-29 Pádraig Brady <P@draigBrady.com> + + ptx: fix whitespace trimming with multiple files + This issue was identified by running the test suite with + http://code.google.com/p/address-sanitizer/ + which is included in GCC 4.8 and enabled with -fsanitize=address + + This was checked on Fedora 20 with GCC 4.8 as follows: + + $ yum install libasan # http://bugzilla.redhat.com/991003 + $ rm -f src/ptx.o + $ make check AM_CFLAGS='-fsanitize=address' SUBDIRS=. VERBOSE=yes + $ failure identified in tests/test-suite.log + + To see this particular failure triggered with multiple files: + + $ src/ptx <(echo a) <(echo a) 2>&1 | asan_symbolize.py -d + + ================================================================= + ==32178==ERROR: AddressSanitizer: heap-buffer-overflow on address + 0x60200000e74f at pc 0x435442 bp 0x7fffe8a1b290 sp 0x7fffe8a1b288 + READ of size 1 at 0x60200000e74f thread T0 + #0 0x435441 in define_all_fields coreutils/src/ptx.c:1425 + #1 0x7fa206d31d64 in __libc_start_main ??:? + #2 0x42f77c in _start ??:? + 0x60200000e74f is located 1 bytes to the left of 3-byte region + [0x60200000e750,0x60200000e753) allocated by thread T0 here: + #0 0x421809 in realloc ??:? + #1 0x439b4e in fread_file coreutils/lib/read-file.c:97 + Shadow bytes around the buggy address: + 0x0c047fff9c90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c047fff9ca0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c047fff9cb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c047fff9cc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa + 0x0c047fff9cd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fd fd + =>0x0c047fff9ce0: fa fa 03 fa fa fa fd fd fa[fa]03 fa fa fa 00 00 + 0x0c047fff9cf0: fa fa 04 fa fa fa 04 fa fa fa fd fa fa fa fd fa + 0x0c047fff9d00: fa fa 00 fa fa fa fd fa fa fa 00 fa fa fa 00 fa + 0x0c047fff9d10: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa + 0x0c047fff9d20: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa + 0x0c047fff9d30: fa fa fd fa fa fa 00 fa fa fa 00 fa fa fa 00 fa + Shadow byte legend (one shadow byte represents 8 application bytes): + Addressable: 00 + Partially addressable: 01 02 03 04 05 06 07 + Heap left redzone: fa + Heap right redzone: fb + Freed heap region: fd + Stack left redzone: f1 + Stack mid redzone: f2 + Stack right redzone: f3 + Stack partial redzone: f4 + Stack after return: f5 + Stack use after scope: f8 + Global redzone: f9 + Global init order: f6 + Poisoned by user: f7 + ASan internal: fe + ==32178==ABORTING + + The initial report and high level analysis were from Jim Meyering... + + "The underlying problem is that swallow_file_in_memory() + is setting the contents of the global text_buffer for the first file, + then updating it (clobbering old value) for the second file. + Yet, some pointers to the initial buffer have been squirreled away + and later, one of them (keyafter) is presumed to point into + the new "text_buffer", which it does not. The subsequent + SKIP_WHITE_BACKWARDS use backs up "cursor" and goes out of bounds." + + * src/ptx.c (text_buffers): Maintain references for the limits of each + buffer corresponding to each file, rather than just the last processed. + (struct OCCURS): Add a member to map back to the corresponding file. + Note normally this could be computed from the "reference" member + rather than needing the extra storage, however this is not possible + when in --references mode. + (find_occurs_in_text): Reference the array rather than a single entry. + (define_all_fields): Likewise. Also avoid computing the file index + since this is now stored directly. + (main): Update text_buffers[] array rather than a single text_buffer. + * tests/misc/ptx-overrun.sh: Even though this issue is already triggered + with AddressSanitizer, add a new case to demonstrate the whitespace + trimming issue, and to trigger without AddressSanitizer. + Fixes https://bugs.gnu.org/16171 + +2014-04-25 Pádraig Brady <P@draigBrady.com> + + maint: make ChangeLog generation more robust + * Makefile.am (gen-ChangeLog): Sync changes from GNU hello, + to ensure exit status is propagated, and to support an optional + git-log-fix file. + +2014-04-25 Edgars Irmejs <edgars.irmejs@gmail.com> + + maint: remove trailing comma from enum to make gl/ c89 compat + * gl/lib/fadvise.c (fadvice_t): This might go to gnulib some day so + remove the trailing comma. + Fixes http://bugs.gnu.org/17329 + +2014-04-22 Assaf Gordon <assafgordon@gmail.com> + + doc: clarify meaning of stat's mtime and ctime formats + * src/stat.c (usage): s/modification time/data modification time/; + s/change time/status change time/ + * doc/coreutils.texi: Ditto. + +2014-04-18 Pádraig Brady <P@draigBrady.com> + + tests: make ls tests independent of COLORTERM env + Since the recent commit v8.22-68-g08783f1, ls coloring + is now dependent on the COLORTERM environment variable. + + * tests/envvar-check: Unset COLORTERM from test environment. + * tests/ls/color-dtype-dir.sh: Ensure coloring is used. + * tests/misc/ls-misc.pl: Likewise. + + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/10397646 + +2014-04-17 Pádraig Brady <P@draigBrady.com> + + doc: disambiguate chmod man page reference to (a) users + * man/chmod.x: Don't rely on the bold markup for 'a' to + distinguish it as that's not done in all cases. + +2014-04-17 David Michael <fedora.dm0@gmail.com> + + dircolors: add hurd and mach-gnu-color terminal types + mach-color was replaced by mach-gnu-color in Hurd in 2012. + mach-color is left for compatibility and corresponding + definitions for mach-color are still found in ncurses. + + * src/dircolors.hin: Add hurd and mach-gnu-color. + +2014-04-17 Guilherme de Almeida Suckevicz <guito.linux@gmail.com> + + ls: don't output colors with unknown TERM env variable + --colors controls whether to output colors depending on + whether we're connected to a terminal or not, while this + change gives control over which terminals we output colors to. + + * NEWS: Mention the change in behavior. + * src/ls.c (known_term_type): A new function to search the static + list from dircolors.h + (parse_ls_colors): Honor the TERM when both LS_COLORS and COLORTERM + are non empty. + * tests/ls/color-term.sh: A new test. + * tests/local.mk: Reference the new test. + Fixes http://bugs.gnu.org/15992 + +2014-04-16 Benno Schulenberg <bensberg@justemail.net> + + doc: improve remove prompt translator comment + * src/remove.c (prompt): Explain where the difficulty with translating + these two strings resides, and suggest an alternative: the one that + Paul Eggert first proposed back in 2002, which seems fully resistant. + +2014-04-16 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: df: avoid sizeof(char**) static analysis warning + * src/df.c (alloc_table_row): Use the size of char** to enlarge + the table. Spotted by Coverity. + +2014-04-11 Pádraig Brady <P@draigBrady.com> + + tests: fix false dd conv=sparse failure on newer XFS + * tests/dd/sparse.sh: When testing that a hole is created, + use an existing sparse destination file, so that we're + not write extending the file size, and thus avoiding + speculative preallocation which can result in smaller + holes than requested. + Workaround suggested by Brian Foster -2007-02-23 Jim Meyering <jim@meyering.net> +2014-04-10 Pádraig Brady <P@draigBrady.com> - * src/date.c (usage): Split a diagnostic that had grown to be - longer than the C89 maximum of 509 bytes. + maint: avoid static analysis warnings in ln.c + * src/ln.c (do_link): It's not obvious that record_file() is a noop + in the symlink case (in that case dest_set is NULL and so ignored). + So to make it obvious, and to avoid false positives seen in coverity, + add the explicit condition here. -2007-02-23 Ed Santiago <ed@edsantiago.com> +2014-04-09 Pádraig Brady <P@draigBrady.com> - * src/date.c (usage): Mention that --rfc-3339 uses space, not 'T', - for a separator. Include sample RFC 2822 and 3339 output. + maint: document timeout --preserve-status in v8.21 NEWS + * NEWS: Add the omitted new feature. + * cfk.mk (old_NEWS_hash): Adjust accordingly. -2007-02-23 Jim Meyering <jim@meyering.net> + doc: clarify in --help that -Z doesn't take an argument + * NEWS: Fix a confusing old entry. + * cfg.mk (old_NEWS_hash): Adjust accordingly. + * src/cp.c (usage): Separate the -Z and --context descriptions. + * src/install.c: Likewise. + * src/mkdir.c: Likewise. + * src/mkfifo.c: Likewise. + * src/mknod.c: Likewise. + Fixes http://bugs.gnu.org/17220 + +2014-04-05 Pádraig Brady <P@draigBrady.com> + + maint: various cleanups + * tests/misc/numfmt.pl: Fix comment misspelling. + * src/cut.c: Likewise. + * src/tsort.c (detect_loop): Replace an fprintf() with error(). + + shred: overwrite inode storage used by some file systems + * doc/coreutils.texi (shred invocation): Mention some reasons + why clearing slack space might be useful. + * src/shred.c (do_wipefd): Add initial writes for each pass + for small regular files in case the storage for those is + in the inode, and thus a larger write up to a block size would + bypass that. Move the direct I/O control to... + (dopass): ... here so we can avoid enabling it for these small + initial writes. It's better to retry direct I/O for each pass + anyway to handle the case where direct I/O is disabled for only + the last portion of a file when the size is not a multiple of + the block size. Note we don't avoid the sync for the initial + write as it will be small but more importantly could be on a + different part of the disk and so worth doing independently + to ensure the write is not discarded. + * tests/misc/shred-exact.sh: Check some more direct I/O cases. + * NEWS: Mention the improvements. + The inode storage issue was mentioned by Paul Eggert. + +2014-04-04 Pádraig Brady <P@draigBrady.com> + + shred: avoid a data pass on empty files + * src/shred.c (do_wipefd): Don't increase the size written + for an empty file up to a full block. Also increase the size + to OFF_T_MAX in the edge case where we do overflow. + * NEWS: Mention the shred improvements from recent changes. + * tests/misc/shred-passes.sh: Adjust as we no longer + write a BLKSIZE of data for empty files. + +2014-04-03 Paul Eggert <eggert@cs.ucla.edu> + + cp: don't reserve a device number + * src/copy.c (copy_internal): Replace dev_t arg DEVICE with struct + stat pointer arg PARENT. All callers changed. This removes an + unwarranted assumption that dev_t values of 0 cannot occur in file + systems. See: http://bugs.gnu.org/17179 + + shred: shred one block even for empty files + * src/shred.c (do_wipefd): Shred one block of empty regular files. + This reverts an unintended part of the previous change. + + shred: port to GNU/Linux behavior with tape drives + See: http://bugs.gnu.org/17149 + * src/shred.c [__linux__]: Include <sys/mtio.h>. + (dorewind): New function, which works around the lseek problem with + tape drives on GNU/Linux, the same way that dd does. + (dopass): Use it. New arg ST, needed for dorewind. All uses changed. + (do_wipefd): Don't rely on undefined behavior on integer overflow + of file sizes. Use INT_ADD_OVERFLOW instead. + +2014-04-02 Paul Eggert <eggert@cs.ucla.edu> + + head: port to Darwin and use simpler seeks + This removes an unportable assumption that if lseek succeeds, the + file is capable of seeking. See: http://bugs.gnu.org/17145 + * src/head.c (elseek): New function, for consistency in reporting + lseek failures. + (elide_tail_bytes_file, elide_tail_lines_seekable) + (elide_tail_lines_file, head_lines, head): Use it. + (elide_tail_bytes_file, elide_tail_lines_file): + New args CURRENT_POS and SIZE. All uses changed. Don't bother + invoking lseek, since we know the file's pos and size now. + (elide_tail_bytes_file): Change a local from uintmax_t to off_t, + since it fits. + (head): Use lseek only on regular files, since its behavior on + unseekable devices is implementation-defined. + * NEWS: Document this. - With -Dlint, make shuf free all heap-allocated storage. - * src/shuf.c (main): Move declaration of input_lines to - function scope, and initialize to NULL, so we can free it. - [lint]: Free all malloc'd memory. - * tests/misc/shuf: Also test shuf's -e and -i options. +2014-03-31 Paul Eggert <eggert@cs.ucla.edu> -2007-02-22 Jim Meyering <jim@meyering.net> + head: fix bug with head -c-N when stdin is not at start + * src/head.c (elide_tail_bytes_file): Fix typo in lseek invocation. + * tests/misc/head-c.sh: Add test for this bug. + * NEWS: Document this. - Merge in a change from some other incarnation of this file (gzip?) - * bootstrap (gnulib_tool): Skip get_translations if there is no po/ dir. +2014-03-26 Pádraig Brady <P@draigBrady.com> - Adjust preceding change not to perform an unaligned access. - * src/copy.c (copy_reg): Undo previous change. Instead, make - it clearer that we're using a single-byte sentinel, and - [lint]: Initialize sizeof (uintptr_t) - 1 bytes after the sentinel. - Reported by Andreas Schwab. + mv: fix issues with previous prompt adjustments + * src/copy.c (overwrite_ok): Fix the gettext calls so + that the second string is tagged for translation. + Display the correct "replace ..." prompt when in move_mode. + * tests/mv/i-3.sh: Display the output on failure to ease debugging. - Placate valgrind, wrt ./cp --sparse=always - * src/copy.c (copy_reg): Place the sentinel by setting a - full word's worth of bits, not just a single byte's worth. - This avoids a harmless (but distracting) case of memory being - used-uninitialized. +2014-03-26 Bernhard Voelker <mail@bernhard-voelker.de> -2007-02-21 Paul Eggert <eggert@cs.ucla.edu> + ptx: avoid --format long option falling through into --help + * src/ptx.c (main): Add a 'break' after the --format handling case. + Otherwise it would fall through into the usage case. + * tests/misc/ptx.pl: Add test cases for --format=tex and --format=roff. + * NEWS (Bug fixes): Mention the fix. + Bug introduced in 1999-04-04 commit, SH-UTILS-1_16f-269-gd815c15. + Spotted by coverity (MISSING_BREAK). - Honor dd's noatime flag if possible, even if not supported on build fs - * doc/coreutils.texi (dd invocation): Warn that noatime might not be - reliable. - * src/dd.c (flags, usage): Look at O_NOATIME, not - HAVE_WORKING_O_NOATIME, to decide whether to support the noatime - flag, so that dd attempts O_NOATIME even if the build file system - does not support it. Problem reported by Jim Meyering today in - bug-coreutils. - * tests/dd/misc: Generate a warning, not a failure, if noatime - exists but fails. +2014-03-26 Bernhard Voelker <mail@bernhard-voelker.de> -2007-02-21 Jim Meyering <jim@meyering.net> + basename: mention that the -s option implies -a in usage + * src/basename.c (usage): Mention that -s implies -a. + (main): Add "fall through" comment to case 's'. - * tests/misc/date: Remove vestigial use of Data::Dumper. + Spotted by coverity: MISSING_BREAK. -2007-02-20 Paul Eggert <eggert@cs.ucla.edu> +2014-03-25 Paul Eggert <eggert@cs.ucla.edu> - * src/copy.c (cached_umask): Cast -1 to mode_t to avoid a warning - about out-of-range initializer with Sun C 5.8. + cp: simplify overwrite logic + * src/copy.c (overwrite_ok): Rename from overwrite_prompt. Invoke + yesno instead of having the caller do it; that's cleaner. Return + bool, not void. All callers changed. -2007-02-20 Jim Meyering <jim@meyering.net> + cp: improve quality of overwrite prompt + * src/copy.c (overwrite_prompt): New arg X. All callers changed. + Use X to improve the quality of the prompt (Bug#17087). + * tests/mv/i-2.sh, tests/mv/i-3.sh: Change test to match new prompt. - * bootstrap (CVS_only_file): Use README-hacking. +2014-03-24 Pádraig Brady <P@draigBrady.com> - Now that we use GIT, not cvs, rename README-cvs. - * README-hacking: Renamed from... - Update to reflect that we now use git. + split: avoid unnecessary input buffering + Input buffering is best avoided because it introduces + delayed processing of output for intermittent input, + especially when the output size is less than that of + the input buffer. This is significant when output + is being further processed which could happen if split + is writing to precreated fifos, or through --filter. - * README-cvs: ...this. + If input is arriving quickly from a pipe then this will + already be buffered before we read it, so fast arriving + input shouldn't be a performance issue. - * src/env.c (main): When invoked with no arguments (i.e. when printing - the environment), use a local variable to iterate through the global - "environ" array, rather than "environ" itself. This is solely to - avoid changing the environment for an LD_PRELOAD-substituted "puts" - or "exit" function. Tiny patch by Harvey Eneman. See - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>. - * THANKS: Update. + * src/split.c (lines_split, lines_bytes_split, bytes_split, + lines_chunk_split, bytes_chunk_extract): s/full_read/safe_read/. + * THANKS.in: Mention the reporter. + * NEWS: Mention the improvement. - * bootstrap: Move definitions of temporary directory names and the - new bt_regex "up" to precede all uses, so it's clearer what their - scope is. Also, use [.], rather than \\., since the former works - even if eval'd. +2014-03-19 Pádraig Brady <P@draigBrady.com> - * bootstrap: Remove occurrences of $bt (._bootmp) from lib/Makefile. - Based on the bison 2007-02-19 change by Joel E. Denny. + doc: clarify the operation of uniq -uD + The description of -u was inaccurate when combined with -D: -2007-02-19 Paul Eggert <eggert@cs.ucla.edu> + $ printf '%s\n' '1 a' '2 a' | uniq -uD -f1 + 1 a - * NEWS: sort now uses a --compress-program option rather than - an environment variable. - * doc/coreutils.texi (sort invocation): Document this. - * src/sort.c (usage): Likewise. - (COMPRESS_PROGRAM_OPTION): New const. - (long_options, create_temp, main): Support new option. - * tests/misc/sort-compress: Test it. + * doc/coreutils.texi (uniq invocation): Clarify that it's + the last repeated line that is suppressed from the output. -2007-02-19 Jim Meyering <jim@meyering.net> + Fixes http://bugs.gnu.org/17022 - * bootstrap: Fix typo s/dowloading/downloading/ in --help output. +2014-03-19 Edward Welbourne <eddy@chaos.org.uk> -2007-02-18 Jim Meyering <jim@meyering.net> + doc: avoid regex ambiguity in chmod mode description + * man/chmod.x: s/[+-=]/[-+=]/ + * doc/perm.texi (Symbolic Modes): Likewise. + * THANKS.in: Remove patch owner. + Fixes http://bugs.gnu.org/17041 - * src/system.h: Don't include exit.h, now that it's subsumed - by the gnulib-generated stdlib.h. +2014-03-19 Pádraig Brady <P@draigBrady.com> - * tests/rm/fail-eacces: Skip this test when running as root. - Reported by Matthew Woehlke. + chroot: always diagnose failure to set supplemental groups + * src/chroot.c (setgroups): Change this replacement to + fail when called so that platforms like Interix without support for + supplemental groups don't silently ignore a --groups option. - * bootstrap: Use "._bootmp" as the temporary directory name, - not ".#bootmp". The latter's "#" caused trouble with the new, - gnulib-added "LINK_WARNING_H = $(top_srcdir)/.#bootmp/..." line. +2014-03-19 Dylan Simon <dylan@dylex.net> -2007-02-14 Paul Eggert <eggert@cs.ucla.edu> + chmod: fix erroneous warnings with -R --changes + For files with "special" bits set, we would stat the relative + file name in the wrong directory, giving an erroneous ENOENT diagnostic. + This issue was introduced with commit v5.92-653-gc1994c1 + which changed fts to not change directory on traversal. - * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase. - * src/dircolors.c: Include c-strcase.h. - (dc_parse_stream): Use c_strcasecmp rather than - strcasecmp to avoid unreliable results in locales like Turkish - where strcasecmp is incompatible with the C locale. + * src/chmod.c (mode_changed): Use fts->fts_cwd_fd with fstatat rather + than stat. All callers changed. + * tests/chmod/c-option.sh: Add a test case. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/17035 -2007-02-13 Jim Meyering <jim@meyering.net> +2014-03-19 Bernhard Voelker <mail@bernhard-voelker.de> - Also check for and print stderr output, in case a program fails. - * tests/misc/tty-eof: Occasionally (not reproducible), this - test would fail, with one or more programs exiting nonzero, e.g., - tty-eof: sha224sum exited with status 1 (expected 0) - Now, maybe we'll get a clue, the next time that happens. + maint: fix typo in comment in fadvise.c + * gl/lib/fadvise.c: s/the the/the/, indroduced in commit + v8.22-40-g4f21182. Promted by sc_prohibit_doubled_word. + While at it, also s/be candidate/be a candidate/. -2007-02-12 Jim Meyering <jim@meyering.net> +2014-03-18 Paul Eggert <eggert@cs.ucla.edu> - * .x-sc_useless_cpp_parens: Ignore a false-positive in a shell script. + stat: port birthtime to Solaris 11 + Problem reported by Rich Burridge. + * src/stat.c [HAVE_GETATTRAT]: Include <attr.h>, <sys/nvpair.h>. + (print_statfs, print_stat, print_it): + Pass fd, too, for the benefit of get_birthtime. + All uses changed. + (get_birthtime): New function, for porting to Solaris 11. + (print_stat): Use it. + + * configure.ac (getattrat, LIB_NVPAIR): New checks. + * src/local.mk (src_stat_LDADD): Add $(LIB_NVPAIR). + +2014-03-14 Jim Meyering <meyering@fb.com> + + ln: with -sr, don't segfault for a TARGET of '' + Prior to this change, "ln -sr '' F" would segfault, attempting + to read path2[1] in relpath.c's path_common_prefix function. + This problem arises whenever canonicalize_filename_mode returns + NULL. + * src/ln.c (convert_abs_rel): Call relpath only when + both canonicalize_filename_mode calls return non-NULL. + * tests/ln/relative.sh: Add a test to trigger this failure. + * THANKS.in: List reporter's name/address. + * NEWS (Bug fixes): Mention it. + Reported by Erik Bernstein in 739752@bugs.debian.org. + Fixes http://bugs.gnu.org/17010. + +2014-03-13 Jim Meyering <meyering@fb.com> + + maint: avoid "attribute-const"-suggesting warning from gcc + * gl/lib/fadvise.c: Use a pragma to turn off this warning option: + -Wsuggest-attribute=const. Without this change, building with + --enable-gcc-warnings would evoke this error: + + lib/fadvise.c:25:1: error: function might be candidate for\ + attribute 'const' [-Werror=suggest-attribute=const] + +2014-03-13 Jim Meyering <jim@meyering.net> + + scripts: autotools-install: update + * scripts/autotools-install: Update version numbers of latest + automake and gettext packages. + +2014-03-13 Pádraig Brady <P@draigBrady.com> + + chroot: improve --userspec and --groups look-up + - Support arbitrary numbers in --groups, consistent with + what is already done for --userspec + - Avoid look-ups entirely for --groups items with a leading '+' + - Support names that are actually numbers in --groups + - Ignore an empty --groups="" option for consistency with --userspec + - Look up both inside and outside the chroot with inside taking + precedence. The look-up outside may load required libraries + to complete the look-up inside the chroot. This can happen for + example with a 32 bit chroot on a 64 bit system, where the + 32 bit NSS plugins within the chroot fail to load. + + * src/chroot.c (parse_additional_groups): A new function refactored + from set_addition_groups(), to just do the parsing. The actual + setgroups() call is separated out for calling from the chroot later. + (main): Call parse_user_spec() and parse_additional_groups() + both outside and inside the chroot for the reasons outlined above. + * tests/misc/chroot-credentials.sh: Ensure arbitrary numeric IDs + can be specified without causing look-up errors. + * NEWS: Mention the improvements. + * THANKS.in: Add Norihiro Kamae who initially reported the issue + with a proposed patch. + Also thanks to Dmitry V. Levin for his diagnosis and sample patch. + +2014-03-09 Aleksej Serdjukov <deletesoftware@yandex.ru> + + doc: fix typo in texinfo docs + * doc/coreutils.texi (Operating on characters): s/This/These/. + Fixes http://bug.gnu.org/16973 + +2014-03-07 Pádraig Brady <P@draigBrady.com> + + doc: fix readpath typo in texinfo contents + * docs/coreutils.texi: s/readpath/realpath/ + Fixes http://bugs.gnu.org/16964 + +2014-03-05 Pádraig Brady <P@draigBrady.com> + + tests: avoid the :> construct which can hide errors + On most shells `:>file || framework_failure_` will not evaluate + the framework_failure_ even if there was an error writing the file. + shells which do evaluate the failure are ksh 93u+ and bash 4.2, + while shells wich don't include bash 4.3, solaris, freebsd, dash. + + Furthermore this construct is problematic on Solaris 10 sh, + which will try to optimize away a `:' command in a loop + after the first iteration, even if it is redirected. + + * tests/cp/link-deref.sh: Remove the leading colon on redirections. + * tests/cp/reflink-perm.sh: Likewise. + * tests/id/zero.sh: Likewise. + * tests/install/install-C.sh: Likewise. + * tests/misc/env.sh: Likewise. + * tests/misc/md5sum-bsd.sh: Likewise. + * tests/misc/runcon-no-reorder.sh: Likewise. + * tests/mv/partition-perm.sh: Likewise. + * tests/rm/r-root.sh: Likewise. + * tests/split/l-chunk.sh: Likewise. + * tests/split/line-bytes.sh: Likewise. + * tests/tail-2/inotify-rotate.sh: Likewise. + * tests/tail-2/retry.sh: Likewise. + * tests/tail-2/symlink.sh: Likewise. + * tests/tail-2/wait.sh: Likewise. + * tests/touch/read-only.sh: Likewise. + + cfg.mk (sc_prohibit_colon_redirection): A new syntax check + to avoid further instances of this creeping in. + +2014-03-05 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure in nohup.sh in non tty builds + * tests/misc/nohup.sh: When running tests without a controlling tty, + an exec failure is triggered in a subshell, which causes POSIX + shells to immediately exit the subshell. This was brought + to notice by the newly conforming bash 4.3. + Fixes http:/bugs.gnu.org/16940 + +2014-03-03 Pádraig Brady <P@draigBrady.com> + + doc: improve df --human and --si, help and man page + * src/df.c (usage): Adjust the --human and --si descriptions + to not depend on each other. Also include an example that is + illustrative of the rounding, suffix, width, and localized fractions. + * src/system.h (emit_size_note). Adjust so that it's obvious the + description is pertaining to the input SIZE argument, and not + to any sizes that might be output by df for example. + Fixes http://bugs.gnu.org/16922 + +2014-02-27 Pádraig Brady <P@draigBrady.com> + + date: fix crash or infinite loop when parsing a malformed TZ="" + * NEWS: Mention the fix. + * gnulib: Update to incorporate the fix. + This is the only change in this gnulib update. + * tests/misc/date.pl: Add a test for this case. - * tests/misc/pwd-unreadable-parent: Skip the test if we're - definitely using the replacement. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define CONFIG_HEADER. + Fixes http://bugs.gnu.org/16872 -2007-02-10 Jim Meyering <jim@meyering.net> +2014-02-27 Paul Eggert <eggert@cs.ucla.edu> - Remove excess leading spaces that would make help2man misbehave. - * src/printf.c (usage): Remove excess spaces on 2nd line of %b desc. - * src/nl.c (usage): Remove excess spaces on 2nd line of pBRE desc. - * src/dd.c (usage): Remove excess spaces on 2nd line of sync desc. - * src/date.c (usage): Use two spaces after each optional flag, not one. - Reported by Thomas Huriaux in <http://bugs.debian.org/410407>. + cp: copy files by inode only if that facility is available + * src/copy.c (copy_dir): Use the new SAVEDIR_SORT_FASTREAD, not + SAVEDIR_SORT_INODE. Problem reported by Bernhard Voelker in: + http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html - * Makefile.maint (longopt_re): Relax the regexp, making square - brackets optional, so it matches the newly reported violations, too. + build: update gnulib submodule to latest - * src/csplit.c (usage): Use two spaces (not one) to separate - each option string from its description, so help2man formats - the derived man page properly. Reported by Thomas Huriaux in - <http://bugs.debian.org/410407>. - * src/df.c (usage): Likewise. - * src/du.c (usage): Likewise. - * src/install.c (usage): Likewise. - * src/ls.c (usage): Likewise. +2014-02-26 Paul Eggert <eggert@cs.ucla.edu> + + cp: copy files by inode + Problem reported by Bernhard Voelker in: + http://lists.gnu.org/archive/html/coreutils/2014-02/msg00034.html + * src/copy.c (copy_dir): Adjust to recent gnulib change. -2007-02-03 Jim Meyering <jim@meyering.net> + build: update gnulib submodule to latest - Test for today's gnulib/lib/getcwd.c fix affecting pwd and readlink +2014-02-26 Bernhard Voelker <mail@bernhard-voelker.de> + + shuf: convert error diagnostic to lowercase + * src/shuf.c (main): s/No/no/, introduced by commit v8.22-25-g9f60f37. + * NEWS: Also adjust the NEWS for that recent commit to make it + clear this was new bug rather than a regression. + + Prompted by the syntax-check rule sc_error_message_uppercase + +2014-02-26 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: add dd example for failing disks + * doc/coreutils.texi (dd invocation): Add an example for how to call + dd to save data from a failing disk. Mention GNU 'ddrescue' as one + of the more specialized tools in such a case. + +2014-02-23 Paul Eggert <eggert@cs.ucla.edu> + + shuf: with -r, don't dump core if the input is empty + Problem reported by valiant xiao in <http://bugs.gnu.org/16855>. + * NEWS: Document this. + * src/shuf.c (main): With -r, report an error if the input is empty. + * tests/misc/shuf.sh: Test for the bug. + +2014-02-21 Paul Eggert <eggert@cs.ucla.edu> + + doc: fix problems with @w and @kbd (Bug#16802) + * doc/coreutils.texi: Prefer '@allowcodebreaks false' to '@w'. + Also, don't use @kbd except for keyboard input. + +2014-02-10 Pádraig Brady <P@draigBrady.com> + + cp: with --link always use linkat() if available + * src/copy.c (copy_reg): If linkat() is available it doesn't + matter about the gnulib emulation provided, and thus the + LINK_FOLLOWS_SYMLINKS should not have significance here. + This was noticed on FreeBSD and the consequence is that + cp --link will create hardlinks to symlinks there, rather + than emulating with symlinks to symlinks. + * tests/cp/link-deref.sh: Adjust the checks to cater + for all cases where hardlinks to symlinks are supported. + +2014-02-09 Pádraig Brady <P@draigBrady.com> + + head,tail: consistently diagnose write errors + If we can't output more data, we should immediately + diagnose the issue and exit rather than consuming all + of input (in some cases). + + * src/tail.c (xwrite_stdout): Also diagnose the case where + only some data is written. Also clearerr() to avoid the + redundant less specific error from atexit (close_stdout); + * src/head.c (xwrite_stdout): Copy this new function from tail, + and use it to write all output. + * tests/misc/head-write-error.sh: A new test to ensure we + exit immediately on write error. + * tests/local.mk: Reference the new test. + +2014-02-09 Алексей Шилин <rootlexx@mail.ru> + + head: fix --lines=-0 outputting nothing if no newline at EOF + * src/head.c (elide_tail_lines_pipe): Just output all input in + this case to avoid the issue and also avoid redundant '\n' processing. + (elide_tail_lines_seekable): Likewise. + * tests/misc/head-elide-tail.pl: Add tests for no '\n' at EOF. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/16329 + +2014-02-09 John <da_audiophile@yahoo.com> + + dircolors: add a new entry to colorize 'm4a' files + * src/dircolors.hin: Add entry for mpeg4 audio files. + Fixes http://bugs.gnu.org/16700 + +2014-02-09 Niels Möller <nisse@lysator.liu.se> + + od: add an --endian option to control byte swapping + * src/od.c (main): Handle the new --endian option, + taking "little" and "big" as parameters. + (usage): Describe the new option. + (PRINT_FIELDS): Adjust to swap bytes if required. + * tests/misc/od-endian.sh: A new test to verify + the byte swapping operations for hex (ints) and floats + for all sizes between 1 and 16 inclusive. + * test/local.mk: Reference the new test. + * doc/coreutils.texi (od invocation): Describe the new option. + * NEWS: Mention the new feature. + +2014-01-29 Pádraig Brady <P@draigBrady.com> + + stat,tail: improve support for HFS+ and HFSX + * src/stat.c (human_fstype): Add new file system ID definitions. + * NEWS: Mention the improvement. + Fixes http://bugs.gnu.org/16336 + +2014-01-24 Assaf Gordon <assafgordon@gmail.com> + + tests: skip chown/separator with conflicting group IDs + * tests/chown/separator.sh: skip test if the user's group has + multiple entries. + Fixes http://bugs.gnu.org/16532 + +2014-01-21 Pádraig Brady <P@draigBrady.com> + + build: suppress an erroneous warning --with-selinux=no + * m4/jm-macros.m4: Don't check the SELinux cached variables + --without-selinux. + Reported-by: Bernhard Voelker + +2014-01-17 Pádraig Brady <P@draigBrady.com> + + build: remove no longer used spawn-pipe files from POTFILES.in + This should have been part of the previous commit v8.22-14-gf18999b + + * po/POTFILES.in: Remove gnulib files no longer used. + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/8288209/ + +2014-01-17 Pádraig Brady <P@draigBrady.com> + + build: avoid unneeded spawn-pipe gnulib module + * bootstrap.conf: Reference the used pipe-posix module + rather than the uneeded and larger spawn-pipe module, + which the pipe module is the deprecated equivalent of. + +2014-01-17 Chengwei Yang <chengwei.yang@intel.com> + + doc: clarify SMACK related --help and documentation + * src/ls.c: Remove all mention of SELinux since ls + should treat all security context labels equally. + * doc/coreutils.texi (ls invocation): Likewise. + (id invocation): Clarify that -Z outputs the context + inherited by the process, rather than one specific to a user. + Note for SMACK this can be set instead by the SMACK64EXEC label, + in the unusual case where this is set on the id executable. + * src/id.c (usage): Likewise. + * src/mkdir.c (usage): Clarify that -Z is specific to SELinux, + while --context=CTX is also supported for SMACK. + * src/mkfifo.c (usage): Likewise. + * src/mknod.c (usage): Likewise. + +2014-01-17 Pádraig Brady <P@draigBrady.com> + + ln: fix replacing symbolic links whose targets can't exist + * src/ln.c (errno_nonexisting): A new function to determine if + the errno implies that a file doesn't or can't (currently) exist. + (target_directory_operand): Use the new function to expand the + set of errors we handle. + * tests/ln/sf-1.sh: Add test cases for the newly handled errors. + * THANKS.in: Mention the reporter. * NEWS: Mention the bug fix. - * tests/misc/pwd-unreadable-parent: New file. - * tests/misc/Makefile.am (TESTS): Ad pwd-unreadable-parent. -2007-02-02 Paul Eggert <eggert@cs.ucla.edu> +2014-01-14 Pádraig Brady <P@draigBrady.com> + + tests: restrict a recent SELinux test to SELinux systems + * tests/cp/no-ctx.sh: Since the test diagnoses whether the + intercepted lgetfilecon() calls are actually called or not, + restrict the test to systems where that occurs. + The test cases are minimal on non SELinux systems and should + be well covered by other tests. + Reported-by: Bernhard Voelker + +2014-01-13 Nicolas Iooss <nicolas.iooss@m4x.org> + + copy: fix a segfault in SELinux context copying code + * src/selinux.c (restorecon_private): On ArchLinux the + `fakeroot cp -a file1 file2` command segfaulted due + to getfscreatecon() returning a NULL context. + So map this to the sometimes ignored ENODATA error, + rather than crashing. + * tests/cp/no-ctx.sh: Add a new test case. + * tests/local.mk: Reference the new test. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/16335 + +2014-01-13 Pádraig Brady <P@draigBrady.com> + + maint: tests: refactor gcc commands for building shared lib + * init.cfg (gcc_shared_): A new function refactored from tests. + (require_gcc_shared_): Adjust to call gcc_shared_() to build the + test library, and remove that library before the function returns. + * tests/cp/nfs-removal-race.sh: Call the new gcc_shared_(). + * tests/df/no-mtab-status.sh: Likewise. + * tests/df/skip-duplicates.sh: Likewise. + * tests/ls/getxattr-speedup.sh: Likewise. + * tests/rm/r-root.sh: Likewise. + + copy: fix SELinux context preservation for existing directories + * src/copy.c (copy_internal): Use the global process context + to set the context of existing directories before they're populated. + This is more consistent with the new directory case, and fixes + a bug for existing directories where we erroneously set the + context to the last copied descendent, rather than to that of + the source directory itself. + * tests/cp/cp-a-selinux.sh: Add a test for this case. + * NEWS: Mention the fix. + * THANKS.in: Add reporter Michal Trunecka. - * NEWS: Document fix for cp --preserve=mode. - * src/copy.c (copy_internal): Omit the group- or other-writeable - permissions when creating a directory, to avoid a race condition - if the special mode bits aren't right just after the directory is - created. - * src/cp.c (make_dir_parents_private): Likewise. - * tests/cp/parent-perm-race: Test for the "cp --preserve=mode" - race fix in copy.c. +2014-01-10 Bernhard Voelker <mail@bernhard-voelker.de> - * NEWS: Document fix for cp --parents. - * src/cp.c (make_dir_parents_private): Report the error sooner with - "cp --parents DIR/FILE DEST" when DIR is a non-directory, thus not - creating the directory, DEST/DIR. - * tests/cp/cp-parents: Test for the non-race-condition bug fixed - by the above change. + tests: improve test for a working setfacl + Prompted by a test framework failure of tests/mkdir/p-acl.sh on armv7l: + The previous test for a working setfacl was not sufficient in some + circumstances. -2007-02-02 Jim Meyering <jim@meyering.net> + * init.cfg (require_setfacl_): Call setfacl twice with conflictive + ACL specs, and use ACL specs which can't be mapped into regular file + permission bits. Document the reasons. - * src/nl.c (proc_text): Use "NULL", not "(struct re_registers *) 0". +2014-01-09 Bernhard Voelker <mail@bernhard-voelker.de> - * src/c99-to-c89.diff: Make shred.c Index: and a/b prefixes - consistent, so this can be applied with patch -p0. - Reported by Matthew Woehlke. + tests: avoid FP failure when cp fails for /proc/cpuinfo + On emulated aarch64 systems like in the qemu-based OpenBuildService + of openSUSE, cp fails to copy /proc/cpuinfo because the inode number + changes between the initial stat() call and copying the file: + + $ cp /proc/cpuinfo exp + cp: skipping file '/proc/cpuinfo', as it was \ + replaced while being copied + + * tests/cp/proc-zero-len.sh: When cp fails, check on the above + error message to skip the test. + +2014-01-02 Bernhard Voelker <mail@bernhard-voelker.de> - * Makefile.maint (patch-check): Use patch with its -p2 option, - since that makes this check slightly more strict. - -2007-01-29 Jim Meyering <jim@meyering.net> - - Plug a leak in ls. - * src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to - determine dev/inode or upon detecting a symlink loop. - - * src/ls.c: Rename three global variables. - (cwd_file): Rename from 'files'. - (cwd_n_alloc): Rename from 'nfiles'. - (cwd_n_used): Rename from 'files_index'. - - Shave 8 bytes off the size of "struct fileinfo". - * src/ls.c (fileinfo): Put all members of type "bool" together. - -2007-01-28 Paul Eggert <eggert@cs.ucla.edu> - - Modify "ls" to sort its data faster, using the new gnulib mpsort - module rather than qsort. This is particularly a win in - environments where strcoll is slow, since mpsort typically calls - strcoll less often than qsort does. - * bootstrap.conf (gnulib_modules): Add mpsort. - * src/ls.c: Include mpsort.h. - (sorted_file, sorted_file_alloc): New vars, for a new vector of - pointers to the file info, for speed. - (clear_files, extract_dirs_from_files, sort_files, print_current_files): - (print_many_per_line, print_horizontal, print_with_commas): - (calculate_columns): Set and use new vector. - (initialize_ordering_vector): New function. - -2007-01-26 Paul Eggert <eggert@cs.ucla.edu> - - Adjust to today's change to gnulib, which added a module for - string.h to replace the little include files like strcase.h. - * src/dircolors.c: Don't include strcase.h. - * src/system.h: Don't include mempcpy.h, memrchr.h, stpcpy.h, strpbrk.h. - -2007-01-26 Jim Meyering <jim@meyering.net> - - * src/dd.c (advance_input_after_read_error): Change diagnostic to - say "invalid file offset" rather than "screwy file offset". - - * .x-sc_cast_of_argument_to_free: Remove this file. - * Makefile.am (EXTRA_DIST): Likewise. - -2007-01-25 Dan Hipschman <dsh@linux.ucla.edu> - - * src/sort.c (create_temp): Remove superfluous access-X_OK - check. find_in_path does this for us. - -2007-01-24 Jim Meyering <jim@meyering.net> - - Remove usually-skipped test. - * tests/cp/open-perm-race: Remove this file. It is subsumed - by parent-perm-race. - * tests/cp/Makefile.am (TESTS): Remove open-perm-race. - * tests/sort/Makefile.am: Regenerate. - - Pass "make distcheck" again. - * src/sort.c (usage): Split a diagnostic that had grown to be - longer than the C89 maximum of 509 bytes. - * .x-sc_cast_of_argument_to_free: New file. Allow a cast in sort.c. - FIXME: this is just temporary, while we wait to remove the offending - access-calling code. - * Makefile.am (EXTRA_DIST): Add .x-sc_cast_of_argument_to_free. - * Makefile.maint (sc_cast_of_argument_to_free): Use the - canonical, $$($(CVS_LIST_EXCEPT)). - * m4/.gitignore, m4/.cvsignore, lib/.gitignore, lib/.cvsignore: Update. - -2007-01-24 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: New option sort -C, proposed by XCU ERN 127, which looks - like it will be approved. Also add --check=quiet, --check=silent - as long aliases, and --check=diagnose-first as an alias for -c. - * doc/coreutils.texi (sort invocation): Document this. - Also, mention that sort -c can take at most one file. - * src/sort.c: Implement this. - Include argmatch.h. - (usage): Document the change. - (CHECK_OPTION): New constant. - (long_options): --check now takes an optional argument, and is now - treated differently from 'c'. - (check_args, check_types): New constant arrays. - (check): New arg CHECKONLY, which suppresses diagnostic if -C. + maint: fix copyright holder and year in selinux sources + * src/selinux.c: As the copyright is assigned to the FSF for all + of coreutils, replace the copyright holder from "Red Hat, Inc." + to "Free Software Foundation, Inc.". Prompted by a warning of + 'make update-copyright'. Also update the copyright year. + + maint: update all copyright year number ranges + Run "make update-copyright", but then also run this, + perl -pi -e 's/2\d\d\d-//' tests/sample-test + to make that one script use the single most recent year number. + +2014-01-02 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: prevent update-copyright from updating files from gnulib + The files 'bootstrap' and 'tests/init.sh' are taken from the + gnulib submodule. Therefore, 'make update-copyright' there should + already have updated the copyright year in these 2 files. + + * .x-update-copyright: Add entries for the above mentioned files. + +2014-01-02 Bernhard Voelker <mail@bernhard-voelker.de> + + build: update gnulib submodule, bootstrap and tests/init.sh to latest + * gnulib: Update to latest. + * bootstrap: Update from gnulib. + * tests/init.sh: Likewise. + +2013-12-13 Pádraig Brady <P@draigBrady.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.22 + * NEWS: Record release date. + +2013-12-13 Pádraig Brady <P@draigBrady.com> + + stat,tail: improve support for hostfs and smackfs + hostfs is provided by the Linux UML subsystem. + smackfs is provided by the Linux Smack security module. + + * src/stat.c (human_fstype): Add new file system ID definitions. + * NEWS: Mention the improvement, and adjust for the fact that + SNFS is a remote file system. + +2013-12-13 Pádraig Brady <P@draigBrady.com> + + tests: avoid unlikely deadlock in dd/no-allocate on some shells + * test/dd/no-allocate.sh: Use 'wait' to ensure we don't have + multiple writers to the fifo, which was seen to trigger + a very hard to reproduce deadlock with make -j20 on solaris. + Also avoid writing to the fifo with the shell; instead using dd. + (check_dd_seek_alloc): A new function refactored from the various + cases, which are now constructed from function parameters. + + tests: restrict cp --link inode comparisons to compatible systems + * tests/cp/link-deref.sh: On systems were cp can't determine if + gnulib linkat() emulation might create a symlink instead of a hardlink + to a symlink, copy.c will create a symlink to the symlink so that + it has more control over its metadata. Also even if the system + supports this operation, the particular file system under test may not. + So avoid the hardlinked symlink verification in these cases. + This fixes a false failure on aix, solaris and freebsd. + + build: default to avoiding openssl system libraries + * configure.ac: Don't change the gnulib default of 'no' for + whether to link with openssl system libraries if available. + Distributions can explicitly enable this as their policy allows. + * NEWS: Adjust accordingly. + +2013-12-12 Tiger Lee <i@tigerlee.me> + + doc: fix typo in numfmt invocation + * doc/coreutils.texi (numfmt invocation): s/nun/num/. + Fixes http://bugs.gnu.org/16122 + +2013-12-11 Pádraig Brady <P@draigBrady.com> + + tests: df/total-unprocessed: fix false failure with lofs + * tests/df/total-unprocessed.sh: Skip the test when we can't + determine the file system type as the exclusion filter is not + applied in that case. "lofs" being ignored is effectively + an unknown file system type. + + tests: avoid warnings due to new filefrag -v format + * tests/cp/sparse-fiemap.sh: Newer versions of filefrag output + more fields, in different orders, so handle that to avoid warnings. + +2013-12-09 Pádraig Brady <P@draigBrady.com> + + build: update gnulib to fix a tests build failure + * gnulib: Update to incorporate a fix for building tests + with -Werror=old-style-declaration + + tests: fix false failure due to xargs usage + * tests/readlink/multi.sh: Ensure there is a trailing delimeter + or xargs may (on AIX 7 at least) suppress the last argument. + + tests: fix false failure on systems without /dev/stdin + * tests/rm/interactive-once.sh: Ensure the expected output + matches with the output on systems without /dev/stdin (like AIX 7). + Also change some fail=1 to a more appropriate framework_failure_. + + build: update gnulib and improve --with-openssl configure help + * configure.ac: Use gl_SET_CRYPTO_CHECK_DEFAULT() to set the + coreutils default for --with-openssl early, so that the + help text can be provided in a standard and complete form. + * gnulib: Update to incorporate a build fix on platforms + with only some of md5 and sha* implemented by libcrypto. + +2013-12-09 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure due to gdb inline function handling + Inline functions are awkward to breakpoint as mentioned at: + https://sourceware.org/bugzilla/show_bug.cgi?id=10738 + The normal case here was for the breakpoint on the inline function + to fail, resulting in a 10s delay before skipping the test. + However on GCC 4.7.2 on ppc64 at least it was seen that + the test failed erroneously due to the breakpoint being successfully + set on an "out of line" function, but an inline function was + actually being called. + + * tests/tail-2/inotify-race.sh: Switch to a line based breakpoint, + rather than a symbol base one, which avoids issues with breakpoints + on inline functions. Also skip_ on the initial breakpoint check + in case the breakpoint is not traversed which would be the case + on remote file systems for example. + +2013-12-09 Pádraig Brady <P@draigBrady.com> + + tail: use consistent diagnostics with and without inotify + * src/tail.c: With inotify, when a file is initially absent, + we fstat(-1) for that file spec, thus recording an errnum of EBADF, + which caused the "has become accessible" diagnostic to be issued, + when the file first appears. Instead we avoid the fstat(-1) and + thus emit the more natural and consistent "has appeared" diagnostic. + * tests/tail-2/retry.sh: Use the new diagnostic which also causes + this test to pass on systems without inotify. + +2013-12-09 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: avoid false df failure with nfs and lofs + * tests/df/total-unprocessed.sh: -t nfs and --local are + _not_ mutually exclusive on solaris, with lofs mounts. + +2013-12-07 Pádraig Brady <P@draigBrady.com> + + tests: avoid problematic $(< file) shell construct + * tests/cp/link-deref.sh: This was seen to cause an issue + with dash v0.5.6 at least, so change to a simpler expression. + + tests: fix false failure on platforms using newfstatat + * tests/ls/stat-free-color.sh: Add newfstatat to the list + of syscalls to trace. Also add all "stat" syscalls to the + list of syscalls that we verify that strace supports. + Also only create a single dangling symlink to check, since + we already only check for a single "stat" call. + Fixes http://bugs.gnu.org/16075 seen on AArch64 + + tests: avoid a false memory leak test failure + * tests/misc/shuf-reservoir.sh: Restrict the valgrind + "exit on leak" behavior to developer environments where + specific "lint" code is enabled to avoid inconsequential leaks. + +2013-12-06 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix shuf test verifying that -i and -e can not be combined + Previously, the test triggered another error diagnostic: + shuf: invalid input range ‘-e’ + and therefore eclipsed the expected one: + shuf: cannot combine -e and -i options + + While at it, reindent a line with more than 80 characters, present + since the previous commit to silence sc_long_lines. + + * tests/misc/shuf.sh: Pass a valid range to the -i option. + +2013-12-06 Paul Eggert <eggert@cs.ucla.edu> + + shuf: --repeat, not --repetitions; default --head-count is infinity + Original problem reported by Philipp Thomas in + <http://bugs.gnu.org/16061>. + * NEWS: shuf --repeat, not shuf --repetitions. + * doc/coreutils.texi (shuf invocation): + * src/shuf.c (usage, long_opts, main): + * tests/misc/shuf.sh: + Likewise. Also, the default head-count is infinity. + +2013-12-05 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: clarify that df now generally processes special files correctly + Since v8.21-172-g33660b4, df not only treats symbolic link arguments + differently, as stated there, but now generally processes special file + arguments in a non-canonicalized form correctly: + + $ cd /dev && df-old sdb + Filesystem 1K-blocks Used Available Use% Mounted on + devtmpfs 1014572 48 1014524 1% /dev + + $ cd /dev && df-new sdb + Filesystem 1K-blocks Used Available Use% Mounted on + /dev/sdb 10190136 6039532 3609932 63% /home + + Document df's new behavior. + + * doc/coreutils.texi (df invocation): In the paragraph describing + df's behavior regarding special file arguments, relax the condition + for such special files from "... is an absolute name of ..." to + "... resolves to ...". + * NEWS (Bug fixes): Mention the new behavior also here. + +2013-12-05 Pádraig Brady <P@draigBrady.com> + + tests: fix false failure with disabled SELinux support + This could trigger on SELinux systems where we build --qithout-selinux + or where the SELinux development libraries are not installed. + + * init.cfg (require_selinux_enforcing_): Call require_selinux_() + to determine if the current build supports SELinux. This avoids + a false failure in tests/mkdir/selinux.sh where only mkdir would + determine that SELinux was disabled and thus ignore invalid contexts. + (require_selinux_): Refactor a little to distinguish whether it's + the build or the (file) system that doesn't support SELinux. + +2013-12-05 Pádraig Brady <P@draigBrady.com> + + selinux: fix --context=CTX for cp and diagnose defaultcon() errors + * src/selinux.h (ignorable_ctx_err): A new function used + to determine if a warning should be given after a call + to defaultcon() or restorecon(). + * src/cp.c (main): Fix the setfscreatecon() call to use + the argument passed by the user. + * src/mkdir.c (make_ancestor): Show all but "ignoreable" errors + from defaultcon() and restorecon(). + * tests/misc/selinux.sh: Add a test run as root in selinux enforcing + mode, to ensure cp --context=invalid is honored and fails immediately. + +2013-12-04 Pádraig Brady <P@draigBrady.com> + + md5sum, sha*sum: use libcrypto where available + libcrypto is generally available and has well optimized + crypto hash routines particular to various systems. + For example, testing sha1sum with openssl-1.0.0j + on an i3-2310M, gives a performance boost of about 40%: + + $ time sha1sum.old --tag ~/test.iso + SHA1 (/home/padraig/test.iso) = 3c27f7ed01965fd2b89e22128fd62dc51a3bef30 + real 0m4.692s + user 0m4.499s + sys 0m0.162s + + $ time sha1sum.new --tag ~/test.iso + SHA1 (/home/padraig/test.iso) = 3c27f7ed01965fd2b89e22128fd62dc51a3bef30 + real 0m2.685s + user 0m2.512s + sys 0m0.170s + + * configure.ac: By default, enable use of libcrypto if available. + * src/local.mk: Link with libcrypto. + * NEWS: Mention the md5sum and sha*sum improvements. + +2013-12-04 Pádraig Brady <P@draigBrady.com> + + df: handle bind mounts when processing device nodes + * src/df.c (get_disk): Use the same heuristic used in + get_point() to select the shortest file system mount point, + in an attempt to show the base mounted file system. + * NEWS: Mention the bug fix. + +2013-12-04 Pádraig Brady <P@draigBrady.com> + + df: dereference symlinks to disk device nodes + This is so the matching for the device is done on the canonical name + of the disk node, rather than on the path of the symlink. + In any case the user will generally want to use the symlink target. + + * src/df.c (get_disk): Canonicalize the passed file, + before matching against the list of mounted file system devices. + Note we pass the original symlink name to the "file" output field, + as the symlink target is usually available through the "source" field. + * tests/df/df-symlink.sh: Test the dereferencing operation. + * tests/local.mk: Mention the new test. + * NEWS: Mention the fix. + Reported by Ondrej Oprala + +2013-12-04 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + Note tests/init.sh and bootstrap are still in sync with gnulib. + + * gnulib: Sync two configure check fixes. + - Avoid generating core dumps from regex configure check + - Fix compile error in getcwd configure check + +2013-12-04 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + Note tests/init.sh and bootstrap are still in sync with gnulib. + + * gnulib: Sync many fixes/changes, including the base64 + encoding speedup mentioned in commit v8.21-145-g9120845 + Also included is support for enabling use of libcrypto hash routines + which are generally well optimized for particular systems. + +2013-12-03 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: avoid '%s' quoting notation in diagnostic messages + Add a new rule to ensure the use of quote() instead of '%s' or `%s' + in format strings of diagnostics messages. + + * cfg.mk (sc_prohibit_quotes_notation): Add rule. + * TODO: Remove the entry regarding the '%s' notation. + * src/mkfifo.c (main): Remove the offending and in this case even + duplicate quoting in the format string of the error diagnostic. + * src/mknod.c (main): Likewise. + * src/df.c (decode_output_arg): Change two invocations of error() + according to the above new rule. + * src/numfmt.c: Fix numerous wrong quote notations to fit the above + new rule, mostly in internal debugging diagnostic messages. + +2013-12-03 Pádraig Brady <P@draigBrady.com> + + doc: remove obsolete info on terminal alignment bugs + * doc/coreutils.texi (ls invocation): Remove the note about + OSX terminals not aligning properly as this is no longer the case. + Tested by: Philipp Thomas + +2013-11-29 Pádraig Brady <P@draigBrady.com> + + build: fix potential factor build failure on arm and powerpc + * src/longlong.h: Sync with the latest longlong.h from libgmp to: + - avoid arm asm when being compiled for the thumb instruction [sub]set + - avoid old powerpc assembly that is incompatible with newer GCC + - add arm64 optimized count_trailing_zeros() + - add sparc64 optimized add_ssaaaa() and umul_ppmm() + +2013-11-29 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: add a test for rm -r "/" + * tests/rm/r-root.sh: Add a non-root test. + * tests/local.mk (all_tests): Mention the test. + +2013-11-29 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: remove various FIXME comments + * src/extent-scan.c (extent_need_sync): Remove the FIXME comment about + removing the work around. As discussed in [1], the needed FIEMAP fix + never made it into the Linux kernel. + + * src/realpath.c (longopts): Remove the FIXME comment about deprecating + the --strip option as it's a valid alias for --no-symlinks option. + Also discussed in [1]. + + [1] http://lists.gnu.org/archive/html/coreutils/2013-11/msg00103.html + +2013-11-29 Bernhard Voelker <mail@bernhard-voelker.de> + + df: remove long-obsolescent --megabytes option + This option has been undocumented for 12 years [1], and warned + about for a year [2]. + + [1] commit FILEUTILS-4_1_4-23-gd177203 + [2] commit v8.17-43-g453ce92 + + * src/df.c (MEGABYTES_OPTION): Remove. + (long_options): Remove "megabytes" element. + (main): In the option parsing loop, remove the MEGABYTES_OPTION case. + * NEWS: Mention the change. + +2013-11-28 Pádraig Brady <P@draigBrady.com> + + build: fix selinux.c build failure on 32 bit + * src/selinux.c: Don't include the system "fts.h" as + that disallows _FILE_OFFSET_BITS=64 which gnulib auto enables + to support large files on 32 bit systems. Instead include + our "xfts.h" which includes the less limited gnulib replacement, + and also a checked version of xfts_open(). + (restorecon): Use the checked xfts_open() rather than the standard + fts_open(). + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/6934169 + +2013-11-27 Pádraig Brady <P@draigBrady.com> + + build: avoid more selinux build failures + Handle both newer selinux libraries with mode_to_security_class(), + and systems without selinux at all. We could easily adjust + gnulib to provide the necessary stubs for use by this module, + but it's more efficient to just stub out the module completely, + when not using selinux. + + * src/selinux.h: Define stubs for the two module functions, + when SELinux is not available. + * src/selinux.c: Exclude all logic in preference for the stubs + when selinux isn't used. Also when newer selinux libs are used, + don't use our conflicting static version of mode_to_security_class(). + m4/jm-macros.m4: Check for the system mode_to_security_class(). + +2013-11-27 Pádraig Brady <P@draigBrady.com> + + build: avoid build failure on non selinux systems + * src/selinux.c: This module introduced in commit v8.21-159-gd8e27ab + doesn't need to include <selinux/flask.h>. That header file + isn't catered for by gnulib, but is not needed as we're not + explicitly referencing any class IDs. + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/6920020 + +2013-11-27 Pádraig Brady <P@draigBrady.com> + + selinux: adjust utils to run restorecon with -Z + cp, mv, install, mkdir, mkfifo, mknod are adjusted so that: + -Z no longer accepts an argument. + -Z or --context without an argument do not warn without SELinux. + --context with an argument will warn without SELinux. + + * src/local.mk: Reference the new selinux module where required. + * src/system.h: Make the argument to --context optional. + * src/mkdir.c: Likewise. Also handle the SMACK case for --context. + Note we currently silently ignore -Z with SMACK. + * src/mkfifo.c: Likewise. + * src/mknod.c: Likewise. + * src/install.c: Likewise. Note install(1) by default already + set the context for target files to their system default, + albeit with an older method. Use the -Z option to select between + the old and new context restoration behavior, and document + the differences and details for how context restoration + is done in new and old methods, with a view disabling the + old method entirely in future. + * src/cp.c: Make the argument to --context optional. + Note -Z implies --no-preserve=context. I.E. -Z overrides + that aspect of -a no matter what order specified. + (struct cp_options): Document the context handling options. + (main): Check/adjust option combinations after all + options are processed, to both simplify processing + and to make handling independent of order of options + on the command line. Also improve the diagnostics + from a failed call to setfscreatecon(). + (set_process_security_ctx): A new function, + refactored to set the default context from the source file, + or with the type adjusted as per the system default for + the destination path. + (set_file_security_ctx): A new function refactored to + set the security context of an existing file, either based on + the process context or the default system context for a path. + (copy_internal): Use the refactored functions to simplify + error handling and consistently fail or warn as needed. + (copy_reg): Likewise. + (copy_internal): With --preserve=context, also copy + context from non regular files. Note for directories this may + impact the copying of subsequent files to that directory? + (copy_attr): If we're handling SELinux explicitly, + then exclude to avoid the redudant copy with --preserve=context, + and the problematic copy with -Z. Note SELinux attribute exclusion + also now honors cp -a --no-preserve=context. Note there was a + very small window over 10 years ago, where attr_copy_file was + available, while attr_copy_check_permissions was not, so we + don't bother adding an explicit m4 check for the latter function. + * src/mv.c: Support --context, but don't allow specifying an argument. + * src/chcon.c: Adjust a comment to be specific to SELinux. + * src/runcon.c: Likewise. + * src/copy.c: Honor the context settings to "restorecon" as appropriate. + * src/copy.h: Add a new setting to select "restorecon" functionality. + * tests/mkdir/selinux.sh: s/-Z/--context=/ + * tests/cp/cp-a-selinux.sh: Augment this test with cases + testing basic -Z functionality, and also test the various + invalid option combinations and option precedence. + * tests/mkdir/restorecon.sh: Add a new test for the + more involved mkdir -Z handling, since the directory changing + and non existent directories need to be specially handled. + Also check the similar but simpler handling of -Z by mk{nod,fifo}. + * tests/local.mk: Reference the new test. + * doc/coreutils.texi (cp invocation): Update as per interface changes. + (mv invocation): Likewise. + (install invocation): Likewise. + (mkfifo invocation): Likewise. + (mknod invocation): Likewise. + (mkdir invocation): Likewise. + * NEWS: Mention the new feature and change in behavior. + +2013-11-27 Daniel J Walsh <dwalsh@redhat.com> + + selinux: a new module implementing "restorecon" functionality + * src/selinux.c: A new module implementing "restorecon" functionality. + There are two main functions to adjust the type of the referenced + file system item. defaultcon() will setup the process context so + that new items will have the required context without races. This is + the preferred method. For existing files, the equivalent restorecon() + is available which has two modes. With the "local" parameter set to + false, restorecon() will adjust the type according to the system + configuration for that file, and set to true will update the context + as per the context for the current process (disregarding type). + * src/selinux.h: Likewise. + * po/POTFILES.in: Reference the new module. + +2013-11-27 Pádraig Brady <P@draigBrady.com> + + shred: provide --remove methods to avoid excessive syncing + A sync operation is very often expensive. For illustration + I timed the following python script which indicated that + each ext4 dir sync was taking about 2ms and 12ms, on an + SSD and traditional disk respectively. + + import os + d=os.open(".", os.O_DIRECTORY|os.O_RDONLY) + for i in range(1000): + os.fdatasync(d) + + So syncing for each character for each file can result + in significant delays. Often this overhead is redundant, + as only the data is sensitive and not the file name. + Even if the names are sensitive, your file system may + employ synchronous metadata updates, which also makes + explicit syncing redundant. + + * tests/misc/shred-remove.sh: Ensure all the new parameters + actually unlink the file. + * doc/coreutils.texi (shred invocation): Describe the new + parameters to the --remove option. + * src/shred.c (Usage): Likewise. (main): Parse the new options. - * tests/sort/Test.pm (02d, 02d, incompat5, incompat6): - New tests for -C. + (wipename): Inspect the new enum to see which of + the now optional tasks to perform. + * NEWS: Mention the new feature. + * THANKS.in: Add reporter Joseph D. Wagner + +2013-11-27 Pádraig Brady <P@draigBrady.com> + + tail: improve inotify handling of symlinks + Previous behavior failed to read contents of a (re)appearing file, + when symlinked by tail's watched file. Also we now diagnose other + edge cases when running in inotify mode, where an initially + missing or regular file changes to a symlink. + + * src/tail.c (main): If any arg is a symlink, use polling mode. + (recheck): Diagnose the edge case where a symlink appears during + inotify processing. + * tests/tail-2/symlink.sh: Test the fix. Mention the edge cases. + * tests/local.mk: Reference the new test. + * NEWS: Mention the fix. + Reported by: Ondrej Oprala -2007-01-24 Jim Meyering <jim@meyering.net> +2013-11-27 Pádraig Brady <P@draigBrady.com> + + df: add --output=file to directly output specified arguments + * src/df.c (usage): Document the new 'file' --output field. + (get_dev): Add a new parameter to pass the specified + argument from the command line through. Use '-' if a + command line parameter is not being used. + * doc/coreutils.texi (df invocation): Describe the new 'file' field. + * tests/df/df-output.sh: Adjust all fields test, and + add a specific test for --output=file. + * NEWS: Mention the new feature. + + timeout: avoid unlikely issues with --kill-after + * src/timeout.c (cleanup): When calling settimeout() from + this signal handler, ensure we don't call out to error() + or gettext(), which are not async-signal-safe. + Also reset the errno which may be cleared by settimeout(). + + tests: ensure factor tests can be regenerated + * tests/local.mk (factor-tests:) Add -f to the mv command that + replaces any existing generated tests. This is required to avoid + prompts when root initially generates the tests, and they subsequently + need to be regenerated by a non root user. + + sort: avoid issues when issuing diagnostics from child processes + * src/sort.c: (async_safe_die): A new limited version of error(), + that outputs fixed strings and unconverted errnos to stderr. + This is safe to call in the limited context of a signal handler, + or in this particular case, between the fork() and exec() of + a multithreaded process. + (move_fd_or_die): Use the async_safe_die() rather than error(). + (maybe_create_temp): Likewise. + (open_temp): Likewise. + Fixes http://bugs.gnu.org/15970 + +2013-11-26 Pádraig Brady <P@draigBrady.com> + + doc: clarify the operation of ls -k + * src/ls.c (usage): Mention -k only changes the display + for disk usage (directory total, and ls -s), and imply + that it can be overridden (by --block-size, and -h). + * doc/coreutils.texi (block size): Mention that ls -k + handling is different to other utilities. + Addresses http://bugs.gnu.org/14525 + +2013-11-23 John <da_audiophile@yahoo.com> + + dircolors: add a new entry to colorize 'lz4' files + * src/dircolors.hin: Add entry for the speed optimized 'lz4' compressor. + +2013-11-22 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: enhance rm test regarding "." and ".." + Recent commit 2da7009d changed the error diagnostic of rm(1) trying + to remove "." or "..". Enhance the corresponding test. + + * tests/rm/r-4.sh: Ensure rm(1) outputs the expected error diagnostic. + +2013-11-21 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: avoid perl warning in sc_check-AUTHORS + With newer perl, "make syntax-check" issues many warnings like: + -i used with no filenames on the command line, reading from STDIN. + + * cfg.mk (sc_check-AUTHORS): Remove the -i flag in the perl + invocation as it is reading from a pipe. + +2013-11-21 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: enhance diagnostic when rm skips "." or ".." arguments + The error diagnostic + "rm: cannot remove directory: '.'" + does not give the user a hint for the reason. + Issue a clearer error message. + + * src/remove.c (rm_fts): Enhance the error diagnostic in the above + case to emphasize that skipping is done deliberately. + In the corresponding comment, mention that POSIX mandates this + behavior. Likewise in the subsequent comment for skipping "/". + * doc/coreutils.texi (rm invocation): In the paragraph describing + the above behavior, mention that POSIX mandates it. + +2013-11-18 Pádraig Brady <P@draigBrady.com> + + tests: fix false rm -I test failure when run as root + Fix a recent regression introduced in commit v8.21-127-g5ee7d8f + + Also related to this is the recent query about root run `rm -I` + ignoring the mode bits of a file: https://bugzilla.redhat.com/1013171 + + * tests/rm/interactive-once.sh: Avoid the messages and + corresponding file presence checks with write protected files + when running as root. + +2013-11-17 Colin Leitner <colin.leitner@googlemail.com> + + stty: add support for mark/space parity + This adds support for using a constant or "stick" parity bit. + + * src/stty.c (usage): Mention the new flag. + * tests/misc/stty.sh: Adjust for the new flag. + * NEWS: Mention the improvement. + * docs/coreutils.texi (stty invocation): Mention the new flag. + +2013-11-11 Pádraig Brady <P@draigBrady.com> + + base64: improve encoding I/O efficiency + Since the I/O overhead is significant to the relatively + simple processing done by this utility, use fputs() rather + than fputc() to output '\n'. + Time to process a 100MiB file was measured to + decrease from 0.417s to 0.383s, i.e. an 8% improvement. + + Related to these changes, is a processing improvement in + gnulib, which increases throughput by 60% when processing + full buffers, which improves processing of a 100MiB file + with standard wrapped output, down to 0.256s. + http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commit;h=43fd1e7b + + Also increase the encoding buffer size from 3 to 30KiB. + This was seen to give a further 8% improvement, taking + processing time down to 0.235s in the wrapped output case. + The decoding size buffer is not adjusted, + due to the noted caveat with --ignore-garbage. + + * src/base64.c (BLOCKSIZE): Split into ENC_ and DEC_ variants, + with the former increased from 3KiB to 30KiB. + (wrap_write): Use the simpler fputc() rather than fputs() + to output the '\n' character. Also check against EOF + rather than < 0 for errors. + (do_encode): Likewise. + * NEWS: Mention the large increase in performance, which + with the I/O improvements in coreutils and the processing + improvement in gnulib, amount to about a 60% throughput increase. - Fix a typo. - * tests/misc/sort-compress: Use $abs_top_builddir, not $top_builddir. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise. +2013-11-08 Pádraig Brady <P@draigBrady.com> + + shred: avoid data write pass with --size=0 + * src/shred.c (dopass): Exit early to avoid redundant heap + allocation, and more importantly avoiding a file sync + when we're writting no data, as this can have side effects. + Also with --verbose, this avoids printing of "pass status" + which could be confusing as to whether data was actually written. + * tests/misc/shred-passes.sh: Ensure the status for data + passes are not written when not doing any data writes. + + shred: increase I/O block size for periodic pattern case + * src/shred.c (dopass): In the periodic pattern case increase the + I/O block size from 12KiB to 60KiB (also a multiple of 3 and 4096). + * NEWS: Adjust accordingly. - Don't depend on "which". - * tests/misc/sort-compress (SORT): Use $abs_builddir, now which. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Export top_builddir. +2013-11-08 Pádraig Brady <P@draigBrady.com> + + shred: fix direct I/O failures for last write to file + Since direct I/O is now enabled with commit v8.21-139-gebaf961 + we must handle the case where we write an odd size at the + end of a file (with --exact), or we specify an odd --size that + is larger than 64KiB, or in the very unlikely case of a device + with an odd size. This issue was present since direct I/O + support was first added in v5.3.0, but latent since v6.0. + Theoretically this could have also been an issue after that on + systems which didn't have alignment constraints, but did have + size constraints for direct I/O. + + * src/shred.c (dopass): On the first pass for a file, always + retry a write that fails with EINVAL, so we handle direct I/O + failure at either the start or end of the file. Adjust the comment + as the original case is out of date and implicitly handled + by this more general fix. + * tests/misc/shred-exact.sh: Add a test case. + * NEWS: Add a "bug fix" entry for shred since there are + two related issues now fixed. + +2013-11-07 Gian Piero Carrubba <gpiero@rm-rf.it> + Bernhard Voelker <mail@bernhard-voelker.de> + + cp: fix --link regarding the dereferencing of symbolic links + * src/copy.c (create_hard_link): Add a bool 'dereference' parameter, + and pass AT_SYMLINK_FOLLOW as 'flags' to linkat() when dereference + is true. + (should_dereference): Add new 'bool' function to determine if a + file should be dereferenced or not. + (copy_internal): Use the above new should_dereference() and remember + its return value in a new local bool 'dereference' variable. Use that + in all three calls to create_hard_link(). + * src/cp.c (main): after parsing the options, if x.dereference is + still DEFEF_UNDEFINED and the x.recursive is true, then only set + x.dereference to DEREF_NEVER iff --link was not specified. + * doc/coreutils.texi (cp invocation): Mention that cp(1) does not + follow symbolic links in the source when --link is specified. + Likewise in the description of the -R option when used together with + that option. + * tests/cp/same-file.sh: Adapt the expected results for the -fl, + the -bl and the -bfl tests. + * tests/cp/link-deref.sh: Add a new test. + * tests/local.mk (all_tests): Reference the above new test. + * NEWS (Changes in behavior): Mention the change. + + This fixes http://bugs.gnu.org/15173 + +2013-11-06 Pádraig Brady <P@draigBrady.com> + + shred: write larger chunks when possible + * src/shred.c (dopass): When not needing to write periodic patterns, + use a 64KiB block size to reduce the number of write system calls. + +2013-11-05 Pádraig Brady <P@draigBrady.com> + + shred: enable direct I/O when possible + Commit v5.92-1057-g43d487b introduced a regression + in coreutils 6.0 where it removed the page alignment + of the buffer to write, thus disabling direct I/O. + We want to use direct I/O when possible to avoid + impacting the page cache at least, as we know we don't + want to cache the data we're writing. + + * src/shred.c (dopass): Allocate the buffer on the heap, + while using a more general calculation to allow to have + the output size independent from the fillpattern() size + constraint of a multiple of 3. Also we dispense with the + union as it's no longer needed given we're aligning on + a page boundary and thus don't need to explicitly handle + uint32_t alignment. + +2013-11-01 Pádraig Brady <P@draigBrady.com> + + md5sum, sha*sum: improve help for --check related options + * src/md5sum.c (usage): s/three/four/ in the message pertaining + to the --check related options. Also clarify that --strict + is just significant for the formatting of the checksum lines. + Also since we're changing both strings, move the --strict description + in with the description of the other options and order alphabetically. + * THANKS.in: Added reporter: Daniel Mach + + maint: simplify printing of md5sum file names + * src/md5sum.c (main): Add a comment as to why we continue + to escape names that do not have '\n' but do have '\\' chars. + (print_filename): Use the predetermined boolean to decide + whether to escape or not, so that in the common case we + can output the file name directly, rather than inspecting each char. + * tests/misc/md5sum.pl: Add case to show '\\' chars cause escaping. + * tests/misc/sha1sum.pl: Likewise. + +2013-11-01 Bernhard Voelker <mail@bernhard-voelker.de> + + build: fix dependencies of man/sha*sum.1 + Although the above man pages depend on src/md5sum.c as a shared + source, the build of the man pages directly requires their own + executables to exist. + + * man/local.mk (man/sha1sum.1): Change the dependency from + 'src/md5sum' to 'src/sha1sum'. + (man/sha224sum.1): s/md5sum/sha224sum/ + (man/sha256sum.1): s/md5sum/sha256sum/ + (man/sha384sum.1): s/md5sum/sha384sum/ + (man/sha512sum.1): s/md5sum/sha512sum/ + + Reported by Pádraig Brady in + http://lists.gnu.org/archive/html/coreutils/2013-11/msg00006.html + +2013-10-15 Mike Frysinger <vapier@gentoo.org> + + dircolors: add putty-256color terminal type + * src/dircolors.hin: Add putty-256color + Reported-by: Thomas D. <whissi@whissi.de>, via + http://bugs.gentoo.org/486786 + Fixes http://bugs.gnu.org/15624 + +2013-10-15 Pádraig Brady <P@draigBrady.com> + + maint: update the instructions for building prerequisites + * README-prereq: Update as per the latest required versions + in bootstrap.conf. Also add a missing cd command. + Reported by Aaron Davies + Fixes http://bugs.gnu.org/15612 + +2013-10-11 Ondřej Vašík <ovasik@redhat.com> + + cp: correct error message for invalid arguments of '--no-preserve' + * src/cp.c (decode_preserve_arg): + Correct error message for invalid arguments of '--no-preserve'. + Reported by M.Vadkerti in http://bugzilla.redhat.com/1018206 + Fixes http://bugs.gnu.org/15588 + +2013-10-10 Pádraig Brady <P@draigBrady.com> + + doc: clarify the example for cp --preserve=links + * doc/coreutils.texi (cp invocation): Give more detail about what's + happening in the example, explicitly calling out the --no-dereference + option required to make the -H and -L options significant. + Also mention the option order significance of the -H and -L options. + Fixes http://bugs.gnu.org/15579 + +2013-10-07 Pádraig Brady <P@draigBrady.com> + + mktemp: fix incorrect exit status from previous commit + * src/mktemp.c (main): Use an exit() strategy consistent with the + previous clauses dealing with optional error messages to ensure + we exit with the correct status in all cases. + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/6412979 + +2013-10-06 Pádraig Brady <P@draigBrady.com> + + mktemp: with --quiet, only suppress I/O errors + The reason for having a --quiet option is to + suppress only some subset of possible errors. + The most useful separation here is with usage/internal errors, + and errors due to file creation etc. (i.e. I/O errors). + + * src/mktemp.c (main): Match the --help and info docs and + only suppress the file/dir creation error messages. + * tests/misc/mktemp.pl: Adjust accordingly. + +2013-10-06 Pádraig Brady <P@draigBrady.com> + + mktemp: synchronize the -p option with docs + * src/mktemp.c (usage): Synchronize the -p option description with + the logic and info docs. I.E. that -p is just an alias of --tmpdir. + Also for consistency treat --tmpdir='' the same with or without -t. + I.E. always ignore the --tmpdir option if the param is empty. + Fixes http://bugs.gnu.org/15425 + +2013-10-06 Karl Berry <karl@freefriends.org> + + doc: expand the texinfo examples for the paste command + * doc/coreutils.texi (paste invocation): Move the synopsis to the top. + Provide examples for the different type of operations possible. + Add a specific common example to join consecutive lines with a space. + +2013-09-26 Sergio Durigan Junior <sergiodj@sergiodj.net> + + rm: with -I, prompt before deleting a write protected file + This regression was introduced in commit v6.7-71-g0928c24 + + * src/rm.c (main): Make the -I option behave like --interactive=once. + * tests/rm/interactive-once.sh: Add cases for single and multiple files. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/9308 + +2013-09-22 Pádraig Brady <P@draigBrady.com> + + maint: move all id(1) tests to the same directory + * tests/misc/id-context.sh -> tests/id/context.sh + * tests/misc/id-setgid.sh -> tests/id/setgid.sh + * tests/misc/id-uid.sh -> tests/id/uid.sh + * tests/misc/id-zero.sh -> tests/id/zero.sh + * tests/local.mk: Reference the renamed tests + + tests: parameterize the "root" username + * tests/misc/chroot-credentials.sh: Don't assume uid 0 + has the "root" name, nor any name for that matter. + + maint: remove unused parameters to parse_user_spec() + * src/chown.c (main): Since "name" parameters to parse_user_spec() + are now optional, just pass NULL for those unused parameters. + * src/chroot.c (main): Likewise. + + id: support specifying the user by user ID + * src/id.c (usage): Remove 'name' from the synopsis, + implying that one can also specify by user ID. + (main): Like chown(1), call parse_user_spec() to implement + user name or ID lookup with appropriate precedence. + * doc/coreutils.texi (id invocation): Mention that + a user ID is supported and how '+' affects lookup order. + * tests/misc/id-groups.sh: Remove test now subsumed into... + * tests/misc/id-uid.sh: New test covering new interface. + * tests/local.mk: Rename the test. + * NEWS: Mention the new feature. + Addresses http://bugs.gnu.org/15421 + +2013-09-22 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest; also bootstrap to latest + Notes tests/init.sh is still in sync with gnulib. + + * bootstrap: Update to latest. + * gnulib: Sync many fixes/changes, including: + a fix for http://bugs.gnu.org/15066 + and preparation for http://bugs.gnu.org/15421 + +2013-09-22 Pádraig Brady <P@draigBrady.com> + + tests: avoid a failure when there isn't a name for all user IDs + * tests/misc/id-zero.sh: Don't check exit status when in -n mode. + + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/6196762 + +2013-09-21 Bernhard Voelker <mail@bernhard-voelker.de> + + id: add -z, --zero option + * src/group-list.h (print_group_list): Add a parameter for the + delimiter of type char. + * src/group-list.c (print_group_list): Likewise, and use it instead + of a white space character to delimit the group entries. + * src/groups.c (main): Pass white space character to print_group_list(). + * src/id.c (longopts): Add array element for the new long option. + (usage): Document the new option. While at it, fix the alignment + of the descriptions to match that of HELP_OPTION_DESCRIPTION. + (main): Define the bool flag opt_zero indicating the use of the + new option. In the getopt_long loop, handle it. + Output an error diagnostic in the case the --zero option has been + specified together with the default format. + In the case of -gG, pass either a NUL or a white space character to + print_group_list() - depending on the above new flag. + Likewise change the printing of the final newline character: output + a NUL instead if the --zero option has been specified. + * doc/coreutils.texi (id invocation): Document the new option. + While at it, move the @exitstatus macro down after the macro + @primaryAndSupplementaryGroups in order to be consistent with + other texinfo documents. + (groups invocation): Move @exitstatus down after the macro + @primaryAndSupplementaryGroups here, too. + * tests/misc/id-zero.sh: Add new test exercising the new option. + * tests/local.mk (all_tests): Reference it. + * NEWS (New features): Mention the new option. + Fixes http://bugs.gnu.org/9987 + +2013-09-12 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: avoid patching help2man + Commit cde1ea0e separated the coreutils-specific patches from help2man. + Most changes had been made to accommodate to the coreutils style guide, + i.e., to avoid syntax-check failures like sc_long_lines. + Yet 2 changes had to be put into the patch help2man.diff. + But this added the dependency to patch(1) in distribution builds. + Incidentally, the 2 remaining parts of the patch can easily be + done outside of help2man. Therefore, this commit partly reverts + the recent separation of help2man into 'help2man.in' and + 'help2man.diff', and instead uses the original help2man script. + + * man/help2man.in: Rename to ... + * man/help2man: ... this file. + * man/help2man.diff: Remove. + * man/local.mk (mandeps): Remove man/help2man. + (man/help2man): Remove recipe. + (.x.1): Add the --info-page option when calling help2man in order + to change the name of the texinfo manual from the default, "info PRG", + to "info coreutils 'PRG invocation'". + Furthermore, use an sed pattern to remove the sentence starting + with "For complete documentation". + * .gitignore (/man/help2man): Remove entry. + * .x-update-copyright: Replace the entries for the files + 'man/help2man.diff' and 'man/help2man.in' by 'man/help2man'. + * cfg.mk (sc_long_lines): Instead of 'man/help2man.in', exempt + 'man/help2man' from this test. + (sc_po_check): Likewise. + (sc_space_tab): Instead of 'man/help2man.diff', exempt 'man/help2man' + from this test. + (sc_trailing_blank): Likewise. + (sc_prohibit_tab_based_indentation): Instead of 'man/help2man.in' and + 'man/help2man.diff', exempt 'man/help2man'. + * man/dummy-man: Recognize the option --info-page=... as no-op. + +2013-09-12 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: use help2man configured with --disable-nls + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/6038769 + + The previously committed 'help2man' requires a Perl module + which does not seem to be installed everywhere - and which + is not needed for our purposes: + + Can't locate Locale/gettext.pm in @INC + BEGIN failed--compilation aborted at ./man/help2man line 28. + + This module was pulled in automatically by the default configure call. + Use the NLS-disabled version instead. + + * man/help2man.in: Use help2man configured with the --disable-nls + option to avoid the dependency to the above Perl module. + * man/help2man.diff: Adapt the line numbers of the hunks in the + coreutils-specific patch for help2man to apply without fuzz. + + Reported by Pádraig Brady. + +2013-09-10 Pádraig Brady <P@draigBrady.com> + + build: fix corrupted patch causing bootstrap failures + The patch was corrupted in commit v8.21-50-g7b65f8e + + * gl/modules/tempname.diff: Fix the offsets so that the patch + applies cleanly. Note that this was only apparent with patch < 2.6. + With patch >= 2.6, patch will not indicate an error applying + the second hunk of the patch and silently ignore it. + I double checked that all patches now apply cleanly by adjusting + gnulib-tool to run patch with --fuzz=0 which might be advisable + going forward, even on a per project basis. + The silent ignoring of hunks by newer patch(1) has been reported. + Fixes http://bugs.gnu.org/15255 + +2013-09-09 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: update help2man to 1.43.3 + Instead of diverging further from the upstream GNU help2man project + (http://www.gnu.org/software/help2man/), hold a copy of the original + script and keep track of our changes in a separate patch file. + + The man pages created with the new version show the following, + non-invasive differences: + a) command options in the EXAMPLE sections are no longer in bold format, + b) file names are underlined now consistently. + + * man/help2man: Rename to ... + * man/help2man.in: ... this file, and update content from the + upstream GNU help2man project. + * man/help2man.diff: Add patch file for help2man to remove the + sentence "For complete documentation ..." (see commit 5d4f09d8), + and to emit "info coreutils 'PROG invocation'" into the man + pages (77abf69a). + * man/local.mk (mandeps): Add help2man to the dependencies of + the man pages. + (man/help2man): Add rule to generate this script from the upstream + help2man.in file and the help2man.diff patch. + * .gitignore: Add man/help2man as it is no longer version controlled. + * cfg.mk (sc_long_lines): Exempt help2man.in from this check. + (sc_po_check): Likewise. + (sc_space_tab): Likewise. + (sc_trailing_blank): Exempt man/help2man.diff from this check. + (sc_prohibit_tab_based_indentation): Instead of help2man, now exempt + both help2man.in and help2man.diff from this test. + * .x-update-copyright: Add new file and add the above new help2man + files as well as the COPYING file. + +2013-09-05 FUJIWARA Katsunori <foozy@lares.dti.ne.jp> + + ls: fix possible incorrect exit status when recursing directories + If there is an error reading a directory that was referenced + through recursion, rather than directly on the command line, + then exit with the "less serious" exit code, rather than the + "serious" exit code reserved for command line arguments. + This issue was introduced in commit v5.2.1-1908-gb58dea5 + + * src/ls.c (print_dir): Ensure that the command_line_arg param + is false for directories being recursed into. + * NEWS: Mention the bug fix. + Fixes http://bugs.gnu.org/15249 -2007-01-24 Dan Hipschman <dsh@linux.ucla.edu> +2013-09-01 Pádraig Brady <P@draigBrady.com> - Test sort compression. - * tests/misc/Makefile.am: Add the test. - * tests/misc/sort-compress: New file containing the tests. + maint: update out of date confusing comments + * src/copy.c (copy_internal): Change mention of the removed --reply=no + option, to the similar in this context --no-clobber. + * src/sort.c: SI and IEC suffixes can now be mixed when --human-numeric. -2007-01-24 Jim Meyering <jim@meyering.net> +2013-08-29 Pádraig Brady <P@draigBrady.com> - * NEWS: sort temp file compression: tweak wording. - * src/sort.c (struct sortfile) [name]: Declare member to be const. + df: fix "blocks" translation in header + * src/df.c (get_header): Get the translation of "blocks" here, + rather than just marking the string for translation. + Fixes http://bugs.gnu.org/15054 -2007-01-21 Jim Meyering <jim@meyering.net> +2013-08-10 Bernhard Voelker <mail@bernhard-voelker.de> - * src/sort.c (MAX_FORK_RETRIES_COMPRESS, MAX_FORK_RETRIES_DECOMPRESS): - In pipe_fork callers, use these named constants, not "2" and "8". - (proctab, nprocs): Declare to be "static". - (pipe_fork) [lint]: Initialize local, pid, - to avoid unwarranted may-be-used-uninitialized warning. - (create_temp): Use the active voice. Describe parameters, too. + doc: clarify when seq ends + * doc/coreutils.texi (seq invocation): Add a sentence clarifying + that seq terminates when LAST becomes smaller than the current number + plus INCREMENT. + * src/seq.c (usage): Likewise. + Fixes http://bugs.gnu.org/15068 -2007-01-21 James Youngman <jay@gnu.org> +2013-08-07 Bernhard Voelker <mail@bernhard-voelker.de> - Centralize all the uses of sigprocmask(). Don't restore an invalid - saved mask. - * src/sort.c (enter_cs, leave_cs): New functions for protecting - code sequences against signal delivery. - * (exit_cleanup): Use enter_cs and leave_cs instead of - calling sigprocmask directly. - (create_temp_file, pipe_fork, zaptemp): Likewise + doc: use more modern file system type examples in df description + * doc/coreutils.texi (df invocation): In the example list of common + file system types, exchange the entries which are not so common + anymore (4.2, ufs, efs, hsfs, pcfs) by far more prominent ones + (ext2, ext3, ext4, xfs, btrfs, iso9660, ntfs, fat). -2007-01-21 Dan Hipschman <dsh@linux.ucla.edu> +2013-08-07 Filipus Klutiero <chealer@gmail.com> - Add compression of temp files to sort. - * NEWS: Mention this. - * bootstrap.conf: Import findprog. - * configure.ac: Add AC_FUNC_FORK. - * doc/coreutils.texi: Document GNUSORT_COMPRESSOR environment - variable. - * src/sort.c (compress_program): New global, holds the name of the - external compression program. - (struct sortfile): New type used by mergepfs and friends instead - of filenames to hold PIDs of compressor processes. - (proctab): New global, holds compressor PIDs on which to wait. - (enum procstate, struct procnode): New types used by proctab. - (proctab_hasher, proctab_comparator): New functions for proctab. - (nprocs): New global, number of forked but unreaped children. - (reap, reap_some): New function, wait for/cleanup forked processes. - (register_proc, update_proc, wait_proc): New functions for adding, - modifying and removing proctab entries. - (create_temp_file): Change parameter type to pointer to file - descriptor, and return type to pointer to struct tempnode. - (dup2_or_die): New function used in create_temp and open_temp. - (pipe_fork): New function, creates a pipe and child process. - (create_temp): Creates a temp file and possibly a compression - program to which we filter output. - (open_temp): Opens a compressed temp file and creates a - decompression process through which to filter the input. - (mergefps): Change FILES parameter type to struct sortfile array - and update access accordingly. Use open_temp and reap_some. - (avoid_trashing_input, merge): Change FILES parameter like - mergefps and call create_temp instead of create_temp_file. - (sort): Call create_temp instead of create_temp_file. - Use reap_some. - (avoid_trashing_input, merge, sort, main): Adapt to mergefps. - - The idea of compressing sorts temporary files was first - suggested/implemented by Jay Soffian in 1998, and again - by Charles Randall in 2001. - -2007-01-20 Jim Meyering <jim@meyering.net> - - * tests/misc/pwd-long: Work properly even when run from the - wrong one of two or more bind-mounted sibling directories. - Suggestion from Mike Stone in <http://bugs.debian.org/380552>. - -2007-01-20 Paul Eggert <eggert@cs.ucla.edu> - - Standardize on list of signals when an app catches signals. - * src/csplit.c (main): Also catch SIGALRM, SIGPIPE, SIGPOLL, - SIGPROF, SIGVTALRM, SIGXCPU, SIGXFSZ. - * src/ls.c (main): Likewise (except SIGPIPE was already caught). - Note that ls.c is special, as it also catches SIGTSTP. - * src/sort.c (main): Likewise. Also catch SIGQUIT. More details in - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9510>. - -2007-01-19 Dan Hipschman <dsh@linux.ucla.edu> - and Paul Eggert <eggert@cs.ucla.edu> - - * src/sort.c (cleanup): Clear temphead at the end. - (exit_cleanup): New function. - (main): Don't invoke atexit until we're ready. - Invoke it with exit_cleanup, not with cleanup and close_stdout, - to avoid a race condition with cleanup and signal handling. More - details: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9508 - -2007-01-18 Jim Meyering <jim@meyering.net> + doc: fix typo in description of df + * doc/coreutils.texi (df invocation): s/pseude/pseudo/ + * THANKS.in (Filipus Klutiero): Remove entry, now that it will be + automatically included in the generated THANKS file. + Fixes http://bugs.gnu.org/15041 - * src/c99-to-c89.diff: Adjust remove.c offsets. +2013-08-05 Benno Schulenberg <bensberg@justemail.net> -2007-01-17 Jim Meyering <jim@meyering.net> + doc: more semicolons instead of periods in option descriptions + Also slightly rephrase some descriptions for extra clarity, and + add more consistent indentation. - Make "rm --interactive=never ..." never prompt. - * NEWS: Mention this. - * src/remove.h (enum rm_interactive): New ternary type. - (struct rm_options) [interactive]: Use it, here -- rather than bool. - * src/remove.c (prompt): Reflect type change. - * src/mv.c (rm_option_init): Initialize to RMI_NEVER now. - * src/rm.c (main): Add a FIXME comment for '-d' option. - Adapt to type change of rm_options.interactive. + * src/df.c (usage): Semicolon, no final period. + * src/du.c (usage): Likewise, plus indentation and clarifying words. + * src/ls.c (usage): Semicolon, rephrasings, added parentheses for + clarity, indentation. + * src/rm.c (usage): Semicolons. + * src/tail.c (usage): Adjust -f description to prefer explanatory + language instead of option syntax. - * tests/rm/i-never: New file. Test for the above fix. - * tests/rm/Makefile.am (TESTS): Add i-never. +2013-08-03 Pádraig Brady <P@draigBrady.com> -2007-01-15 Jim Meyering <jim@meyering.net> + doc: clarify that uniq -d outputs a single entry per group + * src/uniq.c (usage): Clarify the -d option. + Fixes http://bugs.gnu.org/14996 + +2013-08-02 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: update copyright year number ranges of numfmt sources + Run "make update-copyright". + + * src/numfmt.c: Update copyright year number range. This file has + obviously been added to coreutils after and without the annual update. + * tests/misc/numfmt.pl: Likewise. + +2013-08-01 Benno Schulenberg <bensberg@justemail.net> + + doc: use semicolon instead of period in option descriptions + Also do not end option descriptions with a period, properly indent + continuation lines, and make some tiny clarifications. + + * src/du.c (usage): Lowercase after semicolon. + * src/ls.c (usage): Semicolons instead of periods, small rephrasing + and two hyphens for clarity, proper indentation. + * src/mktemp.c (usage): Semicolons and lowercase. + * src/od.c (usage): Semicolons. + * src/ptx.c (usage): Use the standard phrase, clarify default option. + * src/setuidgid.c (usage): Properly indent continuation line. + * src/split.c (usage): Semicolons, lowercase, no final period. + * src/stat.c (usage): Semicolons, lowercase. + * src/tail.c (usage): Proper indentation, one shorter rephrasing, + semicolons, no final periods. + * src/timeout.c (usage): Properly indent, semicolons, no final periods. + Fixes http://bugs.gnu.org/14976 + +2013-08-01 Pádraig Brady <P@draigBrady.com> + + doc: clarify that cp by default doesn't adjust existing file perms + * doc/coreutils.texi (cp invocation): Mention explicitly what + happens to permissions of existing files when -p is not specified. + Fixes http://bugs.gnu.org/14972 + +2013-07-29 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix another test failure in test/du/inodes.sh + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/5584121 + + du(1) uses the first file object of the two test files linked to the + same inode, 'd/f' and 'd/h', whatever the system returns first. + Use 'd/f' in both the expected and the actual output. + + * test/du/inodes.sh: Change the expected output as described above + when returning the --all directory entries (without -l). Also replace + the name of the hardlink 'd/h' by 'd/f' in the actual output. + +2013-07-28 Paul Eggert <eggert@cs.ucla.edu> + + doc: fix typo + * doc/coreutils.texi (du invocation): @itemx -> @item. + +2013-07-28 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: cleanup compare calls in test/du/inodes.sh + * test/du/inodes.sh: In the cases where compare() fails, that function + would show the unified diff automatically. Therefore, remove the + excess "cat out". + In the cases where expecting an empty file, use compare() again + rather than the simpler "test -s" because possible error reports + will then include the file's content for the same reason as above. + +2013-07-28 Pádraig Brady <P@draigBrady.com> + + maint: avoid clang static analysis issues in csplit + * src/csplit.c (find_lines): Assert that load_buffer() updates the + global buffers, thus "b" will be non NULL, thus suppressing subsequent + NULL pointer derefence warnings. + (process_regexp): Avoid a redundant assignment of the "line" pointer. + (process_line_count): Likewise. Also reduce the "line" pointer scope. + +2013-07-28 Pádraig Brady <P@draigBrady.com> + + tests: fix intermittent failure in test/du/inodes.sh + 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-27 Bernhard Voelker <mail@bernhard-voelker.de> + + du: add --inodes option + 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-25 Ken Booth <ken@booths.org.uk> + + mv: replace empty directories in cross file system move + 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 - * bootstrap (gnulib_tool): When adding to .cvsignore and .gitignore, - emit foo.h, for each foo_.h. This yields one false-positive, fts.h, - but that's ok, since fts_.h will eventually be renamed. +2013-07-22 Bernhard Voelker <mail@bernhard-voelker.de> - * src/remove.c (remove_dir): Don't use errno in diagnostic. - Root-only test failure reported by Alex van Hout and Jon Grosshart in - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>. + maint: use new gnulib function to free mount entries in du + * src/du.c (fill_mount_table): Use free_mount_entry() instead + of freeing struct members manually. - * bootstrap.conf (avoided_gnulib_modules): Fix my typo: - s/--avoid=canonicalize-lgpl/--avoid=canonicalize-gpl/ +2013-07-22 Bernhard Voelker <mail@bernhard-voelker.de> -2007-01-14 Bruno Haible <bruno@clisp.org> + maint: make some shell and perl scripts executable in 'tests/' + 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-19 Rasmus Villemoes <rv@rasmusvillemoes.dk> + + rm: output number of arguments at the interactive prompt + 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-19 Pádraig Brady <P@draigBrady.com> + + dd: make status=none suppress all diagnostics + * 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-12 Pádraig Brady <P@draigBrady.com> + + head: avoid redundant allocations when reading empty files + * 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-12 Pádraig Brady <P@draigBrady.com> + + maint: avoid a valgrind memory leak warning from pinky + 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-11 Anton Ovchinnikov <revolver112@gmail.com> + + df: reduce memory usage when filtering mount entries + 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-11 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest + +2013-07-11 Pádraig Brady <P@draigBrady.com> + + build: fix a build warning on 32 bit systems in shuf.c + 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-11 Assaf Gordon <assafgordon@gmail.com> + + shuf: add --repetition to support repetition in output + 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. + + tests: add more tests for shuf option combinations + * test/misc/shuf.sh: Add tests for erroneous conditions + like multiple '-o' and '--random-source'. + +2013-07-11 Pádraig Brady <P@draigBrady.com> + + maint: adjust indentation in df.c + * src/df.c: Adjust indentation and spacing with has + gotten quite out of line in a couple of places. + +2013-07-09 Pádraig Brady <P@draigBrady.com> + + df: fix mount list processing with unstatable mount dirs + * 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. - Enable use of gnulib's new fchdir module. - * bootstrap.conf (avoided_gnulib_modules): Avoid canonicalize-lgpl, - since we use canonicalize. - (gnulib_modules): Add fchdir. - * m4/jm-macros.m4 (coreutils_MACROS): Remove fchdir-stub. +2013-07-07 Anton Ovchinnikov <revolver112@gmail.com> -2007-01-13 Jim Meyering <jim@meyering.net> + maint: avoid a valgrind memory leak warning from uptime + * src/uptime.c (uptime): Free utmp_buf returned from read_utmp, + to avoid a "definitely lost" warning from valgrind. - * Transform all Makefile.am files so that when running "make check", - CU_TEST_NAME is set to the name of the test. This is so that when I - run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check" - on the entire package it is more convenient to map a leak or error - found in a valgrind log file back to the offending test. - Use this command: - (echo tests/Makefile.am.in; find tests -name Makefile.am) \ - |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \ - -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"' +2013-07-07 Paul Eggert <eggert@cs.ucla.edu> -2007-01-11 Jim Meyering <jim@meyering.net> + build: update gnulib submodule to latest - Avoid a leak in expr's implementation of the ":" (match) operator. - * src/expr.c (docolon): Free the regexp buffer using regfree, rather - than doing it manually, being careful to set fastmap to NULL first. - Free any re_regs.start and .end members, if necessary. +2013-07-05 Pádraig Brady <P@draigBrady.com> - * tests/misc/test-diag: Work also when libc's error function - reports the entire program name ("../../src/test"), rather than - just the final component. + tests: fix "shuf unreadable" test to work when run as root + * tests/misc/shuf.sh: Restrict the test to the significant + case where we can't in fact read the "unreadable" file. -2007-01-10 Jim Meyering <jim@meyering.net> +2013-07-02 Pádraig Brady <P@draigBrady.com> - Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...". - * src/chown-core.c (FTSENT_IS_DIRECTORY): New macro. - (change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a - directory. Non-directory entries lack fts_statp data when using - the FTS_NOSTAT option. + stat: ensure --context emits an "unrecognized option" diagnostic + * src/stat.c (long_options): Remove the "context" option as it's + no longer referenced since commit v8.5-65-g13f3237 -2007-01-07 Jim Meyering <jim@meyering.net> +2013-07-02 Bernhard Voelker <mail@bernhard-voelker.de> - * tests/sample-test: Update copyright date to 2007. - * Makefile.maint (copyright-check): Also check the copyright date - in tests/sample-test. + mkdir,mkfifo,mknod: give scontext-related variable a better scope + * 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. -2007-01-06 Jim Meyering <jim@meyering.net> +2013-07-02 Pádraig Brady <P@draigBrady.com> + + maint: refactor SMACK interface to a separate module + 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. - * tests/fmt/basic (pfx-only, pfx-of-pfx): New tests, - based on examples from G.P. Halkes in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9388>. +2013-07-02 Pádraig Brady <P@draigBrady.com> -2007-01-06 G.P. Halkes <buscom@ghalkes.nl> + id: don't show SMACK errors unless -Z is specified + * src/id.c (main): Be consistent with the SELinux case, + and only show errors in getting the security context + when -Z is specified. - * src/fmt.c (copy_rest): Correct prefix handling. - Don't elide a line with the prefix followed by only white space. - (get_line): Move EOF-check to loop-termination condition. - * tests/fmt/basic (pfx-1): Adjust test to expect desired result. - (pfx-2): Remove test; its premise was contrary to the documentation. +2013-07-01 Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> -2007-01-05 Jim Meyering <jim@meyering.net> + mkdir,mkfifo,mknod: with -Z, create SMACK security context + Enable creation of SMACK security context with -Z command-line switch + if SMACK is enabled. - Avoid a used-uninitialized bug for invalid input, i.e., when the size - of the input, not counting newlines, is 1 % 4. - * gl/lib/base64.c (base64_decode): Don't hard-code inlen==4. - It may be smaller when flushing. + * 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. -2007-01-05 Mike Frysinger <vapier@gentoo.org> +2013-06-27 D. Hugh Redelmeier <hugh@mimosa.com> - * src/dircolors.hin: Add a TERM directive for cons25. + doc: fix details on the interaction of df with device nodes + * 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. -2007-01-04 Jim Meyering <jim@meyering.net> +2013-06-24 Jarkko Sakkinen <jarkko.sakkinen@iki.fi> - * Makefile.cfg (local-checks-to-skip): Skip strftime-check, in - case you don't have convenient access to glibc info documentation. + ls: with -Z, show SMACK security context + 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. - Use the release year, not the current year. - * src/groups.sh (version): Use a better name: @RELEASE_YEAR@. - * src/Makefile.am (RELEASE_YEAR): Define it. - (.sh): Use it. - Thanks to a prod from Eric Blake. + * 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. - Ensure that "group --version" always prints the current year. - * src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006. - * src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@. - Suggestion from Eric Blake. +2013-06-22 Pádraig Brady <P@draigBrady.com> - When decoding, always allow newlines in input, with almost no - performance impact. - * src/base64.c (do_decode): Initialize decode context. - Call base64_decode one more time, after all input is processed. - (usage): When decoding, newlines are always accepted. + stdbuf: make it mandatory to specify a buffering option + 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. - * tests/misc/base64: Add a bunch of tests, for the above. - * gl/lib/base64.c: Include <string.h>. - (base64_decode_ctx_init, get_4, decode_4): New functions. - (base64_decode): Efficiently handle interspersed newlines. - (base64_decode_alloc): Update signature. - * gl/lib/base64.h (struct base64_decode_context): Define. - (base64_decode_ctx_init): Add prototype. - (base64_decode, base64_decode_alloc): Update prototypes. + * 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. - * gl/lib/base64.c: Copied from gnulib. - * gl/lib/base64.h: Likewise. +2013-06-22 Pádraig Brady <P@draigBrady.com> -2007-01-03 Jim Meyering <jim@meyering.net> + doc: clarify that truncate --size represents bytes by default + * 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 - * THANKS: Add Evan Hunt. +2013-06-20 Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> -2007-01-03 Bruno Haible <bruno@clisp.org> + id: adjust/restrict smack support to newer versions of libsmack + There was slight change to libsmack such that positive values are + reserved for returning length of the label for smack_new_label_from_* + functions. - Avoid spurious test failures on MacOS X 10.3.9, in a German locale. - * tests/chown/deref: Apply lang-default. - * tests/misc/split-a: Likewise. - * tests/mv/reply-no: Likewise. + * 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. - * src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails. - Needed on MacOS X. +2013-06-18 Pádraig Brady <P@draigBrady.com> -2007-01-02 Paul Eggert <eggert@cs.ucla.edu> + tests: use appropriate precision when printing float limits + * 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 - Now, "ls -FRL" always follows symbolic links on Linux. - * NEWS: Mention this bug fix. - * src/ls.c (gobble_file): Fix bug reported by - Nobuyuki Tsuchimura in - http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html - where "ls -FRL" didn't follow a symbolic link in some cases on Linux. - * tests/ls/follow-slink: Add a test for this case. +2013-06-13 Pádraig Brady <P@draigBrady.com> -2007-01-01 Jim Meyering <jim@meyering.net> + maint: update gitignore entries + * .gitignore: Exclude the generated doc/manual directory, + and also the src/fs-latest-magic.h file referenced in README-release. - * tests/rm/fail-eperm: Revert last change. The PATH=... setting - is not honored at least on HP-UX 11.23 systems. - Instead, simply transform the actual output diagnostic. - Test failure reported by Bob Proulx. +2013-06-12 Pádraig Brady <P@draigBrady.com> -2006-12-30 Jim Meyering <jim@meyering.net> + doc: clarify the description of du --separate-dirs + * 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-05 Eric Blake <eblake@redhat.com> + + doc: mention prior stat change + 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-05 Bernhard Voelker <mail@bernhard-voelker.de> + + build: update gnulib submodule; also bootstrap to latest + Notes tests/init.sh is still in sync with gnulib. + + * bootstrap: Update to latest. + * gnulib: Update avoiding gnulib-test failures. + +2013-06-03 Pádraig Brady <P@draigBrady.com> + + tests: avoid a race in tail --retry testing + 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-03 Andreas Mohr <andi@lisas.de> + + doc: mention 'UTC' in date --utc help + src/date.c (usage): Make -u apparent in searches for UTC. + +2013-06-02 Jim Meyering <meyering@fb.com> + + od: -wN, N>64K, avoid misbehavior on systems with 32-bit size_t + * 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. + + tests: head-c: avoid spurious failure with a 32-bit size_t + * 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-27 Jim Meyering <meyering@fb.com> + + tests: avoid spurious failure when SIZE_MAX is 2^32-1 + * 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. + + tests: fix an ls test not to fail when user or group name contains SP + * 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-27 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: numfmt: use the printf program, not the shell builtin + * tests/misc/numfmt.pl: Avoid a spurious failure when + /bin/sh is dash (as can happen on Debian systems). + +2013-05-24 Paul Eggert <eggert@cs.ucla.edu> + + stat: tune for large-LDAP case + * 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-23 Pádraig Brady <P@draigBrady.com> + + split: with --line-bytes only allocate memory as needed + * 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-19 Paul Eggert <eggert@cs.ucla.edu> + + maint: port --enable-gcc-warnings to clang + * 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]. + + build: update gnulib submodule to latest + + tests: don't assume expr was built with GMP + * tests/misc/cut-huge-range.sh (subtract_one): New string. + (CUT_MAX): Don't pass a too-large integer to 'expr'. + +2013-05-12 Pádraig Brady <P@draigBrady.com> + + doc: link to the list of rejected feature requests + * 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-12 Jim Meyering <meyering@fb.com> + + build: avoid new syntax-check failure + * po/POTFILES.in: Reflect renaming. + +2013-05-12 Paul Eggert <eggert@cs.ucla.edu> + + maint: add FIXME comment + + mkdir: don't assume umask equals POSIX default ACL mask + 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. + + build: update gnulib submodule to latest + +2013-05-08 Jarkko Sakkinen <jarkko.sakkinen@iki.fi> + + id: with -Z, show SMACK security context + Adds an optional dependency on libsmack. + + * m4/jm-macros.m4: Look for the smack library/header. + * src/id.c (main): Output the smack context if available. + * src/local.mk: Link with libsmack if available. + * NEWS: Mention the new feature. + +2013-05-08 Cojocaru Alexandru <xojoc@gmx.com> + + cut: improve performance, especially with --output-delimiter + Use a sentinel value that's checked implicitly, rather than + a bit array, to determine if an item should be output. + + Benchmark results for this change are: + + $ yes abcdfeg | head -n1MB > big-file + + $ for c in orig sentinel; do + src/cut-$c 2>/dev/null + echo -ne "\n== $c ==" + time src/cut-$c -b1,3 big-file > /dev/null + done + == orig == + real 0m0.049s + user 0m0.044s + sys 0m0.005s + + == sentinel == + real 0m0.035s + user 0m0.032s + sys 0m0.002s + + ## Again with --output-delimiter ## + $ for c in orig sentinel; do + src/cut-$c 2>/dev/null + echo -ne "\n== $c ==" + time src/cut-$c -b1,3 --output-delimiter=: big-file > /dev/null + done + == orig == + real 0m0.106s + user 0m0.103s + sys 0m0.002s + + == sentinel == + real 0m0.055s + user 0m0.052s + sys 0m0.003s + + eol_range_start: Removed. 'n-' is no longer treated specially, + and instead SIZE_MAX is set for the 'hi' limit, and tested implicitly. + complement_rp: Used to complement 'rp' when '--complement' is specified. + ADD_RANGE_PAIR: Macro renamed to 'add_range_pair' function. + * tests/misc/cut-huge-range.sh: Adjust to the SENTINEL value. + Also remove the overlapping range test as this is no longer + dependent on large ranges and also is already handled with + the EOL-subsumed-3 test in cut.pl. + +2013-05-07 Cojocaru Alexandru <xojoc@gmx.com> + + cut: fix handling of overlapping ranges + This issue was introduced in commit v8.21-43-g3e466ad + + * src/cut.c (set_fields): Process all range pairs when merging. + * tests/misc/cut-huge-range.sh: Add a test for this edge case. + Also fix an issue where we could miss reported errors due + to truncation of the 'err' file. + +2013-04-30 Pádraig Brady <P@draigBrady.com> + + doc: correct a URL to older textutils source + * doc/coreutils.texi (Putting the tools together): Adjust the + textutils-1.22 URL, and add a URL for newer sources. + +2013-04-29 Pádraig Brady <P@draigBrady.com> + + cut: reduce CPU usage for the the common case + Ensure appropriate functions are inlined. This was seen to + be required with gcc 4.6.0 with -O2 on x86_64 at least. + It was reported that gcc 4.8.0 did inline these functions though. + + Also reinstate the bit vector for the common case, + to further improve performance. + + Benchmark results for both aspects of this change are: + + $ yes abcdfeg | head -n1MB > big-file + $ for c in orig inline inline-array; do + src/cut-$c 2>/dev/null + echo -ne "\n== $c ==" + time src/cut-$c -b1,3 big-file > /dev/null + done + + == orig == + real 0m0.088s + user 0m0.081s + sys 0m0.007s + + == inline == + real 0m0.070s + user 0m0.060s + sys 0m0.009s + + == inline-array == + real 0m0.049s + user 0m0.044s + sys 0m0.005s + + * src/cut.c (set_fields): Set up the printable_field bit vector + for performance, but only when it's appropriate. I.E. not + when either --output-delimeter or huge ranges are specified. + (next_item): Ensure it's inlined and avoid unnecessary processing. + (print_kth): Ensure it's inlined and add a branch for the fast path. + Related to http://bugs.gnu.org/13127 + +2013-04-29 Cojocaru Alexandru <xojoc@gmx.com> + + cut: reduce CPU overhead in determining item to output + print_kth() is the central function of cut used to + determine if an item is to be output or not, + so simplify it by moving some logic outside. + Benchmark results for this change are: + + $ yes abcdfeg | head -n1MB > big-file + $ for c in orig split; do + src/cut-$c 2>/dev/null + echo -ne "\n== $c ==" + time src/cut-$c -b1,3 big-file > /dev/null + done + + == orig == + real 0m0.111s + user 0m0.108s + sys 0m0.002s + + == split == + real 0m0.088s + user 0m0.081s + sys 0m0.007s + + * src/cut.c (print_kth): Refactor a branch to outside the function. + Related to http://bugs.gnu.org/13127 + +2013-04-29 Cojocaru Alexandru <xojoc@gmx.com> + + cut: make memory allocation independent of range width + The current implementation of cut, uses a bit array, + an array of `struct range_pair's, and (when --output-delimiter + is specified) a hash_table. The new implementation will use + only an array of `struct range_pair's. + The old implementation is memory inefficient because: + 1. When -b with a big num is specified, it allocates a lot of + memory for `printable_field'. + 2. When --output-delimiter is specified, it will allocate 31 buckets. + Even if only a few ranges are specified. + + Note CPU overhead is increased to determine if an item is to be printed, + as shown by: + + $ yes abcdfeg | head -n1MB > big-file + $ for c in with-bitarray without-bitarray; do + src/cut-$c 2>/dev/null + echo -ne "\n== $c ==" + time src/cut-$c -b1,3 big-file > /dev/null + done + + == with-bitarray == + real 0m0.084s + user 0m0.078s + sys 0m0.006s + + == without-bitarray == + real 0m0.111s + user 0m0.108s + sys 0m0.002s + + Subsequent patches will reduce this overhead. + + * src/cut.c (set_fields): Set and initialize RP + instead of printable_field. + * src/cut.c (is_range_start_index): Use CURRENT_RP rather than a hash. + * tests/misc/cut.pl: Check if `eol_range_start' is set correctly. + * tests/misc/cut-huge-range.sh: Rename from cut-huge-to-eol-range.sh, + and add a test to verify large amounts of mem aren't allocated. + Fixes http://bugs.gnu.org/13127 + +2013-04-28 Pádraig Brady <P@draigBrady.com> + + stat,tail: improve support for snfs + The StorNext distributed file system was previously known as CVFS. + + * src/stat.c (human_fstype): Add new file system ID definition. + * NEWS: Mention the improvement. + Fixes http://bugs.gnu.org/14251 + +2013-04-25 Pádraig Brady <P@draigBrady.com> + + tests: fix usage of require_ulimit_ + * init.cfg (require_ulimit_v_): Renamed from require_ulimit_ + as this only checks for ulimit -v support. Other uses of + ulimit -t and ulimit -n in tests shouldn't cause false failures + if not supported. + * cfg.mk (sc_prohibit_test_ulimit_without_require_): A new syntax check + to ensure that require_ulimit_v_() is used iff required. + * tests/misc/head-c.sh: Add missing call to require_ulimit_v_. + * tests/rm/many-dir-entries-vs-OOM.sh: Likewise. + * tests/split/r-chunk.sh: Remove non mandatory require_ulimit_ call. + * tests/misc/sort-merge-fdlimit.sh: Likewise. + * tests/cp/link-heap.sh: Adjust to renamed require_ulimit_v_. + * tests/dd/no-allocate.sh: Likewise. + * tests/misc/csplit-heap.sh: Likewise. + * tests/misc/cut-huge-to-eol-range.sh: Likewise. + * tests/misc/printf-surprise.sh: Likewise. + +2013-04-22 Jim Meyering <meyering@fb.com> + + 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-20 Bernhard Voelker <mail@bernhard-voelker.de> + + 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 Bernhard Voelker <mail@bernhard-voelker.de> + + 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-14 Pádraig Brady <P@draigBrady.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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. + + 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 Ondrej Oprala <ooprala@redhat.com> + + 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-10 Assaf Gordon <assafgordon@gmail.com> + + 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-07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> + + 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-04 Pádraig Brady <P@draigBrady.com> + + 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 + + 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. + + 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. + + 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 Rémy Lefevre <lefevreremy@gmail.com> + + 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-03-25 Assaf Gordon <assafgordon@gmail.com> + + 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-24 Pádraig Brady <P@draigBrady.com> + + 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 + + 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. + + 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-22 Pádraig Brady <P@draigBrady.com> + + 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 + + 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-06 Pádraig Brady <P@draigBrady.com> + + 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. + + doc: remove a redundant numfmt heading from texinfo + * doc/coreutils.texi (detailmenu): Remove the redundant numfmt heading. + + 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-04 Torbjörn Granlund <tg@gmplib.org> + + 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-02-28 Assaf Gordon <assafgordon@gmail.com> + + 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. + + 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 Pádraig Brady <P@draigBrady.com> + + 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 Assaf Gordon <assafgordon@gmail.com> + + tests: add '--ignore-case' tests for uniq + * tests/misc/uniq.pl: add tests for --ignore-case. + +2013-02-28 Javier López <chilicuil@ubuntu.com> + + 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 Assaf Gordon <assafgordon@gmail.com> + + 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. - * bootstrap (gnulib_extra_files): Remove announce-gen. - * bootstrap.conf (gnulib_modules): Add it here instead, now that - it's a module. +2013-02-28 Ondřej Vašík <ovasik@redhat.com> - * tests/misc/base64: Factor a long, repetitive string. + 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 - * src/c99-to-c89.diff: Adjust remove.c offsets. +2013-02-22 Ondrej Oprala <ooprala@redhat.com> - Clean up after the change of 2006-12-28. - * src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP, - now that this function never modifies the pointer. Adjust comments - and code accordingly. - (remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call, - now that AD_pop_and_chdir no longer does that. - - * tests/rm/fail-eperm: Avoid spurious differences (the error function - from latest glibc no longer prints the full program_name): so don't - invoke rm via ../../src/rm. Instead, invoke it via "PATH=../../src rm". - - * tests/mv/acl (skip): Skip this test also if the destination - directory, which is on a different file system, lacks ACL support. - - * src/copy.c (copy_reg): Rewrite a comment that was rendered - inaccurate by the 2006-10-18 change. - -2006-12-28 Jim Meyering <jim@meyering.net> - - When moving "up" the hierarchy, be careful to remove a just-emptied - directory before opening ".", to avoid trouble with file system - implementations that cache readdir results at opendir-time. - * src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter. - Don't update **DIRP. Don't call fdopendir here. - (remove_dir): Call fdopendir here instead. - Report and patch from Mikulas Patocka: - <http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html> - -2006-12-27 Jim Meyering <jim@meyering.net> - - * src/tail.c (usage): Mention +N for --bytes and --lines. - Suggestion from Evan Hunt. - -2006-12-26 Jim Meyering <jim@meyering.net> - - * configure.ac: Require autoconf-2.61 and automake-1.10. - Without the former (even with autoconf-2.60), "make distcheck" - would fail (without the 2006-09-26 autoconf AC_CHECK_DECL fix), - due to an inttypes.h generated with CFLAGS including -pedantic. - With the old decl check, @HAVE_DECL_STRTOUMAX@ would be 0. - - * Makefile.maint (VC-tag): Define, so as to gpg-sign each release - tag, using the release version number as the message. - (vc-dist): Use $(VC-tag), rather than "$(VC) tag". - -2006-12-21 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: dd bs= operands now silently override later ibs= and obs=, - as POSIX requires. - * src/dd.c (scanargs): Implement it. - * tests/dd/misc (outbytes): Test it. - * doc/coreutils.texi (dd invocation): Specify that bs=N - overrides later ibs and obs, undoing part of the - previous change. (The behavior was wrong.) - -2006-12-20 Jim Meyering <jim@meyering.net> - - "rm -rf /etc/motd" (run by non-root) now prints a diagnostic. - * src/remove.c (remove_entry): Handle EACCES for a non-directory, too. - Don't let a non-directory get by with errno == EPERM, either. - Check the file type directly (using cached stat value), rather - than trying to guess it from errno values. - Karl Berry reported that a cross-partition "mv /etc/issue ~" - failed with the um,... suboptimal diagnostic, - "mv: cannot remove `/etc/issue': Not a directory". - * tests/rm/Makefile.am (TESTS): Add fail-eacces. - * tests/rm/fail-eacces: New file. - * NEWS: Mention that both mv and rm are affected. - - "cut -f 2- A B" no longer triggers a double-free bug - * src/cut.c (cut_fields): Set file-scoped global to NULL after - freeing it. This avoids a double-free (and core dump on some systems) - for this usage: "echo 1>a; echo 2>b; cut -f2- a b". Reported by - James Hunt in <http://bugzilla.redhat.com/220312>. - * NEWS: List this bug fix. - * THANKS: Mention him. - * tests/misc/cut: New file. - * tests/misc/Makefile.am (TESTS): Add cut. - -2006-12-15 Jim Meyering <jim@meyering.net> - - * tests/cp/open-perm-race: Correct the gdb-existence check. - Don't run either subsequent gdb command in a sub-shell. - Reported by Thomas Schwinge. - * THANKS: bring up to date. - -2006-12-14 Paul Eggert <eggert@cs.ucla.edu> - - Make sure cp -p isn't too generous with file permissions. - * tests/cp/Makefile.am (TESTS): Add file-perm-race. - * tests/cp/file-perm-race: New file. - - Ensure cp -pR --parents isn't too generous with parent permissions. - * tests/cp/Makefile.am (TESTS): Add parent-perm-race. - * tests/cp/parent-perm-race: New file. - -2006-12-14 Jim Meyering <jim@meyering.net> - - * tests/chgrp/default-no-deref: Don't assume that files are created - with the primary group by default. That's not true in a directory - with the set-GID bit set. - - Don't hang when there's no input tty. - * tests/cp/open-perm-race: Skip this test if there is no - controlling input `terminal'. - - Test for a hard-to-detect race fix, using gdb. - * tests/cp/open-perm-race: New file, to test for the - cp --preserve=ownership fix of 2006-12-06. - - * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir. - (TESTS): Add open-perm-race. - - * src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference. - * src/chown.c (main): Likewise. - * src/chown-core.c (change_file_owner): Add to a comment. - * tests/chown/preserve-root: Add tests. - - * NEWS: --preserve-root now works with chgrp, chmod, and chown. - * src/chmod.c (process_file): Do honor the --preserve-root option. - * src/chown-core.c (change_file_owner): Likewise, but here, also - handle the case in which a traversal would go "through" a symlink - to root. Reported by Matthew M. Boedicker - * tests/chown/preserve-root: Test for the above. - * tests/chown/Makefile.am (TESTS): Add preserve-root. - - * NEWS: Mention the chmod fix induced by the 2006-12-11 change - to gnulib's m4/openat.m4. - -2006-12-13 Andreas Schwab <schwab@suse.de> - - Don't fail if mv/acl test succeeds. - * tests/mv/acl (skip): Check for acl support in the file system. - * tests/mv/Makefile.am (XFAIL_TESTS): Remove. - (TESTS_ENVIRONMENT): Pass CONFIG_HEADER. - -2006-12-13 Paul Eggert <eggert@cs.ucla.edu> - - Remove some arbitrary restrictions on size fields, so that - commands like "sort -k 18446744073709551616" no longer fail merely - because 18446744073709551616 doesn't fit in uintmax_t. The trick - is that these fields can all be treated as effectively infinity; - their exact values don't matter, since no internal buffer can be - that long. - * src/join.c (string_to_join_field): Verify that SIZE_MAX <= - ULONG_MAX if the code assumes this. Silently truncate too-large - values to SIZE_MAX, as the remaining code will do the right thing - in this case. - * src/sort.c (parse_field_count): Likewise. - * src/uniq.c (size_opt, main): Likewise. - * tests/join/Test.pm (bigfield): New test. - * tests/sort/Test.pm (bigfield): New test. - * tests/uniq/Test.pm (121): New test. - -2006-12-13 Jim Meyering <jim@meyering.net> - - * tests/chgrp/default-no-deref: New test. - * tests/chgrp/Makefile.am (TESTS): Add default-no-deref. - -2006-12-12 Jim Meyering <jim@meyering.net> - - * src/system.h (SETVBUF): Remove definition, now that the - autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing. - * src/tee.c (tee_files): s/SETVBUF/setvbuf/. - * src/od.c (open_next_file): Likewise. + 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. -2006-12-09 Jim Meyering <jim@meyering.net> +2013-02-20 Joachim Schmitz <jojo@schmitz-digital.de> - * man/Makefile.am (.x.1): Make help2man use $(PACKAGE_STRING) as the - "source". I.e. "GNU coreutils 6.7". + 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. - * NEWS: With the change from "-pre" to "-dirty" suffix, also change - from NEXT_VER-pre to CUR_VER-dirty. So, this is 6.7-dirty. - * configure.ac (AC_INIT): s/6.8-dirty/6.7-dirty/. +2013-02-20 Pádraig Brady <P@draigBrady.com> - * tests/uniq/Test.pm (test_vector): Skip the pipe-reading test - whenever uniq is expected to fail. This should catch the other case - [test #112] in which uniq emits "cat: write error: Broken pipe" on - some systems. + 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. -2006-12-08 Jim Meyering <jim@meyering.net> +2013-02-20 Joachim Schmitz <jojo@schmitz-digital.de> + + 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 - Include bootstrap tool version info in the announcement form. - * Makefile.maint (gnulib_snapshot_date): Define. - (announcement): Use two new announce-gen options, - --bootstrap-tools and --gnulib-snapshot-date. - * Makefile.cfg (gnulib_dir): Set. +2013-02-20 Pádraig Brady <P@draigBrady.com> + + 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-18 Stefano Lattarini <stefano.lattarini@gmail.com> + + 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 Stefano Lattarini <stefano.lattarini@gmail.com> + + 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-14 Bernhard Voelker <mail@bernhard-voelker.de> + + 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 Pádraig Brady <P@draigBrady.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.21 + * NEWS: Record release date. + + 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 Pádraig Brady <P@draigBrady.com> + + 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-13 Assaf Gordon <assafgordon@gmail.com> + + 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-11 Bernhard Voelker <mail@bernhard-voelker.de> + + 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 Pádraig Brady <P@draigBrady.com> + + 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-10 Benno Schulenberg <bensberg@justemail.net> + + 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 Pádraig Brady <P@draigBrady.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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. + + 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-07 Jim Meyering <meyering@fb.com> + + tests: avoid actual/expected mismatch due to changed diagnostic + * tests/cp/fail-perm.sh: Adjust expected diagnostic to match + just-changed cp diagnostic. + * tests/ln/hard-to-sym.sh: Likewise. + * .mailmap: Also map my new address. + +2013-02-07 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule; also bootstrap to latest + Notes tests/init.sh is still in sync with gnulib + + * bootstrap: update to latest + * gnulib: update avoiding secure_getenv and subsequent patches + as these are reported to fail on FreeBSD at least. + +2013-02-06 Benno Schulenberg <bensberg@justemail.net> + + maint: improve error messages upon failed read, write, access, close + Note we use "failed to {access,close}" for those single operations, + and "error {read,writ}ing" for those partial operation failures. + + * src/copy.c: Improve error messages for failing read, write and close. + * src/cp.c: Improve error messages for failing access. + * src/dd.c: Improve error messages for failing read, write and open. + * src/head.c: Improve error message for failing close. + * src/install.c: Improve error messages for failing access. + * src/ln.c: Likewise. + * src/mv.c: Likewise. + * src/touch.c: Improve error message for failing close. + * src/truncate.c: Likewise. + +2013-02-05 Assaf Gordon <assafgordon@gmail.com> + + doc: fix a numfmt help section typo + * src/numfmt.c (usage): Change erroneous "G" to "M". + +2013-02-05 Ondřej Vašík <ovasik@redhat.com> + + stty: add support for DTR/DSR hardware control flow + Originally requested in Red Hat bugzilla #445213. + + * src/stty.c (mode_info): Add support for DTR/DSR hardware flow control, + if available. + * doc/coreutils.texi: Document it. + * tests/misc/stty.sh: Add it to the list of serial options to avoid. + * NEWS: Mention the improvement. + +2013-02-05 Pádraig Brady <P@draigBrady.com> + + numfmt: correct a printf format + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/4010493 + + * src/numfmt.c (parse_format_string): Correct both sign and size of + a printf format, which only gives a warning on 32 bit builds. + +2013-02-04 Assaf Gordon <assafgordon@gmail.com> + + numfmt: a new command to format numbers + * AUTHORS: Add my name. + * NEWS: Mention the new program. + * README: Reference the new program. + * src/numfmt.c: New file. + * src/.gitignore: Ignore the new binary. + * build-aux/gen-lists-of-programs.sh: Update. + * scripts/git-hooks/commit-msg: Allow numfmt: commit prefix. + * po/POTFILES.in: Add new c file. + * tests/misc/numfmt.pl: A new test file giving >93% coverage. + * tests/local.mk: Reference the new test. + * man/.gitignore: Ignore the new man page. + * man/local.mk: Reference the new man page. + * man/numfmt.x: A new template. + * doc/coreutils.texi: Document the new command. + +2013-02-04 Pádraig Brady <P@draigBrady.com> + + cut: fix a segfault with disjoint open ended ranges + Fixes the issue introduced in unreleased commit v8.20-60-gec48bea. + + * src/cut.c (set_fields): Don't access the bit array if + we've an open ended range that's outside any finite range. + * tests/misc/cut.pl: Add tests for this case. + Reported by Marcel Böhme in http://bugs.gnu.org/13627 + +2013-02-01 Paul Eggert <eggert@cs.ucla.edu> + + doc: say how to tac char-by-char + This fixes Bug#12115, reported by Reuben Thomas. + * doc/coreutils.texi (tac invocation): Document how to reverse a + file character by character. Break out MS-DOS into a separate + section, like 'cat' does. + +2013-01-28 Bernhard Voelker <mail@bernhard-voelker.de> + + df: do not treat rootfs specially + Like any other pseudo file system, df should show rootfs only + when the -a option is specified, i.e. specifying -trootfs alone + is not sufficient. As the rootfs entry is now elided by the + general deduplication in filter_mount_list (commit v8.20-103-gbb116d3), + all other references to rootfs can be removed again. + + * src/df.c (show_rootfs): Remove global variable. + (ROOTFS): Remove constant. + (filter_mount_list): Remove case to handle rootfs specially. + (main): In the case for handling the -t option, remove setting + of the show_rootfs variable. + * tests/df/skip-rootfs.sh: Adapt the test case "df -t rootfs": + the rootfs file system must not be printed (because no -a). + * doc/coreutils.texi (df invocation): Correct the documentation + about eliding mount entries: it is not the first occurrence of + the the device which wins, but now rather the entry with the + shortest mount point name. Also adapt the description about + eliding pseudo file system types like rootfs. + * NEWS (Changes in behavior): Adapt entry. + +2013-01-27 Ondrej Oprala <ooprala@redhat.com> + Bernhard Voelker <mail@bernhard-voelker.de> + + df: prefer fullpath entries when deduplicating + * src/df.c (struct devlist): Add a new element for storing + pointers to mount_entry structures. + (devlist_head, dev_examined): Remove. + (filter_mount_list): Add new function to filter out the rootfs + entry (unless -trootfs is specified), and duplicities. The + function favors entries with a '/' character in me_devname + or those with the shortest me_mountdir string, if multiple + entries fulfill the first condition. + Use struct devlist to build up a list of entries already known, + and finally rebuild the global mount_list. + (get_all_entries): Call the above new function unless the -a + option is specified. + (get_dev): Remove the code for skipping rootfs and duplicities. + * tests/df/skip-duplicates.sh: Add test cases. + +2013-01-26 Stephan Krempel <krempel@par-tec.com> + + timeout: ensure a blocked SIGALRM from the parent is unblocked + * src/timeout.c (unblock_signal): A new function to unblock a + specified signal, or warn if not possible. + (set_timeout): Ensure SIGALRM is unblocked before we setup the timer. + * tests/misc/timeout-blocked.pl: A new test for the issue. + * tests/local.mk: Reference the new test. + * NEWS: Mention the fix. + Fixes: http://bugs.gnu.org/13535 - Post-release version change. - * NEWS: Add a line for 6.8-dirty. - * configure.ac (AC_INIT): Set new version string. +2013-01-26 Pádraig Brady <P@draigBrady.com> -2006-12-07 Jim Meyering jim@meyering.net + seq: fix to always honor the step value + * src/seq.c (main): With 3 positive integer args we were + checking the end value was == "1", rather than the step value. + * tests/misc/seq.pl: Add tests for this case. + Reported by Marcel Böhme in http://bugs.gnu.org/13525 - Version 6.7. - * NEWS: Record release date. Remove '-pre' suffix. - * configure.ac (AC_INIT): Remove version string suffix. + seq: fix misaligment with -w when no precision for start value + * src/seq.c (get_default_format): Also account for the case where '.' + is auto added to the start value, which is significant when the + number sequence narrows. + * tests/misc/seq.pl: Add two new tests for the failing cases. + * NEWS: Mention the fix. + Fixes http://bugs.gnu.org/13394 + + cut: fix -f to work with the -d$'\n' edge case + * src/cut.c (cut_fields): Handle the edge case where '\n' is + the delimiter, which could be used for example to suppress + the last line if it doesn't contain a '\n'. + * test/misc/cut.pl: Add tests for this edge case. + +2013-01-26 Pádraig Brady <P@draigBrady.com> + + cut: with -f, process each line independently + Previously line N+1 was inspected before line N was fully output, + which causes output ordering issues at the terminal or delays + from intermittent sources like tail -f. + + * src/cut.c (cut_fields): Adjust so that we record the + previous output character so we can use that info to + determine wether to output a '\n' or not. + * tests/misc/cut.pl: Add tests to ensure existing + functionality isn't broken. + * NEWS: Mention the fix. + Fixes bug http://bugs.gnu.org/13498 -2006-12-07 Jim Meyering <jim@meyering.net> +2013-01-24 Paul Eggert <eggert@cs.ucla.edu> - Make the output of "make check" more reproducible. - * tests/touch/empty-file: Use envvar-check, so "make check" doesn't - evoke diagnostics like this when COLUMNS=0 in the environment: - ls: ignoring invalid width in environment variable COLUMNS: 0 - * tests/touch/no-rights: Likewise. - * tests/help-version: Likewise. - * tests/uniq/Test.pm: Don't perform the pipe-reading version of test - 118, since it emits "cat: write error: Broken pipe" on some systems. + build: update gnulib submodule to latest + * bootstrap.conf (gnulib_modules): Add statat. + The fstatat module was split in two, and we need both halves. -2006-12-06 Paul Eggert <eggert@cs.ucla.edu> +2013-01-24 Pádraig Brady <P@draigBrady.com> - * NEWS: Document the cp -p fix for special bits. - * src/copy.c (set_owner): Now returns a three-way result, so - that the caller can clear the special bits. All callers changed. - (copy_reg): Don't set the special bits if chown failed. - (copy_internal): Likewise. - * tests/cp/special-bits: Test this fix. + doc: fix an example in the od man page + * man/od.x: s/-w 16/-w16/ as -w takes an optional + parameter and so the space is significant. -2006-12-06 Paul Eggert <eggert@cs.ucla.edu> +2013-01-23 Bernhard Voelker <mail@bernhard-voelker.de> - * NEWS: Document the cp --preserve=ownership fix. - * m4/jm-macros.m4 (coreutils_MACROS): Check for fchmod. - * src/copy.c (fchmod_or_lchmod): New function. - (copy_reg): New arg OMITTED_PERMISSIONS. All uses changed. - Omit confusing and unused ", dst_mode" arg to 'open' without O_CREAT. - When creating a file, use O_EXCL, so we're more likely to detect - funny business by other processes. At the end, if permissions - were omitted, chmod them back in. - (copy_internal): If the ownership might change, omit some permissions - at first, then restore them after chowning the file. - * src/cp.c (make_dir_parents_private): Likewise. - * src/copy.c (cached_umask): New function. - * src/copy.h (cached_umask): New decl. + doc: fix order of du options in usage and texinfo manual + * src/du.c (usage): Bring options into alphabetical order. + * doc/coreutils.texi (du invocation): Likewise. + Furthermore, use the @itemx macro for the long options + --max-depth and --threshold instead of @item. -2006-12-06 Jim Meyering <jim@meyering.net> +2013-01-23 Bernhard Voelker <mail@bernhard-voelker.de> - Make the output of "make check" more reproducible. - * tests/misc/date-sec: Don't emit any diagnostic about sleeping. + maint: define usage note about mandatory args centrally + Each program with at least one long option which is marked as + 'required_argument' and which has also a short option for that + option, should print a note about mandatory arguments. + Define that well-known note centrally and use it rather than + literal printf/fputs, and add it where it was missing. -2006-12-03 Paul Eggert <eggert@cs.ucla.edu> + * src/system.h (emit_mandatory_arg_note): Add new function. - * src/install.c (install_file_in_file): Preserve time stamps - before changing owner or file mode bits, for consistency with - other coreutils programs. + * src/cp.c (usage): Use it rather than literal printf/fputs. + * src/csplit.c, src/cut.c, src/date.c, src/df.c, src/du.c: + * src/expand.c, src/fmt.c, src/fold.c, src/head.c, src/install.c: + * src/kill.c, src/ln.c, src/ls.c, src/mkdir.c, src/mkfifo.c: + * src/mknod.c, src/mv.c, src/nl.c, src/od.c, src/paste.c: + * src/pr.c, src/ptx.c, src/shred.c, src/shuf.c, src/sort.c: + * src/split.c, src/stdbuf.c, src/tac.c, src/tail.c, src/timeout.c: + * src/touch.c, src/truncate.c, src/unexpand.c, src/uniq.c: + Likewise. -2006-12-03 Jim Meyering <jim@meyering.net> + * src/base64.c (usage): Add call of the above new function + because at least one long option has a required argument. + * src/basename.c, src/chcon.c, src/date.c, src/env.c: + * src/nice.c, src/runcon.c, src/seq.c, src/stat.c, src/stty.c: + Likewise. - * tests/misc/date-sec: Output a fixed string. +2013-01-21 Jakob Truelsen <jakob@scalgo.com> + Bernhard Voelker <mail@bernhard-voelker.de> - * NEWS: du --one-file-system (-x) would skip subdirectories of any - directory listed as second or subsequent command line argument. - * tests/du/one-file-system: New file. Test for today's fts.c fix. - * tests/du/Makefile.am (TESTS): Add one-file-system. - Reported by Mike Frysinger. + du: add -t SIZE, --threshold=SIZE option + * src/du.c (opt_threshold): Add variable to hold the value of + the --threshold option specified by the user. + (long_options): Add a required_argument entry for the new + --threshold option. + (usage): Add --threshold option. + (process_file): Elide printing the entry if its size does not + meet the value specified by the --threshold option. + (main): In the argument parsing loop, add a case for the new + -t option. Convert the given argument by permitting the + well-known suffixes for megabyte, gigabytes, etc. + Handle the special case "-0": give an error as this value is + not permitted. + * doc/coreutils.texi (du invocation): Add documentation for the + above new option. + * tests/du/threshold.sh: Add new test to exercise the new option. + * tests/local.mk (all_tests): Mention the above test. -2006-12-02 Jim Meyering <jim@meyering.net> +2013-01-20 Bernhard Voelker <mail@bernhard-voelker.de> - * tests/du/basic: Generate 4KB file simply using printf, rather than - seq+head. This avoids a spurious "Broken pipe" diagnostic from seq. + tests: remove test case du/slink + This test tried to ensure that not all symlinks (across all + file system types) have Zero size and refers to a change + in system.h from 2002-08-31 (commit SH-UTILS-2_0_15-55-g62808a7). + The test used to do this by working on symlinks to long file + names. This assumption is dependant on the underlying file + system, and in some environments like XEN does not even work + on file systems known to work otherwise. -2006-11-28 Jim Meyering <jim@meyering.net> + The test for dereferencing and no-dereferencing symlinks is + already covered by other tests (du/deref.sh, du/deref-args.sh, + and du/no-deref.sh). Therefore, remove it. - * tests/mv/no-target-dir: Detect a buggy rename syscall. If found, - skip this test. This happens at least on ia64 linux-2.4.19 w/ext3. - Reported by Matthew Woehlke. + * tests/du/slink.sh: Remove file. + * tests/local.mk (all_tests): Remove the above test. - * tests/mv/dir2dir: Also accept EBUSY. - Reported by Matthew Woehlke. + Discussed in: + http://lists.gnu.org/archive/html/coreutils/2013-01/msg00053.html -2006-11-27 Jim Meyering <jim@meyering.net> +2013-01-20 Bernhard Voelker <mail@bernhard-voelker.de> - * Makefile.maint (patch-check): Rewrite to diagnose failure. - * src/c99-to-c89.diff: Adjust shred.c offsets. + maint: fix alphabetical order in .gitignore + Since commit v8.20-67-g0f525b6, .gitignore sometimes + showed up as changed because the entries "*.gcda" and + "*.gcno" had not been in alphabetical order. -2006-11-26 Paul Eggert <eggert@cs.ucla.edu> - - Improve the check for departures from C89, and fix the departures - I found. - * Makefile.maint (my-distcheck): Also check for C89 compatibility - as best we can with GCC. - * src/stat.c (PRINTF_OPTION): Omit comma before } in enum - declaration; C89 doesn't allow this. - * src/dcgen: Don't generate string literals longer than - what C89 requires support for. - * src/cut.c (usage): Don't use string literals longer than - what C89 requires support for. - * src/date.c (usage): Likewise. - * src/dd.c (usage): Likewise. - * src/du.c (usage): Likewise. - * src/ls.c (usage): Likewise. - * src/od.c (usage): Likewise. - * src/readlink.c (usage): Likewise. - * src/seq.c (usage): Likewise. - * src/shred.c (usage): Likewise. + * .gitignore: Exchange the entries "*.gcda" and "*.gcno". -2006-11-26 Mike Frysinger <vapier@gentoo.org> +2013-01-12 Benno Schulenberg <bensberg@justemail.net> - Recognize new archive, audio and image formats. - Give audio files a separate color. - * src/dircolors.hin: Add comments for common .sh and .csh scripts. - Add .bz2, .tbz2, .tz, .rar, .ace, .zoo, .cpio, .7z, .rz as archive - suffixes. Add .mng, .pcx, .m2v, .mkv, .ogm, .mp4, .m4v, .mp4v, .vob, - .qt, .nuv, .wmv, .asf, .rm, .rmvb, .flc, .yuv as image formats. - Add .aac, .au, .mid, .midi, .mka, .ra as audio suffixes. Change - audio color to 00;36 to differentiate from image/video color. + uptime: gettextize an overlooked string, and normalize another + * src/uptime.c: Add calls to gettext() and select_plural(). -2006-11-26 Jim Meyering <jim@meyering.net> +2013-01-10 Benno Schulenberg <bensberg@justemail.net> - * Makefile.maint (patch-check): Compile patched sources with - CFLAGS='-Wdeclaration-after-statement -Werror', to ensure that - no violations remain. + doc: make a --help text fragment identical to three others + * src/ln.c (usage): Move a newline to the next text fragment, so + the preceding fragment about backup methods becomes the same as + the ones for cp, mv, and install. A bit easier for translators. - * src/c99-to-c89.diff: Remove 3 bogus hunks. +2013-01-07 Pádraig Brady <P@draigBrady.com> - * src/remove.c (fd_to_subdirp): Remove unused parameter, ds. - Update callers. + factor: apply a more general fix to enable correct assembly + In addition to the previous 64 bit guards we've placed in longlong.h + there are additional _LP64 guards required for mips with -mcpu >= 3, + to avoid a build failure (http://bugs.gnu.org/13353) and on sparc + with -mcpu >= v9 in 32 bit mode where for example, + `factor 2123123123123123123123` would go into an infinite loop. - * src/c99-to-c89.diff: Adjust for changes in rm.c and in remove.c. + Since factor.c currently operates on uintmax_t, we restrict the use + of the assembly in longlong.h to when 'long' has the same width, to + provide a more general guard for this code. - * src/rm.c (main): Remove unnecessary (assuming C99) braces. + * src/factor.c: Restrict the use of longlong.h assembly code, + to when the width of intmax_t == long. + * src/longlong.h: Remove the previous _LP64 guards to avoid + divergence from GMP's longlong.h + * NEWS: Adjust the info on build and runtime fixes. -2006-11-26 Paul Eggert <eggert@cs.ucla.edu> +2013-01-06 Paul Eggert <eggert@cs.ucla.edu> - Port parts of the code to C89 to minimize the need for c99-to-c89.diff, - while trying to retain the readability of C99 as much as possible. - * src/remove.c (rm_1): Remove decl of local, fd_cwd. - Replace each of two uses with literal AT_FDCWD. - (cache_stat_init): Return its argument, for convenience. - Update the caller in remove_dir. - (AD_pop_and_chdir): Return prev_dir rather than storing through - a pointer argument. All uses changed. - (AD_ensure_initialized): New function. - (AD_mark_helper): Use it, to avoid the need for declaration - after statement. - (rm): Move cycle_check_init call into callee... - (rm_1): ...here. - Use an else clause in place of a "continue" statement. - (close_preserve_errno): Remove. - (fd_to_subdirp): Rewrite to avoid the need for decl after statement. + doc: sync parse-datetime from gnulib + * doc/coreutils.texi (Top): Sync from gnulib parse-datetime.texi menu. -2006-11-25 Jim Meyering <jim@meyering.net> +2013-01-06 Karl Berry <karl@gnu.org> - * Makefile.am (EXTRA_DIST): Remove announce-gen from here, too. + doc: avoid @sc in texinfo; it is unnecessary + * doc/coreutils.texi: avoid @sc and use explicit capitals. + * doc/local.mk (sc-use-small-caps-NUL): Remove, as no longer applicable. -2006-11-24 Theodoros V. Kalamatianos <thkala@softlab.ece.ntua.gr> (tiny change) +2013-01-04 Karl Berry <karl@gnu.org> - * tests/du/inacc-dest: Skip this test when running as root. + doc: remove stale pr news in the manual + * coreutils.texi (pr invocation): remove list of ancient news + items; the main documentation already covers what is needed. -2006-11-23 Jim Meyering <jim@meyering.net> +2013-01-01 Jim Meyering <jim@meyering.net> + + maint: update all copyright year number ranges + Run "make update-copyright", but then also run this, + perl -pi -e 's/2\d\d\d-//' tests/sample-test + to make that one script use the single most recent year number. - * announce-gen: Remove file. It's moving to gnulib. - * bootstrap: Pull it from gnulib/build-aux instead. - * Makefile.maint (announcement): Reflect move to ./build-aux. + build: update gnulib submodule to latest - * tests/du/deref-args: Use "printf %65536s x" to create a 64KB file, - rather than a pipeline that would sometimes evoke a diagnostic - like "seq: write error: Broken pipe". +2012-12-31 Jim Meyering <jim@meyering.net> - * tests/help-version: Suppress dd transfer rate output. + maint: adjust NEWS entry wording + * NEWS: Adjust wording in a few entries. - * configure.ac (AC_INIT): Bump to 6.7-pre, not 6.6-pre. +2012-12-27 Pádraig Brady <P@draigBrady.com> -2006-11-22 Jim Meyering <jim@meyering.net> + doc: improve od --help and man page + * src/od.c: Redorder the information output by --help + to ease interpretation and so that appropriate sections + are generated by help2man. + * doc/coreutils.texi (od invocation): Fix an incorrect + reference to @var{n}, which should be @var{bytes}. + * man/od.x: Add an "Examples" section, and move the + default od format to there, and add a commonly required + format to generate hexdumps. + Reported by Akim Demaille in http://bugs.gnu.org/13280. - * announce-gen (print_news_deltas): Fix silly, but harmless typo: - change "(:?..." to "(?:..." in regexps. +2012-12-21 Mike Frysinger <vapier@gentoo.org> - Post-release version change. - * NEWS: Add a line for 6.7-pre. - * configure.ac (AC_INIT): Bump to 6.7 and add "-pre" suffix. + factor: disable x86_64 assembly code for x32 builds + The current x86_64 asm code does not work for x32 (__ILP32__) ABIs, + so disable it. Note simply deleting the q suffix is not enough. - Version 6.6. - * NEWS: Record release date. Remove "-pre" suffix. - * configure.ac (AC_INIT): Remove "-pre" suffix from version string. + * src/longlong.h: Restrict x86_64 assembly to _LP64 targets, + which is consistent with other checks in longlong.h and + avoids this code on x32. + * NEWS: Mention the build fix. - * announce-gen: Remove unused --release-archive-directory option. - (print_news_deltas): Accept new adjective, "Noteworthy", in addition - to the old "Major". - Match version numbers in NEWS using tighter regular expressions. - (main): Require the --gpg-key-id=ID option. - * Makefile.maint (announcement): Don't use now-removed - --release-archive-directory=... option. +2012-12-21 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention the three noteworthy changes, all fixed via gnulib. + tests: avoid false positive valgrind failures + * init.cfg (require_valgrind_): Check the `true` program, + which will check more valgrind failure cases as now + detailed in the function comments. -2006-11-21 Jim Meyering <jim@meyering.net> + dd: fix a printf format mismatch in an error message + * src/dd.c (dd_copy): To print an off_t portably we need + to use PRIdMAX and cast to intmax_t, otherwise there + could be a mismatch between say a 32 bit off_t + and uintmax_t. This was flagged by -Wformat on + a 64 bit host when compiling with CFLAGS=-m32. - * tests/rm/one-file-system: Upon setup failure (e.g., mount failure), - skip the test rather than failing. Reported by Michael Deutschmann. +2012-12-21 Pádraig Brady <P@draigBrady.com> - * tests/rm/fail-eperm: Use the "(exit N); exit N" idiom, - rather than just "exit N". + seq: fix newline output when -s specified + This regression was introduced in commit v8.19-132-g3786fb6. - Arrange for "make check-root" to run the new root-only test. - * tests/Makefile.am (t7): New target, to run tests/ls/nameless-uid. - (all_t): Add t7. + * src/seq.c (seq_fast): Don't use puts() to output the first number, + and instead insert it into the buffer as for other numbers. + Also output the terminator unconditionally. + * tests/misc/seq.pl: Add some basic tests for the -s option. + * NEWS: Mention the fix. + * THANKS.in: Reported by Philipp Gortan. + +2012-12-20 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: add tests for basename's --zero option + The -z option has been introduced in commit v8.15-60-ga3eb71a, + i.e. in coreutils-8.16. Time to add some tests for it. + + * tests/misc/basename.pl: Add tests exercising the -z option. + In the foreach loop to append a newline to the end of each + expected 'OUT' string, skip the -z tests. + +2012-12-20 Assaf Gordon <assafgordon@gmail.com> + + doc: tweak 'lcov' in HACKING + * HACKING: In the paragraph about creating coverage statistics, + use the correct -b (--base-directory) parameter. + +2012-12-19 Pádraig Brady <P@draigBrady.com> + + maint: rewrap a long line noticed by make syntax-check + * configure.ac: Wrap the recently introduced long line. + + doc: clarify when dd iflag=fullblock is useful + * doc/coreutils.texi (dd invocation): Explain that iflag=fullblock + ensures that count= will count blocks rather than reads, and + reference that in both the count= and iflag=fullblock descriptions. + Suggested by John Reiser. + + tests: avoid a race in timeout-group.sh + * tests/misc/timeout-group.sh: The kernel might possibly delay + signal propagation to timeout.cmd long enough, that it exits + normally without running the signal handler (as sleep will + be in the same process group and so get the signal too). + So avoid this by explicitly checking that the signal handler + is called, which should always happen under normal circumstances. + Reported by Stefano Lattarini on linux-2.6.30-2-686 and bash-4.2.36. + + build: avoid --enable-gcc-warnings on GCC <= 4.5 + * configure.ac: Only enable warnings automatically when + on GCC >= 4.6 (and when building from a git checkout) + as that was the first GCC version to support fine-grained + control of warnings, allowing them to be adjusted around + certain code sections. gnulib relies on this for certain + warnings, so avoid auto enabling this option lest we trigger + build failures on now over two year old compilers. + Reported by Zartaj Majeed with GCC 4.5.3 on cygwin. + +2012-12-19 Zartaj Majeed <zmajeed@sbcglobal.net> + + build: fix cygwin build issues + * doc/local.mk (doc/constants.texi): Ensure the doc directory + is present which is needed when doing a non source dir build, + when the doc/constants.texi target is built before other doc targets. + * src/local.mk: Add $(EXEEXT) to the make-prime-list calls. + +2012-12-17 Pádraig Brady <P@draigBrady.com> + + maint: consistently use @dots{} in coreutils.texi + * doc/coreutils.texi: s/\.\.\./@dots{}/ except in code and examples. + +2012-12-17 Pádraig Brady <P@draigBrady.com> + + readlink: support multiple command line arguments + This allows efficient processing of multiple files, + while also increasing compatibility with BSD's readlink(1). + We also add the -z, --zero option to delimit output items + with the NUL character which disambiguates output in the + presence of '\n' characters. + + * src/readlink.c (usage): Add the --zero description, + and also adjust the description of --no-newline accordingly. + (main): Handle the -z option and iterate over multiple arguments. + Also as in commit v8.15-24-g9d46b25 we use fputs() and putchar() + rather than printf() for performance reasons. + * doc/coreutils.texi (readlink invocation): Document the + new --zero option, adjust the --no-newline description, and + tweak the general info to indicate multiple files are supported. + * tests/readlink/multi.sh: A new test for the new functionality. + * tests/local.mk: Reference the new test. + * man/readlink.x: Adjust the summary and also reference realpath. + * NEWS: Mention the improvement. + * THANKS.in: Suggested by Aaron Davies. + +2012-12-15 Assaf Gordon <assafgordon@gmail.com> + + maint: update gitignore entries + * .gitignore: ignore GCC coverage data files. + +2012-12-14 Assaf Gordon <assafgordon@gmail.com> + + doc: mention "git stash" in HACKING + * HACKING: In the paragraph about switching branches, mention + "git stash" as a way to continue while preserving uncommitted + changes. + +2012-12-14 Bernhard Voelker <mail@bernhard-voelker.de> + + tail,stat: improve support for the ceph file system + Teach tail -f that it must use polling on ceph file systems, and + let stat -f --format=%T report the file system type name, "ceph". + Website: http://ceph.com/ + + * src/stat.c (human_fstype): Add a case: ceph, 0x00C36400, remote. + * NEWS (Improvements): Mention it. + * THANKS.in: Update. + Reported by Konrad Wróblewski in http://bugs.gnu.org/13172. + +2012-12-14 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: fix typos found by misspellings + * doc/coreutils.texi (df invocation): s/occurence/occurrence/. + * tests/df/skip-rootfs.sh: s/supressed/suppressed/ + +2012-12-09 Jim Meyering <jim@meyering.net> + + tests: add test case and note that last week's cut change is a bug fix + * tests/misc/cut-huge-to-eol-range.sh: New test, showing that + the change in v8.20-51-g7d03466 is a bug fix after all. + * tests/local.mk (all_tests): Add it. + * NEWS (Bug fixes): Mention it. + +2012-12-08 Bernhard Voelker <mail@bernhard-voelker.de> + + cp: fix --no-preserve=mode to not exit 1 + cp --no-preserve=mode exited 1 unconditionally. Furthermore, + the tests which would have detected this error - namely + link-preserve.sh and reserve-mode.sh - failed to test + cp's exit code. + + * src/copy.c (copy_reg): In the case x->explicit_no_preserve_mode, + do only set return_val to false iff the previous set_acl () + failed. + * tests/cp/link-preserve.sh: Check cp's exit code. + * tests/cp/link-symlink.sh: Likewise. + * tests/cp/preserve-mode.sh: Likewise. + * NEWS: Mention the fix. -2006-11-20 Jim Meyering <jim@meyering.net> + Bug introduced in commit v8.19-145-g24ebca6. - Add a root-only test for today's lib/idcache.c fix. - * tests/ls/nameless-uid: New file. - * tests/ls/Makefile.am (TESTS): Add nameless-uid. - (TESTS_ENVIRONMENT): Add PERL to the list. + Reported by Florian Pritz in http://bugs.gnu.org/13119. -2006-11-19 Jim Meyering <jim@meyering.net> +2012-12-07 Ondrej Oprala <ooprala@redhat.com> + Bernhard Voelker. - * tests/tail-2/assert-2: Mark as a very-expensive test, because I - find the 7-second sleep annoyingly long. Besides, this test is - probably far too specific and timing sensitive ever to trigger again. - * tests/tail-2/assert: Likewise. + df: do not print duplicate entries and rootfs by default + * src/df.c (struct devlist): Add new struct for storing already- + examined device numbers. + (devlist_head): Add new store of the above type. + (show_rootfs): Add new global boolean to not skip rootfs. + (dev_examined): Add new function to check if the device has + already been traversed. + (get_dev): Filter out rootfs unless "-t rootfs" or the -a + option is specified. Filter out duplicate entries by calling + the above new dev_examined unless the -a option is specified. + (main): Set the show_rootfs variable appropriately when the -t + option is specified for rootfs. Free device list (guarded by + IF_LINT). + * tests/df/skip-duplicates.sh: Add test to exercise the skipping + of duplicate entries. + * tests/df/skip-rootfs.sh: Add test to exercise the skipping + of the rootfs pseudo file system. + * tests/local.mk: Add the above new tests. + * NEWS (Changes in behavior): Mention the changes. + * doc/coreutils.texi (df invocation): Document df's behavior about + skipping rootfs and duplicate entries. - Post-release version change. - * NEWS: Add a line for 6.6-pre. - * configure.ac (AC_INIT): Bump to 6.6 and add "-pre" suffix. +2012-12-06 Cojocaru Alexandru <xojoc@gmx.com> - Version 6.5. - * NEWS: Record release date. Remove "-cvs" suffix. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + cut: avoid a redundant heap allocation + * src/cut.c (set_fields): Don't allocate memory for + `printable_field' if there are no finite ranges. + This is achieved by keeping max_range_endpoint as 0 when + there are no finite ranges. max_range_endpoint is then + used throughout the code to guard against allocation of, + and access to the bit array. + The extra allocation was introduced via commit v8.10-3-g2e636af. -2006-11-18 Jim Meyering <jim@meyering.net> +2012-12-06 Pádraig Brady <P@draigBrady.com> - "ln --backup f f" produces a misleading diagnostic: - ln: creating hard link `f' => `f': No such file or directory - * src/ln.c (do_link): Give a better diagnostic in this unusual case. - (do_link): Rename local: s/lstat_ok/dest_lstat_ok/. - * tests/ln/Makefile.am (TESTS): Add hard-backup. - * tests/ln/hard-backup: New test for the above. - * NEWS: Mention this fix. + maint: fix a referenced coreutils version in a test comment + * tests/misc/cut.pl: This particular bug existed up to v8.10. -2006-11-16 Paul Eggert <eggert@cs.ucla.edu> +2012-12-06 Bernhard Voelker <mail@bernhard-voelker.de> - * bootstrap.conf (gnulib_modules): Add sys_stat, since we use it - directly too. - * lib/.cvsignore, lib/.gitignore: Add root-dev-ino.c, root-dev-ino.h. - * m4/.cvsignore, m4/.gitignore: Add root-dev-ino.m4. - * src/ls.c (DIRED_FPUTS_LITERAL, PUSH_CURRENT_DIRED_POS): - Omit unnecessary parenthesization of args. - * src/od.c (EQUAL_BLOCKS): Likewise. - * src/system.h (STREQ, ASSIGN_STRDUPA): Likewise. + tests: fix regex to match "-" in ipcent field in df/total-verify.sh + The regular expression failed to match for file systems that + do not provide inode statistics, e.g. VFAT or CIFS (depending + on the underlying peer file system). -2006-11-16 Jim Meyering <jim@meyering.net> + * tests/df/total-verify.sh: Fix the regular expression to match + a dash in the ipcent field again. - * tests/tail-2/append-only: If chattr +a fails, exit 77 (to tell - automake we're skipping this test), and give a diagnostic to tell - the user the same thing. Reported by Mike Grayson. + Reported by Assaf Gordon in http://bugs.gnu.org/13099. + Bug introduced in commit v8.20-18-gdae8d22. -2006-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +2012-12-06 Assaf Gordon <assafgordon@gmail.com> - * man/Makefile.am (dist_man_MANS): Replace all optional manpages - with `$(MAN)', computed at configure time; also, list them ... - (optional_mans): ... in this new variable. - (max_aux, EXTRA_DIST): Ensure that we distribute all manpages. + maint: adjust HACKING instructions to run a single test + * HACKING: Adjust as per the recent changes introduced + when switching to non recursive make. -2006-11-16 Jim Meyering <jim@meyering.net> +2012-12-06 Pádraig Brady <P@draigBrady.com> - Help valgrind see that there is no leak in dd.c. - * src/dd.c (dd_copy): Declare real_buf and real_obuf to be static, - so we need not free them at all. This is easier than freeing - both buffers at each of the early "return"s. + tests: cut.pl: adjust for changed diagnostic + * tests/misc/cut.pl: Since we now output the more + complete error message irrespective of running + in a multi-byte locale or not, adjust the test accordingly. - * src/csplit.c (load_buffer): Plug an inconsequential leak. +2012-12-06 Cojocaru Alexandru <xojoc@gmx.com> -2006-11-15 Jim Meyering <jim@meyering.net> + cut: improve error reporting + * src/cut.c (main): Treat a NUL delimiter (-d '') consistently + with non NUL delimiters, and disallow such a delimiter option, + unless a field is also specified. + (set_fields): Provide a more accurate error message when + a given list is invalid. + * tests/misc/cut.pl: Add a test case. - * .x-po-check: Exclude gl/ files. Otherwise, po-check would - complain that some of gl/lib/*.[ch] are not listed in POTFILES.in. +2012-12-06 Pádraig Brady <P@draigBrady.com> -2006-11-14 Jim Meyering <jim@meyering.net> + maint: adjust instructions to run a single test + * README: Adjust as per the recent changes introduced + when switching to non recursive make. - * gl/m4/root-dev-ino.m4: Now that this is part of a real "module", - remove the now-unnecessary use of AC_LIBSOURCES. +2012-12-05 Bernhard Voelker <mail@bernhard-voelker.de> - Adapt to new version of gnulib-tool. - * gl/modules/root-dev-ino: New file. - * lib/root-dev-ino.c, lib/root-dev-ino.h: Move these files ... - * gl/lib/root-dev-ino.c, gl/lib/root-dev-ino.h: ... to here. - * m4/root-dev-ino.m4: Move this file ... - * gl/m4/root-dev-ino.m4: ... to here. + maint: remove now auto-added entry from THANKS.in + The syntax-check sc_THANKS_in_duplicates complained about + that excess entry. - * bootstrap.conf (gnulib_modules): Add root-dev-ino. + * THANKS.in (Colin Watson): Remove entry, now that it will be + automatically included in the generated THANKS file. -2006-11-13 Jim Meyering <jim@meyering.net> +2012-12-04 Pádraig Brady <P@draigBrady.com> - * src/sort.c (insertkey): Use xmemdup, rather than xmalloc+assignment. - From Paul Eggert. + maint: remove a redundant odd sized alloc from factor.c + * src/factor.c (mp_factor_init): Init the pointers with NULL, + which xrealloc (or realloc) handles fine. - Plug another technically-unimportant leak in sort. - * src/sort.c (main): Don't allocate memory for each new key here. - (insertkey): Allocate memory for each key here, instead. - (key_init): Rename from new_key. Don't allocate. +2012-12-04 Colin Watson <cjwatson@ubuntu.com> + + factor: fix infinite loop on 32 bit powerpc + Both Debian and Ubuntu builds of coreutils 8.20 hang while running the + test suite on powerpc, which is reproducible using 'factor 122'. + + This turns out to be somewhat related to http://bugs.gnu.org/12754, + but not quite the same. uintmax_t is 64 bits, but the cntlzw + instruction takes 32-bit operands, and the cntlzd option is only + available on 64-bit hardware. - * src/sort.c (main): Plug a tiny memory leak. - Move declaration of local "minus" down to be nearer point of use. + * src/longlong.h: Add an _LP64 check around the PPC64 code, + so that this falls back to the C implementations. + * NEWS: Mention the fix. -2006-11-12 Jim Meyering <jim@meyering.net> +2012-11-24 Jim Meyering <jim@meyering.net> + + cut: do not print extraneous delimiters in some unusual cases + When printing output delimiters, and when a to-EOL range subsumes + at least one other range, cut would mistakenly print delimiters for + the subsumed range. This bug was probably introduced via commit + v5.2.1-639-g847e066. + * src/cut.c (set_fields): Ignore any range that is subsumed by a + to-EOL range. Also, move two declarations down. + * tests/misc/cut.pl: Add tests to exercise this. + * NEWS (Bug fixes): Mention it. + Reported by Marcel Böhme in http://bugs.gnu.org/12966 + + cut: treat -b2-,3- like -b2-, not like -b3- + * src/cut.c (set_fields): When two right-open-ended ranges are + specified, don't blindly let the latter one take precedence over + the former. Instead, use the union of the ranges. + * tests/misc/cut.pl: Add tests to exercise this. + * NEWS (Bug fixes): Mention it. + Reported by Marcel Böhme in http://bugs.gnu.org/12966 + Thanks to Berhard Voelker for catching log and NEWS typos. + +2012-11-24 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: cp: clarify behavior of the --preserve=xattr option + * doc/coreutils.texi (cp invocation): Enhance documentation + of the --preserve=xattr option regarding the preservation + of ACLs, SELinux contexts and capabilities: the user may + notice this only when not specifying --preserve=mode + and --preserve=context, too, i.e., otherwise, these attributes + are preserved anyway. + +2012-11-24 Pádraig Brady <P@draigBrady.com> + + doc: update info cross reference to bash + * doc/coreutils.texi (tee invocation): Reference + the bash manual rather than bashref, as the latter + is more likely to work on newer systems. + + tests: use sub-second timeouts to speed up a timeout test + * tests/misc/timeout.sh: Take advantage of recent support for + sub-second timeouts to decrease runtime from about 6s to 2s. + + doc: clarify that renice is needed to adjust niceness + * doc/coreutils.texi (nice invocation): Ensure there is no + ambiguity in the summary in relation to nice being able + to adjust the niceness of an existing process. + Reference the renice command. + * man/nice.x: Reference renice (1) + + tests: accept EEXIST from rm -d + * tests/rm/d-2.sh: EEXIST is a valid error on some systems. + Reported by Michael Felt on AIX 6.1 + + tests: don't rely on sed -i being available + * tests/df/df-output.sh: sed --in-place is not generally available. + Also add a couple of simplifications from Bernhard Voelker. + Removing all spaces, rather than just leading spaces, suffices. + Searching for ' --output' in unadjusted df --help, suffices. + + seq: ensure correct output width for scientific notation input + * src/seq.c (scan_arg): Calculate the width more accurately + for numbers specified using scientific notation. + * tests/misc/seq.pl: Add tests for cases that were mishandled. + * NEWS: Mention the fix. + * THANKS.in: Reported by Marcel Böhme. + Fixes http://bugs.gnu.org/12959 - du would exit early, when encountering an inaccessible directory - Reported by Mike Frysinger, in - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831 - * tests/du/inacc-dest: New test, based on an example from Mike Frysinger. - * tests/chgrp/no-x: Remove the "fts_read failed: ..." - diagnostic from the expected output when using native fdopendir. - * tests/chmod/no-x: Likewise. - * tests/du/no-x: Likewise. - * NEWS: Mention this bug fix. - * tests/du/Makefile.am (TESTS): Add inacc-dest. +2012-11-22 Bernhard Voelker <mail@bernhard-voelker.de> - * Makefile.maint (sc_cast_of_x_alloc_return_value): Add an exclusion - for xalloc.h itself. + df: reorder default field list of --output option + As the inodes information is usually not so much of interest, + and some file systems including btrfs do not even provide it, + reading of the full df --output is easier when the block + statistic fields come just left of the last field, the mount + point. - Avoid false-positive when testing via valgrind. - * tests/mv/atomic: Grep strace output for a more specific pattern - than just "unlink", since that got a false positive when testing - under valgrind: unlink("/tmp/valgrind_proc_9657_cmdline_A51E9991") = 0 - * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define EGREP. + * src/df.c (all_args_string): Move the inodes fields before + the block fields. + (usage): Likewise. + * tests/df/df-output.sh: Likewise. + * doc/coreutils.texi (df invocation): Likewise. Additionally, + explicitly mention the default order of the --output option. -2006-10-28 Jim Meyering <jim@meyering.net> +2012-11-21 Paul Eggert <eggert@cs.ucla.edu> - * Makefile.maint (patch-check): Make it easier to regenerate - the src/c99-to-c89.diff file. E.g., I do this: - make patch-check REGEN_PATCH=1; ediff src/c99-to-c89.diff new-diff + install: fix security race + * NEWS: Document this. - * src/c99-to-c89.diff: Update to reflect new offsets in rm.c. +2012-11-20 Paul Eggert <eggert@cs.ucla.edu> -2006-10-26 Jim Meyering <jim@meyering.net> + install: fix security race + * src/copy.c (copy_internal): Use DST_MODE_BITS, not SRC_MODE. + See Bernhard R. Link in <http://bugs.gnu.org/12947> and in + <http://bugs.debian.org/598018>. - * src/system.h (ftello): Add a compile-time check for the highly - unlikely condition of off_t narrower than long int, rather than - handling it at run time. Based on a patch from Paul Eggert. +2012-11-20 Bernhard Voelker <mail@bernhard-voelker.de> -2006-10-25 Paul Eggert <eggert@cs.ucla.edu> + nl: remove deprecated --page-increment option + The above option has been deprecated since coreutils-7.5 + by commit v7.4-129-g718b279. - * tests/chmod/c-option: When double-quoting part of a word, prefer - to double-quote the whole word. This is a bit easier to read (at - least for me), and in some cases it avoids a shell bug with Tru64 - 4.0 sh reported by Nelson H. F. Beebe. For example, instead of - "$abs_srcdir"/../setgid-check we now write - "$abs_srcdir/../setgid-check". - * tests/cp/cp-parents: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/trap: Likewise. - * tests/misc/close-stdout: Likewise. - * tests/mkdir/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-3: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/rm/inaccessible: Likewise. - * tests/rm/unread3: Likewise. - * tests/touch/no-create-missing: Likewise. - - * lib/.cvsignore: Add uinttostr.c. - -2006-10-25 Jim Meyering <jim@meyering.net> - - Portability to Tru64 V4.0. - * src/system.h (ftello) [!HAVE_FSEEKO && !defined ftello]: - Define inline replacement function. - This (along with a yesterday's fix for autoconf's - _AC_SYS_LARGEFILE_MACRO_VALUE macro) makes it so coreutils - now builds once more on Tru64 V4.0. Reported by Nelson Beebe. - -2006-10-25 Bruno Haible <bruno@clisp.org> - - * src/cat.c (infile): Add "const" to declaration. - * src/csplit.c (prefix): Likewise. - * src/printf.c (cfcc_msg): Likewise. - * src/tail.c (valid_file_spec): Likewise. - * src/cut.c (cut_file): Likewise, for a parameter. - * src/expr.c (str_value): Likewise. - * src/fold.c (fold_file): Likewise. - * src/pr.c (init_header): Likewise. - * src/dircolors.c (dc_parse_stream): Likewise, for a local. - * src/tr.c (make_printable_str): Likewise. - * src/nl.c (body_type, header_type, footer_type, current_type): - (separator_str, build_type_arg, nl_file): Likewise, for many. - * src/paste.c (main): Don't assign a read-only string to 'optarg'. - * src/tac.c (separator, tac_seekable, copy_to_temp): Likewise. - -2006-10-25 Jim Meyering <jim@meyering.net> - - * tests/sample-test: Update copyright year list to include only - the current year, since this is what I'll want in any new test. - -2006-10-24 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Update to reflect new offsets. - - * NEWS: new feature: rm accepts new option: --one-file-system - Suggested by Steve McIntyre in <http://bugs.debian.org/392925>. - * src/remove.h (struct rm_options) [one_file_system]: New member. - * src/rm.c (rm_option_init): Initialize it. - (usage): Document the option. - * src/mv.c (rm_option_init): Likewise. - * src/remove.c (remove_dir): With --one-file-system and --recursive, - for each directory command line argument, do not affect a file system - different from that of the starting directory. And give a diagnostic. - * src/rm.c (ONE_FILE_SYSTEM): New enum. - (main): Handle new option. - * tests/rm/one-file-system: Test the above. - * tests/rm/Makefile.am (TESTS): Add one-file-system. - * tests/Makefile.am (check-root): Add the rm/one-file-system - test to the list. - (EXTRA_DIST): Add other-fs-tmpdir. - - * tests/mv/setup: Removed. Renamed to... - * tests/other-fs-tmpdir: ...this new file. - * tests/mv/Makefile.am (EXTRA_DIST): Remove setup. - * tests/mv/acl: Reflect renaming: use ../other-fs-tmpdir. - * tests/mv/backup-is-src: Likewise. - * tests/mv/hard-link-1: Likewise. - * tests/mv/leak-fd: Likewise. - * tests/mv/mv-special-1: Likewise. + * src/nl.c (PAGE_INCREMENT_OPTION_DEPRECATED): Remove enum. + (longopts): Remove "page-increment" entry. + (main): Remove PAGE_INCREMENT_OPTION_DEPRECATED case. + * NEWS (Changes in behavior): Mention the change. + + Reported by Marcel Böhme in <http://bugs.gnu.org/12940>. + +2012-11-19 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: remove already implemented items from TODO + * TODO (renice): The renice program is part of util-linux for + years now. Remove entry. + (dd): The option status=none has been implemented in commit + v8.19-143-g7331ab5. Remove entry. + +2012-11-18 Bernhard Voelker <mail@bernhard-voelker.de> + + cut: do not accept the invalid range 0- + The command "echo 12345 | cut -b 0-" prints an empty line while + it should fail with "fields and positions are numbered from 1". + + * src/cut.c (set_fields): Add a diagnostic for the invalid open + range which starts with Zero, i.e., the range 0-. + * tests/misc/cut.pl: Add tests to ensure the range 0- fails for + fields (-f) and for positions (-b, -c). + * NEWS: Mention the fix. + + Reported by Marcel Böhme in <http://bugs.gnu.org/12903>. + +2012-11-18 Daniel Schepler <dschepler@gmail.com> + + build: fix compilation failure on x32 + * src/factor.c [HAVE_ATTRIBUTE_MODE]: Fix typo in #if test: + s/HAVE_LONG_LONG/HAVE_LONG_LONG_INT/. Otherwise, factor.c would + elicit assembler errors on x32: it was incorrectly defining DItype + to long instead of long long. Patch and report in + http://bugs.debian.org/693337; Mike Stone notified upstream. + +2012-11-18 Jim Meyering <jim@meyering.net> + + maint: reenable accidentally-disabled cppi-check syntax-check rule + * cfg.mk (exclude_file_name_regexp--sc_preprocessor_indentation): Fix + typo that disabled the sc_preprocessor_indentation syntax-check rule + by exempting all files. s/__ll/_ll/ The typo was introduced in + commit v8.19-157-g759ebcb. + + maint: correct indentation of W_TYPE_SIZE-defining cpp directives + * src/factor.c: Indent cpp directives to reflect their nesting. + + maint: avoid i686-specific syntax-check failure + * cfg.mk (_gl_TS_unmarked_extern_vars): Define. + +2012-11-17 Paul Eggert <eggert@cs.ucla.edu> + + doc: explain why dd is called "dd" + * doc/coreutils.texi (dd invocation): Mention JCL. + + factor: tidy up primes.h again + See Stefano Lattarini in <http://bugs.gnu.org/12899>. + * src/local.mk (BUILT_SOURCES): Put $(top_srcdir)/src/primes.h here + (MAINTAINERCLEANFILES): ... instead of here. + +2012-11-13 Paul Eggert <eggert@cs.ucla.edu> + + factor: cleanup for primes.h + * .gitignore: Add src/primes.h back, since it's no longer + in the repository. + +2012-11-13 Jim Meyering <jim@meyering.net> + + maint: avoid unnecessary #include to fix syntax-check failure + * src/factor.c: Remove unneeded #inclusion of"verify.h". + It's already included via system.h. + +2012-11-13 Paul Eggert <eggert@cs.ucla.edu> + + factor: improve primes.h change + This follows suggestions by Jim Meyering in + <http://bugs.gnu.org/12841#34>. + * src/make-prime-list.c (print_wide_uint): Change "nested" argument + to "nesting", and use it to avoid outputting lines that are too long. + * src/primes.h: Remove from git. This can be generated by a + maintainer. It's nicer to do so on a host with at least 128-bit + arithmetic. + +2012-11-12 Paul Eggert <eggert@cs.ucla.edu> + + factor: maintainer builds primes.h, not builder + With this change, the maintainer builds primes.h and it is part of + the tarball. primes.h's contents are not architecture-specific. + * .gitignore: Remove /src/primes.h. + * src/factor.c: Include verify.h. + (W): New constant. Verify that uintmax_t lacks holes + and that W is no wider than the integers used to generate primes.h. + * src/local.mk (EXTRA_DIST): Add src/primes.h. + (BUILT_SOURCES, CLEANFILES): Remove src/primes.h. + ($(top_srcdir)/src/primes.h): Rename from src/primes.h. + Do not depend on src/make-prime-list. Instead, use sub-make to + build, so that we build primes.h only if it does not exist. + * src/make-prime-list.c: Include <limits.h>, for ULONG_MAX. + (wide_uint): Define to uintmax_t or unsigned __int128 if not #defined. + (struct prime, binvert, process_prime): Use it instead of uintmax_t. + (print_wide_uint): New function. This generates the proper pinv + value regardless of the width of uintmax_t on the target, so long + as the width doesn't exceed that of the width of wide_uint on the + maintainer host that generated src/primes.h. + (output_primes): Use it. Output WIDE_UINT_BITS, too. Let the + target compute its own lim, since its uintmax_t may be narrower + than ours. + (SZ): Remove. + * src/primes.h: New file, generated with 128-bit integers and usable + on any host where uintmax_t's width is no greater than 128 bits. + + factor: port to systems with rpl_malloc + * src/make-prime-list.c (malloc): Undef. This fixes a problem on + AIX 8.20 reported by Michael Felt in <http://bugs.gnu.org/12841>. + +2012-11-09 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix factor's tests to use coreutil's own sha1sum + The test used the shasum utility which seems to belong to the + perl package. On SLES-10.4, perl doesn't include this yet: + + + seq 0 10000000 + + factor + + shasum -c --status exp + ./tests/factor/t00.sh: line 30: shasum: command not found + + Exit 1 + + It is better to use our own stuff anyway. + + * tests/factor/run.sh: s/shasum/sha1sum/. Additionally, add + sha1sum to the print_ver_ call. + +2012-11-09 Benno Schulenberg <bensberg@justemail.net> + + doc: chcon: add descriptions for three undocumented options + These were missed in this related change v8.14-104-g44e20cd + + * src/chcon.c (usage): Mention the two --preserve-root options. + * doc/coreutils.texi (chcon invocation): Plus the --dereferece option. + +2012-11-09 Benno Schulenberg <bensberg@justemail.net> + + doc: with cp -n, option -f is not redundant but ignored + * src/cp.c (usage): Replace "redundant" with "ignored". + * doc/coreutils.texi (cp invocation): Likewise. + +2012-11-09 Paul Eggert <eggert@cs.ucla.edu> + + df: port the new df test to POSIX sed, larger file systems + * tests/df/df-output.sh: For the test "df -B1K --output=size", + do not assume that the file system size fits in 9 bytes; it + might be larger than that, so omit leading space. Also, use + portable 'sed' commands: POSIX says sed commands inside { } should + all end in newline. + +2012-11-08 Bernhard Voelker <mail@bernhard-voelker.de> + + df: add a test for the --output option + * tests/df/df-output.sh: Add a test case. + * tests/local.mk (all_tests): Mention the test. + * cfg.mk (sc_file_system): Exempt the test from this syntax-check. + + df: document the new --output option + * src/df.c (usage): Add a short description of --output and its + available field names for use in the optional argument. + * doc/coreutils.texi (df invocation): Add the new option with more + details and a few examples. + * NEWS (New features): Mention the new option. + (Changes in behvaior): Mention the new placeholder for fields + in the "total" line. + +2012-11-08 Bernhard Voelker <mail@bernhard-voelker.de> + + df: add --output to select which fields to display + This supports changing the order of the fields displayed, + and also allows the simultaneous display of inode and block fields. + + src/df.c (get_dev): Factor out calling get_header to ... + (main): ... here. Call print_table only if file_systems_processed. + + src/df.c (Displayable fields): Rename DEV_FIELD to SOURCE_FIELD. + Rename TYPE_FIELD to FSTYPE_FIELD. Rename FREE_FIELD to AVAIL_FIELD. + Rename MNT_FIELD to TARGET_FIELD. + + * src/df.c (display_field_t): Turn loose enum definition of the + displayable fields into a typedef. Add the inode fields ITOTAL_FIELD, + IUSED_FIELD, IAVAIL_FIELD, IPCENT_FIELD. + (field_data_t): Define structure to hold the display field, the + caption, the width and the alignment for each field of the above + type. + (field_data): Add array the values of field data for each display + field. + (headers, alignments, widths): Remove arrays. + (columns): Add a pointer to the storage for the array of the actual + output columns, i.e., fields. + (ncolumns): Add counter for the current output columns. + (alloc_table_row): Allocate the dynamic ncolumns value of strings. + (print_table): Loop over ncolumns instead of constant NFIELDS. Rename + loop variable 'field' to 'col' to avoid ambiguity with the 'field' + element in the columns structure. Adjust the condition for printing + the last column by comparing with the column number instead of the + field name (TARGET_FIELD). Use the width and the alignment stored in + the columns data. + (alloc_field): Add new function to allocate a field in the columns + array. + (get_field_list): Add new function to fill the array of output columns + for each mode. + (get_header): Loop over ncolumns instead of constant NFIELDS. Rename + the loop variable 'field' to 'col' to avoid ambiguity with the 'field' + element in the columns structure. Remove the code for continuing the + loop if the current column is the file system type and print_type is not + active (which is now impossible). Store the cell in the columns store + along with the new width. + (get_dev): Loop over ncolumns instead of the constant NFIELDS. Rename + the loop variable 'field' to 'col' to avoid ambiguity with the 'field' + element in the columns structure; move the definition down to where it + is used first. Add cases for the inode fields ITOTAL_FIELD, + IUSED_FIELD, IAVAIL_FIELD and IPCENT_FIELD. Store the cell in the + columns store along with the new width. + (main): Use new get_field_list function to fill the list of output + columns. + + * src/df.c (print_table): Instead of fputs()ing directly, apply + ambsalign on the last field, too. Use the new MBA_NO_RIGHT_PAD flag + for this. + + * src/df.c (TOTAL_OPTION): Add new enum value. + (long_options): Use it for the "total" option instead of 'c'. + (main): Likewise. + + * src/df.c (get_dev): Remove condition to copy the fstype into the + FSTYPE_FIELD - based on whether print_type is non-Null. Since the + introduction of get_field_list(), there are only fields added to + the columns array which have to be added. + + * src/df.c (get_dev): Guard the summing up of the values for the + grand total: only do it if we have to print the total and if the + current invocation is not for processing it. + + * src/df.c (main): Pass a hyphen "-" for the mount point name + to get_dev. + (get_dev): As the mount_point is now always there, + remove the condition and the else case for the TARGET_FIELD. + Instead, simply copy the mount_point. + All cells are now always present. Therefore, add an assertion + statement if one was not. Furthermore, hide the problematic + characters unconditionally. + (print_table): Remove the skipping of empty cells. + * tests/df/total-verify.sh: Accommodate to the new "-" in the + target field of the summary line. + * NEWS: Mention the change in behavior. + + * src/df.c (field_type_t): Add new typedef of 3 enums to distinguish + between block, inode and other fields. + (field_data_t): Add field_type member of the above new type. + (field_data): Add default values for the above field_type, + indicating whether a field contains block values, inode values + or other, generic values. + (field_values_t): Add this struct to store the field values, used + by and factored out from get_dev to be able to define such a struct + for both the inode and the block values. + (get_field_values): Add this function to obtain the block values + and the inode values from the file system usage, used by and + factored out from get_dev. + (add_to_grand_total): Add this function to sum the values of the + current mount point up for the grand total, used by and factored + out from get_dev. + (get_dev): Move the definition of the variables fsu, buf, pct and + cell down to where they are used first to give them a better scope. + Factor out input_units, output_units, total, available, + negate_available, available_to_root, used and negate_used into the + above struct field_values_t. + Factor out the mapping of the fsu values to the above variables + into above function get_field_values. + Factor out the summing up of the grand total values into the + above function add_to_grand_total. + Define block_values and inode_values of the new type and call the + new get_field_values to fill them from the fsu values. + Call the above function add_to_grand_total for summing up the + values for the grand total. + Inside the loop over all fields, define a variable 'v' to point + to either the block_values or the inode_values, depending on the + current field's field_type. Change the code in the cases + TOTAL_FIELD/ITOTAL_FIELD, USED_FIELD/IUSED_FIELD, AVAIL_FIELD/ + IAVAIL_FIELD and PCENT_FIELD/IPCENT_FIELD to use the field values + where 'v' is pointing to, i.e., either the block_values or the + inode_values. + + * src/df.c (main): Remove setting of grand_fsu.fsu_blocks in the + inode_format case as this is no longer needed and would lead to + wrong results once when mixed block/inode fields will be used. + + * src/df.c (main): Cleanup the code at the end regarding + file_systems_processed to make the code clearer. + + * src/df.c (inode_format): Remove variable. + (main): Remove initialization of the above variable. + In getopts loop, directly set the header_mode to INODES_MODE + instead of using the above variable. Afterwards, remove the + mapping to INODES_MODE as it is already set. + + * src/df.c (posix_format): Move variable ... + (main): ... to here. + + * src/df.c (print_table): Enhance the comment about 2-line format + in cases where the SOURCE_FIELD exceeds 20 chars, as such + behavior has been removed long ago by commit v8.10-40-g99679ff. + + * src/df.c (Display modes): Add OUTPUT_MODE, remove unused NMODES. + (display_field_t): Remove unnecessary NFIELDS. + (field_data_t): Add member 'arg' for the field name in the --output + argument. Add member 'used' to remember if a field is already used + in the columns array. + (field_data): Add values for the above new members arg and used. + (all_args_string): Add variable which represents the argument for + the --output option which includes all fields. + (OUTPUT_OPTION): Add enum to identify the long --output option. + (long_options): Add optional-argument --output option. + (alloc_field): Assert that the field is not already used. + Mark the field as used. + (decode_output_arg): Add function to parse the comma-separated + field list passed to the --output option in order to add the + appropriate fields to the columns array. + (get_field_list): Add case for the new OUTPUT_MODE to add all + available fields to columns in the case the --output option + has been passed without any values. Use the comma-separated + field list form to pass to decode_output_arg to keep the field + header mapping for the OUTPUT_MODE only on one place. + (main): Define format string msg_mut_excl to be used in the + following checks whether the use of --output and the other + option is mutually exclusive. + In the getopt_long loop, add a check to the case for the -i option + to issue an error message when it is used together with --output; + Likewise for -T and -P. + Add a new case for OUTPUT_OPTION, together with similar checks as + above and eventually passing the optarg to decode_output_arg. + After the getopt_long loop, consider the OUTPUT_MODE case in order + not to run into -h or -P mode. + + * src/df.c (get_dev): Also xstrdup the dev_name, and free it + afterwards to silence a valgrind warning about definitely lost + memory. + (main): Free the columns store to silence valgrind, guarded by + the IF_LINT macro. + + * src/df.c (main): Pass "total" as the mount point to get_dev if + the SOURCE_FIELD is not among the columns to output. + * tests/df/df-output.sh: Change the test to ensure the content of + the target field of the grand total line: if the source field is + present, then the target should be "-", else the target field should + be "target". + * NEWS (Changes in behavior): Enhance the exiting NEWS entry. + * doc/coreutils.texi (df invocation): Document the content of the + source and target field in the grand total line. + + * src/df.c (main): Add another condition to the need_fs_type + parameter of read_file_system_list whether the FSTYPE_FIELD is + used or not. + + * src/df.c (get_header): Indicate the block size used, + in the "size" header, when using --output without -h. + * tests/df/df-output.sh: Adjust for, and add an extra test for, + the new behavior. + +2012-11-05 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: fix factor's test file name pattern in .gitignore + * .gitignore: Adapt the entry for the files generated during + the factor tests (see v8.20-9-g1cace4a). + +2012-11-04 Ángel González <keisial@gmail.com> + + timeout: add --preserve-status to always propagate the exit status + It's useful for commands that support running for an indeterminite + amount of time, to not return a specific timeout exit status (124), + and instead let the command handle the timeout signal and return + a status for the work done so far. + + * doc/coreutils.texi (timeout invocation): Describe the new option. + * src/timeout.c (preserve_status): A new global boolean to + enable the --preserve-status behavior. + (usage): Describe the new option. + (main): Don't return EXIT_TIMEOUT of preserve_status is set. + * tests/misc/timeout.sh: Add a test for the new option. + +2012-11-04 Pádraig Brady <P@draigBrady.com> + + maint: fix the error message from sc_check-I18N-AUTHORS + * cfk.mk (sc_check-I18N-AUTHORS): Fix the quoting so + you don't get a 'command not found' error. + + build: avoid build failure on some HPPA systems + * src/longlong.h: Restrict some HPPA assembly variants to PA RISC V2.0. + Note we also avoid this assembly for ilp32 runtimes, since even though + the assembly is accepted there, it's not safe as the context can get + clobbered between the 'add' and 'add,dc'. + This fixes a compile failure with newer HPPA systems with default + GCC CPU options. + Reported by John David Anglin + +2012-11-04 Pádraig Brady <P@draigBrady.com> + + build: don't assume uintmax_t is 64 bits + This was not seen to be an issue in practise, + but to make the code more robust, don't assume + uintmax_t is 64 bits. + + * src/factor.c (W_TYPE_SIZE): Define based on integer limits. + * src/make-prime-list.c (output_primes): Define format width + based on integer limits. + +2012-11-04 Pádraig Brady <P@draigBrady.com> + + build: don't rely on support for '%j' printf format + * src/factor.c (print_uintmaxes): Replace with PRIuMAX. + * src/join.c (check_order): Likewise. + * cfg.mk (sc_check-j-printf-format): Add a syntax-check rule + to flag new cases of this. + + build: don't rely on support for '%*j' printf format + * src/make-prime-list.c: Hardcode the uintmax_t width + to 16 hex digits (64 bit), to avoid this compile issue + on HPUS systems at least. + +2012-11-01 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: fix syntax error in setuidgid_has_perm_ + An invalid sed expression lead to the following error: + + sed -n 'ls/.* //p' + sed: -e expression #1, char 2: extra characters after command + Use "one" instead of "el". + Bug introduced in v8.19-111-g51a4b04. + + * init.cfg (setuidgid_has_perm_): s/ls/1s/. + * NEWS (Build-related): Mention the fix. + +2012-10-27 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: shorten factor's inordinately-long test file names + Besides what the subject says, this commit moves the test data + for the factor tests from tests/local.mk into the directory + tests/factor/ where it belongs. + + * tests/local.mk (EXTRA_DIST): Add new tests/factor/create-test.sh. + (p,q,t1,t2) Factor out the factor-related magic numbers. + (factor_tests): Rename the test names to t{00..36}.sh. Factor out + the triples of test data. + ($(factor_tests)): Add dependency to new + tests/factor/create-factor.sh. + Call that script to generate the test scripts. + * tests/factor/run.sh: Turn this script into a template, and + therefore remove it's executable permission bit. + Add template variables START, END and CKSUM, replacing the code + to split the test data from the test script's file name. + Use the new template variables in the call to seq and for + creating the exp file. + * tests/factor/create-test.sh: Add new script to create the + test scripts from the template tests/factor/run.sh. + Use test data and magic numbers factored out from the above + files. Let the script also change the __TEMPLATE__ line in + run.sh to make clear that the test scripts are generated. + * cfg.mk (sc_tests_list_consistency): Exempt the new test. + (exclude_file_name_regexp--sc_prohibit_test_backticks): + Likewise. + + Improved-by: Stefano Lattarini + Improved by: Jim Meyering + +2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: man page generation: degrade gracefully when perl is lacking + Since commit v8.19-118-g57da212, our 'dist-hook' rule tweaked the + distributed Makefile.in to make each man page 'man/foo.1' depend + on the corresponding source 'src/foo.c' rather than the corresponding + program 'src/foo'. That was done to accommodate systems without + perl, which cannot run help2man to regenerate the manpage after + its corresponding program has been built. + + This seems a right and proper graceful degradation, in that the + man pages dependencies are still 100% correct in a git checkout, + while being more lax but "more portable" in a distribution tarball. + Alas, that is not the case in practice, as it turns out the tweaked + Makefile makes the building of man pages unreliable and potentially + incorrect! + + In fact, assume that instead of the correct a dependency: + + man/ls.1: src/ls + + we have the laxer one: + + man/ls.1: src/ls.c + + and think of what happens if a user modifies, say, 'src/ls.c', and then + runs "make -j4" to rebuild everything. The make process will see that + it has to rebuild the man page 'man/ls.1' (because its prerequisite + 'src/ls.c' has changed), but won't see that it has to rebuild 'src/ls' + *before* re-running 'help2man' to generate that man page; so, if + 'man/ls.1' is rebuilt before 'src/ls' (which can happen with concurrent + make), our user will get either a build error (if 'src/ls' did non + exist) or, worse, a man page with an up-to-date timestamp but an + out-of-date content. And what's even worse in all of this is that + this problem will be present also for users who have perl installed: + this is not a "graceful degradation" at all! + + In our situation, the best and simplest way to implement a graceful + degradation it to keep the correct dependencies for man pages (that + is, "man/ls.1: src/ls"), and if perl is not present, just generate + dummy man pages reporting that built-time issue and redirecting the + user back to either the info documentation or the '--help' output. + + As a consequence of this change, we also stop distributing man pages, + since they will now be generated unconditionally. + + * Makefile.am (do-not-require-help2man): Remove. + (dist-hook): Don't depend on it. + * man/local.mk: Remove an obsolete comment. + (EXTRA_DIST): Stop distributing generated man pages. + ($(EXTRA_MANS)): This no longer needs to depend on $(all_programs). + (MAINTAINERCLEANFILES): $(ALL_MANS) Do not list it here, and ... + (CLEANFILES): ... list it here, instead. + (.x.1): Instead of warning if perl is missing, but then trying to run + 'help2man' unconditionally, simply run ... + (run_help2man): ... the command referenced by this new variable, that + expands to a proper invocation of 'help2man' if perl is present, and + to an invocation of a shell script generating a dummy manpage if it + is not. + (EXTRA_DIST): Distribute that shell script. + * man/dummy-man: New shell script. + * NEWS (Build-related): Mention this. + Fixes coreutils http://bugs.gnu.org/12715. + +2012-10-25 Jim Meyering <jim@meyering.net> + + maint: tweak sc_check-I18N-AUTHORS + * cfg.mk (sc_check-I18N-AUTHORS): Remove unnecessary subshell; + add a self-explanatory diagnostic. + + maint: remove an obsolete test comment + * tests/du/bind-mount-dir-cycle.sh: Remove obsolete comment + spotted by Gilles Espinasse. + +2012-10-25 Pádraig Brady <P@draigBrady.com> + + pr: fix -n to pad consistently and not crash + * src/pr.c: Replace the code to truncate the most significant + digits of line numbers, with much simpler string manipulation + that supports arbitrary widths. Before this, specifying a + width >= 32 to -n would result in a divide by zero error. + Also remove the inconsistent padding with zeros and spaces, which + would result in zero padding for widths 12 and 15. + * tests/pr/pr-tests.pl: Added a test to ensure no zero padding, + and also a test for the divide by zero case. + * NEWS: Mentioned the fix + Reported by Ondrej Oprala + + build: ensure factor links the iconv library + * src/local.mk (src_factor_LDADD): Append $(LIBICONV). + * crg.mk (sc_check-I18N-AUTHORS): A new syntax check rule + to ensure we add LIBICONV where appropriate. + * THANKS.in: Add the reporter. + Reported by Christian Jullien + Syntax check suggested by Jim Meyering + + maint: refactor tests/misc/pr.pl into tests/pr/pr-tests.pl + * tests/misc/pr.pl: Refactor this test into ... + * tests/pr/pr-tests.pl: ... here. + * tests/local.mk: Remove the reference to the removed test + Improved by Jim Meyering + +2012-10-24 Mike Frysinger <vapier@gentoo.org> + + build: do not redefine _FORTIFY_SOURCE + When _FORTIFY_SOURCE is defined by the compiler or via flags, as + it is on Gentoo, do not override it. Otherwise we get many + redefinition warnings. + + * configure.ac (FORTIFY_SOURCE): Check if _FORTIFY_SOURCE is defined. + This addresses http://bugs.gnu.org/12714 + +2012-10-23 Pádraig Brady <P@draigBrady.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.20 + * NEWS: Record release date. + +2012-10-23 Jim Meyering <jim@meyering.net> + + factor: add comments + * src/factor.c (is_square): Use active voice in comment, not passive. + (factor): Add function-describing comment. + (mp_factor): Likewise. + +2012-10-23 Pádraig Brady <P@draigBrady.com> + + build: avoid warnings about unused variables and macros + src/factor.c (__GMP_DECLSPEC): Move back from longlong.h + to treat consistently with other stub macros. + (__GMP_GNUC_PREREQ): Reference to avoid -Wunused-macros warning. + (__GMP_DECLSPEC): Likewise. + (ASSERT): Likewise. + (__clz_tab): Likewise. + (factor_using_division): Mark a variable as unused. + (mulredc): Likewise. + (mulredc2): Likewise. + (divexact_21): Likewise. + + build: avoid compile warnings in factor.c on some systems + * src/factor.c (factor_using_pollard_rho2): On some systems + (like sparc) we need to promote all addmod2() parameters + to uintmax_t to avoid warnings. + + build: avoid build failure on some sparc systems + * src/longlong.h: Restrict some sparc assembly variants + to sparc V9. This was seen to be an issue with newer + sparc systems with default gcc CPU options. + + tests: correctly restrict factor test without GMP + * tests/misc/factor.pl: Correct the precedence and + regular expression in the command to check for GMP. + +2012-10-21 Jim Meyering <jim@meyering.net> + + doc: NEWS: the cp bug affects mv and install, too + * NEWS (Bug fixes): Note that the copy-induced corruption but affects + mv (sometimes) and install, too. Pointed out by Bernhard Voelker. + +2012-10-19 Benno Schulenberg <bensberg@justemail.net> + + doc: remove a stray parenthesis from 'cp --force' description + * doc/coreutils.texi (cp invocation): Remove Cheshire Cat. + +2012-10-17 Jim Meyering <jim@meyering.net> + + build: update gnulib submodule to latest + + cp: avoid data-corrupting free-memory-read + * src/extent-scan.c (extent_scan_read): Reset our last_ei + pointer whenever the parent buffer might have just been freed. + * tests/cp/fiemap-extent-FMR.sh: New test. + * tests/local.mk (all_tests): Add it. + * NEWS (Bug fixes): Mention it. + Reported by Mike Gerth in http://bugs.gnu.org/12656, and with + help from Alan Curry. Bug introduced in commit v8.10-60-g18f5a85. + +2012-10-13 Nikolas Kallis <nik@nikolaskallis.com> (tiny change) + + doc: improve HACKING guidelines + * HACKING: Add "cd coreutils" after the git clone command. + +2012-10-09 Pádraig Brady <P@draigBrady.com> + + factor: fix integer validation and GMP fallback + In the recent factor rewrite, the GMP code + wasn't actually used; just an error was printed + on integer overflow. While fixing that it was noticed + that correct input validation wasn't done in all cases + when falling back to the GMP code. + + * src/factor.c (print_factors) Fallback to GMP on overflow. + (strto2uintmax): Scan the string for invalid characters, + so that case can be detected independently of overflow. + Return an error when an empty string is passed. + Also allow leading spaces and '+' in input numbers. + * tests/misc/factor.pl: Ensure the GMP code is exercised + when compiled in. Also add a test to verify leading + spaces and '+' are allowed. + +2012-10-08 Pádraig Brady <P@draigBrady.com> + + build: support older GMP versions + The new factor code introduced usage of mpz_inits() and + mpz_clears(), which are only available since GMP >= 5, + and will result in a compile error when missing. + + * m4/gmp.m4 (cu_GMP): Define HAVE_DECL_MPZ_INITS appropriately. + * src/factor (mpz_inits): New function, defined where missing. + (mpz_clears): Likewise. + +2012-10-07 Jim Meyering <meyering@redhat.com> + + maint: avoid warning from gcc's -Wunused-macros + On some systems, -Wunused-macros would warn about two macros: + src/factor.c:148:0: warning: macro "__clz_tab" is not used + src/factor.c:126:0: warning: macro "UHWtype" is not used + * src/factor.c: Add a use to placate gcc. + +2012-10-05 Jim Meyering <meyering@redhat.com> + + build: avoid link failure when strerror is replaced + When building the new make-prime-list program on a system for which + strerror is defined to rpl_strerror, we'd get a link failure. + The problem is that we're including <config.h> for some definitions, + but do not want the rpl_ ones, since this particular program must + not be linked against gnulib (aka libcoreutils.a). This did not + arise on Fedora 17 or 18, but did on Debian wheezy/sid. + * src/make-prime-list.c (strerror): #undef. + Build failure introduced by commit v8.19-152-gcf67e4c. + +2012-10-04 Jim Meyering <meyering@redhat.com> + + factor: 25% speed-up, on output + * src/factor.c (print_factors_single): Use fputs and umaxtostr + rather than printf with "%ju". This reduced the time required + to compute and print the factors of the first 10^7 integers from + over 8 seconds to 5.75s. Run this command: + seq $((10**7)) | env time factor > /dev/null + +2012-10-04 Jim Meyering <meyering@redhat.com> + + factor: merge with preexisting factor; integrate tests; avoid warnings + * src/factor.c: Renamed from factor-ng.c, with the following changes: + Adjust copyright header to be consistent with others. + Use xmalloc and xrealloc, to avoid segv upon OOM. + Switch back to using readtokens to handle input. + Diagnose invalid inputs. + s/fprintf+exit/error/ + (print_factors): Add comments. + (strto2uintmax): Return strtol_error, not int. + (read_item): Remove, no longer used. + (main): Use atexit(close_stdout) so that we don't ignore failed write. + * cfg.mk: Exempt src/longlong.h from several tests. + Exempt run.sh from the test-list-consistency test. + Exempt make-prime-list.c from numerous tests, since we won't + be making it conform: it must not link with libcoreutils.a. + Exempt factor-ng.c from the no-upper-case error message test. + * AUTHORS (factor): Add Torbjörn and Niels. + * tests/local.mk (factor_tests): Encode the 37 tests. + ($(factor_tests)): Rule to generate a test script for each test. + * tests/factor/run.sh: New script, marked as very expensive. + * .gitignore: Ignore new generated files. + * src/local.mk (src/primes.h): New rule. + (noinst_PROGRAMS): Add make-prime-list. + (noinst_HEADERS): Add longlong.h. + Remove all wheel-related rules and files. + * src/wheel-gen.pl: Remove file. + + maint: mark set-but-not-used variables with ATTRIBUTE_UNUSED + * src/factor-ng.c (redcify, prime_p, isqrt2): Mark them, so we + don't have to disable -Wunused-but-set-variable. + + maint: use __builtin_expect only if __GNUC__ + * src/factor-ng.c (LIKELY, UNLIKELY) [__GNUC__]: Add #ifdef guard. + + build: avoid warning about unused macro + * src/factor-ng.c (__GMP_DECLSPEC): Don't define here + * src/longlong.h (__GMP_DECLSPEC): Define if not already defined. + +2012-10-04 Niels Möller <nisse@lysator.liu.se> + Torbjörn Granlund <tg@gmplib.org> + + factor: more improvements + * src/factor-ng.c: Import some improvements from + http://gmplib.org:8000/factoring + +2012-10-04 Torbjörn Granlund <tg@gmplib.org> + Niels Möller + + factor: new much-improved implementation; not yet integrated + * src/factor-ng.c: New file, from nt-factor. + * src/longlong.h: New file. + * NEWS (Improvements): Mention the upcoming improvements. + +2012-10-04 Jim Meyering <meyering@redhat.com> + + maint: make-prime-list: syntax conventions; be robust for large N + * src/make-prime-list.c: Insert spaces before parens. + (main): Abort if the 8-delta value ever exceeds 255. + + maint: make-prime-list: do not ignore write failure + Even though this is just a helper program that is run solely to create + primes.h, it should not ignore a write failure. Normally we would + simply call atexit (close_stdout), but we cannot do that from this + helper program, since it must be built before the generated header, + primes.h. If we were to make the linking of make-prime-list depend + on libcoreutils.a, that would add all lib/*.o files to the list + of dependents of $(BUILT_HEADERS). Then, since there is currently no + provision to ensure that a file like lib/stdio.h (another built header) + is built before the first lib/*.o file that also includes <stdio.h>, + some lib/*.o files would be built before lib/stdio.h and some after. + The former would provoke link failures due to undefined rpl_* functions. + * src/make-prime-list.c: Include <errno.h>. + (fclose): Undef, so that a definition to rpl_fclose does not + cause a link failure. + (main): Per the above, in this exceptional case, we check for fclose + and ferror failure manually, and don't worry about the ferror-only + failure case in which errno may not be relevant. + + maint: make-prime-list: avoid -Wsuggest-attribute=const warning + * src/make-prime-list.c: Include <config.h>. + (binvert): Add _GL_ATTRIBUTE_CONST. + +2012-10-04 Torbjörn Granlund <tg@gmplib.org> + Niels Möller <nisse@lysator.liu.se> + + factor: prepare for the new factor program + * src/make-prime-list.c: New file, from nt-factor. + +2012-10-03 Jim Meyering <meyering@redhat.com> + + build: remove redundant dependency: $(PROGRAMS): lib/libcoreutils.a + * src/local.mk: Remove the above dependency. + A soon-to-be-added new program, make-prime-list, must not depend + on that, since it is used to create a BUILT_SOURCES file. + That dependency is already handled via the ..._LD_ADD variables, + and so that redundant dependency has so far been harmless. + +2012-09-30 Jim Meyering <meyering@redhat.com> + + du: avoid abort on systems for which ->me_type is not malloc'd + On some systems (notably, BSD-based, like at least OpenBSD 4.9), + the me_type member does not come from the heap. + * src/du.c (fill_mount_table): Free the ->me_type member only + when it was malloc'd, i.e., when ->me_type_malloced is nonzero. + Bug introduced via commit v8.19-2-gcf7e1b5. + Reported as http://bugs.gnu.org/12542. + +2012-09-29 Jim Meyering <meyering@redhat.com> + + doc: same correction, but now in texinfo documentation + * doc/coreutils.texi (nice invocation): s/nicenesses/niceness values/ + +2012-09-28 Jim Meyering <meyering@redhat.com> + + doc: correct an old bit of ugliness in nice --help output + * src/nice.c (usage): s/Nicenesses/Niceness values/ + +2012-09-28 Pádraig Brady <P@draigBrady.com> + + doc: disambiguate the niceness explanation in nice --help + * src/nice.c (usage): Specify the entity (process) that + that relative terms are referring to. + * THANKS: Update. + Reported-by: David Diggles + +2012-09-28 Ondrej Oprala <ooprala@redhat.com> + + cp: fix the --no-preserve=mode option + The --no-preserve=mode option did not do what its name implies: + it would mistakenly preserve permission mode bits. + * NEWS: Mention the fix. + * TODO: Remove an entry. + * src/copy.c (copy_reg): Add a condition to properly + handle the --no-preserve=mode option for files + (copy_internal): Add a condition to properly handle the + --no-preserve=mode option for directories. + * src/copy.h (struct cp_options): Add a new boolean. + * src/cp.c (cp_option_init,decode_preserve_arg): Set the + new boolean value according to specified options. + * src/install.c (struct cp_options): Initialize the new boolean. + * src/mv.c (struct cp_options): Initialize the new boolean. + * tests/cp/preserve-mode.sh: Add a new test. + * tests/cp/link-preserve.sh (-a --no-preserve=mode): Adjust the + expected perms: now, --no-preserve=mode overrides the --preserve=mode + that is inherent in -a, as it should. + * tests/local.mk: Add the new test to the list. + +2012-09-24 Pádraig Brady <P@draigBrady.com> + + timeout: handle signals more transparently + This was originally attempted in commit v8.12-117-g5a647a0, + but reverted before release because of the unreliability + of disabling core dumps using setrlimit() on Linux kernels. + This new version instead uses prctl() where available to + more reliably disable core dumps for the timeout process. + + * m4/jm-macros.m4: Define HAVE_SETRLIMIT and HAVE_PRCTL. + * src/timeout.c (disable_core_dumps): A new function + that disables coredumps using prctl or setrlimit if available. + (main): If the child exited with a signal and we can + disable core dumps, then raise that signal to the timeout + process itself, so that callers may also see the signal status. + Also print a message indicating when the monitored command + dumped core, as that information is lost in the signal + propagation through timeout. + +2012-09-24 Pozsár Balázs <pozsy@uhulinux.hu> + + dd: new option, status=none to suppress output statistics + * src/dd.c (STATUS_NONE): A new bitmask combining all STATUS_ + options, thus used to suppress all informational output. + (struct symbol_value statuses): Expose the "none" option, + corresponding to the STATUS_NONE bitmask above. + (print_stats): Return early if STATUS_NONE is specified. + Also move the call to gethrxtime() down so that it's only + called when needed. + (usage): Describe the new options. + * doc/coreutils.texi (dd invocation): Likewise. + * NEWS: Mention the new feature. + * tests/dd/misc.sh: Ensure the new option works. + +2012-09-23 Jim Meyering <meyering@redhat.com> + + tail,stat: improve support for vmhgfs + Teach tail -f that it must use polling on vmhgfs file systems, and + let stat -f --format=%T report the file system type name, "vmhgfs". + * src/stat.c (human_fstype): Add a case: vmhgfs, 0xbacbacbc, remote. + * NEWS (Improvements): Mention it. + * THANKS.in: Update. + Reported by Daniel Tschinder in http://bugs.gnu.org/12461. + +2012-09-20 Jim Meyering <meyering@redhat.com> + + build: move non-recursive-gnulib-prefix-hack to gnulib; update + I've moved the non-recursive-gnulib-prefix-hack module to + gnulib, with two small improvements, so remove it from here + and update gnulib to the latest. + * gl/build-aux/prefix-gnulib-mk: Remove file. + * gl/m4/non-recursive-gnulib-prefix-hack.m4: Remove file. + * gl/modules/non-recursive-gnulib-prefix-hack: Remove file. + * gnulib: Update to latest. + +2012-09-19 Jim Meyering <meyering@redhat.com> + + rm: be even more careful when using a replacement errno value + * src/remove.c (excise): The change in commit v8.19-107-gccbd3f3 made + the "rm -rf D" (for unreadable dir, D) diagnostic worse on Solaris 10: + -rm: cannot remove 'D': Permission denied + +rm: cannot remove 'D': File exists + That happened because unlinkat would fail with EEXIST there, given + an unreadable directory, which made the two tests, tests/rm/unread2 + and tests/rm/unreadable fail. Accommodate the EEXIST case, too. + + maint: fix a comment typo + * cfg.mk: Fix comment typo: s/recursive/non-recursive/ make + +2012-09-18 Jim Meyering <meyering@redhat.com> + + tests: cp/link-heap: avoid new failure on rawhide + * tests/cp/link-heap.sh: Increase virtual memory limit by 2000KiB -- + from 20,000 to 22,000 KiB -- to avoid a new failure on rawhide. + + maint: make the tight-scope syntax-check rule work again + * cfg.mk: Configure a few variable to make the tight-scope rule work. + * gnulib: Update submodule to latest. + +2012-09-18 Benno Schulenberg <bensberg@justemail.net> + + dd: remove references to the word BLOCKS from help and texi docs + The renaming from BLOCKS to N was done in v8.15-38-g140eca1, + and documentation for N was added again in v8.17-26-g4f2e9d5 + without noticing that. Now, finally remove the word BLOCKS + from the documentation. + + * src/dd.c (usage): Remove the word BLOCKS. + * doc/coreutils.texi (dd invocation): Likewise. + + Improved by: Bernhard Voelker <mail@bernhard-voelker.de> + +2012-09-18 Jim Meyering <meyering@redhat.com> + + doc: NEWS: mention the conversion to non-recursive make + * NEWS (Build-related): Mention the non-recursive make improvement. + Improved by: Pádraig Brady + +2012-09-16 Pádraig Brady <P@draigBrady.com> + + ls: fix coloring of dangling symlinks in default listing mode + When listing a directory containing dangling symlinks, + and not outputting a long format listing, and orphaned links + are set to no coloring in LS_COLORS, then the symlinks + would get no color rather than reverting to the standard + symlink color. The issue was introduced in v8.13-19-g84457c4 + + * src/ls.c (print_color_indicator): Use the standard method + to check if coloring is specified for orphaned symlinks. + The existing method would consider 'or=00' or 'or=0' as significant + in LS_COLORS. Even 'or=' was significant as in that case the + string='or=' and the length=0. Also apply the same change + for missing symlinks for consistency. + (gobble_file): Remove the simulation of linkok, which is only + tested in print_color_indicator() which now handles this directly + by keying on the LS_COLORS values correctly. + * tests/misc/ls-misc.pl: Add a test case. + * THANKS: Add the reporter. + * NEWS: Mention the fix. + Reported-by: David Matei + +2012-09-15 Jim Meyering <meyering@redhat.com> + + doc: update seq description + * doc/coreutils.texi (seq invocation): Update an example and mention + that with the new constraints, seq can print arbitrarily large numbers. + +2012-09-14 Pádraig Brady <P@draigBrady.com> + + seq: enable the fast integer printing code in more cases + * src/seq.c (main): Adjust the initial arbitrary precision + seq_fast enablement checks to be more maintainable, and + a little more general, by allowing single character + separators to use seq_fast. + Also check again after the number arguments are processed, + to see if we can still use seq_fast, which while not + allowing arbitarly large integers, it will handle + integers of the form 10E10 etc. + (seq_fast): Use a specified separator character, + rather than hardcoding '\n'. + +2012-09-14 Jim Meyering <meyering@redhat.com> + + build: do not rely on automake's AM_TESTS_ENVIRONMENT + * tests/local.mk (TESTS_ENVIRONMENT): Rename from AM_TESTS_ENVIRONMENT, + since it is not honored in automake-1.11.3 after all. + This reverts commit v8.19-38-g34c9c8f. For now, I'll leave + the following commit that made bootstrap.conf require 1.11.2. + Prompted by a report of test failure from Pádraig Brady. + + build: don't prefix the RHS of "GPERF = ..." with "lib/" + * gl/build-aux/prefix-gnulib-mk (prefix_assignment): Exempt + the RHS of a "GPERF = ..." assignment from lib/ prefixing. + +2012-09-14 Jim Meyering <meyering@redhat.com> + + seq: 70x faster for non-negative whole numbers and incr==1 + Handle non-negative whole numbers robustly and efficiently when + the increment is 1 and when no format-changing option is specified. + On the correctness front, for very large numbers, seq now works fine: + + $ b=1000000000000000000000000000 + $ src/seq ${b}09 ${b}11 + 100000000000000000000000000009 + 100000000000000000000000000010 + 100000000000000000000000000011 + + while the old one would infloop, printing garbage: + + $ seq ${b}09 ${b}11 | head -2 + 99999999999999999997315645440 + 99999999999999999997315645440 + + The new code is much more efficient, too: + Old vs new: 55.81s vs 0.82s + + $ env time --f=%e seq $((10**8)) > /dev/null + 55.81 + $ env time --f=%e src/seq $((10**8)) > /dev/null + 0.82 + + * seq.c (incr): New function, inspired by the one in cat.c. + (cmp, seq_fast): New functions, inspired by code in nt-factor + by Torbjörn Granlund and Niels Möller. + (trim_leading_zeros): New function, without which cmp would malfunction. + (all_digits_p): New function. + (main): Hoist the format_str-vs-equal_width check to precede first + treatment of operands, and insert code to call seq_fast when possible. + * NEWS (Bug fixes): Mention the correctness fix. + (Improvements): Mention the speed-up. + * tests/misc/seq.pl: Exercise the new code. + + Improved by: Bernhard Voelker. + http://thread.gmane.org/gmane.comp.gnu.coreutils.general/3340 + +2012-09-14 Jim Meyering <meyering@redhat.com> + + tests: reenable "make -C tests ..." commands + The README-documented way to run individual tests was invalidated + by the conversion of tests/ to non-recursive make. Add a GNUmakefile + shim to reenable that usage. + * tests/GNUmakefile: New file, so that "make -C tests ..." works + like it did before the conversion of tests/ to non-recursive build. + Reported by Bernhard Voelker. + * Makefile.am (EXTRA_DIST): Add it. + * cfg.mk (sc_prohibit_tab_based_indentation): Also exempt any + GNUmakefile from this syntax-check. + +2012-09-12 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: fixup: correctly recognize if perl is missing + * configure.ac: Here, by adding a missing '*' to the wildcard in + a 'case' construct over the contents of $PERL. Introduced in + commit v8.19-41-g00f5ba1. + +2012-09-12 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: mbsalign.h: fix typo from previous comment edit + * gl/lib/mbsalign.h: Fix comment typo. + +2012-09-11 Jim Meyering <meyering@redhat.com> + + build: build lib/ using non-recursive make + * bootstrap.conf (gnulib_modules): Use the new module. + (bootstrap_post_import_hook): Invoke prefix-gnulib-mk. + * configure.ac (AC_CONFIG_FILES): Remove lib/Makefile. + * lib/Makefile.am: Renamed... + * lib/local.mk: ...to this. + * src/local.mk (CLEANFILES): Append, don't set. + (noinst_LIBRARIES): Likewise. + (AM_CPPFLAGS): Don't set this here. + * Makefile.am (AM_CPPFLAGS): Define here instead. + (noinst_LIBRARIES, CLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES): + Initialize here, so we can append to them from each included local.mk + (SUBDIRS): Remove "lib". + +2012-09-11 Jim Meyering <meyering@redhat.com> + + build: handle @ALLOCA@-vs-non-recursive make problems + Here is a good reason to avoid alloca with non-recursive make. These: + + $ grep @ALLOCA lib/gnulib.mk + lib_libcoreutils_a_LIBADD += lib/@ALLOCA@ + lib_libcoreutils_a_DEPENDENCIES += lib/@ALLOCA@ + + would lead to this, when @ALLOCA@ expands to the empty string, + which is essentially "always", now: + + $ grep ' lib/$' Makefile + lib_libcoreutils_a_LIBADD = $(gl_LIBOBJS) lib/ + lib_libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) lib/ + + Tell the prefix-adding script not to add a prefix when the word it's + prefixing is "@ALLOCA@". That is fine for most cases, but what about + when the expansion of @ALLOCA@ is nonempty? + + * build-aux/prefix-gnulib-mk (prefix_word): Exclude @ALLOCA@. + * gl/m4/non-recursive-gnulib-prefix-hack.m4: Prefix non-empty + $ALLOCA with "lib/". FIXME: I'm not sure this is required, + now that we... + Use AC_CONFIG_LIBOBJ_DIR([lib]). + Without using AC_CONFIG_LIBOBJ_DIR([lib]), automake (not autoconf) + would complain of failure to find aclocal.c, due to the use of + AC_LIBSOURCES(alloca.c). + +2012-09-11 Jim Meyering <meyering@redhat.com> + + build: new module to convert lib/ to non-recursive make + * gl/modules/non-recursive-gnulib-prefix-hack: New module. + * gl/m4/non-recursive-gnulib-prefix-hack.m4: + (gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): This is the snippet + that this module inserts near the end of configure. + * gl/build-aux/prefix-gnulib-mk: New script, from bison. + Changes from the code in bison: + (prefix_assignment): Split a long line. + (prefix): Add trailing slashes to avoid a single false match. + Prefix imaxtostr.c and the other *tostr.c file names manually. + Also, use $prefix in place of hard-coded "lib/". + +2012-09-11 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: gen-lists-of-programs.sh: fix typo from previous comment edit + * build-aux/gen-lists-of-programs.sh: Fix comment typo. + +2012-09-11 Pádraig Brady <P@draigBrady.com> + + maint: add more control flags to mbsalign + * gl/lib/mbsalign.h: Add MBA_UNIBYTE_ONLY (to allow + faster processing). Also add MBA_NO_LEFT_PAD, MBA_NO_RIGHT_PAD + to give greater control of padding, useful with the first + or last fields on a line. + * gl/lib/mbsalign.c (mbsalign): Implement the new flags. + * gl/tests/test-mbsalign.c (main): Test combinations + of the new flags. + +2012-09-10 Jim Meyering <meyering@redhat.com> + + maint: allow per-directory CFLAGS settings with non-recursive make + * src/local.mk (AM_CFLAGS): Don't use $(WARN_CFLAGS) here. + * cfg.mk (src_CFLAGS, lib_CFLAGS, gnulib-tests_CFLAGS): Define here + instead. + (AM_CFLAGS): Augment using the above. + * configure.ac: Note that the configure-time option, + --enable-gcc-warnings now functions only when using GNU make. + Well, currently it does still work in gnulib-tests, but that should + soon be fixed. + Improved-by: Stefano Lattarini + + maint: gen-lists-of-programs.sh: improve comments + * build-aux/gen-lists-of-programs.sh: Improve comments. + + build: do not require help2man at build-from-tarball time + But do retain full dependencies when building from a git clone. + We do this by converting the full dependency (of the .1 file on + the binary we run with --help) into a dependency on the .c file. + * Makefile.am (do-not-require-help2man): New rule. + (dist-hook): depend on it. + + build: fix a minor man-page generation dependency error + * man/local.mk (man/dir.1): Depend on src/dir, not src/ls. + + maint: move the last coreutils-specific files from lib/ to gl/ + Convert the few remaining coreutils-specific files in lib/ to + gnulib-style modules under gl/, removing their corresponding .m4 + files, since the information recorded in those files is better + stored in module-description file in gl/modules/. + * bootstrap.conf (gnulib_modules): Add new modules: + fd-reopen, buffer-lcm, xfts, strnumcmp. + * gl/lib/buffer-lcm.c: Renamed from the file in lib/. + * gl/lib/buffer-lcm.h: Likewise. + * gl/lib/fd-reopen.c: Likewise. + * gl/lib/fd-reopen.h: Likewise. + * gl/lib/strintcmp.c: Likewise. + * gl/lib/strnumcmp-in.h: Likewise. + * gl/lib/strnumcmp.c: Likewise. + * gl/lib/strnumcmp.h: Likewise. + * gl/lib/xfts.c: Likewise. + * gl/lib/xfts.h: Likewise. + * gl/modules/buffer-lcm: New module-description file. + * gl/modules/fd-reopen: Likewise. + * gl/modules/strnumcmp: Likewise. + * gl/modules/xfts: Likewise. + * m4/fd-reopen.m4: Remove, no longer needed. + * m4/strnumcmp.m4: Likewise. + * m4/xfts.m4: Likewise. + * m4/prereq.m4: Do not AC_REQUIRE the m4 functions from + our just-removed m4/*.m4 files. + + maint: move gl/m4/root-dev-ino.m4 contents into its module definition + We can get the same effect using the modules file. + * gl/m4/root-dev-ino.m4: Remove file. + * gl/modules/root-dev-ino (Depends-on): Add lstat. + (Files): Remove m4/root-dev-ino.m4. + (Makefile.am) [lib_SOURCES]: Add root-dev-ino.c and root-dev-ino.h. + (configure.ac): Remove reference to gl_ROOT_DEV_INO. + +2012-09-08 Jim Meyering <meyering@redhat.com> + + maint: adjust ChangeLog to correct Author + * build-aux/git-log-fix: Add an entry to correct the Author: + of v8.19-111-g51a4b04. It should be Ondrej Oprala, not me. + +2012-09-07 Jim Meyering <meyering@redhat.com> + + factor: NEWS and tests + * NEWS (Bug fixes): Mention it. + * tests/misc/factor.pl: Add five of Torbjörn's tests. + +2012-09-07 Torbjörn Granlund <tg@gmplib.org> + + factor: don't ever declare composites to be prime + The multiple-precision factoring code (with HAVE_GMP) was copied from + a now-obsolete version of GMP that did not pass proper arguments to + the mpz_probab_prime_p function. It makes that code perform no more + than 3 Miller-Rabin tests only, which is not sufficient. + + A Miller-Rabin test will detect composites with at least a probability + of 3/4. For a uniform random composite, the probability will actually + be much higher. + + Or put another way, of the N-3 possible Miller-Rabin tests for checking + the composite N, there is no number N for which more than (N-3)/4 of the + tests will fail to detect the number as a composite. For most numbers N + the number of "false witnesses" will be much, much lower. + + Problem numbers are of the form N=pq, p,q prime and (p-1)/(q-1) = s, + where s is a small integer. (There are other problem forms too, + involving 3 or more prime factors.) When s = 2, we get the 3/4 factor. + + It is easy to find numbers of that form that cause coreutils' factor to + fail: + + 465658903 + 2242724851 + 6635692801 + 17709149503 + 17754345703 + 20889169003 + 42743470771 + 54890944111 + 72047131003 + 85862644003 + 98275842811 + 114654168091 + 117225546301 + ... + + There are 9008992 composites of the form with s=2 below 2^64. With 3 + Miller-Rabin tests, one would expect about 9008992/64 = 140766 to be + invalidly recognized as primes in that range. + + * src/factor.c (MR_REPS): Define to 25. + (factor_using_pollard_rho): Use MR_REPS, not 3. + (print_factors_multi): Likewise. + * THANKS.in: Remove my name, now that it will be automatically + included in the generated THANKS file. + +2012-09-07 Ondrej Oprala <ooprala@redhat.com> + + tests: improve checks for setuidgid-using root-only tests + * init.cfg (setuidgid_has_perm_): New function. + (require_root_): Use it. + Improved-by: Bernhard Voelker + * NEWS (Build-related): Mention the improvement. + +2012-09-06 Eric Blake <eblake@redhat.com> + + build: default to --enable-gcc-warnings for git tree + Anyone developing on coreutils can be assumed to have a new enough + environment, such that enabling gcc warnings by default will be + useful. Tarballs still default to no warnings, and the defaults + can still be overridden with --disable-gcc-warnings. + + * configure.ac (gl_gcc_warnings): Set default based on environment. + Suggested by Bernhard Voelker. + +2012-09-06 Pádraig Brady <P@draigBrady.com> + + nproc: disallow non option command line parameters + * src/nproc.c (main): Error if any non option parameters. + * NEWS: Mention the change in behavior. + +2012-09-06 Jim Meyering <meyering@redhat.com> + + tail,stat: add support for VZFS + * src/stat.c (human_fstype): Add a case: vzfs, 0x565A4653 (local). + Reported by Jens Rosenboom in http://bugs.gnu.org/12356 + * NEWS (Improvement): Mention it. + +2012-09-05 Jim Meyering <meyering@redhat.com> + + rm: be more careful when using a replacement errno value + * src/remove.c (excise): Tighten the test for when we defer to an + old errno value: instead of relying solely on an FTS_DNR (unreadable + directory) failure, also test current and replacement errno values. + This change would also have solved the problem addressed by commit + v8.19-106-g57dd067. For more info, see http://bugs.gnu.org/12339#113 + + rm: avoid bogus diagnostic for a slash-decorated symlink-to-dir + These commands would evoke an invalid diagnostic: + $ mkdir d && ln -s d s && env rm -r s/ + rm: cannot remove 's': Too many levels of symbolic links + remove.c was stripping trailing slashes from "s/" before passing + the name to "rm". But a trailing slash may change the semantics, + and thus should not be stripped. + * src/remove.c (rm_fts): Do not strip trailing slashes. + * tests/rm/v-slash.sh: Adapt to new expected output. + * gnulib: Update to latest, for an improved fts.c that merely + normalizes trailing slashes. + Reported by Paul Eggert in discussion of http://bugs.gnu.org/12339 + + tests: depend on the programs we're testing + * tests/local.mk ($(TEST_LOGS)): Depend on $(PROGRAMS), so that + tests are rerun when any program is rebuilt. Technically, we could + specify precisely which few programs are dependents of each test, + but that can come later, if deemed worth the trouble and maintenance + burden. Also, there is the issue of the primary program(s) being + tested (i.e., those itemized via print_ver_) versus those that are + tested incidentally: for example, nearly every test exercises "rm" + when its clean-up code removes files. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: fix a spurious syntax-check failure + * cfg.mk (exclude_file_name_regexp--sc_file_system): Exempt + 'init.cfg', not 'tests/init.cfg'. + + tests: more resilient about tainted absolute srcdir path + * tests/init.cfg (stty_reversible_init_): Quote '$abs_top_srcdir' + properly. + (fiemap_capable_): Quote '$abs_srcdir' properly. + (require_dirent_d_type_): Likewise. + + maint: fix syntax checks 'sc_root_tests' + * cfg.mk: Don't work by trying to parse the (now gone) file + 'tests/Makefile.am'; rather, use the contents of the make variable, + $(all_root_tests), introduced few commits ago. + Fix a few unrelated cosmetic issues while at it. + + maint: avoid a spurious syntax-check error + * cfg.mk (exclude_file_name_regexp--sc_prohibit_test_backticks): Exempt + 'tests/local.mk' rather than 'tests/Makefile.am'. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: vc_exe_in_TESTS should actually be a syntax check + Because it requires the presence of the '.git' directory, that is, + can be run only for maintainers working from checked-out sources. + + * tests/local.mk (vc_exe_in_TESTS): Rename and move ... + * cfg.mk (sc_tests_list_consistency): ... here, with minor adjustments. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: remove two now-useless convenience targets + * src/local.mk (built_programs.list, all_programs.list): These. + + tests: put test-suite.log back in 'tests/' + * tests/local.mk (TEST_SUITE_LOGS): Define to 'tests/test-suite.log'. + + build: don't use recursive make for tests/ subdirectory + * Makefile.am (SUBDIRS): Remove 'tests'. + (include): The '$(top_srcdir)/tests/local.mk' file. + (check-root): Remove this convenience target, it's no longer needed + now that the "real" check-root target once in 'tests/Makefile' will + land in the top-level makefile. + * configure.ac (AC_CONFIG_FILES): Remove 'tests/Makefile'. + * tests/Makefile.am: Rename ... + * tests/local.mk: ... like this, with a lot of adjustments. + * tests/init.cfg: Move ... + * init.cfg: ... here. This is necessary, for a limitation of the + gnulib-provided 'tests/init.sh', which unconditionally look for + 'init.cfg' in the $(srcdir) directory. + * tests/*/*.sh: Adjust: expect init.sh to be in '$srcdir/tests', + not in '$srcdir', and extend $PATH with './src', not with '../src'. + * tests/Coreutils.pm: Adjust similarly. + * tests/pr/pr-tests.pl ($pfx): Likewise. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: list of names of built programs available in the Makefiles + This is just a preparatory refactoring in view of future changes. + + * configure.ac (AC_SUBST): New 'built_programs'. + * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Simply define the exported + variable 'built_programs' to the expansion of the '$(built_programs)' + AC_SUBST'd make variable. + (.built-programs): Remove this now-unneeded convenience target. + (CLEANFILES, check_DATA): Delete, no longer needed. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: remove anachronistic syntax-check + * cfg.mk (sc_no_exec_perl_coreutils): This. Our new testsuite + layout (perl tests having '.pl' suffix, shell tests having '.sh' + suffix) makes it basically impossible to run into the issue this + check guarded against. + + maint: remove duplicated declaration of the 'sc_check-AUTHORS' target + * cfg.mk: Here. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: remove the unused 'root-hint' target + * tests/Makefile.am (root-hint): Here. The interested user can see + the reasons why some tests are skipped by looking at the messages + they display on the console; here's an excerpt: + + ... + PASS: misc/id-groups.sh + id-setgid.sh: skipped test: must be run as root + SKIP: misc/id-setgid.sh + PASS: misc/md5sum.pl + ... + PASS: df/total-verify.sh + 2g.sh: skipped test: very expensive: disabled by default + SKIP: du/2g.sh + ... + + Clear enough, and more specific and precise that a generic "some tests + might need to be run as root" message. And if that user is interested + in making those tests run anyway, he'll just take a look to the README + files to look for info. So there's no reason to pollute the stdout + with another "hint" that is subsumed by those messages, and that might + go unnoticed anyway. + + Moreover, and possibly more importantly, that hint wasn't being + displayed anyway, even before this change! That's because the + 'root-hint' target was listed as prerequisite for the 'check-recursive' + target, which however was not a dependency of the 'check' target in + 'tests/Makefile.am', because that file contains no $(SUBDIRS) + definition. + +2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: use suffix, not exec-bit, to tell which files are tests + * tests/Makefile.am (vc_exe_in_TESTS): Adjust to look, in the 'tests/' + subdirectory, for files that have one of the extensions listed in + $(TEST_EXTENSIONS), rather than for executable files. + + maint: make vc_exe_in_TESTS also work in VPATH builds + * tests/Makefile.am (vc_exe_in_TESTS): It is easy to adjust this + recipe to also work in VPATH setups, also thanks to modifications + done by previous changes. + + maint: remove useless dependency for vc_exe_in_TESTS + * tests/Makefile.am (vc_exe_in_TESTS): No need to depend on Makefile: + this target is .PHONY, so it is always run anyway. + + maint: avoid parsing of Makefile.am from vc_exe_in_TESTS + * tests/Makefile.am (TESTS): Rename ... + (all_tests): ... like this, so that we'll still be able to know the + complete list of our tests even if the user overrides TESTS from the + command line (which he's allowed to do by the test harness API). + (root_tests): Rename ... + (all_root_tests): ... like this, for similar reasons. + (TESTS, root_tests): Redefine their defaults to to $(all_tests) and + $(all_root_tests) respectively. + (vc_exe_in_TESTS): It can now safely use $(all_tests) to get the + complete list of test cases according to the Makefile, instead of + having to resort to "parsing" of Makefile.am. + (EXTRA_DIST): Use $(all_tests), not $(TESTS). + (v_, w_): Delete, no longer needed. + + build: use 'check-local' to extend the 'check' target + * tests/Makefile.am (check-local): Here, by making this depend + on 'vc_exe_in_TESTS' ... + (check): ... rather than making this depend on them. While the old + usage worked, it relied on an implementation detail rather than on + documented behavior. + * src/local.mk (check-local): Similarly, make this depend on + 'check-README' and 'check-duplicate-no-install' ... + (check): ... rather than on this. + +2012-09-02 Stefano Lattarini <stefano.lattarini@gmail.com> + + scripts: autotools-install: allow user-specified make program + * scripts/autotools-install: Honor $MAKE. This might be useful + on systems where the make implementation available in $PATH + by default is limited (Solaris) or broken (HP-UX). + + scripts: autotools-install: style and portability fixes + * scripts/autotools-install: Here. + +2012-09-02 Benno Schulenberg <bensberg@justemail.net> + + touch: line up long option in --help text + * src/touch.c (usage): Indent --time=... to line up with all of the + other long options. + +2012-09-02 Jim Meyering <meyering@redhat.com> + + maint: disable sc_proper_name_utf8_requires_ICONV test + It would still pass, but would print many diagnostics like this: + Can't open src/Makefile.am: No such file or directory. + * cfg.mk (local-checks-to-skip): Temporarily disable a test. + This test will need to be adapted to work with a non-recursive + build set-up, in which there is no Makefile.am alongside each program. + Reported by Bernhard Voelker. + + maint: accommodate upcoming, expanded list of warnings from gnulib + * configure.ac: Disable a new gcc warning, -Wsuggest-attribute=format, + since it triggers on copy.c (which I'm not inclined to adjust) and + factor.c's use of vfprintf which would appear to require a change + to stdio.h. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: fix build_programs definition not to use "make -C src ..." + * dist-check.mk (built_programs): There's no need to issue recursive + make calls in 'src/' to define this (in fact, that works no longer + now that 'src/Makefile.am' is gone). Simply define this to the sorted + contents of $(bin_PROGRAMS), with the 'src/' prefix and the $(EXEEXT) + suffix (if any) removed. Reported by Jim Meyering. + +2012-09-01 Jim Meyering <meyering@redhat.com> + + build: restore handling of space-tainted build directory name + * man/local.mk: With commit v8.19-84-g08cf455, man page creation + would fail when using a build directory name containing e.g., + spaces. + + build: make each man/prog.1 depend on src/prog, not src/prog.c + * man/local.mk: Creating a prog.1 man page requires running + src/prog --help. + List the exceptions, e.g., install.1 depends on src/ginstall + and arch.1 depends on src/uname. + + maint: check-programs-vs-x: avoid a new syntax-check failure + * cfg.mk (check-programs-vs-x): The new variable, + $(all-progs-but-lbracket) contains libstdbuf.so, and it does + not have a corresponding .x file, so exempt it. + + maint: avoid distcheck failure by properly cleaning $(ALL_MANS) + * man/local.mk (distclean-local): Remove $(ALL_MANS) when doing + a VPATH build. If it's not done, generated manpages can be left + around in the build directory after a "make distclean", causing + failures in "make distcheck". + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: port manpages generation to VPATH builds + * man/local.mk (.x.1): Use '$(MKDIR_P)' rather than bare 'mkdir' + where appropriate. Reported by Jim Meyering. + +2012-09-01 Jim Meyering <meyering@redhat.com> + + build: fix VPATH issues in C compilation + * src/local.mk (AM_CPPFLAGS): Add 'src' to the directories that + are searched for #include'd files. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: simplify declaration of "libexec" programs + * configure.ac: No need to use 'gl_ADD_PROG' and an indirection + variable '$optional_pkglib_progs' to declare the 'libstdbuf.so' + "libexec" program; the decision to whether compile that program + is not up to the user, but it only and simply depends on whether + the 'stdbuf' "bin" program is to be built or not. + + build: $(mandeps): new, to factor out man pages dependencies + * man/local.mk (mandpep): Rename ... + (mandeps): ... like this. Make $(ALL_MANS) depend on its + content. List 'src/system.h' in here, instead of making + $(ALL_MANS) depend on it explicitly. + (man/*.1): No need to list $(mandep) among the dependencies + any longer. + + build: enhance man pages cleaning and dependencies + * man/local.mk: All of the manpages should depend on 'src/system.h', + and all of them should be cleaned by "make maintainer-clean", that + is, added to MAINTAINERCLEANFILES. Make it be so. + Some minor cosmetic tweakings and reorderings while at it. + + build: simplify: get rid of yet some more indirection variables + * configure.ac: Adjust and improve few comments. + (MAN): Rename ... + (man1_MANS): ... to this. + Ensure it isn't initialized in all Makefiles (which would lead + to spurious errors), by calling AM_SUBST_NOTMAKE on it. + Also call AM_SUBST_NOTMAKE on 'EXTRA_MANS', for consistency. + * man/local.mk (man1_MANS): Simply define to '@man1_MANS@'. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: rename dist_man1_MANS -> man1_MANS + And list $(man1_MANS) directly in $(EXTRA_DIST) instead. + This is similar to what is done for $(EXTRA_MANS), thus + improving consistency and readability. + + * man/local.mk (dist_man1_MANS): Rename ... + (man1_MANS): ... like this. + (EXTRA_DIST): Add its contents. + * cfg.mk (check-x-vs-1): Fix a botched comment. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: one less unneeded make variable + * man/local.mk (man_aux): This was used only once, so inline its + expansion at its sole point of use ... + (EXTRA_DIST): ... here. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: simplify and make more portable to non-GNU make + The AC_SUBST'd variable '$(NO_INSTALL_PROGS_DEFAULT)' is only used in + makefile expressions expanding the list of manual pages that are not + built by default (but might need to be when a distribution tarball + is created). Such expressions exploited a feature of make variable + expansion -- namely, $(VAR:%=dir/%.x) -- that, while seemingly quite + portable in practice, is not POSIX-conforming, and could break on + lesser vendor make implementations. So kill two birds with one stone, + by getting rid of the $(NO_INSTALL_PROGS_DEFAULT) intermediate variable + and improving makefile portability in the process. + + While at it, we also clean up some other minor naming inconsistency + and useless indirection. + + * configure.ac (NO_INSTALL_PROGS_DEFAULT): Don't define or AC_SUBST + anymore; instead ... + (EXTRA_MANS): ... define and AC_SUBST these. + * man/local.mk (extra_man_1): Rename ... + (EXTRA_MANS): ... like this, explicitly making clear it's AC_SUBST'd. + (extra_man_x): It's used only once, no need to define it; just inline + its only expansion where needed. + (EXTRA_DIST): Adjust. + (ALL_MANS): New, union of $(EXTRA_MANS) and $(dist_man1_MANS). + * cfg.mk (check-x-vs-1, sc_option_desc_uppercase): Rely on $(ALL_MANS) + rather than on $(NO_INSTALL_PROGS_DEFAULT) and $(dist_man1_MANS). + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: simplify: get rid of some indirection variables + The code deciding which coreutils programs to build (depending on + defaults, system capabilities, and user requests) is overly complex + and rather confusing. Let's begin simplifying it by removing some + non-strictly-necessary indirection variables. + + * configure.ac: Adjust and improve few comments. + (OPTIONAL_BIN_PROGS, OPTIONAL_PKGLIB_PROGS): Rename ... + (bin_PROGRAMS, pkglibexec_PROGRAMS): ... like these, respectively. + Ensure they aren't initialized in all Makefiles (which would lead + to spurious errors), by calling AM_SUBST_NOTMAKE on them. + * src/local.mk: Adjust and improve few comments. + (bin_PROGRAMS, pkglibexec_PROGRAMS): Simply define + to the corresponding '@substitution@'. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: update gitignore entries + * src/.gitignore: Here, adding the '.dirstamp' file generated + by the C compilation rules. + + maint: fix one stray reference to src/Makefile.am + * build-aux/gen-lists-of-programs.sh: In heading comments here. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: fix and simplify maintainer checks + Some of them can be simplified after the previous changes, some + of them have been downright broken by them, and need fixing. + + * src/local.mk: Adjust some comments. + (EXTRA_DIST): Avoid SPACE-TAB sequences. + (src/dircolors.h, src/fs.h src/fs-is-local.h): Avoid 8-SPACES + indentation. + (_sc_check-AUTHORS): Move ... + * cfg.mk (sc_check-AUTHORS): ... here (superseding the old rule + with the same name, that was just a recursive invocation to it). + Adjust the paths of the invoked coreutils programs, to account + for the fact that this rule now runs in the top-level build dir, + not in the 'src/' subdir. Other minor cosmetic adjustments. + (ALL_RECURSIVE_TARGETS): Remove 'sc_option_desc_uppercase' and + 'sc_man_file_correlation', since they no longer entail any + recursive make invocation. + (sc_option_desc_uppercase): Remove dependency from $(all_programs): + it isn't actually needed. + (check-programs-vs-x): Likewise. Also, fix heading comments to + truly reflect what this check does. + (all-progs-but-lbracket): Strip the 'src/' prefix from each entry + in the list of programs; this avoids a spurious failure in the + 'check-programs-vs-x' recipe. + (.PHONY): No need to list targets 'sc_man_file_correlation' and + 'sc_option_desc_uppercase': they are automatically declared phony + by 'maint.mk', being recognized as syntax checks. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: remove unused target 'install-root' + It was unneeded and broken since the removal of 'su' from GNU + coreutils, in commit v8.17-16-g928dd73 of 2012-06-06, "su: remove + program (util-linux is now the best source for it)". + + * Makefile.am (install-root): Remove. + (ALL_RECURSIVE_TARGETS): Update. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: improve remake rules for maintainers + This is a follow up on today's commit v8.19-60-g4f2e62b". + + * Makefile.am ($(top_srcdir)/m4/cu-progs.m4, + $(srcdir)/src/cu-progs.mk): New, generate these files from the + 'build-aux/gen-lists-of-programs.sh', the same way it's done + from the bootstrap script. + * bootstrap.conf (bootstrap_post_import_hook): Add comment about + the necessity to keep those new rules synced with the commands + here. Enhance those commands so to that the generated files are + set read-only. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: fix generation of manpages for programs not built by default + * src/local.mk (dist-hook): Don't use this to ensure all the + programs, even the ones disabled by default or by the user, are + built (doing so is required to ensure the distributed manpages + are properly built). This would build those programs too late + anyway, causing errors like: + + $ make dist + make dist-xz am__post_remove_distdir='@:' + make[1]: Entering directory `~/src/coreutils' + GEN man/arch.1 + help2man: can't get '--help' info from man/arch.td/arch + make[1]: *** [man/arch.1] Error 127 + make[1]: Leaving directory `~/src/coreutils' + make: *** [dist] Error 2 + + Instead, ... + * man/local.mk (extra_man_x, extra_man_1): define these ... + ($(extra_man_1)): ... and make this depend on $(all_programs). + (EXTRA_DIST): Adjust. + Adjust some comments as well. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: don't use recursive make to build the 'src' subdirectory + * Makefile.am (SUBDIRS): Remove 'src'. Ensure '.' is listed before + 'tests' and 'gnulib-tests'. + (dist-hook): Adjust: we must now tweak the top-level Makefile.in + in $(distdir), not the one in the 'src/' subdir (which is gone). + (include): The '$(top_srcdir)/src/local.mk' file. + * build-aux/gen-lists-of-programs.sh: Adjust the generation of the + automake input fragment. + * tests/Makefile.am (.built-programs): Adjust. + * cfg.mk (all_programs): Remove this convenience rule; it's no + longer needed, now that we can rely directly on the contents of + $(all_programs). + (sc_option_desc_uppercase, check-programs-vs-x:): Adjust lists + of prerequisites accordingly. + (all-progs-but-lbracket): Simplify definition accordingly. + * configure.ac ($OPTIONAL_BIN_PROGS): Adjust definition. + ($OPTIONAL_PKGLIB_PROGS): Likewise. + ($NO_INSTALL_PROGS_DEFAULT): Tweak definition, for consistency. + (AC_CONFIG_FILES): Remove 'src/Makefile'. + * src/Makefile.am: Rename ... + * src/local.mk: ... like this, with a lot of adjustments. In + addition ... + (all_programs): ... remove this now-unneeded convenience target. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: refactor how lists of coreutils programs are defined + This is in preparation of future changes. Still, this patch + leaves the build system in a better shape; true, with more + indirections, but also with less convoluted and brittle hacks. + + Unfortunately, this commit also makes some rebuild rules + incomplete; that will son be fixed by follow-up patches. + + * build-aux/gen-lists-of-programs.sh: New, generates autoconf + and automake input fragments that define "lists" of all coreutils + programs, with further distinctions about how and when these + programs should be built (by default; if the system is capable + enough; only if the user asks for them explicitly). This is + useful to avoid duplicating the definitions of these lists among + several files (at least 'configure.ac' 'src/Makefile.am'); such + duplication had proved a source of inconsistencies and bugs in + the past. And the pre-existing way to avoid such duplication, + as implemented in 'configure.ac' before this patch, was overly + complex and brittle. + * Makefile.am (EXTRA_DIST): Distribute the new script. + * bootstrap.conf (bootstrap_post_import_hook): Run the new script + to generate 'm4/cu-progs.m4' and 'src/cu-progs.mk'. + * .gitignore: Ignore those files. + * configure.ac: Include 'm4/cu-progs.m4', and decidedly simplify + most of the program lists definition and processing accordingly. + * src/Makefile.am: Similarly include 'src/cu-progs.mk', containing + definition of variables $(default__progs), $(no_install__progs) + and $(build_if_possible__progs). Accordingly ... + (no_install__progs, build_if_possible__progs): ... remove. + (EXTRA_DIST): Adjust definition. + Adjust a comment. + +2012-09-01 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: add our 'bootstrap_post_import_hook' function + This is in preparation of future changes. + + * bootstrap.conf (bootstrap_post_import_hook): New, will be executed + by bootstrap after gnulib-tool but before the autotools. + Move creation of dummy ChangeLog into it. + +2012-08-31 Eric Blake <eblake@redhat.com> + + build: work with new glibc when not optimizing + Starting with glibc 2.15, the system headers refuse to compile + unconditional use of FORTIFY_SOURCE if optimization is disabled + but -Werror is in effect. + + * configure.ac (FORTIFY_SOURCE): Make conditional. + +2012-08-31 Jim Meyering <meyering@redhat.com> + + scripts: fix the Signed-off-by:-prohibiting hook to actually work + * scripts/git-hooks/commit-msg: Fix new test: we're searching a + multi-line buffer, so add the //m modifier. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: make required gettext version consistent + * bootstrap.conf ($buildreq): Require gettext >= 0.18.1, consistently + with the call to AM_GNU_GETTEXT_VERSION in configure.ac. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: get rid of obsolete script 'cvsu' + It was useful only back when coreutils used CVS as its version + control system. + + * build-aux/cvsu: Delete. + * Makefile.am (EXTRA_DIST): Remove it. + * cfg.mk: Remove the two exemptions for this removed file. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: don't use '$<' in non-suffix rules + * src/Makefile.am (fs-def): Here: it's not portable to some non-GNU + make implementations. + + maint: more uses of $(ASSORT) + * src/Makefile.am (fs-kernel-magic, fs-magic): Here, instead of + inlining its expansion "LC_ALL=C sort". + + maint: remove unused variable in src/Makefile.am + * src/Makefile.am (editpl): This. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: don't use foo_LDADD if there's no foo program + For example, instead of factoring out the extra linker flags needed + by 'cp', 'mv' ind 'install' into a '$(copy_LDADD)' variable, factor + them out in a '$(copy_ldadd)' variable. + + Partly a minor cleanup, partly a preparation for future changes. + + * src/Makefile.am (copy_LDADD): Rename ... + (copy_ldadd): ... like this. + (remove_LDADD): Rename ... + (remove_ldadd): ... like this. + All uses adjusted. Some comments updated. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: some refactorings in cfg.mk + Partly a minor cleanup, partly a preparation for future changes. + + * Makefile.am (all_programs): Rename ... + (all-progs-but-lbracket): ... like this, and re-define it to expand + at make time rather than only at recipe time (i.e., using $(shell ...) + instead of `...`). + (check-programs-vs-x): Adjust. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: move definition of 'all_programs' in cfg.mk + * Makefile.am: Move definition of target 'all_programs' from here ... + * cfg.mk: ... to here, which is the only file where it is used. + +2012-08-31 Jim Meyering <meyering@redhat.com> + + build: reenable just-moved/broken syntax-check rule + * cfg.mk (sc_option_desc_uppercase): Now that this rule lives in cfg.mk, + we must search man/*.1, not "*.1". + Reported by Bernhard Voelker. + +2012-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: fixup: don't try to distribute a now-removed file + * tests/Makefile.am (EXTRA_DIST): Drop 'check.mk', which has been + removed (being merged into 'tests/Makefile.am') by recent changes. + +2012-08-31 Erik Auerswald <auerswal@unix-ag.uni-kl.de> + + doc: escape double quotes in autotools-install --help + * scripts/autotools-install: Fix --help so that we actually print + the double quotes around "make check", in two places. + +2012-08-31 Jim Meyering <meyering@redhat.com> + + scripts: add autotools-install, for those stuck with outdated tools + * scripts/autotools-install: New script, so you can always build + from git-cloned sources, even when they require bleeding edge + m4, autoconf, automake, etc. + +2012-08-31 Bernhard Voelker <mail@bernhard-voelker.de> + + build: fix syntax-check rules broken by test-added .sh/pl suffixes + * cfg.mk: We exempt a few test files that would otherwise trigger + false-positive matches in syntax-check rules. The recent change + that added a .sh or .pl suffix to each test script made it so + some of the exclusion regexps would no longer match. + Include the required \.sh suffix in each such regexp, too. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: get rid of the 'shell-or-perl' auxiliary script + It's now easier and faster to simply run the perl ans shell test + scripts directly with the appropriate interpreter and options. + + * tests/shell-or-perl: Delete. + * tests/Makefile.am (EXTRA_DIST): Remove it. + (SH_LOG_COMPILER): Re-define to invoke the correct shell. + (PL_LOG_COMPILER): Re-define to invoke the correct perl + interpreter ... + (TESTSUITE_PERL_OPTIONS): ... with the correct options. + (XPL_LOG_COMPILER): Use those options instead of inlining + their expansion. + (LOG_COMPILER): Delete, no longer needed. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: add .sh and .pl suffixes to shell and perl tests, respectively + Not only this shrinks the size of the generated Makefile (from > 6300 + lines to ~3000), but will allow further simplifications in future + changes. + + * tests/Makefile.am (TEST_EXTENSIONS): Add '.sh' and '.pl'. + (PL_LOG_COMPILER, SH_LOG_COMPILER): New, still defined simply to + $(LOG_COMPILER) for the time being. + (TESTS, root_tests): Adjust as described. + * All tests: Rename as described. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: detect missing perl at configure runtime + * configure.ac (AM_CONDITIONAL): Set the conditional 'HAVE_PERL' to + true if the configure-time checks (as run by gl_PERL) have been able + to find a working perl. + * tests/no-perl: New script, report a diagnostic about "missing perl" + and exit with status 77. + * tests/Makefile.am (EXTRA_DIST): Distribute it. + (TESTSUITE_PERL): New, define to '$(PERL)' if a perl interpreter has + been found at configure time (i.e., if the 'HAVE_PERL' automake + conditional is true), and to '$(srcdir)/no-perl' otherwise. + (LOG_COMPILER): Use $(TESTSUITE_PERL) instead of $(PERL). + (XPL_LOG_COMPILER): Likewise. + * tests/shell-or-perl: Simplify: no need to actually check whether + perl is working. + + tests: avoid use of '-T' in shebang line to enable perl taint mode + * tests/rm/fail-eperm: Rename ... + * tests/rm/fail-eperm.xpl: ... like this + * tests/Makefile.am (TESTS): Adjust. + (TEST_EXTENSIONS): New, list '.xpl'. + (XPL_TEST_LOGS): New, run a perl test in tainted mode. + * tests/shell-or-perl: Simplify this script: we no longer need to + parse the shebang line and adjust the flags in the perl invocation + accordingly. + + build: require Automake >= 1.11.2 + Now that we use AM_TESTS_ENVIRONMENT, we must require + Automake >= 1.11.2. + * configure.ac (AM_INIT_AUTOMAKE): Bump version requirement to 1.11.2. + * bootstrap.conf ($buildreq): Likewise. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: prefer AM_TESTS_ENVIRONMENT over TESTS_ENVIRONMENT + The latter should be reserved for user overrides. + + * tests/Makefile.am (TESTS_ENVIRONMENT): Rename ... + (AM_TESTS_ENVIRONMENT): ... like this. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: merge tests/check.mk into tests/Makefile.am + The separation has become unnecessary after all the ancient + 'tests/*/Makefile.am' makefiles have been merged into the + "more-top-level" one 'tests/Makefile.am'. + + * tests/check.mk: Merge ... + * tests/Makefile.am: ... in here. Some comments tweaking while + at it. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: enable the 'subdir-objects' Automake option globally + This is not strictly required now (it will be once we make more + parts of the coreutils build system non-recursive), but enabling + it early helps to ensure that we don't unwittingly introduce any + incompatibility or subtle breakage later. + + * configure.ac (AM_INIT_AUTOMAKE): Add 'subdir-objects'. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: update gitignore entries + * doc/.gitinore: Here, adding the '.dirstamp' file generated by + the Texinfo rules. + +2012-08-30 Jim Meyering <meyering@redhat.com> + + build: factor out a little more re list of *.texi files + We may well want to switch from checking all *.texi to + checking only version-controlled .texi files, so encapsulate + this concept in one place. + + * doc/local.mk (doc_srcdir): Delete. Use this instead: + (texi_files): Define. All usages adjusted. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: adjust syntax check 'sc_option_desc_uppercase' + * cfg.mk (sc_option_desc_uppercase): Here, by grafting the 'man/' + prefix to the manpages obtained from $(NO_INSTALL_PROGS_DEFAULT) + and listed as prerequisites for this rule. + + maint: adjust syntax check 'check-x-vs-1' + * cfg.mk (check-x-vs-1): Here, by stripping 'man/' prefix from + $(dist_man1_MANS) entries before comparing them with the list of + expected programs. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: move man-related syntax checks in cfg.mk + This is more natural, now that the top-level Makefile has access to + all the variables and rules once defined only in 'man/Makefile.am' + + * man/local.mk (all_programs, sc_option_desc_uppercase, + sc_man_file_correlation check-x-vs-1, check-programs-vs-x): Move + from here ... + * cfg.mk: ... to here. Adjust some comments in the process. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: don't use recursive make to build the 'man' subdirectory + * Makefile.am: Include 'man/local.mk'. + (SUBDIRS): Remove 'man'. + * configure.ac ($MAN): Adjust so that each of its entries has a leading + 'man/' component. + (AC_CONFIG_FILES): Remove 'man/Makefile'. + * man/Makefile.am: Rename ... + * man/local.mk: ... like this. With further adjustments: each 'foo.1' + target renamed like 'man/foo.1', each '../src/foo.c' dependency as + 'src/foo.c', and each '$(srcdir)' usage as '$(srcdir)/man'. Also ... + (mandep): Adjust, removing the leading '../' component. + Several whitespace adjustments while at it. + (ASSORT): Remove, it's already defined in the top-level Makefile.am. + * cfg.mk (sc_option_desc_uppercase, sc_man_file_correlation): Remove + the associated recipes, they are now directly available from the + included 'man/local.mk'. Actually, the other changes in this commit + have made these recipes instable and not completely correct, but that + will be fixed in later changes. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: rework some recipes in man/Makefile.am, for future changes + This change is merely required to make future changes easier. + + In particular, since we are going to merge the contents of + 'man/Makefile.am' into the top-level Makefile, we need to avoid + conflicts with the rules and variables in 'dist-check.mk', and + to prepare for changes in the value of the '$*' variable as used + in the recipe of the '.x -> .1' suffix rule. + + * man/Makefile.am (t, mapped_name): Delete, inlining their use ... + (.1.x): ... in the recipe of this suffix rule. Other adjustments + to prepare to changes in the value of the '$*' automatic variable. + While at it, made more resilient about unlikely but possible failure. + Adjust and reorder few comments. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: provide convenience target 'all_programs' also at top-level + This will be mostly useful in future changes. + + * Makefile.am (all_programs): New, simply work by delegating to + the same-named target in the 'src/' subdirectory. + * cfg.mk (sc_option_desc_uppercase): Take advantage of it. + (sc_man_file_correlation): Likewise. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: make a rule less dependent on exact source tree layout + This is mostly a preparatory change in view of future ones. + + * man/Makefile.am (.x.1): Use '$(abs_top_builddir)/src' to access + the 'src' directory. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: rely on VPATH capabilities in man/Makefile + * man/Makefile.am: In all the 'foo.1' targets, no need to depend + explicitly on '$(srcdir)/foo.x': the '.x.1' suffix rule takes care + of that automatically. + + maint: typofix: s/it's/its/ + * man/Makefile.am: Here. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: rename common_dep -> mandep in man/Makefile + This is mostly a preparatory refactoring in view of future changes. + + * man/Makefile.am (common_dep): Rename ... + (mandep): ... like this. + All usages adjusted. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: fix a stray usage of uninitialized $(ME) + * man/Makefile.am (sc_option_desc_uppercase): Here. + + build: add an explanatory comment + * man/Makefile.am (EXTRA_DIST): Describe portability issues of the + idiom we now use. Reformat the definition a little while at it. + + maint: simplify definition of $MAN in configure.ac + * configure.ac: Here, by making less use of 'sed' and 'tr' munging, + and relying on a smarter and simpler shell loop instead. + + build: don't define $(SUFFIXES) explicitly + * man/Makefile.am (SUFFIXES): Remove definition: Automake is smart + enough to extract the list of suffixes from the '.x.1' suffix rule + automatically. + + build: don't use recursive make to build the 'doc' subdirectory + * doc/Makefile.am: Rename ... + * doc/local.mk: ... like this. With further adjustments ... + (info_TEXINFOS): Prepend 'doc/' to all '*.texi' files listed in + here. + (coreutils_TEXINFOS): Likewise, and rename ... + (doc_coreutils_TEXINFOS): ... like this. + (constants.texi): Rename ... + (doc/constants.texi): ... like this. Adjust the recipe to avoid + spurious errors. + (MAINTAINERCLEANFILES): Adjust, and extend with '+=' rather than + setting it with '='. + (ME): Delete. + (find_upper_case_var): Use '$@', not '$(ME)', in error messages. + * Makefile.am: Include 'doc/local.mk'. + (SUBDIRS): Remove 'doc'. + * configure.ac (AC_CONFIG_FILES): Remove 'doc/Makefile'. + + build: use 'check-local' to extend the 'check' target + * doc/Makefile.am (check-local): Here, by making this depend + on 'check-texinfo' ... + (check): ... rather than this. While the old usage worked, it + did so for an implementation detail rather than a documented + behaviour, so relying on that was riskier a "unclean". + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: prefer '$(top_srcdir)/doc' over '$(srcdir)' in doc Makefile + This is just a preparatory refactoring that will become useful in + a future change (in which the doc/Makefile.am makefile will be merged + with the top-level one). + + * doc/Makefile.am (doc_srcdir): New, define to '$(top_srcdir)/doc'. + Use it throughout instead of "bare" '$(srcdir)'. + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + build: add extra *.texi files to coreutils_TEXINFOS, not EXTRA_DIST + * doc/Makefile.am (coreutils_TEXINFO): List them here, instead of ... + (EXTRA_DIST): ... listing them here. This ensures the rebuild rules + will be more faithful. + ($(DVIS), $(INFO_DEPS)): No need to depend on $(EXTRA_DIST) now. + + maint: slightly improve .gitignore + * .gitignore: Ignore '.deps' only when it's a directory. + Ignore '*.trs' only if they are in a subdirectory of the + 'tests/' directory. + + build: don't abuse Automake internals (with its 'check-am' rule) + * tests/check.mk (check-am): Remove; obtain the same effect by moving + its dependency '.built-programs' ... + (check_DATA): ... to this variable. + +2012-08-30 Jim Meyering <meyering@redhat.com> + + scripts: git commit message hook: prohibit use of "Signed-off-by:" + * scripts/git-hooks/commit-msg: Reject a commit log message that + contains "Signed-off-by:". + +2012-08-30 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: remove useless defn of REPLACE_GETCWD from TESTS_ENVIRONMENT + It's last use had been removed in commit v8.12-3-g3ed91fc of 2011-04-28, + "tests: remove useless test: misc/pwd-unreadable-parent". + + * tests/check.mk (TESTS_ENVIRONMENT): Adjust. + +2012-08-30 Nick Alcock <nick.alcock@oracle.com> + + tests: fix misc/sort-exit-early to skip if root + * tests/misc/sort-exit-early: skip_if_root_ as this test + requires an unwritable input and an unreadable output. + +2012-08-29 Jim Meyering <meyering@redhat.com> + + tail,stat: improve support for ZFS + This change enables tail -f to use inotify and lets + stat -f --format=%T report the file system type name, "zfs". + * src/stat.c (human_fstype): Add a case: zfs, 0x2fc12fc1. + * NEWS (Improvements): Mention it. + * THANKS.in: Update. + Reported by Raimonds Miltins in http://bugs.gnu.org/12301. + +2012-08-26 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + maint: stop using @acronym{...} in texinfo sources + * doc/coreutils.texi: Remove all uses of @acronym{...}, + per recommendation by Karl Berry. + * doc/perm.texi: Likewise. + * cfg.mk (local-checks-to-skip): Remove exemption, enabling + the @acronym{-prohibiting syntax-check rule. + + tests: don't require @acronym{...} around POSIX + * doc/Makefile.am (check-texinfo): Remove POSIX-checking part. + +2012-08-26 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + df: allow translators to reorder "1K-blocks" header + * src/df.c (get_header): Mark two "%s-%s" strings for translation + and give translators a hint what each is for. + +2012-08-24 Ondrej Oprala <ooprala@redhat.com> + + md5sum, sha*sum: add --tag to output a format indicating the algorithm + The format used is the BSD traditional format which looks like: + MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e + + * NEWS: Add new feature info. + * doc/coreutils.texi (md5sum invocation): Add detailed information + about the new --tag option. + * src/md5sum.c: Add the new --tag option for BSD-style output. + (bsd_split_3): Add ESCAPED_FILENAME parameter. + (print_filename): New function refactored from main(). + (filename_unescape): New function refactored from split_3(). + * tests/misc/md5sum-bsd: Add tests for the new feature. + +2012-08-23 Rob Day <robertkday@gmail.com> + + rm: fix the new --dir (-d) option to work with -i + * src/remove.c (prompt): Hoist the computation of is_empty, since we'll + need it slightly earlier. + Before, this function would arrange to fail with EISDIR when processing + a directory without --recursive (-r). Adjust the condition to exempt + an empty directory when --dir has been specified. + Improve comments. + * tests/rm/d-3: New file, to ensure that rm -d -i dir works. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + * THANKS.in: Update. + Reported by Michael Price in http://bugs.gnu.org/12260 + +2012-08-22 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: correct print_ver_ arguments and add a rule to enforce this + We use print_ver_ to run "PROG --version" for each program under + test. Some tests have been derived from others, while the + argument(s) to print_ver_ have not been adapted. + Add a new cfg.mk rule to prohibit this. + + * cfg.mk (sc_prohibit_test_calls_print_ver_with_irrelevant_argument): + New rule, to prohibit a test script from calling print_env_ for a + program not actually used by that test. + * tests/chown/basic: s/\(print_ver_\) chgrp/\1 chown/ + * tests/cp/acl: s/\(print_ver_\) mv/\1 cp/ + * tests/cp/capability: s/\(print_ver_\) ls/\1 cp/ + * tests/cp/cp-parents: s/(print_ver_\) mv/\1 cp/ + * tests/du/bind-mount-dir-cycle: s/(print_ver_\) rm/\1 du/ + * tests/misc/wc-parallel: s/(print_ver_\) md5sum/\1 wc/ + +2012-08-21 Ondrej Oprala <ooprala@redhat.com> + + du: handle bind-mounted directory cycles gracefully + Before this change, a directory cycle induced by a bind mount + would be treated as a fatal error, i.e., probable disk corruption. + However, such cycles are relatively common, and can be detected + efficiently, so now du emits a descriptive warning and arranges + to exit nonzero. + + * NEWS (Bug fixes): Mention it. + * src/du.c: Include "mountlist.h". + (di_mnt): New global set. + (di_files): Rename global from di_set, now that there are two. + (fill_mount_table): New function. + (hash_ins): Add DI_SET parameter. + (process_file): Look up each dir dev/ino pair in the new set. + (main): Allocate, initialize, and free the new set. + * tests/du/bind-mount-dir-cycle: Add a test for the fix. + * tests/Makefile.am (TESTS): Add it. + * THANKS.in: Update. + This implements the proposal in http://bugs.gnu.org/11844. + Originally reported in http://bugs.debian.org/563254 by Alan Jenkins + and more recently as http://bugzilla.redhat.com/836557 + + Improved by: Jim Meyering + +2012-08-20 Jim Meyering <meyering@redhat.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.19 + * NEWS: Record release date. + +2012-08-19 Paul Eggert <eggert@cs.ucla.edu> + + tests: port df/no-mtab-status to Solaris + * tests/df/no-mtab-status: Include <mntent.h> in test program, so + that the getmntent hack compilation fails on Solaris, as it + should, since it's not compatible with Solaris. Reported by + Stefano Lattarini in <http://bugs.gnu.org/12225>. + +2012-08-19 Jim Meyering <meyering@redhat.com> + + tests: avoid split/filter test failure on very low-mem system + * tests/split/filter: Use xz -1 when compressing, to minimize + memory usage. Otherwise, xz could fail due to insufficient + virtual memory on a system with very little free memory. + +2012-08-18 Jim Meyering <meyering@redhat.com> + + tests: trigger the sort -u free-memory-read bug + * tests/misc/sort-u-FMR: New file. + * tests/Makefile.am (TESTS): Add it. + * tests/misc/sort: Add the test here, too. + * NEWS (Bug fixes): Mention it. + + tests: wrap the valgrind-requiring assertion in a function + * tests/init.cfg (require_valgrind_): New function... + * tests/misc/sort-stale-thread-mem: ...extracted from here. + +2012-08-18 Paul Eggert <eggert@cs.ucla.edu> + + sort: simpler fix for sort -u data-loss bug, and for a FMR bug + This also fixes a free-memory-read (FMR) bug: when fillbuf's realloc + of buf->buf frees the buffer into which saved_line.text points, + the processing of that just-read longer line includes comparison + against the saved line in freed memory. + * src/sort.c (overlap): Remove. + (fillbuf): Do not try to copy saved lines, as that is too risky + in the presence of parallelism, reallocated buffers, etc. + (sort): Invalidate any saved line before sorting a new batch. + +2012-08-17 Jim Meyering <meyering@redhat.com> + + sort: sort --unique (-u) could cause data loss + sort -u could omit one or more lines of expected output. + This bug arose because sort recorded the most recently printed line via + reference, and if you were unlucky, the storage for that line would be + reused (overwritten) as additional input was read into memory. If you + were doubly unlucky, the new value of the "saved" line would not only + match the very next line, but if that next line were also the first in + a series of identical, not-yet-printed lines, then the corrupted "saved" + line value would result in the omission of all matching lines. + + * src/sort.c (saved_line): New static/global, renamed and moved from... + (write_unique): ...here. Old name was "saved", which was too generic + for its new role as file-scoped global. + (fillbuf): With --unique, when we're about to read into a buffer that + overlaps the saved "preceding" line (saved_line), copy the line's .text + member to a realloc'd-as-needed temporary buffer and adjust the line's + key-defining members if they're set. + (overlap): New function. + * tests/misc/sort: New tests. + * NEWS (Bug fixes): Mention it. + * THANKS.in: Update. + Bug introduced via commit v8.5-89-g9face83. + Reported by Rasmus Borup Hansen in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/23173/focus=24647 + +2012-08-16 Jim Meyering <meyering@redhat.com> + + tests: reverse args in Coreutils.pm-invoked diff, for consistency + * tests/Coreutils.pm (_compare_files): Reverse diff arguments so + that we invoke diff -c $expected $actual, which is consistent with + how init.sh-using tests invoke "compare exp out". + + maint: correct a stale comment in sort.c + * src/sort.c (fillbuf): Fix comment typo. x2nrealloc no longer + doubles the size of its input buffer. + + maint: fix comment grammar to placate make syntax-check + * src/remove.c (rm_fts): s/can not/cannot/ + +2012-08-14 Krzysztof Goj <krzysztof.goj@gmail.com> + + rm: new option --dir (-d) to remove empty directories + Add new option to rm (-d/--dir), which allows removal of + empty directories, while still safely disallowing removal + of non-empty ones. + + This improves compatibility with Mac OS X and BSD systems, + which honor the -d option. + + * src/remove.c (rm_fts): Remove empty directories when requested. + * src/remove.h (rm_options) [remove_empty_directories]: New member. + * src/rm.c (long_opts, usage, main): Update usage and option parsing. + (rm_option_init): Initialize the new member. + * src/mv.c (rm_option_init): Initialize the new member. + * tests/rm/d-1: New test case - successfully delete empty dir. + * tests/rm/d-2: New test case - refuse to delete nonempty dir. + * tests/Makefile.am (TESTS): Add them. + +2012-08-14 Bernhard Voelker <mail@bernhard-voelker.de> + + df: fail when the mount list is required but cannot be read + * src/df.c (main): Add conditions to fail when the mount list cannot + be read: this includes the cases when a file name argument is given + and any of -a, -l, -t or -x is used. + * doc/coreutils.texi: Document the additional error conditions. + * tests/df/no-mtab-status: Add a new test. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + +2012-08-12 Jim Meyering <meyering@redhat.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.18 + * NEWS: Record release date. + +2012-08-08 Pádraig Brady <P@draigBrady.com> + + tests: fix validation of local file systems + * tests/init.cfg (require_mount_list_): A new function + to ensure we can read the list of file systems. + (require_local_dir_): Call the above function, as otherwise + the check is invalid. + * tests/df/total-unprocessed: Ensure df can read the + list of mounted file systems so that --local can be honored. + +2012-08-06 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tests: printf-surprise: avoid unwarranted failure on FreeBSD 9.0 + * tests/misc/printf-surprise: A VM size of 10,000KiB was too + little in which to run "env printf ..." on FreeBSD 9.0-p3. + Increase it to 15,000. + +2012-08-05 Jim Meyering <meyering@redhat.com> + + build: avoid sort link failure on Solaris 10 + * src/Makefile.am (sort_LDADD): Sort uses euidaccess, which may require + whatever library configure deemed necessary to resolve the eaccess + function, but no one told sort to link with that library. + (sort_LDADD): Add $(LIB_EACCESS). + +2012-08-04 Bernhard Voelker <mail@bernhard-voelker.de> + + df: fix exit code and error messages with --total + When the combination of the file system options with given files or + devices does not lead to output, "df --total" would exit successfully + although it should not. + + Examples: + $ df --total --type=xfs / # when / is not an XFS file system + $ df --total --local -t nfs DIR # nfs is remote per se ... + $ df --total -t qwerty /dev/sdb5 # typo in file system type + + Furthermore, "df --total" would not print the error message "no file + systems processed" when the file argument does not exist or is otherwise + not accessible. + + Example: + $ df --total __not_exist__ + + These 2 bugs are present since --total was added by commit + v6.12-166-gea2887b. + + * src/df.c (get_dev): Do not set file_systems_processed to true when + force_fsu is true, i.e. when the row for the "total" line is processed. + (main): Don't print totals unless we've processed a file system. + Also only print the "no FS processed" message if there was no + preceding diagnostic. + * tests/df/total-unprocessed: Add a new test. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + + Improved-by: Jim Meyering + +2012-08-04 Jim Meyering <meyering@redhat.com> + + truncate: don't leak a file descriptor with --ref=PIPE + * src/truncate.c (main): For a user who makes the mistake of + using a non-seekable file as a reference for the desired length, + truncate would open that file, attempt to seek to its end, but + upon seek failure would neglect to close the file descriptor. + Close the file descriptor even when lseek fails. + In addition, ignore failure to close that reference FD, since as + long as the lseek succeeds, a close failure doesn't matter. + Coverity spotted the potential FD leak. + + Improved-by: Pádraig Brady. + +2012-08-04 Jim Meyering <meyering@redhat.com> + + tests: avoid FP ulimit failure with valgrind-wrapped tools + * tests/init.cfg (require_ulimit_): Raise VM limit from 10MiB to + 20MiB, to accommodate overhead of a valgrind-wrapped date program. + Also declare this function's local variables "local". + +2012-08-04 Jim Meyering <meyering@redhat.com> + + split: plug nominal leaks + * src/split.c (lines_rr) [IF_LINT]: Plug a harmless leak. + (main) [IF_LINT]: Free a usually-small (~70KB) buffer + just before exit, mainly to take this off the radar of + leak-detecting tools. + + Improved-by: Pádraig Brady. + +2012-08-03 Jim Meyering <meyering@redhat.com> + + tail: avoid rare error-path FD leak + * src/tail.c (tail_forever): Close FD to avoid leak after a + failed fstat. + +2012-07-27 Jim Meyering <meyering@redhat.com> + + maint: refresh stale local gnulib patch files + We carry local adjustments for a few gnulib modules via the + patches in gl/. Nearly all of those patches had become stale + due to evolution of the originals in gnulib. + + To refresh them, first make sure you have no local changes in gl/ + or in the gnulib submodule, then run "make refresh-gnulib-patches". + +2012-07-25 Jim Meyering <meyering@redhat.com> + + tail: avoid misleading diagnostic upon fstat failure + * src/tail.c (check_fspec): Save fstat-induced errno *before* + calling close_fd, not after. Otherwise, the close could well + clobber the global errno, making tail print an invalid diagnostic. + This could happen only with tail -f, and even then, only when + a valid file descriptor were to provoke fstat failure. + +2012-07-23 Pádraig Brady <P@draigBrady.com> + + tests: add a test for a previously fixed output format bug in join + Add a test and NEWS entry for a bug inadvertently fixed in + a refactoring in commit v8.9-32-gd4db0cb + + * tests/misc/join (v2-format): Add a new test. + * THANKS.in: Add the reporter. + * NEWS: Mention the old bug. + * cfg.mk (old_NEWS_hash): Update. + + Reported-by: Jean-Pierre Tosoni + +2012-07-22 Pádraig Brady <P@draigBrady.com> + + doc: mention gethostid(3) in hostid(1) + * man/hostid.x: Add gethostid(3) to SEE ALSO section. + Addresses http://bugs.gnu.org/12023 + +2012-07-22 Erik Auerswald <auerswal@unix-ag.uni-kl.de> + + doc: mention uniq(1) in sort(1) man-page and vice versa + * man/sort.x: Add SEE ALSO section with entry uniq(1). + * man/uniq.x: Add sort(1) to SEE ALSO section. + +2012-07-21 Jim Meyering <meyering@redhat.com> + + maint: stzncpy: restrict pointer parameters + * src/system.h (stzncpy): Add "restrict" attribute to each pointer + parameter and note in the comment that the buffers must not overlap. + +2012-07-20 Joachim Schmitz <jojo@schmitz-digital.de> + + maint: rm: remove two more unused static inline functions + * src/remove.c (cache_stat_ok, is_nondir_lstat): Remove unused + functions. + +2012-07-20 Jim Meyering <meyering@redhat.com> + + maint: adjust exemption to track renamed test script + * cfg.mk (exclude_file_name_regexp--sc_file_system): Sync this + exemption regexp to match renamed tests/df/df-P. This avoids + a "make syntax-check" failure. + +2012-07-20 Joachim Schmitz <jojo@schmitz-digital.de> (tiny change) + + maint: rm: remove unused static-inlined functions + * src/remove.c (cache_statted, is_dir_lstat): Remove unused + static-inlined functions. + * THANKS.in: Remove my name from this list, now that (with this + commit) it is included automatically. + +2012-07-18 Andrew D Warshall <warshall@99main.com> + + tests: fiemap-perf: avoid a false failure on ext2 + * tests/cp/fiemap-perf: Skip the test on ext2 file systems, + as we do for ext3. Also skip the test if we can't create + a 1TiB file, which might not be supported on certain file systems. + +2012-07-16 Pádraig Brady <P@draigBrady.com> + + maint: move two df tests from tests/misc to tests/df + * test/Makefile.am: Reference the moved tests. + +2012-07-16 Pádraig Brady <P@draigBrady.com> + + df: don't output control characters in a mount point name + It's awkward to read and problematic for scripts when + control characters like '\n' are output. + + Note other fields are already handled with mbsalign, + which converts non printable chars to the replacement char. + A caveat to note with that, is the replacement char takes + a place in the field and so possibly truncates the field + if it was the widest field in the records. + + Note a more general replacement function, that + handles all printable, or non white space characters, + would require more sophisticated support for various + encodings, and the complexity vs benefit was not + deemed beneficial enough at present. + Perhaps in future a more general replacement function + could be shared between the various utilities. + + Note <space> is unaffected in any field, + which could impact scripts processing the output. + However any of the number fields at least could have + spaces considering `LANG=fr_FR df -B\'1`, so it's + probably best to leave spaces, which also allows + scripts to handle mount points with spaces without change. + + * src/df.c (hide_problematic_chars): Replace control chars with '?'. + * tests/df/problematic-chars: Add a new root only test. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + +2012-07-15 Jim Meyering <meyering@redhat.com> + + pinky,who: fix bug in latest change + * src/system.h (stzncpy): New function. + * src/pinky.c (print_entry): Use stzncpy, not stpncpy. + The latter does not NUL-terminate. I assumed that strncpy was + the only function with such a horrible API. Today I learned that + stpncpy also may not NUL-terminate its result. + The bugs were introduced in commit v8.17-48-gf79263d. + * src/who.c (print_user): Likewise. + Thanks to Erik Auerswald for spotting my error. + + build: update gnulib submodule to latest + + maint: remove unwarranted uses of strncpy + * src/pinky.c (print_entry): Remove unwarranted uses of strncpy. + Instead, use stpcpy and stpncpy. + * src/who.c (print_user): Likewise. + * cfg.mk: Remove strncpy exemptions. + + build: shred.c: avoid i686-specific gcc -Wstrict-overflow warning + * src/shred.c: Avoid gcc -Wstrict-overflow warning. + Addresses http://bugs.gnu.org/11927 + +2012-07-13 Bruno Haible <bruno@clisp.org> + + doc: clarify meaning of '-parodd' in stty help + * src/stty.c (usage): Disambiguate explanation of -parodd. + * THANKS.in: Add reporter. + Reported by Michael Stummvoll + +2012-07-12 Pádraig Brady <P@draigBrady.com> + + doc: mention the improved sort memory allocation + * NEWS: Mention the improvement. + +2012-07-12 Stefano Lattarini <stefano.lattarini@gmail.com> + + doc: fix errors and warnings with Texinfo 5 + Or rather, with the development version 4.13.90, which will eventually + become Texinfo 5.0. + + * doc/coreutils.texi: Use '@item' instead of '@itemx' in several places, + as Texinfo 5 refuses to process an '@itemx' that is not preceded by an + '@item'. Ensure that node extended names in menus and sectioning are + consistent, and that ordering and presence of nodes in menus and in the + actual text are consistent as well. + + Fixes http://bugs.gnu.org/11828 + +2012-07-11 Bernhard Voelker <mail@bernhard-voelker.de> + + df: warn if soon-to-be-removed --megabyte option is used + * src/df.c (MEGABYTES_OPTION): Add enum and mark it for removal + in August 2013. + (long_options): Use MEGABYTES_OPTION for --megabytes option. + (main): Add a case for it and issue a deprecation warning if + the long form is used. Document the short -m option to + exist only for BSD compatibility. + +2012-07-11 Paul Eggert <eggert@cs.ucla.edu> + + sort: by default, do not exceed 3/4 of physical memory + * src/sort.c (default_sort_size): Do not exceed 3/4 of total memory. + See Jeff Janes's bug report in + <http://lists.gnu.org/archive/html/coreutils/2012-06/msg00018.html>. + +2012-07-06 Pádraig Brady <P@draigBrady.com> + + tests: sort-merge-fdlimit: reduce the limit by one + * tests/misc/sort-merge-fdlimit: As a consequence of commit + v8.17-34-g59daf05, we can reduce the descriptor limit by one. + +2012-07-06 Paul Eggert <eggert@cs.ucla.edu> + + doc: document leap seconds better + * doc/coreutils.texi (touch invocation, Time conversion specifiers) + (Options for date, Examples of date): Index "leap seconds" and + improve their documentation a bit. + + doc: fix spacing + * doc/coreutils.texi: Use right amount of spacing after punctuation. + +2012-07-04 Jim Meyering <meyering@redhat.com> + + date: fails to diagnose invalid input + date -d "$(printf '\xb0')" would print 00:00:00 with today's date + rather than diagnosing the invalid input. Now it reports this: + date: invalid date '\260' + * gnulib: Update submodule to latest for fixed parse-datetime.y. + * tests/misc/date [invalid-high-bit-set]: New test. + * NEWS (Bug fixes): Mention it. + * bootstrap, tests/init.sh: Also update to latest. + Reported by Peter Evans in http://bugs.gnu.org/11843 + +2012-07-03 Jim Meyering <meyering@redhat.com> + + maint: add syntax-check rule to help avoid misuse of EXIT_FAILURE + * cfg.mk (sc_some_programs_must_avoid_exit_failure): New rule, + to help us avoid using EXIT_FAILURE in programs like sort, ls, nohup, + timeout, env, etc. that use different exit codes in many cases. + + maint: fix minor bugs in helper program, setuidgid + * src/setuidgid.c (main): Fix two error-before-usage calls not to exit. + Exit with status SETUIDGID_FAILURE (not EXIT_FAILURE) consistently. + +2012-07-03 Paul Eggert <eggert@cs.ucla.edu> + + sort: fix exit-status typo + * src/sort.c (stream_open): EXIT_FAILURE -> SORT_FAILURE. + Suggested by Pádraig Brady in <http://bugs.gnu.org/11816#34>. + + sort: simplify -o handling to avoid fdopen, assert + * src/sort.c (outfd): Remove. All uses replaced by STDOUT_FILENO. + (stream_open): When writing, use stdout rather than fdopen. + (move_fd_or_die): Renamed from dup2_or_die, with the added functionality + of closing its first argument. All uses changed. + (avoid_trashing_input): Special case for !outfile no longer needed. + (check_output): Arrange for standard output to go to the file, + rather than storing the fd in outfd. + +2012-07-02 Pádraig Brady <P@draigBrady.com> + + sort: avoid redundant processing with inaccessible inputs or output + * src/sort.c (check_inputs): A new function to verify all inputs + are accessible before further processing. + (check_output): A new function to open or create a specified + output file, before futher processing. + (stream_open): Adjust to truncating the previously opened + output file rather than opening directly. + (avoid_trashing_input): Optimize to stat the output file + descriptor, rather than the file name. + (main): Call the new functions to check accessibility of + inputs and output, before processing starts. + * tests/misc/sort: Adjust to the changed error message. + * tests/misc/sort-merge-fdlimit: Account for the earlier opened + file descriptor of the specified output file. + * tests/misc/sort-exit-early: A new test to exercise the improvements. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the improvement. + + Suggested-by: Bernhard Voelker + +2012-07-02 Pádraig Brady <P@draigBrady.com> + + maint: sc_prohibit_fail_0: update a stale comment + * cfg.mk (sc_prohibit_fail_0): Following on from + commit v8.0-79-g71c2f88, update the comment to match. + + maint: avoid a -Wunsed-but-set warning on some systems + * src/stty.c (main): Mark speed_was_set as possibly unused, + as is the case when CIBAUD is undefined (on ppc64 GNU/Linux + for example). + Reported-by: Stefano Lattarini + +2012-06-30 Jim Meyering <meyering@redhat.com> + + maint: avoid false-positive syntax-check failure due to fail=0 in .texi + * cfg.mk (exclude_file_name_regexp--sc_prohibit_fail_0): Exempt + all .texi files. + + stat,tail: recognize new file system type: aufs + * src/stat.c (human_fstype) [__linux__]: Add a 'case' for the new + remote file system type: aufs (0x61756673). + * NEWS (New features): Mention stat -f. + (Bug fixes): Mention it for tail -f. + Reported by Michael Mol in http://bugs.gnu.org/11823 + +2012-06-30 Jim Meyering <meyering@redhat.com> + + doc: improve sample backup script + * doc/coreutils.texi (cp invocation): Make the backup script exit + with an accurate reflection of any failure. + Also, add --preserve=all. + + Improved-by: Bernhard Voelker + +2012-06-26 Pádraig Brady <P@draigBrady.com> + + maint: avoid a static analysis warning in csplit + The Canalyze static code analyzer correctly surmised + that there is a use-after-free bug in free_buffer() + at the line "struct line *n = l->next", if that + function is called multiple times. + + This is not a runtime issue since a list of lines + will not be present in the !lines_found case. + + * src/csplit.c (free_buffer): Set list head to NULL so + that this function can be called multiple times. + (load_buffer): Remove a redundant call to free_buffer(). + + Reported-by: Xu Zhongxing + +2012-06-22 Bernhard Voelker <mail@bernhard-voelker.de> + + doc: document multiplier for dd number options like count=N + * src/dd.c (usage): Add "N" to the description of multipliers. + * doc/coreutils.texi (dd invocation): Likewise. + +2012-06-22 Pádraig Brady <P@draigBrady.com> + + split: ensure output doesn't overwrite input + * src/split.c (create): Check if output file is the + same inode as the input file. + * tests/split/guard-input: New test case. + * tests/Makefile.am: Reference new test case. + * NEWS: Mention the fix. + + Improved-by: Jim Meyering + Reported-by: François Pinard + +2012-06-22 Pádraig Brady <P@draigBrady.com> + + maint: refactor common mode bits used to create files + * src/system.h (MODE_RW_UGO): The new refactored define (666). + * src/mkfifo.c: Use the new define. + * src/mknod.c: Likewise. + * src/split.c: Likewise. + * src/system.h: Likewise. + * src/touch.c: Likewise. + * src/truncate.c: Likewise. + + Suggested-by: Jim Meyering + +2012-06-22 Pádraig Brady <P@draigBrady.com> + + maint: suppress echoing of sc_THANKS_in_duplicates implementation + * cfg.mk (sc_THANKS_in_duplicates): Suppress the echoing of these + commands run during `make syntax-check` + +2012-06-20 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: sort: style adjustment to help clarify size determination + * src/sort.c (default_sort_size): Move physmem code "down" to first use. + +2012-06-12 Jim Meyering <meyering@redhat.com> + + stty: portability: accommodate CIL + * src/stty.c (main): Declare locals "mode" and "new_mode" to be static + to ensure that each is initialized to zero, *including* all padding. + While gcc clears padding of a local automatic initialized to "{ 0, }", + CIL does not, and the C99 standard is not clear on this issue. + Reported by Edward Schwartz. See http://bugs.gnu.org/11675 for details. + +2012-06-10 Sami Kerola <kerolasa@iki.fi> + + maint: remove su testing artifact + * tests/misc/help-version: Remove expected su exit code. + +2012-06-10 Jim Meyering <meyering@redhat.com> + + build: update gnulib to latest; correct comment grammar + * tests/misc/help-version: Fix comment grammar: + s/all these/all of these/ + * gl/lib/tempname.c.diff: Likewise. + + maint: migrate strncpy-prohibiting rule to gnulib + * cfg.mk (sc_prohibit_strncpy): Remove rule. + Now it's in gnulib. + + maint: prohibit use of strncpy + * cfg.mk (sc_prohibit_strncpy): New syntax-check rule. + Exempt pinky.c and who.c, at least for now. + +2012-06-06 Jim Meyering <meyering@redhat.com> + + su: remove program (util-linux is now the best source for it) + * README: Omit "su" from list of programs. + * src/su.c: Remove file. + * src/Makefile.am: Remove su-related rules and variables. + * tests/misc/su-fail: Remove test. + * tests/Makefile.am (TESTS): Remove misc/su-fail. + * tests/misc/invalid-opt: Remove su-related code. + * src/.gitignore: Remove su. + * man/su.x: Remove file. + * man/Makefile.am (su.1): Remove rule. + * po/POTFILES.in: Remove su.c from the list. + * TODO: Remove ancient entry. + * NEWS (Changes in behavior): Mention it. + * doc/coreutils.texi: Remove su-related description. + * AUTHORS: Remove su. + * m4/lib-check.m4 (cu_LIB_CHECK): Remove file/macro. + * configure.ac: Remove su-related code and sole use of cu_LIB_CHECK. + * scripts/git-hooks/commit-msg: Remove su from this list, too. + + maint: detect a new type of duplicate in THANKS.in + * cfg.mk (sc_THANKS_in_duplicates): New rule. + +2012-06-05 Jim Meyering <meyering@redhat.com> + + maint: mark new diagnostic for translation + * src/head.c (elide_tail_lines_seekable): Mark new diagnostic. + I will look at the results of "make syntax-check", I will look... + +2012-06-05 Jim Meyering <meyering@redhat.com> + + head: with --lines=-N (-n-N) reset file pointer on seekable input + * src/head.c (elide_tail_lines_seekable): Reset file pointer + after printing up to an end-relative line-counted offset. + Anoop Sharma reported the problem and suggested the fix. + * tests/misc/head-pos: Add coverage via a very similar, existing test. + Also add coverage for a previously untested block of code. + * tests/misc/head-elide-tail ($READ_BUFSIZE): Update to 8192, to + match the value of BUFSIZ I see today on Fedora 17/x86_64 (unrelated + to this fix). + * NEWS (Bug fixes): Mention it. + + Improved-by: Pádraig Brady + +2012-06-01 Jim Meyering <meyering@redhat.com> + + stat,tail: recognize new file system type: panfs + * src/stat.c (human_fstype) [__linux__]: Add a 'case' for the new + remote file system type: panfs (0xAAD7AAEA). + * NEWS (New features): Mention stat -f. + (Bug fixes): Mention it for tail -f. + Reported by Travis Gummels in http://bugzilla.redhat.com/827199 + +2012-05-31 Jim Meyering <meyering@redhat.com> + + maint: fix typos in test comments and old ChangeLog files + Culprits identified and fixed automatically using these commands: + git ls-files|misspellings -f -|perl -nl \ + -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \ + -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\ + -e 'print "sed -i $q${n}s!$l!$r!$q $file"' | bash + using http://github.com/lyda/misspell-check + * old/fileutils/ChangeLog: Fix typos. + * old/textutils/ChangeLog: Likewise. + * tests/misc/truncate-fail-diag: Likewise. + +2012-05-28 Pádraig Brady <P@draigBrady.com> + + cksum: line-buffer the printed checksums + This utility was inadvertently omitted from commit v8.0-34-g710fe41 + * src/cksum.c (main): Set stdout to line buffered mode, to ensure + parallel running instances don't intersperse their output. + * NEWS: Mention the fix. + * THANKS.in: Add Anoop. + Reported by Anoop Sharma. + +2012-05-21 Jim Meyering <meyering@redhat.com> + + maint: remove comment that suggested to remove support for mktemp -V + * src/mktemp.c (main): Don't suggest to remove support for -V, an + undocumented alias for --version, since that would introduce a + gratuitous incompatibility with the original mktemp program. + +2012-05-21 Mike Frysinger <vapier@gentoo.org> + + dircolors: add st/st-256color terminal types + See http://st.suckless.org/ + * src/dircolors.hin: Add st and st-256color. + Reported-by: Jeroen Roovers <jer@gentoo.org>, via + Mike Frysinger <vapier@gentoo.org> in http://bugs.gnu.org/11498 + +2012-05-20 Jim Meyering <meyering@redhat.com> + + id,groups: use gidtostr/uidtostr to avoid casts + * src/id.c (gidtostr, uidtostr): Define macros. + (gidtostr_ptr, uidtostr_ptr): Define safer functions. + Use gidtostr and uidtostr to print GID and UID without + need/risk of casts. + * src/group-list.c: Likewise. + +2012-05-16 Jim Meyering <meyering@redhat.com> + + tests: use $AWK, not awk + * tests/cp/sparse-fiemap: Don't hard-code "awk". Use $AWK. + * tests/init.cfg: Likewise. + * tests/misc/sort-rand: Likewise. + + maint: tell xgettext that fputs arg "93% of..." is not a C format string + * src/fmt.c (usage): Add a comment to tell + xgettext that the "% o" in fputs argument string of "...93% of..." + is not a C format string. Reported by Toomas Soome, Göran Uddeborg, + Petr Pisar, Primoz PETERLIN and Chusslove Illich via + http://bugs.gnu.org/11470 + + maint: add assertions to placate static analysis tools + A static analysis tool (http://labs.oracle.com/projects/parfait/) + produced some false positive diagnostics. Add assertions to help + it understand that the code is correct. + * src/stty.c: Include <assert.h>. + (display_changed): Add an assertion to placate parfait. + (display_all): Likewise. + * src/sort.c: Include <assert.h>. + (main): Add an assertion to placate parfait. + * src/fmt.c: Include <assert.h>. + (get_paragraph): Add an assertion to placate parfait. + +2012-05-16 Pádraig Brady <P@draigBrady.com> + + stat: report the correct block size for file system usage + struct statfs has the f_frsize member since Linux 2.6, + so use that rather than f_bsize which can be different. + Note the related df change mentioned in NEWS is handled + in gnulib by using statvfs() rather than statfs() + on Linux > 2.6.36 (where statvfs doesn't hang) and the + same method as stat for Linux 2.6 kernels earlier than that. + stat(1) doesn't use statvfs() on GNU/Linux as the f_type + member isn't available there. + Note the change to not use statvfs() on GNU/Linux was introduced + in gnulib commit eda39b8 16-08-2003. + + * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Check for the f_frsize + member in the statfs structure. + * src/stat.c: Use (struct statfs).f_frsize if available. + * NEWS (Bug fixes): Mention this stat fix, and the related df fix + coming in the next gnulib update. + * THANKS.in: Add Nikolaus. + + Reported and Tested by Nikolaus Rath + +2012-05-12 Jim Meyering <meyering@redhat.com> + + ls: color each symlink-to-relative-name in / properly + In order for ls --color to color each symlink, it must form the name + of each referent and then stat it to see if the link is dangling, to + a directory, to a file, etc. When the symlink is to a relative name, + ls must concatenate the starting directory name and that relative name. + When, in addition, the starting directory was "/" or "/some-name", + the result was ill-formed, and the subsequent stat would usually fail, + making the caller color it as a dangling symlink. + * src/ls.c (make_link_name): Don't botch the case in which + dir_name(NAME) == "/" and LINKNAME is relative. + * tests/ls/root-rel-symlink-color: New file. Test for the above. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + Reported by Mike Frysinger in http://bugs.gnu.org/11453 + Bug introduced by commit v8.16-23-gbcb9078. + +2012-05-10 Jim Meyering <meyering@redhat.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.17 + * NEWS: Record release date. + + 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. + + 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. + + 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 Paul Eggert <eggert@cs.ucla.edu> + + 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. + + 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-08 Jim Meyering <meyering@redhat.com> + + 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 + + build: update gnulib submodule to latest; also bootstrap and init.sh + * bootstrap: Update from gnulib. + * tests/init.sh: Likewise. + +2012-05-08 Pádraig Brady <P@draigBrady.com> + + 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 Jim Meyering <meyering@redhat.com> + + maint: new function: usable_st_size + +2012-05-08 Kevin Lyda <kevin@ie.suberic.net> + + 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-07 Jim Meyering <meyering@redhat.com> + + tests: avoid LD_PRELOAD lookup error for dlsym + * tests/cp/nfs-removal-race: Link with -ldl. + + 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 + + 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-04 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + 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-02 Pádraig Brady <P@draigBrady.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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-04-30 Pádraig Brady <P@draigBrady.com> + + 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-27 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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 Jim Meyering <meyering@redhat.com> + + 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:x:\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-22 Stefano Lattarini <stefano.lattarini@gmail.com> + + 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-19 Jim Meyering <meyering@redhat.com> + + doc: fix a grammar nit + * doc/coreutils.texi (split invocation): s/are/is/ in "P or Q are". + +2012-04-19 Bernhard Voelker <mail@bernhard-voelker.de> + + 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. + + 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 Jim Meyering <meyering@redhat.com> + + maint: tac: use memcpy, not strcpy + * src/tac.c (main): Use memcpy, not strcpy, since we know the length. + + 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. + + 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. + + doc: tweak README-hacking + * README-hacking: Don't say "...on your hard drive". + That is unnecessary, and now, borderline anachronistic. + +2012-04-17 Jim Meyering <meyering@redhat.com> + + doc: use @xref{... only at start of a sentence + * doc/coreutils.texi: Correct many misuses of @xref. + +2012-04-16 Jim Meyering <meyering@redhat.com> + + 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-14 Karl Berry <karl@freefriends.org> + + doc: remove a little direntry redundancy + * doc/coreutils.texi (Basics direntry): Remove 3rd "Common options." + +2012-04-12 Bruce Korb <bkorb@gnu.org> + + 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 Pádraig Brady <P@draigBrady.com> + + 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-04 Andreas Schwab <schwab@linux-m68k.org> + + 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 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + 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. + + tests: new syntax-check rule to prohibit use of `...` in tests/ + * cfg.mk (sc_prohibit_test_backticks): New rule. Exempt 3 files. + + 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. + + 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 Jim Meyering <meyering@redhat.com> + + 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-03 Jim Meyering <meyering@redhat.com> + + tests: convert one `...` expression manually + * tests/ls/stat-vs-dirent: Manually convert `(...)` to $(...), + to avoid automatically producing an invalid result. + + tests: fix quoting bug in misc/nohup + * tests/misc/nohup: Fix invalid quoting. + + 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. + + 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-03-28 Paul Eggert <eggert@cs.ucla.edu> + + chmod: undo previous change + It's not portable; see <http://bugs.gnu.org/11108#17>. + * src/chmod.c, NEWS: Undo previous change. + + 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-26 Jim Meyering <meyering@redhat.com> + + 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. + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.16 + * NEWS: Record release date. + + tests: work around F17-valgrind sort-stale-thread-mem failure + * tests/misc/sort-stale-thread-mem: Skip upon known failure. + + 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-23 Jim Meyering <meyering@redhat.com> + + 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. + + 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-22 Pádraig Brady <P@draigBrady.com> + + 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 Harald Hoyer <harald@redhat.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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-21 Jim Meyering <meyering@redhat.com> + + 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. + + build: update gnulib submodule to latest + + 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-20 Eric Blake <eblake@redhat.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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. + + 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 Eric Blake <eblake@redhat.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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-17 Pádraig Brady <P@draigBrady.com> + + tests: fix sort-discrim to work without GMP + * tests/misc/sort-discrim: The expr limit is intmax_t without GMP. + +2012-03-16 Pádraig Brady <P@draigBrady.com> + + 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-15 Eric Blake <eblake@redhat.com> + + 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 Eric Blake <eblake@redhat.com> + + 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 Eric Blake <eblake@redhat.com> + + 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 Eric Blake <eblake@redhat.com> + + 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-14 Eric Blake <eblake@redhat.com> + + 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 Paul Eggert <eggert@cs.ucla.edu> + Drew Kutilek <dkutilek@ucla.edu> + James Wendt <jwendt@cs.ucla.edu> + + 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. + +2012-03-10 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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. + + 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-09 Jérémy Compostella <jeremy.compostella@gmail.com> + + doc: add missing documentation for basename -z + doc/coreutils.texi (basename invocation): Add -z option documentation. + +2012-03-09 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: fix a version number typo in NEWS + * NEWS: s/8.14/8.15/ + +2012-03-09 Paul Eggert <eggert@cs.ucla.edu> + + 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. + + build: update gnulib submodule to latest + +2012-03-08 Jim Meyering <meyering@redhat.com> + + 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-07 Jim Meyering <meyering@redhat.com> + + 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 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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-06 Pádraig Brady <P@draigBrady.com> + + 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-02 Pádraig Brady <P@draigBrady.com> + + 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-02-29 Rodrigo Campos <rodrigo@sdfg.com.ar> + + 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 Bernhard Voelker <mail@bernhard-voelker.de> + + 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 Roman Rybalko <devel@romanr.info> + + 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-27 Jérémy Compostella <jeremy.compostella@gmail.com> + + doc: fix a wrong option reference in split invocation + * doc/coreutils.texi (split invocation): replace `-r' reference with + `-nr/n'. + +2012-02-26 Jim Meyering <meyering@redhat.com> + + 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 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: remove unnecessary use of -lc + * tests/ls/getxattr-speedup: Remove unneeded use of -lc. + +2012-02-25 Paul Eggert <eggert@cs.ucla.edu> + + 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-24 Jim Meyering <meyering@redhat.com> + + doc: clarify a comment in system.h + * src/system.h (STRNCMP_LIT): Clarify comment. + Suggested by Bruno Haible. + +2012-02-20 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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-19 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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-18 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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 Jim Meyering <meyering@redhat.com> + + tests: test for ls speed-up + * tests/ls/getxattr-speedup: New test. + * tests/Makefile.am (TESTS): Add it. + Improved-by: Bernhard Voelker + + 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. + + 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 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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-17 Pádraig Brady <P@draigBrady.com> + + doc: fix a typo about seek_bytes in NEWS + * NEWS: s/count_bytes/seek_bytes/2 + +2012-02-16 Bernhard Voelker <mail@bernhard-voelker.de> + + 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-13 Pádraig Brady <P@draigBrady.com> + + 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-12 Jérémy Compostella <jeremy.compostella@gmail.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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-06 Jérémy Compostella <jeremy.compostella@gmail.com> + + maint: add braces as requested by HACKING coding standard + * src/dd.c (dd_copy): Braces were missing for this do/while statement. + +2012-01-31 Pádraig Brady <P@draigBrady.com> + + 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-30 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + build: update gnulib, for syntax-check vs canonicalize fix + +2012-01-27 Jim Meyering <meyering@redhat.com> + + maint: use single copyright year range + Run "make update-copyright". + + 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. + + 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-26 Pádraig Brady <P@draigBrady.com> + + maint: remove some redundant automake _SOURCES + * src/Makefile.am: Remove auto generated entries. + +2012-01-25 Pádraig Brady <P@draigBrady.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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 Pádraig Brady <P@draigBrady.com> + + maint: use the standard require_perl_ function + * tests/cp/sparse-fiemap: Don't use a separate check. + + 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-23 Jim Meyering <meyering@redhat.com> + + build: update gnulib to latest, for test warning fixes + See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29810 + for details. + + 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-22 Paul Eggert <eggert@cs.ucla.edu> + + 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-20 Pádraig Brady <P@draigBrady.com> + + 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-14 Jim Meyering <meyering@redhat.com> + + 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-11 Pádraig Brady <P@draigBrady.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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-09 Jim Meyering <meyering@redhat.com> + + 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 Jim Meyering <meyering@redhat.com> + + maint: src/*.[ch]: convert more `...' to '...' + Run this (twice): + git grep -E -l '`.+'\' src/*.[ch] \ + |xargs perl -pi -e 's/`(.+?'\'')/'\''$1/' + + maint: src/*.c: change remaining quotes (without embedded spaces) + Run this (twice): + git grep -E -l '`[^ ]+'\' src/*.c \ + |xargs perl -pi -e 's/`([^ ]+'\'')/'\''$1/' + + 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/' + + 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/mv/part-hardlink: Likewise. - * tests/mv/part-rename: Likewise. - * tests/mv/part-symlink: Likewise. - * tests/mv/partition-perm: Likewise. - * tests/mv/to-symlink: Likewise. - * tests/mv/into-self-2: Likewise. + * tests/misc/chcon: Likewise. + * tests/misc/stat-printf: Likewise. - Don't let a failure in one test stop "make -k" from running the others. - * tests/Makefile.am (t1 t2 t3 t4 t5): New targets. - (check-root): Depend on them, rather than executing the five - commands in a single rule. Reported by Greg Schafer. +2012-01-09 Jim Meyering <meyering@redhat.com> -2006-10-23 Bob Proulx <bob@proulx.com> (tiny change) + 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'\'';'\ - * Makefile.maint (alpha beta major): Use a better log message for - the automatic commit of .prev-version. +2012-01-09 Jim Meyering <meyering@redhat.com> -2006-10-23 Jim Meyering <jim@meyering.net> + 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' + + tests: adjust \`...' quoting to '...' to adapt to latest gnulib + Run this: + git grep -l "\\\\\`[^']*'" tests \ + |xargs perl -pi -e 's/\\\`(.*?'\'')/'\''$1/g + + 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'. + + 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-07 Jim Meyering <meyering@redhat.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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 + + maint: factor out all `Try --help'-emitting statements + * src/system.h (emit_try_help): New function. + +2012-01-06 Jim Meyering <meyering@redhat.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.15 + * NEWS: Record release date. + + 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. + + build: update gnulib submodule to latest + + 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. + + maint: adjust ChangeLog to reflect earlier df request + * build-aux/git-log-fix: Credit early reporter. + * THANKS.in: Add a name. + +2012-01-05 Pádraig Brady <P@draigBrady.com> + + 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. + + 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 Pádraig Brady <P@draigBrady.com> + + 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. - * tests/misc/pwd-long: Undo last change, since it made Perl invoke - pwd via a shell. Instead, ensure that the absolute name of the - pwd binary consists solely of reasonable characters. - Whoops. Don't exec the perl script. Otherwise, the sh-trap-based - clean-up code isn't run. + Reported by Bruno Haible - * NEWS: Add a line for 6.5-cvs. - * configure.ac (AC_INIT): Bump to 6.5 and add "-cvs" suffix. +2012-01-05 Jim Meyering <meyering@redhat.com> -2006-10-22 Jim Meyering <jim@meyering.net> + 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 Bruno Haible <bruno@clisp.org> + Jim Meyering <meyering@redhat.com> + + 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. + +2012-01-05 Jim Meyering <meyering@redhat.com> + + 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. - Version 6.4. +2012-01-04 Jim Meyering <meyering@redhat.com> + + 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-03 Jim Meyering <meyering@redhat.com> + + doc: adjust NEWS + * NEWS (New programs): Move this small section to the top. + (df): Reword entry, from Pádraig Brady. + +2012-01-03 Jim Meyering <meyering@redhat.com> + + 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 Nao Nishijima in http://bugzilla.redhat.com/766461 + and by Dan Jacobson in http://bugs.gnu.org/10363 + +2012-01-03 Jim Meyering <meyering@redhat.com> + + 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 Pádraig Brady <P@draigBrady.com> + + 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. - * NEWS: Record the 6.4 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. +2012-01-03 Pádraig Brady <P@draigBrady.com> - * Makefile.maint: Complete the adaptation to function with a working - directory that is using git (rather than cvs) for version control. + build: update gnulib for canonicalize_filename_mode improvements + This is required for the new realpath command. -2006-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +2012-01-02 Jim Meyering <meyering@redhat.com> - * tests/chmod/c-option: Double-quote instances of `$abs_srcdir'. - * tests/cp/cp-parents: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. + 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. - * tests/sample-test: Quote variables containing absolute build - tree paths. In the cleanup trap, make sure `cd' succeeds before - `chmod'ing and `rm'ing the temporary files. - * tests/chgrp/basic: Likewise. - * tests/chgrp/deref: Likewise. - * tests/chgrp/no-x: Likewise. - * tests/chgrp/posix-H: Likewise. - * tests/chgrp/recurse: Likewise. - * tests/chmod/c-option: Likewise. - * tests/chmod/equal-x: Likewise. - * tests/chmod/equals: Likewise. - * tests/chmod/inaccessible: Likewise. +2012-01-01 Jim Meyering <meyering@redhat.com> + + tests: also print chmod's --version + * tests/rm/many-dir-entries-vs-OOM: This test also exercises chmod. + + maint: update all copyright year number ranges + Run "make update-copyright". + + 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/ + +2011-12-31 Jim Meyering <meyering@redhat.com> + + 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-30 Jim Meyering <meyering@redhat.com> + + 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-28 Jim Meyering <meyering@redhat.com> + + 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. + + 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-26 Pádraig Brady <P@draigBrady.com> + + 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 Jim Meyering <meyering@redhat.com> + + stat,tail: recognize new FS type: pipefs + * src/stat.c (human_fstype) [S_MAGIC_PIPEFS]: New case. + * NEWS (Bug fixes): Mention this. + +2011-12-24 Jim Meyering <meyering@redhat.com> + + 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-23 Jim Meyering <meyering@redhat.com> + + 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-22 Jim Meyering <meyering@redhat.com> + + 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. + + 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-20 Jim Meyering <meyering@redhat.com> + + 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-17 Jim Meyering <meyering@redhat.com> + + 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. + + 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-15 Paul Eggert <eggert@cs.ucla.edu> + + 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-13 Paul Eggert <eggert@cs.ucla.edu> + + 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 Jim Meyering <meyering@redhat.com> + + 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-09 Jim Meyering <meyering@redhat.com> + + 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-08 Jim Meyering <meyering@redhat.com> + Eric Blake <eblake@redhat.com> + + 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 + +2011-12-05 Paul Eggert <eggert@cs.ucla.edu> + + ln: clarify usage of -L, -n, -T + * src/ln.c (usage): Use clearer wording to describe the -L, -n, + and -T options (Bug#9896). + + 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 Jim Meyering <meyering@redhat.com> + + 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 Paul Eggert <eggert@cs.ucla.edu> + + 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-04 Jim Meyering <meyering@redhat.com> + + 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. + + 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-03 Jim Meyering <meyering@redhat.com> + + 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-01 Eric Blake <eblake@redhat.com> + + 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 Bernhard Voelker <mail@bernhard-voelker.de> + + 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-11-29 Eric Blake <eblake@redhat.com> + + 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 Eric Blake <eblake@redhat.com> + + 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 Jim Meyering <meyering@redhat.com> + + build: update gnulib to fix build failure with --enable-gcc-warnings + +2011-11-28 Jim Meyering <meyering@redhat.com> + + 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. + + build: update gnulib for const+pure attributes + +2011-11-27 Jim Meyering <meyering@redhat.com> + + 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. + + 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-24 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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. + + maint: append many lib/ and m4/ names to .gitignore + + build: update gnulib submodule to latest for fixed stdalign test + +2011-11-23 Jim Meyering <meyering@redhat.com> + + 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. + + build: update gnulib and tests/init.sh + * gnulib: Update. + * tests/init.sh: Update from gnulib. + + 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-22 Jim Meyering <meyering@redhat.com> + + 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/octal: Likewise. - * tests/chmod/setgid: Likewise. - * tests/chmod/umask-x: Likewise. - * tests/chmod/usage: Likewise. + * tests/chmod/silent: Likewise. + * tests/chmod/thru-dangling: Likewise. * tests/chown/basic: Likewise. * tests/chown/deref: Likewise. - * tests/chown/separator: Likewise. - * tests/cp/acl: Likewise. - * tests/cp/backup-1: Likewise. - * tests/cp/backup-dir: Likewise. + * tests/chown/preserve-root: Likewise. + * tests/cp/abuse: Likewise. * tests/cp/backup-is-src: Likewise. - * tests/cp/cp-HL: Likewise. - * tests/cp/cp-deref: Likewise. - * tests/cp/cp-i: Likewise. - * tests/cp/cp-mv-backup: Likewise. - * tests/cp/cp-parents: Likewise. - * tests/cp/deref-slink: Likewise. - * tests/cp/dir-rm-dest: Likewise. - * tests/cp/dir-slash: Likewise. - * tests/cp/dir-vs-file: 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/link: Likewise. - * tests/cp/link-no-deref: Likewise. - * tests/cp/link-preserve: Likewise. - * tests/cp/no-deref-link1: Likewise. - * tests/cp/no-deref-link2: Likewise. - * tests/cp/no-deref-link3: Likewise. - * tests/cp/perm: Likewise. - * tests/cp/preserve-2: Likewise. - * tests/cp/r-vs-symlink: Likewise. - * tests/cp/same-file: Likewise. - * tests/cp/slink-2-slink: Likewise. - * tests/cp/sparse: Likewise. - * tests/cp/special-bits: Likewise. + * tests/cp/proc-zero-len: Likewise. * tests/cp/src-base-dot: Likewise. - * tests/cp/symlink-slash: Likewise. - * tests/dd/not-rewound: Likewise. - * tests/dd/skip-seek2: 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/deref: Likewise. + * tests/du/bigtime: Likewise. * tests/du/deref-args: Likewise. * tests/du/exclude: Likewise. - * tests/du/fd-leak: Likewise. + * tests/du/files0-from-dir: Likewise. * tests/du/hard-link: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: 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/restore-wd: Likewise. + * tests/du/one-file-system: Likewise. * tests/du/slash: Likewise. - * tests/du/slink: Likewise. * tests/du/trailing-slash: Likewise. - * tests/du/two-args: Likewise. - * tests/fmt/long-line: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/create-leading: Likewise. - * tests/install/d-slashdot: Likewise. - * tests/install/trap: Likewise. - * tests/ln/misc: Likewise. - * tests/ln/target-1: 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/inode: 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-vs-dirent: 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/close-stdout: Likewise. + * tests/misc/chcon: Likewise. * tests/misc/csplit: Likewise. - * tests/misc/date-sec: Likewise. - * tests/misc/false-status: Likewise. - * tests/misc/head-c: 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/mknod: Likewise. * tests/misc/nl: Likewise. - * tests/misc/nohup: Likewise. - * tests/misc/pathchk1: 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-long: Likewise. - * tests/misc/shuf: Likewise. - * tests/misc/sort-rand: Likewise. - * tests/misc/split-a: Likewise. - * tests/misc/split-fail: Likewise. - * tests/misc/split-l: Likewise. - * tests/misc/stat-fmt: 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/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-2: Likewise. - * tests/mkdir/p-3: Likewise. - * tests/mkdir/p-slashdot: Likewise. - * tests/mkdir/p-thru-slink: Likewise. - * tests/mkdir/p-v: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - * tests/mkdir/t-slash: Likewise. - * tests/mv/acl: Likewise. - * tests/mv/atomic: Likewise. + * tests/mkdir/selinux: Likewise. * tests/mv/backup-dir: Likewise. - * tests/mv/childproof: Likewise. + * tests/mv/backup-is-src: Likewise. * tests/mv/diag: Likewise. - * tests/mv/dir-file: Likewise. * tests/mv/dir2dir: Likewise. * tests/mv/dup-source: Likewise. - * tests/mv/hard-2: Likewise. - * tests/mv/hard-3: Likewise. - * tests/mv/hard-4: Likewise. - * tests/mv/hard-link-1: Likewise. + * tests/mv/force: Likewise. * tests/mv/hard-verbose: Likewise. - * tests/mv/i-2: Likewise. - * tests/mv/i-3: Likewise. - * tests/mv/i-4: Likewise. - * tests/mv/i-5: Likewise. * tests/mv/i-link-no: Likewise. - * tests/mv/into-self-4: Likewise. - * tests/mv/leak-fd: 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/no-target-dir: Likewise. * tests/mv/part-fail: Likewise. - * tests/mv/part-hardlink: Likewise. - * tests/mv/part-rename: Likewise. - * tests/mv/part-symlink: Likewise. - * tests/mv/partition-perm: Likewise. * tests/mv/perm-1: Likewise. - * tests/mv/reply-no: Likewise. + * tests/mv/sticky-to-xpart: Likewise. * tests/mv/trailing-slash: Likewise. - * tests/mv/update: Likewise. - * tests/od/od-N: Likewise. - * tests/od/x8: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/readlink/rl-1: Likewise. + * tests/rm/rm1: Likewise. + * tests/rm/rm2: Likewise. * tests/rm/cycle: Likewise. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/deep-1: Likewise. * tests/rm/dir-no-w: Likewise. * tests/rm/dir-nonrecur: Likewise. - * tests/rm/dot-rel: Likewise. - * tests/rm/empty-inacc: Likewise. - * tests/rm/f-1: Likewise. * tests/rm/fail-2eperm: Likewise. - * tests/rm/hash: Likewise. - * tests/rm/i-1: Likewise. - * tests/rm/i-no-r: Likewise. - * tests/rm/ignorable: 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/ir-1: Likewise. * tests/rm/isatty: Likewise. - * tests/rm/no-give-up: Likewise. - * tests/rm/r-1: Likewise. - * tests/rm/r-2: Likewise. - * tests/rm/r-3: Likewise. - * tests/rm/r-4: Likewise. - * tests/rm/readdir-bug: Likewise. - * tests/rm/rm1: Likewise. - * tests/rm/rm2: Likewise. + * tests/rm/one-file-system: Likewise. * tests/rm/rm3: Likewise. - * tests/rm/rm4: Likewise. * tests/rm/rm5: Likewise. - * tests/rm/sunos-1: Likewise. * tests/rm/unread2: Likewise. - * tests/rm/unread3: Likewise. - * tests/rmdir/fail-perm: Likewise. - * tests/rmdir/t-slash: Likewise. - * tests/shred/exact: Likewise. - * tests/shred/remove: Likewise. - * tests/sum/sysv: Likewise. - * tests/tail-2/append-only: Likewise. - * tests/tail-2/assert: Likewise. - * tests/tail-2/assert-2: 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/fflush: Likewise. - * tests/tail-2/infloop-1: Likewise. - * tests/tail-2/proc-ksyms: 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/tail-2/tail-n0f: Likewise. - * tests/tee/basic: Likewise. - * tests/tee/dash: Likewise. + * tests/touch/60-seconds: Likewise. * tests/touch/fail-diag: Likewise. - * tests/touch/no-create-missing: Likewise. * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. * tests/touch/relative: Likewise. -2006-10-21 Jim Meyering <jim@meyering.net> +2011-11-22 Jim Meyering <meyering@redhat.com> - * NEWS: (cp --backup fix): Fix a typo. + 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. - * .gitignore: Remove some references to files in subdirectories. - * build-aux/.gitignore, doc/.gitignore, lib/.gitignore: New files. - * m4/.gitignore, po/.gitignore, src/.gitignore: Likewise. +2011-11-20 Jim Meyering <meyering@redhat.com> - * src/copy.c (copy_internal): Add a comment saying why we prefer - mknod over mkfifo. + maint: revert "build: update gnulib submodule to latest" + Don't update to latest from gnulib just yet. + This reverts commit 173f4d9bd628fb771eaeca3d2fef97dcd71fedb8. + In particular, manywarnings is too aggressive. - Enable an fts optimization (call lstat only for directories, - on some file system types) also with the --preserve-root option - of chown or chgrp. - * src/chown-core.c (change_file_owner): Compare fts_statp-based - dev/ino against root dev/ino only for directories. - (chown_files): Don't let the root_dev_ino setting influence whether - we use FTS_NOSTAT: fts always sets *fts_statp for a directory. + build: update gnulib submodule to latest -2006-10-20 Jim Meyering <jim@meyering.net> + maint: make generated THANKS file read-only + * Makefile.am (THANKS): Make generated file read-only. - * src/od.c (usage): Change description of default to use "-w16", - not the now-invalid "-w 16" syntax. From Dan Jacobson. + 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. -2006-10-19 Jim Meyering <jim@meyering.net> +2011-11-20 Paul Eggert <eggert@cs.ucla.edu> - * bootstrap: Add names to each .gitignore file (if it exists) - as well as to .cvsignore. + 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'. - * Makefile.maint (po-check): This rule didn't detect the new use - of "gettext" (as opposed to the use of "_" everywhere else) in - lib/xstrtol.h. Adjust the grep regexp so that now it does. +2011-11-20 Jim Meyering <meyering@redhat.com> -2006-10-18 Paul Eggert <eggert@cs.ucla.edu> + 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. - * src/copy.c (copy_reg): Rewrite slightly to avoid duplicate code - when opening dst_name. - (copy_reg, copy_internal): Use (SYSCALL != 0) rather than plain - (SYSCALL) to test for failure in a system call. +2011-11-20 Erik Auerswald <auerswal@unix-ag.uni-kl.de> - * src/copy.c (copy_internal): Use mknod rather than mkfifo to copy - a fifo. This preserves the special mode bits on Solaris 10, which - is compatible with what Solaris 10 cp -R does. + 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. - * src/copy.c (copy_internal): Remove redundant and confusing local - variable src_type. +2011-11-18 Jim Meyering <meyering@redhat.com> - * src/copy.c (copy_internal): Don't pass mkdir a mode greater than - 7777. This matches historical 'cp' behavior and avoids some - (though not all) implementation-defined behavior of mkdir. - * src/cp.c (make_dir_parents_private): Likewise. - * src/copy.c (copy_internal): Don't pass 'open' a mode greater - than 777. This is required by POSIX. It doesn't make any difference - in actual behavior on any host that I know of. + 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. -2006-10-17 Jim Meyering <jim@meyering.net> +2011-11-16 Eric Blake <eblake@redhat.com> - * src/dd.c (usage): Use two spaces (not one) to separate the - "fdatasync" option string from its description, so help2man formats - the derived man page properly. Reported by Samuel Thibault - in <http://bugs.debian.org/393649>. + 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 -2006-10-16 Jim Meyering <jim@meyering.net> +2011-11-15 Paul Eggert <eggert@cs.ucla.edu> - * .x-sc_trailing_blank: Remove names of files that are no longer - version-controlled. + 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. -2006-10-16 Paul Eggert <eggert@cs.ucla.edu> +2011-11-15 Ruediger Meier <sweet_f_a@gmx.de> - * src/groups.sh (version): Reword message to match the other programs. - Problem reported by Eric Blake. + 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 Eric Blake <eblake@redhat.com> -2006-10-14 Jim Meyering <jim@meyering.net> + id: tweak comment + * src/id.c (main): Replace confusing use of "etc.". - * Makefile.maint (headers_with_interesting_macro_defs): Define. - (.re-defmac, sc_always_defined_macros): New rules. +2011-11-15 Paul Eggert <eggert@cs.ucla.edu> - * src/system.h (EXIT_FAILURE, EXIT_SUCCESS): Remove definitions. - Instead, include "exit.h". This hereby retires the work-around for - "Sony NEWS-OS Release 4.0C"'s bug due to "#define EXIT_FAILURE 0". + 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. - * src/cksum.c (uint_fast32_t): Don't define. - Instead, include <stdint.h>. + id: undo previous commit, which was done by mistake + * src/id.c (GETID_MAY_FAIL, main, print_full_info): Undo previous change. - * src/pinky.c (S_IWGRP): Don't define. - It's already defined by "stat-macros.h" (included via system.h). +2011-11-15 Paul Eggert <eggert@cs.ucla.edu> - * Makefile.cfg: Remove cruft that's now handled via bootstrap. - * Makefile.maint: Likewise, remove these targets/rules/variables: - (local_updates, update, cvs-update, wget_files, get-targets): Remove. - (cvs_files, wget-update, automake_repo): Likewise. - Move the comment about cvsu to build-aux/vc-list-files, - where cvsu is actually used. + 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-14 Ludovic Courtès <ludo@gnu.org> + + 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-13 Nix <nix@esperi.org.uk> + + tests: avoid rare fp failure in du/move-dir-while-traversing + * tests/du/move-dir-while-traversing: Boost the mkdir iteration count + yet again. - * Makefile.maint (cvs-update): Use $(CVS), not "cvs". +2011-11-13 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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-12 Jim Meyering <meyering@redhat.com> - Work also when the working directory (with e.g. coreutils sources) - is version controlled with git, rather than CVS. - * bootstrap (CVS_only_file): Test for the existence of README-cvs, - rather than CVS. - In messages and comments, say e.g., "checked-out sources", - rather than "CVS sources". - (version_controlled_file): New function. Work for git as well as - for CVS. Don't use grep's -q option. - (slurp): Call it here, in place of CVS-specific code. + 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. - * NEWS: cp -r --backup dir1 dir2, would rename an existing dir1/dir2 - to dir1/dir2~. - * src/copy.c (copy_internal): Although we do create a backup of each - destination directory when in move mode, don't do that when copying. - Reported by Peter Breitenlohner, in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8616>. - * tests/cp/backup-dir: New file. Test for the above. - * tests/cp/Makefile.am (TESTS): Add backup-dir. + 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. -2006-10-13 Jim Meyering <jim@meyering.net> + 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. + + build: update gnulib for fstatat cross-compile improvement - More chown/chgrp dereferencing-related fixes. - * src/chown-core.c (change_file_owner): Don't use fts_statp if - we're dereferencing symlinks. - Reverse conjuncts, so that we use dereference file_stats - (aka ent->fts_statp) only *after* we've confirmed that - chopt->affect_symlink_referent is true. Otherwise, we might - use ent->fts_statp uninitialized. - Don't turn on FTS_NOSTAT when dereferencing symlinks. - * tests/chown/deref: Update the expected diagnostic, now that - this test case (trying to use "chown --dereference ..." on a - dangling symlink) takes a different code path. + 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. + + 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 Paul Eggert <eggert@cs.ucla.edu> + + * 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. + + * tests/ls/block-size: Make it executable. + + * src/system.h (emit_size_note): Reword for clarity. + See discussion in Bug#9939. + + 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. -2006-10-13 Paul Eggert <eggert@cs.ucla.edu> +2011-11-08 Eric Blake <eblake@redhat.com> - Sync from Bison, as follows: + doc: fix typo in sort description + * doc/coreutils.texi (sort invocation): Fix typo. - 2006-10-01 Paul Eggert <eggert@cs.ucla.edu> +2011-11-05 Jim Meyering <meyering@redhat.com> - Fix problems with translating English-language diagnostics. - * bootstrap: Fix bug introduced in recent bootstrap changes, with - respect to bison-runtime pot generation. The YY_ stuff - wasn't being captured. + build: update gnulib for more openat changes -2006-10-13 Jim Meyering <jim@meyering.net> +2011-11-04 Jim Meyering <meyering@redhat.com> - * src/chown-core.c (change_file_owner): Use fstatat, not stat, - now that we're using fts_open with FTS_CWDFD. - * tests/chgrp/posix-H: Add --preserve-root to an invocation of - chgrp, to exercise the above fix. - * NEWS: Mention the above. + build: do use fstatat and unlinkat modules, now that they're separate + * bootstrap.conf (gnulib_modules): Add fstatat and unlinkat. - * src/du-tests: Clean up a little, though it's still not portable. + build: update gnulib to pull in openat module separation changes + No semantic change. - * .vg-suppressions: Add 3 more for debian unstable. +2011-11-03 Pádraig Brady <P@draigBrady.com> - * tests/ls/Test.pm: Remove long-unused file. - * Makefile.am (EXTRA_DIST): Add bootstrap.conf. - Suggestions from Bruno Haible. + 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. -2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + 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. - * Makefile.am (THANKS-to-translators): Add missing $(srcdir). - (MAINTAINERCLEANFILES): Add .kludge-stamp. - * man/Makefile.am (MAINTAINERCLEANFILES): Typo $(dist_man_MANS) - instead of $(man_MANS). + * 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. -2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +2011-11-03 Pádraig Brady <P@draigBrady.com> - * configure.ac: Avoid compiler warnings about default return - type in function definitions and unused variables in tests. - * src/who.c (print_user) [HAVE_UT_HOST]: hostlen is only needed - if this is #defined. + tests: fix a race in timeout-group + This could cause a false failure, or even + an infinite loop in rare circumstances. -2006-10-12 Jim Meyering <jim@meyering.net> + * 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. - * configure.ac: Reflect s/gl_MACROS/coreutils_MACROS/ renaming. - Call gl_INIT directly, rather than through the above. + Reported by Bernhard Voelker. -2006-10-11 Paul Eggert <eggert@cs.ucla.edu> +2011-11-02 Jim Meyering <meyering@redhat.com> - * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell - variable was sometimes used without being initialized. This - messed up the installation of the INSTALL file in some cases. + 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. -2006-10-11 Jim Meyering <jim@meyering.net> + 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. - * src/ls.c (usage): Correct description of -s, --size. - It works even without -l. Suggestion from Karl Berry. + stat: avoid compilation failure with gnulib's new alignof + * src/stat.c: Include <stdalign.h>, not "alignof.h" for alignof use. + + 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-01 Pádraig Brady <P@draigBrady.com> + + 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 Jim Meyering <meyering@redhat.com> + + 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-10-30 Jim Meyering <meyering@redhat.com> + + build: update gnulib for GNUmakefile fix + + 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. + + 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 + + tests: doc: fix stale comment in new rm/many-dir-entries-vs-OOM -2006-10-10 Paul Eggert <eggert@cs.ucla.edu> - - * src/ls.c (quote_name): Use initializer rather than memset to - initialize an object to zero. This is easier to read and is less - likely to introduce a runtime error due to a mixup. It causes - gcc -W to issue a warning, but you can work around this by - appending -Wno-missing-field-initializers. - * src/pathchk.c (portable_chars_only): Likewise. - * src/shred.c (main): Likewise. - * src/stty.c (main): Likewise. - * src/tr.c (card_of_complement): Likewise. - * src/wc.c (wc): Likewise. +2011-10-29 Jim Meyering <meyering@redhat.com> + + 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-27 Jim Meyering <meyering@redhat.com> + + 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. + + 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-25 Jim Meyering <meyering@redhat.com> + + 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-24 Eric Blake <eblake@redhat.com> + + doc: NEWS: correct "bug introduced in ..." version number + * NEWS: s/7.0/8.0/ + +2011-10-24 Jim Meyering <meyering@redhat.com> + + 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-23 Jim Meyering <meyering@redhat.com> + + 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-21 Martial Bornet <mbornet.pro@gmail.com> + + 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-20 Mike Frysinger <vapier@gentoo.org> + + 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-19 Jim Meyering <meyering@redhat.com> + + maint: tac: prefer "failed to" diagnostic over "cannot" + * src/tac.c: Change wording in diagnostic: "failed to open" seems + clearer than "cannot open". + + 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. + + 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-18 Paul Eggert <eggert@cs.ucla.edu> + + 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-17 Jim Meyering <meyering@redhat.com> + + 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. + + 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. + + 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 Pádraig Brady <P@draigBrady.com> + + 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-12 Jim Meyering <meyering@redhat.com> + + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.14 + * NEWS: Record release date. + +2011-10-12 Pádraig Brady <P@draigBrady.com> + + 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. -2006-10-09 Paul Eggert <eggert@cs.ucla.edu> +2011-10-09 Jim Meyering <meyering@redhat.com> + + 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 + + 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 + + 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. - * src/sort.c (usage): Mention again that sort fields are origin 1. +2011-10-08 Jim Meyering <meyering@redhat.com> - * NEWS: Fix typo: iso-8602 -> iso-8601. Problem reported by - Bob Proulx. + 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 + + 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 - * bootstrap (usage, main program, symlink_to_gnulib): Add option - --copy. Inspired by a suggestion from Bruno Haible. + 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-06 Bernhard Voelker <mail@bernhard-voelker.de> + + 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. -2006-10-09 Jim Meyering <jim@meyering.net> +2011-10-05 Jim Meyering <meyering@redhat.com> - Avoid a compiler warning. - * src/pathchk.c (portable_chars_only): Initialize variable of type - mbstate_t via memset, rather than via '{0}'. Patch from Bruno Haible. + 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. -2006-10-06 Paul Eggert <eggert@cs.ucla.edu> + 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-03 Jim Meyering <meyering@redhat.com> + + 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-01 Jim Meyering <meyering@redhat.com> + + 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 Markus Duft <mduft@gentoo.org> + + 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. + + 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 Jim Meyering <meyering@redhat.com> + + 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. + + build: update gnulib submodule to latest + +2011-10-01 Pádraig Brady <P@draigBrady.com> + + doc: mention the recent ls -L "argetm" fix in NEWS + * NEWS: Mention the bug fix + +2011-10-01 Pádraig Brady <P@draigBrady.com> + + 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-09-30 Jim Meyering <meyering@redhat.com> + + 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-28 Jim Meyering <meyering@redhat.com> + + tests: update gnulib to latest, to fix test link failure + +2011-09-27 Jim Meyering <meyering@redhat.com> + + 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-24 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + 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 Bernhard Voelker <mail@bernhard-voelker.de> + + 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. + + 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-22 Pádraig Brady <P@draigBrady.com> + + 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-19 Bruno Haible <bruno@clisp.org> + + 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 Jim Meyering <meyering@redhat.com> + + 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 Reuben Thomas <rrt@sc3d.org> + + 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 Jim Meyering <meyering@redhat.com> + + 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-17 Paul Eggert <eggert@cs.ucla.edu> + + 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-16 Pádraig Brady <P@draigBrady.com> + + 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-14 Eric Blake <eblake@redhat.com> + + 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. - Fix bug reported today by Mike Frysinger: mkdir -pv is logging the - wrong file name in some cases. Lars Wendler reported a bug in - my original fix. - * src/install.c (make_ancestor): New arg COMPONENT. - * src/mkdir.c (make_ancestor): Likewise. - * tests/install/basic-1: Check for install -Dv bug. - * tests/mkdir/Makefile.am (TESTS): Add p-v. - * tests/mkdir/p-v: New file, to test this bug. +2011-09-12 Jim Meyering <meyering@redhat.com> -2006-10-05 Paul Eggert <eggert@cs.ucla.edu> + 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. - * src/chgrp.c: Don't include lchown.h; no longer needed. - * src/chown.c: Likewise. +2011-09-08 Jim Meyering <meyering@redhat.com> - * tests/ls/stat-dtype: Use a dynamic test to decide whether the - current file system has useful d_type info. + doc: fix typo in test script comment + * tests/d_type-check: Fix typo in comment. - * src/dd.c (flags): noatime and nofollow now depend on - HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too. - (usage): Output info about noatime and nofollow only if - they are known to work. - * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather - than O_NOFOLLOW, when testing whether it's possible to avoid a - race condition reliably. + maint: post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. -2006-10-05 Jim Meyering <jim@meyering.net> + version 8.13 + * NEWS: Record release date. - * src/c99-to-c89.diff: Update to reflect new offsets. + build: update gnulib submodule to latest - * tests/install/basic-1: Skip the latter part of this test if the - just-built dd binary is not readable. Otherwise, this test would fail - when binaries were created as root. Reported by Bauke Jan Douma in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8433>. + stat: avoid compilation failure on AIX 7.x + * src/stat.c (USE_STATVFS): Adjust definition so that it is enabled + also on AIX 7.x systems that provide statvfs64 and no statvfs. + [USE_STATVFS && ! STAT_STATVFS && STAT_STATVFS64] (STATFS): Define + to statvfs64 in that precise case. + * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Adjust the condition + here to match the new one in stat.c, to keep them in sync. + Reported by Bruno Haible. For details, see + http://article.gmane.org/gmane.comp.gnu.coreutils.general/1668 -2006-10-03 Paul Eggert <eggert@cs.ucla.edu> +2011-09-07 Bernhard Voelker <mail@bernhard-voelker.de> - * src/system.h (ST_BLKSIZE): Ceiling at SIZE_MAX / 8 + 1, not at 4 - MiB, since XFS hosts can legitimately have large values of - st_blksize. Problem reported by Tony Ernst in - <http://savannah.gnu.org/bugs/?17903>. + tests: adjust PATH to include /sbin for mkfs-using tests + * tests/init.cfg (require_mkfs_PATH_): New function to test whether mkfs + is in PATH, otherwise adding /sbin to PATH. Needed for distributions + (OpenSuSE, Solaris) in which sudo does not include /sbin in PATH. + * tests/cp/cp-a-selinux: Use require_mkfs_PATH_. + * tests/cp/cp-mv-enotsup-xattr: Likewise. + * tests/cp/sparse-fiemap: Likewise. + * tests/mkdir/writable-under-readonly: Likewise. + * tests/rm/read-only: Likewise. + +2011-09-07 Jim Meyering <meyering@redhat.com> + + tests: avoid false-positive "make check" failure when perl is missing + * doc/Makefile.am (sc-lower-case-var): Skip this test when $(PERL) + is not usable. Reported by Bruno Haible. + + cp: update gnulib to get support for NFSv4 ACLs + * NEWS (Improvements): Mention the cp-vs-NFSv4-ACL improvement we + have inherited via gnulib. For details, see + http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28100 + and the following messages in that thread. + * gnulib: Update to latest, for numerous ACL-related improvements. + +2011-09-02 Bruno Haible <bruno@clisp.org> + + tests: init.sh: work also with any non-GNU diff that supports -u + * tests/init.sh: Relax check for diff -u support. + Rather than checking for GNU diff via --version, simply check + for support for -u itself. Useful at least on OpenBSD 4.9. + +2011-09-02 Jim Meyering <meyering@redhat.com> + + tests: remove require-perl script; use function instead + * tests/require-perl: Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove it from this list. + * tests/init.cfg (require_perl_): New function. + * tests/misc/pwd-long: Use the new function, not the file. + * tests/ls/nameless-uid: Likewise. + * tests/misc/sum-sysv: Likewise. + + tests: cut: exercise distro-added multibyte code paths + * tests/misc/cut: Repeat each test using a multibyte locale, + if the configure-time test found such a locale. + Adjust the tests so that they also accept a slightly + different diagnostic that is specific to the MB-patched cut. + +2011-09-02 Pádraig Brady <P@draigBrady.com> + + doc: describe test control variables + * HACKING (Add tests): Mention the variables and default values. + * README-release (Pre-release testing): Mention that setting + the SHELL variable may be required. + Suggested by Bruno Haible. + +2011-09-01 Pádraig Brady <P@draigBrady.com> + + timeout: fixup previous warning fix + * src/timeout.c (settimeout): Fix the previous commit + to test errno rather than the return value. + + tests: split/l-chunk: avoid a portability issue + * tests/split/l-chunk: Don't use the `test "$var"` + idiom to test that var is set to something as + that's not supported by all shells. + The new style matches the usage is the rest of + the test in any case. + Reported by Bruno Haible on AIX 6.1 and 7.1 + +2011-09-01 Jim Meyering <meyering@redhat.com> + + tests: pwd-long: diagnose failure earlier + Without this change, we'd get use-of-uninit value warnings + and harder-to-diagnose failure down the road. + * tests/misc/pwd-long (normalize_to_cwd_relative): Diagnose stat + failure. This failed on AIX 6.1 and 7.1. Reported by Bruno Haible. + + tests: printf-surprise: avoid false-positive failure + * tests/misc/printf-surprise: Also accept a strerror-style string + after the usual 'printf: write error:' diagnostic prefix. + Otherwise, this test would fail on HP-UX 11. + Reported by Bruno Haible. -2006-10-04 Jim Meyering <jim@meyering.net> +2011-09-01 Bernhard Voelker <mail@bernhard-voelker.de> - * src/remove.c (nonexistent_file_errno): Remove ENAMETOOLONG. - Paul Eggert pointed out that the specified file may exist, - in spite of such an errno value. - * tests/rm/Makefile.am (TESTS): Remove ignore-name-too-long. - * tests/rm/ignore-name-too-long: Remove file. - * NEWS: Update here, too. + tests: improve message in 'require_membership_in_two_groups_' function + * tests/init.cfg (require_membership_in_two_groups_): Add quotes + around the suggested groups for the COREUTILS_GROUPS variable. -2006-10-03 Jim Meyering <jim@meyering.net> +2011-09-01 Jim Meyering <meyering@redhat.com> - * tests/rm/fail-eperm: Report failure also if rm is terminated by - a signal. + tests: misc/printf: accommodate alternate behavior + * tests/misc/printf: Avoid false positive failure on MacOS X 10.5 + due to a slightly differing diagnostic. Reported by Bruno Haible. + + tests: invoke via "env printf", rather than using an absolute name + * tests/misc/printf: This results in more concise diagnostics. - * src/c99-to-c89.diff: Convert two c99'isms -- one in remove.c - and one in shred.c -- that were added before coreutils-6.3. - Reported by Michael Deutschmann. +2011-09-01 Pádraig Brady <P@draigBrady.com> - * src/c99-to-c89.diff: Update to reflect new offsets. + timeout: suppress a redundant warning on some systems + * src/timeout.c (settimeout): Don't warn about ENOSYS + which is returned on OpenBSD 4.9 at least. + Reported by Bruno Haible + + stdbuf: fix helper lib identification on some platforms + * src/stdbuf.c (main): Pass the path of `stdbuf` rather than + the command it's running to the search function. This is + significant on platforms without /proc/self/exe + Reported by Bruno Haible + + build: avoid the use of strsignal() in split + ... which is not available on some platforms, + and the replacement currently requires linking + with threading libraries. + * src/split.c (closeout): Remove the call to strsignal() + which is largely redundant anyway as sig2str() + is already used to map number to name in the error. + Reported by Bruno Haible on AIX 6.1 and 7.1 + +2011-08-31 Jim Meyering <meyering@redhat.com> + + date: support parsing of ISO-8601-with-"T" dates + Thanks to an improvement in gnulib's parse-datetime module, + commands like this now succeed (output manually indented): + $ ./date -u -d 2004-02-29T16:21:42.33+07:00 +%FT%T.%N%z + 2004-02-29T09:21:42.330000000+0000 + * tests/misc/date: Add a test to exercise the new-in-gnulib + parsing of ISO8601-with-"T" dates. + * NEWS (New features): Mention it. + * gnulib: Update, to pull in this parse-datetime improvement. + +2011-08-30 Pádraig Brady <P@draigBrady.com> + + build: heap.c: make possible gnulib candidate c89 compatible + * gl/lib/heap.c: Move declaration to the top of scope. + Reported by Rob McMahon and Wolfgang Steinwender + in relation to "Sun WorkShop 6 update 2 C 5.3 Patch 111679-12 + 2003/05/18" and "GCC 2.95.3" respectively. + +2011-08-25 Pádraig Brady <P@draigBrady.com> + + timeout: revert signal propagation enhancement + This effectively reverts the unreleased commit 5a647a05 + + * src/timeout.c (main): Don't propagate signals from the monitored + process, as on Linux /proc/sys/kernel/core_pattern could still + handle them and cause false reports against `timeout` + +2011-08-24 Jim Meyering <meyering@redhat.com> + + maint: rename a test + Lesson: do not include details like "4 million" in a file name. + * tests/rm/many-dir-entries-vs-OOM: Renamed from ... + * tests/rm/4-million-entry-dir: ...this. + * tests/Makefile.am (TESTS): Reflect renaming. + + tests: adjust the new, very expensive rm test to be less expensive + * tests/rm/4-million-entry-dir: Create only 200,000 files, rather + than 4 million. The latter was overkill, and was too likely to + fail due to inode exhaustion. Not everyone is using btrfs yet. + Now that this test doesn't take so long, label it as merely + "expensive", rather than "very expensive". Thanks to + Bernhard Voelker for pointing out the risk of inode exhaustion. + +2011-08-24 Pádraig Brady <P@draigBrady.com> + + pr: fix so that LAST_PAGE is honored with -T + Ever since the LAST_PAGE functionality was added + in commit ed0923a1, 1996-12-05, + "Apply big patch (patch-20) from Roland Huebner" + it was ignored when -t or -T were specified or + when -l <= 10. + + * src/pr.c (print_page): Increment the current page here. + (print_header): Don't increment the current page here. + * tests/pr/pr-tests: Add a test case. + * NEWS: Mention the fix + + Reported at http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9347 + +2011-08-20 Erik Auerswald <auerswal@unix-ag.uni-kl.de> + + doc: correct typo in yesterday's NEWS entry: 30GB -> 30MB + * NEWS: s/30GB/30MB/ + +2011-08-19 Jim Meyering <meyering@redhat.com> + + rm, du, chmod, chown, chgrp: use much less memory for large directories + For details, see the gnulib commit, + http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=47cb657e + * tests/rm/4-million-entry-dir: New test. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + * gnulib: Update to latest to get the required fts fixes. + +2011-08-13 Bernhard Voelker <mail@bernhard-voelker.de> + + maint: remove empty statement after jump label + * src/head.c (elide_tail_bytes_pipe): Remove the empty statement, ";" + after a jump label; it is needed only when a declaration follows. + * src/kill.c (main): Likewise. + * src/od.c (main): Likewise. + * src/paste.c (collapse_escapes): Likewise. + * src/printf.c (print_formatted): Likewise. + +2011-08-12 Paul Eggert <eggert@cs.ucla.edu> + + pathchk: port to hosts where mbstate_t is replaced + This problem was discovered when trying to build git coreutils on + Solaris 8 sparcv9 with Sun C 5.8: the 3rd argument to mbrlen was + of type int * (a pointer to the gnulib replacement mbstate_t) but + the system mbrlen wants the system mbstate_t *. + * bootstrap.conf (gnulib_modules): Add mbrlen. + * src/pathchk.c (mbrlen, mbstate_t) [!(HAVE_MBRLEN && HAVE_MBSTATE_T)]: + Remove macros, which are wrong now that gnulib supplies + replacements for mbstate_t and mbrlen. + + bootstrap: use latest gnulib bootstrap, gettext + * bootstrap: Sync from gnulib. This removes an obsolescent + gettext.m4 patch, along with some other changes that do not + seem to affect coreutils. + * bootstrap.conf (gnulib_modules): Use gettext, not gettext-h. + Current gnulib gettext seems to work without needing special hacking. + * configure.ac (AM_GNU_GETTEXT_VERSION): Now 0.18.1, not 0.17. + * gnulib: Update to latest. + +2011-08-11 Jim Meyering <meyering@redhat.com> + + maint: use gnulib's new largefile modulue + * bootstrap.conf (gnulib_modules): Add largefile. + This is useful to Mac OS X 10.5 users if/when configure + is generated using autoconf prior to v2.68-80-gdb2f2e0. + * gnulib: Update to latest. + +2011-08-08 Jim Meyering <meyering@redhat.com> + + tests: avoid lack-of-support du test failure on HP-UX 11.31 + * tests/du/inaccessible-cwd: Skip this test on systems like HP-UX 11.31 + that lack both the *at functions and the /proc/self/fd-based support + we might have used to emulate them. Reported by Bruno Haible in + http://debbugs.gnu.org/8846 + + join: with --check-order print offending file name, line number and data + * src/join (g_names): New global (was main's "names"). + (main): Update all uses of "names". + (line_no[2]): New globals. + (get_line): Increment after reading each line. + (check_order): Print the standard "file name:line_no: " prefix + as well as the offending line when reporting disorder. + Here is a sample old/new comparison: + -join: file 1 is not in sorted order + +join: in:4: is not sorted: contents-of-line-4 + * tests/misc/join: Change the two affected tests to expect + the new diagnostic. + Add new tests for more coverage: mismatch in file 2, + two diagnostics, zero-length out-of-order line. + * NEWS (Improvements): Mention it. + Suggested by David Gast in http://debbugs.gnu.org/9236 + + maint: use xcalloc rather than xmalloc+memset (no semantic change) + * src/join.c (init_linep): Use xcalloc, not xmalloc+memset. + + maint: add copyright notice to init.cfg + * tests/init.cfg: Add copyright. Suggested by Stefano Lattarini. + + maint: prevent accidental future use of the old shell function name + This is especially important for an error-handling shell function + like this that is actually called only rarely. + * cfg.mk (sc_prohibit_framework_failure): New rule, to prevent + use of the old name. + +2011-08-08 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: complete the renaming framework_failure -> framework_failure_ + These changes were mostly mechanical, made by running the + following command: + + git grep -lw framework_failure | grep -v ChangeLog \ + | xargs perl -pi -e 's/\b(framework_failure)\b/${1}_/' + + and then editing init.cfg and `tests/cp/cp-a-selinux' by hand. + + * tests/init.cfg (framework_failure): Remove, `framework_failure_' + from init.sh should be used instead in the tests. + Remove now-obsolete "FIXME" comment. + (is_local_dir_, require_strace_, require_membership_in_two_groups_, + require_sparse_support_, skip_if_mcstransd_is_running_, + mkfifo_or_skip_) Use `framework_failure_', not `framework_failure'. + * Many test scripts: Likewise. + +2011-08-08 Paul Eggert <eggert@cs.ucla.edu> + + mktemp: stir in enough entropy (Bug#6683) + * gl/lib/tempname.c.diff (gen_tempname_len): + Use x_suffix_len bytes' worth of entropy, not 8 bytes. + +2011-08-04 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: remove obsolete 'error_' shell function + * tests/init.cfg (framework_failure, getlimits_): Use 'fatal_' + instead of 'error_'. + (error_): Delete, it's not used anymore (and one is anyway + advised to use 'fatal_' instead). + Update heading comments. + * tests/shell-or-perl (error_): Renamed ... + (fatal_): ... to this, for consistency. Also, add a useful + comment. + +2011-07-31 Pádraig Brady <P@draigBrady.com> + + doc: mention the new mirroring behavior of cp -au + * NEWS: Mention the change in behavior. + * doc/coreutils.texi (cp invocation): Likewise. + +2011-07-31 Jim Meyering <meyering@redhat.com> + + maint: accommodate old-NEWS update + * cfg.mk (old_NEWS_hash): Update, to accommodate 6.12 addition. + Without this change, "make syntax-check" would fail. + +2011-07-31 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Say that 6.12 preserved ns-resolution timestamps. + +2011-07-29 Jim Meyering <meyering@redhat.com> + + build: require gnulib's fclose module + * bootstrap.conf (gnulib_modules): Explicitly use the fclose module. + This is required, now that gnulib's close module no longer depends + on fclose. Without this module, we would be exposed to fclose bugs + affecting at least glibc 2.13 and FreeBSD. + Reported by Bernhard Voelker. Suggested by Eric Blake. + +2011-07-29 Jim Meyering <meyering@redhat.com> + + build: update gnulib, for "make syntax-check" fix + Without the recent maint.mk fix, "make syntax-check" + would fail like this: + + src/dd.c:# define SA_RESETHAND 0 + src/ls.c:# define SA_RESTART 0 + src/timeout.c:# define SA_RESTART 0 + maint.mk: define the above via some gnulib .h file + make: *** [sc_prohibit_always-defined_macros] Error 1 + +2011-07-27 Ivan Sichmann Freitas <ivansichfreitas@gmail.com> + + doc: add a vim indentation example + HACKING: add a vim example showing how to configure it to follow GNU + indentation in coreutils source files. + +2011-07-27 Pádraig Brady <P@draigBrady.com> + + maint: copy: refactor hard link creation + * src/copy.c (create_hard_link): A new function refactored + from existing code. + (copy_internal): Call the new function from all 3 locations + that create hard links. + * tests/cp/same-file: Amend to match the adjusted diagnostic. + + tests: cp/preserve-link: test all relevant paths + * tests/cp/preserve-link: Add test cases for when a missing + link in the destination tree is encountered first and second. + Also add cases for old and new separate files in the destination + tree, both to make the clobbering behavior explicit, and to + test any changes in this area in future. + +2011-07-26 Jim Meyering <meyering@redhat.com> + + doc: mention cp's dir-permissions fix + * NEWS (Bug fixes): Mention yesterday's dir-permissions fix. + + maint: use consistent style in C and test scripts + * src/copy.c (copy_internal): Adjust formatting style to conform with + guidelines in HACKING: put braces around two one-line "else" blocks. + * tests/cp/existing-perm-dir: Use $(...), not `...`, and + stat rather than ls+cut to get the mode string. + mode=$(stat --p=%A dst/dir) + +2011-07-25 Paul Eggert <eggert@cs.ucla.edu> + + cp: don't mishandle existing dir dest permissions (Bug#9170) + * src/copy.c (copy_internal): If we don't create the directory, + then we cannot have omitted permissions. Problem and trivial + fix reported by Eric Lammerts. + * tests/Makefile.am (TESTS): Add cp/existing-perm-dir. + * tests/cp/existing-perm-dir: New file. + +2011-07-25 Jim Meyering <meyering@redhat.com> + + cp -up: preserve all hard links + * src/copy.c (copy_internal): With --update (-u), this function would + return early once it found that the destination is not older than the + source, *without* recording the source-dev/ino--to--dest_name mapping. + That mapping is required in order to preserve src hard links in the + destination tree, so when using cp with --update and --preserve=links + (perhaps via -p or -a), cp could fail to preserve one hard link + per inode when at least one of the hard-linked names already exists + in the destination tree. + Reported by Odd Harry Mannsverk in http://debbugs.gnu.org/8419. + * tests/cp/preserve-link: New file. Exercise the flaw/fix. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + +2011-07-25 Pádraig Brady <P@draigBrady.com> + + timeout: support sub-second timeouts + * src/timeout.c (settimeout): A new function to convert + from a floating point duration and call alarm() or + timer_settime() if that's available. + (parse_duration): Return a double rather than unsigned int. + (usage): Mention floating point is supported. + (main): Pass the double to settimeout() rather than + calling alarm() directly with the parsed int. + (cleanup): Likewise. + * doc/coreutils.texi (timeout invocation): Say floating point timeouts + now supported, and mention the caveat with resolution. + * bootstrap.conf: Include the timer-time gnulib module. + * tests/misc/timeout-parameters: Add a test with nanoseconds. + * NEWS: Mention the improvement. + +2011-07-25 Jim Meyering <meyering@redhat.com> + + build: update gnulib to fix a build warning/error in a test program + +2011-07-24 Jim Meyering <meyering@redhat.com> + + df: support partitions larger than 4 TiB on MacOS >= 10.5 & AIX >=5.2 + This change derives from improvements to gnulib's fsusage module. + * NEWS (Improvements): df now supports disk partitions larger than + 4 TiB on MacOS X 10.5 or newer and on AIX 5.2 or newer. + Alphabetize entries. + * gnulib: Update to latest. + +2011-07-22 Paul Eggert <eggert@cs.ucla.edu> + + dd, shred: use fdatasync only if declared + * m4/jm-macros.m4 (coreutils_MACROS): Use fdatasync only if declared. + MacOS X 10.7 has an fdatasync that is not declared, and is rumored to + be ineffective. (Bug#9141) + +2011-07-20 Mike Frysinger <vapier@gentoo.org> + + dircolors: add screen.Eterm terminal type + * src/dircolors.hin: Add screen.Eterm. + Reported by Kfir Lavi + +2011-07-20 Pádraig Brady <P@draigBrady.com> + + maint: remove a redundant call to gl_CLOCK_TIME + * m4/jm-macros.m4: Remove gl_CLOCK_TIME as it's already + done by the gettime gnulib module. + +2011-07-20 Pádraig Brady <P@draigBrady.com> + + unexpand: fix misalignment when spaces span a tabstop + The following dropped the space from the first field + printf "1234567 \t1\n" | unexpand -a + Note POSIX says that spaces should not precede tabs. + Also a single trailing space should not be converted + if the next field starts with non blank characters. + So we enforce those rules too, with this change. + + * src/unexpand.c (unexpand): Implement as per POSIX rules. + * tests/misc/unexpand: Add tests, and adjust existing + tests as per POSIX rules. + * NEWS: Mention the fix. + Reported by Hallvard B Furuseth - * src/remove.c (remove_entry): With -f, exit successfully in spite - of a missing file under some very unusual conditions (with errno - being any of ENOENT, ENOTDIR, ENAMETOOLONG). +2011-07-17 Paul Eggert <eggert@cs.ucla.edu> - With --force (-f), rm no longer fails for ENOTDIR. - * src/remove.c (ignorable_missing): New function. - Use it everywhere, rather than open-coding the test. - Andreas Schwab reported the ENOTDIR problem. - (ignorable_missing): Similarly, don't fail for ENAMETOOLONG. + * NEWS: Mention fix for Bug#9098. - * NEWS: Mention the bug fix. - * tests/rm/ignorable: New file. Test for the ENOTDIR case. - * tests/rm/ignore-name-too-long: New file. Test for ENAMETOOLONG. - * tests/rm/Makefile.am (TESTS): Add the new file names. + timeout: add regression test (Bug#9098) + * tests/misc/timeout: Check that 'timeout' is not confused when + starting off with a child. + +2011-07-16 Paul Eggert <eggert@cs.ucla.edu> + + timeout: treat seconds counts like 'sleep' does + Treat fractions as a request to round up to the next representable + value, and treat out-of-range values as maximal ones. This is + consistent with how "sleep" works. And this way, "timeout + 999999999999999999d FOO" and "timeout 4.5 foo" are more likely to + do what the user wants. + * src/timeout.c: Include c-strtod.h and xstrtod.h, not xstrtol.h. + (apply_time_suffix): Change it to the way sleep.c's time_suffix + does things. Maybe this function (identical in both programs, + other than its name) should be moved to a library? + (parse_duration): Return a maximal value on overflow. Return + unsigned int, not unsigned long. Allow fractions, which round + up to the next integer value. + * tests/misc/timeout-parameters: Adjust tests to match new behavior. + Add a very large number. + + Fix capiTalization in comments. + +2011-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/timeout.c (main): Use waitpid, not wait (Bug#9098). + Reported by Andreas Schwab. + + * src/timeout.c (SA_RESTART): Define to 0 if not defined. + +2011-07-16 Paul Eggert <eggert@cs.ucla.edu> + + timeout: port to NonStop (Bug#9077) + * src/timeout.c (SA_RESTART): Define to 0 if not defined. + (main): Don't assume signal handling uses SA_RESTART. + + ls: port to NonStop (Bug#9076) + * src/ls.c (SA_RESTART): Define to 0 if not defined. + + dd: port to NonStop (Bug#9076) + * src/dd.c (SA_RESETHAND): Define to 0 if not defined. + + csplit: don't prematurely terminate cleanup (Bug#9076) + * src/csplit.c (interrupt_handler): Reset signal to SIG_DFL + after deleting the files, so that a second interrupt won't + prematurely terminate cleanup. + (main): Don't use SA_NODEFER | SA_RESETHAND, as that might + allow premature termination of cleanup. Also, this ports better + to platforms like NonStop, which don't ahve SA_RESETHAND. + +2011-07-15 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c: Remove obsolete comments re POSIX. + +2011-07-15 Pádraig Brady <P@draigBrady.com> - * bootstrap: Undo last change to this file, since now gnulib-tool - sticks with the automake default in generating dependencies. + build: avoid a st_blksize compile failure on some systems + * src/stat.c (print_stat): Use ST_BLKSIZE() rather than + accessing st_blksize directly, which is not present on + NonStop at least. Reported by Joachim Schmitz. - * NEWS: Add a line for 6.4-cvs. - * configure.ac (AC_INIT): Bump to 6.4 and add "-cvs" suffix. + build: avoid a fiemap compile failure on some systems + * src/fiemap.h (struct fiemap): Adjust the previous change + to the fiemap_extents array, which would also require changes + to the sizeof calculations in extent_scan_read(). + Instead, only declare the fiemap_extents zero length array + on linux, which is the only platform that references this member. + This avoids a compilation failure on systems that don't support + this non standard construct. We don't use the equivalent C99 + flexible array construct so as to have maximum portability. + * src/extent-scan.c: Cleanup. Remove a redundant #ifndef. -2006-09-30 Jim Meyering <jim@meyering.net> +2011-07-15 Paul Eggert <eggert@cs.ucla.edu> - Version 6.3. - * NEWS: Record the 6.3 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + * src/fiemap.h (struct fiemap.fm_extents): Change size to 1. + This is for portability to non-GCC C89 and C99 compilers. + Original problem, on NonStop, reported by Joachim Schmitz in + <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9077>. - * NEWS: Mention Paul's Solaris 8 vs. 10 work-around. +2011-07-14 Bernhard Voelker <mail@bernhard-voelker.de> - * src/c99-to-c89.diff: Update offsets. + maint: fix warning 'possible use of "=" where "==" was intended' + * src/mktemp.c: maint: avoid warning by using the comma operator + rather than an always-true conditional (as suggested by Eric Blake). + Reported by Joachim Schmitz in http://debbugs.gnu.org/9064. -2006-09-29 Paul Eggert <eggert@cs.ucla.edu> +2011-07-13 Benoît Knecht <benoit.knecht@fsfe.org> - * tests/rm/readdir-bug: Don't use $(...) in a shell script, - as it doesn't work with Solaris /bin/sh. + doc: describe the file permissions set by mktemp + * src/mktemp.c (usage): As above, for --help. + Reported by Jordi Pujol in http://bugs.debian.org/551093. + Wording improvments from Eric Blake. -2006-09-29 Jim Meyering <jim@meyering.net> +2011-07-13 Benoît Knecht <benoit.knecht@fsfe.org> - * NEWS: Mention Paul's fix (to gnulib's canon-host.c) for - the pinky segfault. + doc: note the order in which wc counts are printed + This information has already been added to the Texinfo manual, but was + missing from the --help output. - * tests/seq/basic [neg-2, eq-wid-2]: Comment out tests that - use .1 as the increment. Actual output varies too much. - [eq-wid-3]: New, commented out test. + * src/wc.c (usage): As above, for --help. + Reported by Vincent Lefevre in http://bugs.debian.org/395430. - * src/shuf.c (read_input): Fix an off-by-one error that - would cause an infloop for piped input of 8KB or more. +2011-07-12 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2011-07-12 Eric Blake <eblake@redhat.com> + + build: list makeinfo 4.13 as a build-from-git requirement + * bootstrap.conf (buildreq): List 4.13 as minimum makeinfo version. + Prompted by Joachim Schmitz's report in http://debbugs.gnu.org/9050. + +2011-07-11 Benoît Knecht <benoit.knecht@fsfe.org> + + dircolors: highlight .webm multimedia files + * src/dircolors.hin: Add .webm multimedia files. + Suggested by Josh Triplett in http://bugs.debian.org/582403. + +2011-07-08 Jim Meyering <meyering@redhat.com> + + maint: add syntax-check rule to prohibit "."-terminated "SEE ALSO" + * cfg.mk (sc_prohibit_man_see_also_period): Prohibit a period at + the end of the first line after a "SEE ALSO" marker in man/*.x. + With this, we shouldn't have to make any more changes like those + in today's commit, f2dabd68. + +2011-07-08 Pádraig Brady <P@draigBrady.com> + + doc: list all new file system types recognized by stat -f + NEWS (Improvements): Mention the MQUEUE and PSTOREFS + file systems, recognized as of commit 171e1b98. + +2011-07-08 Benoît Knecht <benoit.knecht@fsfe.org> + + doc: don't terminate SEE ALSO sections with a period + man-pages(7) explicitly says about SEE ALSO sections: "Do not terminate + this with a period." This is also in line with all the other man pages + in coreutils. + + * man/cat.x: Remove period at the end of the SEE ALSO section. + * man/tac.x: Likewise. + +2011-07-08 Pádraig Brady <P@draigBrady.com> + + timeout: handle signals more transparently + * m4/jm-macros.m4: Define HAVE_SETRLIMIT. + * src/timeout.c: If the child exited with a signal, + raise that signal to the timeout process itself, + so that callers may also see the signal status. + Use setrlimit to disable core dumps for the timeout + process, which would be generated by some signals. + + timeout: support cascaded timeouts + * src/timeout.c (cleanup): Send signals directly to the child + in case it has started its own process group (like a cascaded + timeout command would for example). + * test/misc/timeout-group: Add a test case. * NEWS: Mention the fix. - * tests/misc/shuf: Test for the above fix. - - Since any system may be affected by the Darwin readdir bug, - perform the extra rewinddir unconditionally. The performance - impact of rewinding a directory is negligible. - * src/remove.c (NEED_REWIND): Define to use - CONSECUTIVE_READDIR_UNLINK_THRESHOLD unconditionally. - - * tests/seq/basic: Use .11 as the upper bound, in case the ".1" - increment translates to a slightly larger value. - This corrects a test failure on FreeBSD 6.1 reported by Nelson Beebe. - The final expected value wasn't being printed. - - Work around a readdir bug in Darwin 7.9.0 (MacOS X 10.3.9) on HFS+ - and NFS, whereby rm would not remove all files in a directory. - * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Reduce to 10. - (NEED_REWIND): New macro, so that we incur the cost of the work-around - rewinddir only on afflicted systems. - * NEWS: Clarify and correct. - * tests/rm/readdir-bug: New file. Test for the above fix. - * tests/rm/Makefile.am (TESTS): Add it. - Prompted by testing and analysis from Bruno Haible: - http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00326.html - -2006-09-28 Paul Eggert <eggert@cs.ucla.edu> - - * tests/rm/fail-eperm: Unset BASH_ENV, CDPATH, and ENV, too; - suggested for Debian stable, which uses Perl 5.8.4. - -2006-09-28 Jim Meyering <jim@meyering.net> - - Automatically generated dependencies are important even - when all of the sources in a directory come from gnulib. - * bootstrap (gnulib_tool): Remove the "no-dependencies" automake - option that gnulib-tool adds to what becomes our lib/gnulib.mk. - - * tests/rm/fail-eperm: Enable Perl's (-T) taint checking. - Ensure that IFS is set properly and unset PATH. - Sanitize inputs. - Work properly even when the name of the selected file starts with "-". - Invoke rm via "../../src/rm", and adjust expected output. - Prompted by a patch from Tim Waugh. - - * README-cvs: Add Bison to the list of required packages. - -2006-09-26 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Update offsets. - - * NEWS: rm works around a bug in Darwin 8.6.1 w/NFS that kept - it from removing a directory containing 188 or more entries. - * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Decrease by - 20, go work around the buggy readdir on Darwin 8.6.1 with NFS. - Reported by Matthew Woehlke. -2006-09-26 Paul Eggert <eggert@cs.ucla.edu> +2011-07-08 Pádraig Brady <P@draigBrady.com> + + timeout: add --foreground to support interactive commands + Or more accurately, commands not started from the shell prompt, + that are interactive, or need to receive Ctrl-C etc. from the terminal. + + * doc/coreutils.texi (timeout invocation): Document --foreground. + * src/timeout.c (main): Set the foreground flag and don't create + a separate group. + (cleanup): Only send a signal directly to the monitored command + when the foreground flag is set. + (usage): Describe --foreground. + * tests/misc/timeout-group: Add a new test. + * tests/Makefile.am: Reference new test. + NEWS: Mention the new option. + + Reported by Shay Shimony + Analysis by Alan Curry + Fix suggested by Paul Eggert + +2011-07-08 Benoît Knecht <benoit.knecht@fsfe.org> + + doc: note that cp -l creates _hard_ links + This fact was already noted in the Texinfo manual, but not in the + output of --help. + * src/cp.c (usage): As above, for --help. + Reported by Jari Aalto in http://bugs.debian.org/294327. + +2011-07-07 Jim Meyering <meyering@redhat.com> + + tests: exercise md5sum's new --strict option + * tests/misc/md5sum: Exercise new --strict option. + +2011-07-07 Patrick Schoenfeld <schoenfeld@debian.org> + + md5sum, sha1sum, etc: accept new option: --strict + Use this new option with --check when the input is expected to + consist solely of checksum lines. With only --check, an invalid + line evokes a warning, but the program can still exit successfully. + With --strict, any invalid line makes the program exit non-zero. + + * src/md5sum.c (strict, STRICT_OPTION): Declare/define. + (long_options): Add "strict". + (usage): Describe --strict. + (digest_check): Count improperly_formatted lines, too, and use + that number and the global "strict" to determine the return value. + (main): Handle STRICT_OPTION. + Reject --strict without --check. + * doc/coreutils.texi: Describe it. + * NEWS (New features): Mention it. + +2011-07-07 Benoît Knecht <benoit.knecht@fsfe.org> + + doc: note date's %k, %l are space-padded and equivalent to %_H and %_I + * src/date.c (usage): As above, for --help. + * doc/coreutils.texi (Time conversion specifiers): Likewise. + Reported by Britton Leo Kerin in http://bugs.debian.org/115833. + +2011-07-07 Jim Meyering <meyering@redhat.com> + + stat: recognize GPFS as a file system type + * src/stat.c (human_fstype) [S_MAGIC_GPFS]: Add a case, + to handle GPFS_SUPER_MAGIC/0x47504653. Prompted by this discussion: + http://thread.gmane.org/gmane.comp.sysutils.autoconf.general/14007 + * NEWS (Improvements): Mention it. + +2011-07-02 Jim Meyering <meyering@redhat.com> + + maint: use "const" and "pure" function attributes where possible + * configure.ac (WARN_CFLAGS): Add -Wsuggest-attribute=const, + -Wsuggest-attribute=pure and -Wsuggest-attribute=noreturn. + (GNULIB_WARN_CFLAGS): But do not add them here... yet. + * src/chown-core.h (chopt_free, uid_to_name): Add function attribute(s). + * src/copy.c (is_ancestor, valid_options): Likewise. + * src/copy.h (chown_failure_ok): Likewise. + * src/dd.c (operand_matches, operand_is): Likewise. + * src/df.c (selected_fstype, excluded_fstype): Likewise. + * src/expr.c (null looks_like_integer): Likewise. + * src/md5sum.c (hex_digits): Likewise. + * src/od.c (get_lcm): Likewise. + * src/pathchk.c (component_start, component_len): Likewise. + * src/pinky.c (count_ampersands): Likewise. + * src/pr.c (cols_ready_to_print): Likewise. + * src/ptx.c (search_table): Likewise. + * src/sort.c (find_unit_order): Likewise. + * src/stty.c (mode_type_flag, string_to_baud, baud_to_value): Likewise. + * src/system.h (gcd, lcm): Likewise. + * src/tr.c (is_char_class_member, look_up_char_class): Likewise. + (star_digits_closebracket): Likewise. + * src/uniq.c (find_field): Likewise. + * src/wc.c (compute_number_width): Likewise. + * lib/xfts.h (cycle_warning_required): Likewise. + * gl/lib/randint.h (randint_get_source): Likewise. + * gl/lib/randperm.c (ceil_lg): Likewise. + * gl/lib/randperm.h (randperm_bound): Likewise. + * lib/strnumcmp.h (strintcmp): Likewise. + + buffer_lcm: declare with _GL_ATTRIBUTE_CONST + * lib/buffer-lcm.h (buffer_lcm): Use _GL_ATTRIBUTE_CONST. + * lib/buffer-lcm.c: Include <config.h>. + +2011-07-01 Pádraig Brady <P@draigBrady.com> + + doc: detail the effect of disabling input buffering with stdbuf + * docs/coreutils.texi (stdbuf invocation): Expand on the different + reasons for disabling buffering on input and output. + +2011-07-01 Bruno Haible <bruno@clisp.org> + + doc: mention the restrictions for stdbuf more prominently + * doc/coreutils.texi (stdbuf invocation): List the contraints + on the command being controlled, up front. + +2011-06-25 Jim Meyering <meyering@redhat.com> + + doc: improve ls --help grammar + * src/ls.c (usage): Improve grammar. + Reported by Peng Yu. + + doc: clarify an improvement from coreutils-7.0 + * NEWS (7.0 Improvements): Mention the command: "ls -1U". + * cfg.mk (old_NEWS_hash): Update. + + maint: don't use gnulib's pathmax module; define PATH_MAX if needed + * bootstrap.conf (gnulib_modules): Remove pathmax. + * src/system.h: Don't include "pathmax.h". + (PATH_MAX) [!PATH_MAX]: Define to 8192. Defining it to a constant + is preferable to using a definition from pathmax.h that might expand + to pathconf ("/", _PC_PATH_MAX). Prompted by discussion leading to: + http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/27183/focus=27269 + + build: bootstrap: remove obsolete gettext-related file exclusions + * bootstrap.conf: Don't bother to exclude gettext/intl-related + .m4 files. That exclusion is no longer necessary. + +2011-06-24 Pádraig Brady <P@draigBrady.com> + + stat: recognize MQUEUE and PSTOREFS file systems + * src/stat.c (human_fstype): Add magic numbers for + PSTOREFS and MQUEUE. + +2011-06-22 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: stat-free-color: do not count stat calls before main + * tests/ls/stat-free-color: The system may perform additional stat + calls upon loading (seen on OpenSuSE-11.4). Count only the number + of stat calls compared to --help. + This also reduces back to "1" the number of expected calls, + effectively reverting part of 2011-06-01 commit, ccf2d9a4. + +2011-06-21 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: cp/sparse-fiemap: use "head -n99" in place of "head -99" + * tests/cp/sparse-fiemap: Use "head -n99" in place of "head -99". + The latter is officially obsolete. + +2011-06-20 Jim Meyering <meyering@redhat.com> + + tests: init.sh: use "sed 1q" in place of "head -1" + * tests/init.sh (warn_): Use "sed 1q" in place of "head -1". + The latter is officially obsolete but more portable than "head -n1". + Reported by Bernhard Voelker. + + maint: update THANKS.in + * THANKS.in: Remove Stefano's name. + +2011-06-20 Bernhard Voelker <mail@bernhard-voelker.de> + + tests: improve init.sh by removing w2_ + * tests/init.sh (w2_): Remove, moving contents into... + (warn_): ...here. Call self from subshell when IFS must be changed. + +2011-06-19 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: avoid extra forks in the testsuite + * tests/shell-or-perl: Prefer the `read' builtin over `grep' to + look at the shebang line of test scripts. Since `read' is a + special builtin, it might abort the whole program upon failures, + so add extra sanity checks, verifying that the test script exists + and is readable, before trying to read from it. + +2011-06-19 Stefano Lattarini <stefano.lattarini@gmail.com> + + tests: make test runner a script, not a shell function + This change implements a more correct and idiomatic use of the + features of the Automake-provided 'parallel-tests' harness. + Moreover, this change is required in order for the testsuite to + continue to work with the new testsuite harness that is planned + to be introduced in Automake 1.12 (which, as of the writing date, + is still under development and in alpha state). + + * tests/shell-or-perl: New auxiliary script. + * tests/Makefile.am (EXTRA_DIST): Distribute it. + * tests/check.mk (TESTS_ENVIRONMENT): Remove definition of the + `shell_or_perl_' shell function, whose code has been moved in + the new script above (with a few improvements and extensions). + Do not use it to run the test scripts. + (LOG_COMPILER): New, properly invoking `shell-or-perl'. + +2011-06-19 Jim Meyering <meyering@redhat.com> + + stdbuf: fix automake variable name to work with cutting edge automake + * src/Makefile.am (pkglibexec_PROGRAMS): Rename from pkglib_PROGRAMS. + The latter is invalid. Without this change, automake + v1.11-373-g9ca6326 and newer (on master) would fail with this: + `pkglibdir' is not a legitimate directory for `PROGRAMS' + This changes the default installation directory of libstdbuf.so from + $prefix/lib/coreutils/ to + $prefix/libexec/coreutils/ + * src/stdbuf.c (set_LD_PRELOAD): Search in PKGLIBEXECDIR, not PKGLIBDIR, + since that's where we install libstdbuf.so. + Do not search in "", the system default search path. + +2011-06-19 Pádraig Brady <P@draigBrady.com> + + maint: avoid a false positive syntax check + * cfg.mk (sc_strftime_check): Skip the check when there + is no info to compare against. + Reported by Stefano Lattarini + +2011-06-19 James Youngman <jay@gnu.org> + + maint: typo: insert omitted word in test comment + * tests/misc/sort-spinlock-abuse: Fix typo: + s/"very expensive" are/"very expensive" tests are/ + +2011-06-18 Stefano Lattarini <stefano.lattarini@gmail.com> + + maint: fix typo in comment in configure.ac + * configure.ac ($MAN): Fix typo in explanatory comment. + +2011-06-18 Jim Meyering <meyering@redhat.com> + + tests: sort-debug-keys: fix a bug with translated diagnostics + Ensure that English diagnostics are emitted even when using + French sorting rules. + * tests/misc/sort-debug-keys: Unset LC_ALL and set LC_COLLATE, + LC_CTYPE and LC_NUMERIC to the fr_FR.UTF-8 locale, while setting + LC_MESSAGES=C. Reported by Stefano Lattarini. + +2011-06-17 Pádraig Brady <P@draigBrady.com> + + maint: remove duplicate names from THANKS + * .mailmap: Merge email addresses + * THANKS.in: Remove a duplicate name + Reported by Stefano Lattarini + +2011-06-17 Jim Meyering <meyering@redhat.com> + + maint: use modules/tempname.diff file, not a replacement; update gnulib + Using a .diff is much more maintainable. Otherwise, changes in + the gnulib module description file may not be noticed and merged + promptly and may even result in subtle errors. Luckily, this time, + the failure to propagate gnulib's changes to modules/tempname resulted + only in an obvious link failure. + * gl/modules/tempname: Remove file. + * gl/modules/tempname.diff: Use a .diff file instead. + * gnulib: Update submodule to latest. + + tests: avoid sort-spinlock-abuse false positive under heavy load + * tests/misc/sort-spinlock-abuse: Classify as "very expensive" to + avoid unwarranted failure once and for all. + + tests: remove skip_test_ function; use new skip_ instead + * tests/init.cfg (skip_test_): Remove function. + Use skip_ in place of skip_test_ everywhere else. + * cfg.mk (sc_prohibit_skip_): Remove rule. + * tests/**: Use skip_, not skip_test_, everywhere. + + tests: make init.sh's warn_ emit to both the tty and the log file + * tests/init.sh (warn_): When $stderr_fileno_ != 2, + emit the diagnostic to both the tty and the log file. + + tests: use printf, not echo in init.sh's warn_ function + * tests/init.sh (warn_): Use printf, not echo. The latter would + misbehave when given strings containing a backslash or starting + with e.g., -n. James Youngman suggested setting IFS. + +2011-06-14 Jim Meyering <meyering@redhat.com> + + tests: accommodate HP-UX and ksh-derived shells + Running "make check" normally prints a diagnostic to the outermost + stderr (usually a tty) to explain why a test is skipped. It did this + by redirecting FD 9 to stderr (via "exec 9>&2") before invoking the + shell script. Shell scripts write skip-explanation to FD 9 via + init.sh's skip_ function. However, with ksh and HP-UX's /bin/sh, + the effects of "exec 9>&2" are canceled upon fork-and-exec, so we + would get a "Bad file number" diagnostic and no skip explanation on + those systems. + * tests/check.mk (TESTS_ENVIRONMENT): Redirect more portably, via + "$(SHELL) 9>&2", rather than the prior "exec 9>&2; $(SHELL) ..." + Actually, we use "shell_or_perl_ 9>&2", to make this effective + also for the perl-based tests. + * tests/init.sh (stderr_fileno_): Update the advice in comments. + See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488 + for lots of discussion. Stefano Lattarini suggested the solution + of putting "9>&2" after the command. Reported by Bruno Haible. + +2011-06-13 Jim Meyering <meyering@redhat.com> + + init.sh: sync from gnulib + * tests/init.sh: Sync recent changes from gnulib. + + maint: revert previous commit + Revert "init.sh: accommodate shells for which 1>&$stderr_fileno_ fails" + This reverts commit 6fb9aeedd1b858a61d5cbf7f15782adf29ff733a. + That change did not solve the problem. For details, see + http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846#74 + + init.sh: accommodate shells for which 1>&$stderr_fileno_ fails + * tests/init.sh (warn_): Use eval to work around a bug in some shells, + like those of Solaris 10 and HP-UX 11.11. + Improved by Stefano Lattarini. + + doc: add NEWS items for recent gnulib fixes + * NEWS (Improvements): Mention the new HP-UX 11.11 ACL support. + (Build-related): Mention the cc/HP-UX 11.11 build fix. + + tests: avoid sort-spinlock-abuse false positive under heavy load + * tests/misc/sort-spinlock-abuse: This test would frequently fail + when run on a system under heavy load. Increase duration and limit. + +2011-06-13 James Youngman <jay@gnu.org> + + maint: use stat-size module from gnulib + * gnulib: Update to latest. + * src/system.h: Definitions of ST_* macros have moved into the + gnulib module stat-size (specifically, the header file + stat-size.h), so remove them from here. + * src/truncate.c: Include stat-size.h. + * src/stat.c: Likewise. + * src/shred.c: Likewise. + * src/ls.c: Likewise. + * src/du.c: Likewise. + * src/ioblksize.h: New file. Move definition of io_blksize out of + system.h so that system.h does not have to include stat-size.h. + * src/cat.c: Include ioblksize.h. + * src/split.c: Likewise. + * src/copy.c: Include both stat-size.h and ioblksize.h. + * src/Makefile.am (noinst_HEADERS): Add ioblksize.h. + +2011-06-13 Pádraig Brady <P@draigBrady.com> - * NEWS: "groups user" no longer outputs "user :"; you need at least - two users. "groups" now processes options like --help more compatibly. - * src/groups.sh: Implement the option-processing change. - Handle user and group names with special characters more robustly. - Report write errors instead of exiting silently with status 1. + tests: avoid a false failure on HPUX systems + * tests/dd/nocache: Relax the test, as the system + may return various errors from posix_fadvise(). + HPUX 11.31 returns ENOTTY for example. + Reported by Bruno Haible -2006-09-26 Jim Meyering <jim@meyering.net> +2011-06-11 Jim Meyering <meyering@redhat.com> - * README: Warn not to run autoreconf manually. Use bootstrap instead. + tests: inotify-rotate: avoid false positive under heavy load + * tests/tail-2/inotify-rotate: Increase timeout from 10s to 40s + to avoid load-induced false positive. - * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". - Rewrite to avoid using temporary, $status. +2011-06-09 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention the bug fix. - * src/groups.sh: Don't hide a write failure. - Reported by Iain Calder <ic56@rogers.com>. + maint: remove unneeded includes + Remove unneeded includes as reported by: + http://code.google.com/p/include-what-you-use/ + + * src/cp-hash.c: Remove unused include. + * src/dd.c: Likewise. + * src/du.c: Likewise. + * src/head.c: Likewise. + * src/kill.c: Likewise. + * src/ls.c: Likewise. + * src/stdbuf.c: Likewise. + * src/timeout.c: Likewise. + * src/truncate.c: Likewise. + +2011-06-09 Pádraig Brady <P@draigBrady.com> + + doc: add examples to date --help + * src/date.c (usage): Add examples for TZ handling, + and "seconds since epoch" parsing, neither of which + was mentioned in the man page until now. + * THANKS.in: Add Rick. + Suggested by Rick Stanley. + +2011-06-04 Jim Meyering <meyering@redhat.com> + + build: require at least 2-year old autoconf-2.64 (was 2.62) + * configure.ac: Require autoconf-2.64, which is nearly two years old. + * src/system.h (emit_ancillary_info): Use PACKAGE_URL, now that we + require autoconf-2.64. + + maint: remove now-spurious curly braces + * src/chown-core.c (restricted_chown): Remove FIXME comment and + superfluous curly braces. + +2011-06-01 Jim Meyering <meyering@redhat.com> + + tests: stat-free-color: accommodate stat of /selinux on rawhide + * tests/ls/stat-free-color: This test recently began to fail on + rawhide because dynamic library start-up code now stats "/selinux", + making the total number of calls 2 rather than the prior 1. + Create two more dangling symlinks, so that any erroneous stat- + or lstat-calling code will get at least those three. + +2011-06-01 Marek Polacek <mpolacek@redhat.com> + + yes.c: do not use exit after error + I think it would be better to exit through the error() and not + to call the exit() after the error(). This way we can get rid of + one function call (and curly brackets). + + * src/yes.c (main): Exit through the error(), remove exit() call + after error(). + +2011-06-01 Jim Meyering <meyering@redhat.com> + + tail: fix an inconsequential bug spotted by coverity + * src/tail.c (start_bytes): Increase *READ_POS (not READ_POS) + by the number of bytes read. This is a real bug that happens + to have no consequence in practice. First, this code is exercised + only when tailing-forever a non-regular file by bytes, and with a + start-relative offset, e.g., "mkfifo f; tail -f -c +3 f", but even + then, the invalid READ_POS value does not influence how tail works. + It is stored in the File_spec.size member, but that member is not + used at all in tail_forever_inotify, and in tail_forever, it is + used only when the File_spec refers to a regular file. + +2011-05-31 Paul Eggert <eggert@cs.ucla.edu> + + * doc/coreutils.texi (sort invocation): I/0 -> I/O (sr#107504) + +2011-05-29 Jim Meyering <meyering@redhat.com> + + maint: remove unnecessary gnulib .diff file + * gl/modules/getloadavg.diff: Remove file. It stopped being + useful back in February. + * Makefile.am (EXTRA_DIST): Remove it. + + maint: placate -Wsign-compare when it's non-invasive + * src/stdbuf.c: Declare loop index to be unsigned. + +2011-05-28 Jim Meyering <meyering@redhat.com> + + ls: placate gcc-4.7.0's -Wstrict-overflow + * src/ls.c (enum parse_state): Define. + (parse_ls_color): Use enum names in place of constants, + thus avoiding the offending -1. + + maint: remove useless (off_t) cast of lseek arg + * src/wc.c (wc): Remove unnecessary cast. + * src/head.c (elide_tail_bytes_file, elide_tail_lines_file): Likewise. + * src/tac.c (tac_seekable, tac_file): Likewise. + + tests: move tests/misc/split-* into tests/split/... + * tests/split/suffix-length: Rename from tests/misc/split-a. + * tests/split/b-chunk: Rename from misc/split-bchunk. + * tests/split/fail: Rename from tests/misc/split-fail. + * tests/split/lines: Rename from tests/misc/split-l. + * tests/split/l-chunk: Rename from tests/misc/split-lchunk. + * tests/split/r-chunk: Rename from tests/misc/split-rchunk. + * tests/Makefile.am (TESTS): Reflect renaming. + +2011-05-27 Pádraig Brady <P@draigBrady.com> + + chown,chgrp: output the original ownership in -v messages + * src/chown-core.c (describe_change): Output the + original owner if possible. + (user_group_str): Handle the case when neither + owner or group are passed. + * NEWS: Mention the change in behavior. + + chown,chgrp: output the correct ownership in -v messages + * src/chown_core.c (describe_change): Accept the ownership of + the original file and output that when not changing. + This is significant when --from is specified as then + the original and specified ownership may be different. + (user_group_str): A new helper function refactored from + describe_change(). + (change_file_owner): Pass the original user and group + strings to describe_change(). + * test/chown/basic: Add a test case. + * NEWS: Mention the fix. + + maint: fix a -Wstrict-overflow build failure with gcc 4.5 + * src/ls.c (print_color_indicator): Avoid the warning by + not decrementing the integer. + +2011-05-26 Jim Meyering <meyering@redhat.com> + + build: --enable-gcc-warnings: enable -Wstrict-overflow in src/ + * configure.ac (WARN_CFLAGS): Don't turn off -Wstrict-overflow. + (GNULIB_WARN_CFLAGS): Remove -Wstrict-overflow from the list of + warning options used in lib/. + Normally I find that -Wstrict-overflow produces too many false + positives, but considering that it warns of the bug reported in + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498, I now think + it is worthwhile. The lesser of two evils. + Thanks to Daniel Veillard for showing me the gcc bug report. + + maint: accommodate gcc's -Wstrict-overflow option + * src/factor.c (factor_using_pollard_rho): Change type of "i" + to unsigned to avoid warning from gcc's -Wstrict-overflow. + * src/expr.c: Use an unsigned intermediate. + * src/dircolors.c (main): Reorder operations to avoid the risk of + pointer overflow. + * src/tr.c (squeeze_filter): Change NOT_A_CHAR from an anonymous + "enum" to an "int", to avoid this warning: + tr.c:1624:10: error: assuming signed overflow does not occur when + simplifying conditional to constant [-Werror=strict-overflow] + * src/pr.c (main): Make index "i" unsigned. + + maint: enforce cpp indentation policy + * cfg.mk (sc_preprocessor_indentation): New test, from libvirt. + Exempt 3 files from new cppi test. + * gl/lib/randread.c: Adjust cpp indentation to comply. + * src/extent-scan.c (extent_need_sync): Likewise. + + maint: env.c: remove unnecessary use of strchr + * src/env.c (main): Remove excess (and confusing to static analyzers) + use of strchr. + + shred: placate coverity and fix a comment + * src/shred.c (incname): Add an assertion to tell static analyzers + that we know this particular use of strchr never returns NULL. + Finish incomplete sentence in function-describing comment. + +2011-05-26 Pádraig Brady <P@draigBrady.com> + + maint: split: remove --filter specific code from other paths + * src/split.c (lines_chunk_split): Don't use ignore_error() which + is redundant and confusing when not running with --filter. + (lines_rr): Likewise. + (ofile_open): Likewise. Add a comment to clarify that + filters aren't restarted under file descriptor pressure. + + split: diagnose when --filter is used with a chunk number + * src/split.c (main): Exit with a diagnostic if --filter + is specified along with a specific chunk number. + * test/split/filter: Ensure this combination fails. + + split: exit when we can no longer write to a --filter + * src/split.c (bytes_split): Stop reading when we + can no longer write to a child process. + (lines_rr): Likewise. + (lines_bytes_split): No change is made here since + input is bounded by the original file size. + * test/split/filter: Add test cases. + + split: return success even if a --filter exits + src/split.c (main): Don't unblock SIGPIPE before cleanup, + as then any pending signals will be sent and cause + the main split process to exit with a non zero status (141). + * test/split/filter: Add a test for this case. + +2011-05-25 Pádraig Brady <P@draigBrady.com> + + split: fix an edge case where -n l/... creates an extra file + * src/split.c (lines_bytes_chunk): Handle the edge case + where the file is truncated as we read. + * tests/misc/split-lchunk: Cleanup; no functional change. + +2011-05-25 Bernhard Voelker <mail@bernhard-voelker.de> + + chmod: output the original mode in verbose mode + * src/chmod.c (describe_change): Pass in the original mode, + and output this in the messages. + * tests/chmod/c-option: Adjust as per the new message. + * THANKS.in: Remove the now auto-generated name. + * NEWS: Mention the change in behavior. + +2011-05-25 Jim Meyering <meyering@redhat.com> + + tests: ls/stat-free-color: fix unwarranted failure on a 32-bit system + * tests/ls/stat-free-color: Also check for stat64 and lstat64 syscalls. + This fixes a test failure reported by Stefano Lattarini. + + maint: accommodate gnulib's newer tight_scope rule + * cfg.mk: Include via "-include", to accommodate new tight-scope rule. + (sc_check-AUTHORS): Change the name of the rule in src/Makefile.am + to _sc_check-AUTHORS, so it doesn't conflict with this one when + this file is included into the sub-make's context. + * src/Makefile.am (_sc_check-AUTHORS): Rename from sc_check-AUTHORS. + * gnulib: Update to latest. + + doc: make README-hacking slightly more generic + * README-hacking: Remove a reference to "coreutils". + + touch: placate static analyzers: no NULL-deref is possible + * src/touch.c (main): Avoid even the hint of possibility that + we'd dereference NULL upon localtime failure. Coverity reported + the potential, but it appears not to be possible, since posixtime + rejects any time for which the subsequent localtime would return NULL. + See http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1253 + +2011-05-24 Pádraig Brady <P@draigBrady.com> + + split: fix cases where -n l/... creates extraneous files + * src/split.c (lines_chunk_split): Ensure that data is only + written to stdout when k specified. Also ensure that + extra files are not created when there is more data available + than reported in the file size. + * tests/misc/split-lchunk: Verify that split -n l/k/n doesn't + generate any files, and that -n l/n always generates n files. + * NEWS: Mention the fix. + +2011-05-24 Stéphane Raimbault <stephane.raimbault@gmail.com> + + doc: add a missing space in timeout --help + * src/timeout.c (usage): Add a space to be consistent + with other uses of "(the default)" in the documentation. + +2011-05-24 Pádraig Brady <P@draigBrady.com> + + doc: improve tail -f vs. inotify description and advice + * doc/coreutils.texi (tail invocation): Adjust, and add an example. + +2011-05-23 Jim Meyering <meyering@redhat.com> + + maint: avoid trivial syntax-check failure + * doc/coreutils.texi (tail invocation): Use @var{n}, not @var{N}. + +2011-05-23 Karl Berry <karl@gnu.org> + + maint: README-hacking clarifications + * README-hacking: Small getting-started clarifications. + +2011-05-23 Jim Meyering <meyering@redhat.com> + + doc: describe how kernel inotify support affects tail -f + * doc/coreutils.texi (tail invocation) [-f]: Mention how inotify + kernel support makes a difference. + Prompted by http://bugzilla.redhat.com/662900 + +2011-05-22 Jim Meyering <meyering@redhat.com> + + tests: fix typo in tac-continue + * tests/misc/tac-continue: Fix typo in usually-skipped test: + s/mkfifo_or_skip/mkfifo_or_skip_/ (i.e., append "_"). + This test is usually skipped, because I'm probably the only + one to set the FULL_PARTITION_TMPDIR envvar, and recently the + one I'd been using ceased to exist, so this test was skipped + even for me. Good argument for making this a root-only test + and creating a full partition just for this test case. + + doc: fix a formatting nit in od's texinfo documentation + * doc/coreutils.texi (od invocation): Typesetting of "bytes" was wrong. + Fix it via s/@code/@var/ so it's consistent. + +2011-05-21 Ivan Sichmann Freitas <ivansichfreitas@gmail.com> + + maint: fix comment typos in df.c + * src/df.c: s/Optain/Obtain/ + +2011-05-19 Jim Meyering <meyering@redhat.com> + + maint: correct typos involving misuse of "a" and "an" + * NEWS: "an misleading" + * src/expr.c: "a integer + * src/ptx.c (find_occurs_in_text): "a end" + * src/shred.c (do_wipefd): "a infinite" + * src/sort.c (SUBTHREAD_LINES_HEURISTIC): "an dual-core" + (compare_random): "an checksum" + * cfg.mk (old_NEWS_hash): Update, since the typo was in old news. + +2011-05-18 Pádraig Brady <P@draigBrady.com> + + printf: fix an out-of-bounds memory access + * src/printf.c (STRTOX): Don't access memory after a + string containing a single quote character. + * tests/misc/printf: Add tests for various combinations + of single quote characters combined with a numeric format. + * THANKS.in: Add bug reporter. + * NEWS: Mention the fix. + + Reported-by: Paul Marinescu <paul.marinescu@imperial.ac.uk> + +2011-05-17 Pádraig Brady <P@draigBrady.com> + + doc: mention that ls time ordering is newest first + * src/ls.c (usage): Add the "newest first" info to + the -t and -c options + +2011-05-14 Pádraig Brady <P@draigBrady.com> + + tests: refactor more tests to use mkfifo_or_skip_ + * tests/cp/existing-perm-race: s/mkfifo/mkfifo_or_skip_/ + * tests/cp/file-perm-race: Likewise. + * tests/cp/parent-perm-race: Likewise. + * tests/cp/special-f: Likewise. + * tests/dd/reblock: Likewise. + * tests/ls/file-type: Likewise. + * tests/misc/cat-buf: Likewise. + * tests/misc/mknod: Likewise. + * tests/misc/printf-surprise: Likewise. + * tests/misc/selinux: Likewise. + * tests/misc/sort-spinlock-abuse: Likewise. + * tests/misc/stdbuf: Likewise. + * tests/misc/tac-continue: Likewise. + * tests/init.cfg: Improve the error message when skipping. + + shuf: use memory more efficiently when returning a subset + * gl/lib/randperm.c (randperm_new): When the number of items + to return H, is much smaller than the total number of items N, + use a hash to represent the sparse permutations of the set N. + This is currently enabled for N > 128K and N/H > 32. + * tests/misc/shuf: Ensure shuf can quickly return 2 numbers + from a large range. + * gl/modules/randperm: Depend on hash. + * NEWS: Mention the change. + +2011-05-13 Jim Meyering <meyering@redhat.com> + + maint: avoid syntax-check failure due to long line + * tests/du/bigtime (future_time): Split long line. + + maint: add new syntax-check rule to prohibit use of skip_ + * cfg.mk (sc_prohibit_skip_): New rule. + * tests/init.cfg (skip_test_): Add a comment. + + tests: use skip_test_, not skip_ + skip_test_ emits its diagnostic both to FD 9 (tty), and to + FD 2 (usually the log file), whereas init.sh's skip_ emits + only to FD 9. Without that, the log is slightly less useful. + * tests/cp/fiemap-2: Use skip_test_, not skip_. + * tests/cp/fiemap-perf: Likewise. + * tests/du/bigtime: Likewise. + * tests/du/files0-from-dir: Likewise. + * tests/du/move-dir-while-traversing: Likewise. + * tests/init.sh: Likewise. + * tests/misc/sort-stale-thread-mem: Likewise. + * tests/misc/stat-nanoseconds: Likewise. + * tests/mv/i-3: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + * tests/split/filter: Likewise. + Prompted by a report from Pádraig Brady. + + ls: allow stat-free use of --color + Even on a system with d_type support, the default use of --color + makes ls stat every file in order to be able to honor settings like + EXEC, STICKY, ORPHAN, SETUID, etc., because those settings require + information that is not provided by dirent.d_type. However, if + for a potentially large performance gain, you are willing to disable + those settings, you can now make ls --color give type-related coloring + and perform no stat calls at all (other than the unavoidable call-per- + command-line argument). Before this change, even with all of those + attributes disabled, ls --color would still stat every directory. + Now, we're down to the minimum of one stat call per command-line arg. + * src/ls.c (gobble_file): With --color, don't stat a + non-command-line-specified directory when no directory-coloring + attribute is enabled. + * tests/init.cfg (require_dirent_d_type_): New function. + * tests/d_type-check: New script, mostly from Pádraig Brady. + * tests/Makefile.am (EXTRA_DIST): Add it. + * tests/ls/stat-free-color: New test. + * tests/Makefile.am (TESTS): Add it. + * doc/coreutils.texi (General output formatting): Describe how + to use dircolors to make ls --color refrain from calling stat + on a d_type-enabled file system. + Prompted by a query from Josef Bacik. + +2011-05-12 Jim Meyering <meyering@redhat.com> + + maint: use <unistd.h>, not "group-member.h" + gnulib's group-member module now ensures that the group_member + function is declared in <unistd.h>, just like it is glibc. + * lib/euidaccess-stat.c: Remove inclusion of "group-member.h". + * src/chgrp.c: Likewise. + + build: update gnulib submodule to latest + +2011-05-11 Jim Meyering <meyering@redhat.com> + + maint: remove syntax-checking sc_tight_scope rule + * src/Makefile.am (sc_tight_scope): Remove rule. + Now it's provided via gnulib's maint.mk. + * cfg.mk (sc_tight_scope): Likewise. + + maint: tail: mark a global variable as static + * src/tail.c [HAVE_INOTIFY] (inotify_wd_mask): Declare static. + +2011-05-08 Pádraig Brady <P@draigBrady.com> + + maint: remove -Wmissing-field-initializers workarounds + * configure.ac: Rather than disabling -Wmissing-field-initializers, + use the fact that gnulib now disables it automatically when required + (on versions of GCC older than 4.7). + * src/system.h: Remove the no longer needed DECLARE_ZEROED_AGGREGATE. + * src/ls.c: Likewise. + * src/pathchk.c: Likewise. + * src/shred.c: Likewise. + * src/stty.c: Likewise. + * src/wc.c: Likewise. + +2011-05-07 Jim Meyering <meyering@redhat.com> + + tests: don't fail the split --filter=CMD test if xz is not available + * tests/split/filter: Skip if xz is not installed. + +2011-05-06 Jim Meyering <meyering@redhat.com> + + doc: document split's new --filter=CMD option + * doc/coreutils.texi (split invocation): Describe --filter=CMD. + * NEWS (New feature): Mention it. + + tests: test split's new --filter=CMD option + * tests/Makefile.am (TESTS): Add split/filter. + * tests/split/filter: New file. + +2011-05-06 Karl Heuer <kwzh@gnu.org> + + split: accept new output --filter=CMD option + * src/split.c: Include <signal.h>, <sys/wait.h> and "sig2str.h". + (FILTER_OPTION): New anonymous enum member. + (filter_command, filter_pid): New globals. + (open_pipes, open_pipes_alloc, n_open_pipes): Likewise. + (oldblocked, newblocked): Likewise. + (longopts): Add "filter". + (usage): Document --filter. + (create): Extend to create a pipe and fork "sh -c CMD". + (closeout): Adapt to close a pipe and wait for child process. + (cwrite): Call closeout, not just close. + (lines_chunk_split): FIXME + (bytes_chunk_extract): FIXME + (opid, ofile_open, lines_rr, main): FIXME + (ignorable): New function, to encapsulate EPIPE test. -2006-09-25 Jim Meyering <jim@meyering.net> +2011-05-06 Jim Meyering <meyering@redhat.com> - * src/chown.c (usage): Clarify --dereference description. - * src/chgrp.c (usage): Likewise. Suggestion from Jamie McClelland. + build: update gnulib submodule to latest -2006-09-24 Jim Meyering <jim@meyering.net> +2011-05-06 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention these fixes. - * src/copy.c (copy_reg): With --verbose (-v), print - "removed `file_name'" just after unlinking a file. - (copy_internal): Likewise, in three more places. - Marc Lehman reported that "touch x; ln x y; mv -v x y" was silent. - * tests/mv/hard-verbose: New file. Test for the above fix. - * tests/mv/Makefile.am (TESTS): Add hard-verbose. + sort: fix a contradictory --debug warning + * src/sort.c (key_warn): `sort -k2,1n --debug` would output + warnings about being both "zero width" and "spanning multiple fields". + Suppress the latter one. + * tests/misc/sort-debug-warn: Add a couple of test cases. - * tests/help-version (sync_args): Don't call sync, since it spins up - disks that I've deliberately caused to spin down (but not unmounted). +2011-05-05 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention the improvement to sort. + df: fix crash in mem exhaustion edge case + * src/df.c (print_table): Don't try to output NULL + if ambsalign() can't allocate memory. Instead just + output the unaligned text. - * tests/tail-2/proc-ksyms: Require that /proc/ksyms be readable - as well as existing. +2011-05-03 Jim Meyering <meyering@redhat.com> - * tests/ls/stat-dtype: Don't use tmpfs on linux-2.4 or older, - since that predated addition of d_type support. + maint: remove use of gnulib's obsolete strtol module + * bootstrap.conf (gnulib_modules): Remove now-obsolete "strtol". + Remove use of $obsolete_gnulib_modules: unused since commit edc69f91. -2006-09-23 Jim Meyering <jim@meyering.net> + maint: remove unnecessary listing of update-copyright in Makefile.am + * Makefile.am (changelog_etc): Don't list update-copyright here. + It is automatically included via gnulib-tool-generated lib/gnulib.mk. - * gl/modules/getloadavg.diff: New file. Work around the way the latest - version of the getloadavg module interacts with our bootstrap script. - * bootstrap (gnulib_tool_options): Add "--local-dir gl". - * Makefile.am (EXTRA_DIST): Sort file names. - Add bootstrap and gl/modules/getloadavg.diff + doc: remove a name from THANKS.in that is derived from git log + * THANKS.in: Remove a now-duplicate name. -2006-09-20 Paul Eggert <eggert@cs.ucla.edu> +2011-05-03 Jim Meyering <meyering@redhat.com> - * bootstrap: Add support for --force. - (usage): New function. Describe usage less tersely. - (CVS_only_file): New var. + copy: fix my typo + * src/copy.c (copy_reg): Fix my typo (mis-applied patch). + The patch by Jeff Liu was fine, but I mis-applied it + and introduced a compilation error in commit efa479c1. - * NEWS: Document fix for cp -i and mv -i. - * src/copy.c (copy_internal): With -i, prompt even if the source - is a directory and the destination is not. This is required by - POSIX and gives the user a chance to bail out before failing. - * tests/cp/Makefile.am (TESTS): Add cp-i. - * tests/cp/cp-i: New file. - * tests/mv/Makefile.am (TESTS): Add i-5. - * tests/mv/i-5: New file. + 2011-05-03 Jim Meyering <meyering@redhat.com> -2006-09-20 Jim Meyering <jim@meyering.net> +2011-05-03 Jim Meyering <meyering@redhat.com> - * NEWS: Mention the chmod bug fix. + build: avoid bootstrap failure when $GZIP is set + Running "GZIP=-9 ./bootstrap" would fail right away, because the + tool-version-checking code would treat the upper-cased program name + as an environment variable name and if that has a value use the + result as the application name. That works fine for automake, + autoconf, etc. but not for gzip. + * bootstrap (check_versions): Do not treat $GZIP as a program name. + If defined at all, it is supposed to list gzip options. + Reported by Alan Curry in http://debbugs.gnu.org/8609 - * tests/chmod/inaccessible: New test, specifically for this bug. - Based on a test case from Paul Eggert. - * tests/chmod/Makefile.am (TESTS): Add inaccessible. +2011-05-03 Jeff Liu <jeff.liu@oracle.com> - Fix the 2006-09-18 bug differently. - * src/chmod.c: (process_file): Upon FTS_NS for a top-level file, - tell fts_read to stat the file again, in case it has become - accessible since the initial fts_open call. + copy: correct misuse of quote in diagnostic + * src/copy.c (copy_reg): Multiple uses of quote (s) in an + argument list is erroneous. Use quote_n, instead. + +2011-04-30 Jim Meyering <meyering@redhat.com> + + maint: adjust split.c formatting to conform + * src/split.c (usage): Correct indentation. + (ofile_open): Likewise. + (create): "char *name", not "char* name". + (struct of_info) [ofile]: Similar. + (parse_chunk): Add spaces around "+". + +2011-04-29 Eric Blake <eblake@redhat.com> + + build: update to latest gnulib + * gnulib: Update to latest. + * bootstrap.conf (gnulib_modules): Add xgetgroups. + +2011-04-29 Jim Meyering <meyering@redhat.com> + + tests: distribute new file, CuSkip.pm + Without this, most perl-based tests would fail in "make distcheck". + * tests/Makefile.am (EXTRA_DIST): Add CuSkip.pm + +2011-04-28 Jim Meyering <meyering@redhat.com> + + tests: remove useless test: misc/pwd-unreadable-parent + * tests/Makefile.am (TESTS): Remove misc/pwd-unreadable-parent. + This test was misleading and useless (was always skipped). + Inspired by a report from Bruno Haible: http://debbugs.gnu.org/8570 + * tests/misc/pwd-unreadable-parent: Remove file. + + tests: write skip explanation from perl scripts also to outer stderr + * tests/CuSkip.pm (skip): New file/module/function, to help + the perl test scripts "skip" a test consistently, emitting + a diagnostic both into the log file and into the outermost + stderr stream that is more likely to be seen by a human. + * tests/check.mk (TESTS_ENVIRONMENT): Add -MCuSkip. + * tests/misc/date-next-dow: Use CuSkip::skip in place of warn+exit-77. + * tests/misc/tty-eof: Likewise. + * tests/misc/uniq: Likewise. + * tests/rm/fail-eperm: Likewise. + * tests/misc/md5sum-newline: Likewise. Also, s/program_name/ME/. + * tests/misc/ls-misc (setuid_setup, main): Likewise. + * tests/misc/pwd-long: Likewise, and add -I"$abs_srcdir" -MCuSkip + to the $PERL invocation command. + Inspired by a request from Bruno Haible regarding misc/tty-eof: + http://debbugs.gnu.org/8570 + +2011-04-26 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.12 + * NEWS: Record release date. + + maint: tweak sc_tight_scope rule + * src/Makefile.am (sc_tight_scope): Remove useless quotes, + change 1>&2 to >&2, and combine a few short lines. + + dd: work around compilation failure on AIX 5.1 and 5.2 + * src/dd.c (O_NOCACHE): Undefine. This symbol is defined + via AIX's <fcntl.h>, yet used as an enum name in dd.c. + Reported by Gary V. Vaughan in http://debbugs.gnu.org/8555 + * NEWS (Portability): Mention this. + + maint: move two small functions, so we can remove a fwd decl + * src/dd.c (cleanup, quit): Move the definition of quit to follow the + definition of process_signals, so we can remove the declaration of + the latter. + +2011-04-25 Jim Meyering <meyering@redhat.com> + + maint: change some leading 8-space sequences to TABs in a Makefile.am + src/Makefile.am (fs-magic, fs-kernel-magic): Change some leading + 8-space sequences to TABs. + + stat: recognize V9FS and ECRYPTFS file systems + * src/stat.c (human_fstype): Add magic numbers for V9FS and ECRYPTFS. + + tail --follow=name no longer implies --retry + * src/tail.c (tail_forever_inotify): Just as without inotify, + tail --follow=name now terminates when the last tailed-by-name file + is unlinked or moved aside. This bug was introduced on 2009-06-15 + via commit ae494d4b, "tail: use inotify if it is available". + Reported by Tim Underwood in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22286 + * NEWS (Bug fixes): Mention this. + * tests/tail-2/follow-name: Test for this. + * tests/Makefile.am (TESTS): Add it. + +2011-04-25 Jeff Liu <jeff.liu@oracle.com> + + copy: include both src and dest names in clone failure diagnostic + * src/copy.c (copy_reg): Upon btrfs clone failure, print not just + the destination file name, but also the source file name. + That may be useful upon failure of a cross-device clone attempt. + +2011-04-25 Jim Meyering <meyering@redhat.com> + + tests: tail-2/pipe-f2: avoid false-positive failure + Otherwise, this would fail (albeit rarely) on a "make -j24 check" run. + * tests/tail-2/pipe-f2: Increase timeout from 1 second to 10, + to avoid false positive failure. + + maint: explicitly list full-read and full-write module names + * bootstrap.conf (gnulib_modules): Include full-read and full-write + explicitly. Before, we'd get them via safe-read, but with newer + gnulib, that is no longer enough: link failure due to undefined + references to full_write. + + doc: tail/inotify does use --sleep-interval=S, with --pid=P + * doc/coreutils.texi (tail invocation): Mention it. + * src/tail.c (usage): Likewise. + (tail_forever_inotify): Clarify comment. + +2011-04-22 Alan Curry <pacman-cu@kosh.dhis.org> + + tests: sparse-fiemap: adjust syntax to accommodate older awk + * tests/cp/sparse-fiemap: Parenthesize ternary expression used + as an argument to awk's printf. Otherwise, gawk 3.0.1 and the + one from debian stable's original-awk would get a syntax error. + Reported by Dennis Clarke. + + Copyright note: tiny change + +2011-04-21 Jim Meyering <meyering@redhat.com> + + tests: sparse-fiemap: with root/ext3, do not create an ext4 FS + * tests/cp/sparse-fiemap: When this test was run as root on an ext3 + file system, (ext3 had known problems), it would trickily create and + mount a loopback ext4 file system and use that instead. However, due + to a bug in 2.6.39-rc1..rc3, this loopback test (when run in another + loopback FS) exposed a bug with 1k-blocksize ext4 whereby non-NUL + data would be read from a hole. For details, see this: + http://thread.gmane.org/gmane.comp.file-systems.ext4/24495 + + tests: sparse-fiemap: report more detail upon failure; ignore an FP + * tests/cp/sparse-fiemap: Fail right away with details, when cmp fails. + When extent maps are found to differ, display them and merely warn. + +2011-04-20 Jim Meyering <meyering@redhat.com> + + copy: use FIEMAP (extent_copy) only for apparently-sparse files, + to avoid the expense of extent_copy's unconditional use of + FIEMAP_FLAG_SYNC. + * src/copy.c (copy_reg): Do not attempt extent_copy on a file + that appears to have no holes. + * NEWS (Changes in behavior): Document this. At first I labeled this + as a bug fix, but that would be inaccurate, considering there is no + documentation of FIEMAP semantics, nor even consensus among kernel + FS developers. Here's hoping SEEK_HOLE/SEEK_DATA support will soon + make it into the linux kernel. + + copy: factor out a tiny sparse-testing function + * src/copy.c (HAVE_STRUCT_STAT_ST_BLOCKS): Define to 0 if undefined, + so we can use it in the return expression, here: + (is_probably_sparse): New function, factored out of... + (copy_reg): ...here. Use the new function. + + copy: do not treat unwritten extents specially: avoid XFS/ext4 data loss + * src/copy.c (extent_copy): Do not treat "unwritten extents" specially. + Otherwise, with a release-candidate 2.6.39-rc3 kernel, XFS or ext4, + when using gold as your linker, and if you forget to run "make check", + you could end up installing files full of zeros instead of the expected + binaries. For a lot of discussion, see + http://thread.gmane.org/gmane.comp.file-systems.xfs.general/37895 + * tests/cp/fiemap-empty: Disable this test. + + copy: always use FIEMAP_FLAG_SYNC, for now + * src/extent-scan.c (extent_need_sync): Always return true, + to make the sole caller always use FIEMAP_FLAG_SYNC. + This will doubtless have an undesirable performance impact, + but we'll mitigate that shortly, by using extent_copy only on + files with holes. + + tests: remove spurious syntax from a perl snippet + * tests/cp/sparse-fiemap: Remove spurious BEGIN {...} block. + +2011-04-17 Ondřej Vašík <ovasik@redhat.com> + + dircolors: add .ear, .war, .sar, for Java jar-like archives + * src/dircolors.hin: Add .ear, .war, .sar, for Java jar-like archives + Suggested by Ville Skyttä in https://bugzilla.redhat.com/616497. + +2011-04-13 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.11 + * NEWS: Record release date. + +2011-04-13 Pádraig Brady <P@draigBrady.com> + + maint: mention dd's new partial read warning in NEWS + * NEWS: Mention the new feature, from commits e1788d9e and 194c1e89 + + tests: fix a false positive fiemap test on some file systems + * tests/filefrag-extent-compare: Don't check the length of the + last extent, as this was seen to vary on XFS, where it leaves + trailing blocks allocated for performance reasons. + * tests/cp/fiemap-empty: Though not seen as an issue in practise, + try to avoid possible issues with the allocator in file systems, + by requesting to allocate a power of 2. + +2011-04-12 Pádraig Brady <P@draigBrady.com> + + maint: correct kernel version in test comment + +2011-04-12 Jim Meyering <meyering@redhat.com> + + maint: remove unnecessary inclusion of <stdio.h> + * src/extent-scan.c: Don't include <stdio.h>. It was not used. + +2011-04-11 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + cfg.mk: remove useless semicolon and backslash + * cfg.mk (sc_NEWS_two_empty_lines): Remove semicolon and backslash. + + doc: tweak NEWS + * NEWS: Slightly obfuscate a line to avoid a false-positive + doubled-word ("is-is") match. + Fix a grammar error in news for 8.2. + * cfg.mk (old_NEWS_hash): Resync. + + maint: install: remove support for --preserve_context ("_", not "-") + * src/install.c: Its use has elicited a warning for two years. + Use --preserve-context instead. + * NEWS (changes in behavior): Mention this. + + maint: reorder install.c to eliminate declarations of static functions + * src/install.c: Remove static function declarations. + + maint: rename variables for clarity... + and to avoid a false-positive "TO to" in new doubled word check. + * src/install.c (change_timestamps): Rename parameters for + readability. Make the comment match the code. + + maint: remove doubled words in comments, e.g., s/to to/to/ + * tests/ls/color-norm: s/to to/to/ + * gl/lib/mbsalign.h (mbs_align_t): s/or or/or/ + * src/extent-scan.c (extent_scan_read): s/the the/the/ + * src/libstdbuf.c: s/the the/the/ + * tests/misc/stdbuf: s/on on/on/ + * ChangeLog-2005: s/for\n\tfor /for\n\t/ + +2011-04-11 Pádraig Brady <P@draigBrady.com> + + maint: misc typo fixes + * src/fiemap.h: s/can not/cannot/ + * NEWS: s/in/is/ + * doc/coreutils.texi: Remove spurious "and". + s/effect/affect/ + Use matched ``...'' quotes. + +2011-04-07 Pádraig Brady <P@draigBrady.com> + + maint: correct kernel version in NEWS + * NEWS: Adjust to match commit 1c3654cb, 2011-04-02, + "copy: require fiemap sync also for 2.6.38 kernels" + +2011-04-06 Pádraig Brady <P@draigBrady.com> + + copy: handle mergeable extents across fiemap scans + * extent-scan.h (extent_scan_free): Init the pointer to NULL, + and reset the count to 0, so that we can realloc the buffer. + * src/extent-scan.c (extent_scan_init): Likewise. + (extent_scan_read): Loop over multiple fiemap scans, so we handle + mergeable extents that span across fiemap scan boundaries. Once + we have enough unique extents, return so as to minimize memory use. + + copy: fix an unlikely memory leak when a fiemap copy fails + * src/copy.c (extent_copy): Free the extents array when + sparse_copy() fails. + +2011-04-04 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious parallel failure due to temporary disk full + Running the new fiemap-empty test uses 600MB of disk space via + fallocate, and in so doing caused failure in unrelated tests that + were running in parallel on a small file system. Rather than + simply running fallocate (which allocates the space, inducing + disk full when it fails), skip the test if there is less than + 800MB of free space, as computed via stat and awk. + * tests/init.cfg (require_file_system_bytes_free_): New function. + * tests/cp/fiemap-empty: Use it. + + tests: don't ever leave a backgrounded "sleep 10m" process + * tests/misc/help-version: Sleep only ~30s, not 10m. + The latter was a problem when somehow that sleep process would + hang around and thereby prevent (for up to 10m) a normal unmount + of the temporary partition in which I'd run the tests. + + tests: preserve-gid: don't chown temporary PATH dir to a nameless UID + * tests/cp/preserve-gid: Simply chmod a+rx instead. + That is safer, in case the nameless UID actually has an account, + and might take advantage of root running a program in a directory + under its control + + tests: preserve-gid: remove useless use of "env" + * tests/cp/preserve-gid: Remove useless use of "env". + + tests: convert common root-build test failure to a "skip" + * tests/mv/sticky-to-xpart: Skip rather than failing this test + when run as root and the binaries are not accessible by "nobody". + + tests: minor improvement of sc_tight_scope rule + * src/Makefile.am (sc_tight_scope): Adjust rule to use an eval-based + trap-setting for-loop rather than 4x hard-coded 128+N constants. + Also catch SIGQUIT (3). Tweak comments. + +2011-04-04 Eric Blake <eblake@redhat.com> + + docs: mention POSIX 2008 + * doc/coreutils.texi (Standards conformance): Give value of + _POSIX2_VERSION matching the _POSIX_C_SOURCE of POSIX 2008. + +2011-04-03 Jim Meyering <meyering@redhat.com> + + maint: prohibit direct use of strncmp: prefer STREQ_LEN, STRNCMP_LIT + * cfg.mk (sc_prohibit_strncmp): New rule, mostly from libvirt. + * src/system.h (STREQ_LEN, STRPREFIX, STRNCMP_LIT): Define. + * src/df.c (get_dev, get_point): Convert. + * src/extent-scan.c (extent_need_sync): Likewise. + * src/ls.c (is_colored, decode_switches): Likewise. + (parse_ls_color, (print_color_indicator): Likewise. + * src/md5sum.c (split_3): Likewise. + * src/split.c (main, emit_ancillary_info): Likewise. + * src/tr.c (look_up_char_class): Likewise. + * src/uname.c (main): Likewise. + * src/who.c (scan_entries): Likewise. + + copy: require fiemap sync also for 2.6.38 kernels + * src/extent-scan.c (extent_need_sync): Require sync also for 2.6.38. + Without this, part of the cp/fiemap-empty test would fail both on + F15-to-be (2.6.38.1-6.fc15.x86_64) and rawhide. For details, see + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22190 + +2011-04-02 Jim Meyering <meyering@redhat.com> + + cp: always detect copy-into-self: avoid infloop w/large PATH_MAX + When running the erroneous command, cp -rl A D D, and depending on the + structure of directories A and D and the file system type (because that + changes order of dir. entry traversal), cp would sometimes fail to + detect that D was being copied into D, and would create D/D/D/D/D/... + until it hit PATH_MAX or exhausted some resource. + I noticed this via the occasional failure of the cp/into-self test + when run using a ZFS file system. It is occasional because the bug + is dependent on the order in which directory entries are traversed, + and that is apparently indeterminate with ZFS. + Technically, with the current recursive implementation, there is no + risk of an infinite loop, due to stack limitations, but with an + eventual fts-based implementation, it might have iterated until + disk space or inodes are exhausted. + * src/copy.c (copy_dir): Avoid copy-into-self interminable loop on + systems with large PATH_MAX. On other systems, diagnose the copy-into- + self error consistently. Handle the parameter, + first_dir_created_per_command_line_arg, correctly when there are two + or more sub-directories. + + maint: fix a comment typo + * tests/cp/fiemap-empty: Correct typo in comment. Add "FIXME". + +2011-04-01 Pádraig Brady <P@draigBrady.com> + + copy: process empty extents more efficiently + * src/copy.c (extent_copy): Treat an allocated but empty extent + much like a hole. I.E. don't read data we know is going to be NUL. + Also we convert the empty extent to a hole only when SPARSE_ALWAYS + so that the source and dest have the same allocation. This will + be improved soon, when we use fallocate() to do the allocation. + * tests/cp/fiemap-empty: A new test for efficiency and correctness + of copying empty extents. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the change in behavior. + + copy: protect against overlapping extents + * src/extent-scan.c (extent_scan_read): Add a more stringent check + for OFF_T overflow, to ensure subsequent code is immune. + Detect overlapping extents and adjust, so as files always copied. + Detection using a single scan with fallback to a standard copy + was thought too expensive in memory or time. + * NEWS: Mention the fix + +2011-04-01 Pádraig Brady <P@draigBrady.com> + + copy: link rather than copy symlinks, when --link used + This bug was introduced in commit ca9e212c, 2009-09-24, + "cp, mv: use linkat to guarantee semantics", which + inadvertently disabled the creation of hardlinks to symlinks. + However rather than implementing the intention of that commit + and relying on gnulib linkat emulation, we'll revert to the + previous emulation as that maintains ownership and timestamps. + + * src/copy.c (copy_internal): Use our existing hardlink to + symlink emulation when link() might dereference the symlink. + Also ensure that we copy the timestamps of the original symlink + when we use the emulation. + * tests/cp/link-symlink: Add a test to ensure timestamps copied. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + Reported by Ruediger Meier + +2011-03-31 Jim Meyering <meyering@redhat.com> + + tests: inotify-rotate: avoid race condition with overloaded disk + * tests/tail-2/inotify-rotate: Wait 50% longer for grep to succeed. + Without this change, this test would fail consistently when using + "make -j25 check" with F15 in a virtio- and spinning-rust-backed + virtual machine. + +2011-03-31 Pádraig Brady <P@draigBrady.com> + + copy: with fiemap copy, only sync when needed + * src/extent-scan.h (struct extent_scan): Add the fm_flags member to + pass to the fiemap scan. + * src/extent-scan.c (extent_need_sync): A new function used to + detect Linux kernels before 2.6.38. + (extent_scan_init): Add FIEMAP_FLAG_SYNC when needed. + * tests/cp/sparse-fiemap: Adjust comment. + * NEWS: Mention the change in behavior. + Indirectly suggested by Mike Frysinger + +2011-03-28 Mathieu Bridon <bochecha@fedoraproject.org> + + tests: avoid unwarranted failure in mock-simulated non-SELinux env. + * tests/init.cfg (require_selinux_): Skip the test also when + /proc/filesystems does not list selinuxfs. + Add comments. + * cfg.mk (exclude_file_name_regexp--sc_file_system): Exempt + tests/init.cfg, with its use of /proc/filesystems. + Based on the patch by Mathieu Bridon in http://debbugs.gnu.org/8359. + More discussion in http://bugzilla.redhat.com/573111 + +2011-03-28 Jim Meyering <meyering@redhat.com> + + maint: correct formatting style in a header + * src/find-mount-point.h: Move "*" to where it belongs. + Move "const", too. + * src/find-mount-point.c: Move "const" to conform. + * src/Makefile.am (sc_tight_scope): Allow `*'s before the function name. + Use perl's -l option and drop the \n after (and quotes around) $1. + +2011-03-23 Pádraig Brady <P@draigBrady.com> + + df: fix alignment of columns + * src/df.c (alloc_table_row): A new function to allocate storage + for a row of strings. + (print_table): A new function to interate over all stored strings in + the table, and apply alignment honoring the max width of each column. + (get_header): Renamed from print_header, and adjusted accordingly. + (get_dev): Renamed from show_dev. Also we no longer wrap longer + device names over two lines, which can be an unexpected issue for + scripts parsing the output from df. + (get_disk): s/show_/get_/ + (get_point): Likewise. + (get_entry): Likewise. + (get_all_entries): Likewise. + * NEWS: Mention the change. + +2011-03-22 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tests: exercise tests new "==" operator + * tests/misc/test: Exercise the new operator. + * NEWS (Changes in behavior): Mention it. + +2011-03-22 David A. Wheeler <dwheeler@dwheeler.com> + + test: accept "==" as a synonym for "=" + Make GNU coreutils' test recognize "==" as a synonym for "=". + This is already the case in GNU coreutils' expr, bash, ksh, + busybox ash, FreeBSD-current /bin/sh and /bin/test, and + OpenBSD's /bin/sh. + + Before, env test a '==' a would fail with this diagnostic: + "test: ==: binary operator expected". Now, it succeeds. + * src/test.c: Accept "==" as a synonym for "=". + * doc/coreutils.texi (String tests): Document it. + Reported as http://debbugs.gnu.org/8263 + Also see http://austingroupbugs.net/view.php?id=375 + +2011-03-21 Jim Meyering <meyering@redhat.com> + + tests: fix a bug in the cp/preserve-gid test + * tests/cp/preserve-gid: Ensure that every process under test uses + the cp binary we've just built. Before this fix, with a restrictive + umask or build-dir permissions, the UID-changing tests would end up + using whatever cp happened to be available through $PATH + Analysis by arbogast.cedric@gmail.com in http://debbugs.gnu.org/8292. + +2011-03-20 Paul Eggert <eggert@cs.ucla.edu> + + bootstrap: do not exclude m4/message.m4 + * bootstrap.conf (excluded_files): Don't exclude m4/lcmessage.m4, + as it's needed with the latest gnulib. + +2011-03-20 Jim Meyering <meyering@redhat.com> + + maint: remove a name from THANKS.in that is derived from git log + The names in THANKS are generated from two sources: the hard-coded + list, THANKS.in, and the names of committers from the git log. + When a contributor on the hard-coded list commits a change, + we remove their now-redundant name from THANKS.in. + * THANKS.in: Remove a now-duplicate name. + +2011-03-19 Pádraig Brady <P@draigBrady.com> + + tests: fix the sparse-fiemap test + * tests/filefrag-extent-compare: Merge adjacent extents in + each list before processing, so we correctly account for + split extents in either list. + * tests/cp/sparse-fiemap: Remove the explicit syncing, + which was only changing the way extents were arranged, + and thus working around the extent comparison issue + that was seen on ext4 loop back. + +2011-03-16 Jim Meyering <meyering@redhat.com> + + sort: avoid memory pressure of 130MB/thread when reading from pipe + * src/sort.c (INPUT_FILE_SIZE_GUESS): Decrease initial allocation + factor used to size buffer used when reading a non-regular file. + For motivation, see discussion here: + http://thread.gmane.org/gmane.comp.gnu.coreutils.general/878/focus=887 + + maint: stop using .x-sc_* files to list syntax-check exemptions + Instead, use the brand new mechanism with which you merely use a + variable (derived from the rule name) defined in cfg.mk to an ERE + matching the exempted file names. + * gnulib: Update to latest, to get maint.mk that implements this. + * Makefile.am (syntax_check_exceptions): Remove variable. + (EXTRA_DIST): Remove use of the variable. + * cfg.mk (sc_x_sc_dist_check): Remove rule, no longer useful. + (exclude_file_name_regexp--sc_space_tab): Define variable. + (exclude_file_name_regexp--sc_bindtextdomain): Likewise. + (exclude_file_name_regexp--sc_unmarked_diagnostics): Likewise. + (exclude_file_name_regexp--sc_error_message_uppercase): Likewise. + (exclude_file_name_regexp--sc_trailing_blank): Likewise. + (exclude_file_name_regexp--sc_system_h_headers): Likewise. + (exclude_file_name_regexp--sc_require_config_h_first): Likewise. + (exclude_file_name_regexp--sc_require_config_h): Likewise. + (exclude_file_name_regexp--sc_po_check): Likewise. + (exclude_file_name_regexp--sc_prohibit_always-defined_macros): Likewise. + (exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF): Likewise. + (exclude_file_name_regexp--sc_program_name): Likewise. + (exclude_file_name_regexp--sc_file_system): Likewise. + (exclude_file_name_regexp--sc_prohibit_always_true_header_tests): + Likewise. + (exclude_file_name_regexp--sc_prohibit_fail_0): Likewise. + (exclude_file_name_regexp--sc_prohibit_atoi_atof): Likewise. + (exclude_file_name_regexp--sc_prohibit_tab_based_indentation): Likewise. + (exclude_file_name_regexp--sc_prohibit_stat_st_blocks): Likewise. + * configure.ac [whether localtime caches TZ]: Use return 0/1, not + exit (0/1) to avoid triggering a sc_prohibit_magic_number_exit failure. + * .x-sc_GPL_version: Remove file. + * .x-sc_bindtextdomain: Likewise. + * .x-sc_error_message_uppercase: Likewise. + * .x-sc_file_system: Likewise. + * .x-sc_obsolete_symbols: Likewise. + * .x-sc_po_check: Likewise. + * .x-sc_program_name: Likewise. + * .x-sc_prohibit_always-defined_macros: Likewise. + * .x-sc_prohibit_always_true_header_tests: Likewise. + * .x-sc_prohibit_atoi_atof: Likewise. + * .x-sc_prohibit_empty_lines_at_EOF: Likewise. + * .x-sc_prohibit_fail_0: Likewise. + * .x-sc_prohibit_magic_number_exit: Likewise. + * .x-sc_prohibit_stat_st_blocks: Likewise. + * .x-sc_prohibit_strcmp: Likewise. + * .x-sc_prohibit_tab_based_indentation: Likewise. + * .x-sc_require_config_h: Likewise. + * .x-sc_require_config_h_first: Likewise. + * .x-sc_space_tab (config): Likewise. + * .x-sc_sun_os_names: Likewise. + * .x-sc_system_h_headers: Likewise. + * .x-sc_trailing_blank: Likewise. + * .x-sc_unmarked_diagnostics: Likewise. + * .x-sc_useless_cpp_parens: Likewise. + +2011-03-13 Pádraig Brady <P@draigBrady.com> + + maint: use wcswidth from gnulib + * gl/lib/mbsalign.c (rpl_wcswidth): Remove this in favor + of the equivalent wcswidth replacement in gnulib. + * bootstrap.conf: Depend on the wcswidth module. + Suggested by Bruno Haible. + +2011-03-13 Jim Meyering <meyering@redhat.com> + + touch: update to latest gnulib to fix Solaris 10 touch segfault + * gnulib: Update to latest, to address http://debbugs.gnu.org/8230. + When built on Solaris 9 and run on Solaris 10, touch would segfault. + Reported by Ben Walton. + * bootstrap: Update from gnulib. + * tests/init.sh: Likewise. + * NEWS (Bug fixes): Mention this. + + sort: spawn fewer threads for small inputs + * src/sort.c (SUBTHREAD_LINES_HEURISTIC): Do not spawn a new thread + for every 4 lines. Increase this from 4 to 128K. 128K lines seems + appropriate for a 5-year-old dual-core laptop, but it is too low for + some common combinations of short lines and/or newer systems. + * NEWS (Bug fixes): Mention it. + +2011-03-11 Pádraig Brady <P@draigBrady.com> + + copy: merge similar extents before processing + * src/extent-scan.c (extent_scan_read): Merge adjacent extents + that vary only in size, so that we may process them more efficiently. + This will be especially useful when we introduce fallocate() + so that we don't reproduce fragmentation in the destination. + +2011-03-06 Paul Eggert <eggert@cs.ucla.edu> + + dd: avoid or diagnose some problems with short reads + * src/dd.c (warn_partial_read): New static var. + (iread): Diagnose partial reads if needed. + (iwrite): Don't diagnose them here; not needed any more. + (scanargs): Determine whether partial reads should be diagnosted. + +2011-03-05 Pádraig Brady <P@draigBrady.com> + + maint: fix dd nocache test to be independent of current stdin + * tests/dd/nocache: Don't assume stdin is a pipe + + dd: add a flag to discard cached data + * src/dd.c (FFS_MASK): A new macro (Find First Set) refactored + from the following enum as it's now used twice. + (usage): Mention the new 'nocache' flag. + (cache_round): A new function to help ignore requests + to drop cache, that are less than page_size. + (invalidate_cache): A new function to call posix_fadvise() + with the appropriate offset and length. Note we don't + use fdadvise() so we can detect errors when count=0. + (dd_copy): Call invalidate_cache() for the portions read. + (iwrite): Likewise for the portions written. + (main): Call invalidate_cache for page_size slop or + for full file when count=0. + * cfg.mk (sc_dd_O_FLAGS): Adjust to pass. + * doc/coreutils.texi (dd invocation): Describe the 'nocache' flag, + and give some examples of how it can be used. + * tests/dd/nocache: A new test. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the new feature. + + doc: clarify that `dd bs=` can immediately output short reads + * doc/coreutils.texi (dd invocation): Clarify that bs= can + cause parital reads to be immediately written to output. + * src/dd.c (usage): Hint that bs= can cause partial writes. + See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8171 + + doc: group dd conv= options that are actually flags + * src/dd.c (usage): Move 'sync' up with other data transformation + options. Having it alongside 'fsync' and 'fdatasync' is + particularly confusing. Also the double line description of + the 'sync' option, serves as a visual break from the "flag" + type options that follow. + * doc/coreutils.texi (dd invocation): Apply the same grouping + as above, by splitting the "conv=" table in two. + +2011-03-05 Pádraig Brady <P@draigBrady.com> + + dd: warn when we disable oflag=direct not at EOF + An alternative to this is to auto enable iflag=fullblock + when oflag=direct and bs= is specified. + It was thought better though, to warn about the specific issue, + and give full control of dd's options to the user. + + * src/dd.c (iwrite): Warn, when we write after having + disabled O_DIRECT. + See https://bugzilla.redhat.com/show_bug.cgi?id=614605 + +2011-03-03 Jim Meyering <meyering@redhat.com> + + du: don't infloop for --files0-from=DIR + * src/du.c (main): Fail on AI_ERR_READ error, rather than merely + diagnosing and continuing. Based on a patch by Stefan Vargyas. + Also move the handling of AI_ERR_EOF into the case stmt. + Do not report ferror/fclose(stdin) failure when we've + already diagnosed e.g., failure to read the DIR, above. + Bug introduced by 2008-11-24 commit 031e2fb5, "du: read and + process --files0-from= input a name at a time,". + * src/wc.c: Handle read failure as with du: do not exit + immediately, but rather go on to print any total and to clean-up. + As above, move the handling of AI_ERR_EOF into the case stmt. + * tests/du/files0-from-dir: New file, to test both du and wc. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + + wc: avoid NULL dereference on out-of-memory error + * src/wc.c (main): Diagnose failed argv_iter_init_* failure, + rather than falling through and dereferencing NULL. + Bug introduced by 2008-11-25 commit c2e56e0d, + "wc: read and process --files0-from= input a name at a time,". + * NEWS (Bug fixes): Mention it. + +2011-02-25 Pádraig Brady <P@draigBrady.com> + + tests: without filefrag, only skip part of sparse-fiemap + * tests/cp/sparse-fiemap: Move the PERL check to the top, + since we don't test anything without it. In the loop, + don't use skip_test_ as it exits the test completely. + +2011-02-19 Gilles Espinasse <g.esp@free.fr> + + maint: replace spaces with tab in tests/Makefile.am + * tests/Makefile.am: Replace spaces with tabs for consistency + +2011-02-18 Jim Meyering <meyering@redhat.com> + + stdbuf: avoid even the appearance of a possible use-after-free + There was an execution path by which "libstdbuf" could be used after + being freed, but that would happen only if there were no libstdbuf.so + alongside the stdbuf program and there had been an installation error + leading to absence of the file, PKGLIBDIR/libstdbuf.so. + * src/stdbuf.c (set_LD_PRELOAD): Rearrange loop to make it perfectly + clear that there is no possibility of use-after-free. + Steve Grubb reported this possible use-after-free of "libstdbuf". + +2011-02-18 Gilles Espinasse <g.esp@free.fr> + + tests: correct racy sparse-to-pipe test + * tests/cp/sparse-to-pipe: Wait for backgrounded "cat" to complete + before comparing the results. + +2011-02-15 Paul Eggert <eggert@cs.ucla.edu> + + uptime: omit unnecessary #if + * src/uptime.c (print_uptime): Omit unnecessary "#if defined + HAVE_GETLOADAVG || defined C_GETLOADAVG". This #if is always + true, and removing it will help us simplify the gnulib getloadavg + module. + +2011-02-15 Pádraig Brady <P@draigBrady.com> + + tests: support more file systems in the cp fiemap tests + * tests/cp/sparse-fiemap: Check for fiemap support against a file + rather than a directory to enable tests on BTRFS for example. + Explicity disable the test on ext3 or file systems where we + can't determine the type. + * tests/cp/fiemap-perf: Likewise. Also disable the test on older + BTRFS (like in Fedora 14), where extents are returned for holes. + * tests/init.cfg: Comment that BTRFS only supports fiemap + for regular files. + +2011-02-11 Pádraig Brady <P@draigBrady.com> + + copy: adjust fiemap handling of sparse files + Don't depend on heuristics to detect sparse files + if fiemap is available. Also don't scan for new + holes unless --sparse=always has been specified. + + * src/copy.c (extent_copy): Pass the user specified + sparse mode, and handle as described above. + +2011-02-11 Pádraig Brady <P@draigBrady.com> + + copy: suppress redundant lseeks when using fiemap + * src/copy.c (extent_copy): Suppress redundant lseek()s in both + the source and dest files, when there is no hole between extents. + +2011-02-10 Jim Meyering <meyering@redhat.com> + + tests: fix bug in preceding check.mk change + * tests/check.mk (.built-programs): Run cd'd submake in a subshell + so the redirected output ends up in the current directory, not ../src. + + tests: print "python missing:..." diagnostic where more will see it + * tests/init.cfg (fiemap_capable_): Print with warn_, so that the + diagnostic shows up alongside the corresponding SKIP message. + + tests: avoid gross inefficiency in "make test" + Do not run a sub-make to set up the environment for each + and every test script. Instead, run it just once and store + the result in a file. + * tests/check.mk (built_programs): Remove definition. + (.built-programs): New rule to create the temporary file. + (CLEANFILES): Arrange to remove it. + (TESTS_ENVIRONMENT): Simply cat .built-programs, rather than + running the sub-make. + * .gitignore: Ignore it. + +2011-02-08 Pádraig Brady <P@draigBrady.com> + + test: improve the cp fiemap tests + * tests/cp/fiemap-2: Enable the fiemap check for files, which + will enable the test for files on ext3. + * tests/cp/fiemap-perf: Comment why we're not enabling for ext3. + * tests/cp/sparse-fiemap: Ditto. Also sync the files before + doing a fiemap which was needed for ext4 loop back at least. + Add a comment that FIEMAP_FLAG_SYNC is ineffective, thus + requiring the explicit syncs. + * tests/fiemap-capable: A new python script to determine + if a specified path supports fiemap. + * tests/init.cfg (fiemap_capable_): Use the new python script. + * tests/Makefile.am (EXTRA_DIST): Include the new python script. + +2011-02-08 Jim Meyering <meyering@redhat.com> + + tests: randread-tests: use macro.h not "#define ASSERT..." + * gl/modules/randread-tests (Files): Add tests/macros.h + * gl/tests/test-rand-isaac.c: Remove now-unneeded #include directives. + (ASSERT): Remove definition. + Instead, include "macros.h". + Prompted by suggestions from Bruno Haible. + +2011-02-07 Jim Meyering <meyering@redhat.com> + + maint: move di-set and ino-map modules from ./gl to gnulib + * gl/lib/di-set.c: Remove file. + * gl/lib/di-set.h: Likewise. + * gl/lib/ino-map.c: Likewise. + * gl/lib/ino-map.h: Likewise. + * gl/modules/di-set: Likewise. + * gl/modules/di-set-tests: Likewise. + * gl/modules/ino-map: Likewise. + * gl/modules/ino-map-tests: Likewise. + * gl/tests/test-di-set.c: Likewise. + * gl/tests/test-ino-map.c: Likewise. + * gnulib: Update to latest, now that these two modules are there. + +2011-02-07 Jim Meyering <meyering@redhat.com> + + di-set: provide a lookup method + This is required for patch, and hence is about to move to gnulib. + * gl/lib/di-set.c (di_set_lookup): New function. + * gl/lib/di-set.h: Declare it. + * gl/tests/test-di-set.c (main): Exercise it. + + The bug was introduced on 2004-12-04 via commit 7380cf79. + +2011-02-07 Jim Meyering <meyering@redhat.com> + + cut: don't segfault for large unbounded range + * src/cut.c (set_fields): When computing the maximum range endpoint, + take into consideration the start of any unbounded range, like "999-". + * NEWS (Bug fixes): Mention it. + * tests/misc/cut (big-unbounded-b,c,f): Add tests. + Reported by Paul Marinescu in http://debbugs.gnu.org/7993 + The bug was introduced on 2004-12-04 via commit 7380cf79. + +2011-02-05 Jim Meyering <meyering@redhat.com> + + copy: don't let a failed lseek go undiagnosed + Upon failed lseek, sparse_copy_finalize would mistakenly return true. + Admittedly, that is very unlikely, since that particular lseek + is attempted only if the preceding call to sparse_copy induced + a hole at EOF (via lseek on the destination FD). However, now + that sparse_copy has an output parameter, N_READ, there is no + longer any reason to call lseek (fd, 0, SEEK_CUR), so... + * src/copy.c (sparse_copy_finalize): Remove the function. + (copy_reg): Call ftruncate with n_read, rather than + sparse_copy_finalize with its now-unnecessary lseek. + Lasse Collin spotted the bug in sparse_copy_finalize. + +2011-02-04 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.10 + * NEWS: Record release date. + + cp: avoid spurious failure on any non-linux kernel + * src/extent-scan.c (extent_scan_read) [!linux]: Always set + scan->initial_scan_failed so caller knows not to report the failure. + + tests: skip mv/i-3 on FreeBSD to avoid spurious failure + * tests/mv/i-3: Skip when uname -s reports FreeBSD. + +2011-02-03 Pádraig Brady <P@draigBrady.com> + + sort: fix --debug key highlighting when key start after key end + This case was overlooked in commit bdde34f9, 2010-08-05, + "sort: tune and refactor --debug code, and fix minor underlining bug" + + * src/sort.c (debug_key): Don't adjust the key end when + it's before the key start. + * tests/misc/sort-debug-keys: Add a test case. + +2011-02-02 Jim Meyering <meyering@redhat.com> + + tests: correct part of fiemap-perf + * tests/cp/fiemap-perf: Correct erroneous added test. + Since nonexistent names were used, the final test ended up + being "test =", which would always "succeed". + + build: update gnulib submodule to latest + +2011-01-31 Pádraig Brady <P@draigBrady.com> + + cp: fix the buffer size used when writing zeros + * src/copy.c (write_zeros): This bug caused 4 or 8 bytes to + be written at a time which is very inefficient. One could + trigger the issue with `cp --sparse=never sparse non-sparse` + on a file system that supports fiemap. + +2011-01-31 Jim Meyering <meyering@redhat.com> + + cp: always initialize extent_copy's output parameter + * src/copy.c (extent_copy): Otherwise it would be used uninitialized. + + tests: exercise a rarely-used corner of copy.c + * tests/cp/sparse-to-pipe: New test. + * tests/Makefile.am (TESTS): Add it. + + cp: fix copying a sparse file to a pipe + The recent FIEMAP-related changes made it so the unusual case of + copying a sparse file to a non-regular destination (e.g., a pipe) + would erroneously write one byte too many to that destination. + That happened because extent_copy assumed that it could use lseek + to obtain the number of bytes written to the output file descriptor. + That was valid only for regular files. + * src/copy.c (sparse_copy): Add a parameter, to be used by extent_copy, + but not by reg_copy. Adjust callers. + (extent_copy): Maintain new local, dest_pos, using new arg, n_read. + Don't call lseek on dest_fd; use new var, dest_pos, instead. + (copy_reg): Add unused arg. + + tests: gfs2 also supports FIEMAP + * tests/init.cfg (fiemap_capable_): Add gfs2. + Clarify comment. + + maint: remove unused inclusion of "fiemap.h" + * src/copy.c: Don't include "fiemap.h". + + tests: factor fiemap-related predicate into init.cfg + * tests/init.cfg (fiemap_capable_): New function. + * tests/cp/fiemap-perf: Use it. + * tests/cp/sparse-fiemap: Likewise. + * tests/cp/fiemap-2: Likewise. + + maint: update copyright year lists in new files + * src/extent-scan.h: Update copyright year list. + * src/extent-scan.c: Likewise. + * tests/cp/sparse-fiemap: Likewise. + + tests: modernize sparse-fiemap test + * tests/cp/sparse-fiemap: Use print_ver_, not open-coded VERBOSE test. + + tests: remove duplicate fiemap-perf test + * tests/cp/fiemap-perf: Copy block-comparing code from sparse-fiemap. + * tests/cp/sparse-fiemap: The same test was here, alongside a much + more involved test. Remove it, now that it is in its own file. + +2011-01-30 Jim Meyering <meyering@redhat.com> + + doc: NEWS: mention cp's improvement + * NEWS (New Features): cp now copies sparse files efficiently. + + build: update gnulib submodule to latest + + copy, tee: assume EINTR is always defined: remove #ifdefs + Don't use "#ifdef EINTR". dd.c has been doing that since 2004. + * src/copy.c (sparse_copy): Remove #ifdef...#endif around EINTR use. + * src/tee.c (tee_files): Remove #ifdef...#endif around EINTR use. + If we need it, add something like this in system.h: + /* When EINTR is not defined, define it to an improbable value + so that each use does not have to be #ifdef'd. */ + #ifndef EINTR + # define EINTR 999988 + #endif + + tests: cp/fiemap: exercise previously-failing parts + * tests/cp/fiemap-2: New test. + * tests/Makefile.am (TESTS): Add it. + + copy: make extent_copy use sparse_copy, rather than its own code + * src/copy.c (extent_copy): Before this change, extent_copy would fail + to create holes, thus breaking --sparse=auto and --sparse=always. + I.e., copying a large enough file of all zeros, cp --sparse=always + should introduce a hole, but with extent_copy, it would not. + + copy: remove obsolete comment + * src/copy.c (sparse_copy): Remove now-obsolete comment about + how we used to work around lack of ftruncate. Combine nested + if conditions into one. + + copy: factor sparse-copying code into its own function, because + we're going to have to use it from within extent_copy, too. + * src/copy.c (sparse_copy): New function, factored out of... + (copy_reg): ...here. + Remove now-unused locals. + + fiemap copy: avoid leak-on-error + * src/copy.c (extent_copy): Don't leak an extent_scan buffer on + failed lseek, read, or write. + + fiemap copy: avoid a performance hit due to very small buffer + * src/copy.c (extent_copy): Don't let what should have been a + temporary reduction of buf_size (to handle a short ext_len) become + permanent and thus impact the performance of all further iterations. + + fiemap copy: simplify post-loop logic; improve comments + * src/copy.c (extent_copy): Avoid duplication in post-loop + extend-to-desired-length code. + + fiemap copy: rename some locals + (extent_copy): Rename locals: s/*ext_logical/*ext_start/ + + tests: ensure that FIEMAP-enabled cp copies a sparse file efficiently + * tests/cp/fiemap-perf: New file. + * tests/Makefile.am (TESTS): Add it. + + copy: don't allocate a separate buffer just for extent-based copy + * src/copy.c (copy_reg): Move use of extent_scan to just *after* + we allocate the main copying buffer, so we can... + (extent_scan): Take a new parameter, BUF, and use that rather + than allocating a private buffer. Update caller. + + copy: tweak variable name; improve a comment + * src/copy.c (copy_reg): Rename a variable to make more sense from + caller's perspective: s/require_normal_copy/normal_copy_required/. + This is an output-only variable, and the original name could make + it look like an input (or i&o) variable. + + copy: call extent_copy also when make_holes is false, ... + so that we benefit from using extents also when reading a sparse + input file with --sparse=never. + * src/copy.c (copy_reg): Remove erroneous test of "make_holes" + so that we call extent_copy also when make_holes is false. + Otherwise, what's the point of that parameter? + + copy: remove else-after-goto and adjust indentation + * src/copy.c (copy_reg): Remove useless else-after-goto. + + extent-scan: adjust naming and formatting + * src/extent-scan.h [struct extent_scan]: Rename member: + s/hit_last_extent/hit_final_extent/. "final" is clearer, + since "last" can be interpreted as "preceding". + Rename extent-scan functions to start with extent_scan_. + * src/Makefile.am (copy_sources): Also distribute extent-scan.h. + * src/extent-scan.c: Don't include error.h or quote.h. Neither is used. + * src/copy.c: shorten a comment to fit in 80 columns + * src/extent-scan.c, src/extent-scan.h: Correct formatting. + + fiemap copy: don't let write failure go unreported; adjust style, etc. + * src/copy.c (write_zeros): Add comments. + (extent_copy): Move decls of "ok" and "i" down to scope where used. + Adjust comments. + Rename local: s/holes_len/hole_size/ + Print a diagnostic upon failure to write zeros. + +2011-01-30 jeff.liu <jeff.liu@oracle.com> + + fiemap copy: add extent-scan.[ch], avoid a double-free and reorganize + Changes: + ======== + 1. fix write_zeros() per Jim's comments. + 2. remove char const *fname from struct extent_scan. + 3. change the signature of open_extent_scan() from + "void open_extent_scan(struct extent_scan **scan)" to + "void open_extent_scan(struct extent_scan *scan)" to avoid having + to malloc the extent_scan variable; instead save it on the stack. + 4. move close_extent_scan() from a function defined in extent-scan.c + to extent-scan.h as a macro definition, but it does nothing for now, + since initial extent scan defined at stack. + 5. add a macro "free_extents_info()" defined at extent-scan.h to + release the memory allocated to extent info which should be called + combine with get_extents_info(), it just one line, so IMHO, define + it as macro should be ok. + + * src/extent-scan.c: New file; functions to read "extents". + * src/extent-scan.h: Header file of extent-scan.c. + * src/Makefile.am: Reference it and link it to copy_source. + * src/copy.c: Use the new functions and avoid double-free. + +2011-01-30 Jim Meyering <meyering@redhat.com> + + build: distribute new test script, filefrag-extent-compare + * tests/Makefile.am (EXTRA_DIST): Add filefrag-extent-compare. + + build: distribute new file, fiemap.h + * src/Makefile.am (noinst_HEADERS): Add fiemap.h. + +2011-01-30 Jie Liu <jeff.liu@oracle.com> + + copy.c: add FIEMAP_FLAG_SYNC to fiemap ioctl + * src/copy.c (fiemap_copy): Force kernel to sync the source + file before mapping. + +2011-01-30 Jim Meyering <meyering@redhat.com> + + fiemap.h: include <stdint.h>, not <linux/types.h> + * src/fiemap.h: Include stdint.h, not linux/types.h, + now that this file uses only portable type names. + +2011-01-30 Paul Eggert <eggert@cs.ucla.edu> + + copy.c: ensure proper alignment of fiemap buffer + * src/copy.c (fiemap_copy): Ensure that our fiemap buffer + is large enough and well-aligned. + Replace "0LL" with equivalent "0" as 3rd argument to lseek. + +2011-01-30 Jim Meyering <meyering@redhat.com> + + copy.c: adjust comments, tweak semantics + * src/copy.c (fiemap_copy): Rename from fiemap_copy_ok. + Add/improve comments. + Remove local, "fail". + (fiemap_copy): Do not require caller to set + "normal_copy_required" before calling fiemap_copy. + Report ioctl failure if it's the 2nd or subsequent call. + + tests: relax the root-tests cross-check + * cfg.mk (sc_root_tests): Allow spaces before "require_root_", + now that tests/cp/sparse-fiemap has a conditional use. + + tests: accommodate varying filefrag -v "flags" output + * tests/cp/sparse-fiemap: Accommodate values other than "eof" + in the "flags" column of filefrag -v output + + tests: exercise more of the new FIEMAP copying code + * tests/cp/sparse-fiemap: Ensure that a file with many extents + (more than fit in copy.c's internal buffer) is copied properly. + Don't require root access if current partition is btrfs or xfs. + Use init.sh, not test-lib.sh. + * tests/filefrag-extent-compare: New file. + +2011-01-30 Jie Liu <jeff.liu@oracle.com> + + tests: add a new test for FIEMAP-copy + * tests/cp/sparse-fiemap: Add a new test for FIEMAP-copy against a + loopbacked ext4 partition. + * tests/Makefile.am (sparse-fiemap): Reference the new test. + + cp: copy sparse files efficiently using the FIEMAP ioctl + * src/fiemap.h: Add fiemap.h for fiemap ioctl(2) support. Copied + from linux's include/linux/fiemap.h, with minor formatting changes. + * src/copy.c (copy_reg): Now, when `cp' is invoked with --sparse=[WHEN], + we will try to do FIEMAP-copy if the underlying file system + supports it, and fall back to a normal copy if it fails. + +2011-01-29 Pádraig Brady <P@draigBrady.com> + + doc: add alternatives for field processing not supported by cut + * doc/coreutils.texi (cut invocation): Remove the tr -s '[:blank:]' + example, as it doesn't handle leading and trailing blanks. Add `awk` + examples for common field processing operations often asked about. + Also document a `join` hack, to achieve the same thing. Note the + join options are ordered so as to be compatible with other systems. + +2011-01-29 Pádraig Brady <P@draigBrady.com> + + join: don't report disorder against an empty file + This allows one to use join as a field extractor like: + join -a1 -o 1.3,1.1 - /dev/null + + * src/join.c (join): Don't flag unpairable lines when + one of the files is empty. + * tests/misc/join: Add a new test for empty input, and adjust + a previous test that was only checking against empty input. + * doc/coreutils.texi (join invocation): Document the change. + * NEWS: Likewise. + +2011-01-29 Pádraig Brady <P@draigBrady.com> + + join: ensure --header skips the order check with empty files + * src/join.c: Skip the header even if one of the files is empty. + * tests/misc/join: Add a test case. + * NEWS: Mention the fix + +2011-01-29 Pádraig Brady <P@draigBrady.com> + + join: add -o 'auto' to output a constant number of fields per line + Lines with a different number of fields than the first line, + will be truncated or padded. + + * src/join.c (prfields): A new function refactored from prjoin(), + to output all but the join field. + (prjoin): Don't swap line1 and line2 when line1 is blank + so that the padding is applied to the right place. + (main): Handle the -o 'auto' option. + * tests/misc/join: Add 6 new cases to test the auto format. + * NEWS: Mention the change in behavior. + Suggestion from Assaf Gordon + +2011-01-28 Jim Meyering <meyering@redhat.com> + + tests: remove obsolete uses of "$$" in temporary file names + Those were useful when tests might have been run in the same + directory and in parallel. Now, each test is run in a newly- + created empty directory. + * tests/cp/backup-1: Remove obsolete uses of "$$". + * tests/cp/same-file: Likewise. + * tests/dd/misc: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/mv/to-symlink: Likewise. + * tests/touch/fail-diag: Likewise. + +2011-01-26 Jim Meyering <meyering@redhat.com> + + tests: don't hide all trace of the vc_exe_in_TESTS test + There was a non-negligible delay after running a single test. + Now, you'll know why when you see this test's name. + * tests/check.mk (vc_exe_in_TESTS): Don't @-hide commands. + Use $(AM_V_GEN) instead. + +2011-01-25 Andreas Schwab <schwab@linux-m68k.org> + + tests: minor correction + * tests/du/move-dir-while-traversing: Ignoring SIGTSTP is enough; + don't also attempt to ignore SIGSTOP, it cannot be handled or ignored. + Spotted by Andreas Schwab. + +2011-01-25 Jim Meyering <meyering@redhat.com> + + tests: avoid FP failure due to suspension + * tests/du/move-dir-while-traversing: Prohibit suspension, + to avoid false-positive failure. + + tests: avoid rare FP failure in new du test + * tests/du/move-dir-while-traversing: Create an even larger tree + to avoid a false-positive failure due to du terminating before + the rename is triggered. + +2011-01-24 Jim Meyering <meyering@redhat.com> + + split: avoid a new, spurious warning from gcc-4.6.0 + * src/split.c (lines_rr) [IF_LINT]: Initialize files, now that + rawhide's gcc-4.6.0 would otherwise warn about use-uninitialized. + + tail: avoid new diagnostic when applying -f to a pipe on linux-2.3.38 + * src/tail.c (fremote): Do not print a diagnostic when + fstatfs (pipe_FD, &buf) fails, as it now does on linux-2.3.38. + This avoids the spurious failure of tests/misc/tail's f-pipe-1 + test, when running in input-from-pipe mode. + +2011-01-21 Jim Meyering <meyering@redhat.com> + + doc: fix wording in warning about potential conflict with built-in + * doc/coreutils.texi (mayConflictWithShellBuiltIn): Fix wording. + +2011-01-21 Paul Eggert <eggert@cs.ucla.edu> + + manual: document floating point better + * doc/coreutils.texi (Floating point): New section. + (od invocation, tail invocation, sort invocation, printf invocation): + (sleep invocation, seq invocation): Refer and defer to it. See + <http://lists.gnu.org/archive/html/bug-coreutils/2011-01/msg00031.html>. + +2011-01-20 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + The previous gnulib submodule reference was *still* to a + non-public commit. My submodule had a stray commit, so + the reference was always to a local merge commit. + Reported by Rob Vermaas. + + build: update gnulib submodule to latest + The previous gnulib submodule reference was to a non-public commit. + Reported by Rob Vermaas. + +2011-01-19 Jim Meyering <meyering@redhat.com> + + maint: use slightly more efficient process in README-release + * README-release: Run cheaper root-only tests first. + Use half of processing units (not just 1) for the expensive tests. + +2011-01-18 Jim Meyering <meyering@redhat.com> + + tests: avoid FP failure in new du test + * tests/du/move-dir-while-traversing: Create a larger tree to + avoid a false-positive failure due to du terminating before + the rename is triggered. + + build: update gnulib submodule to latest + + doc: update NEWS + * NEWS: Note when the uniq bug was introduced. + It was mine, commit 1d9b3de9, "uniq: remove redundant test". + +2011-01-17 Jim Meyering <meyering@redhat.com> + + doc: show how to shred more efficiently + * doc/coreutils.texi (shred invocation): Give an example showing how + to invoke shred in single-pass mode, and warn that -n0 --zero may + be inadequate. + + uniq: replace a wasteful loop with simple calculation + * src/uniq.c (find_field): Remove the byte-skipping loop altogether. + Instead, perform the simple calculation. This results in a 10% + performance improvement for large byte offsets. + + tests: add a test for today's uniq bug + * tests/misc/uniq-perf: New file. + * tests/Makefile.am (TESTS): Add it. + +2011-01-17 Sami Kerola <kerolasa@iki.fi> + + uniq: don't continue field processing after end of line + * NEWS (Bug fixes): Mention it. + * src/uniq.c (find_field): Stop processing loop when end of line + is reached. Before this fix, 'uniq -f 10000000000 /etc/passwd' + would run for a very long time. + +2011-01-15 Ondřej Vašík <ovasik@redhat.com> + + doc: specify how tr, echo, printf treat octal numbers + * doc/coreutils.texi (tr's Character sets): Document how a 9-bit + octal value is interpreted. tr does not ignore the ninth bit. + (echo invocation, printf invocation): Document that any ninth + bit in \OOO is ignored. (http://debbugs.gnu.org/7574) + +2011-01-14 Pádraig Brady <P@draigBrady.com> + + maint: refactor to use read-file from gnulib + * bootstrap.conf: Add the read-file module + * src/ptx.c: Replace the original code which would + needlessly read SIZE_MAX bytes of files larger than this. + * src/shuf.c: Replace the original code. + +2011-01-13 Pádraig Brady <P@draigBrady.com> + + maint: trivial system header file cleanups + * src/system.h: Note where it should be included, and + make ordering check portable to GLIBC > 2 + * src/copy.c: Move <sys/ioctl.h> along with other system headers + as is done elsewhere. + * src/install.c: Move <sys/wait.h> along with other system headers + as is done elsewhere. + * src/ptx.c: Include <regex.h> rather than "regex.h" as + is done elsewhere. Note <regex.h> is kept after "system.h" + as per commit dba300a0. + +2011-01-12 Jim Meyering <meyering@redhat.com> + + doc: clean up HACKING guidelines + * HACKING: Remove mention of "indent-tabs-mode: nil", since + we've remove all of those directives. No longer needed. + Remove dated (pre-emacs-23) reference regarding WhiteSpace mode. + +2011-01-12 Paul Eggert <eggert@cs.ucla.edu> + + gnulib: Also use dtoastr and ldtoastr modules. This adjusts to the recent splitting of the ftoastr module into 3 <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00199.html>. * bootstrap.conf (gnulib_modules): Add dtoastr, ldtoastr, as coreutils needs all 3 modules now. + + build: update gnulib submodule to latest + +2011-01-11 Nadav Har'El <nyh@math.technion.ac.il> + + rm: ignore errno related to invalid file names + * src/remove.c (nonexistent_file_errno): Also skip EINVAL and + EILSEQ, for at least smbfs rejection of '*' in file names. + * NEWS: Mention the fix. + +2011-01-10 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + du: don't abort when a subdir is renamed during traversal + * NEWS (Bug fixes): Mention it. + * src/du.c (prev_level): Move declaration "up" to file-scope global. + (du_files): Reset prev_level to 0 upon abnormal fts_read termination. + Reported by Johathan Nieder in http://bugs.debian.org/609049 + Also, improve a diagnostic. + * tests/du/move-dir-while-traversing: Test for the above. + * tests/Makefile.am (TESTS): Add it. + +2011-01-07 Pádraig Brady <P@draigBrady.com> + + maint: suppress some clang scan-build warnings + * src/pr.c (char_to_clump): Remove a dead store. + * src/remove.c (fts_skip_tree): Likewise. + * src/sort.c (key_warnings): Likewise. + (sort): Suppress an uninitialized pointer warning. + + maint: replace uses of ignore_ptr with ignore_value + * gnulib: Update for enhanced ignore_value() + * src/chcon.c (process_file): Don't use the deprecated ignore_ptr. + * src/chmod.c (process_file): Likewise. * src/chown-core.c (change_file_owner): Likewise. - * src/chmod.c: Revert last change. There is a better way. - * src/chown-core.c: Likewise. +2011-01-04 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.9 + * NEWS: Record release date. + + build: update gnulib to latest; portability fixes + +2011-01-01 Jim Meyering <meyering@redhat.com> + + maint: update all copyright year number ranges + Run "make update-copyright". + + build: update gnulib for version-etc copyright year update + * tests/sample-test: Update copyright to 2011, to appease syntax-check. + +2011-01-01 Jim Meyering <meyering@redhat.com> + + maint: generate much of the THANKS file + Before this change, we had a tendency to manually list each + contributor's name in THANKS. Now, each commit "Author" is + included in the generated THANKS file automatically, and most + of the old THANKS file is now a template, THANKS.in. + We'll still have to manually list the names of people who report + problems without a usable patch. + + * THANKS.in: New file, derived from THANKS, but removing names of + those who are listed as git log 'Author:'s. + * THANKS: Remove file. + * thanks-gen: New file. + * Makefile.am (THANKS): New rule. + (EXTRA_DIST): Add .mailmap, THANKS.in and thanks-gen. + * .gitignore: Add THANKS and THANKS-to-translators. + * .mailmap: Unify on single address and name-spelling per contributor. + +2010-12-31 Eric Blake <eblake@redhat.com> + + maint: update to latest gnulib, for testsuite improvement + * gnulib: Update to latest for init.sh fix. + * bootstrap: Resync from gnulib. + * tests/init.sh: Likewise. + +2010-12-30 Eric Blake <eblake@redhat.com> + + maint: allow gettext 0.17 again + Commit 041c9c47 traded the 'gettext' module for the lighter 'gettext-h' + module, so as to not require the latest gettext release (we only need + the latest release if we ship gettext as a dependent library, but + coreutils has long preferred to use it as an external library). + But that commit overlooked two places necessary to allow the use of + gettext 0.17. + + This does not force you to downgrade (using gettext 0.18.1.1 is still + just fine), nor does it affect tarballs (once a tarball is built + with a given gettext version, it can be built on other machines + regardless of what gettext version is present). + + * bootstrap.conf (buildreq): Relax prerequisite. + * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise. + +2010-12-30 Pádraig Brady <P@draigBrady.com> + + split: fix the suffix length calculation + * src/split.c (set_suffix_length): Only auto-calculate + the suffix length when the number of files is specified. + * tests/misc/split-a: Add a case to trigger the bug, + and exercise the suffix length auto-calculation. + * NEWS: Mention the fix. + Reported by Dmitry V. Levin and Sergey Vlasov at + https://bugzilla.altlinux.org/show_bug.cgi?id=24841 + +2010-12-28 Paul Eggert <eggert@cs.ucla.edu> + + coreutils: keep lines within 80-column limits + * cfg.mk (LINE_LEN_MAX, FILTER_LONG_LINES): New macros. + (sc_long_lines): New rule. + * HACKING: Use shorter URLs to the same material. + * doc/Makefile.am, doc/coreutils.texi, m4/boottime.m4: + * man/help2man, man/stdbuf.x, src/Makefile.am, src/cat.c, src/copy.c: + * src/cp.c, src/dd.c, src/df.c, src/du.c, src/groups.c, src/install.c: + * src/ls.c, src/md5sum.c, src/mv.c, src/od.c, src/pinky.c, src/ptx.c: + * src/readlink.c, src/remove.c, src/rmdir.c, src/setuidgid.c: + * src/sort.c, src/tail.c, src/touch.c, tests/Coreutils.pm: + * tests/cp/existing-perm-race, tests/cp/perm, tests/cp/preserve-gid: + * tests/du/2g, tests/du/long-from-unreadable, tests/init.sh: + * tests/install/basic-1, tests/ls/nameless-uid: + * tests/ls/readdir-mountpoint-inode, tests/misc/chroot-credentials: + * tests/misc/cut, tests/misc/date, tests/misc/join, tests/misc/md5sum: + * tests/misc/sha1sum, tests/misc/sha224sum, tests/misc/sort: + * tests/misc/sort-continue, tests/misc/sort-files0-from: + * tests/misc/sort-rand, tests/misc/stdbuf, tests/misc/tr: + * tests/misc/uniq, tests/mv/atomic, tests/mv/part-fail: + * tests/mv/part-symlink, tests/mv/sticky-to-xpart, tests/pr/pr-tests: + * tests/rm/fail-2eperm, tests/rm/interactive-always: + Reformat to fit within 80 columns. + * doc/Makefile.am (BAD_POSIX_PERL): New macro. + * doc/coreutils.texi: Reword slightly, to make menus and + index lines shorter. + * src/md5sum.c: Redo --help output so that it fits within 79 + columns, since that's a bit more portable and all the other --help + strings fit in 79 columns. + +2010-12-24 Jim Meyering <meyering@redhat.com> + + maint: avoid syntax-check failure due to unused #include + * src/getlimits.c: Don't include "c-ctype.h"; no longer used. + +2010-12-23 Paul Eggert <eggert@cs.ucla.edu> + + csplit: diagnose file counter wraparound + * src/csplit.c (create_output_file): Detect overflow when the + file counter wraps around, and exit with a diagnostic. Formerly + the code silently wrapped around and wrote to the wrong file, + losing output data. + + sort: minor performance tweak with num_processors + * src/sort.c (main): Don't invoke num_processors twice. + + getlimits: port to hosts with very wide int, or non-ASCII + * src/getlimits.c (decimal_ascii_add): Remove, replacing with ... + (decimal_absval_add_one): New function, with different signature, + which does not assume ASCII. All callers changed. + (print_int): Remove assumptions that integers fit in 206 bits, and + that characters are ASCII. These assumptions are portable in + practice but are easy to remove here. + +2010-12-22 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.8 + * NEWS: Record release date. + + csplit: update gnulib for Solaris 8,9 snprintf fix + + maint: correct test-related comments + * tests/mv/i-3: Adjust comment to match just-changed code. + Spotted by Pádraig Brady. + * tests/init.cfg (retry_delay_): Correct spelling of function name + in usage example. + + tests: adjust preceding change to handle general WERROR_CFLAGS values + * gnulib-tests/Makefile.am (test_xvasprintf_CFLAGS): + (test_lock_CFLAGS, test_tls_CFLAGS): Avoid a syntax error when + $(WERROR_CFLAGS) expands to more than one token. + +2010-12-22 Paul Eggert <eggert@cs.ucla.edu> + + tests: do not assume compiler knows -Wxxx flags + * gnulib-tests/Makefile.am (test_xvasprintf_CFLAGS): + (test_lock_CFLAGS, test_tls_CFLAGS): Do not append GCC-specific + flags like -Wno-format-security unless the GCC-specific flag + -Werror is also specified. This avoids a "make check" failure on + Solaris when using Sun C 5.8. + +2010-12-22 Jim Meyering <meyering@redhat.com> + + tests: mv/i-3: avoid false-positive failure on a slow/busy system + * tests/mv/i-3: Quadruple the timeout duration. + Without this, I saw an expired timeout on a heavily-loaded system. + +2010-12-21 Jim Meyering <meyering@redhat.com> + + tests: avoid new false-positive failure on at least FreeBSD 8.1 + * tests/mv/trailing-slash: Accommodate different diagnostic + on FreeBSD 8.1. + +2010-12-21 Paul Eggert <eggert@cs.ucla.edu> + + who: omit useless definitions of MAXHOSTNAMELEN + This prevents a compilation failure on Solaris 8, GCC 4.4.2, with + "configure --enable-gcc-warnings". + * src/who.c (MAXHOSTNAMELEN): Remove; no longer needed. + * src/pinky.c: Likewise. + +2010-12-20 Pádraig Brady <P@draigBrady.com> + + maint: fix a typo in sort --parallel help message + Also fix up Chen Guo's contacts + * src/sort.c (usage): Add a missing "of" + * THANKS: Add Chen Guo + * .mailmap: Add Chen Guo's UCLA address + +2010-12-20 Jim Meyering <meyering@redhat.com> + + build: update gnulib: ACL-vs-Solaris 8 portability etc. + +2010-12-19 Paul Eggert <eggert@cs.ucla.edu> + + tests: sync init.sh from gnulib + * tests/init.sh (setup_): Initialize fail=0 before invoking mktempd_. + Ensure that IFS is defined initially. + (mktempd_): Remove fail=0 initialization; no longer needed. + +2010-12-19 Pádraig Brady <P@draigBrady.com> + + wc: fix a possible hang with --files0-from + * src/wc.c (main): exit when we get a read error on + the --files0-from file, rather than retrying and + spinning the CPU + + cp: ensure backups are created when -T specified + * src/cp.c (do_copy): When -T is specified, initialize + the NEW_DST and SB variables, which are checked when + running: cp -T --force --backup file file + * tests/cp/backup-1: Add the -T case + + sort: use at most 8 threads by default + * src/sort.c (main): If --parallel isn't specified, + restrict the number of threads to 8 by default. + If the --parallel option is specified, then + allow any number of threads to be set, independent + of the number of processors on the system. + * doc/coreutils.texi (sort invocation): Document the changes + to determining the number of threads to use. + Mention the memory overhead when using multiple threads. + * tests/misc/sort-spinlock-abuse: Allow single core + systems that support pthreads. + * tests/misc/sort-stale-thread-mem: Likewise. + * tests/misc/sort-unique-segv: Likewise. + * NEWS: Mention the change in behaviour. + +2010-12-18 Jim Meyering <meyering@redhat.com> + + doc: split: add examples showing how to use the new option + * doc/coreutils.texi (split invocation): Add examples. + + tests: avoid spurious du/bigtime failure + * tests/du/bigtime: Map nonzero block count to 0. + Reported by Assaf Gordon. + * THANKS: Update. + +2010-12-18 Paul Eggert <eggert@cs.ucla.edu> + + tests: set fail=0 by default + * tests/init.sh (setup_): Set fail=0. This was the intent as per + <http://lists.gnu.org/archive/html/bug-coreutils/2010-12/msg00058.html> + but the assignment in mktempd_ is ineffective, since mktempd_ + is used inside `` and its assignments are in a subshell. + +2010-12-17 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2010-12-17 Paul Eggert <eggert@cs.ucla.edu> + + sort: do not generate thousands of subprocesses for 16-way merge + Without this change, tests/misc/sort-compress-hang would consume + more than 10,000 process slots on my RHEL 5.5 x86-64 server, + making it likely for other applications to fail due to lack of + process slots. With this change, the same benchmark causes 'sort' + to consume at most 19 process slots. The change also improved + wall-clock time by 2% and user+system time by 14% on that benchmark. + * NEWS: Document this. + * src/sort.c (MAX_PROCS_BEFORE_REAP): Remove. + (reap_exited): Renamed from reap_some; this is a more accurate name, + since "some" incorrectly implies that it reaps at least one process. + All uses changed. + (reap_some): New function: it *does* reap at least one process. + (pipe_fork): Do not allow more than NMERGE + 2 subprocesses. + (mergefps, sort): Omit check for exited processes: no longer needed, + and anyway the code consumed too much CPU per line when 2 < nprocs. + +2010-12-16 Paul Eggert <eggert@cs.ucla.edu> + + sort: fix hang with sort --compress + * NEWS: Document this. + * src/sort.c (UNCOMPRESSED, UNREAPED, REAPED): New constants. + (struct tempnode): New member 'state', to hold these constants. + The pid member is now undefined if state == UNCOMPRESSED. + (struct sortfile): Replace member 'pid' with member 'temp'. + (uintptr): Remove. + (proctab_hasher, proctab_comparator, register_proc, delete_proc): + Proctab entries are now struct tempnode *, not pid_t, to handle + the case where multiple tempnode objects correspond to the same + pid. This avoids a race condition that can cause a hang. + (register_proc): Arg is now struct tempnode *, not pid_t. All + callers changed. + (delete_proc): Set tempnode state to REAPED. + (create_temp_file): No need to set pid member here; it's now + done when the pid is known. + (maybe_create_temp, create_temp): Remove PPID arg. Return struct + tempnode *, not char *. All callers changed. + (maybe_create_temp): Set node state to UNCOMPRESSED or UNREAPED. + No need to set node->pid to 0. + (open_temp): Replace NAME and PID args with a single TEMP arg. + All callers changed. Wait only for unreaped children. + (zaptemp): Wait for decompressor to finish before removing its + temporary-file input. This avoids .nfsXXXX hassles with NFS + and fixes a race (leading to a hang) regardless of NFS. + (open_input_files): Adjust to new way of dealing with temp files + and their subprocesses. + * tests/Makefile.am (TESTS): Add misc/sort-compress-hang. + * tests/misc/sort-compress-hang: New file. + + sort: don't dump core when merging from input twice + * NEWS: Document this. + * src/sort.c (avoid_trashing_input): The previous fix to this + function didn't fix all the problems with this code. Replace it + with something simpler: just copy the input file. This doesn't + change the number of files, so return void instead of the updated + file count. Caller changed. + * tests/misc/sort-merge-fdlimit: Test for the bug. + +2010-12-14 Jim Meyering <meyering@redhat.com> + + doc: tail: semi-deprecate --sleep-interval and --max-unchanged-stats + Those options are useful only on systems that lack inotify support + and in the unusual event that a system with inotify support must + resort to polling. + * src/tail.c (usage): Note that the --max-unchanged-stats=N and + --sleep-interval=N options are rarely useful on systems with + inotify support. + * doc/coreutils.texi (tail invocation): Likewise. + +2010-12-14 Paul Eggert <eggert@cs.ucla.edu> + + sort: fix very-unlikely buffer overrun when merging to input file + * src/sort.c (avoid_trashing_input): Fix a typo that could cause a + buffer overrun in theory. In practice this is extremely unlikely, + as it requires running out of file descriptors in a small merge, + presumably because some other process is hogging all the OS's file + descriptors. + + sort: document --compress reaper fixes + * NEWS: Document the --compress reaper fixes installed yesterday. + + tests: default to /tmp as the temporary directory + * tests/check.mk (TESTS_ENVIRONMENT): Default TMPDIR to /tmp, + rather than to the working directory; this is more common in + practice, which makes the tests more real-worldish; and it is + often faster. Also, it avoids some problems with NFS cleanups. + * tests/misc/sort-compress: Remove unnecessary code setting TMPDIR. + * tests/misc/sort-compress-proc: Likewise. Do the final sleep + only if TMPDIR is relative, which should be rarely given the + change to TESTS_ENVIRONMENT. + + sort: fix some --compress reaper bugs + * src/sort.c (uintptr): New type. + (enum procstate, struct procnode, update_proc): Remove. + (proctab_hasher, proctab_comparator, register_proc, wait_proc): + (reap_some): The proctab is now simply a hash of process-IDs + rather than of pointers to objects with reference counts and + states; this is smaller and faster and easier to understand. + (nprocs): Now pid_t, not size_t, since one cannot have more than + PID_MAX children. + (reap): If the argument is -1, wait; if 0 (a new value), do not. + Delete pid from proctab as needed. Ignore children that are not + in proctab, as they are from the program that exec'ed us and are + irrelevant to our success or failure. + (delete_proc, reap_all): New functions. + (open_temp): Register the child. + (sort): Clean up all children afterwards; without this patch, + 'sort' sometimes missed failures in children due to race conditions. + * tests/Makefile.am (TESTS): Add misc/sort-compress-proc. + * tests/misc/sort-compress-proc: New file, to test for the + bugs fixed above. + +2010-12-13 Paul Eggert <eggert@cs.ucla.edu> + + tests: typo fix + * tests/misc/sort-stale-thread-mem: Fix typo in comment. + +2010-12-13 Jim Meyering <meyering@redhat.com> + + tests: tweak basic-1 to use warn_ rather than literal "exit 77" + * tests/install/basic-1 (just_built_dd): Use warn_, rather than + cat and exit 77. + + tests: mark new test as very expensive + * tests/misc/sort-stale-thread-mem: Don't initialize fail=0 here; + that is done in init.sh. This avoids a syntax-check failure. + Invoke "Exit $fail" at end, too. + Mark as a very expensive test. + +2010-12-12 Paul Eggert <eggert@cs.ucla.edu> + + tests: test for access to stale thread memory + * tests/misc/sort-stale-thread-mem: New tests. + * tests/Makefile.am (TESTS): Add it. + +2010-12-11 Jim Meyering <meyering@redhat.com> + + tests: avoid FP failure when run under valgrind + * tests/misc/printenv: Filter out LD_PRELOAD, as the comment + said, not LD_LIBRARY. + + sort: avoid segfault when using two or more threads + This change does not fix the actual bug. That was done by commit + c9db0ac6, "sort: preallocate merge tree nodes to heap". The fix + was to store each "node" structure on the heap, not on the stack. + Otherwise, a node from one thread's stack could be used in another + thread after the first thread had expired (via pthread_join). + This bug was very hard to trigger when using spinlocks, but + easier once we began using mutexes. + * NEWS (Bug fixes): Mention it. + For details, see http://debbugs.gnu.org/7597. + + sort: syntax cleanup + * src/sort.c (xfopen, debug_key, sortlines, sort, main): Adjust + formatting: fix misplaced braces, use consistent spacing, + split a 2-stmt line. + +2010-12-11 Paul Eggert <eggert@cs.ucla.edu> + + sort: integer overflow checks in thread counts, etc. + * src/sort.c (specify_nthreads, merge_tree_init, init_node): + (queue_init, sortlines, struct thread_args, sort, main): + Use size_t, not unsigned long int, for thread counts, since thread + counts are now used to compute sizes. + (specify_nthreads): Check for size_t overflow. + (merge_tree_init, sort): Shorten name of local variable, for + readability. + (merge_tree_init): Move constants next to each other in product, + so that the constant folding is easier to see. + (init_node): Now static. Add 'restrict' only where it might + be helpful for compiler optimization. + (queue_init): 2nd arg is now nthreads, not "reserve", which is + a bit harder to follow. All uses changed. + (struct thread_args): Rename lo_child to is_lo_child, so that + it's obvious to the reader when we're talking about this boolean + as opposed to the new lo_child member of the other structure. + All uses changed. + (sort): Remove unused local variable end_node. + (main): Don't allow large thread counts to cause undefined behavior + later, due to integer overflow. + +2010-12-11 Chen Guo <chenguo4@ucla.edu> + + sort: preallocate merge tree nodes to heap. + * src/sort.c: (merge_tree_init) New function. Allocates memory for + merge tree nodes. + (merge_tree_destory) New function. + (init_node) New function. + (sortlines) Refactor node creation code to init_node. Remove now + superfluous arguments. All callers changed. + (sort) Initialize/destory merge tree. Refactor root node creation + to merge_tree_init. + +2010-12-11 Paul Eggert <eggert@cs.ucla.edu> + + sort: comment fix + * src/sort.c: Comment fix re spin locks. + +2010-12-11 Chen Guo <chenguo4@ucla.edu> + + sort: use mutexes, not spinlocks (avoid busy loop on blocked output) + Running a command like this on a multi-core system + sort < big-file | less + would peg all processors at near 100% utilization. + * src/sort.c: (struct merge_node) Change member lock to mutex. + All uses changed. + * tests/Makefile.am (XFAIL_TESTS): Remove definition, now that + this test passes once again. I.e., the sort-spinlock-abuse test + no longer fails. + * NEWS (Bug reports): Mention this. + Reported by DJ Lucas in http://debbugs.gnu.org/7489. + +2010-12-08 Pádraig Brady <P@draigBrady.com> + + split: fix a case where --elide-empty causes invalid chunking + When -n l/N is used and long lines are present that both + span partitions and multiple buffers, one would get + inconsistent chunk sizes. + + * src/split.c (main): Add a new undocumented ---io-blksize option + to support full testing with varied buffer sizes. + (cwrite): Refactor most handling of --elide-empty to here. + (bytes_split): Remove handling of --elide-empty. + (lines_chunk_split): Likewise. The specific issue here + was the first handling of elide_empty_files interfered + with the replenishing of the input buffer. + * test/misc/split-lchunk: Add -e and the new ---io-blksize + combinations to the test. + +2010-12-05 Jim Meyering <meyering@redhat.com> + + tests: remove useless definition of $SORT in sort-compress + * tests/misc/sort-compress (SORT): Remove unused definition. + +2010-12-04 Jim Meyering <meyering@redhat.com> + + tests: make it harder to lose a race in spinlock-abuse + * tests/misc/sort-spinlock-abuse: On a busy system, with only 12 + pauses of length 0.1 seconds, the buggy (busy-spinlock blocked) + sort would fail to accumulate 1 second of CPU time, and hence + would mistakenly pass. Increase from 12 to 50. + +2010-12-04 Paul Eggert <eggert@cs.ucla.edu> + + sort: merge_queue -> queue + * src/sort.c (struct thread_args, sortlines_thread, sortlines, sort): + Rename "merge_queue" to "queue", for consistency with other functions + that just use the name "queue" for these things. + + sort: clarify queue_check_insert + * src/sort.c (queue_check_insert): Clarify body a bit, and remove + no-longer-needed comment. + + sort: fix problems with merge node dest pointer + * src/sort.c (mergelines_node): Return void, not size_t. All + callers changed. Change *node->dest here, not in caller. + Do not change node->dest: it's not needed and could cause problems + on (mostly theoretical) hosts that do not allow adding integers to + null pointers. + (queue_check_insert_parent): Omit MERGED parameter; no longer needed. + All callers changed. + + sort: simplify write_unique + * src/sort.c (write_unique): Simplify slightly so that there is + just one call to write_line, not two. + + sort: put queue arg first + * src/sort.c (queue_check_insert, queue_check_insert_parent): Make + the queue arg first, for consistency with other functions such as + queue_insert that put the queue arg first. Rename from + check_insert and update_parent, respectively. All callers + changed. + + sort: tune struct_merge_node slightly + * src/sort.c (struct merge_node): 'lock' is now the actual lock, + not a pointer to the lock; there's no need for indirection here. + Make 'level' unsigned int instead of size_t, since it is a + bit-shift count; also, move it next to a bool so that it's more + likely to take less space. All uses changed. + (sortlines, sort): Spell out initialization instead of using an + initializer. This makes the initializer a bit easier to understand, + and avoids unnecessary stores into the spin lock. + + sort: Clarify comments + * src/sort.c: Improve comments a bit. + +2010-12-03 Paul Eggert <eggert@cs.ucla.edu> + + tests: cleanup rm -rf fails under NFS + This problem was observed on RHEL 5.5 x86-64 when running as a + client of a NetApp FAS2050. + * tests/cp/cp-mv-backup: Don't leave a file descriptor open to + a file in a directory that will be cleaned up with "rm -rf". + Under NFS, when the rm unlinks that file, it is instead renamed + to .nfsXXXX and then rm cannot remove the parent directory, + and the test fails. + * tests/cp/same-file: Likewise. + + cp: fix bug with fine-grained src to nearby coarse-grained dest + The actual fix is in gnulib's lib/utimecmp.c. + * NEWS: Document fix. + + build: update gnulib submodule to latest + +2010-12-02 Paul Eggert <eggert@cs.ucla.edu> + + sort: fix bug on 64-bit hosts with at least 32768 processors + * src/sort.c (MAX_MERGE): Avoid integer overflow when on a machine + with (say) 32-bit int and 64-bit size_t and when level == 15. + Without this fix, on such a machine with 32768 or more processors, + the level computation could overflow on large input, and this + would result in division by zero. + +2010-12-01 Jim Meyering <meyering@redhat.com> + + tests: add test for parallel sort -u segfault bug + * tests/misc/sort-unique-segv: New file. + * tests/Makefile.am (TESTS): Add it. + +2010-12-01 Paul Eggert <eggert@cs.ucla.edu> + + sort -u: fix a thread-race pointer corruption bug + * src/sort.c (write_unique): Save the entire "struct line", not + just a pointer to one. Otherwise, with a multi-thread run, + sometimes, with some inputs, fillbuf would would win a race + and clobber a "saved->text" pointer in one thread just before + it was dereferenced in a comparison in another thread. + * NEWS (Bug fixes): Mention it. + +2010-11-27 Jim Meyering <meyering@redhat.com> + + tests: don't let the OMP_NUM_THREADS envvar affect sort tests + * tests/envvar-check (vars): Add OMP_NUM_THREADS. + + tests: test for parallel sort spinlock abuse + * tests/misc/sort-spinlock-abuse: New file. + * tests/Makefile.am (TESTS): Add it. + (XFAIL_TESTS): Mark this as an expected-to-fail (for now) test. + +2010-11-27 Pádraig Brady <P@draigBrady.com> + + tsort: suppress a valgrind memory leak warning + * src/tsort.c (tsort): Unconditionally invoking the free() + doesn't increase scalability, so do it only with -Dlint + +2010-11-24 Pádraig Brady <P@draigBrady.com> + + maint: update the valgrind support script + * README-valgrind: Include the "noinst" programs in + those wrapped by valgrind. Update $PATH in check.mk + rather than Makefile.am. Make wrapper scripts + work when suppressions not setup. Keep lines < 80 chars. + +2010-11-22 Paul Eggert <eggert@cs.ucla.edu> + + cp: give a better diagnostic for nonexistent dest/ + This patch was written by Jim Meyering and myself. + * src/copy.c (copy_reg): Turn EISDIR to ENOTDIR to improve the + quality of diagnostics for commands like "cp a nosuch/". Reported + by Марк Коренберг and Alan Curry in the thread starting at: + http://lists.gnu.org/archive/html/bug-coreutils/2010-11/msg00178.html + * THANKS: Update. + * tests/mv/trailing-slash: Add a test. + +2010-11-22 Chen Guo <chen.guo.0625@gmail.com> + + split: add --number to generate a particular number of files + * src/split.c (usage, long_options, main): New options --number, + --unbuffered, --elide-empty-files. + (set_suffix_length): New function to auto increase suffix length + to handle a specified number of files. + (create): New function. Refactored from cwrite() and ofile_open(). + (bytes_split): Add max_files argument to support byte chunking. + (lines_chunk_split): New function. Split file into chunks of lines. + (bytes_chunk_extract): New function. Extract a chunk of file. + (of_info): New struct. Used by functions lines_rr and ofile_open + to keep track of file descriptors associated with output files. + (ofile_open): New function. Shuffle file descriptors when there + are more output files than available file descriptors. + (lines_rr): New function to distribute lines round-robin to files. + (chunk_parse): New function. Parses K/N syntax. + * tests/misc/split-bchunk: New test for byte chunking. + * tests/misc/split-lchunk: New test for line delimited chunking. + * tests/misc/split-rchunk: New test for round-robin chunking. + * tests/Makefile.am: Reference new tests. + * tests/misc/split-fail: Add failure scenarios for new options. + * tests/misc/split-l: Fix a typo. s/ln/split/. + * doc/coreutils.texi (split invocation): Document --number. + * NEWS: Mention the new feature. + * .mailmap: Map new email address for shortlog. + +2010-11-19 Jim Meyering <meyering@redhat.com> + + build: update gnulib to fix a syntax error in a test + +2010-11-18 Jim Meyering <meyering@redhat.com> + + maint: avoid NEWS-related syntax-check failure + * NEWS: Add 2nd blank line to separate latest changes from + those of 8.7, to avoid syntax-check failure. + +2010-11-18 Paul Eggert <eggert@cs.ucla.edu> + + od: fix bugs in displaying floating-point values + * NEWS: Describe patch. + * bootstrap.conf (gnulib_modules): Add ftoastr. + * src/od.c: Include ftoastr.h, not float.h. + (FLT_DIG, DBL_DIG): Remove. No need to verify LDBL_DIG. + (FMT_BYTES_ALLOCATED): No need to worry about floating point now, + since this format is no longer used for floating point. + (PRINT_FIELDS): New macro, with most of the guts of the old PRINT_TYPE. + (PRINT_TYPE): Rewrite to use PRINT_FIELDS. + (PRINT_FLOATTYPE): New macro. This uses the new functions from + ftoastr. + (print_float, print_double, print_long_double): Reimplement + using PRINT_FLOATTYPE. + (decode_one_format): Calculate field widths based on ftoastr-supplied + macros. + * tests/Makefile.am (TESTS): Add misc/od-float. + * tests/misc/od-float: New file. + + build: update gnulib submodule to latest + +2010-11-18 Jim Meyering <meyering@redhat.com> + + maint: syntax-check: prevent new $VERBOSE/--version tests + * cfg.mk (sc_prohibit_verbose_version): New rule. + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: convert tests/misc/selinux manually + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: convert the multi-prog $VERBOSE/--version uses + E.g., + + -test "$VERBOSE" = yes && { env -- pwd --version; readlink --version; } + +print_ver_ pwd readlink + + -test "$VERBOSE" = yes && { stdbuf --version; mv --version; } + +print_ver_ stdbuf mv + + Use this command: + git grep -l 'VERBOSE.*--version'|xargs perl -ni \ + -e '/^test "\$VERBOSE" = yes && { .*--version/ or print,next;' \ + -e 's/env -- //g;' \ + -e 's/test "\$VERBOSE" = yes && { /print_ver_ /;' \ + -e ' s/(\w+) --version;/$1/g; s/ *}$//; print' + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: convert "... env -- prog --version" uses + E.g., + + -test "$VERBOSE" = yes && env -- pwd --version + +print_ver_ pwd + + git grep -l 'VERBOSE.*--version'|xargs perl -pi -e \ + 's/test "\$VERBOSE" = yes && env -- (\w+) --version/print_ver_ $1/' + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: substitute the single-program $VERBOSE/--version uses + Automatically make all of the changes like this: + + -test "$VERBOSE" = yes && chgrp --version + +print_ver_ chgrp + + git grep -l 'VERBOSE.*--version'|xargs perl -pi -e \ + 's/test "\$VERBOSE" = yes && (\w+) --version/print_ver_ $1/' + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: factor out VERBOSE-only --version-printing code + * tests/init.cfg (print_ver_): New function. + + tests: remove test-lib.sh; now all tests use gnulib's init.sh + * tests/test-lib.sh: Remove file. No longer used. + * tests/Makefile.am (EXTRA_DIST): Remove it here, too. + * tests/sample-test: Correct a comment. + + tests: convert remaining uses of test-lib.sh to init.sh + RHS='. "\${srcdir=.}/init.sh"; path_prepend_ ../src' + git grep -l test-lib.sh \ + | xargs perl -pi -e 's,^\. \$srcdir/test-lib\.sh$,'"$RHS", + + tests: convert 'if test "$VERBOSE" = yes; then' to test ... && + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: convert first batch of tests from test-lib.sh to init.sh + Initially, I did this, + git grep -l srcdir/test-lib.sh|xargs perl -p0i -e '~180-byte script' + but that line would have been much longer than the maximum permitted + by coreutils' commit hook, and wasn't readable besides, so here's a + more readable version: + + lhs=$(printf '%s\\n' \ + 'if test "$VERBOSE" = yes; then' \ + ' set -x' \ + ' touch --version' \ + 'fi' \ + '' \ + '. $srcdir/test-lib.sh' \ + | sed 's/\$/\\\$/g;s/touch/(\\w+)/') + + rhs=$(printf '%s\\n' \ + '. "${srcdir=.}/init.sh"; path_prepend_ ../src' \ + 'test "$VERBOSE" = yes && FIXME --version' \ + | sed 's/\$/\\\$/g;s/FIXME/\$1/') + + git grep -l srcdir/test-lib.sh|xargs perl -p0i -e "s,$lhs,$rhs," + +2010-11-17 Jim Meyering <meyering@redhat.com> + + tests: move a comment so automated conversion works + + maint: add a NEWS-checking syntax-check rule + * cfg.mk (sc_NEWS_two_empty_lines): New syntax-check rule. + +2010-11-16 Pádraig Brady <P@draigBrady.com> + + build: add `patch` as a bootstrap dependency + * bootstrap.conf (buildreq): require `patch` as it's used + by gnulib-tool to apply local diffs to gnulib modules + + split: fail immediately if impossible to create a large file + * src/split.c (main): Error if -[bC] value > OFF_T_MAX + * tests/misc/split-fail: Adjust for the new lower limits + + truncate: fix a very unlikely case for undiagnosed errors + src/truncate.c (main): Use a bool to store if an error occurred, + rather than an int, to protect against overflow. + (do_ftruncate): Likewise. Also change 0/false to mean failure + rather than success. + + maint: fix a new -Wpointer-sign gcc warning + * src/csplit.c (max_out): Fix a new warning introduced with + commit 6568b173, 2010-11-10, "csplit: do not rely on..." + +2010-11-16 Pádraig Brady <P@draigBrady.com> + + build: enable the -Wpointer-sign gcc warning + ... when configured with the --enable-gcc-warnings option. + This follows on from commit 34ef0a01, 2010-10-14, + "sort: fix unportable cast of unsigned char * -> char *" + + * configure.ac: -Wall implicitly enables this warning + so remove the explicit disabling. + +2010-11-15 Pádraig Brady <P@draigBrady.com> + + maint: add a missed fadvise-tests module + * gl/modules/fadvise-tests: Add the module previously missed + in commit 63b5e816, 2010-07-14, "fadvise: new module ...". + * gl/tests/test-fadvise.c: Add a comment as to why we don't + check return values. + +2010-11-13 Paul Eggert <eggert@cs.ucla.edu> + + doc: tweak NEWS and coreutils.texi + * doc/coreutils.texi (stat invocation): Add sentence-ending period. + * NEWS: Correct stat change description: s/floating point //. + * cfg.mk (old_NEWS_hash): Update, to match this NEWS change. + +2010-11-13 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.7 + * NEWS: Record release date. + + build: update gnulib... + ...to fix the failing update-copyright test, + and for the openat portability fix. + + build: update gnulib for linux 2.6.9 nanosleep workaround + Also, do the following to avoid "make syntax-check" failure + induced by new rules. + * .x-sc_bindtextdomain: Exempt files with an #ifdef'd "main". + * Makefile.am: Add this file. + + maint: remove fstimeprec (variable precision time stamp) support + The implementation of variable-precision time stamps relied + on heuristics that made the output subtly nondeterministic, + or at least hard to reproduce: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/21531/focus=21538 + So, for now at least, we're removing that feature. + * bootstrap.conf (gnulib_modules): Remove fstimeprec. + * gl/lib/fstimeprec.c, gl/lib/fstimeprec.h: Remove files. + * gl/modules/fstimeprec, gl/modules/fstimeprec-tests: Likewise. + * gl/tests/test-fstimeprec.c: Remove file. + + stat: do not provide variable precision time stamps + * src/stat.c: Don't include fstimeprec.c. + (out_epoch_sec): Don't call fstimeprec. + * NEWS: Update description. + * doc/coreutils.texi: Likewise. + +2010-11-11 Paul Eggert <eggert@cs.ucla.edu> + + csplit: do not rely on undefined behavior in printf formats + * doc/coreutils.texi (csplit invocation): Say that %d and %i are + aliases for %u. + * src/csplit.c (FLAG_THOUSANDS, FLAG_ALTERNATIVE): New constants. + (get_format_flags): Now take char const * and int * and return + size_t. It now stores info about the flags instead of merely + scanning them. Also, it handles '0' correctly. Drop support for + the undocumented '+' and ' ' flags since the value is unsigned. + Add support for the (undocumented) "'" flag. All uses changed. + (get_format_width, get_format_prec): Remove. + (check_format_conv_type): Renamed from get_format_conv_type, with + a different signature. It now converts the format to one that is + compatible with unsigned int, and checks flags. All uses changed. + (max_out): Have snprintf compute the number of bytes needed rather + than attempting to do it ourselves (which doesn't work portably + with outlandish formats such as %4294967296d). + (check_format_conv_type, main): Check for overflow in size + calculations. Don't assume size_t fits in unsigned int. + * tests/misc/csplit: Check for proper handling of flags, with + %0#6.3x. Coreutils 8.6 mishandles this somewhat-weird example. + +2010-11-11 Pádraig Brady <P@draigBrady.com> + + csplit: fix a memory leak per input buffer + * src/csplit.c (free_buffer): Also free the line offsets buffers + (remove_line): Also free the containing structure + * tests/misc/csplit-heap: A new test to trigger with leaks of + this magnitude. + * tests/Makefile.am: Reference the new test + * NEWS: Mention the fix + Reported by David Hofstee + +2010-11-10 Jim Meyering <meyering@redhat.com> + + tests: fix comments and --version invocation in new test + * tests/misc/csplit-1000: Fix comments and --version invocation. + + csplit: avoid buffer overrun when writing more than 999 files + Without this fix, seq 1000 | csplit - /./ '{*}' would write + the NUL-terminated file name, xx1000, into a buffer of size 6. + * src/csplit.c (main): Use properly sized file name buffer. + * NEWS (Bug fixes): Mention it. + * tests/misc/csplit-1000: New test to trigger the bug. + * tests/Makefile.am (TESTS): Add misc/csplit-1000. + +2010-11-09 Pádraig Brady <P@draigBrady.com> + + tests: avoid portability problem with dash vs. symlinked ttys + * tests/mv/i-3: Adjust so that the symlink is resolved + before redirecting to the background command, as otherwise + the stdin descriptor passed to the command will fail the + isatty() or ttyname() test. + +2010-11-08 Pádraig Brady <P@draigBrady.com> + + tests: avoid portability problem with dash vs. local v=$splittable_val + * tests/init.cfg (retry_delay_): Adjust awk script to print a single + floating point value, rather than many. + +2010-11-07 Jim Meyering <meyering@redhat.com> + + tests: don't disqualify FreeBSD 8.1's /bin/sh just yet, + because dash-0.5.6-2.fc14.x86_64 would also be disqualified. + This reverts part of yesterday's commit 6c058b2d, "tests: avoid + failure due to bug in FreeBSD 8.1's /bin/sh". Note that the offending + aspect of those shells is not officially a bug, since "local" is not + specified by POSIX. However, it is very unintuitive that prepending + "local" to an existing, standards-compliant assignment would evoke + such a fundamental change in semantics. + * tests/init.sh: Remove snippet requiring sane "local" support. + Upstream dash bug report: + http://thread.gmane.org/gmane.comp.shells.dash/419 + +2010-11-07 Paul Eggert <eggert@cs.ucla.edu> + + stat: do not rely on undefined behavior in printf formats + * src/stat.c (digits, printf_flags): New static vars. + (make_format): New function. + (out_string, out_int, out_uint, out_uint_o, out_uint_x): + (out_minus_zero): Use it to avoid undefined behavior when invoking + printf. + (print_it): Check for invalid conversion specifications such as + %..X and %1-X, which would otherwise rely on undefined behavior + when invoking printf. + * tests/misc/stat-nanoseconds: Check that the "I" printf flag + doesn't mess up in the C locale, as it formerly did on non-GNU + hosts. + +2010-11-06 Jim Meyering <meyering@redhat.com> + + tests: avoid failure due to bug in FreeBSD 8.1's /bin/sh + * tests/init.sh: Arrange not to accept FreeBSD 8.1's /bin/sh, since + it fails this test: /bin/sh -c 'f(){ local s=$IFS; test -n "$s"; }; f' + * tests/init.cfg (sanitize_path_): Stop-gap measure to work around + a bug in FreeBSD 8.1's /bin/sh. We'll un-do this change once all + 300+ tests use init.sh. + + build: update gnulib to latest for strtod and icc fixes + +2010-11-06 Paul Eggert <eggert@cs.ucla.edu> + + stat: use e.g. %.3X instead of %X.%3:X for sub-second precision + * NEWS: Document this. + * doc/coreutils.texi (stat invocation): Likewise. + * gl/lib/fstimeprec.c, gl/lib/fstimeprec.h, gl/modules/fstimeprec: + * gl/modules/fstimeprec-tests, gl/tests/test-fstimeprec.c: + New files. + * bootstrap.conf (gnulib_modules): Add fstimeprec. + * src/stat.c: Include fstimeprec.h. Don't include xstrtol.h. + (decimal_point, decimal_point_len): New static vars. + (main): Initialize them. + (epoch_sec, out_ns): Remove. + (out_int, out_uint): Now returns whatever printf returned. + (out_minus_zero, out_epoch_secs): New functions. + (print_stat): Use out_epoch_sec instead of out_ns and epoch_sec. + (print_stat, print_it, usage): Remove the %:X-style formats. + * tests/misc/stat-nanoseconds: Set TZ=UTC0 to avoid problems + with weird time zones. Use a time stamp near the Epoch so that we + don't have to worry about leap seconds. Redo test cases to match + new behavior. + * tests/touch/60-seconds: Change %Y.%:Y to %.9Y, to adjust to + new behavior. + +2010-11-04 Eric Blake <eblake@redhat.com> + + cp: NEWS entry for previous fix + Resolves bug#7324 + + * NEWS: Document the extent of the Solaris crash. + +2010-11-04 Eric Blake <eblake@redhat.com> + + cp, mv, touch: fix file time manipulation on Solaris 10 + * gnulib: Update to latest, for futimens fix. + * .gitignore: Ignore another recent gnulib-generated file. + +2010-11-03 Jim Meyering <meyering@redhat.com> + + build: update gnulib to latest + + stat: revert %X-%Y-%Z change; use e.g., %:X to print fractional seconds + This reverts part of the recent commit 9069af45, + "stat: print timestamps to full resolution", which made %X, %Y, %Z + print floating point numbers. We prefer to retain portability of + %X, %Y and %Z uses, while still providing access to full-resolution + time stamps via modified format strings. Also make the new + %W consistent. + * src/stat.c: Include "xstrtol.h". + (print_it): Accept a new %...:[XYZ] format directive, + e.g., %:X, to print the nanoseconds portion of the corresponding time. + For example, %3.3:Y prints the zero-padded, truncated, milliseconds + part of the time of last modification. + (print_it): Update print_func signature to match. + (neg_to_zero): New helper function. + (epoch_time): Remove function; replace with... + (epoch_sec): New function; use timetostr. + (out_ns): New function. Use "09" only when no other modifier + is specified. + (print_statfs): Change type of "m" to unsigned int, + now that it must accommodate values larger than 255. + (print_stat): Likewise. + Map :X to a code of 'X' + 256. Likewise for Y, Z and W. + (usage): Update. + * tests/touch/60-seconds: Use %Y.%:Y in place of %Y. + * tests/misc/stat-nanoseconds: New file. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Changes in behavior): Mention this. + With improvements by Pádraig Brady. + Thanks to Andreas Schwab for raising the issue. + +2010-11-01 Nix <nix@esperi.org.uk> + + tests: fix a false positive for 32 bit on 64 bit hosts + * tests/ls/stat-free-symlinks: strace currently outputs an + informational message about arch difference to stdout. + Therefore we need to strip that before comparison. + +2010-10-28 Patrick W. Plusnick II <pwplusnick2@gmail.com> + + maint: remove an unnecessary FIXME comment + * src/seq.c (terminator): This does not need to be specifiable + via an option. Remove the FIXME comment. + +2010-10-27 Pádraig Brady <P@draigBrady.com> + + cp: make --attributes-only override --reflink completely + * doc/coreutils.texi (cp invocation): Change the description slightly + so as users might not immediately discount using this option. + Mention that --reflink is overridden by the other linking options and + --attributes-only, and give an example where this might be useful. + * src/copy.c (copy_internal): Bypass the reflink if + --attributes-only is specifed. + * tests/cp/reflink-perm: Ensure both --reflink modes are + overridden by --attributes-only. + * NEWS: Mention the change in behavior. + Reported by Jim Meyering. + +2010-10-26 Jim Meyering <meyering@redhat.com> + + tests: mention that btrfs also causes failure of misc/ls-time + * tests/misc/ls-time: Mention that this test also fails on btrfs, + at least until http://bugzilla.redhat.com/591068 is addressed. + +2010-10-25 Eric Blake <eblake@redhat.com> + + maint: update THANKS + * THANKS: Update. + +2010-10-25 Tobias Quathamer <toddy@debian.org> + + date: correct typos in date --help + * src/date.c (usage): Use "e.g." correctly. + +2010-10-25 Pádraig Brady <P@draigBrady.com> + + tail: support rechecking currently missing remote dirs + src/tail.c (main): As an optimization, don't bother checking + for stdin or remote files, when ---disable-inotify is specified. + To improve the fix in commit 61b77891, set the disable_inotify + flag when we fall back to polling, so that we recheck remote files. + NEWS: Mention the fix + +2010-10-24 Paul Eggert <eggert@cs.ucla.edu> + + du: don't print junk when diagnosing out-of-range time stamps + * src/du.c (show_date): Fix call to fputs with a buffer that + contains some uninitialized data. + * tests/Makefile.am (TESTS): Add du/big-timestamp. + * tests/du/bigtime: New file, which checks for the bug. + +2010-10-20 Rodrigo Campos <rodrigo@sdfg.com.ar> + + doc: add a cross reference from cat's man page to "tac" + * man/cat.x: See also "tac". + +2010-10-19 Jim Meyering <meyering@redhat.com> + + tests: trigger and test for md5sum's new diagnostics + * tests/misc/md5sum: Test for new diagnostics. + +2010-10-19 Benno Schulenberg <bensberg@justemail.net> + + md5sum: print a summary warning for improperly formatted lines + And remove the now-superfluous totals from the other two warnings, + so the plurals will also work in other languages than English. + + * src/md5sum.c (digest_check): Change as above. + * tests/misc/md5sum (check-quiet2): Adjust accordingly. + +2010-10-18 Jim Meyering <meyering@redhat.com> + + build: enable -Werror for gnulib-tests, too + * gnulib: Update to latest for warning-free tests. + * gnulib-tests/Makefile.am (AM_CFLAGS): Uncomment $(WERROR_CFLAGS), + now that these tests are warning-free. + +2010-10-17 Jim Meyering <meyering@redhat.com> + + maint: update bootstrap from gnulib + * bootstrap: Update from gnulib. + + .gitignore: anchor patterns + * .gitignore: Anchor most patterns. Remove .tarball-version. + * doc/.gitignore: Anchor all patterns. + Remove getdate.texi and get_date.texi. + + tests: sort-float: avoid spurious test failure on ppc/ppc64 + * tests/misc/sort-float: On systems with DBL_MIN < LDBL_MIN, + this test would fail because the expected output was not sorted. + Detect that case, and if needed, reverse those two values. + +2010-10-16 Andreas Schwab <schwab@linux-m68k.org> + + fold: fix fadvise hint + * src/fold.c (fold_file): Apply fadvise to istream, not stdin. + This bug would have inhibited the fadvise optimization when not + reading from standard input. + +2010-10-15 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.6 + * NEWS: Record release date. + + build: update gnulib for vasnprintf fix + +2010-10-14 Paul Eggert <eggert@cs.ucla.edu> + + bug#7213: [PATCH] sort: fix buffer overrun on 32-bit hosts when warning re obsolete keys + * src/sort.c (key_warnings): Local buffer should be of size + INT_BUFSIZE_BOUND (uintmax_t), not INT_BUFSIZE_BOUND (sword). + This bug was discovered by running 'make check' on a 32-bit + Solaris 8 sparc host, using Sun cc. I saw several other instances + of invoking umaxtostr on a buffer declared to be of size + INT_BUFSIZE_BOUND (VAR), and these instances should at some point + be replaced by INT_BUFSIZE_BOUND (uintmax_t) too, as that's a + less error-prone style. + + tests: work around portability and clock-skew problems + * tests/misc/ls-misc (push_ls_colors): Don't assume LS_COLORS + is set. This part of the fix is by Jim Meyering. + (sl-dangle2, sl-dangle3, sl-dangle4, sl-dangle5): Don't assume + that newly-created files will have time stamps in the past. They + might not, due to clock skew, if the file systems are remote. + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/21322/focus=21346 + + install: avoid warning with Solaris 10 cc + * src/install.c (extra_mode): Don't assign ~S_IRWXUGO & ~S_IFMT + to a mode_t variable, as the number might be too big to fit. + Solaris 10 cc warns about this, and the C standard says it + has undefined behavior. + + mbsalign: avoid warning with Solaris 10 cc + * gl/lib/mbsalign.c: Include <stdint.h> for SIZE_MAX. + Use SIZE_MAX rather than (size_t) -1, to avoid warning for + "size_t x = -1" on Solaris 10 cc. + * gl/modules/mbsalign (Depends-on): Add stdint. + + sort: fix unportable cast of unsigned char * -> char * + * src/sort.c (fold_toupper): Change this back from char to + unsigned char, fixing a portability issue introduced in commit + 59e2e55d0f154a388adc9bac37d2b45f2ba971f8 dated February 26, as the + C Standard doesn't let you convert from unsigned char * to char * + without a cast, and the (in theory more portable) style here is to + convert char values, not pointer values. + (getmonth): Convert char to unsigned char when needed for + comparison. + +2010-10-13 Jim Meyering <meyering@redhat.com> + + build: prepare to enable -Werror also for gnulib-tests/ + * configure.ac (GNULIB_WARN_CFLAGS): Define new variable, for use + in gnulib-tests. + * gnulib-tests/Makefile.am: Disable specific -W___ options, + but only for a few specific offending tests: + (test_xvasprintf_CFLAGS): Define. + (test_lock_CFLAGS, test_tls_CFLAGS): Define. + +2010-10-13 Paul Eggert <eggert@cs.ucla.edu> + + tests: fix rand-isaac test + * gl/tests/test-rand-isaac.c (main): Fix swapped arguments to strtol. + +2010-10-12 Pádraig Brady <P@draigBrady.com> + + tail: fix checking of currently unavailable directories + * src/tail.c (tail_forever_inotify): Handle the case where + tail --follow=name with inotify, is not able to add a watch on + a specified directory. This may happen due to inotify resource + limits or if the directory is currently missing or inaccessible. + In all these cases, revert to polling which will try to reopen + the file later. Note inotify returns ENOSPC when it runs out + of resources, and instead we report a particular error message, + lest users think one of their file systems is full. + (main): Document another caveat with using inotify, where we + currently don't recheck directories recreated after the + initial watch is setup. + * tests/tail-2/F-vs-rename: Fix the endless loop triggered by + the above issue. + * tests/tail-2/inotify-hash-abuse: Likewise. + * tests/tail-2/wait: Don't fail in the resource exhaustion case. + * tests/tail-2/F-vs-missing: A new test for this failure mode + which was until now just triggered on older buggy linux kernels + which returned ENOSPC constantly from inotify_add_watch(). + * NEWS: Mention the fix. + +2010-10-11 Jim Meyering <meyering@redhat.com> + + build: update gnulib to latest; to fix failing Solaris 5.11 test + + maint: add new file: .mailmap + * .mailmap: Map git author names and email addresses to + canonical/preferred form. This file is used e.g., by "git shortlog". + +2010-10-08 Jim Meyering <meyering@redhat.com> + + build: update gnulib, to fix OpenBSD test failures + + build: update gnulib to latest; for parse-datetime.y fix + + build: update gnulib to latest, to avoid FreeBSD compilation failure: + http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/23501 + +2010-10-07 Pádraig Brady <P@draigBrady.com> + + split: fix reporting of read errors + The bug was introduced with commit 23f6d41f, 19-02-2003. + + * src/split.c (bytes_split, lines_split, line_bytes_split): + Correctly check the return from full_read(). + * tests/misc/split-fail: Ensure split fails when + it can't read its input. + * NEWS: Mention the fix. + +2010-10-06 Jim Meyering <meyering@redhat.com> + + build: update gnulib to latest, for memmem/strstr fix + +2010-10-05 Jim Meyering <meyering@redhat.com> + + maint: describe coreutils' policy on copyright year number ranges + * README: Mention coreutils' long-standing policy on use of M-N + ranges in copyright year lists. Requested by Richard Stallman. + +2010-10-05 Eric Blake <eblake@redhat.com> + + build: complete the rename of get_date + * gnulib: Update to latest. + * src/date.c (includes, batch_convert, main): Track rename. + * src/touch.c (includes, get_reldate): Likewise. + * doc/coreutils.texi (Top, Date input formats): Likewise. + * bootstrap.conf (gnulib_modules): Likewise. + * doc/Makefile.am (EXTRA_DIST): Likewise. + * doc/.gitignore: Likewise. + * bootstrap: Synchronize from upstream. + + stat: drop %C support when printing file system details + * src/stat.c (print_statfs, usage): Drop %C, since it applies to + files, not file systems. + (out_file_context): Match style of other out_* functions. + (print_stat): Update caller. + * doc/coreutils.texi (stat invocation): Document %C. + * NEWS: Document the change. + + build: fix build on Solaris 10 + * gnulib: Update to latest, for reduced -lgen scope. + * bootstrap: Synchronize from upstream. + Reported by Clemens Brogi, as bug #7142. + +2010-10-05 Pádraig Brady <P@draigBrady.com> + + stat: adjust the printing of SELinux context + * src/stat.c (default_format): Don't print SELinux context + when in file system (-f) mode, as the context is associated + with the file, not the file system. + Fix logic inversion, so that in terse mode, %C is included + only when is_selinux_enabled and not vice versa. + +2010-10-04 Pádraig Brady <P@draigBrady.com> + + tests: refactor the stat-birthtime test to use retry_delay_ + * tests/misc/stat-birthtime: This recently added test + fits the pattern of requiring a delay to pass, so get + it to use retry_delay_() + +2010-10-03 Jim Meyering <meyering@redhat.com> -2006-09-19 Paul Eggert <eggert@cs.ucla.edu> - - * src/ln.c (target_directory_operand): Rewrite to avoid porting - problem on Tandem reported by Matthew Woehlke in - <https://savannah.gnu.org/bugs/?17172>. - -2006-09-18 Paul Eggert <eggert@cs.ucla.edu> - - Fix bug where chmod, chown, and chgrp did not process operands - left-to-right in some cases. - * src/chmod.c (wd_errno): New var. - (chmod_file): New function, with most of the contents of the - old prcess_file function. - (process_files): Use it. This gives file names to fts one - at a time, so that they are processed left-to-right as POSIX - requires. - * src/chown-core.c (wd_errno, chown_files): Likewise. - (chown_file): New function. - * tests/install/basic-1: Redo test so as to not workaround - the chmod bug, thereby testing for it. - - * src/shuf.c (main): Quote the entire range when reporting an - invalid one, rather than just the part that contained the error. - - * tests/stty/row-col-1: Rewrite to avoid temporary file that is - sometimes left behind if the test is skipped or interrupted. - - * bootstrap (symlink_to_gnulib): New function. - (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib - to copies-of-gnulib. - (cp_mark_as_generated, slurp, gnulib_files): - Avoid making a copy if it's the same as the old version. - (gnulib_files): Add support for this variable (used by Bison). - - * tests/ls/stat-vs-dirent: Fix quoting problem in diagnostic - indicating flaw in kernel. Reword to say that the flaw isn't - serious for coreutils, since the flaw does affect ls -i. - - * tests/chgrp/basic: Fix bug in test case exposed by building on - Solaris 8 in a setgid directory. The test case incorrectly - assumed that 'symlink' would be in group $g1. - -2006-09-18 Jim Meyering <jim@meyering.net> - - * NEWS: Add a line for 6.3-cvs. - * configure.ac (AC_INIT): Bump to 6.3 and add "-cvs" suffix. - - Version 6.2. - * NEWS: Record the 6.2 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - -2006-09-17 Jim Meyering <jim@meyering.net> - - * tests/chgrp/basic: On an OpenBSD system, rather than failing - due to a known problem, merely warn about it. - Rewrite to avoid testing output of chgrp --verbose and chgrp -c. - Instead, use stat to test file system for desired results, directly. - * tests/chgrp/Makefile.am (TESTS_ENVIRONMENT): Set host_triplet. - - * tests/envvar-check: Add more variable names to the list of those - that can affect these programs and tests: _POSIX2_VERSION, COLUMNS, - QUOTING_STYLE, TABSIZE, TERM, TMPDIR. - -2006-09-16 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document that mkdir -p and install -d now fork on occasion. - * bootstrap.conf (gnulib_modules): Add savewd. - * src/install.c: Include savewd.h. - (process_dir): New function. - (main, install_file_in_file_parents): Use it, along with the new - savewd module, to avoid some race conditions. - * src/mkdir.c: Include savewd.h. - (struct mkdir_options): New members make_ancestor_function, mode, - mode_bits. - (make_ancestor): Return 1 if the resulting directory is not readable. - (process_dir): New function. - (main): Use it, along with new savewd module, to avoid some - race conditions. Fill in new slots of struct mkdir_options, so - that callees get the values. - * tests/install/basic-1: Test for coreutils 5.97 bug that was - fixed in coreutils 6.0, and which should still be fixed with - this change. + maint: add a release prerequisite: check the NixOS/Hydra autobuilder + * README-release: Add a note to check the autobuilder. + + build: update gnulib submodule to latest + + maint: suppress a bogus used-uninitialized warning in tr.c + * src/tr.c (string2_extend): Insert an abort call to tell + gcc that char_to_repeat is not used uninitialized. + +2010-10-01 Eric Blake <eblake@redhat.com> + + tests: output --version of program under test + This touches all new tests added since commit b062bbd9, when + init.cfg was added. Older tests still exist that could use + conversion, but we can address those later. + + * tests/sample-test: Restore hint for --version output. + * tests/misc/stat-birthtime: Include --version if verbose. + * tests/misc/tr-case-class: Likewise. + * tests/misc/stat-mount: Likewise. + * tests/misc/sort-unique: Likewise. + * tests/misc/sort-benchmark-random: Likewise. + Suggested by Jim Meyering. + +2010-10-01 Eric Blake <eblake@redhat.com> + + stat: print SELinux context when available + * src/stat.c (default_format): Include context when present. + * NEWS: Update blurb explaining the replacement for -Z. + +2010-10-01 Eric Blake <eblake@redhat.com> + + stat: optimize and translate default format strings + Yes, this patch intentionally leaks the results of default_format(), + since it is called only twice, and since the results are in scope + until main() exits. Not worth the extra code to pacify valgrind. + + * src/stat.c (main): Hoist default format computation out of loop. + (do_statfs, do_stat): Move default format generation... + (default_format): ...into new function. Allocate the result in + pieces, rather than repeating mostly-similar chunks. Allow + translation of verbose format. Pass a second format to do_stat, + for the one aspect of the default format that is conditional on + file type. + * NEWS: Document the translation aspect. + +2010-10-01 Eric Blake <eblake@redhat.com> + + stat: print timestamps to full resolution + * src/stat.c (epoch_time): New function. + (print_stat): Use it for %[WXYZ]. + * NEWS: Document this. + * tests/touch/60-seconds: Adjust test to match. + * tests/misc/stat-birthtime: Likewise. + + stat: support printing birthtime + * src/stat.c (print_stat): New %w and %W formats. + (do_stat): Include %w in default format. + (usage): Document new specifiers. + * doc/coreutils.texi (stat invocation): Likewise. + * NEWS: Likewise. + + maint: update sample test template + * tests/sample-test: Recommend modern idiom. + +2010-10-01 Pádraig Brady <P@draigBrady.com> + + maint: ensure the mbsalign module is C89 compatible + This module may be moved to gnulib at some stage, + so keep it C89 compatible. + + * gl/lib/mbsalign.c (mbsalign): Declare variables at start of scope + (ambsalign): Likewise + * gl/lib/mbsalign.h: Remove trailing comma from enum + Reported by Andrei Suhan + +2010-09-30 Eric Blake <eblake@redhat.com> + + maint: update gnulib + * gnulib: Update to latest. + * doc/coreutils.texi (date): Reflect new module name. + * doc/Makefile.am (EXTRA_DIST): Likewise. + * doc/.gitignore: Likewise. + + maint: update gnulib + * gnulib: Update to latest. + * bootstrap.conf (gnulib_modules): Reflect new module name. + * bootstrap: Resync from upstream. + +2010-09-30 Jim Meyering <meyering@redhat.com> + + maint: mention the du-exclude--vs--cycle-dir fix + * NEWS (Bug fixes): Mention the du-exclude--vs--cycle-dir fix. + Reported by Graham Cobb in http://bugs.debian.org/598438, + that bug was fixed by the 2010-07-24 commit, 77428214f, + "du: tune, and fix some -L bugs with dangling or cyclic symlinks" + +2010-09-29 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2010-09-29 Pádraig Brady <P@draigBrady.com> + + tr: fix various issues with case conversion + This valid translation spec aborted: + LC_ALL=en_US.iso-8859-1 tr '[:upper:]- ' '[:lower:]_' + This invalid translation spec aborted: + LC_ALL=en_US.iso-8859-1 tr '[:upper:] ' '[:lower:]' + This was caused by commit 6efd1046, 05-01-2008, + "Avoid tr case-conversion failure in some locales" + + This misaligned conversion spec was allowed: + LC_ALL=C tr 'A-Y[:lower:]' 'a-z[:upper:]' + This was caused by commit af5d0c36, 21-10-2007, + "tr: do not reject an unmatched [:lower:] or [:upper:] in SET1" + + This misaligned spec was allowed by extending the class: + LC_ALL=C tr '[:upper:] ' '[:lower:]' + + * src/tr.c (validate_case_classes): A new function to check + alignment of case conversion classes. Also it adjusts the + length of the sets so that locales with different numbers of + upper and lower case characters, don't cause issues. + (string2_extend): Disallow extending the case conversion + class as in the above example. That is locale dependent + and most likely not what the user wants. + (validate): Do the simple test for "restricted" char classes + earlier, so we don't redundantly do more expensive validation. + (main): Remove the case class validation, and simplify. + * tests/misc/tr-case-class: A new test to test the various + alignment and locale issues, associated with case conversion. + * tests/misc/tr: Move case conversion tests to new tr-case-class. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fixes. + +2010-09-21 Paul Eggert <eggert@cs.ucla.edu> + + build: update gnulib submodule to latest + +2010-09-20 Paul Eggert <eggert@cs.ucla.edu> + + sort: destroy spin locks portably + * src/sort.c (sortlines, sort): Use pthread_spin_destroy when a + spin lock is no longer used. This isn't needed on GNU/Linux or + Solaris, but POSIX says it may free up resources on some platforms. + +2010-09-20 Pádraig Brady <P@draigBrady.com> + + tests: fix a printf portability issue + * tests/misc/sort-debug-keys: Don't depend on + printf supporting \xhh format, which isn't supported + by dash for example. Also change from double quoted + strings to single quoted, when we don't need any + variable interpolation. + + tests: fix an erroneous stat failure with bind mounts + * tests/misc/stat-mount: Don't try to correlate the + mount points output by df and stat, as they're similar, + but sometimes different in the presence of bind mounts. + * doc/coretuils.texi (stat invocation): Clarify the + bind mount difference between stat and df. + +2010-09-18 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tests: sync tests/init.sh from gnulib + * tests/init.sh: Update from gnulib. + + build: use gnulib's new termios module + With it, we can remove the two sole tests of HAVE_TERMIOS_H. + * bootstrap.conf (gnulib_modules): Add termios. + * src/ls.c: Don't test HAVE_TERMIOS_H. + * src/stty.c: Likewise. + * m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove configure-time + test for termios.h. + + maint: don't use obsolete gnulib modules + * bootstrap.conf (gnulib_modules): Use calloc-gnu, malloc-gnu + and realloc-gnu modules, rather than calloc, malloc and realloc. + The shorter-named modules are now deprecated. + (obsolete_gnulib_modules): Remove. + (gnulib_modules): Remove raise, strbprk; they're obsolete, too. + Move strtod, strtol here, from obsolete_gnulib_modules. + +2010-09-17 Eric Blake <eblake@redhat.com> + + maint: update to latest gnulib + * gnulib: Update to latest. + * src/copy.c (copy_reg): Use fdutimens instead of gl_futimens. + * src/touch.c (touch): Adjust parameter order. + * tests/init.sh: Resync from upstream. + + rm: remove no-op -d option + * src/rm.c (long_opts, main): Resolve a fixme. + * NEWS: Document the change. + Based on a report by William Plusnick. + + maint: update to latest gnulib + * gnulib: Update to latest. + * bootstrap.conf (gnulib_modules): Add fdutimensat. + * src/touch.c (touch): Use fdutimensat instead of gl_futimens. + +2010-09-13 Dmitry V. Levin <ldv@altlinux.org> + + dircolors: add rxvt-unicode-256color terminal type + rxvt-unicode introduced new terminal type: + http://cvs.schmorp.de/rxvt-unicode/src/rxvt.h?r1=1.398&r2=1.399 + + * src/dircolors.hin: Add rxvt-unicode-256color terminal type. + Reported by Alexey I. Froloff in <http://bugzilla.altlinux.org/24052>. + +2010-09-07 Pádraig Brady <P@draigBrady.com> + + tests: work around a failure with dash 0.5.4 + * tests/misc/env: Check that the shell can support + the operation, before filtering through `env`. + Note dash 0.5.5 is unaffected by this issue. + + tests: make various timeouts more robust + * tests/init.cfg (retry_delay_): Describe + the backoff method used. + * tests/ls/readdir-mountpoint-inode: Add a timeout + to the stat call to eliminate the chance of hangups. + * tests/mv/i-3: Change the timeout required to pass + from 1 second to a range of .1s - 3.1s. + * tests/rm/dangling-symlink: Likewise. + +2010-09-07 Pádraig Brady <P@draigBrady.com> + + tests: exclude some tests when running on NFS + All tests currently pass on NFS on Linux kernel 2.6.22 at least, + but some fail on 2.6.9, so we exclude those here. + + * tests/init.cfg (is_local_dir_): A new function + returning if the specified directory is on a local file system. + (require_local_dir_): A new function to skip tests + if the current directory is not on a local file system. + * tests/cp/existing-perm-race: Skip if non local. + * tests/cp/file-perm-race: Likewise. + * tests/cp/parent-perm: Likewise. + * tests/cp/parent-perm-race: Likewise. + * tests/cp/preserve-2: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/du/basic: Use refactored function. + * tests/install/basic-1: Likewise. * tests/mkdir/p-3: Likewise. + * tests/dd/skip-seek-past-dev: Likewise. + * tests/du/slink: Likewise. Remove redundant test + for NFS file system. + * tests/misc/join: s/local/locale/. + +2010-09-04 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + build: use gettext-h, not gettext + * bootstrap.conf (gnulib_modules): Use gettext-h, not gettext. + The latter is overkill for a package that uses + AM_GNU_GETTEXT([external]... + +2010-09-01 Jim Meyering <meyering@redhat.com> + + tac: suppress technically unneeded "free" + * src/tac.c (main): Guard final free with #ifdef lint. + Suggested by Paul Eggert. + +2010-09-01 Pádraig Brady <P@draigBrady.com> + + join: improve performance when operating on whole lines + Following on from commit f86bb696, 01-02-2010, + "join: make -t '' operate on the whole line". + Bypassing the delimiter search in this case, + gives about an 8% performance boost. + + * src/join (xfields): Don't bother looking for '\n' + in the data, which we know won't be present. -2006-09-15 Jim Meyering <jim@meyering.net> +2010-08-28 Jim Meyering <meyering@redhat.com> - * bootstrap.conf (gnulib_modules): Add rename-dest-slash. - The 2006-09-08 changes made it so "mv dir new-name/" would - fail on NetBSD 1.6. This makes it work once again. + tac: avoid double free + * src/tac.c (main): Reading a line longer than 16KiB would cause + tac to realloc its primary buffer. Then, just before exit, tac + would mistakenly free the original (now free'd) buffer. + This bug was introduced by commit be6c13e7, "maint: always free a + buffer, to avoid even semblance of a leak". + * NEWS (Bug fixes): Mention it. + * tests/misc/tac (double-free): New test, to exercise this. + Reported by Salvo Tomaselli in <http://bugs.debian.org/594666>. -2006-09-14 Jim Meyering <jim@meyering.net> +2010-08-27 Pádraig Brady <P@draigBrady.com> - * src/mv.c (main): Remove unnecessary (always-true) test for 2 <= n. - Instead, since it's a little fragile, assert the condition. - (target_directory_operand): Update comment to reflect latest change. + doc: clarify that stat -f implies -L (follows symlinks) + * doc/coreutils.texi (stat invocation). Since there is + no lstatfs, document that -L is implicit with -f. -2006-09-12 Paul Eggert <eggert@cs.ucla.edu> +2010-08-27 Aaron Burgemeister <dajoker@gmail.com> - * src/who.c (print_user): Rewrite to avoid warning from - GCC 4.1.1 with -Wall. + stat: add %m to output the mount point for a file + * src/find-mount-point.c: A new file refactoring + find_mount_point() out from df.c + * src/find-mount-point.h: Likewise. + * src/df.c: Use the new find-mount-point module. + * src/stat.c (print_stat): Handle the new %m format. + (find_bind_mount): A new function to + return the bind mount for a file if any. + (out_mount_mount): Print the bind mount for a file, or else + the standard mount point given by the find-mount-point module. + (usage): Document the %m format directive. + * src/Makefile.am: Reference the refactored find-mount-point.c + * po/POTFILES.in: Add find_mount_point.c to the translation list + * doc/coreutils.texi (stat invocation): Document %m, + and how it may differ from the mount point that df outputs. + * test/misc/stat-mount: A new test to correlate mount points + output from df and stat. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the new feature + * THANKS: Add the author -2006-09-12 Jim Meyering <jim@meyering.net> +2010-08-26 Eric Blake <eblake@redhat.com> - * tests/mv/atomic: Check for specific strace output, rather than - simply nonempty. RHEL AS 4 would fail this test due to strace - generating "[ Process PID=14434 runs in 32 bit mode. ]". - Reported by Nelson Beebe. + maint: update to latest gnulib + * gnulib: Update to latest, to avoid warnings with latest autoconf.git. -2006-09-11 Jim Meyering <jim@meyering.net> + maint: avoid a hung 'make syntax-check' in VPATH build + * cfg.mk (sc_system_h_headers): Look for files in correct location. - * src/remove.c (remove_dir): Move new cache_stat_init call onto - it's own line. - (rm_1): Move declaration of "st" and new cache_stat_init call - "down" to nearer where they're used. - * src/c99-to-c89.diff: Add another set of curly braces. +2010-08-25 Pádraig Brady <P@draigBrady.com> -2006-09-10 Paul Eggert <eggert@cs.ucla.edu> + df: always print the device name for bind mounted files + * src/df (show_point): Remove the optimization for comparing + the specified path with the device name, as this produces + inconsistent results in the presence of bind mounts. For bind + mounts, the device name is populated with the bind mount target. + * NEWS: Mention the change in behavior. - * src/expr.c (eval6): Fix buffer overrun, or bad performance, if - substr's last operand is very large. Performance problem reported - by Sebastian Kreft. +2010-08-23 Pádraig Brady <P@draigBrady.com> -2006-09-09 Jim Meyering <jim@meyering.net> + stat: fix a small memory leak with %N + * src/stat.c (print_stat): Free the buffer returned + from areadlink_with_size(). - * Makefile.maint (sc_prohibit_jm_in_m4): Don't hang when there - are no .m4 files. - (sc_require_config_h): Skip this test if there are no version- - controlled .c files. - (sc_prohibit_assert_without_use): Likewise. +2010-08-15 Pádraig Brady <P@draigBrady.com> -2006-09-08 Jim Meyering <jim@meyering.net> + maint: exclude tests from the set_program_name syntax-check + * .x-sc_program_name: Exclude all current and future + c files in gl/tests from this check + * gl/tests/test-di-set.c: Remove the hack to work around + the set_program_name syntax-check + * gl/tests/test-ino-map.c: Likewise + * gl/tests/test-rand-isaac.c: Likewise - * bootstrap: Export CVS_RSH separate from its assignment, to work - even with Solaris 10's /bin/sh. Suggestion from Mark D. Baushke. +2010-08-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -2006-09-08 Paul Eggert <eggert@cs.ucla.edu> + doc: avoid a warning from newer texinfo + * doc/coreutils.texi (sort invocation): Use @pxref inside parentheses. - * NEWS: tail now ignores the -f option if POSIXLY_CORRECT is set, - no file operand is given, and standard input is any FIFO. - This is in response to Open Group XCU ERN 114. - * src/tail.c (main): Likewise. +2010-08-15 Bruno Haible <bruno@clisp.org> -2006-09-08 Jim Meyering <jim@meyering.net> + doc: improve the info on md5sum security weaknesses + * doc/coreutils.texi (md5sum invocation): Mention currently known + security problems. Don't recommend SHA-1 as alternative. + * man/md5sum.x (BUGS): Warn about the vulnerabilities and + reference the SHA-2 based alternatives. + Reported by Simon Josefsson - mv and "cp -r" no longer fail when invoked with two arguments - where the first one names a directory and the second name ends in - a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B, - now succeeds, once more. This reverts part of the 2004-06-27 - change for 5.3.0. - * NEWS: Say the above. - * src/mv.c (target_directory_operand): Don't require (here) - that the target operand "look like" a directory. This change - pushes the test down to the rename syscall level, where a - "mv dir existing-non-dir/" will mistakenly succeed on older systems - that ignore trailing slashes in the rename destination argument. - * src/cp.c (target_directory_operand): Likewise, but for cp. - * tests/mv/trailing-slash: Exercise the above fixes. - * tests/cp/trailing-slash: New file. - * tests/cp/Makefile.am (EXTRA_DIST): Add trailing-slash. +2010-08-13 Paul Eggert <eggert@cs.ucla.edu> - * bootstrap: Use the previously unused variable, $src, - to avoid repeating "$GNULIB_SRCDIR/$file". + * tests/misc/sort (use-nl): Fix comment to match the test case. - * bootstrap (cp_mark_as_generated): Don't use "local", to - accommodate ancient "/bin/sh". Suggested by Ralf Wildenhues. - Rename now-global "$src" and "$dst" to have cp_ prefix. - Safer, and avoids confusion. +2010-08-11 Paul Eggert <eggert@cs.ucla.edu> - * bootstrap (cp_mark_as_generated): New function. - (slurp): Use it to prepend editor hints and a warning that - the file we're copying is generated. - Suggestion from Bruce Korb. - (cp_mark_as_generated): Don't add C-style comments for .l or .y files. - Fix last-minute typo. + sort, who: prefer free+malloc to realloc when contents are irrelevant + This change was prompted by the previous one: I audited the code + looking for similar examples. Too bad valgrind doesn't catch this. + * src/sort.c (check, mergefps): xrealloc -> free + xmalloc + * src/who.c (print_user): Likewise. -2006-09-07 Jim Meyering <jim@meyering.net> +2010-08-10 Paul Eggert <eggert@cs.ucla.edu> - * bootstrap: Revert last change. There are less disruptive ways - to mark these generated files as read-only. + sort: free/xmalloc rather than xrealloc + * src/sort.c (compare_random): Use free/xmalloc rather than + xrealloc, since the old buffer contents need not be preserved. + Also, don't fail if the guessed-sized malloc fails. Suggested by + Bruno Haible. - * src/c99-to-c89.diff: Update to have proper offsets. +2010-08-10 Eric Blake <eblake@redhat.com> -2006-09-06 Jim Meyering <jim@meyering.net> + build: update to latest gnulib + Fixes bug 6053 for NFS on HP-UX not recognizing ACL operations. - Ensure that some gnulib-tool-generated files are read-only. - * bootstrap (slurp): Put the body of this function in a sub-shell, - with "umask a-w" so that all new files are read-only. Remove each - file before we write to it, in case it's read-only. - Make po/Makevars and runtime-po/Makevars read-only, too. + * gnulib: Update to latest version. -2006-09-05 Jim Meyering <jim@meyering.net> +2010-08-10 Jim Meyering <meyering@redhat.com> - * tests/cp/acl: Skip this test when cp lacks ACL support. - * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set $(CONFIG_HEADER). + sort: avoid gcc warning: explicitly ignore strtold result + * src/sort.c: Include "ignore-value.h". + (debug_key): Use ignore_value. - * src/c99-to-c89.diff (remove.c): Adapt one hunk to match the new - context from change of 2006-09-02. +2010-08-09 Eric Blake <eblake@redhat.com> -2006-09-04 Jim Meyering <jim@meyering.net> + tests: silence 'make syntax-check' + * gl/tests/test-rand-isaac.c (main): Avoid warnings from + syntax-check. - * README-cvs: Fix typo in update command. +2010-08-09 Mike Frysinger <vapier@gentoo.org> -2006-09-03 Jim Meyering <jim@meyering.net> + dircolors: add screen.rxvt & terminator to TERM list + Resolves bug#6793. + * src/dircolors.hin: Add screen.rxvt & terminator. - * NEWS: Tweak the wording in the new change description so that - no one can think this change causes e.g., `rm -fr foo../' to fail. +2010-08-09 Dan Hipschman <dsh@linux.ucla.edu> - * tests/rm/inaccessible: Adjust for movement of config.h to lib/. - Use $CONFIG_HEADER, rather than hard-coding it. - * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Set $CONFIG_HEADER. + ls: fix a test failure that should have been skipped + * tests/ls/readdir-mountpoint-inode: Check to see if skip_test_ is + called in a helper function via $() instead of mistakenly failing. + * THANKS: Update. -2006-09-02 Paul Eggert <eggert@cs.ucla.edu> +2010-08-09 Paul Eggert <eggert@cs.ucla.edu> - * NEWS: rm now rejects attempts to remove /, ./, and ../. - * src/basename.c: Don't include dirname.h, since system.h does it now. - * src/chmod.c: Likewise. + sort: speed up -R with long lines in hard locales + * src/sort.c (compare_random): Guess that the output will be + 3X the input. This avoids the overhead of calling strxfrm + twice on typical implementations. Suggested by Bruno Haible. + +2010-08-07 Paul Eggert <eggert@cs.ucla.edu> + + sort: support all combinations of -d, -f, -i, -R, and -V + * NEWS: Document this. + * src/sort.c (getmonth): Omit LEN arg, as MONTH is now null-terminated. + (compare_random): Don't null-terminate keys, as caller now does that. + (compare_version): Remove. + (debug_key): Null-terminate string for getmonth. + (keycompare): Support combining -R with any of -d, -f, -i, -V. + Also, support combining -V with any of -d, -i. + (check_ordering_compatibility): Allow newly-supported combinations. + * tests/misc/sort (02q, 02r, 02s): New tests, for new combinations. + (incompat2): Now test -nR, since -fR are now compatible. + +2010-08-05 Paul Eggert <eggert@cs.ucla.edu> + + sort: tune and refactor --debug code, and fix minor underlining bug + Formerly, the 'compare' function and some of its subroutines had a + debugging flag, which caused them to output underlines. This + change refactors the code so that debugging output is + more-separated from the actual sorting. In the process, the + change fixes a minor error in the debugging output. The change + shortens the source code and executable size a tad, and improves + CPU performance by 2.4% on my platform with a simple benchmark (C + locale, line sorting, no debug). + + * src/sort.c (long_double, strtold): Move back to prelude, since + they're now used by multiple functions again. + (unit_order): Move to file scope, since it's now used by two functions. + (find_unit_order, human_numcompare, numcompare, general_numcompare): + Remove endptr parameter. All callers changed. + (human_numcompare): Args are now const pointers. + (getmonth): Endptr is now non-const. + (key_numeric): Move up, since it's needed earlier. + (debug_key): Take a line and a key as argument, instead of having + the caller figure out where the field is. + (debug_line): New function. + (keycompare, compare): Omit debug parameter; debug output now done + elsewhere. All callers changed. + (write_line): Renamed from write_bytes; all callers changed. + Use debug_line (not 'compare') to output debug info. + Use a slightly faster check for whether output file is stdout. + (check): Don't do debugging output; it's not that useful here, + and it confuses the code. + (main): Check for incompatibility between -c and --debug. + Use standard diagnostic for incompatible options. + * tests/misc/sort-debug-keys: Fix test case: "--Mi-1" is not + a number, so its first character should not be underlined when + debugging a numeric sort. + +2010-08-05 Paul Eggert <eggert@cs.ucla.edu> + + sort: -R now uses less memory on long lines with internal NULs + * lib/Makefile.am (libcoreutils_a_SOURCES): Remove xmemxfrm.c, + xmemxfrm.h. + * lib/memxfrm.c, lib/memxfrm.h, lib/xmemxfrm.c, lib/xmemxfrm.h: Remove. + * m4/memxfrm.m4: Likewise. + * m4/prereq.m4 (gl_PREREQ): Remove gl_MEMXFRM. + * po/POTFILES.in: Remove lib/xmemxfrm.c. + * src/sort.c: Don't include xmemxfrm.h. + (cmp_hashes): Remove. + (xstrxfrm): New function. + (compare_random): If a line contains NULs, don't create a big + buffer that contains the strxfrm output of each string in the line. + Instead, accumulate checksums and differences as we go, so that + at any one time we have to store at most the output of a single + strxfrm call when processing the line. This removes the need for + an memxfrm function. + +2010-08-03 Paul Eggert <eggert@cs.ucla.edu> + + init.sh: work around trap limitation of some shells + * tests/init.sh (setup_): Move exit trap outside of shell function. + This patch is imported from gnulib. + + sort: fix bug in --debug when \0 is followed by \t + * src/sort.c (debug_width): New function, which does not stop + counting tabs at \0, and also invokes mbsnwidth. Stamp out strnlen! + (count_tabs): Remove. + (debug_key): Use debug_width instead of mbsnwidth and count_tabs. + * tests/misc/sort-debug-keys: Check that \0 and \t intermix. + + sort: revert recent -h changes and use a more-conservative approach + * NEWS: Document changes to sort -h, which are now minor with + respect to the pre-July-30th version. + * doc/coreutils.texi (sort invocation): Likewise. The + documentation now describes how -h comparison is done rather than + being vague with border cases. + * src/sort.c (long_double, strtold): Move back to general_numcompare. + (LD, compute_human): Remove. + (find_unit_order): Remove THOU_SEP parameter, since thousands + separators are now allowed by all callers. Revert to previous + behavior of sorting by suffix, and returning the order rather than + 2 * order + binary, since we no longer care whether binary powers + are being used. However, treat all zeros the same, instead of + sorting 0M before 0G; this is more consistent with the desired + behavior of sorting -1G before -1M. + * tests/misc/sort (h1, h3, h6): Adjust to match mostly-reverted + behavior. However, check that all zeros sort together. + * tests/misc/sort-debug-keys: Omit a "_", since the trailing "i" + in "1234Gi" is no longer part of the key. + +2010-07-30 Paul Eggert <eggert@cs.ucla.edu> + + sort: -h now handles comparisons such as 6000K vs 5M and 5MiB vs 5MB + * NEWS: Document changes to sort -h. + * doc/coreutils.texi (sort invocation): Likewise. + * src/sort.c (long_double, strtold): Move to prelude, since they're + now used by multiple functions. + (LD): New macro. + (struct keyfield.iec_present): Remove this member. All uses removed. + (check_mixed_SI_IEC): Remove. This code was busted in the presence + of multiple threads, as it had a race condition. + (find_unit_order): Remove arg KEY; add arg THOU_SEP; arg ENDPTR is + now char ** rather than char const **. Return an integer that + distinguishes decimal from binary powers. Parse the number + consistently with the intersection of strtold and strnumcmp. + Set *ENDPTR unconditionally. + (compute_human): New static function. + (human_numcompare): Remove arg KEY. Remove 'const' from other args. + Use strnumcmp if possible, but fall back on floating point if not. + (numcompare, general_numcompare): Arg EA is now char ** rather + than char const **. + (numcompare): Adjust to new find_unit_order signature and behavior. + (keycompare): Adjus to new human_numcompare signature. + * tests/misc/sort (h1, h3, h4, h6): Adjust to new behavior. + * tests/misc/sort-debug-keys: Likewise. + +2010-07-27 Paul Eggert <eggert@cs.ucla.edu> + + sort: fix --debug display with very large offsets + * src/sort.c (mark_key): Don't assume offset <= INT_MAX. + Make the code a bit clearer when width != 0. + + sort: fix bug with EOF at buffer refill + * src/sort.c (fillbuf): Don't append eol unless the line is nonempty. + This fixes a bug that was partly but not completely fixed by + the aadc67dfdb47f28bb8d1fa5e0fe0f52e2a8c51bf commit (dated July 15). + * tests/misc/sort (realloc-buf-2): New test, which catches this + bug on 64-bit hosts. + + sort: omit some "inline"s + * src/sort.c (mergelines, queue_destroy, queue_init, queue_insert): + (queue_pop, write_unique, mergelines_node, check_insert): + (update_parent): No longer inline; these uses of "inline" + seemed unlikely to help performance much. + +2010-07-26 Paul Eggert <eggert@cs.ucla.edu> + + sort: don't assume ASCII when parsing K, M, G suffixes + * src/sort.c (find_unit_order): Don't assume ASCII. + +2010-07-26 Paul R. Eggert <eggert@cs.ucla.edu> + + sort: make struct heap private + * gl/lib/heap.c (struct heap): Move this here... + * gl/lib/heap.h (struct heap): ... from here, as outside code no + longer needs to access any of these members. + + sort: omit unnecessary mutex unlock+lock; simplify heap access + * src/sort.c (queue_pop): Omit unnecessary unlock+lock after + pthread_cond_wait returns. Don't access "count" member of the + heap; any efficiency gains should be quite minor, the access + complicates this code, and "count" should be private anyway. + + sort: omit 'restrict' in doubtful cases + * src/sort.c (lock_node, unlock_node, queue_destroy, queue_init): + (queue_pop): + Omit 'restrict'; it shouldn't help here, as these functions have just + one pointer parameter and don't access static storage. + (queue_insert, check_insert, update_parent): Omit 'restrict', as + the pointer types differ, and are not char * or unsigned char *, + and therefore can't alias. + (write_unique): Omit 'restrict', as the pointer types are all + read-only. + (merge_loop, sortlines): Omit 'restrict', as any performance + advantages are extremely unlikely and it's not worth cluttering + the code for that. + (struct thread_args): Omit 'restrict': this seems to be incorrect. + It's unlikely for 'restrict' to be correct inside a typedef. + + sort: omit unnecessary casts + * src/sort.c (inittables, general_numcompare, compare_nodes): + (queue_init, queue_pop): Omit casts that are not needed, typically + because they are between void * and some other pointer type. + + sort: use more-consistent style with const + * src/sort.c (proctab_hasher, proctab_comparator, stream_open, xfopen): + (open_temp, zaptemp, struct_month_cmp, begfield, limfield): + (find_unit_order, human_numcompare, numcompare, general_numcompare): + (count_tabs, keycompare, compare, compare_nodes, lock_node): + (unlock_node, queue_destroy, queue_init, queue_insert, queue_pop): + (write_unique, mergelines_node, check_insert, update_parent): + (merge_loop, sortlines, struct thread_args, set_ordering): + Prefer the style "T const" to "const T". + * gl/lib/heap.h (struct heap, heap_alloc): Likewise. + * gl/lib/heap.c (heap_default_compare, heapify_down, heapify_up): + (heap_alloc): Likewise. + +2010-07-25 Paul Eggert <eggert@cs.ucla.edu> + + du: add NEWS entry for recent du -L fixes + +2010-07-24 Paul R. Eggert <eggert@cs.ucla.edu> + + du: tune, and fix some -L bugs with dangling or cyclic symlinks + * src/du.c (process_file): Avoid recalculation of hashes + and of file-exclusion for directories. Do not descend into + the same directory more than once, unless -l is given; this is faster. + Calculate stat buffer lazily, since it + need not be computed at all for excluded files. + Count space if FTS_ERR, since stat buffer is always valid then. + No need for 'print' local variable. + (main): Use FTS_NOSTAT. Use FTS_TIGHT_CYCLE_CHECK only when not + hashing everything, since process_file finds cycles on its own + when hashing everything. + * tests/du/deref: Add test cases for -L bugs. + + tests/misc/sort-merge-fdlimit: don't assume -R opens /dev/urandom + * tests/misc/sort-merge-fdlimit: This test was written assuming that + -R typically opens /dev/urandom, but that's no longer the case. + Redo test to specify a random source; this resurrects the point of + checking for file descriptor exhaustion. Also try plain -R, since + that implementation may change in the future too. + +2010-07-23 Paul R. Eggert <eggert@cs.ucla.edu> + + randread: run 2x faster on 64-bit hosts, don't assume no padding bits + * gl/lib/rand-isaac.c: Remove the I/O; this belongs elsewhere. + Add support for ISAAC64. Port to hosts with padding bits. + Add self to author list. Include <limits.h>, for CHAR_BIT. + Don't include string.h, sys/time.h, unistd.h. + (min, just): New functions. + (IF32): New macros. + (ind, ISAAC_STEP, isaac_refill, mix, isaac_init, isaac_seed): + Add support for ISAAC64. Port to hosts with padding bits. + (ind): Now an inline function rather than a macro; no need for it + to be a macro with modern compilers. + (ISAAC_STEP): Renamed from isaac_step, since it's not function-like. + Don't bother to pass args that are always the same. All uses changed. + (ISAAC_STEP, ISAAC_SEED): Move to inside the only function body + that can use it. + (ISAAC_MIX): Renamed from isaac_mix, since it's now a macro and is + no longer function-like. Don't bother saving and restoring state; + no longer needed now that we're not a function. All uses changed. + (isaac_seed_start, isaac_seed_data, isaac_seed_finish): Remove. + (isaac_seed): Take just the one arg; the caller now sets s->m. + * gl/lib/rand-isaac.h: Use _GL_RAND_ISAAC_H to protect, instead + of RAND_ISAAC_H. Try out " #" rather than "# " for indenting. + (ISAAC_BITS_LOG, ISAAC_BITS): New macros. + (ISAAC_WORDS_LOG): Renamed from ISAAC_LOG. + (isaac_word): New type. All uses of uint32_t changed to isaac_word, + to support ISAAC64. + (struct isaac_state): Rename member MM to M, and make it public. + (isaac_seed, isaac_refill): Adjust to new API. + * gl/lib/randread.c: Include sys/time.h. + (get_nonce): New function, containing the nonce stuff that used + to be in rand-isaac.c but better belongs here. + (randread_new): Use it. + * gl/modules/randread (Depends-on): Add inline. + * gl/modules/randread-tests: New file. + * gl/tests/test-rand-isaac.c: New file. + +2010-07-22 Pádraig Brady <P@draigBrady.com> + + provide POSIX_FADV_SEQUENTIAL hint to appropriate utils + Following on from commit dae35bac, 01-03-2010, + "sort: inform the system about our input access pattern" + apply the same hint to all appropriate utils. + This currently gives around a 5% speedup for reading + large files from fast flash devices on GNU/Linux. + + * src/base64.c: Call fadvise (..., FADVISE_SEQUENTIAL); + * src/cat.c: Likewise. + * src/cksum.c: Likewise. + * src/comm.c: Likewise. + * src/cut.c: Likewise. + * src/expand.c: Likewise. + * src/fmt.c: Likewise. + * src/fold.c: Likewise. + * src/join.c: Likewise. + * src/md5sum.c: Likewise. + * src/nl.c: Likewise. + * src/paste.c: Likewise. + * src/pr.c: Likewise. + * src/ptx.c: Likewise. + * src/shuf.c: Likewise. + * src/sum.c: Likewise. + * src/tee.c: Likewise. + * src/tr.c: Likewise. + * src/tsort.c: Likewise. + * src/unexpand.c: Likewise. + * src/uniq.c: Likewise. + * src/wc.c: Likewise, unless we don't actually read(). + +2010-07-22 Pádraig Brady <P@draigBrady.com> + + fadvise: new module providing a simpler interface to posix_fadvise + * bootstrap.conf: Include the new module + * gl/lib/fadvise.c: Provide a simpler interface to posix_fadvise. + (fadvise): Provide hint to the whole file associated with a stream. + (fdadvise): Provide hint to the specific portion of a file + associated with a file descriptor. + * gl/lib/fadvise.h: Redefine POSIX_FADV_* to FADVISE_* enums. + * gl/modules/fadvise: New file. + * m4/jm-macros.m4: Remove the no longer needed posix_fadvise check. + * .x-sc_program_name: Exclude test-fadvise.c from this check. + * gl/tests/test-fadvise (main): New test program. + * gl/modules/fadvise-testss: A new index to reference the tests. + * src/sort.c (stream_open): Use the new interface. + * src/dd.c (iwrite): Likewise. + +2010-07-22 Mike Frysinger <vapier@gentoo.org> + + build: support fully excluding stdbuf from the build + * configure.ac (optional_pkglib_progs): Only update + after the main programs have been selected, so that + libstdbuf.so can be excluded if stdbuf also is. + +2010-07-20 Paul R. Eggert <eggert@cs.ucla.edu> + + randread: use /dev/urandom to seed, not just getpid etc + * gl/lib/rand-isaac.c (isaac_seed_start): New arg SEEDED. + (isaac_seed): New args FD and BYTES_BOUND. Read from FD if possible. + Don't bother with low-quality sources if FD has enough bytes. + * gl/lib/rand-isaac.h: New size_t arg for isaac_seed. + * gl/lib/randread.c: Include fcntl.h, unistd.h. + (NAME_OF_NONCE_DEVICE): New #define. + (nonce_device): New static var. + (randread_new): Use nonce device if available. + +2010-07-19 Paul R. Eggert <eggert@cs.ucla.edu> + + sort: -R no longer disables multithreading + * src/sort.c (random_md5_state): New static var. + (random_md5_state_init): New function, to initialize random_md5_state. + (random_state, randread_source): Remove. + (cmp_hashes): Use random_md5_state rather than random_state. + Break ties using memcmp, not by getting more randomness. + If MD5 collisions turn into a problem in practice, we should + simply use a better checksum. + (main): If -R is given, call random_md5_state_init rather than + going single-threaded. + +2010-07-16 Paul R. Eggert <eggert@cs.ucla.edu> + + randread: don't require -lrt + Programs like 'sort' were linking to -lrt in order to get + clock_gettime, but this was misguided: it wasted considerable + resources while gaining at most 10 bits of entropy. Almost nobody + needs the entropy, and there are better ways to get much better + entropy for people who do need it. + * gl/lib/rand-isaac.c (isaac_seed): Include <sys/time.h> not + "gethrxtime.h". + (isaac_seed): Use gettimeofday rather than gethrxtime. + * gl/modules/randread (Depends-on): Depend on gettimeofday + and not gethrxtime. + * src/Makefile.am (mktemp_LDADD, shred_LDADD, shuf_LDADD, sort_LDADD): + (tac_LDADD): Omit $(LIB_GETHRXTIME); no longer needed. + + sort: add a test case for the sort -u bug + * tests/Makefile.am (TESTS): Add misc/sort-unique. + * tests/misc/sort-unique: New file. + + sort: fix a bug with sort -u and xmemcoll0, and tune keycompare + * src/sort.c (keycompare): Use xmemcoll0, as it avoids + a couple of stores. + (write_bytes): Leave the buffer the way we found it, + as it might be used again for a later comparison, + if -u is used. + +2010-07-15 Pádraig Brady <P@draigBrady.com> + + sort: fix a bug when sorting unterminated lines + * src/sort.c (fillbuf): The previous commit incorrectly + terminated the buffer when the last line of input + didn't contain a terminating character. + +2010-07-15 Chen Guo <chenguo4@yahoo.com> + + sort: speed up default full line sorting + Don't write NUL after the comparison buffers on each compare, + which increases performance by about 3% for short lines + on a pentium-m with gcc-4.4.1 + + * src/sort.c: (fillbuf): Delimit input items with NUL. + (write_bytes): Restore the item delimiter char which was + replaced with NUL in fillbuf(). + +2010-07-14 Jim Meyering <meyering@redhat.com> + + heap_alloc: avoid integer overflow + * gl/lib/heap.c (heap_alloc): Use xnmalloc rather than xmalloc, + to avoid pathological overflow. + +2010-07-14 Paul R. Eggert <eggert@cs.ucla.edu> + + maint: omit $(POW_LIB) when linking, as this is no longer needed + * src/Makefile.am (printf_LDADD, seq_LDADD, sleep_LDADD, sort_LDADD): + (tail_LDADD, uptime_LDADD): Omit $(POW_LIB), as it's no longer + needed due to recent gnulib changes, where the strtod module no + longer uses the pow function. strtold needs pow only because it's + sometimes aliased to strtod. See + http://lists.gnu.org/archive/html/bug-gnulib/2010-07/msg00076.html + +2010-07-14 Pádraig Brady <P@draigBrady.com> + + build: update gnulib submodule to latest; update bootstrap, too + * gnulib: Update for xmemcoll0 and fix for systems without pthreads + * bootstrap: Update for translation project sync fix + +2010-07-13 Pádraig Brady <P@draigBrady.com> + + maint: reorganize latest NEWS + * NEWS: Add another blank line before the previous version. + (Bug fixes): Move to the start. + (Changes in behavior): Add the item about the du mem usage change + from the "New features" section. + + maint: heap.c: simplify dynamic allocations + * gl/lib/heap.c (heap_alloc): Use the fact that the xalloc + routines will not return NULL. Also remove the redundant + temporary variables. + (heap_insert): From Jim Meyering, use x2nrealloc() which + is simpler while handling overflow and increasing the + size more efficiently. This reallocation is currently + unused by coreutils in any case as it preallocates enough. + +2010-07-13 Chen Guo <chenguo4@yahoo.com> + + sort: parallelize internal sort + This patch is by Gene Auyeung, Chris Dickens, Chen Guo, and Mike + Nichols, based off of a patch by Paul Eggert, Glen Lenker, et. al., + with a basic heap implementation based off of the GDSL heap, + originally by Nicolas Darnis. + + The number of sorts done in parallel is limited to the number + of available processors by default, or can be further restricted + with the --parallel option. + + On a dual-die, 8 core Intel Xeon, results show sorting with + 8 threads is almost 4 times faster than using a single thread. + Timings when sorting a 96MB file: + THREADS TIME (s) + 1 5.10 + 2 2.87 + 4 1.75 + 8 1.31 + + Single threaded sorting has also been improved, + especially for cheaper comparison operations: + COMMAND BEFORE (s) AFTER (s) + sort 8.822 8.716 + sort -g 10.336 10.222 + sort -n 3.077 2.961 + LANG=C sort 2.169 2.066 + + * bootstrap.conf: Add heap, pthread. + * coreutils.texi (sort): Describe the new --parallel option. + * gl/lib/heap.c: New file. Very basic heap implementation. + * gl/lib/heap.h: New file. + * gl/modules/heap: New file. + * src/Makefile.am: Add LIB_PTHREAD. + * src/sort.c: Include heap.h, nproc.h, pthread.h. + (MAX_MERGE): New macro. + (SUBTHREAD_LINES_HEURISTIC, PARALLEL_OPTION): New constants. + (MERGE_END, MERGE_ROOT): New constants. + (struct merge_node): New struct. + (struct merge_node_queue): New struct. + (sortlines temp): Remove declaration. + (usage, long_options, main): New option, --parallel. + (specify_nthreads): New function. + (mergelines): New signature, to emphasize the fact that the HI area + must be part of the destination. All callers changed. + (sequential_sort): New function, renamed from sortlines. Merge in + the functionality of sortlines_temp. + (compare_nodes): New function. + (lock_node, unlock_node): New functions. + (queue_destroy): New function. + (queue_init): New function. + (queue_insert): New function. + (queue_pop): New function. + (write_unique): New function. + (mergelines_node): New function. + (check_insert): New function. + (update_parent): New function. + (merge_loop): New function. + (sortlines): Rewrite to support and use parallelism, with a new + signature. All callers changed. + (struct thread_args): New struct. + (sortlines_thread): New function. + (sortlines_temp): Remove. + (sort): New argument NTHREADS. All uses changed. Output moved to + mergelines_node. + (main): disable threading if we are sorting at random. + * tests/Makefile.am (TESTS): Add misc/sort-benchmark-random. + * tests/misc/sort-benchmark-random: New file. + +2010-07-13 Jim Meyering <meyering@redhat.com> + + di-set, ino-map: adjust a type, improve readability + * gl/lib/ino-map.c (ino_hash): Declare "i" as unsigned int. + Use an intermediate variable for the for-loop upper bound, + so it's a little more readable. Adjust comment. + * gl/lib/di-set.c (di_ent_hash): Likewise. + +2010-07-13 Paul R. Eggert <eggert@cs.ucla.edu> + + dd: also spell out size on memory exhaustion + * src/dd.c (dd_copy): Use requested blocksize (not adjusted) in + diagnostic, to forestall user complaints that the numbers don't + match exactly. Report both exact and human-readable sizes, using + a message format that is consistent with both "BBBB bytes (N XB) + copied" in dd.c and "memory exhausted" in lib/xmalloc.c. + +2010-07-09 Paul Eggert <eggert@cs.ucla.edu> + + chcon, chmod, chown, du: don't translate "%s" + * src/chcon.c (process_file): Replace _("%s") with "%s". + * src/chmod.c (process_file): Likewise. + * src/chown-core.c (change_file_owner): Likewise. + * src/du.c (process_file): Likewise. + +2010-07-07 Paul Eggert <eggert@cs.ucla.edu> + + du: avoid spurious warnings with 64-bit gcc -W + Problem reported by Jim Meyering in: + http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6524#74 + * gl/lib/di-set.c (di_ent_hash): Rework so that the compiler does + not incorrectly warn about shifting by 64-bits in unreachable code. + * gl/lib/ino-map.c (ino_hash): Likewise. + +2010-07-06 Paul Eggert <eggert@cs.ucla.edu> + + du: Hash with a mechanism that's simpler and takes less memory. + * gl/lib/dev-map.c, gl/lib/dev-map.h, gl/modules/dev-map: Remove. + * gl/lib/ino-map.c, gl/lib/ino-map.h, gl/modules/ino-map: New files. + * gl/modules/dev-map-tests, gl/tests/test-dev-map.c: Remove. + * gl/modules/ino-map-tests, gl/tests/test-ino-map.c: New files. + * gl/lib/di-set.h (struct di_set): Renamed from struct di_set_state, + and now private. All uses changed. + (_ATTRIBUTE_NONNULL_): Don't assume C99. + (di_set_alloc): Renamed from di_set_init, with no size arg. + Now allocates the object rather than initializing it. + For now, this no longer takes an initial size; we can put this + back later if it is needed. + * gl/lib/di-set.c: Include hash.h, ino-map.h, and limits.h instead of + stdio.h, assert.h, stdint.h, sys/types.h (di-set.h includes that + now), sys/stat.h, and verify.h. + (N_DEV_BITS_4, N_INO_BITS_4, N_DEV_BITS_8, N_INO_BITS_8): Remove. + (struct dev_ino_4, struct dev_ino_8, struct dev_ino_full): Remove. + (enum di_mode): Remove. + (hashint): New typedef. + (HASHINT_MAX, LARGE_INO_MIN): New macros. + (struct di_ent): Now maps a dev_t to a inode set, instead of + containing a union. + (struct dev_map_ent): Remove. + (struct di_set): New type. + (is_encoded_ptr, decode_ptr, di_ent_create): Remove. + (di_ent_hash, di_ent_compare, di_ent_free, di_set_alloc, di_set_free): + (di_set_insert): Adjust to new representation. + (di_ino_hash, map_device, map_inode_number): New functions. + * gl/modules/di-set (Depends-on): Replace dev-map with ino-map. + Remove 'verify'. + * gl/tests/test-di-set.c: Adjust to the above changes to API. + * src/du.c (INITIAL_DI_SET_SIZE): Remove. + (hash_ins, main): Adjust to new di-set API. + +2010-07-05 Jim Meyering <meyering@redhat.com> + + stat: getfilecon failure now evokes nonzero exit status + Add comments and adjust interfaces to allow low-level failure + to propagate out to callers. + * src/stat.c (out_file_context): Return bool, not void, + so we can tell callers about failure. + (print_statfs, print_stat, print_it): Propagate failure to caller. + (do_statfs): Propagate print_it failure to caller. + (do_stat): Likewise. + I nearly forgot to update do_stat to propagate print_it failure, + and it compiled just fine in spite of that. To prevent possibility + of a repeat, I've marked each function that returns non-void with + ATTRIBUTE_WARN_UNUSED_RESULT. + + system.h: define ATTRIBUTE_WARN_UNUSED_RESULT + * src/system.h (ATTRIBUTE_WARN_UNUSED_RESULT): Define. + +2010-07-05 Pádraig Brady <P@draigBrady.com> + + tests: make tests requiring a delay to pass, more robust + * tests/init.cfg: Introduce a retry_delay_() function to + repeatedly call a test function that requires a delay. + This delay can now be shorter for the common case on fast + systems, but will double until a configurable limit it reached + before failing on slower systems. + * tests/dd/reblock: Use retry_delay_. + * tests/misc/cat-buf: Likewise. + * tests/misc/stdbuf: Likewise. + * tests/tail-2/F-vs-rename: Likewise. + * tests/tail-2/flush-initial: Likewise. + * tests/tail-2/tail-n0f: Likewise. + * tests/tail-2/wait: Likewise. + * test/dd/misc: Comment that delay is needed to trigger failure. + +2010-07-04 Paul Eggert <eggert@cs.ucla.edu> + + doc: Add advice about ChangeLogs and synchronizing submodules + * README-hacking: Update accordingly. + +2010-07-04 Jim Meyering <meyering@redhat.com> + + du: increase the initial dev-inode set size + * src/du.c (INITIAL_DI_SET_SIZE): Increase to the prime just under + 1024. This gives a speed-up of about 2% when processing a tree + containing 100,000 files, each with a link count greater than 1, + all pointing to files in some other tree. + +2010-07-04 Jim Meyering <meyering@redhat.com> + + du: use less than half as much memory when tracking hard links + When processing a hard-linked file, du must keep track of the file's + device and inode numbers in order to avoid counting its storage + more than once. When du would process many hard linked files -- + as are created by some backup tools -- the amount of memory required + for the supporting data structure could become prohibitively large. + This patch takes advantage of the fact that the amount of information + in the numbers of the typical dev,inode pair is far less than even + 32 bits, and hence usually fits in the space of a pointer, be it + 32 or 64 bits wide. A typical du traversal examines files on no + more than a handful of distinct devices, so the device number can + be encoded in just a few bits. Similarly, few inode numbers use + all of the high bits in an ino_t. Before, we would represent the + dev,inode pair using a naive struct, and allocate space for each. + Thus, an entry in the hash table consisted of a pointer (to that + struct) and a "next" pointer. With this change, we encode the + dev,inode information and put those bits in place of the pointer, + and thus do away with the need to allocate additional space for + each dev,inode pair. + + * src/du.c: Include "di-set.h". + Don't include "hash.h"; it's no longer used. + (INITIAL_DI_SET_SIZE): Define. + (di_set): New global, to replace "htab". + (entry_hash, entry_compare, hash_init): Remove functions. + (hash_ins): Use di-set functions, rather than ones from the hash module. + (main): Likewise. + * bootstrap.conf (gnulib_modules): Add the new di-set module. + * NEWS (New features): Mention it. + +2010-07-04 Jim Meyering <meyering@redhat.com> + + di-set: manipulate sets of dev/inode pairs efficiently + * gl/lib/di-set.c: Implementation. + * gl/lib/di-set.h: Declarations. + * gl/modules/di-set: Define module. + * gl/modules/di-set-tests: Define test module. + * gl/tests/test-di-set.c: Likewise. + + dev-map: map device number to small non-negative + * gl/lib/dev-map.c: New file. + * gl/lib/dev-map.h: Declarations. + * gl/modules/dev-map: Define primary modules. + * gl/modules/dev-map-tests: Define test module. + * gl/tests/test-dev-map.c: Test it. + +2010-07-03 Paul Eggert <eggert@CS.UCLA.EDU> + + du: don't miscount duplicate directories or link-count-1 files + * NEWS: Mention this. + * src/du.c (hash_all): New static var. + (process_file): Use it. + (main): Set it. + * tests/du/hard-link: Add a couple of test cases to help make + sure this bug stays squashed. + * tests/du/files0-from: Adjust existing tests to reflect + change in semantics with duplicate arguments. + +2010-07-02 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest; update bootstrap, too + * gnulib: Update to latest, for hash.c improvement. + * bootstrap: Update from gnulib, too. + +2010-07-01 Pádraig Brady <P@draigBrady.com> + + cp: add an option to only copy the file attributes + * src/copy.c (copy_attr): A new function which merges copy_attr_by_fd + and copy_attr_by_name. Also display all errors when --attributes-only + * src/copy.c (copy_reg): Skip copying the file contents if specified. + Refactor the SELinux error handling code a little and display all + SELinux errors when only copying attributes. + * src/copy.h (struct cp_options): Add a data_copy_required boolean + * src/cp.c (main): Default to copying data but don't if specified + * src/install.c: Default to copying data + * src/mv.c: Likewise + tests/cp/reflink-perm: Add a test to check that --attributes-only + does not copy data + * tests/cp/acl: Likewise. Also refactor to remove redundant + acl manipulation + * doc/coreutils.texi (cp invocation): Describe the new option + * NEWS: Mention the new feature + + ls: use the POSIX date style when the locale does not specify one + Previously we defaulted to "long-iso" format in locales without + specific format translations, like the en_* locales for example. + This reverts part of commit 6837183d, 08-11-2005, "ls ... acts like + --time-style='posix-long-iso' if the locale settings are messed up" + * src/ls.c (decode_switches): Only use the ISO format when specified. + * NEWS: Mention the change in behavior. + Reported by Daniel Qarras at http://bugzilla.redhat.com/525134 + +2010-06-30 Jim Meyering <meyering@redhat.com> + + tests: fail rather than infloop in tail's inotify-rotate test + * tests/tail-2/inotify-rotate: Switch to new init.sh-based framework. + (grep_timeout): New function. + Use it in place of open-coded loops that might infloop. + This was prompted by my encountering an inexplicable, and so far + unreproducible, infloop in the code that was waiting for "b" to + appear in "out". + + tests: move most helper functions from test-lib.sh to new init.cfg + From there, they will be used by both test-lib.sh (as we phase it out) + and the newer init.sh, to which all tests will migrate. + * tests/test-lib.sh: Move most functions from here, ... + * tests/init.cfg: ...to here. New file. + * tests/Makefile.am (EXTRA_DIST): Add init.cfg. + + tests: sync tests/init.sh from gnulib + * tests/init.sh: Update from gnulib. + +2010-06-29 Jim Meyering <meyering@redhat.com> + + doc: df, du, ls: improve --blocksize description in --help + * src/du.c (usage): Print better --blocksize description. + Prompted by Samuel Thibault in <http://bugs.debian.org/353100>. + * src/df.c (usage): Likewise. + * src/ls.c (usage): Likewise. + +2010-06-29 Pádraig Brady <P@draigBrady.com> + + doc: reference POS syntax in --help for sort --key + * src/sort.c (usage): Reference the additional description + of the POS syntax. + +2010-06-27 Benno Schulenberg <bensberg@justemail.net> + + ln: print a clearer error message when linking fails + +2010-06-22 Jim Meyering <meyering@redhat.com> + + stat: remove support for deprecated --context (-Z) option + * src/stat.c (main): Remove support for the --context (-Z) option. + In upstream releases this option has always been a no-op. It was + first ignored for compatibility, and since the June 2008 commit, + 574f7614 (coreutils-7.0), its use has evoked a warning. + * NEWS (Changes in behavior): Mention it. + +2010-06-21 Jim Meyering <meyering@redhat.com> + + doc: fix comm's --help output so we generate a better man page + * src/comm.c (usage): Don't align example comments in --help output, + since the extra space (sequence of two spaces) there would be + interpreted by help2man and induce an unwanted line break + in the resulting man page. Reported by Jari Aalto. + +2010-06-14 Eric Blake <eblake@redhat.com> + + maint: ignore another gnulib generated file + * .gnulib: Exclude lib/c++defs.h. + + cat: improve documentation + * src/cat.c (usage): Clarify that -b overrides -n. + * doc/coreutils.texi (cat invocation): Likewise. + * THANKS: Update. + Suggested by Chas. Owens, in bug 6383. + +2010-06-14 Jim Meyering <meyering@redhat.com> + + doc: dd: discourage use of very large block sizes + * doc/coreutils.texi (dd invocation): Warn against using a very large + block size. Suggested by Imre Péntek. + + dd: print a better diagnostic for an invalid block size + * src/dd.c (dd_copy): Give a better diagnostic than + "dd: memory exhausted" for an over-large bs= block size setting. + Same for ibs= and obs=. Reported by Imre Péntek in + http://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/591969 + +2010-06-11 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + build: don't let a large sparse temporary file cause "make dist" to fail + * bootstrap.conf (bootstrap_epilogue): Replace the offending grep + command from po/Makefile.in.in's $(DOMAIN).pot-update rule. + +2010-06-10 Jim Meyering <meyering@redhat.com> + + ls: avoid just-introduced buffer overrun + * src/ls.c (gobble_file): Revert part of my preceding change, + to avoid clobbering stack. + +2010-06-08 Jim Meyering <meyering@redhat.com> + + maint: adjust INT_BUFSIZE_BOUND usage for maintainability + * src/tail.c (xlseek): Give INT_BUFSIZE_BOUND a variable name, + not a type name. + * src/ls.c (gobble_file, format_user_or_group_width): Likewise. + * src/head.c (elide_tail_bytes_pipe): Likewise. + (elide_tail_lines_seekable, main): Likewise. + [This change is not complete -- there are doubtless other uses + that can be updated in the same way.] + + sort: avoid unnecessary use of sprintf + sprintf is relatively heavy-weight. + * src/sort.c (key_warnings): Use umaxtostr and stpcpy rather + than sprintf. + Also, replace each INT_BUFSIZE_BOUND "type_name" argument + with the equivalent variable name. More maintainable that way. + +2010-06-08 Eric Blake <eblake@redhat.com> + + dirname: tweak summary wording + * doc/coreutils.texi (dirname invocation): Reword to be more + precise. + * src/dirname.c (usage): Likewise. + * THANKS: Update. + Reported by Filipus Klutiero, bug 6175. + +2010-06-02 Jim Meyering <meyering@redhat.com> + + doc: mention the new coreutils@ mailing lists + * README-package-renamed-to-coreutils: Mention the new mailing list + and a mirror. + + touch: remove support for --file=REF_FILE option + * src/touch.c (main): Remove support for the deprecated, long-named + --file option, which is an alternate name for --reference (-r). + That option was undocumented with the arrival of --reference, in + the 1995-10-29 commit, 8b92864e1d. Since the 2009-02-09 commit, + ed85df444a, use of --file has elicited a warning. Not only was + this code due for removal, but the long-name-use-detecting code + was buggy in that it would use a stale or uninitialized "long_idx", + as reported by Robin H. Johnson in http://bugs.gentoo.org/322421. + * NEWS (Changes in behavior): Mention it. + +2010-05-31 Jim Meyering <meyering@redhat.com> + + maint: make spacing around "=" consistent, even in IF_LINT + E.g., + - size_t desired_width IF_LINT (= 0); + + size_t desired_width IF_LINT ( = 0); + Use this command: + g grep -l IF_LINT | grep '\.[ch]$' \ + | xargs perl -pi -e 's/(IF_LINT \()= /$1 = /' + + maint: replace each "for (;;)" with "while (true)" + Run this command: + git ls-files | grep '\.[ch]$' \ + | xargs perl -pi -e 's/for \(;;\)/while (true)/g' + ...except for randint.c, which does not include stdbool.h. + In that case, use "while (1)". + * gl/lib/randint.c (randint_genmax): Use "while (1)" for infloops. + * src/cat.c (simple_cat, cat): Use "while (true)" for infloops. + * gl/lib/randread.c (readsource, readisaac): Likewise. + * src/copy.c (copy_reg): Likewise. + * src/csplit.c (record_line_starts, process_regexp): Likewise. + * src/cut.c (set_fields): Likewise. + * src/dd.c (iread, parse_symbols): Likewise. + * src/df.c (find_mount_point, main): Likewise. + * src/du.c (main): Likewise. + * src/expand.c (expand): Likewise. + * src/factor.c (factor_using_division, do_stdin): Likewise. + * src/fmt.c (get_space): Likewise. + * src/ls.c (decode_switches): Likewise. + * src/od.c (main): Likewise. + * src/pr.c (main, read_line): Likewise. + * src/shred.c (dopass, genpattern): Likewise. + * src/sort.c (initbuf, fillbuf, getmonth, keycompare): Likewise. + * src/split.c (bytes_split, lines_split): Likewise. + * src/tac.c (tac_seekable): Likewise. + * src/test.c (and, or): Likewise. + * src/tr.c (squeeze_filter, main): Likewise. + * src/tsort.c (search_item): Likewise. + * src/unexpand.c (unexpand): Likewise. + * src/uniq.c (main): Likewise. + * src/yes.c (main): Likewise. + + maint: correct indentation of case_GETOPT_* macro uses + * src/base64.c (main): Correct indentation of syntactically + questionable case_GETOPT_HELP_CHAR and case_GETOPT_VERSION_CHAR macros. + * src/who.c (main): Likewise. + + stat: use gnulib's alignof module + * src/stat.c (alignof): Remove definition. + Instead, include "alignof.h", and sort the #include directives. + And get its definition from the gnulib module by that name: + * bootstrap.conf (gnulib_modules): Add alignof. + + tests: remove unnecessary single quotes in perl hash use: ->{'SYM'} + Run this command: + git grep -l "limits->{'" \ + | xargs perl -pi -e "s/limits->{'(.*?)'}/limits->{\$1}/g" + * cfg.mk (sc_prohibit_perl_hash_quotes): New rule to match. + * tests/misc/join: Remove quotes. + * tests/misc/sort: Likewise. + * tests/misc/sort-merge: Likewise. + * tests/misc/test: Likewise. + * tests/misc/unexpand: Likewise. + * tests/misc/uniq: Likewise. + +2010-05-29 Pádraig Brady <P@draigBrady.com> + + truncate: improve handling of non regular files + Previously we copied `dd` and suppressed error messages + when truncating neither regular files or shared mem objects. + This was valid for `dd`, as truncation is ancillary to copying + it may also do, but for `truncate` we should display all errors. + Also we used the st_size from non regular files which is undefined, + so we display an error when the user tries this. + + * src/truncate (do_truncate): Error when referencing the size + of non regular files or non shared memory objects. Display all + errors returned by ftruncate(). + (main): Error when referencing the size of non regular files or + non shared memory objects. Don't suppress error messages for + any file types that can't be opened for writing. + * tests/misc/truncate-dir-fail: Check that referencing the + size of a directory is not supported. + * tests/misc/truncate-fifo: Ensure the test doesn't hang + by using the `timeout` command. Don't test the return from + running ftruncate on the fifo as it's system dependent as + to whether this fails or not. + NEWS: Mention the change in behavior. + Reported by Jim Meyering. + +2010-05-28 Pádraig Brady <P@draigBrady.com> + + truncate: support sizes relative to an existing file + * doc/coreutils.texi (truncate invocation): Mention that --reference + bases the --size rather than just setting it. + * src/truncate.c (usage): Likewise. Also remove the clause + describing --size and --reference as being mutually exclusive. + (do_truncate): Add an extra parameter to hold the size + of a referenced file, and use it if positive. + (main): Pass the size of a referenced file to do_truncate(). + * tests/misc/truncate-parameters: Adjust for the new combinations. + * NEWS: Mention the change + Suggested by Richard W.M. Jones + +2010-05-26 Jim Meyering <meyering@redhat.com> + + tests: update help-version to work with parted, too + * tests/misc/help-version: Add init code for GNU Parted. + +2010-05-25 Jim Meyering <meyering@redhat.com> + + maint: don't emit an extra newline in each of two diagnostics + * src/shuf.c (main): Remove a stray newline in a diagnostic. + * src/od.c (main): Likewise. + Detected via these: + git grep -A1 'error *(.*,$' | grep -C1 '\\n"[,)]' + git grep 'error *(.*;$' | grep '\\n"[,)]' + + maint: remove unneeded double quotes on RHS of shell assignments + Run this command: + git grep -l 'LC_[A-Z]*="' \ + | xargs perl -pi -e 's/(LC_[A-Z]*)="(.*?)"/$1=$2/' + * src/Makefile.am: Write LC_ALL=$$locale, not LC_ALL="$$locale". + * src/date.c (main): Similar, in a comment. + * tests/misc/sort-month: Write LC_ALL=$LOC, not LC_ALL="$LOC". + +2010-05-24 Pádraig Brady <P@draigBrady.com> + + maint: remove a redundant sort parameter from a test + * tests/misc/sort-month: Remove the -b option which + is redundant and ignored. + + sort: adjust the leading blanks --debug warning + * src/sort.c (key_warnings): Always warn about significant leading + blanks when character offsets are specified, unless they key is + possibly a line offset, i.e. of the form -k1.x,1.y. Also suppress + this warning if the user could be sorting right aligned indexes. + +2010-05-23 Jim Meyering <meyering@redhat.com> + + maint: make copyright comment consistent with all others + * tests/misc/mktemp: Change punctuation to make copyright + paragraph consistent with all of the others. + +2010-05-21 Jim Meyering <meyering@redhat.com> + + tests: fix cp-a-selinux to skip cleanly upon mkfs failure + * tests/cp/cp-a-selinux: Initialize skip, to avoid a syntax error + in subsequent "test". + Remove redirect-to-/dev/null, now that output is always to a log file. + +2010-05-19 Jon Ringuette <jonr@scharp.org> + + du: recognize -d N as equivalent to --max-depth=N + * NEWS (New features): Mention it. + * src/du.c (DEBUG_OPT): Remove. Use long-named ---debug instead. + Commented out. + (MAX_DEPTH_OPTION): Remove. Use 'd' instead. + (main): Insert literal "d:"; remove DEBUG_OPT. + * doc/coreutils.texi (du invocation): Add -d to indices. + * tests/du/max-depth: Exercise -d, too. + +2010-05-19 Jim Meyering <meyering@redhat.com> + + tests: exercise du's --max-depth option + * tests/Makefile.am (TESTS): Add du/max-depth. + * tests/du/max-depth: New file. + +2010-05-18 Pádraig Brady <P@draigBrady.com> + + tests: fix sort-debug-keys when fr_FR.utf8 not available + * tests/misc/sort-debug-keys: Correctly check for the absence + of the French UTF8 locale. + +2010-05-17 Jim Meyering <meyering@redhat.com> + + maint: fix the fs-magic-compare rule + * src/Makefile.am (fs-def): Sort definitions. + This is required by fs-magic-compare's use of join. + + tests: update init.sh from gnulib + * tests/init.sh: Update from gnulib. + + build: avoid a new -Wformat-induced warning + * src/sort.c (mark_key): Add a cast-to-int of a printf field width, + to placate -Wformat. + +2010-05-16 Pádraig Brady <P@draigBrady.com> + + doc: fix sort info about version sort skipping blanks + * doc/coreutils.text (sort invocation): leading blanks are + significant for 'V'. + + sort: --debug: output data independent warnings and info + * src/sort.c (usage): Mention --debug can output warnings to stderr. + Also split the translatable string to aid translation. + (default_key_compare): A new function refactored from main(), + and now also called from the new key_warnings() function. + (key_to_opts): A new function refactored from incompatible_options(), + and now also called from the new key_warnings() function. + (key_numeric): A new function refactored to test if key is numeric. + (key_warnings): A new function to output warnings to stderr, + about questionable use of various options. Currently it warns + about zero length keys and ineffective global options. + (incompatible_options): Refactor out key_to_opts() + (main): Use key_init() to initialize gkey. Refactor out + default_key_compare(). Call key_warnings() in debug mode. + * doc/coreutils.texi (sort invocation): Mention that warnings + are output by --debug. + * tests/misc/sort-debug-warn: A new test for debug warnings. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the new feature + +2010-05-12 Pádraig Brady <P@draigBrady.com> + + tests: fix sort-debug-keys when fr_FR.utf8 not available + * tests/misc/sort-debug-keys: Don't verify (or even run) + the fr_FR tests when that locale is not available on the system. + + sort: add a --debug option to highlight key extents + * src/sort (usage): Add description for --debug. + (write_bytes): Pass a line structure so it can subsequently + be passed to compare to highlight the keys when in debug mode. + Also transform TAB and NUL characters written to stdout so + that the highlighting in debug mode aligns correctly. + (human_numcompare): Pass an "endptr" so we can record the extent + of the number matched. + (general_numcompare): Likewise. + (find_unit_order): Likewise. + (getmonth): Likewise. + (numcompare): Likewise. Note we reuse find_unit_order() for this, + which is a good enough approximation, and means we don't need to + change the strnumcmp() interface. + (check_mixed_SI_IEC): Return whether iec_present, so that can be + used to set the "endptr" in find_unit_order. Also make the key + parameter optional, which will be the case from numcompare(). + (count_tabs): A new function to determine how much to adjust + the mbswidth() values by (TABs don't have a width). + (mark_key): A new function to output the key highlighting to stdout. + (debug_key): A new function to determine the offset and width + of the key highlighting. + (key_compare): Pass the show_debug parameter so the key highlighting + is only displayed when explicitly called. For each key type, set + the length (lena) and whether leading blanks are auto skipped (skipb) + which are then used by debug_key() to highlight the portion of the + key used in the comparison. + (compare): Pass the show_debug parameter so the key highlighting + is only displayed when explicitly called. Call debug_key() to + highlight the last resort comparison. + (check): Output highlighting for disorder line to stdout. + (main): Process the --debug option and make it mutually exlusive + with the -o option as I don't see it useful there, even potentially + harmful if someone left a --debug in by mistake when updating a file. + Also restricting debug output to stdout, simplifies the logic + for dealing with temporary files. + * doc/coreutils.texi (sort invocation): Describe the --debug option, + and reference it from the --key description. + * tests/misc/sort-debug-keys: A new test for highlighting keys. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the new feature. + +2010-05-11 Jim Meyering <meyering@redhat.com> + + build: record the gettext-0.18 requirement also in configure.ac + * configure.ac: Require gettext-0.18 here, too. + + build: update gnulib submodule to latest + * tests/init.sh: Update from gnulib, to fix typo. + +2010-05-10 Jim Meyering <meyering@redhat.com> + + build: record that when building from git, gettext-0.18 is required + * bootstrap.conf (buildreq): Require gettext-0.18. + + tests: avoid a new syntax-check failure + * .x-sc_prohibit_fail_0: Exempt tests/init.sh. + + tests: provide a definition of gl_trap_ in cfg.mk + * cfg.mk (gl_trap_): Define here, now that it's gone from maint.mk. + * gnulib: Update to latest. + + tests: begin using init.sh + * tests/init.sh: New file. + * tests/Makefile.am (EXTRA_DIST): Add it here. + +2010-05-09 Jim Meyering <meyering@redhat.com> + + tests: update help-version + * tests/misc/help-version: Use init.sh, rather than test-lib.sh. + Add idutils' setup. + + tests: move sc_prohibit_always-defined_macros to gnulib's maint.mk + * cfg.mk (sc_prohibit_always-defined_macros): Remove it from here. + * gnulib: Update to latest, for a maint.mk that includes that rule. + + tests: rename a syntax-check + * cfg.mk (sc_prohibit_always-defined_macros): Rename from + sc_always_defined_macros. + * .x-sc_prohibit_always-defined_macros: New file, renamed from... + * .x-sc_always_defined_macros: ...removed. + * Makefile.am (syntax_check_exceptions): Rename here, too. + + tests: loosen/tighten the always_defined_macros check + * cfg.mk (.re-defmac): Generate better regexps: allow white space + before the '#', and append a word-boundary requirement. + Without the latter, #define NULL_DEV ... would evoke a false-positive. + + tests: improve the always_defined_macros check + * cfg.mk (sc_always_defined_macros): Adjust its helpers not to depend + on the existence of ./lib. Instead, extract symbols directly from + gnulib/lib/*.in.h files. + +2010-05-03 Jim Meyering <meyering@redhat.com> + + doc: factor hard-coded project-specific bits from README-release, ... + using the new --mail-headers option to gnulib's announce-gen, and + the updated maint.mk rules to connect the pieces. + * README-release: Remove hard-coded To:, Cc: etc. parts, now + that they're emitted automatically into the announcement template. + * cfg.mk (announcement_Cc_): Override the default. + * gnulib: Update to latest, to get newer announce-gen and maint.mk. + + doc: update release procedure + * README-release: Rearrange slightly: post the announcement to + Savannah first, so you can include a link to that post in the email. + + maint: factor trap-related code out of two syntax-check rules + * cfg.mk (gl_trap_): Define, using a loop and eval'd trap, + rather than repeated "trap" uses. Also handle "13", SIGPIPE. + (sc_always_defined_macros): Use it. + (sc_system_h_headers): Likewise. + + maint: extend the always_defined_macros syntax-check + * cfg.mk (gl_generated_headers_): Define. + (headers_with_interesting_macro_defs): Remove headers covered + by the above. + (.re-defmac): Extract symbol names from many more files. + (sc_always_defined_macros): Use VC_LIST_EXCEPT, not VC_LIST, so + that we can use the usual exception mechanism. + Test for $(gnulib_dir), not system.h. + * .x-sc_always_defined_macros: New file. Exempt src/seq.c. + * Makefile.am (syntax_check_exceptions): Add it here. + + maint: remove now-redundant definitions provided by signal.h + * src/dd.c (SA_NODEFER, SA_RESETHAND): Remove definitions, + now that gnulib guarantees they are defined in <signal.h>. + * src/ls.c (SA_RESTART): Likewise. + + maint: remove now-redundant definitions provided by sys/wait.h + * src/timeout.c (WIFSIGNALED, WTERMSIG): Remove definitions, + now that gnulib guarantees they are defined in <sys/wait.h>. + * src/operand2sig.c: Likewise. + * src/kill.c: Likewise. + +2010-05-01 Paul Eggert <eggert@cs.ucla.edu> + + sort: use long doubles only when effective + * src/sort.c (general_numcompare): Don't use long double if strtold + is not available, as it may introduce needless overhead. + +2010-04-30 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest; bootstrap, too + +2010-04-29 Pádraig Brady <P@draigBrady.com> + + sort: use long doubles for general numeric mode + * src/sort.c (general_numcompare): Use long doubles unconditionally, + and strtold when available, to convert numbers with greater range and + precision. Performance was seen to be on par with standard doubles. + * doc/coreutils.texi (sort invocation): Amend the -g description to + mention long double rather than double, and strtold rather than strtod. + * src/getlimits.c (main): Output floating point limits for use in tests. + * tests/misc/sort-float: A new test to ensure sort is using long + doubles when possible, and that locale specific floats are handled. + * tests/Makefile.am: Reference the new test. + * tests/test-lib.sh (getlimits_): Normalize indenting. + * NEWS: Mention the new behaviour. + Reported by Nelson Beebe. + +2010-04-29 Jim Meyering <meyering@redhat.com> + + build: remove now-duplicate use of AC_SYS_LARGEFILE + * m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Don't require AC_SYS_LARGEFILE, + now that gnulib does it. + + build: remove now-useless configure-time header checks + * m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Don't test for headers + that gnulib now provides: sys/ioctl.h, sys/time.h, sys/wait.h. + +2010-04-25 Jim Meyering <meyering@redhat.com> + + doc: tweak factor-describing wording + * doc/coreutils.texi (factor invocation): Don't say that "factoring + large prime numbers is hard". A pedant might ding you, since it's + trivial to factor a number that is known to be prime. Instead, say + that "factoring large numbers... is hard". Reported by Andreas Eder. + +2010-04-24 Jim Meyering <meyering@redhat.com> + + maint: remove now-unnecessary #if HAVE_header_H tests. + * .x-sc_prohibit_always_true_header_tests: New file. + * Makefile.am (syntax_check_exceptions): Add it. + * src/cat.c: Remove #if HAVE_SYS_IOCTL_H test. * src/copy.c: Likewise. - * src/cp.c: Likewise. - * src/df.c: Likewise. - * src/dircolors.c: Likewise. - * src/dirname.c: Likewise. - * src/du.c: Likewise. - * src/install.c: Likewise. - * src/ln.c: Likewise. * src/ls.c: Likewise. - * src/mkdir.c: Likewise. - * src/mv.c: Likewise. - * src/remove.c: Likewise. - * src/rm.c: Likewise. - * src/rmdir.c: Likewise. - * src/shred.c: Likewise. - * src/split.c: Likewise. - * src/su.c: Likewise. - * src/system.h: Include "dirname.h", since dot_or_dotdot needs it - now. - (dot_or_dotdot): Succeed even if "." or ".." is followed by a - slash. - * src/rm.c (usage, main): --preserve-root is now the default. - * src/remove.h: Fix comment. - * src/remove.c (cache_fstatat, cache_stat_init): New functions. - (cache_statted, cache_stat_ok): New functions. - (write_protected_non_symlink): Remove struct stat ** buf_p arg, - which is no longer needed with the new functions. All callers - changed. - (prompt, is_dir_lstat, remove_entry, remove_dir): - New struct stat * arg. All callers changed. - (write_protected_non_symlink, prompt, is_dir_lstat, remove_entry): - (remove_cwd_entries, remove_dir, rm_1): - Use and maintain the file status cache. - (prompt, remove_entry): Omit the first "directory" in the diagnostic - "Cannot remove directory `foo': is a directory". This causes "rm" - to pass a test case that it would otherwise fail now that it - "knows" more about its argument. I think the diagnostic is better - without the first "directory" anyway. - (prompt): Remove the no-longer-needed IS_DIR arg; all callers changed. - (rm_1): Reject attempts to remove /, ./, or ../. - * tests/rm/Makefile.am (TESTS): Add r-4. - * tests/rm/r-4: New file. - -2006-09-01 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c: Include <stddef.h> - (alignof): New macro. - (HAVE_STRUCT_STATXFS_F_FSID___VAL, HAVE_STRUCT_STATXFS_F_FSID_VAL): - Remove. - (STRUCT_STATXFS_F_FSID_IS_INTEGER): New macro. - (FSID_VAL): Remove. - (print_statfs): If f_fsid isn't an integer, grab its words one - at a time in little-endian order. This is a bit easier to configure - and should avoid a compilation failure on MacOS reported by Bruno - Haible. - -2006-08-29 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID_VAL, FSID_VAL): New macros, to - work around a Mac OS X porting problem reported by Bruno Haible in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00308.html>. - (print_statfs): Use them. - - * bootstrap.conf (gnulib_modules): Add isapipe. - * src/tail.c: Include isapipe.h. - (IS_PIPE_LIKE_FILE_TYPE): Remove. - (IS_TAILABLE_FILE_TYPE): Just list both FIFOs and sockets as - tailable, since this seems to be portable. - (main): Use isapipe, to fix a bug on MacOS X reported by Bruno Haible in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00304.html>. - - * src/system.h (LOCALEDIR): Remove, since configmake.h now defines - it for us. - -2006-08-28 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (copy_internal): Don't test whether macros like - S_ISLNK are defined, since they're always defined now. - * src/cp.c (main): Likewise. - * src/ln.c (main): Likewise. - * src/ls.c (get_link_name, make_link_name): Likewise. - * src/mknod.c (main): Likewise. - * src/mkfifo.c (usage): Likewise. - * src/who.c (S_IWGRP): Likewise. + * src/stty.c: Likewise. + * src/install.c: Remove #if HAVE_SYS_WAIT_H test. + * src/kill.c: Likewise. + * src/operand2sig.c: Likewise. + * src/timeout.c: Likewise. + * src/pathchk.c: Remove #if HAVE_WCHAR_H test. + * src/stat.c: Remove #if HAVE_NETINET_IN_H test. - Adjust to recent gnulib changes for the gnulib module. - * bootstrap.conf (gnulib_modules): Add fcntl. - * src/system.h (SEEK_SET, SEEK_CUR, SEEK_END): Remove. Other code - is already assuming these macros are defined. - (O_DIRECT, O_DIRECTORY, O_DSYNC, O_NDELAY, O_NOATIME, O_NONBLOCK): - (O_NOCTTY, O_NOFOLLOW, O_NOLINKS, O_RSYNC, O_SYNC, O_BINARY, O_TEXT): - Remove; the fcntl module now handles these. + build: enable gnulib modules for more replacement headers + * bootstrap.conf (gnulib_modules): Add the following: + netinet_in, sys_ioctl, sys_wait, so that we can eliminate + the #if HAVE_<header>_H tests guarding their header inclusions. - Adjust to recent gnulib changes for the inttypes module. - * bootstrap.conf (gnulib_modules): Remove stdint; add inttypes. - (excluded_files): Don't exclude m4/inttypes-h.m4 or m4/inttypes-pri.m4. + tests: clean up also upon SIGQUIT + * tests/test-lib.sh: Also trap on SIGQUIT. + Spotted by Dmitry V. Levin. - * src/system.h: Don't bother to include <stdint.h>, since we can - now assume inttypes.h does the equivalent of including stdint.h. +2010-04-23 Jim Meyering <meyering@redhat.com> -2006-08-27 Jim Meyering <jim@meyering.net> + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. - * src/copy.c (copy_internal): Don't make a backup if the last - component of the source name is "." or "..". - Reported by Andreas Schwab in http://savannah.gnu.org/bugs/?17540. - * NEWS: Mention this. - * tests/cp/src-base-dot: New file. Test for the above fix. - * tests/cp/Makefile.am (TESTS): Add src-base-dot. + version 8.5 + * NEWS: Record release date. - * src/system.h (DOT_OR_DOTDOT): Remove macro. Rewrite as a... - (dot_or_dotdot): ...new static inline function. - * src/remove.c (rm_1): Reflect this renaming. - * src/ls.c (basename_is_dot_or_dotdot): Likewise. +2010-04-23 Dmitry V. Levin <ldv@altlinux.org> - * src/copy.c (copy_internal): Add comments. + tests: fix exit status of signal handlers in shell scripts + The value of `$?' on entrance to signal handlers in shell scripts + cannot be relied upon, so set the exit code explicitly. -2006-08-26 Paul Eggert <eggert@cs.ucla.edu> + * cfg.mk (sc_always_defined_macros, sc_system_h_headers): Set + the exit code in signal handler explicitly to 128 + SIG<SIGNAL>. + * src/Makefile.am (sc_tight_scope): Likewise. + * tests/test-lib.sh: Likewise. - * src/Makefile.am (AM_CPPFLAGS): Remove -I$(srcdir) and -I../lib, - since Automake supplies them for us. It always did -I$(srcdir), - and with the recent change to AC_CONFIG_HEADERS in configure.ac it - is now also doing -I../lib. +2010-04-22 Eric Blake <eblake@redhat.com> - * bootstrap (get_translations): Skip this if WGET_COMMAND is empty. - Fail if the first "echo" fails. Suppress diagnostics from "ls po/*.po" - since there might not be any .po files. - (WGET_COMMAND): Set to empty if wget doesn't - seem to be available. + base64: always treat input in binary mode + Necessary for cygwin. Technically, this patch is not correct, + in that it clobbers O_APPEND, but it is no different than any + other use of xfreopen to force binary mode, so all such uses + should be fixed at once in a later patch. -2006-08-26 Jim Meyering <jim@meyering.net> + * src/base64.c (main): Open input in binary mode. + * THANKS: Update. + Reported by Yutaka Amanai. - This test was failing in some environments. - * tests/ls/color-dtype-dir: Don't rely on eval "`dircolors -b`" - to set LS_COLORS in the environment. - * tests/envvar-check: Instead, ensure that LS_COLORS is not set. - Reported by Bob Proulx. +2010-04-21 Jim Meyering <meyering@redhat.com> - * src/c99-to-c89.diff: Remove hunk for copy.c; no longer needed. - - * Makefile.am (EXTRA_DIST): Remove these files here, too: - .x-sc_no_if_have_config_h, .x-sc_prohibit_assert_without_use, - .x-sc_two_space_separator_in_usage. - - Fix "mv --verbose --backup" so its output includes the - " (backup: foo.~1~)" suffix also when backing up a directory. - * NEWS: Report this bug fix. - * src/copy.c (emit_verbose): New function, factored out of... - (copy_internal): ...here. Use the new function. - * tests/mv/backup-dir: Test for the above fix. - * tests/mv/Makefile.am (TESTS): Add backup-dir. - -2006-08-25 Paul Eggert <eggert@cs.ucla.edu> - - * .x-sc_no_if_have_config_h: Remove; no longer needed. - * .x-sc_prohibit_assert_without_use: Remove; it was empty. - * .x-sc_two_space_separator_in_usage: Likewise. - * Makefile.maint (sc_no_have_config_h): Renamed from - sc_no_if_have_config_h, since it now checks that HAVE_CONFIG_H - is absent everywhere. - * bootstrap.conf (gnulib_modules): Add config-h. - * src/shred.c: Include <config.h> unconditionally, since - we now assume config.h exists. - * src/dircolors.c: Likewise. + build: update gnulib submodule to latest -2006-08-26 Jim Meyering <jim@meyering.net> - - "ls --color" would highlight other-writable and sticky directories - no differently than regular directories on a file system with - dirent.d_type support. - * NEWS: Say the above. - * src/ls.c (gobble_file): With --color, also stat the file when - we know it is a directory. - Derived from an anonymous one-line fix and bug report: - <http://savannah.gnu.org/bugs/?15043>. - * tests/ls/color-dtype-dir: New file. Test for the above fix. - * tests/ls/Makefile.am (TESTS): Add color-dtype-dir. - -2006-08-25 Paul Eggert <eggert@cs.ucla.edu> - - * .cvsignore: Remove stamp-h1. Add coreutils-*, to ignore - tarballs. - * bootstrap.conf: Add configmake, verify. - * src/.cvsignore: Remove localedir.h. - * src/Makefile.am (localedir, DISTCLEANFILES, localedir.h): Remove; - subsumed by configmake. - * src/system.h: Include configmake.h rather than localedir.h - (LOCALEDIR): New macro. - - Rewrite to avoid some unnecessary casts, macros, literals. - * src/shred.c (DEFAULT_PASSES, VERBOSE_UPDATE): Now constants, - not macros. - (SECTOR_SIZE, SECTOR_MASK): New constants. - (fillpattern, dopass, do_wipefd, main): Remove unnecessary casts, - and use the SECTOR_* constants when applicable. Check for size < - 0 rather than size == -1, since negative-size files are a sign of - trouble anyway. - -2006-08-25 Bruno Haible <bruno@clisp.org> - - * src/shred.c (dopass): Assume a continuable error if EIO even - if the current position is not a multiple of 512. - -2006-08-24 Jim Meyering <jim@meyering.net> - - * src/stat.c (print_statfs): Fix typo: remove extra "sizeof". - -2006-08-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID___VAL): Define. This - macro was being used without being defined. - (SB_F_NAMEMAX): Remove cast. - (f_fsid) [BeOS]: Likewise. - (OUT_NAMEMAX): Renamed from NAMEMAX_FORMAT, with a new meaning. - All uses changed. - (out_string, out_int, out_uint, out_uint_o, out_uint_x): New - functions. - (xstrcat): Remove. All uses changed to use the above functions. - (print_statfs, print_stat): 2nd arg is now the prefix len, not the - buffer len. All uses changed. Output '?', not '*', for unknown - data or errors. Do not assume signed values can be interchanged - with unsigned when printing. - (print_statfs): For %i, print the fsid as a single int, not as a - pair. - (print_it): Quote invalid format better. - - * NEWS: printf supports the I flag. - * src/printf.c (print_formatted) [glibc 2.2 or later]: Likewise. - -2006-08-23 Bruno Haible <bruno@clisp.org> - - * src/stat.c (STRUCT_STATVFS, statfs, f_fsid, f_blocks, f_bfree) [BeOS]: - (f_bavail, f_bsize, STATFS_FRSIZE, f_files, f_ffree) [BeOS]: - (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME) [BeOS]: Define. - - * src/ls.c (SA_RESTART): Fallback define. - -2006-08-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (EDQUOT): Define if not already defined. - Problem reported by Bruno Haible for BeOS. - - * .cvsignore: Remove config.h, config.hin, as they are now - in lib. - * configure.ac (AC_CONFIG_HEADERS): Move config.h and config.hin - to lib. - * src/Makefile.am (AM_CPPFLAGS): Remove '-I..'; no longer needed. - - * bootstrap (slurp): Define gl_LOCK_EARLY instead of gl_LOCK, - to accommodate today's gnulib change. - -2006-08-23 Jim Meyering <jim@meyering.net> - - * NEWS: Mention the sweeping infrastructure changes. - -2006-08-22 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap.conf (gnulib_modules): Add gnupload. - * Makefile.maint (emit_upload_commands): gnupload is now - in build-aux. - * gnupload: Remove from CVS, since it's now a gnulib module. - - * bootstrap (bootstrap_conf_cleanup): Remove. - (excluded_files): New var. - * bootstrap.conf: Likewise. - * bootstrap (slurp): Exclude files early if they're in the - excluded_files list. That way, their names don't get put into - .cvsignore. - - * aclocal.m4, config.hin, configure: - Remove from CVS, since ./bootstrap generates them automatically. - * .cvsignore: Add INSTALL, Makefile.in, aclocal.m4, config.hin, - configure, *.cache, *.lineno, *.log. - Remove more-specific entries. This catches files like configure.lineno. - * man/.cvsignore: Add Makefile.in. - * src/.cvsignore: Add Makefile.in. - Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c. - - * tests/.cvsignore: - * tests/chgrp/.cvsignore: - * tests/chmod/.cvsignore: - * tests/chown/.cvsignore: - * tests/cp/.cvsignore: - * tests/cut/.cvsignore: - * tests/dd/.cvsignore: - * tests/dircolors/.cvsignore: - * tests/du/.cvsignore: - * tests/expr/.cvsignore: - * tests/factor/.cvsignore: - * tests/fmt/.cvsignore: - * tests/head/.cvsignore: - * tests/install/.cvsignore: - * tests/join/.cvsignore: - * tests/ln/.cvsignore: - * tests/ls/.cvsignore: - * tests/ls-2/.cvsignore: - * tests/md5sum/.cvsignore: - * tests/misc/.cvsignore: - * tests/mkdir/.cvsignore: - * tests/mv/.cvsignore: - * tests/od/.cvsignore: - * tests/pr/.cvsignore: - * tests/readlink/.cvsignore: - * tests/rm/.cvsignore: - * tests/rmdir/.cvsignore: - * tests/seq/.cvsignore: - * tests/sha1sum/.cvsignore: - * tests/shred/.cvsignore: - * tests/sort/.cvsignore: - * tests/stty/.cvsignore: - * tests/sum/.cvsignore: - * tests/tac/.cvsignore: - * tests/tail/.cvsignore: - * tests/tail-2/.cvsignore: - * tests/tee/.cvsignore: - * tests/test/.cvsignore: - * tests/touch/.cvsignore: - * tests/tr/.cvsignore: - * tests/tsort/.cvsignore: - * tests/unexpand/.cvsignore: - * tests/uniq/.cvsignore: - * tests/wc/.cvsignore: - Add Makefile.in. Sort entries if necessary. Remove *.I, *.E, - *.X, *.O, *-tests, build-script, mk-script if they're never - created in this directory. - -2006-08-22 Bruno Haible <bruno@clisp.org> - - BeOS portability. - * src/uptime.c: Include OS.h if it exists. - (print_uptime): On BeOS, use the get_system_info function (actually a - macro). Loop through utmp entries only if utmp.h or utmpx.h exists. - (uptime): Call read_utmp only if utmp.h or utmpx.h exists. - -2006-08-22 Jim Meyering <jim@meyering.net> - - * .cvsignore: Add ABOUT-NLS. - - Move the check-AUTHORS rule to be run as part of "make distcheck", - rather than "make check". - * src/Makefile.am (check): Don't depend on check-AUTHORS; it would - cause "make check" to fail on systems unable to build all binaries. - * Makefile.maint (check-AUTHORS): New rule. - (local-checks-available): Add it here. - Reported by Bruno Haible. Needed for BeOS. - -2006-08-21 Paul Eggert <eggert@cs.ucla.edu> - - * src/df.c (print_header, show_dev): Use a column width that - depends on the block size of -P is specified and not autoscaling. - Problem reported by Gustavo G. Rondina in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00164.html - -2006-08-21 Jim Meyering <jim@meyering.net> - - * tests/dircolors/simple (a): Don't fail with an unexpected diagnostic - when the shell variable, SHELL, is not set. - Trigger the failure with "(unset SHELL; make check TESTS=simple)". - Reported by Sven Joachim in <http://bugs.debian.org/355368>. - - * src/od.c: Now that HAVE_UNSIGNED_LONG_LONG is no longer defined - in config.h, change the uses to HAVE_UNSIGNED_LONG_LONG_INT. - Otherwise, on a system with 4-byte longs, "od -t u8" fails with this: - od: invalid type string `u8'; - this system doesn't provide a 8-byte integral type - FIXME: add a test for this, but skip it when sizeof uintmax < 8. - -2006-08-20 Paul Eggert <eggert@cs.ucla.edu> - - Add a bootstrap procedure, so that the CVS version contains fewer - files and we bootstrap the rest from gnulib, gettext, etc. - * README-cvs: New file. - * bootstrap: New file. - * bootstrap.conf: New file. - * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. - * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit - of gnulib-tool. - (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): - (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. - (gl_EARLY): Add. - (gl_MACROS): Call just after gl_EARLY, just for clarity. - * src/c99-to-c89.diff: Remove patch to ls.c; no longer needed. - * src/kill.c (strtoimax): Remove decl. - * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. - * src/wc.c: Likewise. - * src/ls.c (sort_files): Rewrite to avoid need for C99-style - declaration, so that we don't need to patch this file. - * src/printf.c (strtoimax, strtoumax): Remove decls. - * src/su.c: Include getpass.h. - (getpass): remove. - * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. - Include inttypes.h unconditionally. - (LONGEST_MODIFIER, PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Remove. - (stpcpy, strndup, strstr, strtoul, mempcpy, CHAR_MIN, CHAR_MAX): - (SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, SHRT_MIN, SHRT_MAX, INT_MAX): - (INT_MIN, INTMAX_MAX, INTMAX_MIN, UINT_MAX, LONG_MAX, ULONG_MAX): - (SIZE_MAX, SSIZE_MAX, UINTMAX_MAX): Remove. - - * ABOUT-NLS, INSTALL, Makefile.in, man/Makefile.in: - * src/Makefile.in, tests/Makefile.in, tests/chgrp/Makefile.in: - * tests/chmod/Makefile.in, tests/chown/Makefile.in: - * tests/cp/Makefile.in, tests/cut/Makefile.in: - * tests/dd/Makefile.in, tests/dircolors/Makefile.in: - * tests/du/Makefile.in, tests/expr/Makefile.in: - * tests/factor/Makefile.in, tests/fmt/Makefile.in: - * tests/general/Makefile.in, tests/head/Makefile.in: - * tests/install/Makefile.in, tests/join/Makefile.in: - * tests/ln/Makefile.in, tests/ls/Makefile.in: - * tests/ls-2/Makefile.in, tests/md5sum/Makefile.in: - * tests/misc/Makefile.in, tests/mkdir/Makefile.in: - * tests/mv/Makefile.in, tests/od/Makefile.in: - * tests/pr/Makefile.in, tests/readlink/Makefile.in: - * tests/rm/Makefile.in, tests/rmdir/Makefile.in: - * tests/seq/Makefile.in, tests/sha1sum/Makefile.in: - * tests/shred/Makefile.in, tests/sort/Makefile.in: - * tests/stty/Makefile.in, tests/sum/Makefile.in: - * tests/tac/Makefile.in, tests/tail/Makefile.in: - * tests/tail-2/Makefile.in, tests/tee/Makefile.in: - * tests/test/Makefile.in, tests/touch/Makefile.in: - * tests/tr/Makefile.in, tests/tsort/Makefile.in: - * tests/unexpand/Makefile.in, tests/uniq/Makefile.in: - * tests/wc/Makefile.in: - Remove from CVS, since ./bootstrap generates them automatically. - -2006-08-20 Eric Blake <ebb9@byu.net> - - * src/stat.c (USE_STATVFS): Reinstate the patch from 2006-08-15; - the patch from 2006-08-18 broke on cygwin. - -2006-08-20 Jim Meyering <jim@meyering.net> - - * NEWS: Add a line for 6.2-cvs. - * configure.ac (AC_INIT): Bump to 6.2 and add "-cvs" suffix. - -2006-08-19 Jim Meyering <jim@meyering.net> - - * Version 6.1. - * NEWS: Record the 6.1 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - - * tests/Makefile.am (EXTRA_DIST): Add sparse-file. - - Avoid test failure when `make check' is run through debuild. - * tests/help-version: Ensure that $SHELL is set to some value - and exported. Patch from Sven Joachim. For details, see - <http://bugs.debian.org/355368>. - - * tests/ls/stat-dtype: Test for the 2006-08-17 `ls -CF' fix. - - * README: Describe potential "pre-C99 build failure", and work-around. - - Some of my 2006-07-03 changes to tests/*/Makefile.am were being - backed out due to updates provoked by the copyright changes. - * tests/Makefile.am.in (PATH): Prepend $(VG_PATH_PREFIX), so that - it propagates to the derived Makefile.am files. - ($(srcdir)/Makefile.am): Mark generated .am files as read-only, - so we don't mistakenly edit them again. - * tests/cut/Makefile.am: Regenerate. - * tests/head/Makefile.am: Likewise. - * tests/join/Makefile.am: Likewise. - * tests/pr/Makefile.am: Likewise. - * tests/sort/Makefile.am: Likewise. - * tests/tac/Makefile.am: Likewise. - * tests/tail/Makefile.am: Likewise. - * tests/test/Makefile.am: Likewise. - * tests/tr/Makefile.am: Likewise. - * tests/uniq/Makefile.am: Likewise. - * tests/wc/Makefile.am: Likewise. - - * NEWS: Fix cp --sparse so that it preserves tail-end sparseness, even - when the file's apparent size is not a multiple of its block size. - * src/copy.c (copy_reg): Don't write a NUL before calling ftruncate. - For some file sizes, writing that single byte would unnecessarily - waste a few file blocks. That write may have been necessary in the - early days of Linux, but now, removing it should be safe. - Based on a patch by Alan Curry: <http://bugs.debian.org/370792> - * tests/cp/sparse: New test for the above. - * tests/cp/Makefile.am (TESTS): Add sparse. - - * tests/sparse-file: New file, essence factored out of... - * tests/du/8gb: ... here. Use the new script. - -2006-08-18 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (select_plural): Reduce by 1000000, not 1000, since - the CVS gettext manual now suggests 1000000. - -2006-08-18 Bruno Haible <bruno@clisp.org> - - Add support for NetBSD 3.0. - * src/stat.c (USE_STATVFS): Set to 1 if 'struct statvfs' has a field - f_fstypename. - (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME): Define also if 'struct statvfs' - has a field f_fstypename. - This undoes the 2006-08-15 to src/stat.c. - -2006-08-17 Paul Eggert <eggert@cs.ucla.edu> - - Copyright notice fixes. - - * COPYING: Upgrade to latest version from FSF. - - * src/uname.c: Use (C) in copyright notice. - - * .vg-suppressions: Add copyright notice. - * ChangeLog: Likewise. - * ChangeLog-2005: Likewise. - * Makefile.am: Likewise. +2010-04-21 Eric Blake <eblake@redhat.com> + + docs: document transformation of obsolete sort syntax + * doc/coreutils.texi (sort invocation): Mention the conversion. + +2010-04-21 Pádraig Brady <P@draigBrady.com> + + maint: update a couple of NEWS items for the pending release + * NEWS: Mention that cp and mv from the previous release did + not support preserving extended attributes (fixed in e489fd04). + Improve the grammar for the "cp capabilities" item. + +2010-04-20 Pádraig Brady <P@draigBrady.com> + + sort: fix parsing of end field in obsolescent key formats + This regression was introduced in commit 224a69b5, 2009-02-24, + "sort: Fix two bugs with determining the end of field". + The specific regression being that we include 1 field too many when + an end field is specified using obsolescent key syntax (+POS -POS). + + * src/sort.c (struct keyfield): Clarify the description of the eword + member, as suggested by Alan Curry. + (main): When processing obsolescent format key specifications, + normalize eword to a zero based count when no specific end char is given + for an end field. This matches what's done when keys are specified with -k. + * tests/misc/sort: Add a few more tests for the obsolescent key formats, + with test 07i being the particular failure addressed by this change. + * THANKS: Add Alan Curry who precisely identified the issue. + * NEWS: Mention the fix. + Reported by Santiago Rodríguez + +2010-04-16 Pádraig Brady <P@draigBrady.com> + + cp: preserve "capabilities" when also preserving file ownership + * src/copy.c (copy_reg): Copy xattrs _after_ setting file ownership + so that capabilities are not cleared when setting ownership. + * tests/cp/capability: A new root test. + * tests/Makefile.am (root_tests): Reference the new test. + * NEWS: Mention the fix. + +2010-04-16 Jim Meyering <meyering@redhat.com> + + * HACKING (Add tests): Change example name, "newtest" to "new-test". + Not that anyone would confuse with something newt-related, but just + because it is more readable that way. + + doc: tweak HACKING + +2010-04-16 Jim Meyering <meyering@redhat.com> + + doc: tweak HACKING + * HACKING (Curly braces): Tweak a sentence. Filter a few + paragraphs through "fmt". + +2010-04-16 Pádraig Brady <P@draigBrady.com> + + maint: fix build on platforms that replace strsignal + * src/Makefile.am (kill_LDADD): Add $(LIBTHREAD) so that + we link with the appropriate libraries to provide Thread Local Storage + on platforms that replace strsignal (like AIX for example). + + Tested-by: Daniel Richard G. <danielg@teragram.com> + +2010-04-16 Pádraig Brady <P@draigBrady.com> + + tests: avoid spurious failure of ls/color-norm test + * tests/ls/color-norm: Use the "time" output by `ls -l` + to check normal style. Previously we used the size from `ls -s`, + but the size of "empty" files can vary depending on whether + SELinux is enabled for example. + +2010-04-15 Jim Meyering <meyering@redhat.com> + + doc: document our code formatting policy regarding curly braces + * HACKING (Curly braces: use judiciously): New section. + +2010-04-14 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious failure of root-only ls/capability test + * tests/ls/capability: Adjust this test not to expect the no-op escape + sequence that was removed from all other tests by 2010-01-30 commit + 5d43617e, "ls --color: don't emit a final no-op escape sequence". + +2010-04-13 Pádraig Brady <P@draigBrady.com> + + cp: treat selinux warnings consistently + * src/copy.c (copy_reg): Suppress SELinux ENOTSUP warnings consistently + between the destination being present or not. Previously we did + not suppress ENOTSUP messages when the destination was present. + (copy_internal): Use the same ENOTSUP supression method as + copy_reg() even though the issue was not seen in this case. + * tests/cp/cp-a-selinux: Add a test case for the issue and + group the other test cases in the file more coherently. + * tests/cp/cp-mv-enotsup-xattr: Do the same check for xattr + warnings, even though they did not have the issue. + +2010-04-12 Pádraig Brady <P@draigBrady.com> + + doc: clarify when cp and mv output xattr warnings + The 2010-03-26 commit, 4c38625e, "doc: fix info on cp --preserve..." + was not entirely correct as cp --preserve=all does produce some + xattr warnings. + + * src/copy.h: Update and clarify the comments for reduce_diagnostics + and require_preserve_{xattr,context}. + * doc/coreutils.texi (cp invocation): Update the -a and + --preserve=xattr,context options to say when and which + xattr warnings are output. + (mv invocation): Mention that some warnings are output + when preserving xattrs. + +2010-04-11 Pádraig Brady <P@draigBrady.com> + + doc: mention that "capabilities" are preserved by cp/mv + * doc/coreutils.texi (cp invocation): Mention that + "capabilities" are preserved when implemented using + extended attributes. + (mv invocation): Mention ACLs etc. are maintained + due to xattrs being copied. + +2010-04-11 Jie Liu <jeff.liu@oracle.com> + + build: tell ./bootstrap to check for xz up-front + * bootstrap.conf (buildreq): Add xz to the list. + +2010-04-11 Jim Meyering <meyering@redhat.com> + + tests: more syntax-checks + * gnulib: update to latest + * cfg.mk (sc_prohibit_empty_lines_at_EOF): Remove, now that it's + in gnulib's maint.mk. + (_hv_file): Override the default. + +2010-04-10 Jim Meyering <meyering@redhat.com> + + maint: new syntax-check rule: prohibit empty lines at EOF + * cfg.mk (detect_empty_lines_at_EOF_): Define. + (sc_prohibit_empty_lines_at_EOF): New rule. + * .x-sc_prohibit_empty_lines_at_EOF: New file. Exempt pr test inputs. + * Makefile.am (syntax_check_exceptions): Add it. + Pádraig Brady suggested to parse the output of tail -n1. + +2010-04-09 Mike Frysinger <vapier@gentoo.org> + + dircolors: add rxvt-256color and rxvt-unicode256 + * src/dircolors.hin: Add them. + +2010-04-09 Jim Meyering <meyering@redhat.com> + + maint: ftruncate is always available, even without gnulib + Now that even MinGW provides ftruncate, we know that all + reasonable portability targets provide this function. + Remove the workaround code. We nearly removed the gnulib + module three years ago: + http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203 + and it is now officially "obsolete". + * bootstrap.conf (gnulib_modules): Remove ftruncate. + * src/copy.c (copy_reg): Remove use of HAVE_FTRUNCATE and its + no-longer-used workaround code. + * src/truncate.c: Remove a comment about handling missing ftruncate. + +2010-04-08 James Youngman <jay@gnu.org> + + doc: make wc --help say how it defines a 'word' + * src/wc.c (usage): Add wc's definition of "word". + +2010-04-08 Jim Meyering <meyering@redhat.com> + + doc: adjust a header in announcement email template + * README-release: Use Mail-Followup-To: rather than Reply-To:. + The former works more reliably, at least with Gnus. + +2010-04-07 Jim Meyering <meyering@redhat.com> + + tests: add a PATH-sanity-check to help-version + * tests/misc/help-version: Sync from gzip's version. + * tests/check.mk (TESTS_ENVIRONMENT): Export VERSION, as required + for new help-version test. + +2010-04-06 Jim Meyering <meyering@redhat.com> + + maint: fix a masked syntax-check violation + * m4/jm-macros.m4 (ARGMATCH_DIE): Use usage(EXIT_FAILURE), not usage(1). + * .x-sc_prohibit_magic_number_exit: Remove *.m4 exemption that was + masking the above. + + build: update gnulib submodule to latest + +2010-04-05 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2010-04-04 Marc Kleine-Budde <mkl@pengutronix.de> + + tail: include sys/vfs.h (if possible) when sys/statfs.h is absent + * src/tail.c [HAVE_INOTIFY && !HAVE_SYS_STATFS_H]: Include <sys/vfs.h>. + +2010-04-02 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + * cfg.mk: Update to use new _sc_search_regexp interface. Run this: + perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;' + -e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk + and then adjust backslashes so they still line up. + +2010-03-31 Jim Meyering <meyering@redhat.com> + + doc: synchronize parts of README-release from grep's version + * README-release (FIXME): Add Reply-To, use coreutils@gnu.org + for announcements. Update savannah-verbatim-announcement procedure. + +2010-03-29 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tests: disable new texinfo-acronym syntax-check from gnulib + * cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it. + +2010-03-29 Bruno Haible <bruno@clisp.org> + + build: update after change in gnulib's lib-ignore module + * src/Makefile.am (AM_LDFLAGS): Define. Use gnulib's new + $(IGNORE_UNUSED_LIBRARIES_CFLAGS). + +2010-03-29 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious sc_prohibit_test_minus_ao syntax-check failures + * tests/misc/ls-time: Change comments and diagnostics. + * tests/misc/xattr: Likewise. + +2010-03-26 Jim Meyering <meyering@redhat.com> + + tests: fix typos in envvar-check script + * tests/envvar-check: Fix variable name typos. + Probably harmless, since no selected shell would fail to unset. + +2010-03-26 Pádraig Brady <P@draigBrady.com> + + nice,chroot: use more standard option parsing + Related to the 2010-03-25 commit, 88d4b346, + "timeout: use more standard option parsing". + * src/nice.c (main): Don't use parse_long_options() + which is a helper for commands that don't have any + long options specific to them. + * src/chroot.c (main): Likewise. + * tests/misc/nice-fail: Remove a case that now + passes due to us accepting multiple instances of the + --help and --version options. + * tests/misc/chroot-fail: Likewise. + +2010-03-26 Kim Hansen <kim@i9.dk> + + timeout: use more standard option parsing + * src/timeout.c (main): Don't use parse_long_options() + which is a helper for commands that don't have any + long options specific to them. + * tests/misc/timeout-parameters: Remove a case that now + passes due to us accepting multiple instances of the + --help and --version options. + * THANKS: Add the author. + +2010-03-26 Pádraig Brady <P@draigBrady.com> + + doc: fix info on cp --preserve=all, which does _not_ give xattr warnings + The info docs have been inaccurate since 2009-04-17, commit 941bd482, + "mv: ignore xattr-preservation failure when not supported by filesystem" + * doc/coreutils.texi (cp invocation): Say that cp --preserve=all + does _not_ output errors when failing to copy xattrs. + +2010-03-21 Jim Meyering <meyering@redhat.com> + + cfg.mk: remove comments with sed rather than cpp -fpreprocessed + * cfg.mk (_sed_remove_comments): Define, starting with gettext's + moopp sed code, but factoring it to be more understandable. + (sc_space_before_open_paren): Adapt. + Prompted by Bruno Haible's suggestion to use gettext's moopp code. + +2010-03-20 Jim Meyering <meyering@redhat.com> + + cfg.mk: fix copy-paste-o in a diagnostic + * cfg.mk (sc_space_before_open_paren): Mention cpp -fpreprocessed, + not cppi, when cpp -fpreprocessed doesn't work. + Spotted by Eric Blake. + + maint: enforce one small aspect of formatting style: space-before-"(" + * cfg.mk (sc_space_before_open_paren): New rule. + + maint: code formatting nit + * src/system.h (ST_NBLOCKS): Add space before paren. + +2010-03-19 Pádraig Brady <P@draigBrady.com> + + maint: mbsalign: fix an edge case where we truncate too much + * gl/lib/mbsalign.c (mbsalign): Ensure the temporary destination buffer + is big enough, as it may need to be bigger than the source buffer + in the presence of single byte non printable chars. + * gl/tests/test-mbsalign.c (main): Add a test to trigger the issue. + + maint: update the mbsalign module + * gl/lib/mbsalign.c (mbsalign): Support the MBA_UNIBYTE_FALLBACK + flag which reverts to unibyte mode if one can't allocate memory + or if there are invalid multibyte characters present. + Note memory is no longer dynamically allocated in unibyte mode so + one can assume that mbsalign() will not return an error if this + flag is present. Don't calculate twice, the number of spaces, + when centering. Suppress a signed/unsigned comparison warning. + (ambsalign): A new wrapper function to dynamically allocate + the minimum memory required to hold the aligned string. + * gl/lib/mbsalign.h: Add the MBA_UNIBYTE_FALLBACK flag and + also document others that may be implemented in future. + (ambsalign): A prototype for the new wrapper. + * gl/tests/test-mbsalign.c (main): New test program. + * gl/modules/mbsalign-tests: A new index to reference the tests. + * .x-sc_program_name: Exclude test-mbsalign.c from this check. + +2010-03-19 Paolo Bonzini <bonzini@gnu.org> + + tests: change help-version to per-program functions + * help-version: Change each *_args variable to a *_setup function. + +2010-03-19 Jim Meyering <meyering@redhat.com> + + doc: tweak README-prereq again + * README-prereq: Change one more: s/coreutils/This package/ + + doc: make README-prereq more generic + * README-prereq: Adjust wording and reduce number of mentions of + "coreutils", so it's easier to reuse in another package: grep. + +2010-03-18 Eric Blake <eblake@redhat.com> + + rm: tweak wording about loss of data warning + * src/rm.c (usage): Update wording to make two points more + apparent: undelete is not trivial, and partial recovery should be + a consideration factor in deciding whether rm is secure enough. + Initially suggested by Reuben Thomas. + +2010-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + revert "maint: mark makefile "dist-hook" target as PHONY" + * src/Makefile.am (dist-hook): Do not mark this target + as PHONY, explicitly. Automake does it for us. + +2010-03-18 Eric Blake <eblake@redhat.com> + + doc: improve ls --help's description of --escape (-b) + * src/ls.c (usage): Be more precise about how --escape (-b) works: + say "C-style escapes", not "octal escapes". Reported by Jacky Fong. + +2010-03-18 Jim Meyering <meyering@redhat.com> + + maint: mark makefile "dist-hook" target as PHONY + * src/Makefile.am (dist-hook): Mark target as PHONY. + +2010-03-17 Jim Meyering <meyering@redhat.com> + + maint: add a space before open-paren, where lacking + * src/copy.c (copy_reg): Likewise. + * src/cut.c (main): Likewise. + * src/dd.c (main): Likewise. + * src/getlimits.c (print_int): Likewise. + * src/join.c (join): Likewise. + * src/pwd.c (logical_getcwd): Likewise. + * src/sort.c (specify_nmerge, mergefps, avoid_trashing_input): Likewise. + (merge): Likewise. + * src/uptime.c (usage): Likewise. + +2010-03-16 Pádraig Brady <P@draigBrady.com> + + timeout: add the --kill-after option + Based on a report from Kim Hansen who wanted to + send a KILL signal to the monitored command + when `timeout` itself received a termination signal. + Rather than changing such a signal into a KILL, + we provide the more general mechanism of sending + the KILL after the specified grace period. + + * src/timeout.c (cleanup): If a non zero kill delay + is specified, (re)set the alarm to that delay, after + which a KILL signal will be sent to the process group. + (usage): Mention the new option. Separate the description + of DURATION since it's now specified in 2 places. + Clarify that the duration is an integer. + (parse_duration): A new function refactored from main(), + since this logic is now called for two parameters. + (main): Parse the -k option. + * doc/coreutils.texi (timeout invocation): Describe the + new --kill-after option and use @display rather than + @table to show the duration suffixes. Clarify that + a duration of 0 disables the associated timeout. + * tests/misc/timeout-parameters: Check invalid --kill-after. + * tests/misc/timeout: Check a valid --kill-after works. + * NEWS: Mention the new feature. + +2010-03-13 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + The latest from gnulib once again passes all tests. + + revert to previous working version of gnulib + This reverts commit 0c31cdc2d13a1e47106ce708ca9c94df8d21f764. + +2010-03-13 Thien-Thi Nguyen <ttn@gnuvola.org> + + doc: use mktemp, not tempfile, in a shred usage example + * doc/coreutils.texi (shred invocation): + Use mktemp(1) instead of Debian-specific tempfile(1). + +2010-03-12 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2010-03-11 Eric Blake <eblake@redhat.com> + + maint: drop *.lzma suport + * .gitignore: Remove *.lzma lines. + +2010-03-10 Eric Blake <eblake@redhat.com> + + maint: ignore *.xz files + * .gitignore: Ignore *.xz created by 'make dist', now that we + no longer produce *.lzma. + +2010-03-10 Jim Meyering <meyering@redhat.com> + + remove: without -f, avoid unnecessary-expense/issues with euidaccess + * src/remove.c (write_protected_non_symlink): If faccessat fails, + return 1 or -1 directly, rather than falling back on euidaccess*. + +2010-03-09 Pádraig Brady <P@draigBrady.com> + + doc: Add an example for cutting fields separated by runs of blanks + * doc/coreutils.texi (cut invocation): Show how tr can be used + to process the input for cut in this case. + Suggestion from Dan Jacobson. + +2010-03-04 Pádraig Brady <P@draigBrady.com> + + maint: rename the si_present variable in sort to iec_present + * src/sort.c: The units containing 'i' are actually IEC not SI. + +2010-03-04 Joey Degges <jdegges@gmail.com> + + sort: inform the system about our input access pattern + Tell the system that we'll access input sequentially, + so that we more efficiently process uncached files in a few cases: + + Reading from faster flash devices. E.g. 21 MB/s key: + NORMAL 31.6s (26.8 user) + SEQUENTIAL 27.7s + WILLNEED 27.7s + + Processing in parallel with readahead when using a small 1M buffer: + NORMAL 24.7s (21.1 user) + SEQUENTIAL 22.7s + WILLNEED 25.6s + + A small benefit when merging: + NORMAL 25.0s (16.9 user) + SEQUENTIAL 24.6s (16.6 user) + WILLNEED 38.4s (13.1 user) + + Note WILLNEED is presented above for comparison to show it + has some unwanted characteristics due to its synchronous + prepopulation of the cache. It has a good benefit on a + mechanical disk @ 80MB/s and a multicore system with + competing processes: + NORMAL 14.73s + SEQUENTIAL 10.95s + WILLNEED 05.22s + However the scheduling differences causing this result + are probably best explicitly managed using `nice` etc. + + * m4/jm-macros.m4 (coreutils_MACROS): check for posix_fadvise(). + * src/sort.c (fadvise_input): A new function to apply + the POSIX_FADV_SEQUENTIAL hint to an input stream. + (stream_open): Call the above function for all input streams. + +2010-03-04 Jim Meyering <meyering@redhat.com> + + tests: don't let the LANGUAGE envvar perturb tests + * tests/envvar-check (vars): Add LANGUAGE to the list of envvars + to unset. At least in glibc (as an extension to POSIX), its value + actually trumps LC_ALL: + + $ LC_ALL=es_ES LANGUAGE=fr_FR.UTF-8 /bin/cat no-such + /bin/cat: no-such: Aucun fichier ou dossier de ce type + + but only when the default locale is not C: + + $ LC_ALL=C LANGUAGE=fr_FR.UTF-8 /bin/cat no-such + /bin/cat: no-such: No such file or directory + + Prompted by a report from Mads Kiilerich. + +2010-03-01 Pádraig Brady <P@draigBrady.com> + + sort: fix issues with month sorting in some locales + * src/sort.c (char fold_toupper[]): Change to unsigned + so as the correct comparisons are made in getmonth(). + This fixes unibyte locales where abbreviated months + have characters that are > 0x7F, but it also works for + multibyte locales with the caveat that multibyte characters + are matched case sensitively. + With this change, the following example sorts correctly: + $ echo -e "1 márta\n2 Feabhra" | LANG=ga_IE.utf8 sort -k2,2M + 2 Feabhra + 1 márta + * src/sort.c (inittables): Since we ignore blanks around months + in the input, don't include them when they're present in the locale. + With this change, the following example sorts correctly: + $ echo -e "1 2月\n2 1月" | LANG=ja_JP.utf8 sort -k2,2M + 2 1月 + 1 2月 + * tests/misc/sort-month: A new test to exercise the above cases. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + +2010-02-25 Eric Blake <eblake@redhat.com> + + bootstrap: resynchronize from gnulib + * gnulib: Update to latest. + * bootstrap: Copy from gnulib/build-aux/bootstrap. + * README-hacking: Describe how to use GNULIB_SRCDIR. + + expr: clarify error message + * src/expr.c (eval4, eval3): Clarify that expr expects integers, + and not the broader category of numbers. + * tests/misc/expr: Update test accordingly. + Suggested by Dan Jacobson. + +2010-02-19 Pádraig Brady <P@draigBrady.com> + + maint: clean up the output from syntax-check rules + * cfg.mk (sc_tight_scope): Pass the -s (silent) flag to `make` + so that it doesn't report about calling sub makes. + (sc_check-AUTHORS): Likewise. + (sc_strftime_check): Don't display stderr from `info`. + * src/Makefile.am (sc_tight_scope): Don't annotate with "GEN". + (sc_check-AUTHORS): Likewise. + +2010-02-17 Moritz Orbach <ml-coreutils@apfelboymchen.homeunix.net> + + ls: fix a regression by honoring NORMAL attributes again + Output the NORMAL attribute before non file name text. + This attribute will continue into file names that would + not otherwise be colored unless FILE is also set. + The regression was introduced with commit 483297d5, 28-02-2009, + "ls --color no longer outputs unnecessary escape sequences". + + * src/ls.c (set_normal_color): A new function to output the + NORMAL attribute sequence if it's enabled. + (print_current_files): Output NORMAL before printing long format info. + (print_file_name_and_frills): Output NORMAL before printing file name. + (print_color_indicator): Reset the attributes before a file name with + attributes so that NORMAL attributes will not combine with them. + (print_name_with_quoting): Ensure attributes are reset after printing + the file name if NORMAL attributes were output. + * tests/ls/color-norm: A new test for NORMAL and FILE combinations. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the fix. + Reported in https://savannah.gnu.org/bugs/?26512 + +2010-02-16 Pádraig Brady <P@draigBrady.com> + + maint: fix the man page correlation tests + These checks were not being run as distcheck-hook targets + are only supported in the top-level Makefile. Instead + these tests are now run during a syntax-check. + + * cfg.mk (sc_man_file_correlation): A new syntax check to + call the 2 existing tests to check the correlation between + the programs and man/*.[1x]. + * man/Makefile.am (sc_man_file_correlation): Call the 2 existing + man page correlation tests. + (check-x-vs-1): Remove the "GEN" annotation as it's a bit verbose. + (check-programs-vs-x): Likewise. + * src/Makefile.am (all_programs.list): Exclude libstdbuf.so + from the list of programs. This issue was not noticed as + the checks were not actually being run. + +2010-02-16 Pádraig Brady <P@draigBrady.com> + + tests: fix an unlikely race in tail-2/inotify-hash-abuse2 + * tests/tail-2/inotify-hash-abuse2: Explicitly kill the process + by using cleanup_() rather than using a timeout which may trigger + a failure on very slow systems (< 20 iterations of the loop per second). + +2010-02-15 Pádraig Brady <P@draigBrady.com> + + doc: fix inconsistent capitalization in --help output + * src/base64.c (usage): Don't capitalize the first character + in an --option description. + * src/stdbuf.c (usage): Likewise. + * src/truncate.c (usage): Likewise. + * cfg.mk (sc_option_desc_uppercase): A new syntax check to + stop this happening in future. + * man/Makefile.am (sc_option_desc_uppercase): Ensure all + man pages are generated, then search for erroneous uppercase chars. + * src/Makefile.am (all_programs): Ensure all + commands are built so that all man pages can be generated. + +2010-02-15 Jim Meyering <meyering@redhat.com> + + remove.c: remove three unnecessary #include directives + * src/remove.c: Don't include hash.h, hash-pjw.h or obstack.h. + They have been unused since the fts rewrite. + +2010-02-15 Eric Blake <ebb9@byu.net> + + build: ignore another gnulib artifact + * .gitignore: Add lib/warn-on-use.h. + + dirname: improve man page description + * doc/coreutils.texi (dirname invocation): Properly cover behavior + on directory. + * man/dirname.x: Likewise. + * THANKS: Update. + Reported by Emmanuel Lacour. + +2010-02-11 Pádraig Brady <P@draigBrady.com> + + doc: remove extraneous periods from --help output + * src/join.c (usage): Mention "fields" rather than repeating "line" + so that it's more obvious that the fields are still parsed, and + thus -o is still honored for headers. Also remove an extraneous + '.' reported by Stéphane Raimbault. + * src/base64.c (usage): Remove extraneous blank line and order + the options alphabetically. Also remove an extraneous '.' + * src/chown.c (usage): Remove extraneous '.' + * src/cp.c (usage): Likewise. + * src/mktemp.c (usage): Likewise. + * src/pr.c (usage): Likewise. + * src/stat.c (usage): Likewise. + * src/uniq.c (usage): Likewise. + +2010-02-10 Jim Meyering <meyering@redhat.com> + + doc: add a TODO item + * TODO: Consider adding a col implementation. + +2010-02-07 Jim Meyering <meyering@redhat.com> + + copy.c: improve a comment + * src/copy.c (copy_reg): The comment about POSIXLY_CORRECT refers + only to cp, not to any other application that uses copy.c. + +2010-02-07 James R. Van Zandt <jrv@debian.org> + + doc: add a cross reference from tac's man page to "rev" + * man/tac.x: See also "rev". + +2010-02-07 Jim Meyering <meyering@redhat.com> + + tests: include help-version test settings used by gzip and grep + * tests/misc/help-version: ...the better to keep this file in sync. + + doc: rewrite part of README-release + * README-release (Pre-release testing): Reorganize. + +2010-02-05 Jim Meyering <meyering@redhat.com> + + sync with gnulib + * gl/lib/regcomp.c.diff: Update to apply to changed version in gnulib. + * gnulib: Update submodule to latest. + +2010-02-02 Pádraig Brady <P@draigBrady.com> + + tests: fix various timeout races + Prompted by the continuous integration build failure at: + http://hydra.nixos.org/build/277485 + + * tests/misc/timeout: Set all expected timeouts to 1s and all + unexpected timeouts to 10s. In this way, tests normally proceed + quickly but may delay up to 10s before reporting failures. + * tests/ls/infloop: Likewise. + * tests/tail-2/pid: Likewise. + * tests/tail-2/pipe-f: Likewise. + * tests/tail-2/wait: Likewise. + * tests/dd/skip-seek-past-dev: Likewise. + +2010-02-01 Ondřej Vašík <ovasik@redhat.com> + + tests: cp-a-selinux: skip the test if mounting a loop device fails + * tests/cp/cp-a-selinux: Skip the test (instead of fail) if we + fail to mount a loop device (e.g., none available). + +2010-02-01 Pádraig Brady <P@draigBrady.com> + + maint: fix a typo in NEWS + * NEWS: s/contains/contain/ + +2010-02-01 Pádraig Brady <P@draigBrady.com> + + join: make -t '' operate on the whole line + Previously passing an empty parameter to -t would + raise an error, but now it means to treat each line + as a single field for matching. This matches the + default operation of `sort` which is usually used + in conjunction with join. + + * src/join.c (main): Set the field delimiter to '\n' if + an empty parameter is passed to -t. + (usage): Mention the operation of -t ''. + * tests/misc/join: Add 2 new tests, for the existing -t '\0' + and the new -t '' functionality. + * doc/coreutils.texi (join invocation): Mention that + join -t '' always operates on the whole line, while + join -t '\0' usually does. + * NEWS: Mention the change in behavior. + +2010-02-01 Assaf Gordon <assafgordon@gmail.com> + + join: add --header option to always output the first line + This essentially allows one to use --check-order with headings. + Note join without --check-order will already handle the common case + where headings do match in each file, however using --check-order will fail + often when the header sorts after the first line of data. + + Note also that this will join header lines from each file even if + they don't match, with headings from the first file being used. + + * NEWS: Mention the new option. + * doc/coreutils.texi (join invocation): Describe the new option. + * src/join.c (usage): Likewise. + (join): Join the header lines unconditionally. + * tests/misc/join: Add 5 new tests. + +2010-02-01 Pádraig Brady <P@draigBrady.com> + + maint: fix an inconsequential memory leak in join + * src/join.c (join): Refactor the code that checks for misorder + at the tail of the files. The most significant change here is + that freeline() is called thus silencing a valgrind warning about + a definite but inconsequential memory leak. + (freeline): Make more general by doing nothing when passed NULL, + and setting freed pointers to NULL. + + maint: use $(CONFIG_INCLUDE) rather than the hardcoding lib/config.h + * tests/check.mk (TESTS_ENVIRONMENT): Use the generated CONFIG_INCLUDE + variable. Note $(abs_builddir)/$(CONFIG_HEADER) also currently works, + but $(CONFIG_HEADER) is deprecated and may not be generated in future. + $(CONFIG_INCLUDE) was made available by gnulib in commit, 22970f8a, + "syntax-check: detect incorrect boolean macro values in config.h" + +2010-02-01 Jim Meyering <meyering@redhat.com> + + ls --color: don't emit a final no-op escape sequence + * src/ls.c (main): With --color, avoid emitting the final color- + resetting escape sequence when it would be a no-op. + * tests/ls/color-clear-to-eol: Adjust expected output accordingly. + * tests/ls/color-dtype-dir: Likewise. + * tests/ls/multihardlink: Likewise. + * tests/ls/stat-free-symlinks: Likewise. + * tests/misc/ls-misc: Likewise. + * NEWS (Changes in behavior): Mention it. + C de-Avillez rebased and adapted four of the new sl-dangle* + tests in tests/misc/ls-misc. + Reported by Jim Avera in + http://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/494663 + +2010-01-28 Jim Meyering <meyering@redhat.com> + + maint: move vulnerable-Makefile.in-check to gnulib + * cfg.mk (sc_vulnerable_makefile_CVE-2009-4029): Move rule to... + * gnulib: Update to latest, to get updated "maint.mk". + +2010-01-27 Jim Meyering <meyering@redhat.com> + + maint: add a syntax-check rule to check for vulnerable Makefile.in + * cfg.mk (sc_vulnerable_makefile_CVE-2009-4029): New rule. + +2010-01-25 Kamil Dudka <kdudka@redhat.com> + + who --mesg (-T) can use a more accurate test for TTY writability + Enabled when coreutils is configured with --with-tty-group. + Based on a patch written by Piotr Gackiewicz. Details at + http://bugzilla.redhat.com/454261 + + * src/who.c (is_tty_writable): A new function returning true if a TTY + device is writable by the group. Additionally it checks the group to be + the same as TTY_GROUP_NAME when compiled with --with-tty-group. + * m4/jm-macros.m4: Introduce a new configure option --with-tty-group. + * NEWS: Mention the change. + +2010-01-24 Jim Meyering <meyering@redhat.com> + + tests: fix a syntax-check rule to pass in non-srcdir build + * cfg.mk (sc_x_sc_dist_check): This coreutils-specific syntax-check + rule would fail in a non-srcdir build, since in that case, each name + from $(VC_LIST) starts with "$(srcdir)/". Fix that. + * gnulib: Update to latest, to pull in a required maint.mk change. + +2010-01-23 Pádraig Brady <P@draigBrady.com> + + tests: make cp-mv-enotsup-xattr independent of the host file system + * tests/cp-mv-enotsup-xattr: Create a file system from which to copy + the xattrs so that the test is not skipped if the host file system + does not have user_xattr support. Also don't erroneously fail when + built without xattr support. + + doc: add nproc to the texinfo overview menu + * doc/coreutils.texi: Add nproc to the System context + command list in the overview menu. + + maint: ensure test independence from config macro format + * tests/cp/acl: Support USE_ACL not being defined. + * tests/mv/acl: Likewise. Also fix typo in skip message. + * tests/cp/preserve-slink-time: Support HAVE_UTIMENSAT being 0. + * tests/touch/no-dereference: Likewise. + * tests/ls/capability: Normalize so 1 is not required to be last char. + +2010-01-19 Eric Blake <ebb9@byu.net> + + build: fix failure from bogus USE_XATTR definition + * m4/xattr.m4 (gl_FUNC_ADDR): Fix regression introduced in commit + 6beca4248. + * THANKS: Update. + Reported by Adam Sampson. + +2010-01-18 Jim Meyering <meyering@redhat.com> + + libstdbuf: plug a very unlikely leak + * src/libstdbuf.c (apply_mode): Don't leak "buf" upon setvbuf failure. + + pr: avoid two over-allocations + * src/pr.c (init_store_cols): Allocate N*sizeof(*VAR) bytes, + not N*sizeof(int*). The latter would mistakenly allocate double + the required space on a system with 8-byte pointers. + +2010-01-14 Jim Meyering <meyering@redhat.com> + + maint: add missing "post-release push" step to release procedure + * README-release: Push the automated release and post-release + NEWS-updating commits. + Pádraig Brady reported that I'd pushed the tag without also + pushing the followup commit. + +2010-01-13 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.4 + * NEWS: Record release date. + +2010-01-13 Pádraig Brady <P@draigBrady.com> + + tests: avoid spurious failures on older shells + * tests/tail-2/inotify-hash-abuse: Use kill rather than wait + to determine if the tail process is still running. + * tests/tail-2/inotify-hash-abuse2: Ditto. + +2010-01-13 Jim Meyering <meyering@redhat.com> + + tests: work around spurious test failure with OpenBSD4.5's /bin/sh + * tests/ls/infloop: OpenBSD4.5's /bin/sh would mistakenly include + "set -x"-output in an application's stderr stream when stderr is + redirected before stdout. This was causing one spurious test failure. + The work-around: redirect stdout first. + Reported by Nelson Beebe. + + tests: don't silently skip the sort-version tests + * tests/misc/sort-version: Don't use <<- and indented here-doc contents. + s/<<-/<</ and unindent the here-document contents. Otherwise, + bash would ignore the indented delimiter and use EOF, thus silently + skipping this test. OpenBSD5.4's shell reported the failure: + $ printf 'cat<<-x\n foo\n x\n'|sh + sh: <stdin>[4]: here document `x' unclosed + [Exit 1] + by contrast, bash warns but still exits successfully: + $ printf 'cat<<-x\n foo\n x\n'|bash && echo you lose + bash: line 3: warning: here-document at line 1 delimited by \ + end-of-file (wanted `x') + foo + x + you lose + +2010-01-12 Eric Blake <ebb9@byu.net> + + tests: avoid spurious failure on old kernel + * tests/touch/no-dereference: Skip test if utimensat doesn't + support symlinks. + Reported by Bernhard Voelker. + +2010-01-12 Pádraig Brady <P@draigBrady.com> + + maint: update info about getting the prerequisite automake + * README-prereq: Now that we require automake-1.11.1 + update the instructions from getting it from the git repo + + maint: remove an already handled item from TODO + * TODO: The question regarding printf octal escapes is answered in + commit 4bcefa62, 2003-04-21, "Fix printf POSIX compatibility bug ..." + + maint: fix tests on solaris by using /usr/xpg4/bin + * tests/check.mk: Prepend /usr/xpg4/bin to the $PATH if present. + Using the more standard utilities allows tests such as misc/printenv, + which uses the -E option to grep, to complete. + +2010-01-12 Jim Meyering <meyering@redhat.com> + + build: update gnulib, to get fixed getlogin-related tests + + build: fix build failure due to missing libxattr + Configure is supposed to detect insufficient XATTR support. + However, if a system has the required headers, but no library, + the configure script would mistakenly enable USE_XATTR. + * m4/xattr.m4 (gl_FUNC_XATTR): If the attr_copy_file function + is not found, don't set USE_XATTR. + Nelson Beebe reported a link failure on RHEL 5.3. + Also, do not let the combination of --disable-xattr and + a stray LIB_XATTR environment setting perturb the build. + * NEWS (Build-related): Mention it. + + doc: mention the wchar.h vs. glibc build problem + * NEWS (Build-related): Mention the wchar.h issue. + +2010-01-12 Pádraig Brady <P@draigBrady.com> + + nproc: return a possibly more accurate total CPU count + * gnulib: Update, for num_processors() improvement. + * NEWS: Mention the fix. + +2010-01-12 Kamil Dudka <kdudka@redhat.com> + + ls: reorder includes to work around broken <sys/capability.h> + * src/ls.c: Include <sys/capability.h> later, to avoid build + failure with a header from libcap-2.16-1 or earlier. + See http://bugzilla.redhat.com/483548 for details. + +2010-01-08 Eric Blake <ebb9@byu.net> + + maint: move coreutils specific rule into cfg.mk + * gnulib: Update, for maint.mk improvement. + * cfg.mk (_makefile_at_at_check_excpetions): New rule, needed + for latest change to maint.mk. + +2010-01-07 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.3 + * NEWS: Record release date. + + maint: change an email address in THANKS + * THANKS: Adjust Denis' address. + +2010-01-07 Eric Blake <ebb9@byu.net> + + pr: ensure the page header line is of the required format + Before this change, with too long a file name, the name would + abut the date field on the left and possibly also the "Page N" + field on the right, rather than leaving a one-space separator + in each case. Fixes a regression introduced on Mar 6 2009, + by commit a4053c5291d5797734b3e4f042f9e1adf3944fd6 + + * src/pr.c (print_header): Ensure that there is at least one + space before and after the file name part of the header line. + * NEWS: Mention it. + * tests/pr/W20l24f-ll: s/xPage/ x Page/. + * THANKS: Update. + Reported by Denis McKeon, in https://savannah.gnu.org/bugs/?28492. + +2010-01-07 Eric Blake <ebb9@byu.net> + + maint: apply correct license to auxiliary files + * gnulib: Update, for maint.mk improvements. + * HACKING: Use GFDL 1.3, not 1.2. * NEWS: Likewise. * README: Likewise. - * README-valgrind: Likewise. - * TODO: Likewise. - * announce-gen: Likewise. - * man/Makefile.am: Likewise. - * man/chmod.x: Likewise. - * man/chown.x: Likewise. - * man/df.x: Likewise. - * man/du.x: Likewise. - * man/rm.x: Likewise. - * src/dircolors.hin: Likewise. - * src/du-tests: Likewise. - * src/extract-magic: Likewise. - * src/tac-pipe.c: Likewise. - * src/wheel-gen.pl: Likewise. - * tests/Coreutils.pm: Likewise. - * tests/Makefile.am.in: Likewise. - * tests/acl: Likewise. - * tests/envvar-check: Likewise. - * tests/expensive: Likewise. - * tests/group-names: Likewise. - * tests/help-version: Likewise. - * tests/mk-script: Likewise. - * tests/priv-check: Likewise. - * tests/rwx-to-mode: Likewise. - * tests/sample-test: Likewise. - * tests/setgid-check: Likewise. - * tests/chgrp/basic: Likewise. - * tests/chgrp/deref: Likewise. - * tests/chgrp/no-x: Likewise. - * tests/chgrp/posix-H: Likewise. - * tests/chgrp/recurse: Likewise. - * tests/chmod/c-option: Likewise. - * tests/chmod/equal-x: Likewise. - * tests/chmod/equals: Likewise. - * tests/chmod/no-x: Likewise. - * tests/chmod/octal: Likewise. - * tests/chmod/setgid: Likewise. - * tests/chmod/umask-x: Likewise. - * tests/chmod/usage: Likewise. - * tests/chown/basic: Likewise. - * tests/chown/deref: Likewise. - * tests/chown/separator: Likewise. - * tests/cp/Makefile.am: Likewise. - * tests/cp/acl: Likewise. - * tests/cp/backup-1: Likewise. + * cfg.mk (old_NEWS_hash): Update accordingly. + * .gitignore: Ignore file created by 'make update-NEWS-hash'. + +2010-01-06 Jim Meyering <meyering@redhat.com> + + build: require newer versions of automake and autoconf + * configure.ac: Require autoconf-2.62 and automake-1.11.1 or newer. + * bootstrap.conf (buildreq): Require automake-1.11.1 or newer, + to ensure people use a version with the fix for CVE-2009-4029. + Note that the coreutils-8.2 tarball included a fixed Makefile.in. + Require autoconf-2.62, per automake. + +2010-01-06 Eric Blake <ebb9@byu.net> + + cp, touch: avoid problem with new glibc + * gnulib: Update, for utimens fix. + * NEWS: Mention the fix. + Reported by Guillaume Ayoub in http://bugs.debian.org/563726. + See also http://bugzilla.redhat.com/552320. + +2010-01-05 Philip Rowlands <phr@doc.ic.ac.uk> + + doc: fix typo in NEWS + * NEWS: Fix typo: s/repeated/repeatedly/ + +2010-01-05 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + maint: always free a buffer, to avoid even semblance of a leak + * src/tac.c (main): Free the input buffer in most cases. + +2010-01-04 Jim Meyering <meyering@redhat.com> + + maint: use more readable operator: "||" rather than "|" + * src/cp.c (make_dir_parents_private): Use "||" rather than "|", + so that clang understands there is no undefined pointer dereference. + +2010-01-03 Jim Meyering <meyering@redhat.com> + + maint: record update-copyright options for this package + * cfg.mk: Next time, just run "make update-copyright". + +2010-01-01 Eric Blake <ebb9@byu.net> + + ls: fix color of broken symlinks colored as target + * src/ls.c (print_color_indicator): When using 'LINK target' in + dircolors, treat broken symlink as C_ORPHAN. + * tests/misc/ls-misc (sl-dangle2, sl-dangle3, sl-dangle4) + (sl-dangle5): Test for it, and add more coverage. + * NEWS: Document it. + * THANKS: Update. + Reported by Chris Jones. + +2010-01-01 Jim Meyering <meyering@redhat.com> + + df: use fputs in place of printf in a few more places + * src/df.c (print_header): Use fputs rather than printf in more places. + Suggested by Eric Blake. + + build: update gnulib submodule to latest + + maint: add a few copyrights; remove obsolete README file + * tests/README: Remove long-obsolete file. + * tests/Makefile.am (EXTRA_DIST): Remove README. + * tests/misc/truncate-dir-fail: Add copyright comment. + * tests/misc/selinux: Likewise. + * tests/misc/chcon: Likewise. + * tests/misc/chcon-fail: Likewise. + * tests/sample-test: Use only 2010 in this list. + + maint: update all FSF copyright year lists to include 2010 + Use this command: + git ls-files | grep -v COPYING \ + | xargs env UPDATE_COPYRIGHT_USE_INTERVALS=1 \ + build-aux/update-copyright + +2010-01-01 Stéphane Raimbault <stephane.raimbault@makina-corpus.com> + + pr --help: add missing space between short and long options usage message + * src/pr.c (usage): Add missing space. + + pr --help: improve a line-break + * src/pr.c (usage): Move the newline character a bit farther. + + df: add comments to help translators align column headers + * src/df.c (print_header): Add a comment telling translators to + retain the message length, and another to align header translations. + +2009-12-31 Jim Meyering <meyering@redhat.com> + + maint: newer gnulib; don't hard-code my GPG key ID + * cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it. + * gnulib: Update to latest. + + doc: update tail's documentation to allow for new -F semantics + * src/tail.c (usage): Reword tail -F description, so that it no + longer mentions details specific to the non-inotify implementation. + Also, join diagnostic strings (while staying under the 509-byte limit) + to ease formatting of translations. The latter was prompted by + a report from Stéphane Raimbault. + * doc/coreutils.texi (tail invocation): Update description here, too. + +2009-12-31 Eric Blake <ebb9@byu.net> + + touch: work around ntfs-3g bug + * gnulib: Update, for utimensat fix. + * NEWS: Improve wording about touch fixes. + * THANKS: Update. + Reported by Stuart Citrin. + +2009-12-30 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + doc: mention two tail -F bug fixes in NEWS + * NEWS (Bug fixes): Two tail -F fixes. + + tail: test for a bug in inotify-enabled tail -F + tail -F a b would stop tracking additions to b after "mv a b". + * tests/tail-2/F-vs-rename: New file. + * tests/Makefile.am (TESTS): Add it. + +2009-12-30 Giuseppe Scrivano <gscrivano@gnu.org> + + tail -F: don't stop following the target of a rename + This fixes a bug whereby tail -F would fail to track changes + to a file that was a target of a rename, and when the source of + the rename was another tailed file. + + * src/tail.c (tail_forever_inotify): Ensure the wd is not already + present in the hash table before trying to add it. When a new watch + descriptor is added to the `wd_to_name' hash table, check that it is + not already present. If it is present then remove the previous element. + +2009-12-30 Pádraig Brady <P@draigBrady.com> + + maint: improve the info about $PATH in README-prereq + * README-prereq: It wasn't obvious that the $PATH should + be set before building any of the prerequisite packages, + so move that information up. + +2009-12-29 Jim Meyering <meyering@redhat.com> + + tail: add another test to exercise abort-inducing flaw in tail -F + * tests/tail-2/inotify-hash-abuse2: New test, based on a reproducer + by Rob Wortman. + * tests/Makefile.am (TESTS): Add it. + + tail: add a test to exercise abort-inducing flaw in tail -F + * tests/tail-2/inotify-hash-abuse: New file, derived from + a report by Rob Wortman. + * tests/Makefile.am (TESTS): Add it. + Improved by: Pádraig Brady. + +2009-12-29 Giuseppe Scrivano <gscrivano@gnu.org> + + tail: remove `fdspec' from the hash table before changing its key + * src/tail.c (tail_forever_inotify): Avoid modifying fdspec->wd while + it is in the wd_to_name hash table. Once it is removed, it can be + added using the new `wd' as key for the hash table. This fixes the + abort-inducing bug reported by Rob Wortman in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19372 + +2009-12-29 Jim Meyering <meyering@redhat.com> + + maint: quiet "make" in doc/ + * doc/Makefile.am (constants.texi): Add a use of AM_V_GEN. + + tail: rename an internal variable + * src/tail.c (tail_forever_inotify): s/wd_table/wd_to_name/ + + tail: avoid read-beyond-end-of-buffer error + * src/tail.c (tail_forever_inotify): Do not use f[i] in a context + where i may be larger than the largest valid index. In the final + "if" clause in which we'd remove an inotify watch, we might have + used f[n_files]. Use fspec instead, since it is guaranteed to + be defined. + +2009-12-26 Eric Blake <ebb9@byu.net> + + maint: ignore more built files + Recent gnulib changes added new built files. + + * .gitignore: Add arg-nonnull.h, link-warning.h, + unused-parameter.h. + +2009-12-26 Eric Blake <ebb9@byu.net> + + tac: supply link dependency + * src/Makefile.am (tac_LDADD): Add LIB_GETHRXTIME. + * THANKS: Update. + Reported by Robert Schwebel. + +2009-12-26 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tail: shrink internal struct by 8 bytes + * tail.c (struct File_spec): Rearrange struct members to decrease + size by 8 bytes to 76,96 on i686,x86_64 respectively. + +2009-12-25 Jim Meyering <meyering@redhat.com> + + maint: tail: avoid in-function #if directives + * src/tail.c (fremote): Add a comment. + Move definition "up" to precede first use, so we can + remove its prototype and the #if..#endif around each use. + (any_remote_file): Rename from any_remote_files. + +2009-12-25 Pádraig Brady <P@draigBrady.com> + + tail: fix --follow to not use inotify on remote files + * src/tail.c (struct File_spec): Add a flag to record if file is remote. + (recheck): If we're using inotify then check if the file has gone remote + and if so, drop it with a warning. + (any_remote_files): A new function to check for any open remote files. + (tailable_stdin): A new function to refactor the check for whether + a tailable file was specified through stdin. + (fremote): A new function to check if a file descriptor + refers to a remote file. + (tail_forever_inotify): Add some comments. + (tail_file): Record if a file is remote when initially opened. + (main): Disable inotify if any remote files specified. + Also document the caveat about remounted files not + being noticed by inotify. + * NEWS: Mention the fix. + +2009-12-23 Pádraig Brady <P@draigBrady.com> + + wc: line-buffer the printed counts + * src/wc.c (main): Set stdout to line buffered mode + to ensure parallel running instances don't intersperse + their output. This adds 6.5% to the run time in the worst case + of many zero length files, but has neglible impact for + standard sized files. + * tests/misc/wc-parallel: New test for atomic output. + * tests/Makefile.am: Reference it. + * NEWS: Mention the fix + This is similar to commit 710fe413, 20-10-2009, + "md5sum, sha*sum, sum: line-buffer the printed checksums" + +2009-12-22 Pádraig Brady <P@draigBrady.com> + + stat: Recognize k-afs, gfs, ocfs2 file system types + * src/stat.c (human_fstype): Add k-afs, gfs/gfs2 and ocfs2. + * NEWS: Update the stat -f entry. + + stat: add support for more file system types + * src/stat.c (human_fstype): Add the following FS types: + fuseblk, rpc_pipefs. Also fix a typo of minux3 to minix3, + and mention the fs-magic-compare make target to help update the list. + * NEWS: Mention the fix. + +2009-12-20 Jim Meyering <meyering@redhat.com> + + build: correct coreutils-specific distcheck rules + * dist-check.mk (built_programs): Use $(bin_PROGRAMS), not $(PROGRAMS). + Otherwise, my-instcheck would fail due to non-installation of e.g., + the noinst_PROGRAMS, setuidgid and getlimits. + (taint-distcheck): Correct the grep command that checks for libtool + traces in configure. + +2009-12-20 Eric Blake <ebb9@byu.net> + + touch: fix ctime regression in 'touch -a' + Regression introduced in coreutils 8.1 due to a bug in the Linux + kernel implementation of utimensat with mtime of UTIME_OMIT. + + * gnulib: Update to latest, to pick up utimensat fix. + * NEWS: Mention the change. + * THANKS: Update. + Reported by John Stanley. + +2009-12-19 Pádraig Brady <P@draigBrady.com> + + maint: don't include the strverscmp gnulib module + * bootstrap.conf (gnulib_modules): Remove the strverscmp module + which is not used since commit e505736f, on 03-10-2008, + "ls and sort: use filevercmp instead of strverscmp" + + doc: enhance and reference info about version comparison + * doc/coreutils.texi (sort invocation): Reference the additional + info about filevercmp rather than the unused strverscmp. + (Details about version sort): Add some examples that are not + handled well by fileversmp. + * src/ls.c: Change a comment referencing the now unused strverscmp. + + rm: fix --one-file-system regression due to fts conversion + * src/remove.c (rm_fts): Fix incorrect comparison of + device and inode numbers. + * tests/rm/one-file-system2: Add a separate test so + that it can be run as a normal user (It doesn't need to mount). + * tests/Makefile.am: Reference it. + * NEWS: Mention the fix. + Reported by Jan Larres. + +2009-12-14 Jim Meyering <meyering@redhat.com> + + maint: improve dist-check.mk rules + * dist-check.mk (null_AM_MAKEFLAGS): Remove LIBTOOL. Adding it was + erroneous, since it is required when building from a distribution + tarball of a libtool-using project. Reported by Ralf Wildenhues. + (my-distcheck): Reorganize to use a subshell and set -e, so that + failures propagate "out". Without this change, setting LIBTOOL=false + would cause a failure that would then be ignored, probably due to a + problem in $(install-transform-check). + +2009-12-14 Thiago Farina <tfransosi@gmail.com> + + base64: use *_OPTION_DESCRIPTION macros instead of hard-coded strings + * src/base64 (usage): Use HELP_OPTION_DESCRIPTION and + VERSION_OPTION_DESCRIPTION macros, not literal strings. + +2009-12-13 Jim Meyering <meyering@redhat.com> + + tests: unpack xz-compressed tarballs when possible, not always *.gz + * dist-check.mk: Unpack compressed tarball using xz when possible, + since that's faster. + + maint: make dist-check.mk more easily shared + * dist-check.mk (built_programs): More generic, but still assumes src/. + Don't set GZIP in environment when untarring. + (my-distcheck): Use $(DIST_ARCHIVES), rather than assuming that + there is always a .tar.gz file. + + nohup: if fd_repoen fails (redirecting stdin), report it + * src/nohup.c (main): Don't ignore fd_reopen failure. + + tests: make the taint-distcheck rule easier to share with other projects + * dist-check.mk (taint-distcheck): Skip this test in a project + that uses libtool. + + stat: recognize "sockfs" file system type, ... + ... now that its magic number appears in <linux/magic.h>. + * src/stat.c (human_fstype) [S_MAGIC_SOCKFS]: Add case. + + maint: move definitions from maint.mk to dist-check.mk + * dist-check.mk (null_AM_MAKEFLAGS): Define here, not in maint.mk. + (built_programs): Likewise. + (my-distcheck): Move comments to... + (coreutils-path-check): ...the code they refer to. + Remove obsolete comments. + (null_AM_MAKEFLAGS): Add gperf, even though it's not used here. + * gnulib: Update to latest, for fixed maint.mk. + +2009-12-12 Jim Meyering <meyering@redhat.com> + + tests: tail-without-inotify: avoid spurious test failure + * tests/tail-2/wait: Account for the possibility that the kernel + lacks inotify support. Reported by Chris Clayton. + + factor: add a missing va_end + * src/factor.c (debug): Add missing va_end. + +2009-12-11 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest; adapt a patch + * gl/lib/tempname.c.diff: Adjust patch to apply to gnulib, now that + most TABs in indentation have been converted to spaces by running + this command: f=tempname.c.diff; patch-xform $f > k && mv k $f + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.2 + * NEWS: Record release date. + + tests: use a slightly better CU_TEST_NAME setting + * tests/check.mk (CU_TEST_NAME): Better test names. + + tail: don't call fstat on an uninitialized FD + This bug showed up via valgrind as a "Conditional jump or move + depends on uninitialized value(s)" error. + * src/tail.c (ignore_fifo_and_pipe): New function. + (main): Use it only when tailing forever. + The code to compute n_viable and mark some F[i] as ignored would call + isapipe on an uninitialized file descriptor. But n_viable and those + .ignored marks are useful/used only when tailing forever. This bug + was introduced via commit f0ff8c73 (7.6), "tail: make the new + piped-stdin test as portable as the old one". + * NEWS (Bug fixes): Mention it. + + doc: NEWS: mention that gnulib's mgetgroups fix affects id + * NEWS (Bug fixes): Mention the "id" bug fix inherited via this gnulib + change: "mgetgroups: do not write bytes beyond end of malloc'd buffer" + http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=51d5e813e9ee6cf23 + +2009-12-10 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + tests: avoid spurious failure when run via valgrind + * tests/misc/printenv: Ignore LD_PRELOAD differences. + +2009-12-09 Jim Meyering <meyering@redhat.com> + + doc: NEWS: the "make distcheck" vulnerability dates back to 5.0 + * NEWS (Bug fixes): Correct the introduced-in version number. + This was introduced on 2003-04-02 by commit 722a49ea. + + doc: NEWS: mention the "make distcheck" vulnerability + * NEWS (Bug fixes): Mention implications of the "make distcheck" change. + This was introduced on 2008-07-22 by commit 9bb0d576, "tests: ensure + "make check" w/tainted build dir no longer impacts $HOME". + + tests: don't let "umask 077" cause root-only cp/preserve-gid failure + * tests/cp/preserve-gid: Use working_umask_or_skip_ to set umask to 022. + +2009-12-08 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2009-12-08 Pádraig Brady <P@draigBrady.com> + + maint: remove an erroneous comment + * tests/misc/timeout: Remove an erroneous comment + introduced through copy and paste. + + sort: fix failure if sort's parent has ignored SIGCHLD + * src/sort.c (main): Reset the SIGCHLD handler to the default + as otherwise wait() could return an error. + * tests/misc/sort-compress: Set the CHLD handler in a subshell + to SIG_IGN to ensure the sort command resets it to SIG_DFL. + * NEWS: Mention the fix. + + timeout: fix failure if timeout's parent has ignored SIGCHLD + * src/timeout.c (main): Reset the SIGCHLD handler to the default + as otherwise wait() could return -1 and set errno to ECHILD. + This condition was ignored until commit 0b1dcf33, on 31-08-2009, + "timeout: defensive handling of all wait() errors" + but subsequently timeout would run the command correctly + but then fail with an error message. + * tests/misc/timeout: In a subshell set the CHLD handler to + SIG_IGN to ensure the timeout command resets it to SIG_DFL. + * NEWS: Mention the fix. + + tests: fix stty-row-col failure on small fixed terminals + * tests/misc/stty-row-col: Linux virtual consoles at least, + issue an error if you try to increase their size, so skip the + test if we can't increase the dimensions of the tty by 1 cell. + Reported by Matthew Burgess. + + tests: fix stty failure with serial control settings + * tests/misc/stty: Don't check the serial control settings as + these are ignored by various Linux kernels. + Reported by Matthew Burgess. + +2009-12-07 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + build: distcheck: do not leave a $TMPDIR/coreutils directory behind + * dist-check.mk (tmpdir): Rename from TMPDIR. Use ./tests/torture + unconditionally, rather than $TMPDIR-with-default-to-/tmp. + Otherwise, running "make distcheck" could leave an empty /tmp/coreutils + directory behind. + (tp): Simplify, now that it's always in the build-dir. + (taint-distcheck): Set HOME earlier, in case $(MAKE) misbehaves. + (my-instcheck, coreutils-path-check): Add diagnostics, so it's easier + to diagnose when each runs. + (coreutils-path-check): Run configure with --quiet, to reduce output. + Inspired by Ralf Wildenhues' report of /tmp/coreutils being left behind. + +2009-12-06 Jim Meyering <meyering@redhat.com> + + tests: readdir-mountpoint-inode avoid false-positive w/virtualbox + * tests/ls/readdir-mountpoint-inode: With some systems, stat can + succeed on a mount point and report that the inode number is 0. + Since ls displays "?" for those, that would otherwise show up as a + difference. Skip such mount points. Reported by Sergei Steshenko + in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/19142 + +2009-12-06 Pádraig Brady <P@draigBrady.com> + + tests: don't run tail-2/inotify-race by default + * tests/tail-2/inotify-race: Note the caveats of the test. + I.E. the intermittent skips and the gdb hang reported + by Alan Curry. Add extra info to the log on why the test + is skipped as it may be due to multiple reasons. Mark + the test as very expensive so that it's not normally run. + +2009-12-05 Eric Blake <ebb9@byu.net> + + id: handle systems without getgroups support + If getgroups failed with ENOSYS, mgetgroups would unnecessarily + fail, and that provoked id into freeing an uninitialized pointer. + Meanwhile, we were not using xalloc_die properly. Both issues + are better solved in gnulib, by introducing xgetgroups; this + patch uses the new interface. + + Regression introduced by commit 6a31fd8d7. + + * gnulib: Update, for mgetgroups improvments. + * src/id.c (print_full_info): Adjust caller to die on allocation + failure, and no longer worry about ENOSYS. + * src/group-list.c (print_group_list): Likewise. + * src/setuidgid.c (main): Likewise. + * NEWS: Mention the fix. + * THANKS: Update. + Reported by Scott Harrison. + +2009-12-03 Jim Meyering <meyering@redhat.com> + + tests: fix a bug in sanitize_path_ that inhibited verbose output + * tests/test-lib.sh (sanitize_path_): Use "set -- ...", not "set - ...", + since the latter turns off the -x setting we rely on for VERBOSE=yes + output. + +2009-12-01 Eric Blake <ebb9@byu.net> + + sort: fix link failure on Solaris + Commit f9d0bb8481 made sort depend on xnanosleep. + + * src/Makefile.am (sort_LDADD): Add LIB_NANOSLEEP. + +2009-12-01 Jim Meyering <meyering@redhat.com> + + rm: fix empty-name bug introduced with conversion to use fts + While "rm ''" would properly fail, "rm F1 '' F2" would fail + to remove F1 and F2, due to the empty string argument. + This bug was introduced on 2009-07-12, via commit 4f73ecaf, + "rm: rewrite to use fts". + * gnulib: Update to latest, for fixed fts.c. + * NEWS (Bug fixes): Describe it. + * tests/rm/empty-name: Adjust for changed diagnostic. + (mk_file): Define, copied from misc/ls-misc. + (empty-name-2): New test, for today's fix. + * lib/xfts.c (xfts_open): Reflect the change in fts_open, now that + it no longer fails immediately when one argument is the empty string. + Assert that the bit flags were not the cause of failure. + * po/POTFILES.in: Remove xfts.c. + * THANKS: Update. + Reported by Ladislav Hagara. + +2009-11-30 Pádraig Brady <P@draigBrady.com> + + bootstrap: fix handling of various perl --version formats + * bootstrap (get_version): Don't use perl's $] special + variable, as that requires updating all bootstrap.conf files to + use perl's x.yyyzzz version format. Instead make the regular + expression more general to support version formats from older + perl-5.005_002 (5.5.2) and perl-5.11 which has other numbers + in the version line. + +2009-11-29 Jim Meyering <meyering@redhat.com> + + bootstrap: update from gnulib, for perl-5.11.x support + * bootstrap (get_version): Handle perl separately, + since perl-5.11's --version output is different. + + build: update gnulib submodule to latest + +2009-11-28 Jim Meyering <meyering@redhat.com> + + maint: chown.c: remove a comment + * src/chown.c: Remove old spec-like comment. + +2009-11-24 Eric Blake <ebb9@byu.net> + + tests: fix link failure on cygwin + Counterpart to commit 8fe40b84bd8, since test-link.c uses rename, + and we override gnulib with a rename() replacement that can xalloc_die. + + * gl/modules/link-tests.diff: New file. + +2009-11-24 Eric Blake <ebb9@byu.net> + + build: fix link failure on cygwin + Cygwin 1.5 has a broken sleep, and the gnulib tests dragged in + rpl_sleep which then caused a link failure because it wasn't in + libcoreutils.a. We could solve it by using the gnulib sleep module. + However, sleep and usleep may interact poorly with SIGALRM, and they + have less granularity; so it is better to adopt a policy that if we + must sleep, prefer xnanosleep. + + * src/sort.c (pipe_fork): Use xnanosleep, to avoid the need for + rpl_sleep on cygwin, and to reduce granularity. + (MAX_FORK_TRIES_COMPRESS, MAX_FORK_TRIES_DECOMPRESS): Increase, + to account for reduction in granularity. + * src/tail.c (tail_file): Use xnanosleep in debug code. + * cfg.mk (sc_prohibit_sleep): New rule. + +2009-11-23 Jim Meyering <meyering@redhat.com> + + tests: avoid test failures when PATH contains an unsearchable directory + * tests/test-lib.sh (sanitize_path_): New function. + Always call it. + +2009-11-22 Dmitry V. Levin <ldv@altlinux.org> + + tests: do not fail on read-only root file system + * tests/touch/not-owner: Handle the case when the root file system is + mounted read-only. + Reported by Solar Designer. + +2009-11-20 Jim Meyering <meyering@redhat.com> + + maint: cfg.mk: remove factored-out ftp host/dir definitions + * cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable): + (gnu_rel_host, url_dir_list): Remove definitions. The defaults, + now provided by maint.mk, are the same. + * gnulib: Update for latest, including those maint.mk additions. + + maint: correct comments in test scripts + * tests/misc/pwd-long: Fix spelling of cygwin1.dll in comment. + * tests/rm/fail-eperm: Likewise. + Reported by Eric Blake. + + maint: don't list "warnings" module explicitly + * bootstrap.conf (gnulib_modules): Remove "warnings", now that + it's pulled in automatically via "manywarnings". + + maint: move xfreopen module to gnulib + * gl/lib/xfreopen.c: Remove file. + * gl/lib/xfreopen.h: Likewise. + * gl/modules/xfreopen: Likewise. + + build: update gnulib submodule to latest + +2009-11-19 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious failures due to insecure directory in PATH + These tests perform no PATH search, and used to simply delete PATH from + the environment. However, that is not portable, as seen on Cygwin, + where cygwin.dll must be resolvable via PATH when starting a sub-shell. + With commit 0cc04241, we took the alternate approach of untainting the + incoming $ENV{PATH}, but that fails when it contains an other-writable + directory. Instead, now we hard code it to '/bin:/usr/bin'. + + * tests/misc/pwd-long: Hard code $ENV{PATH} to a safe value. + * tests/rm/fail-eperm: Likewise. + Reported by Gilles Espinasse, Andreas Schwab, and Bauke Jan Douma. + +2009-11-18 Jim Meyering <meyering@redhat.com> + + build: "make stable" emitted an invalid gnupload command + * cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major. + * README-release: Change another s/major/stable/. + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.1 + * NEWS: Record release date. + + build: update gnulib for Solaris utimens workaround + + build: update gnulib submodule to latest + +2009-11-17 Jim Meyering <meyering@redhat.com> + + maint: remove local gnulib-related patches + * gl/lib/printf-args.c.diff: Remove file. No longer needed. + * gl/lib/vasnprintf.c.diff: Likewise. + + build: update gnulib for Solaris 10 unsetenv work-around + + doc: mention the du/fts vs. NFSv4 mount-point work-around + * NEWS (Changes in behavior): Mention it. + + build: update from gnulib for (un)setenv fixes + +2009-11-16 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + true, false: perform initialization only when argc == 2 + * src/true.c (main): There is no reason to examine argv[0], + call atexit, etc., in the usual case in which we're about to exit. + This has the side effect of making it so that these programs + no longer segfault when subjected to execve abuse. + Before this change, these commands would make "true" segfault: + printf '%s\n' '#include <unistd.h>' 'int main(int c, char**v)' \ + '{ execve (v[1], 0, 0); }' > k.c && gcc k.c && ./a.out $PWD/true + Now it succeeds. Reported by Tetsuo Handa and Bart Van Assche + via Ondřej Vašík in http://bugzilla.redhat.com/537684. + + tail -F can fail to track a file after it's been rotated + Tailing forever and by-name (--follow=name, -F), tail would + sometimes fail to follow a file that had been removed via rename. + If you can't apply this patch and have tail 7.6 or newer, you can + work around the bug via the undocumented --disable-inotify option. + * src/tail.c (tail_forever_inotify): When tailing by name (-F), + do not un-watch a file upon receipt of the IN_MOVE_SELF event. + Reported by Arjan Opmeer in http://bugs.debian.org/548439. + * NEWS (Bug fixes): Mention it. + Also see http://marc.info/?l=coreutils-bug&m=125829031916515 + * tests/Makefile.am (TESTS): Add tail-2/inotify-rotate. + * tests/tail-2/inotify-rotate: New test. + +2009-11-14 Jim Meyering <meyering@redhat.com> + + tests: help-version: exit nonzero when $built_programs is empty + * tests/misc/help-version: Use "Exit 1", rather than "Exit $fail" + with fail defined to 0 when $built_programs is empty. + + build: do use AM_GNU_GETTEXT's "need-formatstring-macros" option + * configure.ac: Revert commit 49741b61 and add a comment. + Reported by Eric Blake. + +2009-11-14 Pádraig Brady <P@draigBrady.com> + + tests: avoid a spurious failure on a loaded system + * tests/misc/timeout-parameters: This test could fail due to + the 1-second timeout expiring before a command of "no_such" + could be exec'd and fail. Increase to 10 seconds. + +2009-11-13 Jim Meyering <meyering@redhat.com> + + build: require gettext-0.17 + * configure.ac: Require gettext-0.17; it was released two years ago. + + build: correct gettext configure-time support + * configure.ac: Use AM_GNU_GETTEXT([external], [need-ngettext]), + rather than AM_GNU_GETTEXT([external], [need-formatstring-macros]). + Reported by Martin Jacobs in + http://thread.gmane.org/gmane.comp.parsers.bison.bugs/3181 + * THANKS: Add his name. + + build: update gnulib to latest, for fixed test-getgroups.c + + tests: avoid a spurious timeout on a heavily-loaded system + * tests/misc/timeout-parameters: This test would fail due to + the 1-second timeout expiring before a command of "." could + be exec'd and fail. Increase to 10 seconds. + +2009-11-13 Eric Blake <ebb9@byu.net> + + build: update gnulib, for getgroups improvements + A replacement getgroups is now guaranteed to exist, but it may + fail with ENOSYS. mgetgroups is moved to gnulib, and now takes + gid_t instead of GETGROUPS_T (but setgroups still needs GETGROUPS_T). + + * gnulib: Update to latest. + * gl/modules/mgetgroups: Delete, moved to gnulib. + * gl/m4/mgetgroups.m4: Likewise. + * gl/lib/mgetgroups.h: Likewise. + * gl/lib/mgetgroups.c: Likewise. + * src/group-list.c (print_group_list): Adjust callers. + * src/id.c (print_full_info): Likewise. + +2009-11-12 Jim Meyering <meyering@redhat.com> + + build: bootstrap: add a comment; generalize autoheader check + * bootstrap: Sync from gnulib and diff. + + build: update gnulib to latest; more *BSD and Solaris work-arounds + +2009-11-11 Jim Meyering <meyering@redhat.com> + + bootstrap: use git_modules_config in one more place + * bootstrap: Make bootstrap's --gnulib-srcdir more useful (for testing). + +2009-11-10 Eric Blake <ebb9@byu.net> + + doc: fix typo + * doc/coreutils.texi (mktemp invocation): Quote shell variable. + +2009-11-09 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest for its FreeBSD fixes + +2009-11-09 Pádraig Brady <P@draigBrady.com> + + ls: fix capability coloring + Capability checking was incorrectly done on just the base name + rather than on the whole path. Consequently there could be both + false positives and negatives when coloring files with capabilities. + Also capability checking was not done at all in certain cases for + non executable files. Note passing absolute rather than relative + names to cap_get_file() reduces the has_capability() overhead + from around 33% to 30%. I.E. ls --color is now around 3% faster. + + * src/ls.c (struct fileinfo): Add a has_capability member. + (print_color_indicator): Refactor to pass just a fileinfo pointer + and a flag to say if we're dealing with a symlink target. + (print_name_with_quoting): Likewise. + (gobble_file): Set has_capability in the fileinfo struct. Also do + a capability check even if executable coloring is disabled. + Ditto for SETUID and SETUID coloring. + Comment on how expensive has_capability() is. + (print_long_format): Adjust to refactored print_name_with_quoting. + (quote_name): Likewise. + (print_file_name_and_frills): Likewise. + * tests/ls/capability: Test the various false positive and negatives. + * THANKS: Add reporter (Ivan Labath). + * NEWS: Mention the fix. + +2009-11-07 Eric Blake <ebb9@byu.net> + + build: consistently use freopen-safer + cat, head, ptx, shuf, tac, tail, tee, tr, and uniq used freopen + on stdout, and were potentially vulnerable. dircolors, du, and + tsort only used it on stdin, which is unaffected by freopen_safer, + but this covers all uses for consistency. + + * cfg.mk (sc_require_stdio_safer): New rule. + * gl/modules/xfreopen (Depends-on): Add freopen-safer. + * gl/lib/xfreopen.c (includes): Use stdio--.h. + * src/ptx.c (includes): Likewise. + * src/shuf.c (includes): Likewise. + * src/uniq.c (includes): Likewise. + * src/dircolors.c (includes): Likewise. + * src/du.c (includes): Likewise. + * src/tsort.c (includes): Likewise. + +2009-11-07 Eric Blake <ebb9@byu.net> + + mktemp: fix bug with -q and closed stdout + If stdin or stdout is closed, then freopen(,stderr) can violate + the premise that STDERR_FILENO==fileno(stderr), which in turn + breaks mktemp -q. + + * bootstrap.conf (gnulib_modules): Add freopen-safer. + * src/mktemp.c (includes): Use stdio--.h. + * tests/misc/close-stdout: Enhance test to catch bug. + +2009-11-07 Jim Meyering <meyering@redhat.com> + + maint: make du's cycle-detection code consistent + * src/du.c (process_file): Revert the du.c-changing part of + commit 8ba5d1a7. Use cycle_warning_required instead. + + chcon, chgrp, chmod and chown now diagnose a directory cycle + * lib/xfts.c (cycle_warning_required): New function. + * lib/xfts.h: Declare it. + * src/chown-core.c (change_file_owner): Diagnose a cycle. + * src/chmod.c (process_file): Likewise. + * src/chcon.c (process_file): Likewise. + * NEWS (Bug fixes): Mention this. + +2009-11-06 Giuseppe Scrivano <gscrivano@gnu.org> + + nproc: A new program to count the available processors + * AUTHORS: Add my name. + * NEWS: Mention it. + * README: Likewise. + * bootstrap.conf (gnulib_modules): Add nproc. + * doc/coreutils.texi (nproc invocation): Add nproc info. + * man/Makefile.am (nproc.1): Add dependency. + * man/nproc.x: New template. + * man/.gitignore: Ignore generated man page. + * po/POTFILES.in: Add src/nproc.c. + * src/.gitignore: Exclude nproc. + * src/Makefile.am (EXTRA_PROGRAMS): Add nproc. + * src/nproc.c: New file. + * tests/Makefile.am (TESTS): Add misc/nproc-{avail,positive}. + * tests/misc/nproc-avail: New file. + * tests/misc/nproc-positive: New file. + +2009-11-06 Jim Meyering <meyering@redhat.com> + + build: move do-release-commit-and-tag to gnulib + * bootstrap.conf (gnulib_modules): Add do-release-commit-and-tag. + * build-aux/do-release-commit-and-tag: Remove file. Now it's in gnulib. + * gnulib: Update submodule to the latest, to get the just-moved script. + +2009-11-05 Eric Blake <ebb9@byu.net> + + mktemp: use more robust means to avoid double-close of stdout + Reverts earlier patch - fflush() can succeed but fclose() fail for + some cases of write failures, and we want to catch those. + + * src/mktemp.c (stdout_closed): New variable. + (maybe_close_stdout): New function, borrowed from dd.c. + (main): Track whether stdout has been closed. + +2009-11-05 Eric Blake <ebb9@byu.net> + + mktemp: enhance test to catch just-fixed typo behavior + Penance for botching the conflict resolution while rebasing my series. + + * tests/misc/mktemp (check_tmp): Test for the bug when wrong parameter + is used. + +2009-11-05 Jim Meyering <meyering@redhat.com> + + mktemp: don't try to close stdout twice + * src/mktemp.c (main): Rather than calling close_stream (which would + make atexit-called close_stdout try to close it a second time), + check for write failure via ferror and fflush. + + mktemp: don't use suff_len in place of #-of-`X's variable + * src/mktemp.c (mkstemp_len, mkdtemp_len): Pass x_len as final + argument, and not suff_len. + +2009-11-05 Eric Blake <ebb9@byu.net> + + mktemp: add suffix handling + Now that mkstemps is supported, we might as well use it. + + * src/mktemp.c (TMPDIR_OPTION): New enum value. + (longopts): Add new option. + (usage): Document it. + (count_trailing_X_s): Rename... + (count_consecutive_X_s): ...to this, and add parameter. + (mkstemp_len, mkdtemp_len): Add parameter. + (main): Implement new option. + (AUTHORS): Add myself. + * AUTHORS (mktemp): Likewise. + * tests/misc/mktemp: Test new option. + * doc/coreutils.texi (mktemp invocation): Document it. + * NEWS: Likewise. + Fixes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316. + +2009-11-05 Eric Blake <ebb9@byu.net> + + build: reflect gnulib changes to tempname + In glibc 2.11 and gnulib, gen_tempname added a parameter + suffixlen (unfortunately, it is typed as int rather than + size_t, for historical compatibility to a poor choice by BSD). + + * gnulib: Import latest changes. + * gl/lib/tempname.h.diff: Accommodate new suffixlen parameter. + * gl/lib/tempname.c.diff (check_x_suffix): Allow for X in suffix + beyond x_suffix_len. + (gen_tempname_len): Add suffixlen parameter. + (__gen_tempname): Update caller. + * src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers. + +2009-11-05 Eric Blake <ebb9@byu.net> + + build: override gnulib tempname via diff + Diffs are more robust than wholesale replacement, because bootstrap + will inform us of any incompatible changes made in upstream gnulib. + + * gl/lib/tempname.h: Change... + * gl/lib/tempname.h.diff: ...to diff. + * gl/lib/tempname.c: Change... + * gl/lib/tempname.c.diff: ...to diff. + +2009-11-05 Eric Blake <ebb9@byu.net> + + mktemp: rearrange --help output + * src/mktemp.c (usage): Align indentation and sort by long + options. Describe valid templates. + Suggested by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548316. + + tests: enhance mktemp test + * tests/misc/mktemp: Add more coverage. + + doc: document mktemp + * doc/coreutils.texi (mktemp invocation): New node. + * TODO: Delete completed task. + + mktemp: don't leave file behind on write failure + * src/mktemp.c (main): Remove just-created file if stdout had + problems. + * bootstrap.conf (gnulib_modules): Add remove. + * tests/misc/close-stdout: Test it. + * NEWS: Document it. + +2009-11-05 Jim Meyering <meyering@redhat.com> + + du: cleanup: remove dead-code vestige of already-removed option + * src/du.c (MEGABYTES_LONG_OPTION, main): Remove vestiges + of already-removed long option, --megabytes. + + du now diagnoses cycles, rather than ignoring them + * src/du.c (symlink_deref_bits): New global, decl moved from ... + (main): ...here. + (process_file): When fts detects a directory cycle that can't + be due to symlinks, report it and arrange to exit nonzero. + * NEWS (Bug fixes): Mention it. + + maint: factor out cycle warning, now that du will use it, too + * src/system.h (emit_cycle_warning): Define. Factored out of... + * src/remove.c (rm_fts): ...here. Use the new macro. + +2009-11-03 Jim Meyering <meyering@redhat.com> + + tests: rm: add test for today's change in behavior + * tests/Makefile.am (root_tests): Add rm/read-only to the list. + * tests/rm/read-only: New file. + + rm -f: ignore EROFS when it's really ENOENT + rm -f must not print a diagnostic for a nonexistent file. However, + most linux-based kernel unlinkat functions set errno to EROFS when + the named file (regardless of whether it exists) would lie on a + read-only file system. remove.c now performs an extra fstatat call + in that case, to determine whether the file exists. + * src/remove.c (excise): Map EROFS to ENOENT, if a file is nonexistent. + Reported by Steven Drake in <http://savannah.gnu.org/bugs/?27923>. + * NEWS (Changes in behavior): Mention it. + + tests: inotify-race: don't let malfunctioning gdb hang the test + * tests/tail-2/inotify-race: Apply timeout to each gdb invocation. + +2009-11-02 Eric Blake <ebb9@byu.net> + + build: avoid some warnings + * gl/lib/mbsalign.c (mbsalign): Mark unused parameter. + * bootstrap.conf (gnulib_modules): Remove obsolete + rename-dest-slash. + * gnulib-tests/Makefile.am (AM_CFLAGS): Reduce set of warnings for + gnulib tests. + * gl/modules/rename-tests.diff (Makefile.am): New file, to add + LIBINTL to LDADD, since we avoid canonicalize-lgpl module. + * gl/lib/regcomp.c.diff (regerror, calc_next) + (build_collating_symbol, parse_bracket_element, build_equiv_class) + (free_tree): Mark unused parameters. + * gl/lib/regex_internal.h.diff (re_string_elem_size_at): New file, + to mark unused parameters. + * gl/lib/printf-args.c.diff (PRINTF_FETCHARGS): New file, to avoid + type mismatch. + * gl/lib/vasnprintf.c (VASNPRINTF): New file, to avoid shadowing + local variable name. + * .gitignore: Ignore temporary build artifacts. + + build: update gnulib submodule to latest, for fewer compiler warnings + +2009-10-31 Jim Meyering <meyering@redhat.com> + + admin: automate one more part of the release process + This script automates the process of updating NEWS, performs + the resulting final commit (thus with a consistent log message), + and applies a signed tag (v$VERSION) to the result. + * build-aux/do-release-commit-and-tag: New script. + * README-release: Document it. + + admin: fix typo in release procedure + * README-release: s/gzip/coreutils/ + +2009-10-30 Jim Meyering <meyering@redhat.com> + + tests: prohibit fail=0 initialization + * cfg.mk (sc_prohibit_fail_0): New rule. + * .x-sc_prohibit_fail_0: New file. + * Makefile.am (syntax_check_exceptions): Distribute the new file. + + tests: factor 350 fail=0 initializations into test-lib.sh + Run this command to remove the factored-out "fail=0" lines. + perl -ni -e '/^fail=0$/ or print' $(g grep -l '^fail=0$') + * tests/test-lib.sh: Initialize fail=0 here, not in 300+ scripts. + * tests/...: nearly all bourne shell scripts + Suggested by Eric Blake. + + tests: remove the less-regular fail=0 assignments manually + * tests/tail-2/assert-2: + * tests/tail-2/assert: + * tests/cp/file-perm-race: + * tests/misc/df: + * tests/misc/truncate-dir-fail: + +2009-10-29 Jim Meyering <meyering@redhat.com> + + tests: don't let a fail=1 env. setting induce unwarranted test failure + * cfg.mk (sc_fail_is_initialized): New rule. + Fix the offenders: + * tests/cp/acl: Set fail=0 * tests/cp/backup-is-src: Likewise. - * tests/cp/cp-HL: Likewise. - * tests/cp/cp-deref: Likewise. - * tests/cp/cp-mv-backup: Likewise. - * tests/cp/cp-parents: Likewise. - * tests/cp/deref-slink: Likewise. - * tests/cp/dir-rm-dest: Likewise. - * tests/cp/dir-slash: Likewise. - * tests/cp/dir-vs-file: Likewise. - * tests/cp/fail-perm: Likewise. - * tests/cp/into-self: Likewise. - * tests/cp/link: Likewise. - * tests/cp/link-no-deref: Likewise. - * tests/cp/link-preserve: Likewise. - * tests/cp/no-deref-link1: Likewise. - * tests/cp/no-deref-link2: Likewise. - * tests/cp/no-deref-link3: Likewise. - * tests/cp/perm: Likewise. - * tests/cp/preserve-2: Likewise. - * tests/cp/r-vs-symlink: Likewise. + * tests/cp/file-perm-race: Likewise. + * tests/cp/reflink-auto: Likewise. * tests/cp/same-file: Likewise. - * tests/cp/slink-2-slink: Likewise. - * tests/cp/special-bits: Likewise. - * tests/cp/symlink-slash: Likewise. - * tests/cut/Makefile.am: Likewise. - * tests/cut/Test.pm: Likewise. - * tests/dd/misc: Likewise. - * tests/dd/not-rewound: Likewise. - * tests/dd/skip-seek: Likewise. - * tests/dd/skip-seek2: Likewise. - * tests/dd/unblock-sync: Likewise. - * tests/dircolors/simple: Likewise. - * tests/du/2g: Likewise. - * tests/du/8gb: Likewise. - * tests/du/Makefile.am: Likewise. - * tests/du/basic: Likewise. - * tests/du/deref: Likewise. - * tests/du/deref-args: Likewise. - * tests/du/exclude: Likewise. - * tests/du/fd-leak: Likewise. - * tests/du/files0-from: Likewise. - * tests/du/hard-link: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: Likewise. - * tests/du/long-sloop: Likewise. - * tests/du/no-deref: Likewise. - * tests/du/no-x: Likewise. - * tests/du/restore-wd: Likewise. - * tests/du/slash: Likewise. - * tests/du/slink: Likewise. - * tests/du/trailing-slash: Likewise. - * tests/du/two-args: Likewise. - * tests/expr/basic: Likewise. - * tests/factor/basic: Likewise. - * tests/fmt/basic: Likewise. - * tests/fmt/long-line: Likewise. - * tests/general/Makefile.am: Likewise. - * tests/general/atgeneral.m4: Likewise. - * tests/general/dd.at: Likewise. - * tests/head/Makefile.am: Likewise. - * tests/head/Test.pm: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/create-leading: Likewise. - * tests/install/d-slashdot: Likewise. - * tests/install/trap: Likewise. - * tests/join/Makefile.am: Likewise. - * tests/join/Test.pm: Likewise. * tests/ln/backup-1: Likewise. - * tests/ln/misc: Likewise. - * tests/ln/sf-1: Likewise. - * tests/ln/target-1: Likewise. - * tests/ls/Makefile.am: Likewise. - * tests/ls/Test.pm: 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/inode: 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-vs-dirent: Likewise. - * tests/ls/symlink-slash: Likewise. - * tests/ls/time-1: Likewise. - * tests/ls-2/tests: Likewise. - * tests/md5sum/basic-1: Likewise. - * tests/md5sum/newline-1: Likewise. - * tests/misc/Makefile.am: Likewise. - * tests/misc/base64: Likewise. - * tests/misc/basename: Likewise. - * tests/misc/cat-proc: Likewise. - * tests/misc/close-stdout: Likewise. - * tests/misc/csplit: Likewise. - * tests/misc/date: Likewise. - * tests/misc/date-sec: Likewise. - * tests/misc/df: Likewise. - * tests/misc/dirname: Likewise. - * tests/misc/expand: Likewise. - * tests/misc/false-status: Likewise. - * tests/misc/fold: Likewise. - * tests/misc/head-c: Likewise. - * tests/misc/head-elide-tail: Likewise. - * tests/misc/head-pos: Likewise. - * tests/misc/mknod: Likewise. - * tests/misc/nice: Likewise. - * tests/misc/nl: Likewise. - * tests/misc/nohup: Likewise. - * tests/misc/paste-no-nl: Likewise. - * tests/misc/pathchk1: Likewise. - * tests/misc/printf: Likewise. - * tests/misc/printf-hex: Likewise. - * tests/misc/pwd-long: Likewise. - * tests/misc/sha224sum: Likewise. - * tests/misc/sha256sum: Likewise. - * tests/misc/sha384sum: Likewise. - * tests/misc/sha512sum: Likewise. - * tests/misc/shuf: Likewise. - * tests/misc/sort-merge: Likewise. - * tests/misc/sort-rand: Likewise. - * tests/misc/split-a: Likewise. - * tests/misc/split-fail: Likewise. - * tests/misc/split-l: Likewise. - * tests/misc/stat-fmt: Likewise. - * tests/misc/stat-printf: Likewise. - * tests/misc/tac-continue: Likewise. - * tests/misc/test-diag: Likewise. - * tests/misc/tty-eof: Likewise. - * tests/misc/wc-files0: Likewise. - * tests/misc/wc-files0-from: Likewise. - * tests/mkdir/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-2: Likewise. + * tests/misc/su-fail: Likewise. + * tests/misc/truncate-owned-by-other: Likewise. * tests/mkdir/p-3: Likewise. - * tests/mkdir/p-slashdot: Likewise. - * tests/mkdir/p-thru-slink: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. + * tests/mkdir/selinux: Likewise. * tests/mkdir/special-1: Likewise. - * tests/mkdir/t-slash: Likewise. - * tests/mkdir/writable-under-readonly: Likewise. - * tests/mv/Makefile.am: Likewise. * tests/mv/acl: Likewise. - * tests/mv/atomic: Likewise. * tests/mv/backup-is-src: Likewise. - * tests/mv/childproof: Likewise. * tests/mv/diag: Likewise. - * tests/mv/dir-file: Likewise. - * tests/mv/dir2dir: Likewise. - * tests/mv/dup-source: Likewise. * tests/mv/force: Likewise. - * tests/mv/hard-2: Likewise. - * tests/mv/hard-3: Likewise. - * tests/mv/hard-4: Likewise. * tests/mv/hard-link-1: Likewise. - * tests/mv/i-1: Likewise. - * tests/mv/i-2: Likewise. - * tests/mv/i-3: Likewise. - * tests/mv/i-4: 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/into-self-4: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + * tests/touch/now-owned-by-other: Likewise. + + remove stray closing comment delimiter, "*/", in previous change + * gl/lib/regexec.c.diff: Fix a typo. + +2009-10-29 Eric Blake <ebb9@byu.net> + + maint: avoid exiting with magic number + Cope with gnulib's new sc_prohibit_magic_number_exit rule. + + * .x-sc_prohibit_magic_number_exit: New file, to add exemptions. + * Makefile.am (syntax_check_exceptions): Distribute it. + * lib/euidaccess-stat.c (main): Fix culprits. + * src/chcon.c (main): Likewise. + * src/runcon.c (main): Likewise. + * src/setuidgid.c (main): Likewise. + +2009-10-29 Jim Meyering <meyering@redhat.com> + + build (--enable-gcc-warnings): enable gcc's -Werror also in lib/ + * configure.ac (GNULIB_WARN_CFLAGS): Define. + * lib/Makefile.am (AM_CFLAGS): Use $(GNULIB_WARN_CFLAGS) + rather than $(WARN_CFLAGS) and add $(WERROR_CFLAGS). + * gl/lib/regcomp.c.diff: New file. + * gl/lib/regex_internal.c.diff: New file. + * gl/lib/regexec.c.diff: New file. + + build: update gnulib submodule to latest + + build: allow whitespace violations in gl/lib/*.diff files + * .gitattributes: Exempt gl/lib/*.diff. + * .x-sc_prohibit_tab_based_indentation: Likewise. + * .x-sc_space_tab:Likewise. + +2009-10-29 Eric Blake <ebb9@byu.net> + + nice, nohup, su: detect write failure to stderr + These programs can print non-fatal diagnostics to stderr prior to + exec'ing a subsidiary program. However, if we thought the situation + warranted a diagnostic, we insist that the diagnostic be printed + without error, rather than blindly exec, as it may be a security risk. + + For an example, try 'nice -n -1 nice 2>/dev/full'. Failure to raise + priority (by lowering niceness) is not fatal, but failure to inform + the user about failure to change priority is dangerous. + + * src/nice.c (main): Declare failure if writing advisory message + to stderr fails. + * src/nohup.c (main): Likewise. + * src/su.c (main): Likewise. + * tests/misc/nice: Test this. + * tests/misc/nohup: Likewise. + * NEWS: Document this. + +2009-10-28 Jim Meyering <meyering@redhat.com> + + doc: tell --enable-gcc-warnings users where to report problems + * README-hacking: Add a caveat for --enable-gcc-warnings. + + build: make doc checks more user-friendly + * doc/Makefile.am (check-texinfo): Begin moving each individual test + into its own rules. + (sc-avoid-builtin, sc-avoid-path): New rules. + Extracted from check-texinfo. + (syntax_checks): Add them. + + doc: avoid failing "make check" + * doc/coreutils.texi (env invocation): s/builtin/built-in/ + +2009-10-28 Pádraig Brady <P@draigBrady.com> + + doc: improve the echo and printf help on escapes + * src/printf.c (usage): Merge strings with echo.c to + aid translators. Move the description for \NNN beside + the other numeric escape codes. Don't mention + "character" as that suggests character conversion. + * src/echo.c (usage): Likewise. + Also mention the \xHH escape sequence. + + echo, printf: interpret \e as the Escape character + Match gcc, perl, bash, ksh, tcsh, ... in supporting \e. + * src/printf.c (print_escape_char): Output \x1B when \e encountered. + * src/echo.c (main): Likewise. + * src/stat.c (print_escape_char): Likewise. + * doc/coreutils.texi (echo invocation): Add \e to the list. + * tests/misc/printf: Verify that \e outputs \x1B. + * NEWS: Mention the change in behaviour. + +2009-10-28 Eric Blake <ebb9@byu.net> + + printenv: ignore bogus variable names + Exposed by env a=b=c printenv a=b. + + * src/printenv.c (main): Silently reject = in names. + * tests/misc/printenv: Test for it. + * NEWS: Document this. + +2009-10-28 Pádraig Brady <P@draigBrady.com> + + maint: avoid "make syntax-check" failure + * src/printenv.c: Remove unused "long-options.h" + +2009-10-28 Eric Blake <ebb9@byu.net> + + doc: turn env comments into documentation + * src/env.c: Convert introductory comments... + * doc/coreutils.texi (env invocation): ...into documentation. + Suggested by Jim Meyering. + +2009-10-28 Eric Blake <ebb9@byu.net> + + env, printenv: add -0/--null option + Allows for unambiguous processing when environment values (or even + non-portable names!) contain newline. + + * src/env.c (longopts): Add new option. + (usage): Document it. + (main): Implement it. + * src/printenv.c (longopts): New variable. + (usage): Document new option. + (main): Implement it. + * doc/coreutils.texi (Common options): New macro optNull. + (du invocation, env invocation, printenv invocation): Use it. + * NEWS: Mention this. + * tests/misc/env-null: New test. + * tests/Makefile.am (TESTS): Run it. + +2009-10-28 Eric Blake <ebb9@byu.net> + + tests: add printenv coverage + * tests/misc/printenv: New test. + * tests/Makefile.am (TESTS): Run it. + * .gitignore: Ignore more cruft. + + tests: fix PATH problems on cygwin + * tests/misc/sort-compress: Remove non-portable over-restriction + of PATH; besides, commit 3ea177e changed sort to no longer default + to gzip. + * tests/rm/fail-eperm: Untaint, rather than clear, PATH. + * tests/misc/pwd-long: Likewise. Also skip test if long path + cannot be created. + (normalize_to_cwd_relative): Use eq rather than ==, since cygwin + perl doesn't properly handle 64-bit ino_t numerically. + +2009-10-27 Eric Blake <ebb9@byu.net> + + tests: clean up tests of env -- handling + The comment in env.c about -- handling has not matched the behavior + in the code since the initial commit back in 1992. + + * src/env.c: Fix bogus comment. + * tests/misc/env: Further tweaks, avoiding PATH problems inherent + in testing -i, and testing program name containing =. + * doc/coreutils.texi (env invocation): Mention that intermediate + program is needed to invoke program with name containing =. + +2009-10-27 Eric Blake <ebb9@byu.net> + + doc: document PATH interactions with env + * doc/coreutils.texi (env invocation): Mention that PATH is + modified prior to exec. + * tests/misc/env: Test this. + + env: reject bogus -u arguments + * src/env.c (main): Use unsetenv rather than putenv to remove + items from environ, and check for failure. + * bootstrap.conf (gnulib_modules): Add unsetenv. + * tests/misc/env: Test this. + * NEWS: Document it. + + maint: let gnulib provide environ + * bootstrap.conf (gnulib_modules): Add environ. + * src/env.c (environ): Delete declaration. + * src/printenv.c (environ): Likewise. + * src/stdbuf.c (environ): Likewise. + * src/su.c (environ): Likewise. + +2009-10-26 Eric Blake <ebb9@byu.net> + + tests: avoid file name not portable to cygwin + * tests/misc/chroot-fail: Use 'no_such', not '...', since cygwin + 1.5 silently strips trailing dots. + * tests/misc/nice-fail: Likewise. + * tests/misc/stdbuf: Likewise. + * tests/misc/timeout-parameters: Likewise. + +2009-10-26 Jim Meyering <meyering@redhat.com> + + tests: rm/one-file-system: work around umount failure + * tests/rm/one-file-system (cleanup_): Unmount a/b, rather than + "$other_partition_tmpdir", to accommodate those who link /etc/mtab + to /proc/mounts. Reported by Gilles Espinasse in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18508 + + tests: adjust new env test not to fail + * tests/misc/env: Create ./-i as a link to our "echo" binary, + rather than as a bourne shell script, so that env can exec it. + Set PATH to ".". + + tests: nice: adjust new tests to work more portably + * tests/misc/nice (tests): Accommodate a nice program for which + "nice -n -1 nice" prints nothing. It should print -1 or (usually) 0. + Otherwise, we'd get syntax errors. + + nice: execute program even when setpriority fails due to EACCES + * src/nice.c (perm_related_errno): New function. + (main): Use it, rather than testing only errno == EPERM. + * NEWS (Bug fixes): Mention it. + +2009-10-25 Pádraig Brady <P@draigBrady.com> + + timeout: don't orphan monitored programs if they ignore specified signals + * src/timeout.c (install_signal_handlers): Handle any user + specified signal, so that if it does not cause the child + to exit then we don't exit and orphan the child. Previously this + for example, would leave an orphan dd process running: + timeout -sUSR1 1s dd if=/dev/zero of=/dev/null + * NEWS: Mention the fix. + +2009-10-23 Eric Blake <ebb9@byu.net> + + tests: test recent status changes + * tests/misc/nice: Enhance test. + * tests/misc/chroot-fail: New test. + * tests/misc/env: Likewise. + * tests/misc/nice-fail: Likewise. + * tests/misc/su-fail: Likewise. + * tests/Makefile.am (TESTS): Run new tests. + + maint: move chroot test + * tests/chroot/credentials: Move... + * tests/misc/chroot-credentials: ...here, to reduce number of + directories. + * tests/Makefile.am (root_tests): Reflect rename. + + tests: enhance stdbuf and timeout tests + * tests/misc/timeout-parameters: Validate exact exit status. + * tests/misc/stdbuf: Likewise. + * tests/misc/timeout: Likewise. Use require_built_. + * tests/misc/arch: Likewise. + + nohup: use EXIT_CANCELED if not POSIXLY_CORRECT + * src/nohup.c (NOHUP_FAILURE): Rename... + (POSIX_NOHUP_FAILURE): ...to this. + (main): Pay attention to POSIXLY_CORRECT, to determine whether to + use status 125 or 127. + * doc/coreutils.texi (nohup invocation): Document this. + * NEWS: Likewise. + * tests/misc/invalid-opt (exit_status): Adjust expected results. + * tests/misc/help-version (expected_failure_status): Likewise. + * tests/misc/nohup: Likewise. + + chroot, env, nice, su: use EXIT_CANCELED for internal failure + * src/chroot.c (main): Use EXIT_CANCELED, not EXIT_FAILURE. + * src/env.c (main): Likewise. + * src/nice.c (main): Likewise. + * src/su.c (change_identity, main): Likewise. + * doc/coreutils.texi (chroot invocation, env invocation) + (nice invocation, su invocation): Document this. + * NEWS: Likewise. + * tests/misc/invalid-opt (exit_status): Adjust expected results. + * tests/misc/help-version (expected_failure_status): Likewise. + + tests: accommodate BSD getopt + * tests/misc/invalid-opt (err_subst): Support alternate spelling. + + build: prohibit improper use of stat and lstat + * cfg.mk (sc_prohibit_stat_macro_address): New rule. + * src/ln.c (do_link): Adjust comment to avoid false positive. + * src/stat.c (do_stat): Likewise. + * src/touch.c (main): Likewise. + + build: update gnulib submodule to latest, for test cleanups + +2009-10-22 Eric Blake <ebb9@byu.net> + + maint: turn on compiler warnings for gnulib tests + * gnulib-tests/Makefile.am (AM_CFLAGS): Add WARN_CFLAGS. + * configure.ac (enable-gcc-warnings): Also use -funit-at-a-time, + to silence gcc 4.3.4 -Wdisabled-optimization. + * .gitignore: Ignore some more files. + +2009-10-22 Jim Meyering <meyering@redhat.com> + + build: prohibit direct use of readlink or readlinkat + * cfg.mk (sc_prohibit_readlink): New rule. + Suggested by Eric Blake. + +2009-10-22 Giuseppe Scrivano <gscrivano@gnu.org> + + tests: add a test for the `tail -f' race condition bug + If new data becomes available between the initial read and when tail + registers the inotify watch descriptors, ensure that it is read + before a new event happens on the file. + * tests/Makefile.am (TESTS): Add tail-2/inotify-race. + * tests/tail-2/inotify-race: New file. + + tail -f: avoid a race condition + * NEWS (Bug fixes): Mention it. + * src/tail.c (check_fspec): New function. + (tail_forever_inotify): Ensure there is no new data before entering the + inotify events wait loop. + +2009-10-22 Eric Blake <ebb9@byu.net> + + build: update gnulib submodule to latest, for utimens enhancements + + tests: ensure touch honors trailing slash + * tests/touch/trailing-slash: New test. + * tests/Makefile.am (TESTS): Run it. + +2009-10-21 Pádraig Brady <P@draigBrady.com> + + md5sum, sha*sum, sum: line-buffer the printed checksums + * src/md5sum.c (main): Set stdout to line buffered mode + to ensure parallel running instances don't intersperse + their output. This adds 5% to the run time in the worst case + of many zero length files, or 2% with standard file sizes. + * src/sum.c (main): Likewise. + * tests/misc/md5sum-parallel: New test for atomic output. + * tests/Makefile.am: Reference it. + * NEWS: Mention the fix + +2009-10-20 Pádraig Brady <P@draigBrady.com> + + maint: issue warnings for more missing optional libraries + * README-hacking: Suggest to use ./configure --quiet so that + any warnings are easily noticed. + * m4/gmp.m4 (cu_GMP): Warn if libgmp is not available. + * m4/jm-macros.m4 (coreutils_MACROS): Normalize the libcap warning. + * m4/xattr.m4 (gl_FUNC_XATTR): Warn if libattr is not available. + +2009-10-19 Jim Meyering <meyering@redhat.com> + + build: use gnulib's isblank module + * bootstrap.conf (gnulib_modules): Add isblank. + * src/system.h (isblank): Don't define. + * m4/check-decl.m4: Don't check for isblank declaration. + * gnulib: Update submodule to latest. + +2009-10-18 Jim Meyering <meyering@redhat.com> + + maint: factor out duplication in currently unused rules + * src/Makefile.am (fs_normalize_perl_subst): Define. + (fs-magic, fs-kernel-magic): Use it. + +2009-10-17 Eric Blake <ebb9@byu.net> + + touch: add -h to change symlink timestamps, where supported + * src/touch.c (no_dereference): New flag variable. + (longopts): Add -h/--no-dereference. + (touch): Add symlink handling. + (usage): Document new option. + (main): Accept new option. + * NEWS: Document it. + * doc/coreutils.texi (touch invocation): Likewise. Also mention + birthtime. + * tests/touch/no-dereference: New test. + * tests/Makefile.am (TESTS): Run it. + +2009-10-17 Jim Meyering <meyering@redhat.com> + + tests: abmon-align: avoid test failure + * tests/ls/abmon-align: Don't remove (1d;) the first line of output. + That was making the test consider only 11 of 12 month names. + Rewrite not to use \(.*\), as that provoked a malfunction in GNU sed + on powerpc Mac OS X (though we don't know yet whether this is due to a + sed bug, or to miscompilation). Nelson Beebe reported the test failure. + + build: update gnulib submodule to latest + +2009-10-15 Jim Meyering <meyering@vm.meyering.net.localdomain> + + build: don't let environment settings perturb build + Setting the envvars, LIB_FDATASYNC, LIB_XATTR or LIB_CRYPT + could cause a configure-time and/or build-time malfunction. + Typically, a configure-time function-in-library test is performed + via code like this: + + LIB_VAR= + AC_SUBST([LIB_VAR]) + prefix_saved_LIBS=$LIBS + AC_SEARCH_LIBS([FUNC], [LIB_NAME], + [test "$ac_cv_search_FUNC" = "none required" || + LIB_VAR=$ac_cv_search_FUNC]) + LIBS=$prefix_saved_LIBS + + However, in each of the files affected by this change, the LIB_VAR= + initialization was omitted. Thus, when set in the environment, its + value would propagate into generated Makefiles when FUNC is not found + in LIB_NAME. + * m4/jm-macros.m4 (coreutils_MACROS): Initialize AC_SUBST'd var + * m4/lib-check.m4 (cu_LIB_CHECK): Likewise. + * m4/xattr.m4 (gl_FUNC_XATTR): Likewise. + +2009-10-13 C de-Avillez <hggdh2@gmail.com> + + tail: add add missing backslash at the end of a line in usage + * src/tail.c (usage): Add missing backslash at the end of a line. + +2009-10-12 Eric Blake <ebb9@byu.net> + + tail: tweak usage for more clarity + * src/tail.c (usage): Spell out -n +K. + * THANKS: Update. + Reported by Jan-Pawel Wrozstinski. + +2009-10-10 Eric Blake <ebb9@byu.net> + + touch: optimize use of utimens + * src/touch.c (main): Use UTIME_NOW rather than calling gettime. + (touch): Use UTIME_OMIT rather than stat. + + copy: allow symlink timestamp preservation on more systems + * src/copy.c (utimens_symlink): Simplify by using lutimens. + * m4/jm-macros.m4 (coreutils_MACROS): Drop utimensat; gnulib does + this for us. + * tests/cp/preserve-slink-time: Recognize lutimes support. + + build: update gnulib submodule to latest, for utimens improvements + +2009-10-10 Jim Meyering <meyering@redhat.com> + + tests: adjust tail-2/pid to work around FreeBSD 6.1 failure + * tests/tail-2/pid: Run tail -f --pid=... on an actual file, not on + /dev/null, to avoid this failure on FreeBSD 6.1: tail: /dev/null: + cannot change nonblocking mode: Inappropriate ioctl for device + +2009-10-10 Eric Blake <ebb9@byu.net> + + maint: touch up previous LDADD patch + * src/Makefile.am (dir_LDADD): Delete; the ls_LDADD line covers this. + +2009-10-10 Jim Meyering <meyering@redhat.com> + + build: build uname(1) unconditionally + Before, on a system without the uname function, the build + system would detect that and not build/install a uname program. + Now that gnulib guarantees a uname function, ... + * configure.ac: Don't check for the uname function. + * src/Makefile.am (build_if_possible__progs): Move uname... + (EXTRA_PROGRAMS): ...to this list. + + maint: list program names one per line + * src/Makefile.am (EXTRA_PROGRAMS): List them one per line. + (build_if_possible__progs): Likewise. + + build: ls: fix link failure due to missing -lacl + * src/Makefile.am (ls_LDADD): Re-add $(LIB_ACL). + Inadvertently-removed by commit 78c93601. + +2009-10-10 Eric Blake <ebb9@byu.net> + + maint: touch up previous LDADD patch + * src/Makefile.am (stdbuf_LDADD): Add missing primer. + (hostname_LDADD, uname_LDADD): Add GETHOSTNAME_LIB. + * bootstrap.conf (gnulib_modules): Add uname. + + maint: improve additional library tracking + * src/Makefile.am (LDADD): Refactor, to make per-library additions + to individual programs easier to maintain. + +2009-10-09 Jim Meyering <meyering@redhat.com> + + chcon: don't disable just because SELinux is disabled + * src/chcon.c (main): Now that gnulib provides getfilecon wrappers, + we can revert most of the 2009-10-05 commit 3a97d664, "chcon: exit + immediately if SELinux is disabled", since chcon is still useful as + long as the file system provides handlers for the security.* + name space. gnulib's getfilecon wrappers ensure that an offending + context now evokes a return value of -1. + Prompted by comments from Stephen Smalley in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18394 + * NEWS (Bug fixes): Mention it. + + ls: remove explicit getfilecon work-around + * src/ls.c (gobble_file): Remove l?getfilecon work-around, + now that the gnulib wrappers handle it for us. + + build: update gnulib submodule to latest, for getfilecon wrappers + +2009-10-09 Eric Blake <ebb9@byu.net> + + maint: use X2NREALLOC in more places + * src/chroot.c (set_additional_groups): Use X2NREALLOC rather than + x2nrealloc. + * src/factor.c (emit_factor): Likewise. + * src/setuidgid.c (main): Likewise. + + maint: remove unused macros and declarations + * src/system.h (EDQUOT, EISDIR, ENOSYS, EOVERFLOW, F_OK, X_OK) + (W_OK, R_OK): Delete; macros provided by gnulib. + (includes): Gnulib guarantees both <time.h> and <sys/time.h>, in + either order. + (free, malloc, memchr, realloc, getenv, lseek): Delete, gnulib + guarantees these declarations. + * m4/check-decl.m4 (gl_CHECK_DECLS): Delete checks now done by + gnulib. + + maint: move timeout exit statuses + * src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Remove as + macros... + * src/system.h (EXIT_TIMEDOUT, EXIT_CANCELED): ...and provide as + enum values instead. + * src/stdbuf.c (EXIT_CANCELED): Delete. + + stat: test recent patch + * tests/misc/stat-slash: New test. + * tests/Makefile.am (TESTS): Run it. + +2009-10-08 Eric Blake <ebb9@byu.net> + + stdbuf: improve path search + * src/stdbuf.c (set_program_path): Use gnulib methods for better + file name handling. + * bootstrap.conf (gnulib_modules): Add xreadlink. + + stat: work with recent gnulib changes + * src/stat.c (do_stat): Don't mask function-like stat macro. + +2009-10-08 Jim Meyering <meyering@redhat.com> + + stat: add support for many more file system types + * src/stat.c (human_fstype): Add the following FS types, + from <linux/magic.h>: afs, anon-inode FS, btrfs, cgroupfs, + cramfs-wend, debugfs, futexfs, inotifyfs, minux3, securityfs, + selinux, xenfs. + Also add "nilfs". + * src/Makefile.am (fs-kernel-magic): New rule. + * NEWS (Bug fixes): Mention this. + + stat: recognize CIFS and HFS file system types + * src/stat.c (human_fstype) [CIFS, HFS]: Add new file system types. + Prompted by a report from Stuart Kemp. + Normalize the form of a few hexadecimal magic numbers. + Alphabetize on S_MAGIC_ case names. + * src/Makefile.am (fs-magic-compare, fs-def, fs-magic): New rules, to + automate comparison of our list with that in the Linux statfs man page. + * NEWS (Bug fixes): Mention it. + +2009-10-07 Guenter Knauf <lists@gknw.net> + + md5sum, sha*sum: also accept openssl checksum syntax + * src/md5sum.c (split_3): Accept openssl checksum syntax, which + differs only by two spaces from that of the bsd checksum tools: + openssl: MD5(f)= d41d8cd98f00b204e9800998ecf8427e + bsd: MD5 (f) = d41d8cd98f00b204e9800998ecf8427e + +2009-10-06 Jim Meyering <meyering@redhat.com> + + maint: make release-making instructions more generic + * README-release: Make instructions more generic. + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 8.0 + * NEWS: Record release date. + + build: update gnulib submodule to latest + +2009-10-06 Ondřej Vašík <ovasik@redhat.com> + + chcon: exit immediately if SELinux is disabled + This change happens to avoid an abort in chcon when SELinux is + disabled while operating on a file with an "unlabeled" context from + back in 2006. However, that same abort can still be triggered by the + same file when running chcon with SELinux enabled. This bug in chcon + will be fixed in a subsequent commit via a getfilecon wrapper. See + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/18378/focus=18384 + for how to correct your disk attributes to avoid triggering this bug. + * src/chcon.c (main): Exit immediately if SELinux is disabled. + Reported in http://bugzilla.redhat.com/527142 by Yanko Kaneti. + * src/runcon.c (main): Do not hardcode program name in error message. + * THANKS: Update. + +2009-10-03 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2009-10-02 James R. Van Zandt <jrvz@comcast.net> + + dircolors: highlight .cgm and .emf as images + * src/dircolors.hin: Add .cgm, .emf. + * THANKS: Update. + +2009-10-02 Jim Meyering <meyering@redhat.com> + + maint: remove obsolete syntax-check exclusion + * cfg.mk (local-checks-to-skip): Remove strftime-check. + +2009-10-02 Pádraig Brady <P@draigBrady.com> + + tail: avoid a race where we could miss new data with --pid + * src/tail.c (tail_forever, tail_forever_inotify): Close a race in + tail_forever_inotify where new data written after the file check by + a now dead process, but before the pid check, is not output. We use + the POSIX guarantee that read() and write() are serialized wrt each + other even in separate processes, to assume full file consistency + after exit() and so poll for new data _after_ the writer has exited. + This also allows us to not redundantly _wait_ for new data if the + process is dead. + * tests/tail-2/pid: Remove the now partially invalid sub second sleep + check as we now don't unconditionally wait, and replace it with a check + for the redundant sleep. Also clarify some of the existing comments. + * NEWS: Mention the fix. + +2009-10-02 Jim Meyering <meyering@redhat.com> + + maint: move gnu-web-doc-update script to gnulib + * bootstrap.conf (gnulib_modules): Add gnu-web-doc-update. + Remove gendocs, since gnu-web-doc-update depends on it. + * gnu-web-doc-update: Remove file, now that we get it from gnulib. + + build: update gnulib submodule to latest + +2009-09-30 Jim Meyering <meyering@redhat.com> + + tests: tail-2/pid: use a 3-second timeout, not 1 + * tests/tail-2/pid: When using the timeout program to ensuring that + tail -s.1 --pid=$PID_T_MAX does not wait forever, use a timeout longer + than 1 second. A 1-second timeout could be too short on a very busy + system, and result in a timeout, and hence false-positive failure. + + 2009-09-30 Jim Meyering <meyering@redhat.com> + +2009-09-30 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + + build: translate diagnostics from two new files + * po/POTFILES.in: Add two new files: lib/siglist.h, lib/strsignal.c + + build: now that we use the lock module, don't exclude lock.m4 + * bootstrap.conf: Don't exclude lock.m4. + +2009-09-30 Pádraig Brady <P@draigBrady.com> + + ls: always print "?" for allocated size of a dereferenced dangling symlink + Previously for `ls -Ls` (but not `ls -Lsl`), we referenced + the st_blocks returned from the previous failed stat() call. + This undefined value was seen to be 0 for dangling symlinks at least. + * src/ls.c (print_file_name_and_frills, length_of_file_name_and_frills): + Don't use st_blocks if the previous stat() failed + * tests/ls/dangle: Add a test case + * NEWS: Mention the fix, and roll up related items into a single entry. + +2009-09-30 Jim Meyering <meyering@redhat.com> + + build: use gnulib's freopen module + * bootstrap.conf (gnulib_modules): Add freopen, strsignal, fsync. + Exposed via make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \ + |perl -lne '/.* use gnulib module (\S+).*/ and print $1' \ + |sort |uniq -c|sort -nr + (avoided_gnulib_modules): Don't avoid the "lock" module. + Now it's required, as a dependency of the strsignal module. + +2009-09-29 Jim Meyering <meyering@redhat.com> + + stat: interpret "-" as standard input + * src/stat.c (do_stat): Interpret a command line argument of "-" + to mean "standard input", like many other tools do. + (do_statfs): Fail upon any attempt to use "-". + * NEWS (Changes in behavior): Mention it. + * tests/misc/stat-hyphen: New test, to exercise the above. + * tests/Makefile.am (TESTS): Add misc/stat-hyphen. + + ls: don't use an undefined struct stat after failed stat/lstat + * src/ls.c (format_inode): Access f->stat only if f->stat_ok is set. + * NEWS (Bug fixes): Mention it. + Improved-by: Pádraig Brady <P@draigBrady.com> + + ls: print "?", not "0" as inode of dereferenced dangling symlink + ls prints inode numbers two ways: for long (-l) listings, + and for short ones, e.g., ls -li and ls -i. The code to print + long listings properly printed "?" when the inode was unknown, + but the code for handling short listings would print 0 instead. + Factor out the formatting code into a new function so ls prints + the right string ("?") from both places: + * NEWS (Bug fixes): Mention it. + * src/ls.c (format_inode): New function. + (print_long_format): Use it here. + (print_file_name_and_frills): Use it here, too. + * tests/ls/dangle: Exercise this fix. + Reported by Yang Ren in http://bugzilla.redhat.com/525400 + + ls: with -LR, exit with status 2 upon detecting a cycle + * src/ls.c (print_dir): Diagnosing the cycle is not enough. + Also set exit status to 2. This is what Solaris' /bin/ls does, too. + * tests/ls/infloop: Rework test: match both expected stdout and stderr. + Require an exit status of 2 in this case. + * doc/coreutils.texi (ls invocation): Mention that a loop provokes + in an exit status of 2. + * NEWS (Bug fixes): Mention it. + Reported by Yang Ren in http://bugzilla.redhat.com/525402. + * THANKS: Correct ordering of Yang Ren's names. + +2009-09-26 Jim Meyering <meyering@redhat.com> + + maint: factor coreutils-specific code out of bootstrap + * bootstrap (bootstrap_epilogue): Define a default, empty function. + Remove coreutils-specific code, and instead, + invoke this new function at the end of this script. + * bootstrap.conf (bootstrap_epilogue): Define, to override the default. + +2009-09-25 Eric Blake <ebb9@byu.net> + + cp, mv: use linkat to guarantee semantics + * src/copy.c (copy_internal): Use linkat, not link. + + ln: add -L/-P options + * src/ln.c (STAT_LIKE_LINK): Delete. + (logical): New flag. + (long_options): Add -L, -P. + (usage): Mention them. + (main): Choose between them. + (do_link): Perform correct action. + * tests/ln/misc: Move hard-to-sym portion of test... + * tests/ln/hard-to-sym: ...into new test, and add more. + * tests/Makefile.am (TESTS): Run new test. + * NEWS: Document this. + * doc/coreutils.texi (link invocation, ln invocation): Likewise. + * bootstrap.conf (gnulib_modules): Add linkat. + + build: update gnulib submodule to latest + +2009-09-23 Pádraig Brady <P@draigBrady.com> + + maint: Use logical rather than bitwise operators on bools + This is because bitwise operators are: + - confusing and inconsistent in a boolean context + - non short circuiting + - brittle in C89 where bool can be an int (so > 1) + + maint: expr: avoid compiler warnings without GMP + * src/expr.c (mpz_clear, mpz_get_str, mpz_out_str) + [!HAVE_GMP]: Reference unused arguments. + +2009-09-23 Eric Blake <ebb9@byu.net> + + build: update gnulib submodule to latest + + maint: summarize gnulib changes + * NEWS: Provide a blurb about recent gnulib improvements. Fix typo + in readlink blurb. + +2009-09-23 Jim Meyering <meyering@redhat.com> + + doc: ls: further improve --help message re --color + * src/ls.c (usage): Correct grammar, change voice, shorten. + Inspired by a report from Bruno Schulenberg. + +2009-09-23 Eric Blake <ebb9@byu.net> + + readlink: pick up gnulib changes to readlink -f + * bootstrap.conf (obsolete_gnulib_modules): Move rename... + (gnulib_modules): ...here. Add symlink. + * NEWS: Document the change in readlink. + * doc/coreutils.texi (readlink invocation): Likewise. + * tests/readlink/can-f: Update test to new semantics, and add test + of loop. + +2009-09-23 Jim Meyering <meyering@redhat.com> + + maint: df.c: adapt to newer gnulib + * src/df.c: Don't include "canonicalize.h". No longer needed, + since canonicalize_file_name is now guaranteed to be declared + in <stdlib.h>, thanks to gnulib. + + build: update gnulib submodule to latest + +2009-09-22 Pádraig Brady <P@draigBrady.com> + + doc: stdbuf: mention it can have a non standard exit status + * doc/coreutils.texi (Exit status): Add stdbuf to the list + + maint: uptime: fix a theoretical compile warning + * src/uptime.c (print_uptime) [!HAVE_UTMPX_H && !HAVE_UTMP_H]: + Reference possibly unused arguments. + + ls: fix a performance regression + * src/ls.c (print_color_indicator): This reinstates commit f3f1ccfd, + 21-10-2008, "ls: make it possible to disable file capabilities checking" + which was inadvertently reverted with commit 3a169f4c, 14-09-2009, + "ls: handle disabling of colors consistently ...". + +2009-09-22 Eric Blake <ebb9@byu.net> + + build: avoid compiler warnings on cygwin 1.5 + * src/copy.c (utimens_symlink): Avoid unused variables. + * src/su.c (getusershell): Rely on gnulib for prototype. + +2009-09-21 Jim Meyering <meyering@redhat.com> + + doc: ls: add an article, "the" + * src/ls.c (usage): Tweak wording. + +2009-09-21 Pádraig Brady <P@draigBrady.com> + + ls: handle disabling of colors consistently for all file types + * src/ls.c (print_color_indicator): Use consistent syntax for + all file and directory subtypes, and fall back to the color + of the base type if there is no enabled color for the subtype. + This allows turning off specific colors for o+w dirs for example. + * tests/ls/color-dtype-dir: Add a case to test that turning off + coloring for o+w directories, falls back to standard dir color. + * NEWS: Mention the fix + Introduced by commit ac467814, 2005-09-05, + "Colorize set-user-ID ... files and sticky ... directories." + + doc: ls: make help for --color more concise and accurate + * src/ls.c (usage): Shorten the --color ancillary info by + two lines, while replacing --color=none with --color=never. + Mention "always" is the default parameter of the --color option, + along with the primary help for that option. + Mention the ancillary --color info in the --color primary help. + + doc: normalize and add missing entries to texinfo menu + * doc/coreutils.texi: Add the missing arch, base64, link, readlink, + and unlink entries. Also remove extraneous '.' from some entries + and try to align all entries on the same column. + * THANKS: Add Benno Schulenberg. + + doc: mention the texinfo documentation in --help + * src/system.h: Rename emit_bug_reporting_address() to + emit_ancillary_info() and update it to not print the translation + project address in en_* locales, and _do_ print it in the 'C' + (and other) locales so that it's included in the default man page. + Also mention how to invoke the texinfo documentation for each command. + Also move the "hard-locale.h" include to the 8 files that now use it. + * man/help2man: Strip the newly added texinfo reference from the + --help output as a more verbose version is already added by help2man. + Suggestion from C de-Avillez + +2009-09-21 Jim Meyering <meyering@redhat.com> + + maint: automate the web-doc updating procedure + * gnu-web-doc-update: New script, destined for gnulib. + * README-release: Refer to the new script. + +2009-09-19 Jim Meyering <meyering@redhat.com> + + dircolors: arrange to highlight names with the .lz suffix + * src/dircolors.hin: Add .lz, for GNU lzip. + Suggested by Matias A. Fonzo. + + mktemp: adapt to new, 3-argument gen_tempname_len + * src/mktemp.c (mkstemp_len, mkdtemp_len): Update callers of + gen_tempname_len. + * gl/lib/tempname.c, gl/lib/tempname.h: Rebase against recently + API-modified copy of tempname module in gnulib. + Reported by Lluís Batlle. + +2009-09-17 Jim Meyering <meyering@redhat.com> + + build: merge bootstrap changes from gnulib + * bootstrap: Update from gnulib. + +2009-09-17 Eric Blake <ebb9@byu.net> + + rm, rmdir: improve cross-compilation support + * bootstrap.conf (gnulib_modules): Drop rmdir-errno. + * src/rmdir.c (errno_rmdir_non_empty): Check both cases allowed by + POSIX, rather than relying on configure-time check that might + fail during cross-compilation. Reverts commit 9b6eb98d41. + +2009-09-15 Ondřej Vašík <ovasik@redhat.com> + + cp: fix a probably redundant chmod when setting xattrs + * src/copy.c (copy_reg): Fix initial value of access_changed variable. + This was introduced by Pádraig Brady in commit cca83faf, 2009-09-14, + "cp,mv: preserve extended attributes even for read-only files" + +2009-09-14 Jim Meyering <meyering@redhat.com> + + doc: NEWS: mention origin of touch -t ....60 bug + * NEWS: It is an old bug. + + doc: touch, document that it accepts .60 + * doc/coreutils.texi (touch invocation): Document that SS may be 60. + + touch: don't reject "60" as number of seconds in a legacy time stamp + A valid command like "touch -t 197101010000.60 F" would fail due + to the suffix of ".60". This bug is fixed via the latest change + to gnulib's posixtm module. + * tests/touch/60-seconds: New test. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + + build: update gnulib submodule to latest, for fixed posixtm module + + maint: use #!/bin/sh consistently in shell-based test scripts + * tests/misc/sort-continue: Change first line to standard #!/bin/sh, + not #!/bin/bash (though it doesn't matter, since each is invoked + via $(SHELL) dir/test-name. + +2009-09-14 Pádraig Brady <P@draigBrady.com> + + tests: fix dd/skip-seek-past-file to work on ecryptfs + * tests/dd/skip-seek-past-file: Require sparse support + to ensure that when we're checking if we can create an + $OFF_T_MAX length file, that we don't actually allocate + any space. This was an issue on ecryptfs and was reported + by Bert Wesarg. + +2009-09-14 Ondřej Vašík <ovasik@redhat.com> + + cp,mv: preserve extended attributes even for read-only files + * src/copy.c (copy_reg): Temporarily set u+rw on the destination file + to allow GNU/Linux to set xattrs. + * tests/misc/xattr: Test that change. + * NEWS (Bug fixes): Mention it. + Reported by Ernest N. Mamikonyan. + +2009-09-14 Jim Meyering <meyering@redhat.com> + + doc: improve timeout's --help message + * src/timeout.c (usage): Improve --help description. + +2009-09-13 Jim Meyering <meyering@redhat.com> + + maint: use consistent cpp indentation in all .c files + * src/stty.c: Make cpp indentation reflect nesting. + * src/factor.c: Likewise. + + doc: NEWS: say quadratic and linear, rather than O(N^2) and O(N) + * NEWS: Use a slightly less technical description. + Suggested by Andreas Schwab. + + doc: improve NEWS + * NEWS (rm -r, without -f): Mention that the N in "O(N)" represents + hierarchy depth. Suggested by Ralf Wildenhues. + (rm -r, standards conformance): Make wording more accurate. + +2009-09-11 Jim Meyering <meyering@redhat.com> + + id: don't print context=... when POSIXLY_CORRECT is set + * src/id.c (print_full_info) [POSIXLY_CORRECT]: Don't print context. + Reported by Ulrich Drepper. + * NEWS (Changes in behavior): Mention it. + * doc/coreutils.texi (id invocation): Document that id also prints the + security context, when possible, and when POSIXLY_CORRECT is not set. + * tests/id/no-context: New file. Test for this. + * tests/Makefile.am (TESTS): Add it. + +2009-09-11 Eric Blake <ebb9@byu.net> + + rm: avoid compiler warning + * src/remove.c (rm_fts): Don't allow fall-through when assertions + are disabled. + + euidaccess-stat: remove unnecessary macros + * lib/euidaccess-stat.c (F_OK, R_OK, W_OK, X_OK): Delete; now + guaranteed by gnulib. + + rm: use gnulib faccessat + * bootstrap.conf (gnulib_modules): Add faccessat. Replace strdup + with strdup-posix. + * m4/jm-macros.m4 (coreutils_MACROS): Revert previous change, now + that gnulib does it for us. + * src/remove.c (write_protected_non_symlink): Use faccessat in + more situations. + +2009-09-11 Jim Meyering <meyering@redhat.com> + + rm: improve efficiency of rm -r (without -f) from O(N^2) to O(N) + where N is the depth of the deepest hierarchy rm is processing. + * src/remove.c (write_protected_non_symlink): Use faccessat to + avoid O(N)-per-entry cost of calling euidaccess. + * m4/jm-macros.m4 (coreutils_MACROS): Check for faccessat. + * NEWS (Improvements): Mention it. + + build: placate gcc's new -Wskip-jump-init + * remove.c (rm_fts): Put braces around each of the two offending blocks. + * configure.ac: Don't turn off -Wjump-misses-init. + With the rewrite of remove.c, it is no longer needed. + + rm: rewrite to use fts + * remove.c: Don't include "unlinkdir.h"; no longer used. + Do not include <setjmp.h> or "cycle-check.h". Likewise. + Include "xfts.h". + (dir_name, dir_len): Remove definitions. + (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Likewise. + (INODE_SORT_DIR_ENTRIES_THRESHOLD, NEED_REWIND, D_TYPE): Likewise. + (struct dirstack_state, Dirstack_state): Likewise. + (g_buf, g_n_allocated): Remove declarations. + (hash_freer, hash_compare_strings, rm_malloc): Remove functions. + (rm_free, push_dir, top_dir, pop_dir, right_justify): Likewise. + (full_filename0, xfull_filename, full_filename_): Likewise. + (AD_stack_height, AD_stack_top, AD_stack_pop, AD_stack_clear): Likewise. + (obstack_init_minimal, ds_init, ds_clear, ds_free): Likewise. + (AD_pop_and_chdir, AD_ensure_initialized, AD_mark_helper): Likewise. + (AD_mark_as_unremovable, AD_mark_current_as_unremovable): Likewise. + (AD_push_initial, AD_push, AD_push, AD_is_removable): Likewise. + (write_protected_non_symlink): Change 3rd parameter from + dirstack_state "ds" to full_name. + (prompt): Adjust parameters. Now, state comes from FTS/FTSENT pair. + Those replace fd_cwd and "ds". Remove "filename". Remove pdirent_type + in favor of new "is_dir" parameter. Rename is_empty to is_empty_p. + (DO_RMDIR, DO_UNLINK): Remove definitions. + (remove_entry, fd_to_subdirp, compare_ino): Remove functions. + (dirent_count, dirent_inode_sort_may_be_useful): Likewise. + (preprocess_dir): Likewise. + (fts_skip_tree, mark_ancestor_dirs, excise, rm_fts): New functions. + (remove_cwd_entries, remove_dir, rm_1): Remove functions. + (rm): Rewrite as a simple loop calling fts_read and dispatching + each entry via rm_fts. + * src/rm.c (main): Adapt to new signature of rm(). + * bootstrap.conf (gnulib_modules): Remove unlinkdir, no longer used. + * src/Makefile.am (sc_tight_scope): Also recognize an extern "enum" + declaration. + * tests/rm/empty-name: Adjust expected output to match new diagnostic. + * NEWS (Improvements): Mention it. + + maint: doc: adjust README-release + * README-release: Remove mention of bootstrap's old + --gnulib-srcdir=/gnulib option. No longer needed, and its + use can lead to subtle problems. + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 7.6 + * NEWS: Record release date. + +2009-09-10 Jim Meyering <meyering@redhat.com> + + link,ln: use gnulib's link module to work around Solaris 10 deficiency + Before this change, :>f; ln -T f no-such/ would succeed on Solaris 10. + After it, ln fails, as it should: ln: accessing `z/': Not a directory + The command, link f no-such/, had the same problem on that system. + * bootstrap.conf (gnulib_modules): Add "link". + * tests/ln/slash-decorated-nonexistent-dest: New test. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Portability): Mention the improvement. + + build: update gnulib submodule to latest + +2009-09-10 Ondřej Vašík <ovasik@redhat.com> + + doc: improve various BLOCKSIZE and SIZE help + * doc/coreutils.texi (multiplierSuffixes): Mention that + the suffix can be specified without a leading number + * src/split.c (usage): Refactor SIZE help to within a function + * src/truncate.c (usage): Likewise + * src/ls.c (usage): Likewise + * src/df.c (usage): Likewise. Also add a function with BLOCKSIZE help + * src/du.c (usage): Likewise. + * src/system.h: Define 2 functions to emit common help text + This was prompted by https://bugzilla.redhat.com/show_bug.cgi?id=511188 + +2009-09-10 Jim Meyering <meyering@redhat.com> + + dd conv=unblock: print final newline consistently + * src/dd.c (dd_copy) [C_UNBLOCK]: Always print the final newline for + non-empty output, not just when output size is a multiple of cbs. + * doc/coreutils.texi (dd invocation) [conv=unblock]: Mention that dd + prints a newline after each output record, not just when replacing + trailing spaces. + Reported by Ulrich Drepper. + * tests/dd/unblock: New file. Test for this. + * tests/Makefile.am (TESTS): Add it. + * NEWS (Bug fixes): Mention it. + +2009-09-09 Jim Meyering <meyering@redhat.com> + + maint: make cfg.mk slightly more generic + * cfg.mk (url_dir_list): Don't hard-code "coreutils". Use $(PACKAGE). + +2009-09-08 Jim Meyering <meyering@redhat.com> + + * gnulib: Update submodule to latest. + + tail: make the new piped-stdin test as portable as the old one + * src/tail.c (main): Adapt piped-stdin test to use the same isapipe, + test as was used in the preceding POSIXLY_CORRECT condition. + Remove the now-subsumed POSIXLY_CORRECT test. + Reported by Pádraig Brady. + * doc/coreutils.texi (tail invocation): Document this change. + * NEWS (Changes in behavior): Reclassify, clarify. + +2009-09-08 Pádraig Brady <P@draigBrady.com> + + tests: tail-2/assert: reduce risk of race condition + * tests/tail2/assert: This reverts commit be853120, 25-08-2009, + "tests: tail-2/assert: avoid risk of race condition" + kill -0 doesn't send a signal and so will only confirm that the + background process was forked, which we know already because + we have its pid. + + tests: address a race condition in misc/cat-buf + * tests/misc/cat-buf: Increase the delay between writes + to decrease the chance that dd will read both at once. + Since the test is inherently racy, print a warning via + skip_test_ rather than failing outright. + Reported by Jim Meyering. + +2009-09-07 Jim Meyering <meyering@redhat.com> + + tail: syntax-only: use "false", rather than equivalent, 0 + * src/tail.c (record_open_fd): Initialize "->ignore" to false, not 0. + + tail: ignore -f for piped-stdin, as POSIX requires + * src/tail.c (main): Tailing a pipe "forever" is not useful, + and POSIX specifies that tail ignore the -f when there is no + file argument and stdin is a FIFO or pipe. So we do that. + In addition, GNU tail excludes "-" arguments from the list of files + to tail forever, when the associated file descriptor is connected + to a FIFO or pipe. Before this change, ":|tail -f" would hang. + Reported by Ren Yang and Ulrich Drepper. + * tests/tail-2/pipe-f: Test for this. + * tests/tail-2/pipe-f2: Ensure tail doesn't exit early for a fifo. + * tests/Makefile.am (TESTS): Add these tests. + * NEWS (POSIX conformance): Mention it. + +2009-09-07 Pádraig Brady <P@draigBrady.com> + + tests: tail-2/flush-initial should not rely on stdbuf + * tests/tail-2/flush-initial: stdbuf is not built on all systems. + In any case it's redundant since stdout will automatically be buffered + since we're redirecting to file. So just call tail without using stdbuf. + +2009-09-07 Jim Meyering <meyering@redhat.com> + + tail: don't give up on inotify mode for an already-ignored "-" + * src/tail.c (main): Adjust today's change to honor the + F[i].ignore flag that may have been set in tail_file. + + tests: misc/cat-buf: clean up syntax + * tests/misc/cat-buf: Don't suppress dd's stderr. + Remove useless quotes. + + tests: ls/color-clear-to-eol: append NL to accommodate old sed + * tests/ls/color-clear-to-eol: Some vendor sed programs fail + to operate on lines that are not NL-terminated. + This affects at least Solaris 10's /bin/sed. + Reported by Pádraig Brady. + + tests: tail-2/infloop-1: avoid rare test failure on a busy system + * tests/tail-2/infloop-1: Sleep 3 seconds, not 1, but in increments + of 0.1 second. Before, this test would fail ~1 time in 20 via + "make -j9 check" on a quad-core system. + Correct comment. + + build: update gnulib submodule to latest + + doc: tweak NEWS + * NEWS (dd): Tweak wording. + Two blank lines between sections. + + tail -f: handle "-"/stdin once again + * src/tail.c (main) [HAVE_INOTIFY]: When stdin (i.e., "-", or no args, + but not /dev/stdin) is specified on the command line, don't use inotify. + Reported by Bill Brelsford in <http://bugs.debian.org/545422>. + * tests/tail-2/follow-stdin: New file. Test for this. + * tests/Makefile.am (TESTS): Add the test. + * NEWS (Bug fixes): Mention it. + This bug was introduced in coreutils-7.5 via commit ae494d4b, + 2009-06-02, "tail: use inotify if it is available". + +2009-09-06 Jim Meyering <meyering@redhat.com> + + tests: tail-2/flush-initial: correct race avoidance code + * tests/tail-2/flush-initial: Wait for the file to be nonempty, + not for the process. Based on a suggestion from Pádraig Brady. + + tests: ls-misc: don't let a bogus umask cause test failure + * tests/misc/ls-misc: Set umask to 022. A umask setting permitting + world-write access, e.g., umask o+w, would cause this test to fail. + Report by Mathias Brodala and analysis by Tom Fitzhenry in + <http://bugs.debian.org/544965>. + + tail: flush initial output before possibly blocking + * src/tail.c (main): Flush any output from tail_file, + before calling tail_forever_inotify, which can block. + * tests/tail-2/flush-initial: New file. Test for the bug. + * tests/Makefile.am (TESTS): Add tail-2/flush-initial. + * NEWS (Bug fixes): Mention it. + This bug was introduced in coreutils-7.5 via commit ae494d4b, + 2009-06-02, "tail: use inotify if it is available". + +2009-09-05 Jim Meyering <meyering@redhat.com> + + maint: remove unused file: lib/fdopendir-glibc.c + * lib/fdopendir-glibc.c: Remove unused file. + + 2009-09-05 Jim Meyering <meyering@redhat.com> + +2009-09-05 Jim Meyering <meyering@redhat.com> + + tests: ls/stat-vs-dirent: avoid spurious test failure + * tests/ls/stat-vs-dirent: Avoid test failure when run from a + directory whose name (or ancestor directory name) starts with ".". + +2009-09-05 Pádraig Brady <P@draigBrady.com> + + doc: make the tail --sleep-interval help less confusing + * src/tail.c (usage): I read "approximately S seconds" + as "approximately 5 seconds" for approximately 5 seconds. + + maint: remove some tab indentation from copy.c + * src/copy.c (copy_internal): Remove tabs erroneously added + in commit 3346c0af. + + tests: test old tail -f method even on systems with inotify + * src/tail.c (main): Add an undocumented ---disable-inotify option + to allow disabling inotify. + * tests/tail-2/pid: Run test in both normal and "disable_inotify" modes. + * tests/tail-2/tail-n0f: Likewise. + * tests/tail-2/wait: Likewise. + * tests/tail-2/append-only: Likewise. + +2009-09-05 Jim Meyering <meyering@redhat.com> + + build: update gnulib submodule to latest + +2009-09-05 Petr Salinger <Petr.Salinger@seznam.cz> + + stty: use TAB0, TAB1, and TAB2 only if defined + * src/stty.c (mode_info) [TAB0, TAB1, TAB2]: Guard each + entry with #ifdef. Required for GNU/kFreeBSD. + Reported by Petr Salinger in http://bugs.debian.org/520368. + +2009-09-05 Eric Blake <ebb9@byu.net> + + build: update from gnulib + * gnulib: Update submodule to latest. + +2009-09-04 Eric Blake <ebb9@byu.net> + + ln: add comments related to POSIX 2008 + * src/ln.c (ENABLE_HARD_LINK_TO_SYMLINK_WARNING): Delete. + (do_link): Update comments per POSIX; add FIXME for -L, -P. + + mv, cp: tweak LINK_FOLLOWS_SYMLINKS logic + * gnulib: Update to latest gnulib. + * src/copy.c (copy_internal): Adjust comment in light of POSIX + 2008, and deal with macro now being tri-state. + +2009-09-04 Petr Salinger <Petr.Salinger@seznam.cz> + + tests: fix a tail-2/pid failure on GNU/kFreeBSD + * tests/tail-2/wait: Increase the file name recheck frequency to + fix a failure on systems without inotify and a file timestamp precision + of 1 second (like GNU/kFreeBSD). + +2009-09-04 Pádraig Brady <P@draigBrady.com> + + tests: fix a failure when running tail-2/wait as root + * tests/tail-2/wait: Silently skip a portion of the test + when running as root, rather than failing the whole test. + This regression was introduced with commit 84b5844d, 2009-09-03, + "tests: simplify and fix a race in 2 tail --follow tests". + +2009-09-04 Mike Frysinger <vapier@gentoo.org> + + build: fix libcap configure flag handling + * m4/jm-macros.m4 (coreutils_MACROS): The code to handle configure-time + enabling or disabling of libcap support was broken. It would treat any + libcap configure option as --disable-libcap because it doesn't check + $enableval at all. This change makes sure we do the sane thing: + --disable-libcap -> disable and don't run any tests + --enable-libcap -> run tests and fail if not found + default -> run tests and warn if not found + +2009-09-03 Jim Meyering <meyering@redhat.com> + + df: don't fail due to an unreadable argument + * src/df.c (main): If open or fstat fails when we're trying to ensure + that all arg-partitions are automounted, fall back on using stat. + Inspired by the report and patch from Olivier Fourdan in + http://bugzilla.redhat.com/520630. + * NEWS (Bug fixes): Mention it. + * tests/df/unreadable: New test for the above. + * tests/Makefile.am (TESTS): Add df/unreadable. + The bug was introduced in coreutils-7.3 via commit dbd17157, + 2009-04-28, "df: use open(2), not stat, to trigger automounting". + +2009-09-03 Kamil Dudka <kdudka@redhat.com> + + doc: install -C: fix bug in the texi documentation + * doc/coreutils.texi: Move the documentation for install --compare (-C) + from the section on fmt to that for install. + Reported by Florian Schlichting. + +2009-09-03 Pádraig Brady <P@draigBrady.com> + + tests: simplify and fix a race in 2 tail --follow tests + * tests/tail-2/pid: Use the timeout command to determine process + longevity, rather than querying /proc/$pid/status. + The latter was racy in any case when inotify is used, as then + tail wakes up periodically even for unchanging files therefore + causing the check for "S (sleeping)" state to fail intermittently. + * tests/tail-2/wait: Likewise. + +2009-09-03 Ondřej Vašík <ovasik@redhat.com> + + cp: don't leak resources for each xattr preservation failure + * src/copy.c (copy_reg): Don't return from the function after an + unsuccessful and required preservation of extended attributes. + This resulted in leaking the copy buffer and file descriptors. + * NEWS (Bug fixes): Mention the fix. + The bug was introduced in coreutils-7.1 via commit 0889381c, 2009-01-23, + "cp/mv: add xattr support". + +2009-09-01 Pádraig Brady <P@draigBrady.com> + + chcon, chmod, chgrp, chown, du: report fts_close failure + * src/du.c (du_files): Don't fail silently upon fts_close failure. + * src/chcon.c (process_files): Likewise. + * src/chmod.c (process_files): Likewise. + * src/chown-core.c (chown_files): Likewise. + +2009-09-01 Jim Meyering <meyering@redhat.com> + + build: update from gnulib + * gnulib: Update submodule to latest. + + chcon, chmod, chgrp, chown, du: do not ignore fts_close failure + This is probably never visible, but who knows... + * src/chcon.c (process_files): Don't ignore fts_close failure. + * src/chmod.c (process_files): Likewise. + * src/chown-core.c (chown_files): Likewise. + * src/du.c (du_files): Likewise. + + maint: du: remove unnecessary initialization + * src/du.c (main): Don't set "skip_file" unnecessarily. + + maint: chown, chgrp, chmod, chcon: remove unnecessary initialization + * src/chown-core.c: Include "ignore-value.h". + (change_file_owner): Don't set "ent" only to ignore it. + * src/chcon.c (process_file): Likewise. + * src/chmod.c: Include "ignore-value.h". + (process_file): Don't set "ent" only to ignore it. + After diagnosing root-dev/ino failure, return false immediately: + Now that we don't set "ent" we must be sure not to use it uninitialized, + and there's no point in issuing --verbose-related output in this case. + + maint: shred: remove unnecessary initialization + * src/shred.c (genpattern): Value stored to "n" is never used. + + maint: dd: remove unnecessary initialization + * src/dd.c (skip): Remove set-but-never-used variable, soffset. + + maint: tail: remove unnecessary initialization + * src/tail.c (tail_bytes): Don't compute "diff" twice. + + maint: mbsalign.c: remove unnecessary assignment + * gl/lib/mbsalign.c (mbsalign): Remove assignment, the result of which + is never used. + +2009-09-01 Pádraig Brady <P@draigBrady.com> + + timeout: remove a redundant assignment + * src/timeout.c (main): While keeping argc and argv in + sync may be marginally useful, it is redundant to update argc, + so just remove that to suppress the clang warning. + + timeout: defensive handling of all wait() errors + * src/timeout.c (main): Handle all possible cases of unexpected + failures from wait(). This was prompted by the clang tool reporting + the possible non-initialization of the status variable. + +2009-09-01 Jim Meyering <meyering@redhat.com> + + ls -i: print consistent inode numbers also for mount points + On most unix- and linux-based kernels, ls -i DIR_CONTAINING_MOUNT_POINT + would print the wrong inode number for any entry that is a mount point. + It would do that by relying on readdir's dirent.d_ino values, while + most readdir implementations return the inode number of the underlying, + inaccessible directory. Thus, it is not consistent with what you'd + get when applying stat to the same entry. This bug led to surprising + results like "ls -i" and "ls -i --color" printing different numbers (ls + must usually "stat" a file to colorize its name). This change makes it + so that on offending systems, ls must stat non-command-line-arguments + for which otherwise it would be able to use "for free" dirent.d_ino + values. Regardless of this change, ls is already required to stat every + command-line argument. Note: versions of GNU ls prior to coreutils-6.0 + did not perform the invalid optimization, and hence always printed + correct inode numbers. Thus, for the sake of correctness, ls -i is + forgoing the readdir optimization, for any kernel (including linux!) + with POSIX-nonconforming readdir. Note that currently, only Cygwin has + been agile enough to conform. + + * src/ls.c (RELIABLE_D_INO): Define. + (print_dir): Use it. + For plenty of discussion, see this long thread: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14020 + This bug was introduced by the 2006-02-26 commit, 33eb3efe: + "In ls, avoid calling stat for --inode (-i), when possible." + * tests/ls/readdir-mountpoint-inode: New test. + * tests/Makefile.am (TESTS): Add it. + * tests/ls/stat-vs-dirent: Don't suppress failure of this test, + now that ls -i is fixed. Though note that it doesn't test well, + since it compares only the always-stat'd command-line arguments. + * NEWS (Bug fixes): Mention it. + +2009-08-31 Jim Meyering <meyering@redhat.com> + + maint: revert my stdbuf change: the result didn't even compile + This reverts commit c1e158489d88bad418d52ceadf37af0b6f5b2112. + +2009-08-30 Jim Meyering <meyering@redhat.com> + + maint: stdbuf: move a declaration; no-semantic-change + * src/stdbuf.c (set_program_path): Move a declaration down into + the scope where it's used. + + build: quiet "make check" in src/ + * src/Makefile.am (check-duplicate-no-install): Use $(AM_V_GEN). + (check-README): Likewise. And $(AM_V_at). + + doc: cp: update note on preserving symlink time stamps + * doc/coreutils.texi (cp invocation): Now, we *do* preserve time + stamps on symlinks, when possible. + + build: update bootstrap from gnulib + * bootstrap: Merge from gnulib. + +2009-08-30 Pádraig Brady <P@draigBrady.com> + + tests: don't misbehave if $TMPDIR contains spaces + * tests/misc/xattr: Add quotes. + * tests/mv/acl: Likewise. + * tests/mv/backup-is-src: Likewise. + * tests/mv/hard-link-1: Likewise. * tests/mv/leak-fd: Likewise. * tests/mv/mv-special-1: Likewise. - * tests/mv/no-target-dir: Likewise. * tests/mv/part-fail: Likewise. * tests/mv/part-hardlink: Likewise. * tests/mv/part-rename: Likewise. * tests/mv/part-symlink: Likewise. * tests/mv/partition-perm: Likewise. - * tests/mv/perm-1: Likewise. - * tests/mv/reply-no: Likewise. - * tests/mv/setup: Likewise. - * tests/mv/to-symlink: Likewise. - * tests/mv/trailing-slash: Likewise. - * tests/mv/update: Likewise. - * tests/mv/vfat: Likewise. - * tests/od/od-N: Likewise. - * tests/od/x8: Likewise. - * tests/pr/Makefile.am: Likewise. - * tests/pr/Test.pm: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/readlink/rl-1: Likewise. - * tests/rm/Makefile.am: Likewise. - * tests/rm/cycle: Likewise. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/deep-1: Likewise. - * tests/rm/dir-no-w: Likewise. - * tests/rm/dir-nonrecur: Likewise. - * tests/rm/dot-rel: Likewise. - * tests/rm/empty-inacc: Likewise. - * tests/rm/empty-name: Likewise. - * tests/rm/f-1: Likewise. - * tests/rm/fail-2eperm: Likewise. - * tests/rm/fail-eperm: Likewise. - * tests/rm/hash: Likewise. - * tests/rm/i-1: Likewise. - * tests/rm/i-no-r: Likewise. - * tests/rm/inaccessible: Likewise. - * tests/rm/interactive-always: Likewise. - * tests/rm/interactive-once: Likewise. - * tests/rm/ir-1: Likewise. - * tests/rm/isatty: Likewise. - * tests/rm/no-give-up: Likewise. - * tests/rm/r-1: Likewise. - * tests/rm/r-2: Likewise. - * tests/rm/r-3: Likewise. - * tests/rm/rm1: Likewise. - * tests/rm/rm2: Likewise. - * tests/rm/rm3: Likewise. - * tests/rm/rm4: Likewise. - * tests/rm/rm5: Likewise. - * tests/rm/sunos-1: Likewise. - * tests/rm/unread2: Likewise. - * tests/rm/unread3: Likewise. - * tests/rm/unreadable: Likewise. - * tests/rmdir/fail-perm: Likewise. - * tests/rmdir/ignore: Likewise. - * tests/rmdir/t-slash: Likewise. - * tests/seq/basic: Likewise. - * tests/sha1sum/basic-1: Likewise. - * tests/sha1sum/sample-vec: Likewise. - * tests/shred/exact: Likewise. - * tests/shred/remove: Likewise. - * tests/sort/Makefile.am: Likewise. - * tests/sort/Test.pm: Likewise. - * tests/sort-time/Makefile: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + +2009-08-29 Jim Meyering <meyering@redhat.com> + + tests: other-fs-tmpdir: don't misbehave for quote-unfriendly $TMPDIR + * tests/other-fs-tmpdir: Quote uses of variables that might expand + to strings containing e.g., whitespace. + + build: update from gnulib + * gnulib: Update submodule to latest. + + tests: move a coreutils-specific test from maint.mk to Makefile.am + * Makefile.am (distcheck-hook): Make taint-distcheck here, since it's + no longer done via maint.mk. + + tests: cp/reflink-auto guard against a pathological $TMPDIR + * tests/cp/reflink-auto: Add quotes. + +2009-08-29 Pádraig Brady <P@draigBrady.com> + + cp --reflink: preserve attributes on cloned files if asked + * src/copy.c (copy_reg): When cloning only skip the data copying + * tests/cp/reflink-perm: New test to check times and modes copied + * tests/Makefile.am: Reference the new test + * NEWS: Mention the fix + + cp --reflink: add an "auto" parameter to fall back to a normal copy + * doc/coreutils.texi (cp invocation): Document the new + "auto" and "always" options to --reflink. + * src/copy.c (copy_reg): Fall back to a standard copy + when reflink() is not supported and --reflink=auto specified. + * src/copy.h [struct cp_options] (reflink): Change type s/bool/enum/. + * src/cp.c (usage): Describe the --reflink={always,auto} options + and expand a little on what --reflink does. + (main): parse the new parameters to --reflink and allow all + --sparse options with --reflink=auto. + * src/install.c (cp_option_init): Init the enum instead of bool. + * src/mv.c (cp_option_init): Likewise. + * tests/cp/reflink-auto: A new test for falling back to normal copy. + * tests/Makefile.am: Reference the new test. + * NEWS: Mention the new feature. + +2009-08-28 Pádraig Brady <P@draigBrady.com> + + stdbuf: fix a small typo in --help output + * src/stdbuf.c (usage): s/then/the/ + +2009-08-28 Eric Blake <ebb9@byu.net> + + build: avoid unused variable warnings on cygwin + * src/copy.c (clone_file, copy_attr_by_fd, copy_attr_by_name): + Mark up unused variables. + * src/remove.c (dirent_inode_sort_may_be_useful): Likewise. + + dd: detect closed stderr + * src/dd.c (maybe_close_stdout): Always flush stderr; regression + introduced in commit 381e69ea. + * tests/misc/close-stdout (p): Use consistent style. + * tests/dd/stderr: New test, borrowing from misc/close-stdout. + * tests/Makefile.am (TESTS): Run it. + * NEWS: Mention this. + +2009-08-28 Jim Meyering <meyering@redhat.com> + + maint: ignore only man/*.1, not all *.1 files + * .gitignore: Ignore *.1 only in man/ + +2009-08-27 Jim Meyering <meyering@redhat.com> + + build: prefix a few rules with $(AM_V_GEN) + * Makefile.am (.version, dist-hook, gen-ChangeLog): Use $(AM_V_GEN) + and $(AM_V_at), so that automake's silent-rules option (make V=1/V=0) + now controls whether the commands are printed at build time. + (THANKS-to-translators, check-ls-dircolors): Likewise. + +2009-08-26 Jim Meyering <meyering@redhat.com> + + build: stop earlier if touching ChangeLog fails + * bootstrap.conf: Exit right away if touching ChangeLog fails. + Otherwise, the touch failure message is buried under configure output. + + tests: mkdir/selinux: avoid spurious failure on some SELinux systems + * tests/test-lib.sh (require_selinux_enforcing_): New function. + * tests/mkdir/selinux: Use it. + Otherwise, this test would fail on Rawhide with SELinux disabled. + + tests: tail-2/assert: avoid risk of race condition + * tests/tail-2/assert: Avoid spurious failure due to race condition. + Rather than sleeping for 1 second and crossing fingers, + wait explicitly for backgrounded tail process to start. + Otherwise, this test would fail under heavy load. + +2009-08-25 Jim Meyering <meyering@redhat.com> + + maint: ensure we don't embed Emacs indent-tabs-mode setting lines + Now that we prohibit indentation via TABs, there's no need for + Emacs indent-tabs-mode setting lines, so prohibit those, too. + * cfg.mk (sc_prohibit_emacs__indent_tabs_mode__setting): New rule. + + maint: remove Local Variables: indent-tabs-mode: nil from all sources + * src/getlimits.c: Likewise. + * src/group-list.c: Likewise. + * src/groups.c: Likewise. + * src/mktemp.c: Likewise. + * src/setuidgid.c: Likewise. + * src/stdbuf.c: Likewise. + * src/timeout.c: Likewise. + * src/truncate.c: Likewise. + * gl/lib/mbsalign.c: Likewise. + * tests/test-lib.sh: Likewise. + * bootstrap: Likewise. + * README-hacking: Likewise. + + doc: HACKING: mention the new space-only indentation policy + + maint: teach "make syntax-check" the space-only indentation rule + * cfg.mk (sc_prohibit_tab_based_indentation): New rule. + * .x-sc_prohibit_tab_based_indentation: New file. + * Makefile.am (syntax_check_exceptions): Add file, + .x-sc_prohibit_tab_based_indentation. + + global: convert indentation-TABs to spaces + Transformed via this shell code: + t=$'\t' + git ls-files \ + | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \ + | grep -vE 'tests/pr/|help2man' \ + | xargs grep -lE "^ *$t" \ + | xargs perl -MText::Tabs -ni -le \ + '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_' + +2009-08-24 Jim Meyering <meyering@redhat.com> + + cp: ignore obscure failure to preserve symlink time stamps, + ...when run on a kernel older than what was implied by headers and + libraries tested at configure time. + * src/copy.c (utimens_symlink): Ignore failure when errno == ENOSYS. + * NEWS (Bug fixes): Mention it. + Reported by Todd Zullinger and Kamil Dudka. + Details in this thread: + http://thread.gmane.org/gmane.linux.redhat.fedora.devel/119834 + +2009-08-23 Jim Meyering <meyering@redhat.com> + + tests: skip (don't fail) a cp test, upon mount-related failure + * tests/cp/cp-mv-enotsup-xattr: Upon a set-up failiure, rather than + failing the test with a "framework failure" diagnostic, just skip it. + Russell Whitaker reported that this test failed on slackware. + + build: update from *public* gnulib + * gnulib: Update submodule to latest. + Kamil Dudka reported that bootstrap was broken. + +2009-08-22 Jim Meyering <meyering@redhat.com> + + build: update from gnulib + * gnulib: Update submodule to latest. + +2009-08-20 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 7.5 + * NEWS: Record release date. + + tests: skip the stdbuf tests when the abs build directory name is bogus + * tests/misc/stdbuf: Avoid spurious failure when the directory name + from which we'd set LD_PRELOAD contains unsafe characters. + + install: avoid a portability bug when compiling with non-gcc + * src/install.c (extra_mode): Be careful to return only a 0 or 1 + value, since this is a "bool" function, and there are still some + compilers for which this is necessary. Without this change, + Bernhard Voelker reported that the Forte Developer 7 C 5.4 2002/03/09 + compiler would produce a malfunctioning "install" binary. Details in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17710/focus=17760 + +2009-08-19 Jim Meyering <meyering@redhat.com> + + tests: make install-C slightly less prone to confusion + * tests/install/install-C: Invoke framework_failure, if necessary. + + build: avoid "make dist" failure in man/ + Now that "make check" no longer builds programs like arch, ... + * src/Makefile.am (dist-hook): Depend on $(all_programs), so that the + subsequent build in man/ doesn't fail due to lack of a program like + arch that is not going to be installed. + +2009-08-18 Jim Meyering <meyering@redhat.com> + + build: update from gnulib + * gnulib: Update submodule to latest. + +2009-08-18 Giuseppe Scrivano <gscrivano@gnu.org> + + nl: deprecate --page-increment in favor of --line-increment + * NEWS: Mention the change. + * doc/coreutils.texi: Document the new --line-increment option. + * src/nl.c (struct option): Add --line-increment, + (usage): Describe it, + (main): Use it. + +2009-08-18 Jim Meyering <meyering@redhat.com> + + tests: stdbuf: fix a bug in test script + * tests/misc/stdbuf: Use skip_test_ only after it's defined. + Reported by Berhnard Voelker. + + (sc_check-AUTHORS): Rename rule from check-AUTHORS. + +2009-08-18 Jim Meyering <meyering@redhat.com> + + build: perform check-AUTHORS via syntax-check, not via "make check" + * src/Makefile.am (check): Don't depend on check-AUTHORS. + That check fails on systems for which a program like stdbuf is + not built. Instead, move this check to "make syntax-check". + (sc_check-AUTHORS): Rename rule from check-AUTHORS. + * cfg.mk (sc_check-AUTHORS): New rule. + Reported by Berhnard Voelker. + + sort: use more portable initialization syntax + * src/sort.c (find_unit_order): Spell out 256-element static + initializer, rather than relying on C99 syntax. + Required for Forte Developer 7 C 5.4 2002/03/09 on Solaris 10. + Reported by Bernhard Voelker. + +2009-08-17 Jim Meyering <meyering@redhat.com> + + build: suppress warnings due to gcc's new -Wjump-misses-init + * configure.ac: Ignore -Wjump-misses-init violations in remove.c. + + build: update from gnulib + * gnulib: Update submodule to latest. + +2009-08-16 Jim Meyering <meyering@redhat.com> + + tests: tail-2/append-only: don't discard stderr + * tests/tail-2/append-only: Don't discard a diagnostic that + may help explain why this test fails for some. Details in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17621/focus=17641 + +2009-08-14 Jim Meyering <meyering@redhat.com> + + tests: skip the misc/stdbuf test if stdbuf was not built + * tests/misc/stdbuf: Skip this test when stdbuf is not built. + Reported by Eric Blake. + + build: use gnulib's getopt-gnu module (getopt is now deprecated) + * bootstrap.conf (gnulib_modules): Gnulib's getopt module is now + deprecated; use the new, preferred name, getopt-gnu. + * gnulib: Update to latest. + +2009-08-14 Pádraig Brady <P@draigBrady.com> + + cp,mv: fix issues with preserving timestamps of copied symlinks + * src/copy.c (copy_internal): On systems without utimensat don't + use utimens on a symlink, as that would dereference the symlink. + * tests/cp/abuse: To work around possible attribute preservation + failures breaking the test, use cp -dR rather than cp -a. + + doc: clarify the cp --reflink NEWS + * NEWS: Remove the description associated with the removed + experimental code which unconditionally tried to reflink() on copy. + Also clarify where --reflink works exactly. + +2009-08-13 Jim Meyering <meyering@redhat.com> + + tests: raise ulimit virt-mem limit to avoid new failure + * tests/cp/link-heap: Raise limit from 16MB to ~20MB, + to avoid spurious failure on rawhide. + +2009-08-13 Pádraig Brady <P@draigBrady.com> + + tail: fix tail -f failure when inotify used + * src/tail.c (tail_forever_inotify): Remove the redundant and + incorrect error check of the return from inotify_add_watch(). + Also initialize the wd member of each File_spec to an invalid value. + Reported by C de-Avillez. + + dd: fix a signal handling race + * src/dd.c (main): Install the signal handlers at startup + rather than just before the copy starts. In this way signals + received before the copy (like during a slow truncate for e.g.) + will be deferred and handled consistently. + * THANKS: Add Bernhard's email address. + * NEWS: Mention the fix. + Reported by Bernhard Voelker. + +2009-08-12 Pádraig Brady <P@draigBrady.com> + + tests: improve one of the tail --pid tests + * tests/tail-2/pid: Speed up the test by specifying a + timeout of 100ms rather than the default 1s. Also + skip the test instead of failing in the unlikely case + were the pid required to be missing pid is present. + +2009-08-10 Jim Meyering <meyering@redhat.com> + + nl, pinky: replace uses of strcat + * src/nl.c (main): Avoid strcat, on principle. Use stpcpy instead. + * src/pinky.c (print_long_entry): Likewise. + + build: update from gnulib, for HOST_NAME_MAX on solaris 10 + * gnulib: Update submodule to latest. + +2009-08-07 Giuseppe Scrivano <gscrivano@gnu.org> + + cp: accept the --reflink option + * NEWS: Mention it. + * doc/coreutils.texi (cp invocation): Describe it. + * src/copy.h (struct cp_options) [reflink]: New member. + * src/copy.c (usage): Describe it. + (copy_reg): If reflink is true try to clone the file. + (main): Check for --reflink. + (cp_option_init): Initialize the new member. + * src/install.c (cp_option_init): Initialize the new member. + * src/mv.c (cp_option_init): Likewise. + * tests/cp/sparse: Add a new test case. + +2009-08-07 Jim Meyering <meyering@redhat.com> + + dd: preserve semantics of O_DIRECT even for final block + * src/dd.c: Include "ignore-value.h" + (iwrite): When disabling O_DIRECT, try to compensate + via POSIX_FADV_DONTNEED and fsync. + Suggested by Eric Sandeen. + +2009-08-06 Jim Meyering <meyering@redhat.com> + + maint: move selinux-at module from gl/ to gnulib + * gl/lib/selinux-at.c: Remove file. + * gl/lib/selinux-at.h: Likewise. + * gl/modules/selinux-at: Likewise. + * gnulib: update to latest, to get the new module. + +2009-08-06 Jim Meyering <meyering@redhat.com> + + dd: work around buffer length restrictions with oflag=direct (O_DIRECT) + dd oflag=direct would fail to copy a file with size that is + not a multiple of 512 (destination file system specific) + + * NEWS (Bug fixes): Mention it. + * src/dd.c (iwrite): Turn off O_DIRECT for any + smaller-than-obs-sized write. Don't bother to restore it. + * tests/dd/direct: New test for the above. + * tests/Makefile.am (TESTS): Add dd/direct. + * doc/coreutils.texi (dd invocation): Mention oflag=direct + buffer size restriction. + Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17586 + Reported by Eric Sandeen. + +2009-08-04 Jim Meyering <meyering@redhat.com> + + dd: remove unnecessary #if HAVE_FTRUNCATE + * src/dd.c (main): Remove unnecessary cpp directives. + Gnulib guarantees that ftruncate is usable. + + cp -pP (and e.g., -a): preserve time stamps on symlinks, too + * src/copy.c (utimensat_if_possible): New function. + (copy_internal): Remove variable, "preserve_metadata". + Replace with "dest_is_symlink". That covers all cases but one: + the one in which cp --link has created hard links to non-directories. + In that case, there is no need to update attributes of the links. + Use utimensat_if_possible, to preserve timestamps of symlinks. + * NEWS (New features): Mention this. + * tests/Makefile.am (TESTS): Add cp/preserve-slink-time. + * tests/cp/preserve-slink-time: New file. + * m4/jm-macros.m4 (coreutils_MACROS): Test for utimensat. + Reported in http://bugzilla.redhat.com/230866 + +2009-08-04 Kamil Dudka <kdudka@redhat.com> + + install runs faster again with SELinux enabled + * m4/jm-macros.m4: Pull in SELinux libraries while checking for + matchpathcon_init_prefix (). Emit configure warning when not found + with SELinux enabled. + * NEWS (Bug fixes): Mention it. + The bug was introduced in coreutils-7.0 via commit 0647f3eb, 2008-06-02, + "accommodate older SELinux which lacks matchpathcon_init_prefix". + +2009-08-04 Jim Meyering <meyering@redhat.com> + + maint: move the update-copyright rule to gnulib's maint.mk + * gnulib: Update submodule to get latest maint.mk. + * Makefile.am (update-copyright): Remove rule; now it's in maint.mk. + * m4/check-decl.m4: Update sole remaining copyright year list. + +2009-07-31 Jim Meyering <meyering@redhat.com> + + build: *really* update to a usable gnulib commit + + build: update to a usable gnulib commit + The commit, 5ef90695, 2009-07-29, "maint: move update-copyright + to gnulib" recorded a local-only commit. + Reported by Pádraig Brady. + +2009-07-30 Jim Meyering <meyering@redhat.com> + + tests: new function: require_openat_support_ + * tests/rm/inaccessible: Factor out openat-support-detection code... + * tests/test-lib.sh (require_openat_support_): ...into this new function. + + tail: tweak indentation + * src/tail.c (tail_forever_inotify): Adjust indentation of continued line. + +2009-07-30 Pádraig Brady <P@draigBrady.com> + + tail: properly parse fractional seconds when monitoring a pid + * src/tail.c (tail_forever_inotify): The fractional + part of the delay was 1000 times too large. + * tests/tail-2/pid: Add a test to ensure the + timeout happens for this case. + +2009-07-30 Jim Meyering <meyering@redhat.com> + + tests: test for just-fixed tail --pid bug + * tests/tail-2/pid: Ensure tail exits successfully when PID dies. + +2009-07-30 Giuseppe Scrivano <gscrivano@gnu.org> + + tail: exit successfully upon watched process death + * src/tail.c (tail_forever_inotify): If a PID is specified and the + watched process dies, exit with status EXIT_SUCCESS, rather than + falling through to an EXIT_FAILURE. + +2009-07-29 Jim Meyering <meyering@redhat.com> + + maint: move update-copyright to gnulib + * build-aux/update-copyright: Remove file. + * bootstrap.conf (gnulib_modules): Add update-copyright. + * gnulib: Update submodule to latest. + + maint: make update-copyright work in yet another case + * build-aux/update-copyright: Handle the case in which "\n#" + appears between the final year number and the copyright holder name. + * m4/lib-check.m4: Update copyright year list. + Reported by Joel E. Denny. + + maint: update NEWS + * NEWS (New features): Mention it. + +2009-07-29 Giuseppe Scrivano <gscrivano@gnu.org> + + cp: support btrfs' copy-on-write file clone operation + * src/copy.c [HAVE_SYS_IOCTL_H]: Include <sys/ioctl.h>. + (BTRFS_IOCTL_MAGIC, BTRFS_IOC_CLONE): Define. + (clone_file): New function. + (copy_reg): Use the btrfs clone operation if possible. + +2009-07-29 Jim Meyering <meyering@redhat.com> + + maint: update sleep.c's copyright year list + * src/sleep.c: Update copyright year list to include 2009. + * tests/sort-time/rand-gen: Remove long-unused file. * tests/sort-time/README: Likewise. - * tests/sort-time/rand-gen: Likewise. - * tests/stty/basic-1: Likewise. - * tests/stty/row-col-1: Likewise. - * tests/sum/basic-1: Likewise. - * tests/sum/sysv: Likewise. - * tests/tac/Makefile.am: Likewise. - * tests/tac/Test.pm: Likewise. - * tests/tail/Makefile.am: Likewise. - * tests/tail/Test.pm: Likewise. - * tests/tail-2/Makefile.am: Likewise. - * tests/tail-2/append-only: Likewise. - * tests/tail-2/assert: Likewise. - * tests/tail-2/assert-2: Likewise. - * tests/tail-2/big-4gb: Likewise. - * tests/tail-2/fflush: Likewise. - * tests/tail-2/infloop-1: Likewise. - * tests/tail-2/proc-ksyms: Likewise. - * tests/tail-2/start-middle: Likewise. - * tests/tail-2/tail-n0f: Likewise. - * tests/tee/basic: Likewise. - * tests/tee/dash: Likewise. - * tests/test/Makefile.am: Likewise. - * tests/test/Test.pm: Likewise. - * tests/touch/Makefile.am: Likewise. - * tests/touch/dangling-symlink: Likewise. - * tests/touch/empty-file: Likewise. - * tests/touch/fail-diag: Likewise. - * tests/touch/fifo: Likewise. - * tests/touch/no-create-missing: Likewise. - * tests/touch/no-rights: Likewise. - * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. - * tests/touch/relative: Likewise. - * tests/tr/Makefile.am: Likewise. - * tests/tr/Test.pm: Likewise. - * tests/tr/failures: Likewise. - * tests/tsort/basic-1: Likewise. - * tests/unexpand/basic-1: Likewise. - * tests/uniq/Makefile.am: Likewise. - * tests/uniq/Test.pm: Likewise. - * tests/wc/Makefile.am: Likewise. - * tests/wc/Test.pm: Likewise. - -2006-08-17 Jim Meyering <jim@meyering.net> - - ls -CF would misalign columns in some cases. - * src/ls.c (get_type_indicator): New function. extracted from... - (print_type_indicator): ...here. Use it. - (length_of_file_name_and_frills): Use it here, too, rather than - assuming stat.st_mode is valid. - Reported by Andreas Schwab, here: - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7774> - See the test for this above. FYI, I did ls -CF /proc and visually - inspected the result. - * src/copy.c (copy_internal, same_file_ok): Adjust comments not - to mention the now-removed cp_options.xstat member. +2009-07-29 Joel E. Denny <jdenny@clemson.edu> - * Makefile.maint (patch-check): Adapt to work now that the patch - modifies more than one file in src/. + maint: improve update-copyright rule + * Makefile.am (update-copyright): Relax the selection rule + to match any file containing the word "Copyright". + Correct the exclusion rule so that it also excludes ChangeLog + and COPYING files that are not in the top level directory. - With this patch, permit building with Solaris cc on Solaris 7. - * src/c99-to-c89.diff: Add diffs to convert more c99-isms. - This integrates patches from Bruno Haible. +2009-07-29 Jim Meyering <meyering@redhat.com> -2006-08-16 Paul Eggert <eggert@cs.ucla.edu> + maint: update-copyright: fix just-introduced bug + * build-aux/update-copyright: ... and revert-for-now the + change that made this script invoke localtime only once. - Fix some problems reported by Bruno Haible. - * tests/chmod/setgid (abs_srcdir): Remove; not used or needed. - Skip this test if "chmod g+s d" silently does nothing. - * tests/ls-2/tests: Skip this test suite if we can't set up files - properly for the setuid-etc test. This simplifies some of the - hacks we were using to work around porting problems. + maint: make update-copyright handle more cases + * build-aux/update-copyright: Handle cases in which the final + year number and copyright holder are on separate lines. + Prompted by a report from Joel E. Denny. + Also, do not invoke localtime for each line we process. -2006-08-16 Jim Meyering <jim@meyering.net> +2009-07-28 Pádraig Brady <P@draigBrady.com> - * tests/cp/Makefile.am: Don't mark "acl" as XFAIL. - * tests/cp/acl: Instead, skip the test if either setfacl - or getfacl fails. - Reported by Michael Stone. + doc: fix the generated HTML index + * doc/coreutils.texi: Move the "SELinux context" section + down below the "System context" nodes so that the HTML + index is generated correctly. Also some extraneous and missing + '.' characters were corrected in the index. + Reported by Benno Schulenberg. -2006-08-16 Paul Eggert <eggert@cs.ucla.edu> +2009-07-28 Giuseppe Scrivano <gscrivano@gnu.org> - * tests/lang-default (LC_ALL): Set to "C", so we get - English-language diagnostics. Unset the other variables; it - should be portable to use 'unset' for this stuff nowadays. - Problem reported by Bruno Haible. Using "C" reverses the - 2000-10-22 change to fileutils in this area. + tail: use the inotify backend also with --pid=PID + * src/tail.c (tail_forever_inotify): When a PID is specified, use + select to block for no more than sleep_interval seconds at a time, + and check for process death upon timeout. + (main): Adapt to new tail_forever_inotify interface. - Fix bugs when printing plurals of numbers that are not - unsigned long int values. - * src/system.h (select_plural): New function. - * src/md5sum.c (digest_check): Use select_plural to avoid bug. - * src/uptime.c (print_uptime): Likewise. - * src/dd.c (print_stats): Likewise. Also, don't use ngettext to - print a floating point number, as reducing to 0 or 1 doesn't work - for some languages. Instead, just use "s" for seconds since it - doesn't need a plural form. +2009-07-27 Jim Meyering <meyering@redhat.com> -2006-08-16 Bruno Haible <bruno@clisp.org> + tests: new test for bug in ls -1U dir arg ... + * tests/misc/ls-misc (multi-arg-U1): New test. - Old versions of gzip would write --help output to stderr, and it - would be annoying to see that in the output of every "make" command. - * Makefile.maint (gzip_rsyncable): Throw away stderr output of - "gzip --help". +2009-07-27 Kamil Dudka <kdudka@redhat.com> -2006-08-16 Andreas Schwab <schwab@suse.de> + ls -1U dir arg ... now works again + * src/ls.c (print_dir): Emit "$dir_name:\n" *before* accumulating (and + possibly printing) directory entry names. + The bug was introduced in coreutils-7.0 via commit + 8d974b00, 2008-07-30, "ls -U1 now uses constant memory". + Reported by Julian Bradfield. + * NEWS (Bug fixes): Mention it. - * tests/cp/acl: Don't use non-portable == operator for test. +2009-07-27 Heikki Orsila <heikki.orsila@iki.fi> -2006-08-16 Jim Meyering <jim@meyering.net> + tr: improve --help's description of --complement (-c) - * tests/ls/stat-dtype: Use stat to test file system type, rather - than df -T, in case /etc/mtab lies. Reported by Michael Stone. +2009-07-27 Pádraig Brady <P@draigBrady.com> -2006-08-15 Paul Eggert <eggert@cs.ucla.edu> + doc: add a sort by line length example + * doc/coreutils.texi (sort invocation): Add an example showing how + to sort data not directly supported by the sort command. - * NEWS: Mention that df exits with nonzero status if it generates - no output. This change was in 6.0 but inadvertently unmentioned. - * src/df.c (file_systems_processed): Renamed from n_valid_args, and now - a boolean. - (show_dev): Don't set it until we actually output something. - Print the header if this is the first output. - (main): Don't print a header, as that is now show_dev's job. - * tests/misc/Makefile.am (TESTS): Add df. - * tests/misc/df: New file. + doc: mention realpath in the readlink info + * doc/coreutils.texi (readlink invocation): Add realpath to the index, + and also mention it in the readlink description so people + searching for that functionality can easily make the connection. -2006-08-15 Eric Blake <ebb9@byu.net> +2009-07-26 Jim Meyering <meyering@redhat.com> - * src/stat.c (USE_STATVFS): Define to 0 if f_type is needed, but - statvfs.f_type not present. See - <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16325>. + build: use a fixed-name temporary in man/Makefile.am + * man/Makefile.am (check-x-vs-1): Using a fixed-name temporary file + is better than one ending in -$$, because many -$$-suffixed files + may accumulate over time. -2006-08-15 Paul Eggert <eggert@cs.ucla.edu> +2009-07-24 Kamil Dudka <kdudka@redhat.com> - * src/dd.c (print_stats): Don't substitute "1" for number, as this - causes confusion for the Hungarian translators. Problem reported - by Egmont Koblinger here: - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7726 + doc: improve readlink description here, too + * doc/coreutils.texi (readlink invocation): Update menus. + Add @cindex entries. -2006-08-15 Jim Meyering <jim@meyering.net> +2009-07-24 Jim Meyering <meyering@redhat.com> - * .x-sc_require_config_h: Add lib/at-func.c. + readlink: improve one-line summary: prints canonical file names, too + * src/readlink.c (usage): Adjust one-line summary. + * man/readlink.x: Likewise. + Suggested by Kamil Dudka. - * NEWS: Add a line for 6.1-cvs. - * configure.ac (AC_INIT): Bump to 6.1 and add "-cvs" suffix. +2009-07-21 Jim Meyering <meyering@redhat.com> -2006-08-15 Jim Meyering <jim@meyering.net> + build: update from gnulib + * gnulib: Update submodule to latest. - * Version 6.0. - * NEWS: Record the 6.0 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. +2009-07-14 Jim Meyering <meyering@redhat.com> - * TODO: Add an item (convert to use gnulib-tool), add to the plan - for id-vs-getgrouplist, and remove a few completed items. + doc: point to Guile's ChangeLog-writing guidelines + * HACKING (Commit log requirements): Point to Guile's + http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html. + Mention that a bit of prose can be welcome. - * Makefile.maint (alpha beta major): Fix syntax error. +2009-07-11 Jim Meyering <meyering@redhat.com> -2006-08-13 Jim Meyering <jim@meyering.net> + tail: adjust type of a local variable + * src/tail.c (tail_forever_inotify): Declare "len" to be of type + size_t, not ssize_t, since the former is what safe_read returns. - * src/shred.c (usage): Don't indent the second line of an item. - Otherwise, help2man would misformat the output. - Reported by Adam Buchbinder in <https://launchpad.net/bugs/48917>. +2009-07-09 Jim Meyering <meyering@redhat.com> -2006-08-11 Paul Eggert <eggert@cs.ucla.edu> + tests: avoid false-positive cp/link-heap failure + * tests/cp/link-heap: Increase address space limit from 14000KB + to 16000KB, to avoid failure with Debian unstable's libc6-dev-2.9-19 - * configure.ac (AM_GNU_GETTEXT): Upgrade to need-formatstring-macros. - Suggested by Eric Blake to avoid problems like - <http://lists.gnu.org/archive/html/bug-coreutils/2006-07/msg00087.html>. + build: avoid build warn/failure due to -Wstack-protector + * configure.ac: Do not enable -Wstack-protector. + Otherwise, at least df.c would provoke a warning. -2006-08-11 Jim Meyering <jim@meyering.net> +2009-07-08 Ondřej Vašík <ovasik@redhat.com> - * tests/ls/stat-vs-dirent: Too many (losing) systems trigger the - failure that this test checks for (stat/dirent inode mismatch at - a mount point), so continue to give a diagnostic about the failure, - but don't actually count it as a failure. + copy.c: remove a duplicate expression + * src/copy.c (copy_attr_error): remove a redundant expression + added in commit e0cf592f, 2009-04-27, "factor out test for errno ...". -2006-08-10 Paul Eggert <eggert@cs.ucla.edu> +2009-07-08 Jim Meyering <meyering@redhat.com> - * ABOUT-NLS: Update from gettext 0.15. - * configure.ac (AM_GNU_GETTEXT_VERSION): Update from 0.13.1 to 0.15. + build: update from gnulib + * gnulib: Update submodule to latest. - * src/csplit.c (struct control): Remove fastmap member. - (extract_regexp): Allocate fastmap separately, since otherwise - it might move due to a realloc. This fixes a bug that led - to a core dump on 64-bit sparc Solaris 10 (Sun Studio 10). + tail: use size_t for counter and index variables, ... + * src/tail.c (any_live_files): ... not "int" or even unsigned int + (tail_forever, tail_forever_inotify, main): Likewise. -2006-08-10 Jim Meyering <jim@meyering.net> + tail: declare "file descriptor" variable to be "int", not size_t + * src/tail.c (tail_forever_inotify): Use "int", not size_t + as the type of a file descriptor variable. - * tests/ls/stat-dtype: If "." is tmpfs, skip this test unless uname -s - reports "Linux". This avoids a failure on Solaris 10's tmpfs. - Redirect both stdout and stderr of df invocations. +2009-07-04 Jim Meyering <meyering@redhat.com> - * src/dircolors.hin: Add a TERM directive for each of the following: - ansi, color-xterm, gnome, konsole, kterm, rxvt-cygwin, - rxvt-cygwin-native, screen.linux, xterm-256color. - Sort the TERM directives. - From Mike Frysinger. + move argv-iter module to gnulib + * gl/lib/argv-iter.c: Remove file. + * gl/lib/argv-iter.h: Remove file. + * gl/modules/argv-iter: Remove file. + * gl/modules/argv-iter-tests: Remove file. + * gl/tests/test-argv-iter.c: Remove file. + * gnulib: Update submodule, to get argv-iter -2006-08-09 Paul Eggert <eggert@cs.ucla.edu> +2009-07-04 Giuseppe Scrivano <gscrivano@gnu.org> - * src/dd.c (usage): Warn about oflag=append without conv=notrunc. - See Debian bug 373736. + tests: refactor code to use require_proc_pid_status_ + * tests/tail-2/tail-n0f: Read the process status using the test-lib.sh + require_proc_pid_status_ function. - * src/dircolors.hin: Add mlterm, rxvt-unicode; this fixes Debian - bug 317503. + tests: use the "nobody" user's group as the default group id + * tests/chroot/credentials: Use the group id, not its name. + * tests/test-lib.sh (NON_ROOT_GROUP): Use the "nobody" user's group in + place of "nogroup". - * src/.cvsignore: Add shuf. +2009-07-03 Jim Meyering <meyering@redhat.com> - * Makefile.maint: Remove the po-update procedure; it doesn't - work with the new repository on http://www.iro.umontreal.ca/. - For now I guess we'll have to fix things by hand. - (do-po-update, po-update): Remove. All references removed. + build: update from gnulib + * gnulib: Update submodule to latest. - * src/shuf.c (next_line): New function. - (read_input): Use it, to avoid relying on GCC-specific behavior - with void * arithmetic. Problem reported by Bob Proulx. - * Makefile.maint (my-distcheck): Compile with -Wpointer-arith - to detect this sort of problem automatically in the future. +2009-07-03 Pádraig Brady <P@draigBrady.com> -2006-08-09 Jim Meyering <jim@meyering.net> + sort: allow SI and IEC units on separate human sort fields + * src/sort.c: Store the si_present state per key rather than globally + * tests/misc/sort: Add a check that would have previously failed. + Also add a test to demonstrate that invalid IEC/SI mixtures are not + always noticed when they're not significant to the sort. - * src/ls.c: Add a compile-time check to ensure that filetype - and filetype_letter have the same number of elements. +2009-07-03 Giuseppe Scrivano <gscrivano@gnu.org> - * tests/misc/sort-rand: Remove use of --seed=S. + tail: avoid an inotify portability problem in kernels prior to 2.6.21 + * src/tail.c (tail_forever_inotify): Handle the special case in which + an old inotify watcher returns 0. Affects kernels in [2.6.13, 2.6.21). -2006-08-08 Paul Eggert <eggert@cs.ucla.edu> +2009-07-03 Jim Meyering <meyering@redhat.com> - Add a command 'shuf', and modify shred and sort to use the new - random number generator library of 'shuf'. + tests: tail-2/wait: rename internal file name + * tests/tail-2/wait: Rename file from not_accessible to unreadable, + since all the test cares about is readability. - * AUTHORS: Add shuf. - * README: Likewise. - * NEWS: Likewise. Mention new --random-source option for shred - and sort. Move "sort +1 -2" notice to the appropriate section, - and clarify its role with respect to POSIXLY_CORRECT. - * man/.cvsignore: Add shuf.1. - * man/Makefile.am (dist_man_MANS): Add shuf.1. - (shuf.1): New dependency. - * man/shuf.x: New file. - * src/Makefile.am (bin_PROGRAMS): Add shuf. - (EXTRA_DIST): Remove rand-isaac.c. - (shuf_LDADD): New macro. - * src/rand-isaac.c: Remove, moving most of its contents to - lib/rand-isaac.c. - * src/shuf.c: New file. - * src/shred.c: Use new random-number interface rather than rand-isaac.c. - Don't include rand-isaac.c; include randint.h and randread.h instead. - (RANDOM_SOURCE_OPTION): New enum. - (long_opts, usage, main): New option --random-source. - * src/sort.c: Likewise. - * src/shred.c (struct irand_state, irand_init, irand32, irand_mod): Remove. - All callers changed to use randint interface. - (fillrand): Remove. All callers changed to use randread interface. - (dopass): Remove dependency on ISAAC buffer size. - (genpattern): Don't wipe the random state here. - (randint_source): New static var. - (clear_random_data): New function. - (main): Allocate random source, and arrange to wipe it on exit. - * src/sort.c: Include md5.h, randread.h, xmemxfrm.h. - (longopts, usage, main): Remove undocumented --seed option; - it's now replaced by --random-source. - (rand_state, get_hash): Remove. - (randread_source): New static var. - (random_state, cmp_hashes, compare_random): New functions; they guarantee - no collisions in the random hash function. - (keycompare): Use compare_random for -R; don't fall back on comparing - via memcoll, since compare_random does the right thing. - * tests/misc/Makefile.am (TESTS): Add shuf. - * tests/misc/shuf: New file. - -2006-07-29 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (set_author): Preserve the st_author field via the - file descriptor dest_desc. - -2006-07-28 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: chmod now preserves setuid and setgid bits on directories - if you use a numeric mode with them clear, e.g., "chmod 755 DIR". - - Fix test case problems if working directory is setgid, - reported by Bob Proulx. - * tests/cp/fail-perm: Use symbolic mode so that we clear - setgid bit more reliably on directories. - * tests/mkdir/special-1 (set_mode_string): Likewise. - -2006-07-27 Jim Meyering <jim@meyering.net> - - * src/chgrp.c (usage): Use correct grammar in description of the - --reference option - * src/chown.c (usage): Likewise. - -2006-07-26 Thomas Schwinge <tschwinge@gnu.org> (tiny change) - - * src/copy.c (set_author) [HAVE_STRUCT_STAT_ST_AUTHOR]: - Correctly access SRC_SB's element ST_AUTHOR. - -2006-07-26 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-failed: Adapt to match new expected output. - From Paul Eggert. - - * src/ls.c (print_color_indicator): Test for S_IFREG first, rather - than having the code test for all of the other types first. - Hoist the set-uid/gid-testing code "up" into this new block. - Classify any other type of file (e.g., S_TYPEISSHM, etc.) as - C_ORPHAN, not as C_FILE. +2009-07-03 Giuseppe Scrivano <gscrivano@gnu.org> -2006-07-26 Jim Meyering <jim@meyering.net> + tests: tail-2/wait: don't fail when run as root + * tests/tail-2/wait: Ensure that the unreadable file really is not + readable before trying to run "tail -f" on it. - Checking in a change from Paul. +2009-07-03 Pádraig Brady <P@draigBrady.com> - 2006-07-25 Paul Eggert <eggert@cs.ucla.edu> + doc: update the info on sort -b and -k + * doc/coreutils.texi (sort invocation): Mention in the description + of -b, that the locale can also affect whether blanks are significant. + Update the list of ordering options for a --key that cause it + to not inherit any global ordering options. + Update the list of ordering options that implicitly skip whitespace. - * src/ls.c (DT_INIT): Remove. All uses removed. - (enum filetype): Use an ordinary enum rather than trying to keep - the values in sync with DT_FIFO etc. That way, we don't have - to make special assumptions about them. All uses changed. - (whiteout): New constant member of enum filetype. - (filetype_letter): New constant, for use with enum filetype. - (FILETYPE_INDICATORS): New initializer list. - (print_dir): Add case for DT_WHT. - (gobble_file): If stat fails, don't discard information from - readdir; instead, preserve it so it can be printed. - (print_long_format): Fall back on readdir result if stat info - is not available. Use "?" to denote each unknown mode char, - instead of an overall "?", since we now know some of the mode - typically. - (print_type_indicator): Now that MODE isn't necessarily - useful, guard all uses. - Now that two blocks in the type-checking tree can set "type = C_FILE", - move the suffix-handling code out and down. + maint: generalize the development prerequisites docs + * README-hacking: Add a little more high level info and + merge notes on specific developer prerequisites into README-prereq + * README-prereq: Remove the Fedora 8 specific information + and generalize the information to be applicable to any system. -2006-07-26 Jim Meyering <jim@meyering.net> +2009-06-29 Jim Meyering <meyering@redhat.com> - Prepare for the above change. - * src/ls.c [struct fileinfo] (stat_ok): Rename from stat_failed, - and adjust uses. From a patch by Paul Eggert. + tail: add comments noting potential inotify-related problems + * src/tail.c (tail_forever_inotify): Add two FIXME comments. -2006-07-26 Jim Meyering <jim@meyering.net> +2009-06-28 Jim Meyering <meyering@redhat.com> - * src/ls.c: Correct indentation/formatting in a few places. + maint: bootstrap: merge changes from gnulib + * bootstrap: Indent using spaces, not TABs. -2006-07-25 Paul Eggert <eggert@cs.ucla.edu> + maint: bootstrap: sync submodule usage from gnulib + * bootstrap: Config for git submodule use only if .gitmodules exists. - * tests/cp/fail-perm: Use "chmod 0500" rather than "chmod 500". - Problem report and fix from Bob Proulx. - * NEWS: Clarify the "chmod 0500" news, and correct the vague - statements about compatibility with BSD. + maint: bootstrap: split a few long lines + * bootstrap (found_aux_dir): Avoid lines longer than 80 columns. -2006-07-25 Jim Meyering <jim@meyering.net> +2009-06-27 Jim Meyering <meyering@redhat.com> - * src/ls.c (gobble_file): When handling a stat-failed entry, - print the entry name not the absolute_name -- to be consistent - with the usual case. - * tests/ls/stat-failed: Update accordingly. + maint: don't change COPYING + * COPYING: Don't modify Copyright date list in imported file. + This file is one of very few exceptions in that we version-control it, + even though its primary source is another package. + Spotted by Eric Blake. - * src/ls.c: Add parens around the new uses of ?: ternary operator. + maint: add a rule to automate the annual copyright-year-update process + * build-aux/update-copyright: New file. + * Makefile.am (changelog_etc): Add update-copyright. + (update-copyright): New rule. - * src/dircolors.hin: Mention that ORPHAN refers not just to dangling - symlinks. +2009-06-27 Pádraig Brady <P@draigBrady.com> - Get --dired offsets right when handling stat-failed entries. - * src/ls.c (print_long_format): Be careful to increment P by the - appropriate amount, even when inode_number_width and nlink_width - are zero. - * tests/ls/stat-failed: Test for the above. + stdbuf: fix to stop -i option causing an assertion + * src/stdbuf.c (main): Fix the array bounds check in the assert + * tests/misc/stdbuf: Add a test for all standard streams - * src/ls.c (gobble_file) [USE_ACL]: Don't use-uninitialized the - have_acl member. That would happen for a directory with both a - non-stat'able entry and one with an ACL. +2009-06-25 Pádraig Brady <P@draigBrady.com> - * src/ls.c (gobble_file): Make it so failure to stat a - non-command-line file provokes an exit status of 1, not 0. - Say "cannot access" rather than "cannot stat". - * tests/ls/stat-failed: New file/test, for the above. - * tests/ls/Makefile.am (TESTS): Add stat-failed. - * tests/ls-2/tests (no-a-isdir-b): Update to reflect addition - of "cannot access " to diagnostic. + doc: clarify the tail inotify NEWS + * NEWS: Say why inotify was used - * src/ls.c: Declare stat_failed to be "bool", not "int" everywhere. +2009-06-23 Jim Meyering <meyering@redhat.com> - * src/ls.c [enum filetype] (command_line): Remove member. Not needed. - Replace all occurrences of "type == command_line" with the - equivalent, "command_line_arg". + maint: update all Copyright year lists to include 2009 - * src/ls.c: Apply the stat-failed parts of Red Hat's - coreutils-selinux.patch. From Ulrich Drepper. - This makes it so files not mentioned on the command line (e.g., - names read from a directory that *is* mentioned on the command - line) for which stat fails are still listed. With --color, - such files are colored just like ORPHANs (aka dangling symlinks). + maint: remove old TODO files + * lib/TODO: Remove file. + * tests/join/TODO: Likewise. - * src/df.c (n_valid_args): Declare global to be static. + doc: README-hacking tweak + * README-hacking: Move the "While building..." sentence down + to where it belongs. -2006-07-24 Jim Meyering <jim@meyering.net> + tests: tail-2/pid: include more info upon failure + * tests/tail-2/pid: Print unexpected $state upon failing. - * tests/ls/stat-dtype: Skip this test on reiserfs, since that file - system lacks d_type support. +2009-06-20 Jim Meyering <meyering@redhat.com> -2006-07-22 Paul Eggert <eggert@cs.ucla.edu> + doc: typo fix in README-hacking + * README-hacking: Fix a typo. + Don't make building from a git-cloned tree sound so hard. - * man/chmod.x: Update to reflect recent changes to coreutils.texi. +2009-06-19 Jim Meyering <meyering@redhat.com> -2006-07-21 Jim Meyering <jim@meyering.net> + build: update from gnulib (hash module updates; maint.mk tweak) + * gnulib: Update submodule to latest. - * src/su.c (usage): Correct typo in --help output: s/commmand/command/ - Reported by Tim Waugh. - Also remove the comment duplicating much of --help output. +2009-06-17 Jim Meyering <meyering@redhat.com> - * src/ls.c (FILE_TYPE_INDICATOR_OPTION): Reposition this new - name so the list remains alphabetized. + doc: fix a typo + * doc/coreutils.texi (stdbuf invocation): Insert missing "to". - Fix another bug: ls --indicator-style=file-type would call - stat for a symlink, even though it wasn't always needed. - In some cases, that unnecessary stat would cause ls to fail. - * src/ls.c (gobble_file): Don't treat symlinks specially (in - requiring a stat syscall). Remove the offending exclusion. +2009-06-17 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention the fix. + stdbuf: A new program to run a command with modified stdio buffering + * AUTHORS: Register as the author. + * NEWS: Mention this change. + * README: Add stdbuf command to list. + * configure.ac: Only enable on ELF systems with GCC. + * cfg.mk (sc_system_h_headers): Use VC_LIST_EXCEPT rather than + VC_LIST, so we can add an exception, if needed. + * .x-sc_system_h_headers: New file. Exempt libstdbuf.c. + * Makefile.am (syntax_check_exceptions): Add .x-sc_system_h_headers. + * doc/coreutils.texi (stdbuf invocation): Add stdbuf info. + * man/.gitignore: Ignore generated manpage. + * src/.gitignore: Ignore stdbuf and libstdbuf.so binaries. + * man/Makefile.am (stdbuf.1): Add dependency. + * man/stdbuf.x: New file with example usage. + * po/POTFILES.in: Reference new command and shared library sources. + * src/Makefile.am (build_if_possible__progs): Add stdbuf and libstdbuf, + (pkglib_PROGRAMS): Reference optional shared lib, + (libstdbuf_so_LDADD): Ensure we don't link with non PIC libcoreutils.a. + (libstdbuf_so_LDFLAGS): Add -shared GCC option, + (libstdbuf_so_CFLAGS): Add -fPIC GCC option. + (check-README): Exclude libstbuf. + (check-AUTHORS): ditto. + (sc_tight_scope): Exclude functions starting with __. + * src/libstdbuf.c: The LD_PRELOAD shared library to control buffering. + * src/stdbuf.c: New file to setup env variables before execing command. + * tests/Makefile.am: Reference new test file. + * tests/misc/help-version: Set expected exit codes. + * tests/misc/invalid-opt: ditto. + * tests/misc/stdbuf: Add 9 tests. - * tests/ls/stat-dtype: New file/test, for the above fix. - Also exercises the new df feature, below. - - * src/df.c (main): Fail and don't print the headers if no - file system is processed. This makes it easy to test whether - a specified directory is on a file system of a given type or types. - Otherwise, applications would have had to parse df's output. - E.g., is "." either ext3 or reiserfs: df -t ext3 -t reiserfs . - - Fix a bug: ls --file-type worked like --indicator-style=slash, - rather than like --indicator-style=file-type. - * src/ls.c (FILE_TYPE_INDICATOR_OPTION): New enum member. - (long_options): Map "file-type" to FILE_TYPE_INDICATOR_OPTION, - not to 'p'. - (decode_switches): Handle new case: FILE_TYPE_INDICATOR_OPTION. - * NEWS: Mention the fix. - * tests/ls-2/tests (file-type): New test, for the above fix. - -2006-07-19 Jim Meyering <jim@meyering.net> - - * src/ls.c (print_dir): Give a better diagnostic for failed opendir. - - * Makefile.am (EXTRA_DIST): Add build-aux/vc-list-files. - -2006-07-16 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: chmod, install, and mkdir now leave setgid and setuid bits - of directories alone unless you specify them explicitly. - install and mkdir now implement X correctly. - install now creates parent directories with mode 755, without - changing their owner or group. - * src/chmod.c (process_file): Adjust to mode_adjust API change. - * src/install.c: Include mkancesdirs.h. - (announce_mkdir, make_ancestor): New functions. - (DEFAULT_MODE): New macro, specifying initial value of 'mode'. - (mode): Use it. - (dir_mode, dir_mode_bits): New vars. - (main): Set dir modes separately from nondir, so that the X - op of -m works correctly. - (main): Remove cwd_errno cruft, since make_dir_parents no longer - affects cwd. Adjust to new make_dir_parents API. - (install_file_in_file_parents): 2nd arg is now char *, not char - const *. Use mkancesdirs instead of rolling our own code. - (change_attributes): Don't worry about AFS, since that kludge - should not be needed any more. - * src/mkdir.c (struct mkdir_options): New struct. - (announce_mkdir, make_ancestor): New functions. - (main): Use them. Adjust to mode_adjust API change. Stick with - umask 0. Use make_dir_parents for all the work. - * src/mkfifo.c (main): Adjust to new mode_adjust API. - * src/mknod.c (main): Likewise. - * tests/chmod/setgid: Do the setgid test instead of bailing. - * tests/mkdir/p-3: Remove re_protect case that no longer applies. - GNU chmod now behaves like other versions of chmod. - * tests/mkdir/perm: Add a test for the X bug. +2009-06-16 Jim Meyering <meyering@redhat.com> -2006-07-14 Paul Eggert <eggert@cs.ucla.edu> + doc: cp: describe an oddity of combining -H/-L and --preserve=links + * doc/coreutils.texi (cp invocation) [-L]: Elaborate. + [--preserve=links]: Remove comments saying that we need documentation + for just this situation. Provide more explanation and examples. + Reported by Brian M. Carlson in http://bugs.debian.org/525048. + +2009-06-15 Jim Meyering <meyering@redhat.com> + + maint: revert last change: we're not ready for "local" in scripts, yet + Revert "use a local var: more readable" + This reverts commit c0d82452883a10911c9cbc69c84144d99b7e6b08. + + use a local var: more readable + +2009-06-15 Giuseppe Scrivano <gscrivano@gnu.org> + + tail: use inotify if it is available + * NEWS: Document the new feature. + * m4/jm-macros.m4: Check if inotify is present. + * src/tail.c (tail_forever_inotify): New function. + (main): Use the inotify-based function, if possible. + * tests/Makefile.am: Add new tests for tail. + * tests/test-lib.sh (require_proc_pid_status_, get_process_status_): + New functions. + * tests/tail-2/pid: New file. + * tests/tail-2/wait: New file. + * tests/tail-2/tail-n0f: Refactor code into the test-lib.sh + require_proc_pid_status_ function. - * src/base64.c (do_decode): Output to parameter OUT, not to stdout. - This doesn't fix any bugs, since OUT always equals stdout, but it - makes the code easier to understand. +2009-06-13 Jim Meyering <meyering@redhat.com> -2006-07-14 Jim Meyering <jim@meyering.net> + diag: say "failed to...", rather than "cannot..." in a few diagnostics + * src/chroot.c (main): ...it's more precise. + * src/nohup.c (main): Likewise. + * src/setuidgid.c (main): Likewise. + * src/timeout.c (main): Likewise. - * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files, - rather than open-coding it. Now supports mercurial, too. - * .hgignore: New file. - * Makefile.am (EXTRA_DIST): Add .hgignore, which ignores nearly - all generated files, including ones like configure and po/*.po - that are currently version-controlled in cvs. +2009-06-13 Cliff Miller <cbm@whatexit.org> - * Makefile.am (EXTRA_DIST): Add a few more .??* files. - They've been in CVS, just haven't been distributed before this. - Distribute ChangeLog-2005, too. - (MAINTAINERCLEANFILES): Add THANKS-to-translators. + sort: Ignore fields where end position is before the start position + * NEWS: Mention the fix + * THANKS: Add Cliff Miller + * src/sort.c (keycompare): Ensure lima >= texta + * tests/misc/sort: Add 3 corresponding tests + +2009-06-11 Pádraig Brady <P@draigBrady.com> + + tests: ls --color, permissions override hardlink coloring + * tests/ls/multihardlink: Add a test case to demonstrate + and test this non obvious behavior. -2006-07-11 Paul Eggert <eggert@cs.ucla.edu> +2009-06-11 Kamil Dudka <kdudka@redhat.com> + + ls --color: do not colorize files with multiple hard links by default + * src/ls.c: Rename hl->mh, do not colorize files with multiple + hard links by default. + * src/dircolors.c: Rename HARDLINK -> MULTIHARDLINK, hl -> mh. + * src/dircolors.hin: Do not colorize files with multiple hard links by + default. + * tests/Makefile.am: Rename the test case accordingly. + * tests/ls/multihardlink: Additionally test ls' default behavior + and factor out some duplication. + * NEWS: Mention the change in behavior. + +2009-06-08 Pádraig Brady <P@draigBrady.com> + + maint: Add a syntax-check to ensure all .x-sc_ files are distributed + * Makefile.am: Add a couple of missing entries to + syntax_check_exceptions for distribution. + * cfg.mk: Add a rule to ensure the syntax_check_exceptions list + stays in sync with the .x-sc_* files in the repository. + +2009-06-07 Jim Meyering <meyering@redhat.com> + + build: update from gnulib + * gnulib: Update submodule to latest. + + sort: die immediately upon heap allocation failure + * src/sort.c (register_proc): Handle hash_insert failure. + +2009-06-04 Mike Frysinger <vapier@gentoo.org> + + dircolors: add screen-256color-bce to TERM list + * src/dircolors.hin: Add screen-256color-bce. + +2009-06-03 Jim Meyering <meyering@redhat.com> + + doc: HACKING: minor adjustments, additions + * HACKING (Amending...): Remove spurious "-e" used with commit --amend. + (log message policy): Mention the 72-column limit. + "build:" and "maint:" are common prefixes, these days. + + doc: adjust wording in README-prereq + + dircolors: recognize .xz, .txz, .tbz and .tlz suffixes + * src/dircolors.hin: Add .xz, .txz, .tbz and .tlz. + + doc: use newer URL for XZ utils + * README-hacking: Use <http://tukaani.org/xz/> + * README-prereq: Mention xz, not lzma. + +2009-06-03 Matěj Cepl <mcepl@redhat.com> + + doc: adjust README-prereq instructions + * README-prereq: Mention new requirement on automake-1.11, + with its new location and updated dependency on autoconf-2.62. + Remove the reference to coreutils-7.0 so that this file + implicitly refers to the latest or release version of coreutils. + Fix and clarify the instructions for updating the $PATH. + +2009-06-02 Jim Meyering <meyering@redhat.com> + + doc: HACKING: mention the GNU Coding Standards + * HACKING (Add documentation): Add a link to the GCS. + + build: no longer list gnulib's "memchr" module as obsolete + * bootstrap.conf (obsolete_gnulib_modules): Remove memchr from + the list, now that it fixes a problem in some modern C libraries. + (gnulib_modules): Add it here. + + build: make generated man/*.1 files read-only + This should help people notice that they are generated. + Note: each file already has a comment to that effect from help2man. + * man/Makefile.am (.x.1): Make generated files read-only. + Also, don't redirect directly to the target, $@. + + build (man/): use automake's new $(AM_V_GEN) variable + * man/Makefile.am (.x.1, check-x-vs-1, check-programs-vs-x): + Mark with $(AM_V_GEN), so that automake-1.11 prints + "GEN $@" by default (stick with "GEN" in spite of the latter two + rules not officially generating anything -- they're just tests). + + chroot: make --groups= work without --userspec=; be more robust + * src/chroot.c (set_additional_groups): Add comments. + Given an empty or all-comma group list, diagnose it and return nonzero. + When more than one group is invalid, diagnose all of them, + not just the first. + (main): Honor --groups= also when --userspec= is not specified. + Now that set_additional_groups consistently diagnoses its failures, + don't diagnose it separately here. + * tests/chroot/credentials: Do not invoke with an empty group list. + + chroot: don't set bogus user-ID or group-ID for --u=U: or --u=:G + * src/chroot.c (main): Initialize both "uid" and "gid". To -1. + This also allows one to set the user-ID or primary group-ID to 0, + in case it's not that already. + * tests/chroot/credentials: Test for the above. + + chroot: set-*-ID failure must provoke nonzero exit before execvp + * src/chroot.c (main): Exit upon set-group-ID or set-user-ID failure. + + tests: use "nobody" as the default group name in chroot test + * tests/test-lib.sh (NON_ROOT_GROUP): Use "nobody", not "nogroup". + + build: make distcheck rules use --enable-gcc-warnings + * dist-check.mk (warn_cflags): Remove definition, now that it's + been subsumed by --enable-gcc-warnings. + (my-distcheck): Use configure with --enable-gcc-warnings and remove + use of $(warn_cflags). - * src/system.h: Assume <dirent.h> exists, since gnulib assumes - this now as well. +2009-05-29 Eric Blake <ebb9@byu.net> -2006-07-09 Jim Meyering <jim@meyering.net> + head, tail: make --help less ambiguous + * src/head.c (usage): Use -n K, not -n N, to avoid confusion. + * src/tail.c (usage): Likewise. + * doc/coreutils.texi (head invocation, tail invocation): + Likewise. + Reported by Christophe Lyon. + +2009-05-26 Michael Speer <knomenet@gmail.com> + + sort: new --human-numeric-sort option to sort KiB MB etc. + * NEWS: Document the new option + * doc/coreutils.texi (sort invocation): ditto + * src/sort.c (main): handle the new --human-numeric-sort option (-h). + (human_numcompare): A new function to compare SI and IEC suffixes + before falling back to the standard --numeric comparison. + (find_unit_order): A new helper function to find the order + of magnitude of a number string as determined by its suffix. + (check_mixed_SI_IEC): A new helper function to exit with error + if both SI and IEC suffixes are presented. + * tests/misc/sort: Add 8 tests to test the new functionality. + * THANKS: Update + +2009-05-26 Giuseppe Scrivano <gscrivano@gnu.org> + + chroot: accept new options --userspec=U:G and --groups=G1,G2,G3 + * NEWS: Note chroot's new options. + * doc/coreutils.texi: Document them. + * src/chroot.c (main): Add support for --userspec and --groups. + * tests/Makefile.am (root-tests): Add chroot/credentials. + * tests/chroot/credentials: New file. + * tests/test-lib.sh: Define NON_ROOT_GROUP to a default value. + +2009-05-18 Pádraig Brady <P@draigBrady.com> + + doc: clarify the operation of the comm -123 parameters + * src/comm.c (usage): give more information on the -123 parameters, + with examples to show that they can be combined. + Addresses <http://savannah.gnu.org/bugs/?24974>. + * doc/coreutils.texi (comm invocation): Mention that the + column separators are suppressed along with the column. + Suggestion from Dan Jacobson. + * man/comm.x: Reference other commands that match adjacent lines. + * man/join.x: ditto. + * man/uniq.x: ditto. + +2009-05-18 Jim Meyering <meyering@redhat.com> + + build: require automake-1.11 + * bootstrap.conf (buildreq): Require automake-1.11, not 1.10b, + for our use of AM_SILENT_RULES. + * configure.ac (AM_INIT_AUTOMAKE): Likewise. + +2009-05-17 Jim Meyering <meyering@redhat.com> + + maint: HACKING: mention a few more useful git commands + * HACKING (Miscellaneous useful git commands): Add a few. + + build: avoid new "make distcheck" failure with gcc 4.5.0 20090517 + * dist-check.mk (warn_cflags): Add -Wno-enum-compare. + + build: avoid new warnings from gcc 4.5.0 20090517 + * configure.ac: Add an explicit -Wno-logical-op, + now that not listing -Wlogical-op is insufficient. + + maint: use ARRAY_CARDINALITY more + * src/sort.c (main): Use ARRAY_CARDINALITY, rather than open-coding it. + * src/factor.c (WHEEL_END): Likewise. + * src/csplit.c (main): Likewise. + * src/od.c: Likewise, + * src/ls.c (main): Likewise. + (N_ENTRIES): Remove definition. Use ARRAY_CARDINALITY instead. + * src/dircolors.c: Likewise. + (array_len): Remove definition. - * tests/mv/dir2dir: Adjust so failing with ENOTEMPTY is ok, too. - That happens with Linux/tmpfs. - * tests/mv/Makefile.am (TESTS): Add dir2dir. + build: tr: avoid a warning due to newer gcc's -Wenum-compare + * src/tr.c (N_CHAR_CLASSES): Remove anonymous enum definition. + (look_up_char_class): Use ARRAY_CARDINALITY, rather than N_CHAR_CLASSES. -2006-07-09 Paul Eggert <eggert@cs.ucla.edu> + maint: define ARRAY_CARDINALITY in system.h + * src/system.h (ARRAY_CARDINALITY): Define if not already defined. - Adjust to recent updates from gnulib. - * src/dd.c (apply_translations): Use toupper rather than - islower followed by toupper; it's simpler and typically - faster now that we assume at least C89 semantics. Similarly - for tolower. - * src/sort.c (inittables): Likewise. - * src/expand.c (expand): Don't assume that isprint etc. return - booleans (needed for pre-C99 hosts). - * src/fmt.c (check_punctuation): Likewise. - * src/ptx.c (initialize_regex, fix_output_parameters): Likewise. - * src/tr.c (is_char_class_member): Likewise. - * src/unexpand.c (unexpand): Likewise. - * src/join.c (is_blank): Remove; no longer needed. All uses - replaced by isblank (to_uchar (...)). - * src/pinky.c (create_fullname): Don't assume char is unsigned. - * src/printf.c (print_esc): Likewise. - * src/ptx.c (SKIP_NON_WHITE, SKIP_WHITE, SKIP_WHITE_BACKWARDS): - (copy_unescaped_string): Likewise. - * src/stat.c (print_it): Likewise. - * src/system.h (_D_EXACT_NAMELEN): Renamed from NLENGTH, for - convenience on GNU systems. All uses changed. Don't bother - looking for any dirent.h substitute other than ndir.h. - (D_INO): Remove unnecessary parentheses. - (IN_CTYPE_DOMAIN, ISGRAPH, ISPRINT, ISALNUM, ISALPHA): - (ISCNTRL, ISLOWER, ISPUNCT, ISSPACE, ISUPPER, ISXDIGIT): - (ISDIGIT_LOCALE, TOLOWER, TOUPPER): Remove. All uses changed - to ctype.h equivalents. - (isblank): Renamed from ISBLANK. Check for HAVE_DECL_ISBLANK too. - All uses changed. + build: turn off -Wlong-long + * configure.ac: With --enable-gcc-warnings, -Wlong-long would + cause compilation failure due to inclusion of lib/gethrxtime.h. + Initialize "nw". -2006-07-08 Jim Meyering <jim@meyering.net> +2009-05-16 Jim Meyering <meyering@redhat.com> - * tests/mv/dir2dir: New file, test for 2006-07-05 fix in copy.c. + maint: cfg.mk: remove now-unnecessary gnulib_dir definition + * cfg.mk (gnulib_dir): Remove definition, now that gnulib's + maint.mk provides the default we want. + * gnulib: Update submodule to latest. - * Makefile.maint (sc_the_the): New rule. +2009-05-15 Pádraig Brady <P@draigBrady.com> - * src/dd.c (skip): Remove one of two adjacent "the"s in a comment. - * tests/Coreutils.pm (run_tests): Remove one of two adjacent "then"s - in a comment. + tests: fix date-next-dow failure on older systems + * tests/misc/date-next-dow: In the strftime call use %Y-%m-%d + rather than the newer %F equivalent which is not available + on Solaris 8 for example. -2006-07-07 Jim Meyering <jim@meyering.net> +2009-05-14 Jim Meyering <meyering@redhat.com> - * NEWS: Mention that mv can now remove an empty destination directory, - and give an example. Prompted by a report from Florent Bayle. + build: update from gnulib, for rename.m4 fix, improved tests, etc. + * gnulib: Update submodule to latest. -2006-07-05 Jim Meyering <jim@meyering.net> + maint: README-release: minor improvements + * README-release: Mention gnu_ftp_host-{alpha,...} settings in cfg.mk. + Now that XZ_OPT is set via maint.mk, don't mention it here. - * src/ls.c (usage): Correct the description of -G: it is useful - only in a long listing. Reported by Martin Pool in - <https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/51653>. +2009-05-11 Eric Blake <ebb9@byu.net> - * man/chmod.x: Correct the description of the sticky bit. Reported - by Chris Moore via Ian Jackson in <http://bugs.debian.org/376745>. + truncate: fix bug in use of isspace + * src/truncate.c (main): Pass unsigned characters to isspace. + * NEWS: Mention this. - * src/copy.c (copy_internal): Don't work around old NFS clients like - SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and - ENOTEMPTY upon failed rename. Otherwise, we risk misinterpreting - a banal failure as a recursive move-into-self failure. - Reported by Florent Bayle in <http://bugs.debian.org/376749>. +2009-05-07 Jim Meyering <meyering@redhat.com> - * src/c99-to-c89.diff: Regenerate, to remove fuzz. + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. -2006-07-03 Jim Meyering <jim@meyering.net> + version 7.4 + * NEWS (Build-related): Mention make check fixes. - Plug another unusual leak. - (AD_mark_helper): Free malloc'd filename if hash_insert says - that string is already in the hash table. + admin: update NEWS + * NEWS (Bug fixes): Mention the date-related fixes. + (Portability): Mention the ACL-related fixes on *BSD. - The dev/inode of the topmost directory in each hierarchy were not - being recorded. - * src/remove.c (remove_cwd_entries): Don't call cycle_check here. - (AD_push): Call it from here instead. +2009-05-05 Pádraig Brady <P@draigBrady.com> - Fix two small leaks. - * src/remove.c (AD_stack_clear): New function. - (rm_1): Use it. - (AD_pop_and_chdir): Free *prev_dir just before longjmp. + doc: note the use of LC_COLLATE in comm, join and uniq + * doc/coreutils.texi (uniq invocation): Simplify the + text to remove the inconsequential mentioning of order, + while implying that LC_COLLATE can alter equality comparisons. + * src/comm.c (usage): Mention LC_COLLATE is significant. + * src/join.c (usage): Ditto. + * src/uniq.c (usage): Ditto. Also improve the summary. + Suggestion from Andries Brouwer - * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT): - Add $VG_PATH_PREFIX as a prefix to $PATH +2009-05-05 Jim Meyering <meyering@redhat.com> - * tests/envvar-check (vars): Add CDPATH and POSIXLY_CORRECT. - * tests/Makefile.am (evar-check): Remove rule. - (EXTRA_DIST): Remove .env-warn. - * tests/.env-warn: Remove file. No longer used. - Suggestion from Eric Blake. + tests: rm/one-file-system: umount more reliably + * tests/rm/one-file-system: Run umount via trap, so it runs + also upon irregular termination. -2006-07-02 Paul Eggert <eggert@cs.ucla.edu> +2009-05-05 Andreas Schwab <schwab@linux-m68k.org> - * src/system.h: Include <stdint.h> unconditionally, since we - now assume the stdint module. + tests: fix typo in check-AUTHORS rule + * src/Makefile.am (check-AUTHORS): Set locale. -2006-07-01 Paul Eggert <eggert@cs.ucla.edu> +2009-05-04 Jim Meyering <meyering@redhat.com> - * NEWS: With no operand, 'tail -f' now silently ignores the '-f' - only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set. - * src/tail.c (main): Implement this. - * tests/tail/Test.pm (f-pipe-1): Renamed from f-1. - (test_vector): Set POSIXLY_CORRECT for the f-pipe-* tests. + build: use a gnulib SHA1 that is not private + * gnulib: Update submodule to latest *public*. -2006-07-01 Jim Meyering <jim@meyering.net> + build: update from gnulib, for ACL-related fixes + * gnulib: Update submodule to latest. - * src/ln.c (do_link): Use new, shorter URL, for ag-review link. +2009-05-03 David Bartley <dtbartle@csclub.uwaterloo.ca> - * .x-sc_require_config_h: Add ^lib/xstrtold\.c$, so make distcheck - passes once again. + mv, rm: adapt to new and improved gnulib interfaces + Use gnulib's new priv-set module and updated write-any-file. + With them, the remove-called can_write_any_file function no + longer tries to drop the unlink-directory privilege, so now + each caller of remove must do that separately, calling + priv_set_remove_linkdir. + * bootstrap.conf (gnulib_modules): Add priv-set. + * src/rm.c: Include "priv-set.h". + (main): Call priv_set_remove_linkdir. + * src/mv.c (main): Likewise. + * gnulib: Update submodule to latest. -2006-06-30 Paul Eggert <eggert@cs.ucla.edu> +2009-05-03 Jim Meyering <meyering@redhat.com> - * NEWS: seq now uses long double internally rather than double. - It now defaults to a minimal fixed point format if possible. - It lets you use %a, %A, %E, %F, %G. - * src/Makefile.am (seq_LDADD): Remove $(SEQ_LIBM); add $(POW_LIB). - * src/seq.c: Don't include <math.h> or <xstrtol.h>; no longer needed. - (isfinite) [!defined isfinite]: New macro. - (separator, terminator): Now points to const. - (first, step, last): Remove. - (usage): Update to match new behavior. - (struct operand, operand): New type. - (scan_arg): Renamed from scan_double_arg, since we no longer use double. - All uses changed. - Compute and return a value of type operand, not double. - (long_double_format): Renamed from valid_format, and now returns a - new format with an "L" added if needed, if the original format was - valid. Allow %a, %A, %E, %F, and %G formats. - (print_numbers): Take numeric values as args rather than from globals. - Print long double, not double. - (get_width_format): Remove. - (get_default_format): New function. - (main): Implement new way of calculating default format. - Don't worry about locale's representation of the decimal point, since - the arguments are always processed in the C locale. - * tests/seq/basic (neg-2): Adjust to new default format. - (eq-wid-1, eq-wid-2): Resurrect these tests, since the new - implementation should do the right thing. - -2006-06-30 Jim Meyering <jim@meyering.net> - - * tests/stty/basic-1: Work around an intermittent test failure - on HP-UX 11.11. Report and analysis from Bob Proulx. - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7475 - -2006-06-28 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Support obsolete usages like "sort +1 -2" even when - conforming to POSIX 1003.1-2001, since this is a pure extension to - POSIX. Problem reported by Christian in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00220.html - * src/sort.c (main): Implement this. - - * src/system.h (CLOSEDIR): Remove. All uses changed to closedir. - Autoconf 2.60 says this stuff was obsolete. - -2006-06-28 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Regenerate, to remove fuzz. - -2006-06-28 Bob Proulx <bob@proulx.com> (tiny change) - - * tests/mv/i-link-no: Work around HP-UX /bin/sh tracing problem - (set -x when VERBOSE=yes) when stderr is redirected before stdout - causing shell tracing of the stdout redirection to be written to - the stderr file. Avoid problem and test failure on HP-UX by - redirecting stderr last. - * tests/dd/unblock-sync: Order shell file redirections for - stderr and stdout in the common style. - tests/acl: Likewise. - -2006-06-27 Jim Meyering <jim@meyering.net> - - * tests/misc/cat-proc: Try to avoid any spurious numeric - differences in frequently-changing /proc/cpuinfo. - Reported by Nelson Beebe. + tests: correct the "make check"-run check-AUTHORS test + * src/Makefile.am (check-AUTHORS): Revert back to using + en_US.UTF-8, to ease parsing (English-only) text around the + list of names, even when .po files are not installed. + Reported by Andreas Schwab. + Along the way, use $(AM_V_GEN), not "@". + (sc_tight_scope): Use $(AM_V_GEN) here, too. + * gnulib: Update submodule to latest, for the proper_name_utf8 fix + that makes --version output print the UTF-8 rendering of author names + in more cases. -2006-06-26 Jim Meyering <jim@meyering.net> + tests: add tests of e.g., date -d 'next monday' + * tests/misc/date-next-dow: New file. + * tests/Makefile.am (TESTS): Add misc/date-next-dow. + * gnulib: Update submodule to latest, for getdate.y that + handles "next Monday" properly when run on a Monday. - Attempt rmdir (actually, unlinkat-with-AT_REMOVEDIR) upon any - fd_to_subdirp failure, not just when errno == EACCES. - * src/remove.c (remove_dir): Use unlinkat-with-AT_REMOVEDIR, not - rmdir, here, even though rmdir may happen to be adequate. +2009-05-01 Jim Meyering <meyering@redhat.com> - * NEWS: rm no longer fails to remove an empty, unreadable directory - * src/remove.c (remove_cwd_entries): If we can't open a directory, - and the failure is not being ignored, try to remove the directory - with rmdir (aka unlinkat-with-AT_REMOVEDIR), in case it's empty. - Problem report and test case from Paul Eggert in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7425>. + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. - * tests/rm/empty-inacc: New test, for the above. + version 7.3 + * NEWS: Record release date. - Avoid a segfault for wc --files0=- < /dev/null. - * src/wc.c (compute_number_width): Return right away if nfiles == 0. + maint: tweak release-building notes + * README-release: Specify -j1 on the command to run all tests. + Otherwise, running some in parallel would cause failures, e.g., + for rm/ext3-perf and tail-2/assert-2. -2006-06-25 Jim Meyering <jim@meyering.net> +2009-04-30 Eric Blake <ebb9@byu.net> - * NEWS: wc accepts a new option --files0-from=FILE, where FILE - contains a list of NUL-separated file names. + stdopen: remove unused code + * m4/stdopen.m4: Delete now-unused file. + * lib/stdopen.h: Likewise. + * lib/stdopen.c: Likewise. - * src/wc.c: Include "readtokens.h". - (usage): Describe the new option, and adjust the `Usage': - with this option, no FILE may be specified on the command line. - (main): Handle the new option. - * tests/misc/wc-files0: New tests, for the above. - * tests/misc/wc-files0-from: Likewise. - * tests/misc/Makefile.am (TESTS): Add wc-files0. +2009-04-30 Jim Meyering <meyering@redhat.com> + + build: update from gnulib, for fixed lib/signbitl.c + * gnulib: Update submodule to latest. + + build: "make check" now fails in a friendlier manner for missing Perl + * doc/Makefile.am (sc-lower-case-var): Don't redirect stderr of + $(PERL) (which is sometimes build-aux/missing) to /dev/null, + so that a failing "make check" explains that Perl is not installed. + Reported by James Youngman. + + build: doc: emit something for each "make check"-run rule + * doc/Makefile.am: Use $(AM_V_GEN) in place of each leading "@". + (check-texinfo): Align line-continuation backslashes. + +2009-04-29 Jim Meyering <meyering@redhat.com> + + build: update from gnulib, for the lib/*-state.c compilation fixes + * gnulib: Update submodule to latest. + +2009-04-28 Pádraig Brady <P@draigBrady.com> + + misc: correct NEWS entry about id -G portability + * NEWS (Portability): getgrouplist has the portability issues, + not getgroups. + +2009-04-28 Jim Meyering <meyering@redhat.com> + + df: adjust comment to match recent code change + * src/df.c (main): Update comment to match. + + misc: mention the df vs. automount change + * NEWS (Portability): Mention that df now accommodates the new + behavior of some automounters. + + misc: alphabetize NEWS entries + +2009-04-28 Tomas Smetana <t.smetana@gmail.com> + + df: use open(2), not stat, to trigger automounting + * src/df.c (main): When iterating over command-line arguments, + attempting to ensure each backing file system is mounted, use + open, not stat. stat is no longer sufficient to trigger + automounting, in some cases. Based on a suggestion from Ian Kent. + More details in http://bugzilla.redhat.com/497830 + +2009-04-28 Ondřej Vašík <ovasik@redhat.com> + + tests: ensure that cp's -a doesn't silence --preserve=context + * tests/cp/cp-a-selinux: Ensure that the -a option does not silence + error diagnostics from --preserve=context, when preserving context + is required. + + tests: add test for xattr diagnostics on dest. FS lacking xattr support + * tests/cp/cp-mv-enotsup-xattr: Ensure that xattr diagnostics are + displayed correctly when destination filesystem lacks xattr support. + * tests/Makefile.am (root_tests): Add new root-only test. + +2009-04-27 Jim Meyering <meyering@redhat.com> + + copy.c: factor out test for errno value indicating "unsupported" + * src/copy.c (errno_unsupported): New function. + (copy_attr_error, copy_internal): Use it. + +2009-04-27 Ondřej Vašík <ovasik@redhat.com> + + cp -a: diagnose failure when preserving xattr/context required + * src/copy.c (copy_attr_by_fs): Always print diagnostics when preserving + xattrs is required. + (copy_attr_by_name): Likewise. + (copy_reg): Always print diagnostics when preserving SELinux + context is required. + (copy_internal): Likewise. Also, do not ignore ENOTSUP and ENODATA + errors when preserving SELinux context is required. + * NEWS (Bug fixes): Mention it. + + mv: ignore xattr-preservation failure when not supported by filesystem + *src/copy.c: Do not warn about xattr-preservation failure when xattrs + are not supported and preservation of xattrs is not explicitly required. + Reported by Eric Sandeen in http://bugzilla.redhat.com/496142 + +2009-04-25 Jim Meyering <meyering@redhat.com> + + build: update from gnulib, for the vc-list-files fix + * gnulib: Update submodule to latest. + + build: adjust use of automake's new $(AM_V_GEN) variable + * src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h): + (version.c, version.h): Use $(AM_V_GEN) only as a prefix of an existing + command. Otherwise, it provokes warnings from some "make" programs. + Suggestion from Ralf Wildenhues. + +2009-04-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + tests: fix check-AUTHORS skip logic + * src/Makefile.am (check-AUTHORS): When this test is skipped, be + sure to avoid all commands in the recipe, not just those passed + to the first shell. + +2009-04-25 Eric Blake <ebb9@byu.net> + + cfg.mk: update to latest gnulib change + * cfg.mk (bootstrap-tools): Override maint.mk default to include + bison. + * gnulib: Update to latest gnulib. + +2009-04-24 Jim Meyering <meyering@redhat.com> + + build: move coreutils-specific rules from maint.mk to new file + * dist-check.mk: New file: coreutils-specific rules extracted + from maint.mk, now that maint.mk has migrated to gnulib. + * Makefile.am (EXTRA_DIST): Add dist-check.mk. + * coreutils/cfg.mk: Include $(srcdir)/dist-check.mk. + * gnulib: Update submodule to latest. + + tests: avoid unusual (~1-in-20) failure of a new test + * tests/misc/sort: Remove one of the generated tests. + 363 remain in this file alone. + + build: use automake's new $(AM_V_GEN) and $(AM_V_at) variables + * src/Makefile.am (dircolors.h, wheel-size.h, wheel.h, fs.h): + (version.c, version.h): Mark with $(AM_V_GEN) and $(AM_V_at), + so that the latest automake prints "GEN $@" by default. + +2009-04-24 Simon Josefsson <simon@josefsson.org> + + build: use maint.mk from gnulib + * maint.mk: Remove file. Now it's generated. + * .gitignore: Ignore it. + * bootstrap.conf (gnulib_modules): Add maintainer-makefile. + * gnulib: Update submodule to latest. + +2009-04-23 Jim Meyering <meyering@redhat.com> + + build: make --enable-silent-rules the default + * configure.ac (AM_INIT_AUTOMAKE): Remove silent-rules. Instead,... + (AM_SILENT_RULES): Use this, with it's undocumented [yes] argument. + Those who want verbose build output may configure with + --disable-silent-rules or use "make V=1". + + * gnulib: Update submodule to latest. + + sort -m: don't segfault when output file is also an input file + * src/sort.c (avoid_trashing_input): Fix an off-by-one error and + guard the use of memmove. + * NEWS (Bug fixes): Mention it. + * tests/misc/sort: Add tests to exercise the offending code. + * THANKS: Update. + Reported by Otavio Salvador in http://bugs.debian.org/525048. + + tests: make the check-AUTHORS test more portable, now that it's... + run as part of "make check". + * src/Makefile.am (check-AUTHORS): Don't depend on en_US.UTF-8. + Instead, use the French UTF8 locale, if configure found one. + If not found, just skip the test. + + avoid parallel "make distcheck" failure due to two run-in-src/ rules + Move the check-AUTHORS rule from "syntax-check" to "check". + * maint.mk (local-checks-available): Remove check-AUTHORS. + (check-AUTHORS): Remove rule. + * src/Makefile.am (CLEANFILES): Add $(no_install__progs), + since they too are built sometimes. + (check-AUTHORS): Split a longer-than-80 sed command. + (../AUTHORS): Remove obsolete rule. + +2009-04-22 Jim Meyering <meyering@redhat.com> + + cp: work around linux kernel bug: short-read != EOF on /proc + Remove the optimization that avoided up to 50% of cp's read syscalls. + Do not assume that a short read on a regular file indicates EOF. + When reading from a file in /proc on linux [at least 2.6.9 - 2.6.29] + into a 4k-byte buffer or larger, a short read does not + always indicate EOF. For example, "cp /proc/slabinfo /tmp" + copies only 4068 of the total 7493 bytes. This optimization + (25719a33154f0c62ea9881f0c79ae312dd4cec7a, Improve performance a bit + by optimizing away; 2005-11-24) appears to have been worth less than + a 2% speed-up (and usually much less), so the impact of removing it + is negligible. + + * src/copy.c (copy_reg): Don't exit the loop early. + * tests/cp/proc-short-read: New test, lightly based on a suggestion + from Mike Frysinger, to exercise this fix. + * tests/Makefile.am (TESTS): Add cp/proc-short-read. + * NEWS (Improve robustness): Mention this change. + +2009-04-22 Jim Meyering <meyering@redhat.com> + + tests: avoid new "make distcheck" failure due to newer File::Temp + With newer perl (e.g., Fedora 10's 4:5.10.0-68.fc10), tests/CuTmpdir.pm + stopped removing its temporary directories, with diagnostics like this: + cannot remove path when cwd is /c/coreutils/tests/misc/seq.tmp-e2up \ + for /c/coreutils/tests/misc/seq.tmp-e2up: at \ + /usr/lib/perl5/5.10.0/File/Temp.pm line 902 + Chdir out of the target directory before that code runs: + * tests/CuTmpdir.pm (END): chdir '..'. + (chmod_tree): Remove explicit "chdir $dir". + +2009-04-19 Jim Meyering <meyering@redhat.com> + + doc: update README + * README: (Reporting bugs): List the bug-reporting address here, too, + not just in the following more test-oriented paragraph. + Reported by Tim Mooney. + All changes are no longer listed in version-controlled ChangeLog + files, so note that contributions are attributed in the commit logs. + Mention bootstrap.conf, now that it's the authoritative source of + minimal prerequisite program/version# pairs. + +2009-04-19 Aurelien Jarno <aurelien@aurel32.net> + + tests: avoid failure of install-C test on FreeBSD UFS file system + * tests/install/install-C: Use 2755 (set-gid), not 1755 (sticky), + to test install -C with non-permission mode bits set. At least on + FreeBSD with a UFS file system, a non-root user may not set the + sticky bit on a non-directory. + +2009-04-19 Jim Meyering <meyering@redhat.com> + + comment touch up: insert a space between "#" and text of comment + * bootstrap: It's easier to read that way. + +2009-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + fix comment typos + * bootstrap: Fix comment typos. + * src/pr.c: Likewise. + +2009-04-17 Jim Meyering <meyering@redhat.com> + + maint: bootstrap: sync a tiny change from gnulib + * bootstrap: rename variable to sync with gnulib: s/\$depth/$shallow/ + +2009-04-16 Jim Meyering <meyering@redhat.com> + + * gnulib: Update submodule to latest. + + build: use '.'-relative name, gnulib_dir + * cfg.mk (gnulib_dir): Use "gnulib", not "/gnulib", now that + the former is a git submodule, and guaranteed to exist. + +2009-04-15 Jim Meyering <meyering@redhat.com> + + maint: clean up skipped syntax-check rules + * cfg.mk (local-checks-to-skip): Remove patch-check and changelog-check. + * maint.mk (patch-check): Remove rule. + (local-checks-available): Remove patch-check. + (changelog-check): Remove rule. + +2009-04-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + build: avoid parallel distcheck failure + * Makefile.am (ALL_RECURSIVE_TARGETS): Initialize here, too, + to please automake. Add install-root, check-root, distcheck-hook. + * cfg.mk (ALL_RECURSIVE_TARGETS): Add sc_tight_scope. + * maint.mk (ALL_RECURSIVE_TARGETS): Add patch-check, + check-AUTHORS, maintainer-distcheck, vc-dist, taint-distcheck, + my-distcheck, alpha, beta, major. + +2009-04-10 Jim Meyering <meyering@redhat.com> + + doc: fix a typo: s/is a is a/is a/ + * doc/coreutils.texi (Putting the tools together): Fix typo. + + build: tight-scope test: don't build excluded programs + * src/Makefile.am (sc_tight_scope): Depend on $(bin_PROGRAMS), + not $(all_programs) + + gnulib: update to latest: fix ls -v & sort -V + * NEWS (Bug fixes): Mention it. + + maint: remove obsolete utime module + * bootstrap.conf (obsolete_gnulib_modules): Remove utime. + + maint: put each module name on its own line; sort + * bootstrap.conf (gnulib_modules): List them one per line. + +2009-04-09 Jim Meyering <meyering@redhat.com> + + tests: misc/ls-misc: avoid shadowing local decl of $e + * tests/misc/ls-misc (make_j_d): Rename latter $e to $env + +2009-04-09 Pádraig Brady <P@draigBrady.com> + + id: fix infinite loop on some systems + Steven Parkes reported that `id -G $USER` went into an infinite loop + on Darwin systems for users in more than 10 groups: + http://bugs.gentoo.org/show_bug.cgi?id=264007 + * gl/lib/mgetgroups.c (mgetgroups): Work around buggy getgrouplist + implementations that don't update the required size correctly, + by doubling the result buffer and retrying. Also return the + parameter updated by getgrouplist rather than its return value, + as the documentation doesn't actually state the number of groups + stored is returned by getgrouplist. + * tests/misc/id-groups: Add test to exercise this logic + * tests/Makefile.am: Reference new test + * NEWS: Mention the fix + * THANKS: Update + +2009-04-07 Jim Meyering <meyering@redhat.com> + + maint: avoid "make syntax-check" failure + * src/install.c (main): Tweak syntax of new diagnostic. + +2009-04-07 Pádraig Brady <P@draigBrady.com> + + install: deprecate the --preserve_context option + src/install.c: Print a warning when --preserve_context + rather than --preserve-context is used as per FIXME. + + maint: remove compiler warnings from randint and randread modules + * gl/lib/randint.c: Remove unused MAX macro + * gl/lib/randread.c (randread_error): Add __attribute__((__noreturn__)) + + shred,sort,shuf: don't use /dev/urandom by default + Suggestion from Steven Schveighoffer at: + http://savannah.gnu.org/patch/?6797 + to greatly speed up the random passes done by shred. + * gl/lib/randread.c: Default to using the internal + pseudorandom generator, rather than reading /dev/urandom + * src/shred.c (usage): remove mention of /dev/urandom + * src/shuf.c (usage); ditto + * src/sort.c (usage): ditto + * doc/coreutils.text: Document the new behaviour + for aquiring random data. + + maint: Clarify ambiguous refs to Linux kernels or GNU/Linux systems + * README-prereq: s_linux_GNU/Linux_ or s_linux_Linux kernel_ + * README-valgrind: ditto + * src/chown-core.c: ditto + * src/dd.c: ditto + * src/df.c: ditto + * src/ls.c: ditto + * src/mv.c: ditto + * src/pwd.c: ditto + * src/remove.c: ditto + * src/shred.c: ditto + * src/stat.c: ditto + * src/su.c: ditto + * src/system.h: ditto + * src/timeout.c: ditto + * src/truncate.c: ditto + + doc: add missing documentation for some SELinux options + * doc/coreutils.texi (ls invocation): Describe the --context (-Z) option + (install invocation): Describe the --preserve-context and -Z options + (id invocation): Describe the --context (-Z) option + (mkdir invocation): ditto + (mknod invocation): ditto + (mkfifo invocation): ditto + * TODO: remove the todo item + +2009-04-06 Jim Meyering <meyering@redhat.com> + + * doc/code-vs-command: Remove long-unused, never-distributed file. + +2009-04-04 Jim Meyering <meyering@redhat.com> + + gnulib: update to latest: includes Solaris 8 portability fixes + + maint: clean up Makefile.am, rename remaining ChangeLog files + * Makefile.am (changelog_etc, syntax_check_exceptions): Define. + (EXTRA_DIST): Use. Remove names that are now automatically + included: build-aux/git-version-gen, build-aux/vc-list-files. + * build-aux/ChangeLog-2007: Rename from */ChangeLog. + * doc/ChangeLog-2007: Likewise. + * lib/ChangeLog-2007: Likewise. + * m4/ChangeLog-2007: Likewise. + * po/ChangeLog-2007: Likewise. + + tests: tweak po_check syntax check + * maint.mk (sc_po_check): Don't let dangling lib/*.[ch] links cause + spurious "grep: lib/file.h: No such file or directory" warnings. + + tests: improve ChangeLog syntax check + * maint.mk (sc_changelog): Use $(VC_LIST_EXCEPT), not find. + Don't hang when there are no ChangeLog files. + (sc_require_config_h): For the file-name-filter, use grep -l + to be slightly more efficient. + (sc_require_config_h_first, _header_without_use, sc_program_name): + Likewise. + +2009-04-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + tests: make syntax-checks more robust + * maint.mk (_prohibit_regexp): Add ';' at end of ':'-introduced + comment so that the comment doesn't gobble up the following test + for a missing regexp definition. + (_header_without_use): Escape all '.'s in a header file name, + not just the first one. + +2009-04-03 Jim Meyering <meyering@redhat.com> + + * cfg.mk (old_NEWS_hash): Regenerate once more. + + doc: adjust 7.2 "cat,cp,install,mv,split speed-up" NEWS item + * NEWS: Reword an entry from 7.2 and change "linux" to "GNU/Linux". + The latter was requested by Richard Stallman. + * cfg.mk (old_NEWS_hash): Regenerate. + +2009-04-03 Pádraig Brady <P@draigBrady.com> + + ls: fix alignment when month names have varying widths + Reported by Samuel Thibault and Stéphane Raimbault, as the glibc fr_FR + locale has recently changed to use the official but variable width + abbreviated month names. Other glibc locales also have variable widths. + http://sourceware.org/ml/libc-locales/2008-q1/msg00035.html + http://sourceware.org/bugzilla/show_bug.cgi?id=9859 + * NEWS: Mention the fix + * gl/lib/mbsalign.c: A new module to align and truncate a + string in a specified number of screen cells, while handling + multi-byte characters appropriately. + * gl/lib/mbsalign.h: Ditto + * gl/modules/mbsalign: Ditto + * bootstrap.conf: Reference the new module + * src/ls.c (abmon_init): New function, precompute the abbreviated + months aligned left in a minimum width column <= 5 screen cells. + (align_nstrftime): New function, replace the first %b in the + format specification to strftime with the precomputed month string. + Note using the cached month strings speeds up `ls -lU` by around 17% + on glibc-2.7-2 on linux at least. Also if we implement this function + using heap storage rather than automatic storage, and use snprintf + instead of strcpy, ls will slow down by 2% and 1% respectively + (i.e. a net gain of 14% rather than 17%). + * tests/ls/abmon-align: A new test to test ls alignment for + various formats and locales + * tests/Makefile.am: Reference the new test + +2009-04-02 Pádraig Brady <P@draigBrady.com> + + doc: Clarify the help for version sorting in ls and sort + * src/ls.c: Update the -v help description + * src/sort.c: Update the -V help description + +2009-04-02 Jim Meyering <meyering@redhat.com> + + doc: adjust README-prereq instructions + * README-prereq: Reverse order of -b/--track options. + Pádraig Brady mentioned that is required with at least git-1.5.3.6. + Invoke automake's own bootstrap script. + +2009-04-02 C de-Avillez <hggdh2@gmail.com> + + build: require automake-1.10b or newer + * bootstrap.conf: Require at least automake-1.10b. + * README-prereq: Mention 1.10b, not 1.10a. + +2009-04-02 Jim Meyering <meyering@redhat.com> + + tests: skip mv/i-3 if /dev/stdin is unreadable + * tests/mv/i-3: Skip if /dev/stdin is unreadable. + Reported by Sergei Steshenko. + +2009-03-31 Jim Meyering <meyering@redhat.com> + + build: set automake's silent-rules option via configure.ac + * bootstrap: Revert commit 9f39fa855, 2009-03-28, + "build: use automake's --silent-rules option when possible". + * configure.ac (AM_INIT_AUTOMAKE): Instead, set it here. + Require the just-released version of automake: 1.10b. + + tests: enable automake's color-tests and parallel-tests via configure.ac + * gnulib-tests/Makefile.am (AUTOMAKE_OPTIONS): Don't define here. + * tests/Makefile.am (AUTOMAKE_OPTIONS): Likewise. + * configure.ac (AM_INIT_AUTOMAKE): Instead, add color-tests and + parallel-tests here. + +2009-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + build: use Automake's new parallel-tests feature + * build-aux/check.mk: Remove, not needed any more. + * tests/Makefile.am (AUTOMAKE_OPTIONS): Add parallel-tests and + color-tests. + * tests/check.mk: Do not include build-aux/check.mk any more. + (SUFFIXES, TEST_LOGS): Remove. + (TESTS_ENVIRONMENT): Use $$f rather than $$tst in $PERL invocation. + * gnulib-tests/Makefile.am: Do not include build-aux/check.mk. + (AUTOMAKE_OPTIONS): New macro, add parallel-test and color-tests. + (TEST_LOGS): Remove. + +2009-03-31 Jim Meyering <meyering@redhat.com> + + * README-release (savannah news): Also mention the Subject: to use. + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. + + version 7.2 + * NEWS: Record release date. + +2009-03-29 Jim Meyering <meyering@redhat.com> + + tests: don't use lang-default from individual tests + * tests/sample-test: Don't recommend using lang-default here. + It is now run for each test automatically, via TESTS_ENVIRONMENT. + * tests/dd/reblock: Don't source lang-default here. + * tests/misc/truncate-fail-diag: Likewise. + + tests: other-fs-tmpdir: remove just-added duplicate /usr/tmp + * tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Remove 2nd /usr/tmp. + + tests: other-fs-tmpdir: avoid bogus "skipped **********..." diagnostic + * tests/other-fs-tmpdir (CANDIDATE_TMP_DIRS): Add /dev/shm to the list. + Don't use a line of asterisks as the first line of the "why skipped" + diagnostic, now that that line is printed on 'make check's stderr. + +2009-03-28 Jim Meyering <meyering@redhat.com> + + build: use automake's --silent-rules option when possible + * bootstrap: Use automake's --silent-rules option. + +2009-03-27 Jim Meyering <meyering@redhat.com> + + tests: test-argv-iter.c: avoid declaration-after-stmt + * gl/tests/test-argv-iter.c: Move declaration "up", so as not + to ruffle feathers of crufty compilers. We accommodate such + compilers here solely because this module may migrate to gnulib. + Tiny patch by Matthew Woehlke. + +2009-03-27 Eric Blake <ebb9@byu.net> + + tests: fix 'make sc_tight_scope' on cygwin + * src/Makefile.am (sc_tight_scope): Ignore leading underscores in symbols. + +2009-03-27 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious test failure in set-GID build dir + * tests/install/install-C-root: Skip this test if in set-gid directory. + Reported by Sven Joachim and C de-Avillez. + + tests: migrate setgid-check into test-lib.sh + * tests/test-lib.sh (skip_if_setgid_): New function. + * tests/setgid-check: Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove setgid-check. + * tests/chmod/c-option: Use the new function rather than sourcing + the separate file. + * tests/cp/cp-parents: Likewise. + * tests/install/install-C: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + +2009-03-26 Jim Meyering <meyering@redhat.com> + + tests: mark the rm/ext3-perf test as "very" expensive + * tests/rm/ext3-perf: Relegate this test to the very_expensive + category, since it is failing too often for me, when run in + parallel (-j4) with other disk-hammering tests. This test fails + when it takes too long, so the fact that it fails under pressure + is an inconvenience more than a real problem. + + * gnulib: Update submodule to latest. + +2009-03-26 Paul Eggert <eggert@cs.ucla.edu> + + df: port the known-value fix to AIX as well + * src/df.c (known_value): New function, which also works on AIX + /proc file systems. + (df_readable, show_dev): Use it instead of hardcoding comparison to + UINTMAX_MAX. Suggested by Jim Meyering and Matthew Woehlke. + + df: fix a bug when totaling unknown values + * src/df.c (show_dev): Don't add UINTMAX_MAX to grand totals, as that + value indicates that the true value is unknown; adding it effectively + subtracts 1 from the total, whereas we want to leave the total alone. + +2009-03-25 Jim Meyering <meyering@redhat.com> -2006-06-24 Jim Meyering <jim@meyering.net> + tests: don't fail "make syntax-check" on cygwin + * maint.mk (NEWS_hash): Remove trailing " -" or " *-". + * cfg.mk (old_NEWS_hash): Regenerate, removing " -". + Reported by Eric Blake. - * src/md5sum.c (DIGEST_BUFFER): Remove now-unused definitions. +2009-03-25 Eric Blake <ebb9@byu.net> -2006-06-22 Jim Meyering <jim@meyering.net> + pwd: support -L and -P + * src/pwd.c (longopts): New variable. + (logical_getcwd): New function. + (main): Use it. + (usage): Document new options. + * doc/coreutils.texi (pwd invocation): Likewise. + * NEWS: Likewise. + * TODO (pwd): Mark it done. + * tests/misc/pwd-option: New file. + * tests/Makefile.am (TESTS): Add test. + * THANKS: Update. + Reported by Paul D. Smith, in savannah bug 24949. + +2009-03-25 Ondřej Vašík <ovasik@redhat.com> + + doc: update suffix regex in version sort + * doc/coreutils.texi: Reflect current filevercmp regex. + +2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + tests: CuTmpdir.pm: avoid use of undefined variable in warning + * tests/CuTmpdir.pm (chmod_tree): Do not warn if $dir is undefined. + +2009-03-24 Jim Meyering <meyering@redhat.com> + + tests: ls -v: exercise yet another change in gnulib's new filevercmp + * tests/misc/ls-misc: Add names with ~ and ~.1~ suffixes. + + * gnulib: Update submodule to latest. + +2009-03-24 Kamil Dudka <kdudka@redhat.com> + + ls: make it possible to disable coloring of hard links + * src/ls.c (print_color_indicator): Don't color hard links if disabled + (when there is an empty hl= in the LS_COLORS environment variable). + * tests/ls/hardlink: Add test case for disabled hard link highlighting. + * NEWS: Mention the change. + +2009-03-21 Jim Meyering <meyering@redhat.com> + + tests: search only files that are under version control + * maint.mk (sc_error_exit_success): Search only files + that are under version control. + (sc_makefile_path_separator_check): Likewise. + Check *.mk files, too, not just Makefile.am files. + + tests: follow own advice: use $(PATH_SEPARATOR), not ":" + * maint.mk (coreutils-path-check): Use the variable, not the literal. + + tests: modernize: use $(var) makefile notation, not @var@ + * maint.mk (sc_makefile_path_separator_check): Recommend + the use of $(PATH_SEPARATOR), not @PATH_SEPARATOR@. + Remove an obsolete comment. + +2009-03-20 Jim Meyering <meyering@redhat.com> + + tests: teach sc_dd_O_FLAGS about new syntax in dd.c + * cfg.mk (sc_dd_O_FLAGS): Adapt to new syntax. - * src/tee.c (tee_files): Rename from tee, to avoid conflict with - the function in glibc's <fcntl.h>. Reported by Andreas Schwab. +2009-03-20 Eric Blake <ebb9@byu.net> -2006-06-19 Jim Meyering <jim@meyering.net> + dd: use a more portable definition of O_FULLBLOCK + * src/dd.c (O_FULLBLOCK): Compute its value without using a 180KB + macro. This avoids triggering a compilation failure with HP-UX's cc. + Reported by Matthew Woehlke. + +2009-03-20 Jim Meyering <meyering@redhat.com> + + tests: avoid spurious mkdir/selinux test failure on HP-UX 11.23 + * tests/mkdir/selinux: Accept yet another diagnostic. + Reported by Matthew Woehlke. + +2009-03-19 Jim Meyering <meyering@redhat.com> + + tests: df/total-verify: avoid test failure with older Perl + * tests/df/total-verify: Don't use perl's -f option. + Reported by Matthew Woehlke. + + * gnulib: Update submodule to latest. + +2009-03-18 Jim Meyering <meyering@redhat.com> + + tests: adjust sort-continue not to fail under valgrind + * tests/misc/sort-continue: Don't run cat inside fd-limited shell. + If sort fails to run in an fd-limited shell, skip the test. + +2009-03-18 Paul Eggert <eggert@CS.UCLA.EDU> + + tests: add another sort/nmerge test + * tests/Makefile.am (TESTS): Add sort-merge-fdlimit. + * tests/misc/sort-merge-fdlimit: New file. + * doc/coreutils.texi (sort invocation): Document that we now silently + lower nmerge if necessary. + Patch by Paul Eggert, Nima Nikzad, Max Chang, Alexander Nguyen, + Sahil Amoli, and Nick Graham. + +2009-03-18 Paul Eggert <eggert@CS.UCLA.EDU> + + sort: handle fd exhaustion better when merging + This is an alternative to my 9 March patch labeled "Silently lower + nmerge; don't (sometimes incorrectly) range-check" + <http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00070.html>. + It differs by not using 'dup' to probe for extra file descriptors; + instead, it simply calls 'open' (and 'pipe') to open files and pipes, + until one of these calls fails due to file descriptor exhaustion; it + then backs off by 1, does a merge with the files that it has opened, + and then retries with the (now-smaller) number of files. + + This patch requires quite a few more changes to the source code than + the earlier patch, but it is in some sense "better" because it doesn't + need to call "dup" ahead of time in order to decide whether "open" or + "pipe" will fail. Also, it's more robust in the case where "open" or + "pipe" fails with errno==EMFILE because some system-wide limit is + exhausted. + + * src/sort.c (create_temp_file): New arg SURVIVE_FD_EXHAUSTION. + (stream_open): New function, containing guts of xfopen. + (xfopen): Use it. + (pipe_fork): Set errno on failure. + (maybe_create_temp): New function, containing guts of create_temp. + (create_temp): Use it. + (open_temp): Distinguish failures due to file descriptor exhaustion + from other failures, and on fd exhaustion return a notice to caller + rather than dying. Don't test execlp's return value; when it returns, + it *always* returns -1. + (open_input_files): New function. + (mergefps): New arg FPS. It's now the caller's responsibility to open + the input and output files. All callers changed. + (mergefiles): New function. + (avoid_trashing_input, merge): Handle the case where a single merge + can't merge as much as we wanted due to file descriptor exhaustion, by + merging as much as we can and then retrying. + * tests/Makefile.am (TESTS): Add misc/sort-continue. + * tests/misc/sort-continue: New file. + * THANKS: Add Glen Lenker and Matt Pham who coauthored this patch. + +2009-03-18 Jim Meyering <meyering@redhat.com> + + maint: normalize leading-TAB indentation in Makefiles + * maint.mk (sc_makefile_TAB_only_indentation): New rule. + Replace each TAB+8-space sequence with two TABs. + * man/Makefile.am: Likewise. + * build-aux/check.mk: Likewise. + I used this command (run it more than once, if needed): + t=$'\t'; git grep -l -E "$t {8}"|grep -E 'Makefile|\.mk$' \ + | xargs perl -pi -e 's/\t {8}/\t\t/' - * Makefile.cfg (local-checks-to-skip): Add changelog-check, - so this check is not run as part of "make distcheck". +2009-03-15 Jim Meyering <meyering@redhat.com> -2006-06-18 Bob Proulx <bob@proulx.com> (tiny change) + maint: remove long-unused Makefile + * tests/sort-time/Makefile: Remove long-unused file. - * tests/misc/pwd-long: Fix typo (s/neq/ne/) in previous change. + maint: remove unused include and definitions + * gl/lib/randread.c (__attribute__): Remove unused definition. + (ATTRIBUTE_UNUSED): Likewise. + * gl/lib/selinux-at.c (_): Remove unused definition. + Don't include <gettext.h>. No longer needed. -2006-06-18 Jim Meyering <jim@meyering.net> + * gnulib: Update submodule to latest. - * tests/misc/pwd-long: Make error output a little clearer. +2009-03-14 Jim Meyering <meyering@redhat.com> -2006-06-17 Jim Meyering <jim@meyering.net> + system.h: correct compilation error: MAX not defined + * src/system.h (io_blksize): Move definition down, so it follows that + of MAX -- to avoid compilation failure on OpenSolaris. Reported by + David Bartley. Details in + http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00190.html - * tests/rm/inaccessible: Skip this test on systems without openat - support. Reported by Bob Proulx. + * gnulib: Update to pull in select/interix work-around. -2006-06-15 Bob Proulx <bob@proulx.com> (tiny change) +2009-03-13 Kamil Dudka <kdudka@redhat.com> - * tests/misc/mknod: Improve permission checks to handle - running mkdir test in set-gid directories. + doc: update "version sort" documentation + * doc/coreutils.texi: Reflect current filevercmp behavior. -2006-06-14 Jim Meyering <jim@meyering.net> +2009-03-12 Jim Meyering <meyering@redhat.com> - * tests/du/basic: Revamp not to hard-code file system block sizes. + tests: groups-version: don't require that id be built + * tests/misc/groups-version: groups is now independent of id. -2006-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + tests: skip the groups-dash test when "groups" is not built + * tests/misc/groups-dash: Skip if groups is not being installed. + Suggested by Mike Frysinger. + Also fail if groups exits with nonzero status. + +2009-03-12 Pádraig Brady <P@draigBrady.com> + + maint: mention Autoconf version required to build Automake + * README-prereq: coreutils currently requires an unreleased + version of Automake, so mention the minimum version of Autoconf + required to build that. Suggestion from James Youngman. + +2009-03-12 Jim Meyering <meyering@redhat.com> + + * gnulib: Update submodule to latest. + +2009-03-11 Ondřej Vašík <ovasik@redhat.com> + + cp: make -a option preserve xattrs, but with reduced diagnostics + * copy.c (copy_attr_by_fd): Reduce xattr diagnostics for 'cp -a'. + (copy_attr_by_name): Likewise. + * cp.c (main): Preserve xattrs with -a option, when possible. + * doc/coreutils.texi: Document that xattrs are preserved with + cp -a, with no added diagnostics. + * NEWS: Mention the change. + * tests/misc/xattr: Add tests for 'cp --preserve=all' and 'cp -a'. + +2009-03-11 Pádraig Brady <P@draigBrady.com> + + maint: Document how to best to enable gcc warnings for developers + * README-hacking: Mention --enable-gcc-warnings configure option + * configure.ac: Don't scare developers away from using gcc warnings + +2009-03-11 Jim Meyering <meyering@redhat.com> + + maint: remove an obsolete FIXME comment + * src/Makefile.am (../AUTHORS): Remove obsolete FIXME comment. + There are no longer any installed *.sh programs. + +2009-03-11 Pádraig Brady <P@draigBrady.com> + + cat: Fix immediate output of processed data + Introduced by commit 790892db, 2006-06-08 "Ensure that cat works ...". + * NEWS: Mention the bugfix. + * src/cat.c (cat): Fix the typo which stopped the writing + of processed data before a blocking read() is done. + * tests/misc/cat-buf: Add to ensure processed data is not buffered. + * tests/Makefile.am: Reference the new test. + + cat,cp,mv,install,split: Set the minimum IO block size used to 32KiB + This is following on from this change: + [02c3dc9d 2008-03-06 cat: use larger buffer sizes ...] + which increased the IO block size used by cat by 8 times, + but also capped it at 32KiB. + * NEWS: Mention the change in behavior. + * src/system.h: Add a new io_blksize() function that + returns the max of ST_BLKSIZE or 32KiB, as this was + seen as a good value for a minimum block size to use + to get good performance while minimizing system call overhead. + * src/cat.c: Use it. + * src/copy.c: ditto + * src/split.c: ditto + +2009-03-08 Jim Meyering <meyering@redhat.com> + + tests: add a test for newly-fixed bug in comm --check-order + * tests/misc/comm (ooo-prefix): Add a test for today's fix. + * NEWS (Bug fixes): Mention it. + +2009-03-08 Bruno Haible <bruno@clisp.org> + + comm: fix a bug in its new --check-order option + * src/comm.c: Include memcmp2.h. + (check_order): Use memcmp2 instead of memcmp. + * bootstrap.conf (gnulib_modules): Add memcmp2. + +2009-03-08 Jim Meyering <meyering@redhat.com> + + tests: ls -v: exercise the bug fixed by gnulib's new filevercmp + * tests/misc/ls-misc (version-sort): New test. + (mk_file): New function. + Reported by Josh Triplett in <http://bugs.debian.org/517558>. + Details in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16902 + * NEWS (Bug fixes): Mention it. + + gnulib: sync submodule to latest + +2009-03-07 Jim Meyering <meyering@redhat.com> + + pr: fix a bug whereby --indent=N (-o) did not indent header lines + * src/pr.c (print_header): Honor chars_per_margin also for the header. + Inspired by a patch from C de-Avillez. + This change also adjusts two other %*s directives to be %*.*s instead, + (for the padding on either side of "file_text") to correct a bug that + could make pr print one space of padding instead of none. + * NEWS (Bug fixes): Mention it. + * tests/pr/o3Jml24f-lm-lo: Adjust for new expected output. + * tests/pr/o3a3Sl24f-tn: Likewise. + * tests/pr/o3a3Snl24f-tn: Likewise. + * tests/pr/o3a3l24f-tn: Likewise. + * tests/pr/o3b3Sl24f-tn: Likewise. + * tests/pr/o3b3Snl24f-tn: Likewise. + * tests/pr/o3b3l24f-tn: Likewise. + * tests/pr/o3mSl24f-bl-tn: Likewise. + * tests/pr/o3mSnl24fbltn: Likewise. + * tests/pr/o3ml24f-bl-tn: Likewise. + + bootstrap: add to XGETTEXT_OPTIONS + * bootstrap.conf (XGETTEXT_OPTIONS): Add c-format --flag options + for verror and verror_at_line; alphabetize. + + maint: use a git submodule for gnulib + * .gitmodules: New file, to track gnulib. + * gnulib: New file, created by running this: + git submodule add git://git.sv.gnu.org/gnulib.git gnulib + + build: allow ./bootstrap --srcdir=... to work with a git submodule + * bootstrap (git_modules_config): Use GIT_CONFIG, not GIT_CONFIG_LOCAL. + The latter was removed in v1.5.6.1-109-gdc87183. + + build: avoid "multiply defined..." warning from automake + * Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS) via +=, not =, to + avoid "multiply defined..." warning from automake. + +2009-03-06 Jim Meyering <meyering@redhat.com> + + cat: use larger buffer sizes to reduce read/write-syscall overhead + * src/cat.c (max): Remove definition. Use MAX from system.h instead. + (compute_buffer_size): New function to compute the input and output + buffer sizes, which are now set at 8 times st_blksize with a maximum + of 32KiB. Previously the typical block sizes used were 1KiB for pipes + and 4KiB for files, and now will be 8KiB and 32KiB respectively. + (main): Use it. + This change can double throughput on modern systems. For timings, + see http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/16040 + Suggestion from Tzvi Rotshtein. + + maint: avoid new unused-macro warnings from gcc + * src/ls.c (ASSERT_MATCHING_DEV_INO): Comment-out unused definition, + to match commented-out use. + * src/install.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): + (READ_SIZE): Remove definitions of unused macros. + * src/mv.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Likewise. + * src/dd.c (max): Likewise. + * src/expand.c (OUTPUT_BLOCK): Likewise. + * src/csplit.c (ALLOC_SIZE): Likewise. + * src/pr.c (NULLCOL): Likewise. + * src/ptx.c (Sword): Likewise. + * src/unexpand.c (OUTPUT_BLOCK): Likewise. + * src/factor.c (NDEBUG): Likewise. + + tests: fix just-introduced typo in rm/ext3-perf + * tests/rm/ext3-perf: Fix typo in commit 2b1e6636bea, + 2009-02-27 "tests: rm/ext3-perf: relax this test". + + maint: remove spurious case-ignoring option from a test + * maint.mk (sc_trailing_blank): Remove useless/harmless ignore_case=1. + +2009-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + policy: use git to help avoid trailing white space + * HACKING (Avoid trailing white space): Describe how git can help. + +2009-03-03 Andreas Schwab <schwab@linux-m68k.org> + + Update Andreas Schwab's email address + * THANKS: Update Andreas Schwab's email address. + +2009-03-03 Jim Meyering <meyering@redhat.com> + + maint: improve release-related process and documentation + * README-release: Fix typo. it's "maintainer-clean". + Refer to HACKING for full list of dependencies. + Use cvs add's -ko option to inhibit $Id$-style keyword expansion. + * maint.mk (web-manual): Factor out definition of $(manual_title). + (vc-dist): Set XZ_OPT=-9ev for the final "make dist". + * cfg.mk (manual_title): Define it here. + Suggestions from Eric Blake. + +2009-03-02 Jim Meyering <meyering@redhat.com> + + dist: document our release procedure + * README-release: New file. + + dist: automate the post-release web-manual update process + * maint.mk (web-manual): New rule, from m4's maint.mk. + * bootstrap.conf (gnulib_modules): Add gendocs. + + tests: rm/ext3-perf: relax this test + * tests/rm/ext3-perf: If set-up takes too long, use the set-up time + as the removal time limit. Otherwise, a parallel "make check" would + usually fail when run with RUN_VERY_EXPENSIVE_TESTS=yes. + + tests: don't skip setgid-dir related tests on SELinux-enabled systems + * tests/setgid-check: The change in ls (use ".", not "+") caused + this check always to report the working directory as set-gid. + Now, use stat, not ls. + + tests: reflect the s/+/./ SELinux indicator change + * tests/mkdir/perm: Now that this test is no longer always skipped, + make it work independently of ls: use stat, not ls, to get perm string. + * test-lib.sh (rwx_to_mode_): Use stat, not ls to get perm string + This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set. + + tests: when skipping a test, say why on screen, not just in the log + * tests/test-lib.sh: Redirect also to descriptor 9. + Better one-line why-skip diagnostics. + * tests/check.mk (TESTS_ENVIRONMENT): Redirect 9 to stderr. + * tests/misc/pwd-unreadable-parent: Remove redundant "skipping..." diag. + + maint: enable many gcc warnings + * bootstrap.conf (gnulib_modules): Add manywarnings. + * configure.ac: Use gl_MANYWARN_ALL_GCC, and exclude options + I don't want or that provoke too many warnings. + (WARN_CFLAGS, WERROR_CFLAGS): Define. + (lint, GNULIB_PORTCHECK): Define. + (_FORTIFY_SOURCE): Define to 2. + + maint: avoid gcc warning about missing attributes + * src/prog-fprintf.h (prog_fprintf): Declare with printf attribute. + * src/system.h (usage): Declare with the "noreturn" attribute. + + maint: avoid warnings about potentially-counterproductive "inline" + * src/dd.c (quit): Remove "inline" attribute. + * src/test.c (advance, unary_advance): Likewise. + + maint: cp: avoid gcc warning about unused macro definitions + * src/cp.c (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE): Remove. + + dist: do not emit MD5 or SHA1 checksums into announcement template + * maint.mk (announcement): Use announce-gen's new --no-print-checksums. + +2009-02-28 Jim Meyering <meyering@redhat.com> + + maint: detect unnecessary inclusion of signal.h + * maint.mk (sc_prohibit_signal_without_use): New rule. + + maint: remove an unnecessary inclusion of <signal.h> + * src/operand2sig.c: Don't include <signal.h>. + +2009-02-28 Pádraig Brady <P@draigBrady.com> + + tests: sort: Check skipping blanks in multibyte locales + * tests/misc/sort: On Fedora 8 at least, sort -k1b,1 + mishandles blanks in multibyte locales, so add test. - * tests/du/Makefile.am (TESTS_ENVIRONMENT): Pass $(PERL), for - files0-from test. +2009-02-27 Jim Meyering <meyering@redhat.com> -2006-06-11 Jim Meyering <jim@meyering.net> + * HACKING: avoid trailing white space - * .gitignore: New file. - * Makefile.am (EXTRA_DIST): Add .gitignore. +2009-02-27 Jim Meyering <meyering@redhat.com> - Setting TIME_STYLE=long-iso in the environment would make the - cp/same-file test fail. - * tests/envvar-check (vars): Add TIME_STYLE to the list. - * tests/cp/same-file: Revert last change. - Source the envvar-check script, to ensure that TIME_STYLE - settings don't affect these tests. + cp: diagnose invalid "cp -rl dir dir" right away, once again + Running "mkdir dir; cp -rl dir dir" would create dir/dir/dir/... + rather than diagnosing the "copy-into-self" failure. -2006-06-11 Paul Eggert <eggert@cs.ucla.edu> + The easy fix would have been to revert this part of the change + [3ece0355 2008-11-09 cp: use far less memory in some cases] + that introduced the bug: - * tests/cp/same-file: Execute 'ls' in the C locale, so that it - uses POSIX time stamp formats. Problem reported by John Nixon in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00062.html>. + - remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev); + + if (!x->hard_link) + + remember_copied (dst_name, dst_sb.st_ino, dst_sb.st_dev); -2006-06-10 Jim Meyering <jim@meyering.net> + However, that would have induced the failure of the new cp/link-heap + test, due to the added memory pressure of recording 10k dev/ino pairs. + And besides, I liked that improvement and wanted to keep it. - * NEWS: Mention the AIX-strndup-bug vs. dircolors workaround. + Now that it's obvious recording the just-created-directory dev/ino + needn't depend on the setting of hard_link, I realized it is necessary + to record the pair only for the first directory created for each + source command-line argument. + + I made that change, then noticed the new test, cp -rl a d d, would pass + when run once, yet output the into-self diagnostic twice. Also note + the side effect: it creates d/a and d/d. However, running that same + command a second time, now with the modified directory, would fail. - Require a "Version N.M" line at the top of the ChangeLog - file only when making the actual release, not when running - "make distcheck". - * Makefile.maint (maintainer-distcheck): Don't depend on - changelog-check. - (alpha beta major): Depend on it here, instead. + That turned out to be due to the fact that although the first into-self + failure was detected in copy_dir, that function would continue copying + other entries regardless -- and that would make it fail (eventually) + with the unwanted recursion. -2006-06-08 Jim Meyering <jim@meyering.net> + * src/copy.c (copy_internal): This function needed an indicator of + whether, for a give command line argument, it had already created its + first directory. If so, no more need to record dev/ino pairs. If this + is the first, then do record its pair. Hence, the new parameter. + (copy_dir, copy): Update callers. + (copy_dir): Upon any into-self failure, break out of the loop. + * tests/cp/into-self: Test for the above. + Reported by Mikael Magnusson. - Ensure that cat works with any of the options, -A -v -e -E -T, - when applied to files in /proc and /sys, even when the FIONREAD - ioctl produces nonsensical results. Before this change, cat would - produce no output (or truncated output), for some linux kernels. +2009-02-26 Jim Meyering <meyering@redhat.com> + + tests: stty-row-col would hang when run in the background + * tests/misc/stty-row-col: Don't hang when run in background + at least on Solaris 10 and OpenBSD. - * src/cat.c (write_pending): New function, factored out of cat. - (cat): Also interpret a negative ioctl/FIONREAD count as indicating - that there are bytes to read. Some versions of linux-2.6.16 do that. - Write any pending output before returning. - Reported by Dan Jacobson in <http://bugs.debian.org/370583>. +2009-02-26 Pádraig Brady <P@draigBrady.com> + + sort: Fix two bugs with determining the end of field + * src/sort.c: When no specific number of chars to skip + is specified for the end field, always skip the whole field. + Also never include leading spaces from next field. + * tests/misc/sort: Add 2 new tests for these cases. * NEWS: Mention this bug fix. - * tests/misc/cat-proc: New file. Test for the above. - * tests/misc/Makefile.am (TESTS): Add cat-proc. - -2006-06-07 Paul Eggert <eggert@cs.ucla.edu> - - * src/expr.c (eval4): Detect overflow properly when multiplying - INTMAX_MIN * -1. - -2006-06-06 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: The 'expr' command now detects and reports integer overflow. - (It would be better to use extended precision instead, but that - would be more work.) - * src/expr.c (integer_overflow): New function. - (eval4, eval3): Check for integer overflow. - -2006-06-05 Paul Eggert <eggert@cs.ucla.edu> - - Fix problems when building with Solaris/SVR4/etc. make, which uses a - different and somewhat bogus implementation of VPATH. In the - directory tests/misc, rename tests whose names might appear in the - Automake-generated rules. For example, we can't use a test named - 'test', since Automake generates a rule that contains the text - "if test -f ./$$tst; ...", and this might expand to something like - "if ../../../coreutils-6.0/tests/misc/test -f ./$$test; ...", - which executes the 'test' script rather than the 'test' command. - * tests/misc/false-status: Renamed from tests/misc/false. - * tests/misc/pwd-long: Renamed from tests/misc/pwd. - * tests/misc/sort-merge: Renamed from tests/misc/sort. - ($prog): Set to 'sort' rather than to $PROG. - * tests/misc/test-diag: Renamed from tests/misc/test. - * tests/misc/Makefile.am (PROG): Take the basename of $$tst, - in case Solaris make has prepended the directory. - (TESTS): Adjust to above renamings. - * tests/misc/expand: Don't assign to PROG; no longer needed - now that Makefile.am sets PROG to the basename. - * tests/misc/fold: Likewise. + * THANKS: Add bug reporter. + Reported by Davide Canova. -2006-06-03 Jim Meyering <jim@meyering.net> +2009-02-26 Eric Blake <ebb9@byu.net> - Make `cp --link --no-dereference' work also on systems where the - link system call cannot create a hard link to a symbolic link. - * src/copy.c (copy_internal) [LINK_FOLLOWS_SYMLINKS]: Don't use - the link syscall on a symlink when it would do the wrong thing. - Based on the patch by Aurelien Jarno: <http://bugs.debian.org/329451> - * tests/cp/link-no-deref: New file/test for the above. - * tests/cp/Makefile.am (TESTS): Add link-no-deref. - * NEWS: Mention the change (doesn't affect Linux). + argv-iter: avoid variadic macro + * gl/lib/argv-iter.h (_ATTRIBUTE_NONNULL_): Don't assume C99 variadic + macros are portable yet; needed for at least IRIX/MIPSpro. + * THANKS: Update. + Reported by Stuart Shelton. -2006-06-01 Paul Eggert <eggert@cs.ucla.edu> +2009-02-26 Pádraig Brady <P@draigBrady.com> - Fix some porting problems in the test cases reported by - Ralf Wildenhues for HP-UX 11.23 in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00238.html - * tests/help-version: Don't assume that \< \> works in sed. - * tests/misc/close-stdout: Don't assume that >&- works. - Add a /dev/full test. - * tests/touch/no-create-missing: Don't assume that >&- works. + tests: Remove system specific error strings + * tests/dd/skip-seek-past-file: Just check for + the non system specific part of the error strings. + This was causing an erroneous failure on NetBSD 1.6 at least. -2006-05-30 Jim Meyering <jim@meyering.net> +2009-02-25 Jim Meyering <meyering@redhat.com> - * src/ls.c (usage): Add `v' to the list of sorting-related options. - From Justin Pryzby. + tests: using printf with \e for ESC isn't portable + * tests/ls/color-clear-to-eol: Use \33, not \e for ascii ESC. + This test failed when using the built-in printf of /bin/sh from + NetBSD 1.6. -2006-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +2009-02-24 Pádraig Brady <P@draigBrady.com> - * tests/cp/fail-perm: source lang-default. - * tests/rm/inaccessible: Likewise. + Ensure comment for translators is included in po file + Issue reported by Göran Uddeborg. -2006-05-28 Jim Meyering <jim@meyering.net> + * src/system.h: Move the translator comment adjacent + to the translated string. + * THANKS: Update Göran's email address. - * tests/rm/inaccessible: AIX 4.3.3 gives a different diagnostic. - Recognize it, too. Reported by Ralf Wildenhues, in - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html +2009-02-22 Tobias Stoeckmann <tobias@bugol.de> -2006-05-27 Jim Meyering <jim@meyering.net> + truncate: fix typo in man page + * man/truncate.x: Fix spelling. + * THANKS: Update. - * src/chgrp.c: Support new options: --preserve-root and - --no-preserve-root. Somehow this program was skipped when those - options were added to chown, chmod, and rm. Reported by - vaqflabuopac@spammotel.com in <http://bugs.debian.org/365656>. - * NEWS: Mention this. +2009-02-22 Andrew Church <achurch@achurch.org> -2006-05-25 Paul Eggert <eggert@cs.ucla.edu> + doc: describe dd's status=noxref option + * doc/coreutils.texi (dd invocation): Describe status=noxref. - * NEWS: Remove mention of --seed. We'll replace it with something - better, and don't want to indicate that it is supported. - * src/sort.c (usage): Likewise. +2009-02-22 Jim Meyering <meyering@redhat.com> -2006-05-20 Jim Meyering <jim@meyering.net> + tests: reenable temporarily-disabled tests using e.g., trap '' TTOU + Revert "tests: skip newly-modified tests unconditionally..." + This reverts commit 773a88d33f68e50a2919c8a8310c646a7e5fabc2. + * tests/misc/stty: Don't skip. + * tests/misc/stty-invalid: Likewise. + * tests/mv/i-3: Likewise. - * src/chmod.c (main): Use FTS_PHYSICAL here, too. +2009-02-22 James Youngman <jay@gnu.org> - * src/du.c (main): Rename local, s/symlink_deref_bit/symlink_deref_bits/ - and arrange for -D to set fts' FTS_PHYSICAL bit as well as - FTS_COMFOLLOW. Spotted by Justin Pryzby. + update James Youngman's email address + * THANKS: Update James Youngman's email address - * gnupload: Merge changes from automake, retaining the ""--to... - kludge to placate overzealous `make distcheck' check. +2009-02-21 Jim Meyering <meyering@redhat.com> -2006-05-19 Jim Meyering <jim@meyering.net> + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. - * src/du.c (main): Don't let -D, -L, or -P turn off the internal - FTS_TIGHT_CYCLE_CHECK directory traversal option. - Reported by Justin Pryzby in http://bugs.debian.org/367691 + version 7.1 + * NEWS: Record release date. -2006-05-15 Jim Meyering <jim@meyering.net> + * README: Mention that c99-to-c89.diff is no longer maintained. - * src/cp.c (usage): Correct description of -a: s/-dpR/-dpPR/. - From Tomas Pospisek. + tests: skip new install-C test if working directory is set-gid + * tests/install/install-C: Use setgid-check. -2006-05-13 Jim Meyering <jim@meyering.net> + tests: skip newly-modified tests unconditionally, just to be safe + * tests/misc/stty-invalid: Skip. + * tests/misc/stty: Likewise. + * tests/mv/i-3: Likewise. - * tests/mv/no-target-dir: Test two more cases. + tests: don't let SIGTTOU/TTIN hang a backgrounded "make check" + Running "make check &" would hang due to SIGTTOU and SIGTTIN signals. + * tests/misc/stty: Ignore SIGTTOU. + * tests/misc/stty-invalid: Likewise. + * tests/mv/i-3: Ignore SIGTTIN. + +2009-02-20 Jim Meyering <meyering@redhat.com> + + doc: ls: clarify description of -s + * src/ls.c (usage): Make the description of -s mention "allocated size", + so that it's less likely to be confused with an apparent byte-count. + Suggested by Vito Caputo. + +2009-02-19 Jim Meyering <meyering@redhat.com> + + doc: dd: document that the default block size is 512 bytes + * src/dd.c (usage): Document the default block size. + * doc/coreutils.texi (dd invocation): Document that the default + block size (bs, ibs, obs) is 512 bytes. + Reported by Petr Uzel. + +2009-02-18 Jim Meyering <meyering@redhat.com> + + maint: changing NEWS' copyright date must not invalidate checksum + * maint.mk (NEWS_hash): Don't let the Copyright date line contribute + to the checksum. + * cfg.mk (old_NEWS_hash): Update to reflect the new policy. + + doc: explain how to recover from changes committed to master + * HACKING: A beginner's commit-to-master is so common, + and causes enough confusion, that we describe how to recover. + + maint: add copyright notices + * HACKING: Add copyright notice. + * tests/test-lib.sh: Likewise. + +2009-02-18 Ondřej Vašík <ovasik@redhat.com> + + cp: -a now preserves SELinux context, with reduced diagnostics + * copy.c (copy_reg): Reduce SELinux context diagnostics for 'cp -a'. + (copy_internal): Likewise + * copy.h (cp_options): Add boolean reduce_diagnostics. + * cp.c (usage): Say that --archive (-a) behaves like -dR --preserve=all. + (cp_option_init): Initialize added reduce_diagnostics. + (main): Add reduce_diagnostics for the -a option, and preserve SELinux + context, if possible. + * mv.c (cp_options_init): Initialize new cp_options booleans. + * install.c (cp_option_init): Likewise. + * NEWS: Mention those behaviour changes. + * doc/coreutils.texi: Document --preserve=context, document that + diagnostics are not shown for failures of non-mandatory attributes + (just SELinux at the moment). + * tests/cp/cp-a-selinux: Check not only failures, but succesful use + of preserving SELinux context in cp. + +2009-02-18 Eric Blake <ebb9@byu.net> + + add missing copyright dates + * NEWS: Add 2009 to copyright. + * README: Likewise. + * README-hacking: Likewise. + * TODO: Likewise. + * doc/Makefile.am: Likewise. + * m4/prereq.m4: Likewise. + * src/nl.c: Likewise. + * src/seq.c: Likewise. + * tests/cp/cp-i: Likewise. + * tests/install/install-C: Likewise. + * tests/install/install-C-root: Likewise. + * tests/install/install-C-selinux: Likewise. + * tests/misc/seq: Likewise. + * tests/mv/mv-n: Likewise. + +2009-02-17 Eric Blake <ebb9@byu.net> + + install: compare files in binary mode + * src/install.c (need_copy): Use O_BINARY when it matters. + +2009-02-17 Kamil Dudka <kdudka@redhat.com> + + install: add --compare (-C) option to install file only when necessary + * src/install.c (have_same_content): New function to compare files + content. + (extra_mode): New function checking for non-permission bits in mode. + (need_copy): New function to check if copy is necessary. + (main): Handle new option --compare (-C). + (copy_file): Skip file copying if not necessary. + (usage): Show new option --compare (-C) in --help. + * tests/install/install-C: Basic tests for install --compare (-C). + * tests/install/install-C-root: Tests requiring root privileges. + * tests/install/install-C-selinux: Tests requiring SELinux. + * tests/Makefile.am: Add new tests for install --compare (-C). + * doc/coreutils.texi: Document new install option --compare (-C). + * NEWS: Mention the change. + +2009-02-17 Ondřej Vašík <ovasik@redhat.com> + + nl: correct long-option name for -v in usage + * nl.c (usage): Use --starting-line-number, not --first-page for -v + +2009-02-15 Jim Meyering <meyering@redhat.com> + + doc: id: make --help and .man more descriptive + * src/id.c (usage): Improve description, based on a suggestion + from Brian M. Carlson in http://bugs.debian.org/514675 + * man/id.x: Use a better one-liner, based on the one at top of id.c. + +2009-02-14 Pádraig Brady <P@draigBrady.com> + + seq: Fix equal width calculation when '.' added to last number + Issue reported by Samuel Hapák. + <http://lists.gnu.org/archive/html/bug-coreutils/2009-02/msg00139.html> + + * src/seq.c: Account for '.' added to "last" number. + * tests/misc/seq: Add corresponding test. + * NEWS: Mention the fix. -2006-05-11 Jim Meyering <jim@meyering.net> +2009-02-13 Jim Meyering <meyering@redhat.com> - mv -T DIR EMPTY_DIR no longer fails unconditionally - * src/copy.c (copy_internal): Don't manually prohibit a move where - the destination is an existing directory. Sometimes doing that is - valid. Let the rename system call enforce the rules. That is - allowed only when the source is a directory and the destination - directory (to be replaced) is empty. Reported by Eric Blake. - * tests/mv/no-target-dir: New file/test for this. - * tests/mv/Makefile.am (TESTS): Add no-target-dir. - * NEWS: Mention this. + du,chgrp,chmod,chown: use FTS_DEFER_STAT + * src/du.c (main): Use FTS_DEFER_STAT, for better locality of inode + reference. Important when traversing file systems with fake inodes. + * src/chgrp.c (main): Likewise. + * src/chmod.c (main): Likewise. + * src/chown.c (main): Likewise. + The only remaining fts client, chcon, doesn't need this, since it goes + further and uses FTS_NOSTAT, which suppresses all non- directory + stat calls. - * tests/mv/atomic: New file/test for yesterday's fix. - * tests/mv/Makefile.am (TESTS): Add atomic. +2009-02-13 Pádraig Brady <P@draigBrady.com> - * tests/du/long-sloop: Avoid harmless `ambiguous redirect' diagnostic. + maint: mention how to run a single test in HACKING docs + * HACKING: Give an example of how to run a test in isolation. + * README: Fix/simplify example for running a single test. + * README-hacking: Reference the HACKING file. -2006-05-10 Jim Meyering <jim@meyering.net> +2009-02-12 Eric Blake <ebb9@byu.net> - * src/copy.c (copy_internal): Don't explicitly unlink the destination - when moving a symlink into the place of an existing non-directory. - Reported by Joshua Hudson. - * NEWS: mention this. + ln: add details to --help text + * src/ln.c (usage): Mention more about symlink properties. + * doc/coreutils.texi (ln invocation): Likewise. + * THANKS: Update. + Reported by Vitali Lovich. + +2009-02-10 Jim Meyering <meyering@redhat.com> + + ls: clean up after wrapped+colored file names with clear-to-EOL + This change addresses a relatively unusual case: ls --color, with + a highlighted name being printed initially in the last row of a + terminal emulator (possibly followed by other lines of output) such + that it is wrapped onto the following line, as the terminal emulator + scrolls the output. That would cause the entire following line to + be highlighted, even if the name happened to use only one position. + The least-invasive patch would have made colorized output larger for + all uses. The approach taken below is more invasive, but limits the + increase in overhead to only those lines that are expected to wrap. + * src/ls.c (enum indicator_no): Add C_CLR_TO_EOL. + (indicator_name): Add "cl". + (color_indicator): Add default escape codes for "cl". + (print_long_format): Propagate width to print_name_with_quoting. + (print_name_with_quoting): Print new C_CLR_TO_EOL string if needed. + Return the width of what we're printing. + (print_file_name_and_frills): Propagate width. + (print_type_indicator): Return bool (aka width). + (print_many_per_line): Pass column position to print_* function. + (print_current_files): Likewise. + (print_horizontal): Likewise. + (print_with_commas): Likewise. + * src/dircolors.c (slack_codes): Add "CLRTOEOL". + (ls_codes): Add "cl". + * tests/ls/color-clear-to-eol: New file. Test for this fix. + * tests/Makefile.am (TESTS): Add ls/color-clear-to-eol. + * THANKS: Update. + Reported by Alexander V. Lukyanov. See thread for details: + http://thread.gmane.org/gmane.linux.kernel/740021/focus=14824 + Thanks to Jan Engelhardt for helping me reproduce the problem. -2006-05-07 Jim Meyering <jim@meyering.net> + Demonstrate with this in an 80-column xterm: + seq 200 # to start in the "bottom" row + touch zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.foo + env LS_COLORS='*.foo=0;31;42' ls -og --color=always - * Makefile.maint (patch-check): Fail if patch generates any output, - even merely for changed offsets. + Before the fix, you'd see something like this: + (where the file name is printed in red on a green background, + and each "=" denotes a space on a green background) + ... + -rw-r--r-- 1 0 Feb 5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\ + zzzzzzzzzzzzzz.foo=================================================== - * src/c99-to-c89.diff: Adjust to reflect new offsets. + After the patch, the trailing green spaces are gone: - * NEWS: Mention changes affecting df, pwd, shred. + -rw-r--r-- 1 0 Feb 5 11:31 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz\ + zzzzzzzzzzzzzz.foo -2006-05-06 Jim Meyering <jim@meyering.net> +2009-02-10 Jim Meyering <meyering@redhat.com> - * tests/ls/stat-vs-dirent: New test, to detect the bogus file - system condition where dirent.d_ino != stat.st_ino. - * tests/ls/Makefile.am (TESTS): Add stat-vs-dirent. + * tests/test-lib.sh: Use skip_test_... in place of echo...;exit 77. -2006-05-06 Eric Blake <ebb9@byu.net> +2009-02-10 Nix <nix@esperi.org.uk> - * tests/ls/inode: Expand to test inode from readdir case. - * tests/ls/follow-slink: Expand to test broken links encountered - implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior. + tests: avoid skipping stty-* tests + * tests/test-lib.sh (require_controlling_input_terminal_): + Check stdout, not stdin. -2006-05-06 Eric Blake <ebb9@byu.net> +2009-02-09 Jim Meyering <meyering@redhat.com> - * tests/mv/leak-fd: Work even on case-insensitive file system. + touch: deprecate --file option: equivalent to --reference (-r) + * src/touch.c: Mark long-undocumented --file for removal in 2010. + (main): Warn upon use of --file. -2006-05-04 Jim Meyering <jim@meyering.net> +2009-02-06 Pádraig Brady <P@draigBrady.com> - * NEWS: Mention the 2006-03-19 pwd-related change that makes - lib/getcwd.c work around inconsistent file system dirent.d_ino data. + tests: fix dd skip=greater_max_file_size test on Solaris 10 + * tests/dd/skip-seek-past-file: I had previously commented that + on some systems lseek(> max file size) may succeed, but left + the possibility of failure in that case, so that I could determine + specific systems to put in the comments for both failure modes. -2006-05-03 Jim Meyering <jim@meyering.net> +2009-02-05 Jim Meyering <meyering@redhat.com> - * src/ls.c (DEFINE_SORT_FUNCTIONS, LIST_SORTFUNCTION_VARIANTS): - Use better macro parameter names: s/basename/key_name/, - s/basefunc/key_cmp_func. Fix typo in comment. + avoid spurious parentheses/arith-op-related warnings from newer gcc + * src/copy.c (set_owner): Use && rather than &. + * src/stty.c (main): Likewise. + * src/wc.c (wc): Likewise. -2006-04-29 Eric Blake <ebb9@byu.net> +2009-02-02 Jim Meyering <meyering@redhat.com> + + maint: tighten atoi/atof-prohibiting regexp, clean up .x-sc- file + * maint.mk (sc_prohibit_atoi_atof): Require "(" after token. + * .x-sc_prohibit_atoi_atof: Remove names that no longer contain a match. + + doc: preserve --help line breaks in 'REPORTING BUGS' man page section + * man/help2man: Insert .br between adjacent lines. + + * src/system.h (emit_bug_reporting_address): Remove periods. + + update copyright dates from recent changes + * src/dd.c: Add 2009 to list of copyright years. + * tests/dd/seek-skip-past-file: Likewise. + * tests/dd/seek-skip-past-dev: Likewise. + * m4/xattr.m4: Likewise. + * src/copy.h: Likewise. + + * maint.mk (sc_redundant_const): Use $(_prohibit_regexp). + +2009-02-02 jidanni@jidanni.org <jidanni@jidanni.org> + + date doc: warn at -d about LC_TIME + We also warn here about LC_TIME, so the user will know even if he + doesn't look in the @xref{Date input formats}. + + document sort --ignore-case --unique interaction + +2009-01-31 Jim Meyering <meyering@redhat.com> + + maint: detect useless inclusion of c-ctype.h + * maint.mk (sc_prohibit_c_ctype_without_use): New rule. + +2009-01-29 Jim Meyering <meyering@redhat.com> + + maint: teach "make syntax-check" to print each check name as it's run + * maint.mk (%.m): New rules to print each syntax-checking rule name, + just before running its commands. + ($(syntax-check-rules)): Depend on it. + + maint: silence some syntax-check rules + * cfg.mk (sc_strftime_check): Silence the rule. + (sc_tight_scope): Likewise. + * src/Makefile.am (check-AUTHORS): Likewise. + + maint: factor syntax-check rules + * maint.mk (_ignore_case): New macro. + (_prohibit_regexp): Use it. + Factor many existing syntax-check rules to use $(_prohibit_regexp). + +2009-01-29 Kamil Dudka <kdudka@redhat.com> + + cp/mv: add xattr support + This patch was originally written by Andreas Grünbacher, nowadays + available at + http://www.suse.de/~agruen/coreutils/5.91/coreutils-xattr.diff + + * bootstrap.conf: Add gnulib module verror. + * po/POTFILES.in: Add lib/verror.c. + * m4/xattr.m4: Check for libattr availability, new configure option + --disable-xattr. + * m4/prereq.m4: Require gl_FUNC_XATTR. + * src/Makefile.am: Link cp, mv and ginstall with libattr. + * src/copy.h: Add preserve_xattr and require_preserve_xattr to + cp_options. + * src/copy.c (copy_attr_error): New function to handle errors during + xattr copying. + (copy_attr_quote): New function to quote file name in error messages + printed by libattr. + (copy_attr_free): Empty function requested by libattr to free quoted + string. + (copy_attr_by_fd): New fd-oriented function to copy xattr. + (copy_attr_by_name): New name-oriented function to copy xattr. + (copy_reg, copy_internal): Call copy_extended_attributes function. + * src/cp.c (usage): Mention new --preserve=xattr option. + (decode_preserve_arg): Handle new --preserve=xattr option. + * src/mv.c: Always attempt to preserve xattr. + * src/install.c: Never attempt to preserve xattr. + * tests/misc/xattr: New test for xattr support in cp, mv and install. + * tests/Makefile.am: Add the new test to list. + * doc/coreutils.texi: Mention xattr support, new --preserve=xattr + option. + * NEWS: Mention the change. + +2009-01-28 Jim Meyering <meyering@redhat.com> + + system.h: add a comment re autoconf's new AC_PACKAGE_URL + * src/system.h (emit_bug_reporting_address): Add a comment + suggesting to use AC_PACKAGE_URL once we require autoconf-2.64. + +2009-01-28 Pádraig Brady <P@draigBrady.com> + + tests: Fixup shred-passes test + * tests/misc/shred-passes: Set the $fail variable correctly. + The issue was noticed by Jim Meyering. + + tests: Add a test to verify shred's default operations + * tests/Makefile.am: add new test + * tests/misc/shred-passes: Verify the operations shred + does by default to overwrite and remove a zero length file. + +2009-01-28 Pádraig Brady <P@draigBrady.com> + + dd: Better handle user specified offsets that are too big + Following are the before and after operations for seekable files, + for the various erroneous offsets handled by this patch: + + skip beyond end of file + before: immediately exit(0); + after : immediately printf("cannot skip to specified offset"); exit(0); + + skip > max file size + before: read whole file and exit(0); + after : immediately printf("cannot skip: Invalid argument"); exit(1); + seek > max file size + before: immediately printf("truncate error: EFBIG"); exit(1); + after : immediately printf("truncate error: EFBIG"); exit(1); + + skip > OFF_T_MAX + before: read whole device/file and exit(0); + after : immediately printf("cannot skip:"); exit(1); + seek > OFF_T_MAX + before: immediately printf("truncate error: offset too large"); exit(1); + after : immediately printf("truncate error: offset too large"); exit(1); + + skip > device size + before: read whole device and exit(0); + after : immediately printf("cannot skip: Invalid argument"); exit(1); + seek > device size + before: read whole device and printf("write error: ENOSPC"); exit(1); + after : immediately printf("cannot seek: Invalid argument"); exit(1); + + * NEWS: Summarize this change in behavior. + * src/dd.c (skip): Add error checking for large seek/skip offsets on + seekable files, rather than deferring to using read() to advance offset. + (dd_copy): Print a warning if skip past EOF, as per FIXME comment. + * test/Makefile.am: Add 2 new tests. + * tests/dd/seek-skip-past-file: Add tests for first 3 cases above. + * tests/dd/seek-skip-past-dev: Add root only test for last case above. + +2009-01-27 Jim Meyering <meyering@redhat.com> + + doc: emit better bug-reporting info, to help help2man + * src/system.h (emit_bug_reporting_address): End each "sentence" + with period, mark URLs with <...>. + Based on a suggestion from Eric Blake. + Use fputs on a string without %s, not printf. + + doc: ensure that emit_bug_reporting_address changes propagate to *.1 + * man/Makefile.am ($(MAN)): Depend on system.h. + + doc: restore "REPORTING BUGS" section to generated man pages + * man/help2man ($PAT_BUGS): Update regexp to match the newer + "Report PROG bugs ..." --help output, as well as "Report bugs...". + Reported by Eric Blake. + +2009-01-26 Jim Meyering <meyering@redhat.com> + + tests: generalize install-transform-check + * maint.mk (install-transform-check): Generalize to work also + in a project that installs manuals in a section other than "1". + +2009-01-23 Jim Meyering <meyering@redhat.com> + + build: resolve conflict with new declaration from version-etc.h + * src/system.h (emit_bug_reporting_address): Define away, + now, gnulib's version-etc.h also declares this function. + In this package, we choose to include each program's name in + the diagnostic. Define away the conflicting declaration. + (emit_bug_reporting_address): Also emit home page and + "General help..." links, like the new function does. + Reported by Bob Proulx. - * src/ls.c (main): On systems with d_type, directories_first only - implies format_needs_type, not format_needs_stat. +2009-01-22 Pádraig Brady <P@draigBrady.com> -2006-05-03 Jim Meyering <jim@meyering.net> + doc: shred: Correct docs on default number of overwrites. + * NEWS: Mention the change to the default number of passes. + * doc/Makefile.am: Update constants.texi with the default + number of passes shred uses, so that the documentation + will automatically reflect any future changes. + * doc/coreutils.texi (shred invocation): Update the description + of the --iterations option to have the correct default number, + while still conveying that there are 25 internal patterns + that may be useful. + + shred: change default number of overwrites from 25 to 3 + * src/shred.c: The concensus is that a default of 3 + passes is appropriate for current drive technologies. + * src/TODO: Reference Paul Eggert's suggestion + of enhancing shred to conform to DoD 5220 rules. - * src/ls.c (xstrcoll_df_version, rev_xstrcoll_df_version): Add space - after comma in arg list, from Eric Blake. +2009-01-21 Jim Meyering <meyering@redhat.com> -2006-04-25 Paul Eggert <eggert@cs.ucla.edu> + m4: don't use AC_REQUIRE([AC_C_BIGENDIAN]) + * m4/jm-macros.m4: Use AC_REQUIRE([gl_BIGENDIAN]) instead. + This avoids a subtle problem recently documented in autoconf: + http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=34e2c8d5484 - * tests/misc/date (relative-3): New test, derived from a bug - report by John Thomas McDole. +2009-01-19 Jim Meyering <meyering@redhat.com> -2006-04-23 Francesco Montorsi <fr_m@hotmail.com> + no longer define *_FILENO constants + * src/system.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): + Remove definitions. Now guaranteed by gnulib. - New option for ls: --group-directories-first. - It makes ls list directories before files. - * NEWS [New features]: Mention it. - * src/ls.c (sort_type): Rearrange to use as an array index when - choosing sort function; added new sort_numtypes member for - compile-time check. - (time_type): Add new time_numtypes member for compile-time check. - (directories_first): New global variable. - (GROUP_DIRECTORIES_FIRST_OPTION): New enum. - (long_options): Add --directories-first. - (main): Support new option. - (is_directory): New function. - (extract_dirs_from_files): Use it. - (DIRFIRST_CHECK, DEFINE_SORT_FUNCTIONS) - (LIST_SORTFUNCTION_VARIANTS): New macros. - (sort_functions): New global variable. - (sort_files): Use it. - (usage): Document new option. + build: use dist-xz, not dist-lzma, cont'd + * README-hacking: mention XZ utils + * README-prereq: Add a FIXME comment. -2006-04-18 Paul Eggert <eggert@cs.ucla.edu> + tests: tail-2/infloop-1 is racy + * tests/tail-2/infloop-1: Add a comment to that effect. - * src/shred.c (fillrand): The assertion was way too weak, due to - what must be a typo. Strengthen it to its intended value. - (dopass): Don't use alloca; it's not worth the aggravation here, - since it's used only to get a page-aligned buffer, and page - alignment doesn't buy us much here. I'm suspicious that alloca - causes problems on some hosts, due to a recent bug report by Adam - Waltman: http://bugs.gentoo.org/130246. +2009-01-18 Jim Meyering <meyering@redhat.com> -2006-04-18 Jim Meyering <jim@meyering.net> + build: use dist-xz, not dist-lzma + * configure.ac (AM_INIT_AUTOMAKE): s/dist-lzma/dist-xz/. + Requires recent "xz" from git://ctrl.tukaani.org/lzma-utils.git + +2009-01-16 Jim Meyering <meyering@redhat.com> + + maint: remove obsolete sc_author_mark_check rule + * maint.mk (sc_author_mark_check): Remove rule. + "and" no longer appears in the definition of AUTHORS. + + Merge branch 'master' of git://git.sv.gnu.org/coreutils + + maint: enforce existing prohibition: no cvs $keywords$ + * maint.mk (sc_prohibit_cvs_keyword): New rule. + + echo, printf, test: remove unused #include directives + * src/echo.c: Don't include "long-options.h". No longer used. + * src/printf.c: Likewise. + * src/test.c: Likewise. + +2009-01-16 Pádraig Brady <P@draigBrady.com> + + pathchk: avoid -Wsign-compare warnings + * src/pathchk.c: Compare pathconf limits to _signed_ MAX constants, + as pathconf returns signed values. + + pr: avoid -Wsign-compare warnings + * src/pr.c: Use unsigned variables in unsigned comparisons. + + shred: avoid -Wsign-compare warnings + * src/shred.c: Use already assigned signed variable sizeof_r, + rather than the unsigned sizeof(r). Don't use signed integer + overflow check that contemporary compilers may remove anyway. + + simplify mgetgroups() and avoid -Wsign-compare warnings + * gl/lib/mgetgroups.c: Avoid -Wsign-compare warning by using unsigned + types for the parameters of the new function realloc_groupbuf(). + mgetgroups() was refactored to use this function rather than + explicitly allocating and copying from automatic storage itself. + * src/group-list.c: Use int rather than size_t as variable is + used in signed comparisons. + * src/id.c: ditto. + +2009-01-14 Eric Blake <ebb9@byu.net> + + test, echo, printf: don't accept option abbreviation + * src/test.c (main): Directly parse accepted options, thus + avoiding abbreviations. + * src/echo.c (main): Likewise. + * src/printf.c (main): Likewise. + +2009-01-14 Kamil Dudka <kdudka@redhat.com> + + cp/mv: add --no-clobber (-n) option to not overwrite target + * src/cp.c (usage): Show new option -n in --help. + (main): Handle new option -n. + * src/mv.c (usage): Show new option -n in --help. + (main): Handle new option -n. + * doc/coreutils.texi: Document new cp/mv option -n. + * tests/cp/cp-i: Add tests for -f, -i and -n options. + * tests/mv/mv-n: New test for mv -n. + * tests/Makefile.am: Add test mv/mv-n to the list. + * NEWS: Mention the change. + +2009-01-08 Eric Blake <ebb9@byu.net> + + option handling: make exceptions more consistent + * doc/coreutils.texi (Common options): Not all utilities reject + option abbreviations. + * src/chroot.c (main): Report correct name on failure. + * src/echo.c (usage): Clarify long option usage. + * src/setuidgid.c (usage): Likewise. + * src/hostid.c (usage): Condense. + +2009-01-07 Jim Meyering <meyering@redhat.com> + + * bootstrap.conf (avoided_gnulib_modules): Add dummy. + + * maint.mk: align some backslashes + +2009-01-05 Pádraig Brady <P@draigBrady.com> + + doc: pathchk description enhancements + * doc/coreutils.texi (pathchk invocation): Mention pathchk + checks validity (for current system) as well as portability. + Say messages go to stderr, and reorder description of checks + done for the -p option, to match what's done in code. + * src/pathchk.c (usage): Mention pathchk checks name validity. + Suggested clarifications were from Dan Jacobson. + +2009-01-03 Pádraig Brady <P@draigBrady.com> + + src/.gitignore: Ignore getlimits utility + * src/.gitignore: Ignore getlimits + + tests: refactor to use the new getlimits utility + * tests/Coreutils.pm: Add function to make limits available + * tests/test-lib.sh: ditto + * tests/misc/join: Check for both SIZE_OFLOW and UINTMAX_OFLOW + rather than using arbitrary 2^128 + * tests/misc/sort: ditto + * tests/misc/uniq: ditto + * tests/misc/printf: Check for both INT_OFLOW and INT_UFLOW + rather than using arbitrary -2^31 + * tests/misc/seq-long-double: Check for INTMAX_OFLOW + rather than using arbitrary 2^63 + * tests/misc/split-fail: Check --lines --bytes and --line-bytes + options limits on all platforms. Note getlimits obviates the + need to use expr to check if 32 bit integers are supported, + which I think was invalid anyway as expr now supports bignum? + * tests/misc/test: Check for UINTMAX_OFLOW rather than + using arbitrary 2^64 and 2^128. Check for INTMAX_UFLOW + rather than using arbitrary -2^64 + * tests/misc/timeout-parameters: Check for UINT_OFLOW + rather than using arbitrary 2^32 + * tests/misc/truncate-overflow: Don't depend on truncate + to determine if we're on a 32 or 64 bit platform and + instead use the various OFF_T limits + * tests/misc/sort-merge: Check for UINTMAX_OFLOW + rather than using arbitrary 2^64+1 + * tests/misc/unexpand: ditto + +2009-01-03 Michael Meskes <michael@fam-meskes.de> + + stat: print file-system total inode count (%c) as an unsigned number + * src/stat.c (print_statfs): Print statfs.f_files, the total inode + count of a file system, as an unsigned number. + +2009-01-01 Jim Meyering <meyering@redhat.com> + + tests: factor ls-misc (no semantic change) + * tests/misc/ls-misc: Factor out uses of "\e[0m". + + update copyright year + * doc/coreutils.texi: Likewise. + * tests/sample-test: Likewise. - * tests/misc/tty-eof: Add new programs, base64, sha224sum, sha256sum, - sha384sum, sha512sum. +2009-01-01 Jim Meyering <meyering@iou.iou> + + improve M4 quoting + * configure.ac: Add quotes. + * gl/m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise. + * m4/boottime.m4 (GNULIB_BOOT_TIME): Likewise. + * m4/check-decl.m4 (gl_CHECK_DECLS): Likewise. + * m4/gmp.m4 (cu_GMP): Likewise. + * m4/jm-macros.m4 (coreutils_MACROS, gl_CHECK_ALL_HEADERS): Likewise. + (gl_CHECK_ALL_TYPES): Likewise. + * m4/lib-check.m4 (cu_LIB_CHECK): Likewise. + * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Likewise. + + FYI, I first ran this command: + git ls-files | grep -E '\.(m4|ac)$' | xargs perl -pi \ + -e 's/(AC_[A-Z_]+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \ + -e 's/(AC_[A-Z_]+\(\[[^,]+?\], )([^,[()]+?)([,)])/$1\[$2]$3/g;' \ + -e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g' + Then I updated serial numbers and copyright dates manually. + Also, I manually added two pairs of quotes in boottime.m4. + +2009-01-01 Jim Meyering <meyering@redhat.com> + + bootstrap: don't use cmp's -s option when reading from a pipe + GNU cmp exits without reading all input when given the -s option, + and that can cause termination of the writing process via SIGPIPE. + Instead, when reading from a pipe, just redirect output to /dev/null + so that all input is read. + + maint: factor out common code; prohibit use of HAVE_MBRTOWC + * maint.mk (_prohibit_regexp): New macro. + (sc_avoid_if_before_free, sc_cast_of_argument_to_free): + (sc_cast_of_x_alloc_return_value, sc_cast_of_alloca_return_value): + (sc_space_tab, sc_prohibit_atoi_atof, sc_prohibit_strcmp): + (sc_prohibit_stat_st_blocks, sc_prohibit_S_IS_definition): Use it. + (sc_prohibit_HAVE_MBRTOWC): New rule. + + maint: use more sc_-prefixed names + * maint.mk (sc_po_check): Renamed from po-check. + (sc_author_mark_check): Renamed from author_mark_check. + (sc_copyright_check): Renamed from copyright-check. + (sc_makefile_path_separator_check): Renamed from + makefile_path_separator_check. + (local-checks-available): Remove the old names. + * Makefile.am (EXTRA_DIST): Reflect the renaming: .x-sc_po_check + * .x-po-check: Rename to... + * .x-sc_po_check: ...new file. + + maint: tighten m4 AC_ quoting check + * maint.mk (sc_m4_quote_check): Renamed from m4-check. + Also search for AC_DEFINE and AC_DEFINE_UNQUOTED. + Also search in configure.ac. + * configure.ac: Quote first argument of AC_DEFINE. + * jm-macros.m4 (coreutils_MACROS): Quote the first argument to AC_DEFINE. + + maint: move coreutils-specific syntax check rules into cfg.mk + * maint.mk (sc_dd_max_sym_length, sc_prohibit_jm_in_m4): + (sc_root_tests, sc_always_defined_macros, sc_system_h_headers): + (sc_sun_os_names, sc_tight_scope, sc_no_exec_perl_coreutils): + Move rules into cfg.mk. + (sc_strftime_check): Renamed from strftime-check, and moved, too. + * cfg.mk: Add the above rules. + + portability: accommodate gnulib's getaddrinfo change + * src/Makefile.am (pinky_LDADD, who_LDADD): Append $(GETADDRINFO_LIB) + + cleanup/modernize: don't test HAVE_MBRTOWC; now gnulib provides it + * bootstrap.conf (gnulib_modules): Include mbrtowc explicitly. + * src/ls.c (quote_name): Don't test HAVE_MBRTOWC, now that we're + guaranteed to have the function. + * src/wc.c (wc): Likewise. -2006-04-17 Paul Eggert <eggert@cs.ucla.edu> +2008-12-27 Eric Blake <ebb9@byu.net> - * src/chmod.c (describe_change): Adjust to filemode changes. - * src/ls.c (HAVE_ST_DM_MODE): Remove; moved to ../lib/filemode.c. - (print_long_format): Use (new) filemodestring rather than - (old) mode_string, so that we get more file types right, at least - in theory. Adjust to filemode changes. - * src/stat.c (human_access): Likewise. + doc: mention long option abbreviation + * doc/coreutils.texi (Common options): Give example of + abbreviating options. + * THANKS: Update. + Reported by Adam Jimerson. + +2008-12-26 Jim Meyering <meyering@redhat.com> + + maint: ensure dd's computation of O_FULLBLOCK uses all O_ symbol names + * src/dd.c (O_FULLBLOCK): Use a more uniform initializer, that makes + it easier to extract all O_ symbol names. + * maint.mk (syntax-check-rules): Also search for sc_ rules in cfg.mk. + (sc_root_tests): Ensure that this rule sets $diff. + * cfg.mk (sc_dd_O_FLAGS): New rule. + +2008-12-26 Matt Harden <matth@mindspring.com> + + dd: add support for opening files in Concurrent I/O (CIO) mode + * src/dd.c (O_CIO): New flag. + * src/dd.c (O_FULLBLOCK): Add O_CIO to the list of flags that + O_FULLBLOCK should be greater than. + * src/dd.c (flags): Give the name "cio" to the new O_CIO flag, mirroring + the treatment of O_DIRECT. + * src/dd.c (usage): Add a description of the new flag when it is available. + * doc/coreutils.text (dd invocation): Describe the new flag. + * NEWS: Mention the new feature. + +2008-12-23 Jim Meyering <meyering@redhat.com> + + build: do enable $(WERROR_CFLAGS) for src/ files. + This reverts the more recent commit (of two) entitled "build: + add configure-time --enable-gcc-warnings option; avoid warnings". + Pádraig Brady spotted the contradiction between the log message + and actual change. + + This reverts commit 292d68565a34b237cd2bf586ace545b7cd3dbfcf. + +2008-12-23 Pádraig Brady <P@draigBrady.com> + + doc: stty: Clarification of some input and output settings + * doc/coreutils.texi (stty invocation): Clarify any + ambiguity in regard to the direction of input and output settings. + Add some notes on the case changing settings. + Most of the text was supplied by Dan Jacobson. + + timeout: remove problematic casts + * src/timeout.c (apply_time_suffix): Change input parameter from + unsigned int to unsigned long, which is the type of the variable it's + actually manipulating. This removes the need for the cast which was + giving a warning with the gcc options: -fstrict-aliasing + -Wstrict-aliasing. Also add a check for overflow possible on 16-bit + platforms, and fix indents. + (main): Remove a redundant cast in the alarm() call. + +2008-12-21 Jim Meyering <meyering@redhat.com> + + * .x-sc_require_config_h: Remove obsolete regexps. + + maint.mk: enforce the "include <config.h> first" rule + * maint.mk (sc_require_config_h_first): New rule. + * .x-sc_require_config_h_first: New file. + + build: add configure-time --enable-gcc-warnings option; avoid warnings + * bootstrap.conf (gnulib_modules): Add "warnings" module. + * configure.ac: Add --enable-gcc-warnings, derived from code in bison. + * src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS) + * lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS) + Don't use $(WERROR_CFLAGS), yet. + * src/system.h (usage): Declare. + * src/base64.c (usage): Declare to be global, for consistency. + * src/timeout.c (usage): Likewise. + * src/truncate.c (usage): Likewise. + * src/getlimits.c (usage): Likewise. + * src/pinky.c (ttyname): Declare with prototype, rather than an + empty argument list. + * src/who.c (ttyname): Likewise. + * src/su.c (crypt, getusershell, setusershell, endusershell): Likewise. + + build: turn on $(WERROR_CFLAGS) for src/ + + build: add configure-time --enable-gcc-warnings option; avoid warnings + * bootstrap.conf (gnulib_modules): Add "warnings" module. + * configure.ac: Add --enable-gcc-warnings, derived from code in bison. + * src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS) + * lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS) + Don't use $(WERROR_CFLAGS), yet. + * src/system.h (usage): Declare. + * src/base64.c (usage): Declare to be global, for consistency. + * src/timeout.c (usage): Likewise. + * src/truncate.c (usage): Likewise. + * src/getlimits.c (usage): Likewise. + * src/pinky.c (ttyname): Declare with prototype, rather than an + empty argument list. + * src/who.c (ttyname): Likewise. + * src/su.c (crypt, getusershell, setusershell, endusershell): Likewise. + +2008-12-17 Pádraig Brady <P@draigBrady.com> + + doc: Remove curly quotes from shell examples in man pages + Use \(aq rather than a literal ' as groff will convert apostrophe + to a right quote (\u2029) in utf8 locales for example. + Stepan Kasal details the issue and fix here: + http://lists.gnu.org/archive/html/bug-coreutils/2008-12/msg00124.html + +2008-12-16 Jim Meyering <meyering@redhat.com> + + ChangeLog-2008: say ChangeLog files are no longer manually maintained + and point to HACKING's policy. Suggestion from Dan Jacobson. + + du: -H now does what POSIX requires + * src/du.c (usage): Update --help output. + (main): Move -H-handling code from the --si block to + the one for --dereference-args (-D). + * doc/coreutils.texi (du invocation): Update description. + * NEWS (Changes in behavior): Mention this. + +2008-12-13 Jim Meyering <meyering@redhat.com> + + doc: pr: formatting corrections + * doc/coreutils.texi (pr invocation): Fix some overzealous uses of @var. + Reported by Andreas Schwab. -2006-04-18 Jim Meyering <jim@meyering.net> +2008-12-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + more portable bootstrap procedure + * bootstrap (get_version): Fix portability issues in sed script. + (check_versions): For buildreq apps, honor the corresponding + $APP variable like $AMTAR, $AUTOCONF. + (usage): Document this. + (update_po_files): Honor $SHA1SUM. + (main): Honor $AUTOPOINT, $ACLOCAL, $AUTOCONF, $AUTOHEADER, + $AUTOMAKE, $LIBTOOLIZE. + +2008-12-03 Jim Meyering <meyering@redhat.com> + + tests: ensure that chmod, chgrp and chown honor --silent + * tests/chmod/silent: New file, to test all three programs. + * tests/Makefile.am (TESTS): Add chmod/silent. + * NEWS (Bug fixes): Mention this. + The bug was introduced in 96a5d2ce6a53d96cb667af78f13e56fadcdb91e6. + +2008-12-03 Ondřej Vašík <ovasik@redhat.com> + + chmod, chown, chgrp: honor --silent (-f) once again + * chmod.c (process_file): Make -f suppress fts-related diagnostics. + * chown-core.c (change_file_owner): Likewise. + Reported via <http://bugzilla.redhat.com/474220>. + +2008-12-02 Jim Meyering <meyering@redhat.com> + + wc: read and process --files0-from= input a name at a time, + when the file name list is not too large. Before, wc would always read + the entire file name list into memory and *then* process each file name. + wc does read the list into memory when the list is known not to be too + large; this is done in order to be able to align the output numbers, + as it does with arguments specified on the command-line + * src/wc.c: Include "argv-iter.h". + (main): Rewrite to use argv-iter when the input file name list + is known to be too large. + * NEWS (Bug fixes): Mention it. + + du: read and process --files0-from= input a name at a time, + rather than by reading the entire input into memory and *then* + processing each file name. + * src/du.c: Include "argv-iter.h", not "readtokens0.h". + (main): Rewrite to use argv-iter. + Call xfts_open on each argument, rather than on the entire + argv list at once. + Call print_size here, not from du_files. + Diagnose read failure. + * NEWS (Bug fixes): Mention it. + * THANKS: update. + Reported by Barry Kelly. More details in + http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/15159/ + +2008-12-01 Jim Meyering <meyering@redhat.com> + + factor: plug a leak + * src/factor.c (emit_ul_factor): Call mpz_clear. + + avoid warnings about initialization of automatic aggregates + * src/system.h (DZA_CONCAT0, DZA_CONCAT): New macros. + (DECLARE_ZEROED_AGGREGATE): New macro. + * src/ls.c (quote_name): Use it. + * src/pathchk.c (portable_chars_only): Use it. + * src/shred.c (main): Use it. + * src/stty.c (main): Use it. + * src/wc.c (SUPPORT_OLD_MBRTOWC): Use it. + + * bootstrap.conf (gnulib_modules): Add argv-iter. + + argv-iter: add tests + * gl/modules/argv-iter-tests: New module. + * gl/tests/test-argv-iter.c: New file. + + argv-iter: new module + * gl/lib/argv-iter.h: New file. + * gl/lib/argv-iter.c: New file. + * gl/modules/argv-iter: New file. + With a suggestion for improved memory management by Pádraig Brady. + + * src/hostname.c (sethostname) [!HAVE_SETHOSTNAME]: Remove declaration. + + cp, mv: remove 3-year-deprecated+warned-about --reply option + * src/cp.c (reply_args, reply_vals): Remove globals. + [REPLY_OPTION]: Remove enum. + (long_opts) ["reply"]: Remove initializer. + (main): Remove case stmt. + * src/mv.c: Likewise. + Don't include "argmatch.h". No longer used. + * NEWS (Changes in behavior): Mention this. + * tests/Makefile.am (TESTS): Remove mv/reply-no. + * tests/mv/reply-no: Remove file. + * tests/mv/i-link-no: Update, now that --reply= is gone. - * src/ptx.c (main) [DEFAULT_IGNORE_FILE]: Remove code to use a default - ignore file. This has never been enabled. Reported by Eric Blake. +2008-12-01 Pádraig Brady <P@draigBrady.com> -2006-04-12 Paul Eggert <eggert@cs.ucla.edu> + doc: Make descriptions of ASCII NUL and --zero-terminated option consistent + doc/coretuils.texi: Refactor shuf, sort and uniq --zero-terminated + option to use the same text. Also refer to NUL characters as + @acronym{ASCII} @sc{nul} consistently. - * src/ln.c (linkfunc): Remove. This method ran into a compiler/linker - bug in Interix. Just call symlink or link directly. All uses changed. - * src/setuidgid.c (main) [! HAVE_SETGROUPS]: Don't call setgroups. - * src/stat.c (USE_STATVFS): New macro. - Include <sys/statvfs.h> and use statvfs only if USE_STATVFS. - (NAMEMAX_FORMAT): define a bit more clearly, now that the - statvfs-using code is a bit more regular. - * src/system.h (sync) [!HAVE_SYNC]: New macro. +2008-12-01 Jim Meyering <meyering@redhat.com> -2006-04-11 Paul Eggert <eggert@cs.ucla.edu> + doc: enforce @var{lower} policy + * doc/coreutils.texi: Fix remaining violations. + * doc/Makefile.am (sc-lower-case-var): New rule. + Add some command-suppressing "@" directives so that a successful + "make check" run is less noisy. - * NEWS: csplit, nl, expr now conform to POSIX better, and are - more-compatible with traditional Unix, with respect to regular - expressions. - * src/csplit.c (extract_regexp): Set re_syntax_options to a - value that is compatible with what POSIX requires. - * src/nl.c (build_type_arg): Likewise. - * src/expr.c (docolon): Likewise. Also, don't let anchors match - newline; this fixes an incompatibility with tradition and with POSIX. - Don't warn about leading ^. POSIX says it is unspecified whether - ^ is a special character, which means that implementations can - either treat it as special or not, but either way a warning is not - allowed (unless the regexp is otherwise invalid). Instead, anchor - the expression but treat ^ as an anchor; this is the traditional - behavior (e.g., Solaris 10). - (eval4, eval3, eval2): Treat non-numeric args, division by zero, - and the like as invalid expressions (exit status 2), not as - failure of 'expr' (exit status 3). This is more consistent with - how Solaris behaves. - * tests/expr/basic (fail-a): Adjust exit status to match new expr - behavior, for status 2 versus 3. - (anchor): New test. - (bre1, bre2, bre3, bre4, bre5, bre6, bre7, bre8, bre9, bre10): - (bre11, bre12, bre13, bre14, bre15, bre16, bre17, bre18, bre19, bre20): - (bre21, bre22, bre23, bre24, bre25, bre26, bre27, bre28, bre29, bre30): - (bre31, bre32, bre33, bre34, bre35, bre36, bre37, bre38, bre39, bre40): - (bre41, bre42, bre43, bre44, bre45, bre46, bre47, bre48, bre49, bre50): - (bre51, bre52, bre53, bre54, bre55, bre56, bre57, bre58, bre59, bre60): - (bre61, bre62): New tests. - * tests/misc/csplit: Use \{...\} in test RE, to test that we're - conforming to POSIX. - - Port to Solaris 8. - * tests/du/long-from-unreachable: Solaris 8 sh doesn't understand - "if !". Do not assume that 'sed' can handle long, newline-free input. - * tests/du/long-sloop: Likewise. Evaluate expr once, not $n times. - -2006-04-10 Paul Eggert <eggert@cs.ucla.edu> - - Adjust to new regex.h API (with new fastmap type), and clean - up the regex storage allocation a bit. - - * src/csplit.c (struct control): Put re_compiled member at the - end, since it's large. Change regexpr member from char * to bool; - all uses changed. Add new member fastmap. - (extract_regexp): regexp arg is now char const *, not char *. - Don't bother duplicating the regular expression; it's not needed. - Set fastmap from new fastmap member. Don't bother allocating - a buffer, as the regexp code does a better job than we do. - * src/expr.c (docolon): Allocate and use a fastmap. - Don't bother allocating a buffer. - * src/nl.c (body_fastmap, header_fastmap, footer_fastmap): - New vars. - (build_type_arg): New fastmap arg. All uses changed. - Don't bother allocating a buffer, but set a fastmap. - * src/ptx.c (context_regex_string, word_regex_string): Remove. - (context_regex, word_regex): New vars, replacing the above. - All uses changed. - (struct regex_data): New type. - (compile_regex): Renamed from alloc_and_compile_regex, since - we no longer allocate storage. Arg is now a struct regex_data *, - not a const char *. All uses changed. Don't allocate the fastmap; - instead, take it from the caller. Don't convert size_t to int, - to avoid arithmetic overflow problems. Don't bother freeing - storage afterwards; it's not worth the aggravation. - * src/tac.c (compiled_separator_fastmap): New ver. - (main): Use it. Don't bother allocating a buffer. +2008-12-01 Pádraig Brady <P@draigBrady.com> -2006-03-30 Jim Meyering <jim@meyering.net> + doc: Tweak info docs to standarise on lower-case @var{file} + * doc/coreutils.texi: s/@var{FILE}/@var{file}/ - * src/dd.c (iwrite): Remove assignment without effect. - Reported by Felix Rauch Valenti. + doc: Improve description of --files0-from option + * doc/coreutils.texi: Describe the most common + usage of --files0-from=- to read names from stdin. + * src/du.c: Likewise. + * src/sort.c: Likewise. + * src/wc.c: Likewise. -2006-03-22 Eric Blake <ebb9@byu.net> + tests: dd/reblock: Reduce chance of timing related failures + * tests/dd/reblock: Change the IPC mechanism to the dd process + under test, from pipes to fifos. Also change the delay + between data writes to 0.2s for both tests. + This should increase the chance that the dd process + will read the data chunks separately. - * src/ptx.c (usage): Remove mention of --copyright/-C. - (main): Alias --copyright to --version plus a deprecation warning. - * NEWS: Mention this. +2008-11-30 Jim Meyering <meyering@redhat.com> -2006-03-27 Jim Meyering <jim@meyering.net> - - * src/Makefile.am (uptime_LDADD): Add $(POW_LIB), for uptime's - use of strtod. Tiny patch from Nickolai Zeldovich. - -2006-03-11 Eric Blake <ebb9@byu.net> - - * tests/misc/dirname: New file. - * tests/basename/Makefile.am: Delete. - * tests/basename/basic: Move to... - * tests/misc/basename: ... this new file. Add some tests, - including fixed behavior for //. - * tests/misc/Makefile.am (TESTS): Sort. Add basename, dirname. - * tests/Makefile.am (SUBDIRS): Remove basename. - * configure.ac (AC_CONFIG_FILES): Remove tests/basename. - - Improvements to dirname/basename handling on platforms like - cygwin with distinct // and with drive letters. - * NEWS: Document new behavior. - * src/basename.c (main): Don't strip suffix from file system - roots. - * src/cp.c (target_directory_operand): Use new last_component. - (ASSIGN_BASENAME_STRDUPA): Likewise. Reduce time spent - traversing the string. - * src/dircolors.c (guess_shell_syntax): Use new last_component. - * src/install.c (target_directory_operand, install_file_in_dir): - Likewise. - * src/ln.c (target_directory_operand, main): Likewise. - * src/ls.c (basename_is_dot_or_dotdot): Likewise. - * src/mv.c (target_directory_operand, movefile): Likewise. - * src/remove.c (rm_1): Likewise. - * src/shred.c (wipename): Likewise. - * src/split.c (next_file_name): Likewise. - * src/su.c (log_su, run_shell): Likewise. + m4: avoid a warning from gcc's -Wstrict-prototypes + * m4/jm-macros.m4 (ARGMATCH_DIE_DECL): Use proper prototype for usage. -2006-03-23 Paul Eggert <eggert@cs.ucla.edu> + tests: df: skip total-verify if df fails + * tests/df/total-verify: Skip the test if df fails. - * NEWS: nohup diagnostics are now more precise, and nohup now - redirects stderr to nohup.out if stdout is closed and stderr is a tty. - * src/nohup.c (main): Implement this. - * tests/misc/nohup: Test the new behavior. + build: don't reject definition of STREQ + * maint.mk (sc_prohibit_strcmp): Tighten rule: exclude + macro definitions like the one in system.h. + * .x-sc_prohibit_strcmp: Don't exempt src/system.h. -2006-03-12 Jim Meyering <jim@meyering.net> + tests: start long-running cp/link-heap earlier + * tests/Makefile.am (TESTS): Move cp/link-heap nearer the start of the + list, so that its termination doesn't delay a parallel "make check". - * src/copy.c (set_author): Rename function, from preserve_author. + tests: avoid failure of cp/link-heap on some systems + * tests/cp/link-heap: Raise virtual memory limit from 10,000 + to 14,000, to avoid failure on Debian/unstable (libc6 2.7-16). - * src/remove.c (AD_pop_and_chdir): Use new macro, - CYCLE_CHECK_REFLECT_CHDIR_UP, rather than open-coding it. + remove explicit declaration of putenv, ... + * src/date.c: ... now that gnulib guarantees that it's in <stdlib.h>. + * src/env.c: Likewise. - * src/system.h (SAME_INODE): Remove definition. - Include "same-inode.h", instead. + tests: dd/reblock: avoid occasional failure + * tests/dd/reblock: Sleep longer to avoid a race condition. + Reported by Bob Proulx. -2006-03-11 Eric Blake <ebb9@byu.net> +2008-11-27 James Youngman <jay@gnu.org> - * src/pwd.c (robust_getcwd): Prepend only one slash, not two. + pwd: add pwd -P, -L to TODO + * TODO: Add to-do entry for -P and -L options of pwd. -2006-03-10 Jim Meyering <jim@meyering.net> +2008-11-26 Ondřej Vašík <ovasik@redhat.com> - Fix a bug whereby a user with write access to a directory being removed - could cause the removal of that directory to fail with an erroneous - diagnostic about a directory cycle. Reported by Vineet Chadha. + doc: fix typo in units factorization, removed TODO items + * doc/coreutils: switch typo (switched gibibytes/gigabytes) + * TODO: removed missing chcon and runcon documentation from list - * NEWS: Mention this. - * src/remove.c (AD_pop_and_chdir): If the directory we're about to - leave (and try to rmdir) is the one whose dev_ino is being used to - detect a cycle, reset cycle_check_state.dev_ino to that of the parent. +2008-11-26 Jim Meyering <meyering@redhat.com> -2006-03-08 Paul Eggert <eggert@cs.ucla.edu> + doc: factor out list of suffix-to-number (e.g., KB->1000B) mappings + * coreutils.texi (multiplierSuffixes, multiplierSuffixesNoBlocks): + New macros. + (od invocation, head invocation, tail invocation, split invocation): + (truncate invocation): Use them. - * NEWS: Document dd's new 'directory' and 'nolinks' flags. - * src/dd.c (set_fd_flags): Handle file-creation flags on file - descriptors, rather than ignoring them. - * tests/dd/misc: Add test cases for append, nofollow, directory, - and nolinks flags. Simplify redirection to /dev/null in some cases. + doc: tail: one more s/bytes/n/ change + * doc/coreutils.texi (tail invocation): Make one more + @var{bytes} -> @var{n} change. - * tests/dd/misc: iflags->iflag. This fixes a typo that meant the - noatime test never tested anything. +2008-11-26 Pádraig Brady <P@draigBrady.com> -2006-03-05 Paul Eggert <eggert@cs.ucla.edu> + doc: tail: fix description of --bytes=N (-c) + * doc/coreutils.texi (tail invocation): Use @var{n} consistently, + not a mix of that and @var{bytes}. Reported by anonymous + in <http://savannah.gnu.org/bugs/?24934>. - * src/dd.c (flags, usage): New flags directory, nolinks. - * src/system.h (O_NOLINKS): Define to 0 if not already defined. +2008-11-23 Karl Berry <karl@freefriends.org> - * src/ls.c (usage): Mention that -f disables --color. - Problem reported by Niels Möller. + doc: move @shortcontents and @contents from end to start + * doc/coreutils.texi: Move @shortcontents and @contents from the + end to the beginning, just after "@end titlepage". -2006-03-03 Justin Pryzby <pryzbyj@justinpryzby.com> +2008-11-23 Jim Meyering <meyering@redhat.com> - * man/*.x: Add references to syscalls from utilities of the same name. + doc (stat): clarify: there are two sets of format directives + * doc/coreutils.texi (stat invocation): Clarify description of + --file-system format directives. -2006-03-05 Jim Meyering <jim@meyering.net> +2008-11-23 Karl Berry <karl@freefriends.org> - * tests/help-version: Set SHELL, if not already set, in order to - avoid failure when `make check' is run through debuild; dircolors - would fail due to lack of $SHELL. Reported by Sven Joachim. + doc (stat): correct formatting in coreutils.texi + * doc/coreutils.texi (stat invocation): Move the list of regular, + non-file-system, format directives from the description of --terse, + out of the enclosing table. - Make `base64 --wrap=N' work for N=0, and for N larger than SIZE_MAX. - * src/base64.c (wrap_write, do_encode, main): Change type of - parameters and locals, wrap_column, form size_t to uintmax_t. - (main): Adjust to use xstrtoumax, accordingly. +2008-11-22 Jim Meyering <meyering@redhat.com> -2006-03-03 Jim Meyering <jim@meyering.net> + tests: dd: add a test for the required behavior + * tests/dd/reblock: New file. Test for the required functionality. + Based on an example and discussion from this thread: + http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html + * tests/Makefile.am (TESTS): Add dd/reblock. - Don't fail when run from an environment with SHELL not a Bourne - shell, e.g. `env SHELL=/bin/csh make check' would fail this test. - * tests/dircolors/simple: Invoke each non-failing test with -b. - Reported by Michael Stone. +2008-11-22 Pádraig Brady <P@draigBrady.com> -2006-02-27 Jim Meyering <jim@meyering.net> + Revert part of "dd: avoid unnecessary memory copies" + This reverts part of commit fbd87029cfc494a72bb73ade27ef46382c5bc832. + Paul Eggert noticed the problem in + http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00153.html + * doc/coreutils.texi (dd invocation): Clarify. - * tests/misc/base64: Derive --decode-using tests from the - encode-based ones. +2008-11-21 Pádraig Brady <P@draigBrady.com> - * tests/misc/base64: Factor out a long constant string. - Split lines to stay within 80 columns. + getlimits: A new utility for use in coreutils' tests + * src/getlimits.c: A utility to print platform dependent + limits in a format suitable for use in shell scripts. + * src/Makefile.am: Add getlimits to list of utilities + to build but not install. Also add it to the list linked + with libiconv + * po/POTFILES.in: Add getlimits to translation list. - * tests/misc/Makefile.am (TESTS): Add base64. - * tests/misc/base64: Test base64. From Simon Josefsson. + dd: avoid unnecessary memory copies + * src/dd.c (scanargs): When not otherwise required (e.g. for + conversion), use two-buffer mode only when the input and output + buffer sizes differ. Before, some of the most basic invocations of + dd, e.g., dd < in > out, would unnecessarily use separate buffers + and perform memory copies between them. - * src/base64.c (do_decode): Use correct type for parameter, - ignore_garbage: s/size_t/bool/. +2008-11-20 Jim Meyering <meyering@redhat.com> - * src/base64.c: Don't include .h files already included by system.h: - <string.h>, <stdlib.h>, <stdbool.h>, <limits.h>, <errno.h>. - Include "system.h" before the other lib/*.h header files. - Include <sys/types.h> before "system.h". - (wrap_write): Remove declaration of unused local, initial_column. - (wrap_write): Correct declaration syntax: s/size_t * V/size_t *V/. + cp: use far less memory in some cases + cp --link was "remembering" many name,dev,inode triples unnecessarily. + cp was doing the same, even without --link, for every directory in the + source hierarchy, while it can do its job with entries merely for the + command-line arguments. Prompted by a report from Patrick Shoenfeld. + Details <http://bugs.debian.org/412688>. + * src/copy.c (copy_internal): Refrain from remembering + name,dev,inode for most files, when invoked via cp --link. + Record an infloop-avoidance triple for each directory specified + on the command line, not for each directory in the source tree. + Don't record a dir-triple when x->hard_link is set. + * NEWS (Buf fixes): Mention it. + * tests/cp/link-heap: New file. Test for cp's lowered memory usage. + * tests/Makefile.am (TESTS): Add link-heap. - * README: Add base64 to the list. + tests: add a test of cp --preserve=links + * tests/cp/link-preserve: Add a case and comments. -2006-02-17 Simon Josefsson <jas@extundo.com> + cp: remove unused code + * src/cp-hash.c (remember_created): Remove unused function. + Remove thus-obviated headers: <stdio.h>, "quote.h", "error.h". + * src/cp-hash.h (remember_created): Remove declaration. - New program: base64. - * AUTHORS: Mention base64. - * NEWS: Likewise. - * man/Makefile.am: Build base64.1. - * man/base64.x: New file. - * src/Makefile.am (bin_PROGRAMS): Add base64. - * src/base64.c: New file. +2008-11-17 Jim Meyering <meyering@redhat.com> -2006-02-25 Eric Blake <ebb9@byu.net> + doc: HACKING: reference http://www.gnu.org/licenses/why-assign.html + Suggestion from Patrick Schoenfeld. - In ls, avoid calling stat for --inode (-i), when possible. - * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ... - * src/system.h: ... here, for use in ... - * src/ls.c (main): ... here. Prefer dirent.d_ino to stat when - possible. - (gobble_file): Add inode argument. - (print_dir): Pass inode if available. - (usage): Remove inaccuracy. +2008-11-16 Jim Meyering <meyering@redhat.com> -2006-02-23 Jim Meyering <jim@meyering.net> + tests: remove debug code that would try to write into /t/k-env + * tests/ls/no-cap: Remove debugging "tee". - * TODO: Update/correct some obsolete entries. + tests: change misc/printf-surprise so that it doesn't segfault anymore + * tests/misc/printf-surprise: Disable MALLOC_PERTURB_, so that "make + check" no longer provokes a segfault from printf(1). Before, that + would be detected as a known problem and cause the test to be skipped. + Adjust the test so that a segfault once again results in test failure. -2006-02-20 Paul Eggert <eggert@cs.ucla.edu> +2008-11-12 Jim Meyering <meyering@redhat.com> - * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'. - * src/join.c (usage): Likewise. - Documentation problem reported by Philip Kensche. - -2006-02-20 Eric Blake <ebb9@byu.net> - - * man/rm.x: Update documentation to match previous patch. - -2006-02-18 Eric Blake <ebb9@byu.net> - - New option for rm: --interactive=once (-I). - * NEWS: Document it, along with change to rm --interactive. - * TODO: Remove entry for implementing rm -I - * src/rm.c (INTERACTIVE_OPTION): New enum value. - (interactive_type): New enum. - (long_opts): Let interactive take an optional argument. - (interactive_args, interactive_types): New option arguments. - (usage): Document -I, --interactive=WHEN. Use program_name - instead of a basename. - (main): New -I option, new behavior to --interactive. - * tests/rm/interactive-once: New tests. - * tests/rm/interactive-always: Ditto. - * tests/rm/Makefile.am (TESTS): Run them. - -2006-02-18 Jim Meyering <jim@meyering.net> - - * Makefile.maint (sc_two_space_separator_in_usage): Make the regular - expression match more of the target lines, e.g., those that start with - `-S,' (short option followed by a comma) or that include `=[...]'. - Patch by Nicolas François. - Fix the four offenders thus exposed: - * src/join.c (usage): Use two spaces (not one) to separate the - --first-only option string from its description, so help2man formats - the derived man page properly. - * src/pr.c (usage): Likewise. - * src/uniq.c (usage): Likewise. - * src/install.c (usage): Likewise. + tests: remove df/total + * tests/df/total: Remove file. + * tests/Makefile.am (TESTS): Remove df/total. + It is subsumed by df/total-verify. -2006-02-15 Jim Meyering <jim@meyering.net> +2008-11-12 Ondřej Vašík <ovasik@redhat.com> - * Makefile.maint (alpha beta major): For `make major', ensure that the - version string is of the form N.N[.N]*, where N is one or more digits. + * tests/df/total-verify [VERBOSE]: Run df --version, not ls --version. -2006-02-14 Jim Meyering <jim@meyering.net> +2008-11-12 Jim Meyering <meyering@redhat.com> - * INSTALL: Update from gnulib. + avoid spurious test failure when df always fails + * tests/df/total-verify: Skip upon _df_ failure, not tee failure. + Reported by Ondřej Vašík. Details in + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15028>. -2006-02-13 Jim Meyering <jim@meyering.net> +2008-11-11 Eric Blake <ebb9@byu.net> - * GNUmakefile (all): Emit diagnostics to stderr, not stdout. + jm-macros.m4: avoid syntax issue with newer autoconf + * jm-macros.m4 (coreutils_MACROS): Make LIB_CAP assignment persistent. + +2008-11-11 Jim Meyering <meyering@redhat.com> -2006-02-12 Jim Meyering <jim@meyering.net> + Update references to GFDL: 1.2 -> 1.3 + * doc/coreutils.texi: Likewise. + * doc/perm.texi: Likewise. + * old/fileutils/NEWS: Likewise. + * old/sh-utils/NEWS: Likewise. + * old/textutils/NEWS: Likewise. - * Makefile.maint (patch-check): New target. - (local-checks-available): Add to the list. +2008-11-10 Jim Meyering <meyering@redhat.com> -2006-02-11 Jim Meyering <jim@meyering.net> + make --help print "Report PROGRAM translation bugs to <...>." + for all but the C/POSIX locale. + * src/system.h: Include "hard-locale.h". + (emit_bug_reporting_address): Tell where to report translation bugs. + + don't include "hard-locale.h", now that system.h does + * src/comm.c: Likewise. + * src/join.c: Likewise. + * src/ls.c: Likewise. + * src/pinky.c: Likewise. + * src/pr.c: Likewise. + * src/sort.c: Likewise. + * src/uniq.c: Likewise. + * src/who.c: Likewise. + +2008-11-10 Jim Meyering <meyering@redhat.com> + + avoid warnings about discarding "qualifiers from pointer target type" + Use the new "bad_cast" function or an actual cast-to-"(char *)" + to avoid warnings. + * src/system.h (bad_cast): Define. + * src/chown.c (main): + * src/chroot.c (main): + * src/date.c (main): + * src/du.c (main): + * src/expand.c (stdin_argv): + * src/ls.c (decode_switches): + * src/md5sum.c (main): + * src/paste.c (main): + * src/pr.c (col_sep_string, column_separator, line_separator, main): + * src/sort.c (main): + * src/split.c (main): + * src/tail.c (main): + * src/unexpand.c (stdin_argv): + * src/yes.c (main): + + avoid a compiler warning + (strip_program): Declare to be const. + + use xfreopen in place of unchecked freopen + * bootstrap.conf (modules): Add xfreopen. + * src/cat.c (main): Include "xfreopen.h". Use xfreopen. + * src/cksum.c (cksum): Likewise. + * src/head.c (head_file, main): Likewise. + * src/md5sum.c (digest_file): Likewise. + * src/od.c (open_next_file): Likewise. + * src/split.c (type_undef): Likewise. + * src/sum.c (bsd_sum_file, sysv_sum_file): Likewise. + * src/tac.c (tac_file, main): Likewise. + * src/tail.c (tail_file, main): Likewise. + * src/tee.c (tee_files): Likewise. + * src/tr.c (main): Likewise. + * src/wc.c (wc_file): Likewise. + * po/POTFILES.in: Add lib/xfreopen.c - * src/c99-to-c89.diff: New file. - * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff. + xfreopen: new module + * gl/lib/xfreopen.c: New file. + * gl/lib/xfreopen.h: New file. + * gl/modules/xfreopen: New file. - * .x-po-check: New file, with exclusions so that `make distcheck' - passes once again. - * Makefile.am (EXTRA_DIST): Add .x-po-check. +2008-11-09 Jim Meyering <meyering@redhat.com> - rm -r must remove an empty directory, even if it is inaccessible. - * src/remove.c (close_preserve_errno): New function. - (fd_to_subdirp): Don't print a diagnostic in this function. - Do it from the callers instead, unless rmdir succeeds. - (remove_cwd_entries, remove_dir): Adjust callers. - * tests/rm/empty-inacc: New test for the above. - * tests/rm/Makefile.am (TESTS): Add empty-inacc. - * NEWS: Mention this bug fix. - * tests/rm/rm2: Adjust two expected diagnostics, now that they're - a tiny bit less precise: cannot remove `a/1': ... instead of - cannot open directory `a/1': ... - - * Makefile.maint (syntax-check-rules): Automatically derive this - list of sc_-prefixed rule names. - -2006-02-10 Paul Eggert <eggert@cs.ucla.edu> - - * Makefile.maint (CVS_LIST): Don't assume cvsu is available. - (CVS_LIST_EXCEPT): New macro, to simplify exception-processing. - Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT. - (syntax-check-rules): Bring back sc_changelong. (Hmm, why did it - go away? was that an accident?) - (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value): - (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof): - (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h): - (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank): - (sc_two_space_separator_in_usage, sc_unmarked_diagnostics): - (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4): - (sc_useless_cpp_parens, makefile-check, m4-check, po-check): - (author_mark_check, makefile_path_separator_check): - Output line numbers, to simplify navigation of Emacs *compilation* - buffers. - (sc_prohibit_atoi_atof, sc_file_system): - Rework slightly so that Makefile.maint doesn't get reported as a - violation of its own syntax rules. - (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing - it at run-time (which didn't work with Bison). Fix a makefile typo, - caught by Makefile.maint itself: spaces where a tab should be. - (po-check): Check lib/*.[ch] even if not in CVS; used by Bison, - which copies from ../gnulib/lib/*.[ch] to lib/*.[ch]. - Ignore djgpp and man subdirectories, to avoid false matches with - Bison and coreutils, respectively. Use sort -u to remove the - resulting duplicates. - * gnupload: Rework slightly to avoid bogus warning from - sc_two_space_separator_in_usage. - -2006-02-10 Jim Meyering <jim@meyering.net> - - Use gzip's --rsyncable option only if it's available. - * Makefile.maint (gzip_rsyncable): New variable. - (GZIP_ENV): Use it. - -2006-02-08 Jim Meyering <jim@meyering.net> - - * Makefile.maint (local-checks-available): Define in terms of - the expansion, $(syntax-check-rules), rather than the single, - top-level target `syntax-check', so that it's easier to exclude - individual rules (via $(local-checks-to-skip)). - (tgz-md5, tgz-sha1, ...): Remove now-unused definitions. - -2006-02-07 Jim Meyering <jim@meyering.net> - - * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it - is on Tru64), define O_DIRECT to that. Patch From James Lemley. - - * tests/help-version (expected_failure_status_vdir): - Redirect an expected disk-full diagnostic to /dev/null. - -2006-02-06 Jim Meyering <jim@meyering.net> - - * src/unexpand.c (usage): Use two spaces (not one) to separate the - --first-only option string from its description, so help2man formats - the derived man page properly. - * src/rm.c (usage): Likewise for --no-preserve-root. - * src/chown.c (usage): Likewise. - * src/chgrp.c (usage): Likewise. - - Add a rule to ensure that the above doesn't happen again. - * Makefile.maint (sc_two_space_separator_in_usage): New rule. - (syntax-check-rules): Add it. - * .x-sc_two_space_separator_in_usage: New empty file. - * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage. - -2006-02-06 Jim Meyering <jim@meyering.net> - - * src/cp.c (usage): Use two spaces (not one) to separate each - option string from its description, so help2man formats the - derived man page properly. - * src/mv.c (usage): Likewise. - Patch from Nicolas François in http://bugs.debian.org/351601. - -2006-02-04 Jim Meyering <jim@meyering.net> - - * src/copy.c (copy_internal): cp -RL would fail when encountering - the same directory more than once in the hierarchy beneath a single - command-line argument. That is legitimate, e.g. when there are - two or more symbolic links, each pointing to some directory that - would not otherwise be copied. Reported by Christophe LYON. - * tests/cp/cp-deref: New file. Test for today's fix. - * tests/cp/Makefile.am (TESTS): Add cp-deref. - * NEWS: Document this. + Update URL: s!www.iro.umontreal.ca!translationproject.org/team/...! + * Makefile.am (THANKS-to-translators): Update URL template. -2006-02-03 Jim Meyering <jim@meyering.net> +2008-11-09 James Youngman <jay@gnu.org> - * configure.ac: Require automake-1.9.6, not 1.8.3. + install: indicate clearly it's not for installing packages + * src/install.c (usage): Indicate the program copies files, + as opposed to installing packages. -2006-02-01 Paul Eggert <eggert@cs.ucla.edu> +2008-11-08 Jim Meyering <meyering@redhat.com> - * src/od.c (usage): Mention that -t a ignores high order bit. - Documentation problem reported by Ed Avis. + emit more precise bug-reporting instructions + Hoping that this will decrease the volume of bug reports + mistakenly directed to the coreutils mailing list. + * src/system.h (emit_bug_reporting_address): Specify the program + name in the "Report bugs to <...>." line in each program's --help + output and man page. Now, it will say "Report PROGRAM_NAME bugs + to <...>." Suggestion from Ondřej Vašík. -2006-02-01 Jim Meyering <jim@meyering.net> +2008-11-05 Jim Meyering <meyering@redhat.com> - * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'. + include gnulib's strdup module explicitly + * bootstrap.conf (gnulib_modules): Include strdup explicitly, to + keep the latest version of gnulib-tool from omitting this now-marked- + as-obsolete module. -2006-01-30 Paul Eggert <eggert@cs.ucla.edu> +2008-10-28 Kamil Dudka <kdudka@redhat.com> - * src/head.c (main): Use a better diagnostic when someone uses a - trailing numeric option in an invalid way. Problem reported by - Karl Berry. - * src/tail.c (parse_options): Likewise. + ls: --color now highlights hard linked files, too + * src/ls.c (print_color_indicator): Colorize hard linked files. + * src/dircolors.c: Add color for hard link. + * src/dircolors.hin: Add color for hard link. + * tests/ls/hardlink: Test for ls - colorize hard linked files. + * tests/Makefile.am (TESTS): Add ls/hardlink. + * NEWS: Mention the change. -2006-01-30 Jim Meyering <jim@meyering.net> +2008-10-28 Jim Meyering <meyering@redhat.com> - * man/wc.x: Include `count' keyword in man page synopsis, - per suggestion from http://bugs.debian.org/181585. + tests: ls/stat-failed: don't discard stderr. + * tests/ls/stat-failed: Let stderr be recorded, to ease debugging. -2006-01-24 Paul Eggert <eggert@cs.ucla.edu> +2008-10-26 Jim Meyering <meyering@redhat.com> - * src/df.c (show_dev): If the file system claims to have - more available than total blocks, report the number of used - blocks as being total - available (a negative number) rather - than as garbage. Problem reported by Toralf Foerster. + tests: seq: check for today's extended long double fix + * tests/misc/seq-long-double: New file. Test for today's bug fix. + * tests/check.mk (TESTS_ENVIRONMENT): Export CC definition. + * tests/Makefile.am (TESTS): Add misc/seq-long-double. + * NEWS (Bug fixes): Mention it. -2006-01-24 Jim Meyering <jim@meyering.net> +2008-10-26 Paul Eggert <eggert@CS.UCLA.EDU> - * src/tail.c (tail_forever): Don't exit-nonzero when an attempt - to put a regular file in O_NONBLOCK mode fails with EPERM. - That happens on Linux (up to 2.6.15) when using tail -f on a file with - the append-only attribute. Reported by Dean Gaudet. For details, - see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473. - * NEWS: Mention this fix. - * tests/tail-2/append-only: New file. Test for the above. - * tests/tail-2/Makefile.am (TESTS): Add append-only. - * tests/Makefile.am (check-root): Add tail-2/append-only + seq: improve quality of format-checking code + * src/seq.c (validate_format): Remove. Migrate its checks into... + (long_double_format): Report an error and exit if an error is found, + instead of returning NULL. All callers changed. + Use a more-consistent format for diagnostics. + * tests/misc/seq: Adjust to the more-consistent format for diagnostics. -2006-01-21 Jim Meyering <jim@meyering.net> +2008-10-25 Jim Meyering <meyering@redhat.com> - * NEWS: Mention fts-related improvements and bug fixes. + factor: avoid compilation failure without libgmp + * src/factor.c (debug) [!HAVE_GMP]: Define. + Reported by Bob Proulx. -2006-01-19 Jim Meyering <jim@meyering.net> +2008-10-25 Paul Eggert <eggert@CS.UCLA.EDU> + + factor: remove --bignum and --no-bignum options + Here's a patch to remove the --bignum and --no-bignum options from + 'factor'. The case for removing --bignum isn't as strong as that for + 'expr', but still, it seems to me that these options are not needed and + complicate the documentation unnecessarily. + + * doc/coreutils.texi (factor invocation): Remove --bignum, --no-bignum. + * src/factor.c (algorithm, ALGORITHM_CHOICE, USE_BIGNUM, NO_USE_BIGNUM): + Remove; all uses removed. + (extract_factors_multi): Remove, replacing with.... + (print_factors_multi): New function, with signature similar to that + of new signature of print_factors_single. + (print_factors_single): Migrate checking code to caller. + (print_factors): Use GMP if it's available; don't bother asking user. + Improve accuracy of check for "large" numbers. + (long_options, main): Remove support for --bignum. + +2008-10-25 Jim Meyering <meyering@redhat.com> + + tests: df/total: don't fail for an inaccessible mount point + * tests/df/total: Ignore nonzero exit status from df. + +2008-10-25 Paul Eggert <eggert@CS.UCLA.EDU> + + seq: revert Solaris 8 work-around that caused x86 regression + * src/seq.c: Don't include <math.h>, <float.h>. + (abs_rel_diff): Remove. + (print_numbers): Test for equality, not for an epsilonish value. + This reverts 4827dd27b0c655a685947aaa01426a5ecba179f3, aka + v6.10-185-g4827dd2, which broke 'seq' on the x86; for example, it + causes "seq 9223372036854775807 9223372036854775808" to incorrectly + output 3 numbers instead of 2. It's better to punish obsolescent + hosts that have incorrectly-working floating-point than to punish + correctly-working hosts. + * tests/misc/seq: Use 0.9000000000000, rather than + 0.90000000000000000000, to avoid tickling a bug in Solaris 8 strtold, + which converts "0.9" and "0.9000000000000" correctly, but incorrectly + converts "0.90000000000000000000" to a smaller value. + +2008-10-24 Eric Blake <ebb9@byu.net> + + group-list: avoid compiler warning + * src/group-list.c (print_group_list) [!HAVE_GETGROUPS]: Always + return value. + +2008-10-23 Jim Meyering <meyering@redhat.com> + + ls: use '.' (not +) as SELinux-only alt. access flag in ls -l output + * src/ls.c (gobble_file) [long_format]: Map SELinux-only to '.', + any other nonempty combination of MAC and ACL to '+', and all else + to the usual ' '. Suggested by Michael Stone. + * tests/misc/selinux: Adapt: expect '.', not '+'. + * doc/coreutils.texi (What information is listed): Document this. + * NEWS (Changes in behavior): Mention it. + +2008-10-22 Pádraig Brady <P@draigBrady.com> + + Remove lzma as a specific build requirement + * bootstrap.conf: lzma was added as a build requirement + in the recently added build tools requirements check. + Remove that as it's quite new and also only required + for the make dist stage. + +2008-10-22 Paul Eggert <eggert@cs.ucla.edu> + + * src/ls.c (usage): Describe exit statuses more concisely. + +2008-10-22 Pádraig Brady <P@draigBrady.com> + + Add better checks and docs for build tools + Prompted by a report from Ed Avis: + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14710> + + * README-hacking: Organise LZMA and Valgrind as + as optional requirements rather than in their own sections. + Mention bootstrap will now check tool versions. + * README-prereq: Make a start on specific instructions + for optaining build tools. Currently we just have notes + for Fedora linux. + * bootstrap.conf: Add the list of tools and versions required. + * bootstrap: Add the logic to check for the required tools, + and list all required tools and versions if any are missing. + +2008-10-22 Jim Meyering <meyering@redhat.com> + + clean up gl/modules/selinux-at + * gl/modules/selinux-at: + Ensure that LIB_SELINUX is cleared, in case it's set in the environment. + m4-quote the first two args to AC_SEARCH_LIBS. + Don't violate autoconf's ac_ namespace: s/ac_save/gl_save/ + Drop the useless double quotes around a simple assignment RHS. + +2008-10-21 Jim Meyering <meyering@redhat.com> + + move selinux-h module from gl/ to gnulib + * gl/lib/se-context.in.h: Remove file. + * gl/lib/se-selinux.in.h: Likewise. + * gl/m4/selinux-context-h.m4: Likewise. + * gl/m4/selinux-selinux-h.m4: Likewise. + * gl/modules/selinux-h: Likewise. + + prepare to move selinux-h module to gnulib + * gl/modules/selinux-h (Makefile.am) + [selinux/selinux.h, selinux/context.h]: + Remove temporary file and target, in case they're read-only. + Use $(MKDIR_P), not mkdir -p. + (License): Relax to LGPLv2+. + Remove vestigial comments. + + tests: test today's ls-vs-capability fix + Test for this fix: f3f1ccfd871ee395e7fafc051c1b7dedb39fdfc9. + * tests/Makefile.am (TESTS): Add ls/no-cap. + * tests/ls/no-cap: New file. + +2008-10-21 Kamil Dudka <kdudka@redhat.com> + + ls: make it possible to disable file capabilities checking + * ls.c (print_color_indicator): Do not check for file capability + if that attribute is not being colored. + Since 84f6abfe00b4ab533145623638b417a2221f9c75, ls --color would check + each file for "capabilities". In <http://bugzilla.redhat.com/467508>, + James Antill reported that ls --color seemed slower with capabilities + detection. + +2008-10-21 Jim Meyering <meyering@redhat.com> + + reflect gnulib's removal of lstat.h + * src/copy.h: Don't include "lstat.h". + * src/ls.c: Likewise. + * src/remove.c: Likewise. + * src/rm.c: Likewise. - * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug - reported as http://bugs.debian.org/147577. Forwarded by Thomas Hood. +2008-10-20 Pádraig Brady <P@draigBrady.com> + + expr: Fixup authors + * src/expr.c: Standardise the format of AUTHORS to + that used in other utils with multiple authors. + Also add Paul Eggert since he basically rewrote it + with his bignum fixes. + * AUTHORS (expr): Add Paul Eggert. + +2008-10-19 Jim Meyering <meyering@redhat.com> + + accommodate gnulib header removals + * src/copy.c: Don't include "euidaccess.h" or "lchmod.h". + * src/cp.c: Don't include "lchmod.h". + * src/ls.c: Don't include "dirfd.h". + * src/mkdir.c: Don't include "lchmod.h". + * src/pwd.c: Don't include "dirfd.h". + * src/remove.c: Don't include "dirfd.h" or "euidaccess.h". + * src/test.c: Don't include "euidaccess.h". + * gl/modules/getloadavg.diff: Adjust diff for changed context. + * src/uptime.c (uptime): Remove declaration. + +2008-10-18 Jim Meyering <meyering@redhat.com> + + * maint.mk (coreutils-path-check): New definition, now run + only if src/true.c exists. Factored out of... + (my-distcheck): ...here. + +2008-10-17 Jim Meyering <meyering@redhat.com> + + maint: avoid warning in ls.c + * src/ls.c (has_capability) [!HAVE_CAP]: Add unused attribute. + + maint: avoid warnings due to attribute warn_unused_result + Now that a (void) cast no longer suffices to ignore warnings from gcc + about uses of functions marked with the warn_unused_result attribute, + we need an alternative. For the record, here's one of the ignorable + warnings: "copy.c:233: warning: ignoring return value of 'fchown', + declared with attribute warn_unused_result" + * bootstrap.conf (gnulib_modules): Import ignore-value. + * src/copy.c: Include "ignore-value.h". + (set_owner): Use ignore_value in place of "(void)" casts, + to ignore lchown and fchown failures. + * src/cp.c (re_protect): Likewise, to ignore lchown failure. + * src/remove.c (preprocess_dir): Remove unnecessary "(void)" cast. + +2008-10-16 Jim Meyering <meyering@redhat.com> + + mktemp: diagnose freopen failure + * src/mktemp [--quiet]: Don't ignore freopen failure. + +2008-10-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/mktemp.c (main): Add 'const' twice to avoid GCC warning. + +2008-10-16 Jim Meyering <meyering@redhat.com> + + build: when po-check fails, say why and suggest a fix + * maint.mk (po-check): Before, when this check failed, it just + spat out a diff mentioning two temporary files. Now, it tells + you what's wrong and suggests a fix with a patch using the name + of the affected file (rather than temporary file names) in the + diff output. + +2008-10-16 Eric Blake <ebb9@byu.net> + + csplit: prefer sigaction over signal + * bootstrap.conf (gnulib_modules): Import sigaction. + * src/csplit.c (sigprocmask, siginterrupt) [SA_NOCLDSTOP]: Delete + workarounds. + (interrupt_handler, main): Drop use of signal. Rely on sigaction + to block fatal signal during cleanup, and to restore it to default + in case of nested signals. + +2008-10-15 Pádraig Brady <P@draigBrady.com> + + tests: add option processing tests for 'expr' + * tests/misc/expr: Add tests for various combinations + of options where the first part of the expression + could be confused with an option. + +2008-10-15 Paul Eggert <eggert@cs.ucla.edu> + + expr: remove --bignum and --no-bignum options + * doc/coreutils.texi (expr invocation): Remove the --bignum and + --no-bignum options. They weren't really needed, and they broke + longstanding (albeit nonportable) scripts. + * src/expr.c: Don't include <assert.h>. Include "inttostr.h", + "long-options.h", "verify.h". Check at compile-time that + size_t fits in unsigned long int, as the code assumes this in + several places. + (HAVE_GMP): Define to 0 if not defined, for convenience. + (mpz_t, mpz_clear, mpz_init_set_ui, mpz_init_set_str, mpz_add): + (mpz_sub, mpz_mul, mpz_tdiv_q, mpz_tdiv_r, mpz_get_str, mpz_sgn): + (mpz_fits_ulong_p, mpz_get_ui, mpz_out_str): + Supply substitutes when !HAVE_GMP, which work well enough for + expr's purposes. + (mp_integer): Remove. All integers are gmp, if gmp is available. + (struct valinfo): Remove 'z' member; no longer needed. The 'i' + member is always of type mpz_t. + (enum arithmetic_mode, MP_NEVER, MP_ALWAYS, MP_AUTO, mode): + Remove; no longer needed. + (usage): Remove documentation of --bignum and --no-bignum. + (integer_overflow): Abort if error misbehaves, to pacify GCC. + Restore old message on arithmetic overflow, to be conservative. + (die): Omit exit_status parameter; not needed (is always EXPR_FAILURE). + (string_too_long, USE_BIGNUM, NO_USE_BIGNUM, long_options): + Remove; no longer needed. + (main): Don't use getopt_long; this breaks old nonportable scripts. + (int_value): Arg is unsigned, in case we have strings whose length + exceeds LONG_MAX (!). + (int_value, freev, printv, null, tostring, toarith): + (eval6, eval4, eval3): + Always use mpz_ functions, to simplify the code. + (substr_value): Remove; no longer needed. + (getsize): Simplify the API: one arg rather than 3. Don't assume + unsigned long int fits in size_t. + (promote, domult, dodivide, doadd): Remove; no longer needed. + * tests/misc/expr: Don't use --bignum to test for bignum support. + Instead, use big numbers to test this. + +2008-10-15 Jim Meyering <meyering@redhat.com> + + expr: don't interpret argv[0] as an operand + * src/expr.c (main): Given a first argument like -22 (negative, with + two or more digits), expr would decrement optind to 0 and then attempt + to evaluate argv[0]. + + doc: cp, mv: remove mention of deprecated --reply= option + * doc/coreutils.texi (cp invocation, mv invocation): Don't mention it. + +2008-10-13 Jim Meyering <meyering@redhat.com> + + doc: adjust spacing in ls --help output, for better man formatting + * src/ls.c (usage): Adjust spacing so the "Exit status:" list + renders well in the help2man-generated man page. + +2008-10-13 Ondřej Vašík <ovasik@redhat.com> + + doc: ls: clarify exit status description + * src/ls.c (exit_status): Clarify comments. + (usage): Clarify exit status description in --help output. + * doc/coreutils.texi (ls invocation): Clarify exit status documentation + Reported by Greg Metcalfe in <http://bugzilla.redhat.com/446294>. + +2008-10-12 Jim Meyering <meyering@redhat.com> + + doc: reorder tsort/ptx nodes so body and menu ordering are consistent + * doc/coreutils.texi (tsort invocation, tsort background): Move these + nodes "down", so that they follow the ptx nodes, thus matching the + alphabetized order in the menu. + (tsort background): Make this a subsection. + Suggested by Karl Berry. + + tests: move check-misc targets from src/Makefile.am to maint.mk + * src/Makefile.am (check): Remove check-misc. + (check-misc): Remove target. + * maint.mk (sc_prohibit_stat_st_blocks): New target. + (sc_prohibit_S_IS_definition): New target. + * Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_stat_st_blocks. + * .x-sc_prohibit_stat_st_blocks: New file. + Andreas Schwab reported that "make check" could fail to detect + violation of the no-S_IS*-definition policy. + + tests: df: avoid test failure when using mawk + * tests/df/total-awk: Rewrite to use $PERL, not $AWK. + mawk can't even count above 2^31. Reported by Ed Avis. + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14792/focus=14802 + * tests/df/total-verify: Rename from total-awk. + * tests/Makefile.am (TESTS): Reflect renaming. + +2008-10-10 Jim Meyering <meyering@redhat.com> + + bootstrap: merge from gnulib + +2008-10-07 Ondřej Vašík <ovasik@redhat.com> + + doc: document runcon and chcon in SELinux context section + * doc/coreutils.texi: Document runcon and chcon. + Add minimal SELinux context section. + +2008-10-06 Ondřej Vašík <ovasik@redhat.com> + + chcon: remove traces of unimplemented --change (-c) option + This option was never supported in upstream coreutils. + * chcon.c (usage): Remove --change (-c) from help message. + (main): Remove 'c' from getopt string. + Remove related and now-unused enums. + +2008-10-06 Andreas Dilger <adilger@sun.com> + + stat: add lustre filesystem type + * src/stat.c (human_fstype) [S_MAGIC_LUSTRE]: Add case. + Make "stat -f" recognize the "Lustre" filesystem type. + <http://en.wikipedia.org/wiki/Lustre_(file_system)> + * NEWS: Mention this feature. + +2008-10-06 Jim Meyering <meyering@redhat.com> + + remove.c: avoid compile failure on OS/2 + * src/remove.c (dirent_inode_sort_may_be_useful): Guard also with + "#if defined __linux__". Reported by Elbert Pol. + +2008-10-05 Jim Meyering <meyering@redhat.com> + + post-release administrivia + * NEWS: Add header line for next release. + * .prev-version: Record previous version. + * cfg.mk (old_NEWS_hash): Auto-update. -2006-01-18 Jim Meyering <jim@meyering.net> + version 7.0 + * NEWS: Record release date. - * tests/du/Makefile.am (TESTS): Add long-from-unreadable. + * maint.mk (alpha beta major): Add "-a" to git commit ... command. -2006-01-17 Jim Meyering <jim@meyering.net> +2008-10-04 Jim Meyering <meyering@redhat.com> - Now that fts no longer changes the current working directory, adjust - its clients accordingly -- note that du.c uses fts but doesn't need - any adjustment, since it doesn't operate on the actual files, - but rather just uses the stat buffers provided by fts. + tests: fix the install/strip-program test + * tests/install/strip-program: Use $PREFERABLY_POSIX_SHELL, + not POSIX_SHELL. The latter may be empty, and would fail + on OpenBSD 3.9. + * tests/check.mk (TESTS_ENVIRONMENT): Propagate + PREFERABLY_POSIX_SHELL to tests. - * src/chown-core.c: Include "openat.h". - Don't include "lchown.h". - (restricted_chown): Accept a new parameter, CWD_FD, and use it in - calling openat, lchownat, chownat, rather than open, lchown, chown. - Update caller. - * src/chmod.c: Include "openat.h". - (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (... +2008-10-03 Jim Meyering <meyering@redhat.com> - * tests/du/long-from-unreadable: New test, to exercise one small - corner of fts.c. + timeout.c: don't use perror; exit 125 upon failed fork + * src/timeout.c (main): Use "error", not perror. + Elbert Pol noticed a build failure on OS/2. + * src/timeout.c (main): Exit 125 (not errno) upon failed fork. + Make the failed fork diagnostic match the one from install.c. -2006-01-13 Jim Meyering <jim@meyering.net> +2008-10-03 Kamil Dudka <kdudka@redhat.com> - * tests/Makefile.am (SUBDIRS): Add comments discouraging the - addition of new directories under tests/. + ls and sort: use filevercmp instead of strverscmp + * src/ls.c (cmp_version): Use filevercmp instead of strverscmp. + * src/sort.c (usage): Remove mna reference to strverscmp(3). + (compare_version): Use filevercmp instead of strverscmp. + * bootstrap.conf: Add filevercmp to list of gnulib modules. + * tests/misc/sort-version: Remove conflicting string and enhance test. + * NEWS: Mention the change. + +2008-10-02 Jim Meyering <meyering@redhat.com> - * tests/acl: Redirect stdin to /dev/null. Otherwise, FreeBSD 5.0's - getfacl would hang. + tests: skip a root-only test when configured without libcap + * tests/ls/capability: Test for HAVE_CAP definition in config.h. -2006-01-12 Jim Meyering <jim@meyering.net> +2008-10-02 Eric Blake <ebb9@byu.net> - * tests/du/long-sloop: Adjust not to hard-code the expected - diagnostic corresponding to ELOOP. Solaris' diagnostic differs - from that of GNU libc. Reported by Paul Eggert. + ignore additional built file - * tests/du/long-sloop: Create file at end of symlink chain. + remove.c: allow compilation on cygwin + * src/remove.c (dirent_inode_sort_may_be_useful) + [!HAVE_STRUCT_DIRENT_D_TYPE]: Elide definition when there is no point + in trying to use it. - * tests/misc/test: New file, with a test for one of the - bugs fixed by yesterday's test.c changes. - * tests/misc/Makefile.am (TESTS): Add test. +2008-10-02 Jim Meyering <meyering@redhat.com> -2006-01-11 Jim Meyering <jim@meyering.net> + bootstrap: merge from gnulib + * bootstrap: add submodule support, git-merge-changelog - * tests/du/long-sloop: New file. Test for today's fts.c bug fix. - That bug could make du -L, chgrp -L, or chown -L fail to diagnose - a very long sequence of symbolic links (not necessarily a loop). - * tests/du/Makefile.am (TESTS): Add long-sloop. +2008-10-01 Jim Meyering <meyering@redhat.com> -2006-01-11 Paul Eggert <eggert@cs.ucla.edu> + remove.c: combine two helper functions, to avoid sign-extension + * src/remove.c (fs_handles_readdir_ordered_dirents_efficiently): + Remove function, so as not to have to worry about the type of + statfs.f_type and sign extension. + (dirent_inode_sort_may_be_useful): Adjust comment. + Perform the switch directly on the struct.member here, instead. + Andreas Schwab spotted the potential for a sign-extension bug, + that happens not to bite for the S_* f_type values currently used. - * src/test.c (test_syntax_error): Append a newline. All callers - changed, except for the ones that didn't already append a newline. - Bug reported by Eric Blake. + rm: don't preprocess a directory on a file system of type tmpfs or nfs + The preprocessing phase is not necessary on tmpfs, and induces + a 20% performance decrease when removing a 2M-entry directory. + * src/remove.c (fs_handles_readdir_ordered_dirents_efficiently): + (dirent_inode_sort_may_be_useful): New functions from gnulib/fts.c. + They'll probably become a gnulib module -- eventually. + (preprocess_dir): Use dirent_inode_sort_may_be_useful. -2006-01-11 Jim Meyering <jim@meyering.net> + tests: use our new timeout program + * tests/rm/ext3-perf: Also, record set-up duration and FS type. - * src/system.h (X2NREALLOC): Now that verify_true is no longer - void, cast its result to void, to avoid gcc's warning that - ``left-hand operand of comma expression has no effect''. - (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise. +2008-09-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -2006-01-10 Jim Meyering <jim@meyering.net> + fix make variable quotation error + * tests/check.mk (TESTS_ENVIRONMENT): Quote shell variable + $tmp__, fix expansion. - * tests/chmod/no-x: Add a test for today's fts.c fix. +2008-09-29 Jim Meyering <meyering@redhat.com> -2006-01-10 Jim Meyering <jim@meyering.net> (tiny change) + seq: solve e13188e7ef7bbd609c1586332a335b4194b881aa more cleanly + * src/seq.c (print_numbers): Don't switch c_strtold -> strtold + in order to accommodate the locale-dependent behavior of our internal + asprintf use. Instead, simply set the locale to C before calling + asprintf, and then set it back afterwards. - * src/ls.c (gobble_file): Use DTTOIF only if it's defined. - This is necessary for Dragonfly. Patch by Joerg Sonnenberger. +2008-09-28 Jim Meyering <meyering@redhat.com> -2006-01-10 Paul Eggert <eggert@cs.ucla.edu> + build: avoid spurious valgrind warning about uses of touch + * .vg-suppressions (utimensat-NULL): Avoid bogus valgrind warning + that appears on at least Fedora 9. - * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE): - Use verify_true instead of verify_expr, to sync with gnulib. + mktemp: plug an inconsequential leak + * src/mktemp.c (main) [lint]: Free template. -2006-01-08 Jim Meyering <jim@meyering.net> + THANKS: add Erik Auerswald - * src/date.c (usage): Adjust the formatting of the entries for - %::z and %:::z (separate with two spaces, not one) so that help2man - formats them properly. Reported by Philip Rowlands. +2008-09-28 Eric Blake <ebb9@byu.net> -2006-01-06 Paul Eggert <eggert@cs.ucla.edu> + remove.c: avoid compiler warning + * src/remove.c (compare_ino, dirent_count) + [!HAVE_STRUCT_DIRENT_D_TYPE]: Mask declaration when unused. - * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add. +2008-09-26 Jim Meyering <meyering@redhat.com> -2006-01-06 Jim Meyering <jim@meyering.net> + rm -r: avoid O(n^2) performance for a directory with very many entries + This enhancement works around a problem that is specific to at least + ext3 and ext4 file systems. With them, it would take hours to remove + a two-million-entry directory. RAM-backed file systems (tmpfs) are + not affected, since there is no seek penalty. + * remove.c (rm_malloc, rm_free, compare_ino): New functions. + (dirent_count, preprocess_dir): New function. + [struct readdir_data]: New struct. + (remove_cwd_entries): Call preprocess_dir. + * tests/rm/ext3-perf: New file. Test for the performance fix. + * NEWS: mention the new feature - * Makefile.maint (copyright-check): Use date +%Y in place of - hard-coded 2005. +2008-09-26 Jim Meyering <meyering@redhat.com> - * src/remove.c (rm_1): Remove `static' attribute on local `status'. - First off, the attribute should have been `volatile' (not static) - to avoid longjmp-related risk of clobber. Secondly, now there is - no longer any risk of a local variable being clobbered, so there's - no need for any attribute at all. + remove.c: don't use xmalloc; don't let obstack call exit on failure + (obstack_chunk_alloc, obstack_chunk_free): Don't define. + (top_dir): Param is no longer "const". + Use malloc, not xmalloc, and call longjmp upon failed malloc. + (obstack_init_minimal): New function. + (ds_init): Don't use xmalloc. Instead, use caller-supplied buffer. + Use obstack_specify_allocation_with_arg, not obstack_init, so + that we control what happens upon allocation failure. + Arrange for ds_free not to free uninitialized if/when + any obstack_specify_allocation_with_arg allocation fails. + (ds_free): Don't free DS, now that it's no longer malloc'd. + (rm): Allocate DS on the stack. + Arrange to handle ds_init allocation failure. -2006-01-05 Jim Meyering <jim@meyering.net> + step1 - * src/remove.c: Give a few functions the inline attribute. - (AD_pop_and_chdir): Use gotos to avoid some duplication. - (AD_push): Rewrite an assertion so that the entire computation - goes away when assertions are turned off. +2008-09-26 Jim Meyering <meyering@redhat.com> - * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here. - It's already defined in "system.h". - * Makefile.maint: Add a FIXME comment. + * maint.mk (my-distcheck): remove duplicate c99-related test code -2006-01-04 Jim Meyering <jim@meyering.net> + maint: allow more C99 constructs; stop maintaining c99-to-c89 patch set + * cfg.mk (local-checks-to-skip): Add patch-check. + With the recent changes to remove.c, I no longer wish + to maintain the c99-to-c89 patch set. - * ChangeLog: Remove entries from 2005-10-22 and earlier. - * ChangeLog-2005: New file, for entries up to version 5.92. +2008-09-26 Jim Meyering <meyering@redhat.com> -2006-01-03 Jim Meyering <jim@meyering.net> + seq -0.1 0.1 2: print final number when locale's decimal point is "," + * src/seq.c (print_numbers): Use strtold, not c_strtold to convert + from just-formatted-using-asprintf string back to double, since + asprintf may have used something other than "." as the decimal point. + Reported by lsof@nodata.co.uk as <http://bugzilla.redhat.com/463556>. + Thanks to Ondřej Vašík for discovering that the bug was locale-related. - * tests/du/no-x: Also allow a slightly different diagnostic -- the - one you get when using openat-enabled fts.c and du (coming soon). - * tests/chmod/no-x: Likewise. - * tests/chgrp/no-x: Likewise. + $ LC_ALL=cs_CZ.UTF-8 seq -0.1 0.1 2|grep 2.0 + [Exit 1] + $ seq -0.1 0.1 2|grep 2.0 + 2.0 - * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define. + * tests/check.mk (TESTS_ENVIRONMENT): Add LOCALE_FR_UTF8, for... + * tests/misc/seq [locale-dec-pt]: New test for the above. + * NEWS (bug fix): Mention it. -2006-01-02 Paul Eggert <eggert@cs.ucla.edu> +2008-09-26 Jim Meyering <meyering@redhat.com> - * src/chown-core.c (RC_do_ordinary_chown): New enum value. - (restricted_chown): Return it, if the file cannot be accessed due - to EPERM, or if no uid or gid are required, or if the file is - neither a directory nor a regular file. Rewrite to avoid gotos. - (change_file_owner): Handle RC_do_ordinary_chown case. - Rewrite to avoid gotos. - * tests/chgrp/basic: Make sure we can change the group of - inaccessible files. + maint: relax a check so "make distcheck" succeeds again + * maint.mk (makefile-check): Relax the check, in order to exempt + the necessary use of a sole @...@-delimited Makefile.am variable. - * src/date.c (usage): Explain %g, %G, and %V a bit better. +2008-09-24 Jim Meyering <meyering@redhat.com> -2006-01-02 Jim Meyering <jim@meyering.net> + maint: avoid using find -name Makefile.am; could get false positives + * maint.mk (makefile-check): Instead, search for the offending + @...@ construct only in version-controlled files. - * src/copy.c (set_owner): Correct a comment. +2008-09-24 Benno Schulenberg <bensberg@justemail.net> - * src/tail.c (parse_options): Change warning to say that --retry - is useful `mainly' (not `only') when following by name. - Reported here: http://bugs.debian.org/273781 + pinky: gettextize two missed strings + Additionally differentiate the strings for unknown idle time and + unknown real name so they can be translated differently. -2006-01-01 Paul Eggert <eggert@cs.ucla.edu> +2008-09-24 Jim Meyering <meyering@redhat.com> - * NEWS: Document that mkfifo and mknod -m no longer set special bits. - * src/copy.c: Include lchmod.h. - (copy_internal): Use lchmod rather than chmod. - * src/cp.c: Include lchmod.h. - (re_protect, make_dir_parents_private): Use lchmod rather than chmod. - * src/mkdir.c: Include lchmod.h. - (usage): Clarify -m's operation. - (main): Use lchmod rather than chmod. Don't use lchmod unless the - new mode contains bits outside the 777 range. - * src/mkfifo.c (usage): Clarify -m's operation. - (main): If -m is given, don't invoke chmod; use umask 0 instead. - Report an error if -m asks for bits outside the 777 range. - * src/mknod.c (usage, main): Likewise. + cp.c: adjust a comment to make it consistent with documentation + '-a' is equivalent to -dpR, so s/-dpPR/-dpR/; the -P is redundant, + since -d already implies -P, and both --help and "info cp" say -dpR: + Corresponding doc changes: 080ac7785071c7f135711a39e57c71d9057d9bd7 + b7c2db676635518c06add0dd570543ae83e21f2e. - * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes. +2008-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -2005-12-27 Jim Meyering <jim@meyering.net> + fix installation with ./ginstall in src + * src/Makefile.am (cu_install_program): New variable, set to + either ./ginstall or @INSTALL_PROGRAM@ (for cross compilation). + (INSTALL_PROGRAM): Override AC_SUBST unconditionally, to avoid + warning, and wrong initialization order. - * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY. - (sc_prohibit_assert_without_use): New rule. - (syntax-check-rules): Add it to the list. - * .x-sc_prohibit_assert_without_use: New empty file. - * Makefile.am (EXTRA_DIST): Add it. +2008-09-22 Benno Schulenberg <bensberg@justemail.net> - * Makefile.maint (CVS_LIST): Define in terms of $(srcdir). - - * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c: - Don't include <assert.h>; it wasn't used. - -2005-12-26 Paul Eggert <eggert@cs.ucla.edu> - - * src/chown-core.c (restricted_chown): - Don't try O_WRONLY unless O_RDONLY failed wth EACCES. - * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY - | O_NOFOLLOW too, for consistency with other dir-openers. - Use POSIX-preferred O_NONBLOCK rather than O_NDELAY. - (is_empty_dir): Likewise. - * src/shred.c (wipename): Likewise. Don't bother trying to open - dir for writing, since POSIX prohibits it. - -2005-12-22 Jim Meyering <jim@meyering.net> - - * tests/help-version: Redirect stderr to /dev/full, to suppress - write error diagnostic. - -2005-12-19 Jim Meyering <jim@meyering.net> - - * src/mkdir.c, src/mknod.c, src/mkfifo.c (main) - Avoid a minor race condition when `-m MODE' is specified, by using - open, fchown, and close rather than just chown. To do that reliably -- - even with an overly restrictive umask -- ensure that each mkdir, - mknod and mkfifo call uses a mode including at least owner-read access. - * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if - the subsequent chown (or equivalent open,fchown,close) fails. - * tests/misc/mknod: New tests. - * tests/misc/Makefile.am (TESTS): Add mknod. - -2005-12-17 Jim Meyering <jim@meyering.net> - - * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang, - e.g., on a named pipe. - (OPEN_NO_FOLLOW_SYMLINK): Remove definition. Use O_NOFOLLOW in - place of all uses, since it is guaranteed (system.h) to be defined. - -2005-12-05 Andreas Gruenbacher <agruen@suse.de> - - Add POSIX ACL support - * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall - is no requirement for ACL support; particularly, it does not exist - on systems that have POSIX ACLs. - * src/copy.h (cp_option_init) [umask_kill]: Remove member. - * src/cp.c (umask_kill): With default acls, the umask is not to be - applied. Remove umask_kill, don't change the process umask, and let - the kernel apply the umask where appropriate. - * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs. - * src/copy.c (get_dest_mode): Remove; it is obsolete after removing - umask_kill. - (copy_reg, copy_internal): Use copy_acl and set_acl - instead of fchown/chown. Fix the logic for POSIX ACLs. - (chown_succeded): Remove; we now always copy acls and - preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we - did a chown before or not. - * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member. - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD, - mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange - to link with it via $(LIB_ACL), for the utilities that need it. - -2005-12-16 Paul Eggert <eggert@cs.ucla.edu> - - * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove. - (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise. - (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its - value is now signified by whether cwd_errno is null. - (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from - pointer-to-bool to pointer-to-errno-value. All callers changed. - (rm_1): Don't bother setting a local cwd failure flag and then - ORing it into the caller's. Just set the caller's. - (rm): Use cwd failure errno value to print a slightly-better - diagnostic. - -2005-12-15 Jim Meyering <jim@meyering.net> - - * src/stat.c (print_it): Properly handle a backslash at the - end of a --printf format string. Reported by Paul Eggert. - * tests/misc/stat-printf (end-bs): Add a test for the above. - -2005-12-15 Paul Eggert <eggert@cs.ucla.edu> - - * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh. - Don't assume /etc/passwd contains user names; use 'id' instead. - -2005-12-15 Jim Meyering <jim@meyering.net> - - stat: revert behavior of --format=FMT (-c) - stat: add new option: --printf=FMT - * NEWS: Mention this. - * src/stat.c (isodigit, octtobin, hextobin): Define. - (PRINTF_OPTION): Define. - (interpret_backslash_escapes, trailing_delim): New globals. - (usage): Document them. Alphabetize on long option names. - (print_esc_char): New function. - (print_it): Rewrite, in order to handle backslash escapes. - (main): Handle new option. Set globals for --format, too. + doc: alphabetize 'who's option descriptions + * doc/coreutils.texi (who invocation): Alphabetize. - * tests/misc/stat-printf: Test --printf and --format. - * tests/misc/Makefile.am (TESTS): Add stat-printf. +2008-09-19 Benno Schulenberg <bensberg@justemail.net> -2005-12-14 Paul Eggert <eggert@cs.ucla.edu> + who --help: add a general description - * NEWS: sort now reports incompatible options. - * src/sort.c (incompatible_options, check_ordering_compatibility): - New functions. - (main): Use them. Don't bother with a usage message for - "sort -c a b", for consistency with other error diagnostics. - * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4): - New tests. - - * src/cat.c (main): Undo previous change. close_stdout already - does the check, so the previous change wasn't necessary. - -2005-12-13 Paul Eggert <eggert@cs.ucla.edu> - - * src/cat.c (main): Check for close (STDOUT_FILENO) failure. - -2005-12-12 Paul Eggert <eggert@cs.ucla.edu> - - Install a more-conservative approach for sort -R. It's the - same basic idea as the existing code, except it uses the full ISAAC - approach (called the "more kosher" approach in the existing comments). - This makes "sort -R" quite a bit slower (about a factor of 2 on my - little tests involving 10000 lines on a 2.4 GHz P4), but I think it's - better to be conservative here at first, and review any performance - improvements carefully. - * .x-sc_require_config_h: Add src/rand-isaac.c. - * src/rand-isaac.h: Remove. All uses now simply include rand-isaac.c. - * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h. - (shred_SOURCES, sort_SOURCES): Remove. - (EXTRA_DIST): Add rand-isaac.c. - * src/rand-isaac.c: Revert to what used to be in shred.c, without - changing it to allow for varying numbers of words in the state. - Alter so that we include rand-isaac.c directly rather than - compiling it and linking to it. Don't include config.h or - system.h; that's the includer's responsibility. - Omit functions that are specific to shred. - (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind): - (isaac_step, struct irand_state): - Resurrect these, with the same defns that used to be in shred.c. - (ISAAC_SIZE, isaac_new, isaac_copy): Remove. - (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32): - static again. - (struct isaac_state, isaac_refill, isaac_mix, isaac_init): - (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed): - (irand_init, irand32, irand_mod): - Number of words is constant again. - (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c. - * src/shred.c: Include rand-isaac.c rather than rand-isaac.h. - * src/sort.c: Likewise. - * src/shred.c (fillrand, dopass, main): Undo previous change. - (struct irand_state, irand_init, irand32, irand_mod): Moved back here, - from rand-isaac.c. - * src/sort.c: Don't include md5.h; it wasn't needed. - (struct keyfield): Rename random_hash to random, for consistency - with the other member names. All uses changed. - (usage): Tweak wording to mention STRING for --seed option. - (short_options): Rorder for consistency with other programs. - (rand_state): Now a struct, not a pointer to one. All uses changed. - (HASH_WORDS, HASH_SIZE): Remove. - (get_hash): Remove comments around resbuf size, since we can assume C89. - Use a "more-kosher" (but slower) approach of invoking isaac_refill. - (keycompare): Adjust to the new get_hash. - Add a FIXME. - (badfieldspec): Omit recently-introduced comment; it isn't needed. - (main): Don't set need_random simply because gkey has it set; that - doesn't necessarily mean we'll need random numbers. - Redo seeding to match new get_hash approach. + uptime --help: put together message parts that belong together + + tr --help: gettextize a single paragraph as a single string + Breaking a paragraph into several strings is awkward for translators. -2005-12-10 Jim Meyering <jim@meyering.net> + tail: gettextize the string, "standard input" - * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h. + tail --help: move the --retry entry into alphabetical order + * src/tail.c (usage): Also simplify --retry description, split a + long string in two, remove a stray period, and add the usual indent. - Avoid shred segfault on 64-bit systems. - * src/rand-isaac.c (isaac_refill): Don't try to negate a - local of type uint32_t. Make the local an `int' instead. + shred --help: lowercase a stray capital - * NEWS: Mention sort's new options. + stty --help: correct the alignment of an entry + * src/stty.c (usage): Also remove a stray period, and ungettextize + a debugging message. - * src/rand-isaac.c (isaac_mix): Declare to be static. - Mark all other functions as `extern' so the tight-scope - part of `make distcheck' passes once again. - * src/rand-isaac.h (isaac_mix): Remove declaration. + sort --help: sort the options better alphabetically + Take the opportunity to split the long message into three parts. - * src/sort.c (get_hash): Change position of `*' in parameter - type to conform with convention. - (main): Split a long line so it fits in 80 columns. - (keycompare): Remove stray SPACE before TAB that was - causing `make distcheck' to fail. + rmdir --help: use lower case in option description; adjust indentation - * src/shred.c: Don't include gethrxtime.h. No longer needed. + remove.c: move comment to right before string, so gettext will pick it up - * tests/misc/sort-rand: New file: basic tests for the new options. - * tests/misc/Makefile.am (TESTS): Add sort-rand. + pr --help: elide arguments after short options that allow a space + * src/pr.c (usage): Also, put the -S option with its description. -2005-12-10 Frederik Eaton <frederik@ofb.net> + od: ungettextize debugging messages - * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME). - (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c. - * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c. - Make state size runtime-configurable. - (isaac_new, isaac_copy): New functions. - * src/rand-isaac.h: New file. - * src/shred.c: Include rand-isaac.h. Move ISAAC code to rand-isaac.c. - (fillrand, main): Adjust to the fact that the state size is now - runtime-configurable. - * src/sort.c (short_options, long_options, WORDS, keycompare, main): - (usage): Add options --random-sort and --seed to implement a random - shuffle. - Include md5.h and rand-isaac.h. - (get_hash): New function. - (rand_state): New var. - (HASH_WORDS, HASH_SIZE): New macros. + nohup, remove, tr: also gettextize the alternative messages -2005-12-09 Paul Eggert <eggert@cs.ucla.edu> + od --help: avoid concatening two messages without a newline + src/od.c (usage): Better: make them into two separate paragraphs. - * tests/dd/misc: Add test for dd iflags=noatime. + mkfifo, mknod --help: put -Z option in its alphabetical position + Options are normally sorted by their short form, not their long form. + Also line up their descriptions. -2005-12-09 Jim Meyering <jim@meyering.net> +2008-09-19 Jim Meyering <meyering@redhat.com> - * src/sort.c (usage): Mention white space vs -b and -t options. - From The Wanderer. + doc: coreutils.texi (csplit invocation): Add an example. -2005-12-09 Eric Blake <ebb9@byu.net> +2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * src/test.c (main): Fix misleading comment. + various VPATH-related fixes + * maint.mk (VC_LIST): Prepend '$(srcdir)/'. + (patch-check): Fix to make it work with a VPATH build. + * src/Makefile.am (sc_tight_scope): Likewise. + * man/Makefile.am (.x.1): Do not make outputs unwritable. -2005-12-07 Paul Eggert <eggert@cs.ucla.edu> +2008-09-14 Jim Meyering <meyering@redhat.com> - * NEWS: Mention dd's new noatime flag. - * src/system.h (O_NOATIME): Define to 0 if not already defined. - * src/dd.c (flags, usage): Add support for noatime flag. + stat: remove obsolete and undocumented option, --filesystem + * src/stat.c: Remove obsolete and undocumented --filesystem. -2005-12-07 Jim Meyering <jim@meyering.net> +2008-09-13 Jim Meyering <meyering@redhat.com> - Distribute the cvsu script, used only by `make syntax-check'. - * Makefile.am (EXTRA_DIST): Add build-aux/cvsu. - * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we - distribute a copy of this script. - * .x-sc_unmarked_diagnostics: Add build-aux/cvsu. + tests: reenable disabled test, now that automake can handle it + This reverts the change in ae1c205fc473589d028ef63785926263843555cd. - * tests/mv/acl: exit-77 before the trap, not after, if we fail - to create a temporary directory on another partition. - From Andreas Gruenbacher. +2008-09-11 Jim Meyering <meyering@redhat.com> -2005-12-06 Tomas Pospisek <tpo@sourcepole.ch> (tiny change) + tests: temporarily disable part of "make distcheck" + * maint.mk (install-transform-check): Temporarily disable. - * man/basename.x: Cross-reference to dirname and readlink. - * man/dirname.x: Cross-reference to basename and readlink. + tweak wording and check to avoid failure + * doc/coreutils.texi (printf invocation): Tweak wording. + * doc/Makefile.am (check-texinfo): Allow "search path". -2005-12-05 Andreas Gruenbacher +2008-09-10 Jim Meyering <meyering@redhat.com> - * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1. - (set_owner, preserve_author): New functions, factored out of copy_reg. - (copy_reg): Use them. - (copy_internal): Use them here, too. + doc: mention which commands may be built-in functions + * doc/coreutils.texi (mayConflictWithShellBuiltIn): New macro. + (mknod invocation, stat invocation, echo invocation) + (printf invocation, test invocation, pwd invocation) + (nice invocation, kill invocation, sleep invocation): Use it. + (printf invocation): Invoke via "env" rather than using a + literal /usr/local/bin/ prefix in examples. -2005-12-04 Jim Meyering <jim@meyering.net> +2008-09-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * src/sleep.c (usage): Say what happens with two or more arguments. - Suggested by Justin Pryzby. + simplify installation rules, using new Automake + This relies on development Automake to provide multi-file + installation, and avoids relying on undocumented Automake + interfaces. It also removes special-casing for `['. + * configure.ac (AM_INIT_AUTOMAKE): Depend on 1.10a. + (CROSS_COMPILING): New Automake conditional. + * src/Makefile.am (install-exec-am, filtered_PROGS) + (d_bindir, cu-install-binPROGRAMS): Remove. + (INSTALL_PROGRAM) [!CROSS_COMPILING]: Set to `./ginstall'. - * src/uptime.c (print_uptime): Move decl of `upsecs' into scope - where it's used. + fix minor shell issues in test suite + * tests/misc/help-version: Fix bad quoting. + * tests/cp/same-file: Fix unportable shell quoting. + * tests/mv/part-symlink: Likewise. -2005-12-03 Jim Meyering <jim@meyering.net> +2008-09-10 Jim Meyering <meyering@redhat.com> - * src/rm.c (long_opts): Change the name of each undocumented, for- - testing-only option to start with `-', so that it cannot render - ambiguous any prefix it happens to share with some other option name. - Problem reported by Eric Blake. + tests: don't use "local" in bourne shell scripts + * tests/test-lib.sh (remove_tmp_, skip_if_mcstransd_is_running_): + Avoid failure on Solaris 11, since their /bin/sh passes the tests + in posix-shell.m4, yet does not support "local" (which is not POSIX). + +2008-09-10 Jim Meyering <meyering@redhat.com> + + tests: use "Exit $fail", not (exit $fail); exit $fail + * tests/test-lib.sh (Exit): New function by Ralf Wildenhues in automake + http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=20594c08f63 + * tests/**: Convert all uses: + + This restrictive change converted the vast majority: + + git grep -l '^(exit \$fail); exit \$fail$' \ + | xargs perl -pi -e 's/'^\(exit \$fail\); exit \$fail$/Exit \$fail/' + + And this did the rest, plus a few undesirable ones, so I manually + backed out the changes to ChangeLog-* and build-aux/check.mk: + + git grep -l -E '\(exit [^)]+\); exit ' \ + | xargs perl -pi -e 's/\(exit (.+?)\); exit \1/Exit $1/' + +2008-09-08 Jim Meyering <meyering@redhat.com> + + tests: move input-tty into a test-lib.sh function + * tests/test-lib.sh (require_controlling_input_terminal_): New function, from + * tests/input-tty: ...here. Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove input-tty. + * tests/mv/i-3: Use the function, not the file. + * tests/misc/stty: Likewise. + * tests/misc/stty-row-col: Likewise. + * tests/misc/stty-invalid: Likewise. + +2008-09-07 Jim Meyering <meyering@redhat.com> + + tests: work around Solaris 11 bug + * tests/misc/printf-surprise: Accept bogus prefix on stderr output. + + tests: don't let rounding-to-1KB blocks provoke a failure + * tests/df/total-awk: Use df's --block-size=512 option. + + tests: don't fail due to built-in sleep from Solaris 11's /bin/sh + * tests/misc/help-version (id_args): Invoke via env to ensure we + run the just-built version of sleep. + +2008-09-06 Kamil Dudka <kdudka@redhat.com> + + install: new option: --strip-program, + ...to specify the program used to strip binaries + * src/install.c (main): Handle new option --strip-program. + (strip): Use strip program from global variable strip_program. + (usage): Mention new option --strip-program in --help. + * tests/tests/strip-program: Test case for new option --strip-program. + * tests/Makefile.am: Add new test case to test set. + * doc/coreutils.texi: Mention new option --strip-program. + * NEWS: Mention the change. + * TODO: Remove completed task. + +2008-09-03 Kamil Dudka <kdudka@redhat.com> + + df: new option: --total to print grand totals + * src/df.c (add_uint_with_neg_flag): New function to add two integral + values with separate negation flag. + (show_dev): New parameter force_fsu to display numbers directly. Collect + summary statistics on each printed device. + (usage): Mention new option --total in --help. + (main): Initialize summary on program start. Handle new option --total. + * tests/df/total: Dummy test case for new --total option. + * tests/df/total-awk: Better test case for new --total option (requires + awk). + * doc/coreutils.texi: Mention new parameter --total. + * NEWS: Mention the change. + * TODO: Removed completed task. + +2008-09-03 Jim Meyering <meyering@redhat.com> + + TODO: add an item for a chmod optimization + +2008-08-31 Jerry Snitselaar <dev@snitselaar.org> + + env, groups: remove duplicate inclusion of <getopt.h> + * src/env.c: Remove redundant #include. + * src/groups.c: Likewise. + Tiny change. + +2008-08-26 Jim Meyering <meyering@redhat.com> + + generate version.c and version.h + * src/Makefile.am (version.c, version.h): New rules. Generate. + (nodist_libver_a_SOURCES): Define + * .gitignore: Add src/version.c and src/version.h. + (DISTCLEANFILES): Add version.c and version.h. + + use new global, "Version", rather than macro, VERSION + With this change, a version-string update no longer + forces recompilation of 100+ src/*.o files. + * src/version.c (Version): New global. New file. + * src/version.h: Declare it. + * src/Makefile.am: Put it in a library that everyone links to. + (noinst_LIBRARIES, libver_a_SOURCES): Define. + (LDADD): Add libver.a. + (sc_tight_scope): Use perl (was sed), and a more relaxed regexp + to build the global-variable-name-recognizing regexp list. + * src/system.h: Include "version.h". + (case_GETOPT_VERSION_CHAR): Use Version rather than VERSION. + * src/basename.c (main): Use Version rather than VERSION. + * src/chroot.c (main): Likewise. + * src/cksum.c (main): Likewise. + * src/dd.c (main): Likewise. + * src/dirname.c (main): Likewise. + * src/echo.c (main): Likewise. + * src/hostid.c (main): Likewise. + * src/hostname.c (main): Likewise. + * src/link.c (main): Likewise. + * src/logname.c (main): Likewise. + * src/nice.c (main): Likewise. + * src/nohup.c (main): Likewise. + * src/printenv.c (main): Likewise. + * src/printf.c (main): Likewise. + * src/pwd.c (main): Likewise. + * src/setuidgid.c (main): Likewise. + * src/sleep.c (main): Likewise. + * src/sync.c (main): Likewise. + * src/test.c (main): Likewise. + * src/timeout.c (main): Likewise. + * src/true.c (main): Likewise. + * src/tsort.c (main): Likewise. + * src/unlink.c (main): Likewise. + * src/uptime.c (main): Likewise. + * src/users.c (main): Likewise. + * src/whoami.c (main): Likewise. + * src/yes.c (main): Likewise. + + bootstrap: preserve permissions of more copied files + * bootstrap (cp_mark_as_generated): Preserve perms of copied files. + Remove a kludge, now that this is fixed. + +2008-08-23 Bruno Haible <bruno@clisp.org> + + doc: clarify wc -L documentation + * doc/coreutils.texi (wc invocation): Explain what the -L option + measures. + +2008-08-20 Eric Blake <ebb9@byu.net> + + ls: adjust to gnulib change + * src/ls.c (includes): "strverscmp.h" no longer exists. + +2008-08-19 Eric Blake <ebb9@byu.net> + + .gitignore: ignore more files + * .gitignore: Ignore directories created by gnulib. + + .gitattributes: generalize + * .gitattributes: Relax the glob pattern, so it matches *.texinfo, too. + Suggest a POSIX BRE, rather than one that uses the GNU extension, \\+. + + sort: improve usage wording + * src/sort.c (usage): Mention that -k defaults to end of line if + POS2 omitted. + * THANKS: Update. + Reported by Tim Ryan. + +2008-08-15 Jim Meyering <meyering@redhat.com> + + adjust + +2008-08-15 Bruce Korb <bkorb@gnu.org> + + sort: new option, --sort=version, for version number ordering + * src/sort.c [struct keyfield] (version): New member. + (usage): Describe --version-sort. + (sort_options): Add 'V'. + (long_options): Add "version-sort". + (CHECK_TABLE, _ct_, SORT_TABLE, _st_): Define new macros. + (check_args, sort_args, sort_types): Use these new macros in declarations. + (ARGMATCH_VERIFY): Remove use. No longer needed. + (compare_version): New function. + (key_compare): Add a case. + (check_ordering_compatibility): Handle new type. + (main): Likewise. Reformat two expressions for readability. + * tests/misc/sort-version: new test file + * tests/Makefile.am: add it to the list + * doc/coreutils.texi (sort invocation): Document it. + * NEWS: Mention the new feature. + +2008-08-14 Jim Meyering <meyering@redhat.com> + + set envvars via "env" to avoid spurious set -x output from bad shells + * tests/dd/misc: Set LC_ALL=C via env. + * tests/cp/thru-dangling: Set POSIXLY_CORRECT via env. + This is necessary at least on AIX 5.3. + Reported by Jeph Cowan and Ralf Wildenhues. Details here: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257 + + "expr --bignum 1" now fails when expr is built without libgmp + * src/expr.c (main): When --bignum is requested, yet expr was built + without libgmp, exit nonzero (3) in addition to giving a diagnostic. + + mktemp, sort, tac: don't use undefined after mkstemp failure + When mkstemp fails, the template buffer may have undefined + contents, so we must not print it. + * src/sort.c (create_temp_file): Use temp_dir, not "file" + when diagnosing failed mkstemp, because "file" may be undefined. + * tests/misc/sort-merge: Adjust for new expected output. + Jeph Cowan and Ralf Wildenhues reported the test failure: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14235/focus=14257 + * src/tac.c (copy_to_temp): Don't use template buffer after + failed mkstemp call, since its contents may be undefined. + * tests/misc/tac (pipe-bad-tmpdir): New test for the above. + * src/mktemp.c (main): Save a copy of the template string, + solely for use in case mkstemp fails. + * tests/misc/mktemp (pipe-bad-tmpdir): New test for the above. + +2008-08-12 Benno Schulenberg <bensberg@justemail.net> + + kill: micro grammar nit in description of SIGNAL + + groups: let synopsis show that the command allows multiple usernames + Also make the docstring say so. + + id: remove superfluous condition test; it is caught at -Z above + + id: gettextize a few missed tiny strings + + fmt: remove the 'no file' sentence; the standard phrase is given below + Replace the sentence with a more useful explanation of -DIGITS. + +2008-08-11 Benno Schulenberg <bensberg@justemail.net> + + echo: correct description of \c + * src/echo.c (usage): Correct description of \c. + * coreutils.texi (echo invocation): Likewise. + * src/echo.c: Remove --help-duplicating comment. + + doc: the quote operator for expr is '+', not 'quote' + + factor: remove duplicate docstring; use the more detailed one + + echo: gettextize the alternative option description too + + dd: clarify meaning of multiplication factors; put xM in order + + doc: remove stray word from date's field width description + + date: remove confusing and unneeded sentence from --help + It makes it unclear what 'sequences' refers to, + and the -u option already says enough. + + printenv: say what it does when variables are specified + + doc: put the exitstatus paragraph in a better place + * doc/coreutils.texi (tsort invocation): move two lines + + cp: move a newline to make second message identical to others + + who: Gettextize two forgotten strings + +2008-08-10 Jim Meyering <meyering@redhat.com> + + sort: remove unnecessary declaration of strtod + * src/sort.c (STDC_HEADERS): Remove declaration of strtod. + + sort: avoid erroneous cast + * src/sort.c (OPEN_MAX): Define if not already defined. + (MAX_NMERGE): Remove definition. + (specify_nmerge): Don't cast MAX_NMERGE (of type size_t) to unsigned int. + Instead, use OPEN_MAX as the fall-back value. + + sort: don't print uninitialized in diagnostic + * src/sort.c (specify_nmerge): Do use uinttostr value. + Provoke with e.g., sort -m --batch-size=18446744073709551617 + Omit quotes around known-numeric value in diagnostic. + * tests/misc/sort-merge [nmerge-big]: Tighten ERR_SUBST regexp + to require a numeric value in that diagnostic, so this particular + failure cannot reappear. + +2008-08-09 Jim Meyering <meyering@redhat.com> + + * .gitattributes: Better diff output for texinfo sources. + + dd.c: reduce duplication in new O_FULLBLOCK-defining code + * src/dd.c (MULTIPLE_BITS_SET): New macro, extracted from... + (multiple_bits_set): ...this function. + Use a single-line, and far simpler expression (no need to list all + O_* symbols again) to validate the derived O_FULLBLOCK value. + + * coreutils.texi (factor invocation, expr invocation): Adjust wording. + + expr: avoid compiler warnings + * src/expr.c (die): New "noreturn" function to wrap one-arg use of + error + (string_too_long): Use die rather than error. + (toint): Remove definition of now-unused function. + (eval6): Remove a little duplication. + Use die rather than error. + (dodivide): Remove declaration of now-unused variable. + + * tests/misc/expr: Add tests of the new GMP-based code. + +2008-08-06 James Youngman <jay@gnu.org> + + expr: support arbitrary-precision arithmetic + * src/Makefile.am (expr_LDADD): Link expr against GNU MP. + * doc/coreutils.texi (expr invocation): Describe --bignum, + --no-bignum. Explain the new arbitrary-precision functionality. + * NEWS: Indicate that arbitrary-precision arithmetic is now + supported in expr. + * src/expr.c (enum valtype): Added mp_integer, signifying a GNU MP + number. + (usage): Document the new options --bignum and --no-bignum which + force and prohibit the use of arbitrary-precision arithmetic, + respectively. + (long_options): data structure for getopt_long, which we need to + use to parse the options mentioned above. + (main): parse these options with getopt_long instead of + parse_long_options. + (valinfo): Downgrade the numeric member of the union from + intmax_t to signed long, since MP lacks functions for promoting an + intmax_t to an arbitrary-precision quantity. + (enum arithmetic_mode): Represents the current choice between + --bignum, --no-bignum and the default (automatically switch from + one to the other if needed). + (integer_overflow): issue a more explicit error message indicating + that MP is not available. + (string_too_long): new function, emits a fatal error message for + the case where an argument to the 'index' expression is too long + for a string offset to be represented. + (int_value): With --bignum, create the value as mp_integer rather + than plain integer. + (substr_value): factored out of eval6; implements "substr". + (freev): also destroy mp_integer values. Check that no mp_integer + values exist if --no-bignum was specified. + (printv, null, tostring): support mp_integer. + (toint): new funtion for converting from string or mp_integer to + integer. + (getsize): extracts a size_t value from a VALUE object; used to + implement substr. + (promote): promotes a value from integer to mp_integer. + (domult, dodivide): functions for multiplication and division, + factored out of eval4. + (doadd): addition/subraction function, factpred out of eval3. + (eval3): support mp_integer types; call doadd. + (eval4): support mp_integer types; call domult, dodivide. + (eval6): support mp_integer offsets and lengths for "substr" and + "index". + * TODO: Mention that expr supports arbitrary-precision arithmetic, + and suggest that this might also be a good idea for seq. + * AUTHORS (expr): Add James Youngman. + + doc: mv,cp: undocument the --reply option + * doc/coreutils.texi (mv invocation): Remove documentation for mv --reply. + (cp invocation): Likewise. + * NEWS: mention this. + + document the supported baud rates beyond 38400 + * doc/coreutils.texi (Special): Document the supported baud rates + beyond 38400. + +2008-08-05 John David Anglin <dave@hiauly1.hia.nrc.ca> + + ls: ignore spurious getfilecon failure due to lack of SELinux support + * src/ls.c (gobble_file): Upon failed getfilecon, treat an errno value + of EOPNOTSUPP just like ENOTSUP. See <http://bugs.debian.org/488549>. + +2008-08-05 James Youngman <jay@gnu.org> + + Document uptime. + * doc/coreutils.texi (uptime invocation): document uptime. + * TODO: uptime is documented now. + * src/uptime.c (print_uptime): Use fprintftime to print the time, rather + than printf. This should make the situation better for translations. + +2008-08-04 Benno Schulenberg <bensberg@justemail.net> + + doc: correct and normalize --help output of several tools + * src/chroot.c (usage): Add "[ARG]" to synopsis. + * src/cut.c (usage): Remove an inconsistent period in an option + description. + * src/du.c (usage): Remove superfluous argument after short option -X. + Also remove inconsistent uppercase and final period. + Use a single indent level for prettiness. + * src/shred.c (usage): Normalize the synopsis. + * src/stty.c (usage): Options -F and --file are alternatives, cannot + both be used. + * src/sum.c (usage): -r does not overrule -s; the last one counts. + * src/uptime.c (usage): Remove inconsistent space from the synopsis. + * src/users.c: Likewise. + +2008-08-04 Jim Meyering <meyering@redhat.com> + + false: mark "false" description for translation + * src/true.c (usage): Mark both strings with N_, so that + the one for "false" is also extracted for translation. + For consistency, mark both, although only the latter one needed it. + Inspired by a patch from Benno Schulenberg. + +2008-08-04 James Youngman <jay@gnu.org> + + factor: credit Torbjörn Granlund + * src/factor.c: Credit Torbjörn Granlund as the author of the + arbitrary-precision factorization code. + +2008-08-03 Jim Meyering <meyering@redhat.com> + + doc: make it clear we're talking about the Linux kernel + * doc/coreutils.texi (mv invocation): tweak wording + +2008-08-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + tests: fix build-aux/check.mk for non-GNU make + * build-aux/check.mk ($(TEST_LOGS)) [!GNU_MAKE]: Check for + a $(TESTS) test in the build dir, before one in srcdir. For details, + see <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14198>. + + * bootstrap: Fix unportable expr usage. + +2008-08-01 Kamil Dudka <kdudka@redhat.com> + + ls: --color now highlights files with capabilities, too + * src/ls.c: [HAVE_CAP] Include <sys/capability.h>. + (has_capability): New function for capability detection. + (print_color_indicator): Colorize file with capability. + * m4/jm-macro.m4: New configure option: --disable-libcap. + Check for libcap usability. + * src/Makefile.am (dir_LDADD, ls_LDADD, ...): Append $(LIB_CAP). + * src/dircolors.c: Update color lists. + * src/dircolors.hin: Mention new CAPABILITY color attribute. + * tests/ls/capability: Test for ls - colorize file with capability. + * tests/Makefile.am (root_tests): Add ls/capability. + * NEWS: Mention the change. + +2008-08-01 James Youngman <jay@gnu.org> + + factor arbitrarily large numbers + * m4/gmp.m4: New file; adds cu_GMP, which detects GNU MP. + * configure.ac: Use cu_GMP. + * src/Makefile.am: Link factor against libgmp if available. + * src/factor.c: Use GNU MP if it is available. + (emit_factor, emit_ul_factor, factor_using_division, + factor_using_pollard_rho, extract_factors_multi, + sort_and_print_factors, free_factors): new functions + for the arbitrary-precision implementation, taken from an example + in GNU MP. + (factor_wheel): Renamed; was called factor. + (print_factors_single): Renamed; was called print_factors. + (print_factors): New function, chooses between the single- and + arbitrary-precision algorithms according to availability of GNU MP + and the length of the number to be factored. + (usage, main): New options --bignum and --no-bignum. + * coreutils.texi (factor invocation): Document new command-line + options for the MP implementation and update the performance + numbers to take into account the asymptotically faster algorithm. + * TODO: Remove item about factoring large primes (it's done). + * m4/gmp.m4: Add support for --without-gmp. + * NEWS: Mention the new feature. + +2008-08-01 Kamil Dudka <kdudka@redhat.com> + + ls -U1 now uses constant memory + When printing one name per line and not sorting, ls now uses + constant memory per directory, no matter how many files are in + the directory. + * ls.c (print_dir): Print each file name immediately, when possible. + * NEWS: Mention the improvement. + +2008-07-30 Jim Meyering <meyering@redhat.com> + + * timeout.c: Fix grammar in a comment. Normalize comment syntax. + +2008-07-28 Jim Meyering <meyering@redhat.com> + + bootstrap: work also when there are no .po files in po/ + * bootstrap (update_po_files): Complete the change that I began + in 7ba2dd808232cff3ee76aaceb97f4381c3c9cde4. + +2008-07-27 Jim Meyering <meyering@redhat.com> + + * NEWS: Move shuf --zero-terminated item into bug-fixes section. + +2008-07-27 Mikael Magnusson <mikachu@gmail.com> + + shuf: correctly document --head-count + * src/shuf.c (usage): Correct --help output. + * doc/coreutils.texi: Correct option listing. + * NEWS: Mention correction. + +2008-07-27 Jim Meyering <meyering@redhat.com> + + shuf: honor --zero-terminated option even with --input-range=LO-HI + * src/shuf.c (write_permuted_output): Add EOLBYTE parameter and use + it rather than hard-coding "\n". + (main): Adjust sole caller. + * tests/misc/shuf: Add a test to exercise this bug fix. + * NEWS: Mention it. + +2008-07-23 Jim Meyering <meyering@redhat.com> + + dd: minor fullblock changes + * src/dd.c (O_FULLBLOCK): Define using an enum, not #define. + Derive the value, rather than hard-coding to one that might conflict. + (usage): Mention iflag=fullblock in --help output. + (scanargs): Reset the O_FULLBLOCK bit, so that we don't try to set + an undefined attribute via fcntl (fd, F_SETFL, ... + * tests/dd/misc: Signal framework_failure when necessary. + Use "compare actual expected", so any diffs look "right". + * NEWS (dd): Alphabetize and reword. + * coreutils.texi (dd invocation): Adjust wording. + +2008-07-23 Kamil Dudka <kdudka@redhat.com> + + dd: new option: iflag=fullblock to accumulate full input blocks + * src/dd.c (iread_fullblock): New function for reading full blocks. + (scanargs): Check for new parameter iflag=fullblock. + (skip): Use iread_fnc pointer instead of iread function. + (dd_copy): Use iread_fnc pointer instead of iread function. + * tests/dd/misc: Add test for dd - read full blocks. + * doc/coretuils.texi: Mention new parameter iflag=fullblock. + * NEWS: Mentioned the change. + +2008-07-23 Jim Meyering <meyering@redhat.com> + + dd: adjust --help output so help2man formats the man page properly + * src/dd.c (usage): Use two spaces (not one) to separate + "directory" from its description, so help2man formats + the derived man page properly. + +2008-07-23 Reuben Thomas <rrt@sc3d.org> + + doc: add example .bashrc code for a ~/.dircolors file + * coreutils.texi: Add tip for .bashrc use from Jim Meyering. + +2008-07-22 Jim Meyering <meyering@redhat.com> + + tests: do not run chmod on a prefix of space-embedded tmpdir + * TESTS/test-lib.sh (remove_tmp_): New function. + (trap 0): Use it instead of open-coded (and misquoted) version. + + tests: ensure "make check" w/tainted build dir no longer impacts $HOME + * maint.mk (taint-distcheck): New rule. + (maintainer-distcheck): Make it. + +2008-07-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + tests: again, do not change the mode of all directories below $HOME + * tests/CuTmpdir.pm (chmod_tree): Do not run chmod on undefined + argument, can happen when the build path contains spaces. + +2008-07-19 Jim Meyering <meyering@redhat.com> + + * THANKS: Update, now that I have a name for jemm4jemm. + +2008-07-18 Andreas Schwab <schwab@suse.de> + + mknod: correct misplaced -Z description in --help output + * src/mknod.c (usage): Put it after the "Mandatory arguments..." line. + +2008-07-16 Jim Meyering <meyering@redhat.com> + + dircolors.hin: add Ogg/Theora-related extensions + * dircolors.hin: Add extensions from + http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions + Suggestion from jemm4jemm@yahoo.com. + + * HACKING: describe how to find a misplaced change-set + +2008-07-15 Jim Meyering <meyering@redhat.com> + + fix two bugs in ptx + * src/ptx.c (fix_output_parameters): Don't let before_max_width + go negative -- that would cause an infloop in define_all_fields. + (main): Don't clobber name[0] with lists of two or more input files. + * tests/misc/ptx: New file. Test for the above. + * tests/Makefile.am (TESTS): Add misc/ptx. + +2008-07-11 Pádraig Brady <P@draigBrady.com> + + tests: expand: test for lines starting with both spaces and tabs + The expand released in current distributions (Fedora Core 4 - Fedora 9 + at least), doesn't expand --initial tabs if spaces are present. + + tests/misc/expand: Add test to verify --initial works correctly + with lines starting with both spaces and tabs. + +2008-07-10 Jim Meyering <meyering@redhat.com> + + make check: accommodate stricter POSIX-conforming shells + Without this, test-related variable settings were not exported to + the shell_or_perl_ function when using dash or Solaris 11's /bin/sh. + * tests/check.mk (TESTS_ENVIRONMENT): Use an explicit "export", + so as not to rely on non-POSIX behavior of some /bin/sh (e.g., + bash-based ones). + +2008-07-06 Jim Meyering <meyering@redhat.com> + + * bootstrap: Remove $bt and $bt2 also when not using gettext. + +2008-07-04 Jim Meyering <meyering@redhat.com> + + who -r: don't print "last=" when the corresponding byte is unprintable + * src/who.c (print_runlevel): Print last=%c only when the "preceding + run-level" byte is printable. Reported by Gian Piero De Lolliis in + <http://bugzilla.redhat.com/453249>. + +2008-07-04 Ondřej Vašík <ovasik@redhat.com> + + doc: describe who's -p, -r, and -t options + * doc/coreutils.texi (who invocation): + +2008-07-04 Jim Meyering <meyering@redhat.com> + + install with just-built ./ginstall only when not cross-compiling + * src/Makefile.am (install-exec-am): ...otherwise, use the default + value, $(INSTALL_PROGRAM). Reported by Brian Silverman. + + * README-hacking: Update the section on LZMA. + +2008-06-30 Pádraig Brady <P@draigBrady.com> + + truncate: ignore whitespace in --size parameters + 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. + * src/truncate.c: Skip leading white space in the --size option + argument and any white space after one of the relative modifiers, + so that the presence of a +/- modifier can be detected reliably. + * tests/misc/truncate-parameters: Add tests for the above. + +2008-06-28 Jim Meyering <meyering@redhat.com> + + doc: add "..." to Usage, to indicate there may be multiple OPTIONs + * src/base64.c (usage): Likewise. + * src/cat.c (usage): Likewise. + * src/md5sum.c (usage): Likewise. + * src/mkdir.c (usage): Likewise. + * src/mkfifo.c (usage): Likewise. + * src/split.c (usage): Likewise. + * src/stat.c (usage): Likewise. + Heiko Marr reported the problem with mkdir. + + mkfifo: correct misplaced -Z description in --help output + * src/mkfifo.c (usage): Put it *after* the "Mandatory arguments..." line. + +2008-06-27 Jim Meyering <meyering@redhat.com> + + uniq: remove redundant test + * src/uniq.c (find_field): Remove redundant test in outer loop- + termination expression. Also, add a "const" attribute. + +2008-06-27 Pádraig Brady <P@draigBrady.com> + + timeout: fix invalid argument tests + * tests/misc/timeout-parameters: Remove test for invalid + signal number (we don't know what signal numbers are + invalid on all systems). Also tweak the other invalid + signal check so that the rest of the arguments are correct. + +2008-06-27 Jim Meyering <meyering@redhat.com> + + avoid a -Wsign-compare warning + * src/tee.c (tee_files): Swap fwrite's size/n_elem args and + compare the return value against "1". + + base64: don't rely on feof returning 0/1 + * src/base64.c (do_decode): feof is specified to return nonzero, + not 0/1, so use "k < 1 + !!feof(in)" as the loop termination test. + +2008-06-27 Pádraig Brady <P@draigBrady.com> + + truncate: silence -Wsign-compare warnings + * src/truncate.c: Cast signed to unsigned to + confirm intent which will silence -Wsign-compare warnings + +2008-06-27 Jim Meyering <meyering@redhat.com> + + factor out time_t-to-string conversion idiom + * src/system.h: Include "inttostr.h". + (timetostr): New function, factored out of... + * src/date.c (show_date): Use timetostr. + * src/du.c (show_date): Likewise. + * src/ls.c (print_long_format): Likewise. + * src/pinky.c (time_string): Likewise. + * src/stat.c (human_time): Likewise. + * src/*.c: Don't include inttostr.h, since system.h does. + * src/c99-to-c89.diff: Adjust offsets. + +2008-06-27 Pádraig Brady <P@draigBrady.com> + + truncate: Fix integer portability issues + * src/truncate.c: Explicitly convert from off_t to intmax_t + when printing numbers as they may be different types. + Also don't mix size_t and off_t types in operations as + the latter will be promoted to unsigned when these types + are the same size. + +2008-06-26 Jim Meyering <meyering@redhat.com> + + tests: adjust c99-to-c89 patch as well as the code to generate it + * maint.mk (patch-check) [REGEN_PATCH]: Trim some trailing blanks. + * src/c99-to-c89.diff: Adjust shred.c offsets. + + tests: fix make distcheck failure due to TODO change + * maint.mk (po-check): Limit check for e.g., _(...)-marked + messages to files matching *.? and *.??, thus excluding TODO + and *.diff. + + * TODO: Add item: remove uses of imaxtostr. + +2008-06-26 Peter O'Gorman <bug-coreutils@mlists.thewrittenword.com> + + tests: accommodate difference in an AIX 5.3 diagnostic + * tests/mkdir/selinux: Handle different strerror (ENOTSUP) spelling. + +2008-06-26 Jim Meyering <meyering@redhat.com> + + shred: also ignore EISDIR upon failed fsync/fdatasync on HP-UX + * src/shred.c (ignorable_sync_errno): New function. + (dosync): Use it. + Based on a patch from Peter O'Gorman. + + * HACKING: use shorter "-1" (over HEAD~1) with git format-patch + + bootstrap.conf: don't list "open" specifically + It is no longer necessary to list it specifically, + now that several gnulib modules depend on the "open" module. + This reverts commit 3ea1fe588e20f196cc9b9907d5943bd620c6b944. + + truncate: handle the case in which off_t != intmax_t + * src/truncate.c (parse_len): Use a temporary of type intmax_t, + rather than off_t; detect out of range [OFF_T_MIN..OFF_T_MAX]. + (main) [IF_LINT]: Initialize, to avoid an unwarranted + "may be used uninitialized" warning. + Reported by Michael Geng. + +2008-06-23 Jim Meyering <meyering@redhat.com> + + basename: List David MacKenzie as the author. + * src/basename.c (AUTHORS): List David as the author. + * AUTHORS: Update here, too. + +2008-06-23 Ondřej Vašík <ovasik@redhat.com> + + echo: use AUTHORS from bash's built-in echo + * AUTHORS,src/echo.c: Use bash builtin echo authors instead of FIXME unknown + +2008-06-22 Jim Meyering <meyering@redhat.com> + + use gnulib's "open" module + * bootstrap.conf (gnulib_modules): Add open. + This is required at least for Solaris 9 and HP-UX 11, to + avoid a truncate test failure. For details, see this thread: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13755 + + stat: warn that the --context (-Z) option (a no-op) is obsolete + * src/stat.c (main): It will be removed in a couple years. + * NEWS (Change in behavior): Mention this. + +2008-06-20 Jim Meyering <meyering@redhat.com> + + make "make syntax-check" quieter + * maint.mk (po-check, makefile-check, sc_proper_name_utf8_requires_ICONV): + Add "@" prefix. + +2008-06-20 Bo Borgerson <gigabo@gmail.com> + + sort: Fix bug where --batch-size option shrank SORT_SIZE. + * src/sort.c (specify_nmerge, main): Only adjust SORT_SIZE if it's already set. + * tests/misc/sort-merge: Test bug fix. + +2008-06-19 Jim Meyering <meyering@redhat.com> + + tests: avoid test failure when root's primary group-ID is not 0 + * tests/cp/preserve-gid: Expect a cp-without-`-p'-created file to + have a group ID of $(id -g). Reported by Jarod Wilson. Details in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837 + + tests: avoid root-only test failure when run in a chroot + * tests/misc/runcon-no-reorder: Accept the diagnostic that is + produced when running in a chroot without /selinux/context. + Reported by Jarod Wilson. Details in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803/focus=13837 + +2008-06-18 Jim Meyering <meyering@redhat.com> + + * tests/check.mk: Fix a typo in a comment. + +2008-06-17 Jim Meyering <meyering@redhat.com> + + doc: fix a syntax error + * coreutils.texi (du invocation): Add missing comma. + +2008-06-17 Bo Borgerson <gigabo@gmail.com> + + sort: accept new option --batch-size=NMERGE + * src/sort.c: (static unsigned int nmerge) Replace constant NMERGE. + (specify_nmerge) Validate and apply new option. + (mergefps) Replace some arrays with pointers to xnmalloc'd storage. + * tests/misc/sort-merge: Test new option. + * doc/coreutils.texi: Describe new option. + * NEWS: Advertise new option. + + sort: add new option --files0-from=F + * src/sort.c: Support new option. + * tests/misc/sort-files0-from: Test new option. + * tests/misc/Makefile.am: Indicate new test. + * docs/coreutils.texi: Explain new option. + * NEWS: Advertise new option. + + HACKING: Add section for tips on reducing translator workload. + * HACKING (Be nice to translators): New section. + Add Jim's suggestion to avoid changing translatable strings if possible. + +2008-06-17 Jim Meyering <meyering@redhat.com> + + * THANKS: Add name and email for Carl Roth. + +2008-06-17 Eric Blake <ebb9@byu.net> + + ls, od: avoid redundant const + * src/ls.c (long_time_format, sort_functions): Avoid redundant const. + * src/od.c (charname): Likewise. + * maint.mk (sc_redundant_const): Add rule to detect this. + +2008-06-16 Bo Borgerson <gigabo@gmail.com> + + join: improve memory management + * src/join.c (struct seq): Use a (struct line **) for `lines' rather than + one long (struct line *). This allows individual lines to be swapped out + if necessary. + (reset_line): Get a line ready for new input. + (init_linep): Create a new line and assign it to the the pointer passed in. + (spareline[2]): Hold a spare line for each input file. + (free_spareline): Clean up. + (get_line): Take a (struct line **) instead of a (struct line *). If the + line to be overwritten is the previous line for the current file then swap + it out for the spare. + (join): Accomodate new structure of SEQs and new parameters to get_line; + Don't free stale lines until the end -- they're re-usable now. + (dup_line): Remove function. + * NEWS: Mention the performance improvement. + +2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * doc/coreutils.texi (join invocation): Drop leading blanks. + +2008-06-16 Jim Meyering <meyering@redhat.com> + + remove redundant const directives + In 1463824d8e7f72c31f1d803d7cfe2b608ccafc5c, I added some + missing "const" directives, as well as some new, redundant ones. + This removes the redundant ones. Pointed out by Eric Blake. + * base64.c, cat.c, chcon.c, chgrp.c, chmod.c, chown.c, comm.c: + * cp.c, csplit.c, cut.c, date.c, dd.c, df.c, dircolors.c, du.c: + * env.c, expand.c, fmt.c, fold.c, groups.c, head.c, id.c: + * install.c, join.c, kill.c, ln.c, ls.c, md5sum.c, mkdir.c: + * mkfifo.c, mknod.c, mktemp.c, mv.c, nice.c, nl.c, od.c: + * paste.c, pathchk.c, pinky.c, pr.c, ptx.c, readlink.c, rm.c: + * rmdir.c, runcon.c, seq.c, shred.c, shuf.c, sort.c, split.c: + * stat.c, stty.c, su.c, sum.c, tac.c, tail.c, tee.c, timeout.c: + * touch.c, tr.c, truncate.c, tty.c, uname.c, unexpand.c, uniq.c: + * wc.c, who.c: Remove redundant const directives. + * maint.mk (sc_const_long_option): Don't require redundant "const". + + chcon: correct --verbose output to include newlines + * src/chcon.c (process_file): Append "\n" to --verbose diagnostic. + * tests/misc/chcon: Add a test for the above. + * NEWS: mention the bug fix + Reported by Carl D. Roth in http://bugzilla.redhat.com/451478. + +2008-06-15 Jim Meyering <meyering@redhat.com> + + address root cause of compilation failures: + The affected code wasn't even being compiled on my system, + because HAVE_NL_LANGINFO was not defined. On other systems, where + vasnprintf.m4 determines it needs %A or %a replacement support, it + _would_ check for nl_langinfo, and expose the compilation failure. + * m4/jm-macros.m4: Check for nl_langinfo, required by sort.c. + + fix the compilation failure for real + * src/sort.c (monthtab): Neither "const" may be added. + + fix a const-related compilation failure in sort.c + * src/sort.c (monthtab): Remove overzealous "const". + Table entries are modified in an #if HAVE_NL_LANGINFO block. + Introduced by 1463824d8e7f72c31f1d803d7cfe2b608ccafc5c. + + update HACKING guidelines + * HACKING: Don't suggest --signoff; it's redundant. + (log requirements): Specify preferred forms. + Mention preference for "<" over ">". + Mention the "const placement" preference. + +2008-06-14 Jim Meyering <meyering@redhat.com> + + run gnulib-tests in parallel + * tests/Makefile.am: Define AUTOMAKE_OPTIONS, so check.mk can append. + * tests/check.mk: Define SUFFIXES, so check.mk can append. + * build-aux/check.mk (SUFFIXES): Append, so as not to evoke + automake warning the prior definition in gnulib-tests/gnulib.mk. + (AUTOMAKE_OPTIONS): Likewise. + * gnulib-tests/Makefile.am (TEST_LOGS): Define. + Include build-aux/check.mk + + * maint.mk (sc_proper_name_utf8_requires_ICONV) Fix typo in diagnostic. + + add "const" attribute, where possible + * maint.mk (sc_const_long_option): New rule. Enforce global change. + * src/base64.c (long_options): Use "const" where possible. + * src/cat.c (main): Likewise. + * src/chcon.c (long_options): Likewise. + * src/chgrp.c (long_options): Likewise. + * src/chmod.c (long_options): Likewise. + * src/chown.c (long_options): Likewise. + * src/comm.c (long_options, OUTPUT_DELIMITER_OPTION): Likewise. + * src/cp.c (long_opts): Likewise. + * src/csplit.c (longopts): Likewise. + * src/cut.c (longopts): Likewise. + * src/date.c (long_options): Likewise. + * src/dd.c (conversions, flags, statuses): Likewise. + * src/df.c (long_options): Likewise. + * src/dircolors.c (long_options): Likewise. + * src/du.c (long_options): Likewise. + * src/env.c (longopts): Likewise. + * src/expand.c (longopts): Likewise. + * src/fmt.c (long_options): Likewise. + * src/fold.c (longopts): Likewise. + * src/groups.c (longopts): Likewise. * src/head.c (long_options): Likewise. + * src/id.c (longopts): Likewise. + * src/install.c (long_options): Likewise. + * src/join.c (longopts): Likewise. + * src/kill.c (long_options): Likewise. + * src/ln.c (long_options): Likewise. + * src/ls.c (long_time_format, long_options, sort_functions): Likewise. + * src/md5sum.c (long_options): Likewise. + * src/mkdir.c (longopts): Likewise. + * src/mkfifo.c (longopts): Likewise. + * src/mknod.c (longopts): Likewise. + * src/mktemp.c (longopts): Likewise. + * src/mv.c (long_options): Likewise. + * src/nice.c (longopts): Likewise. + * src/nl.c (longopts): Likewise. + * src/od.c (charname, long_options): Likewise. + * src/paste.c (longopts): Likewise. + * src/pathchk.c (longopts): Likewise. + * src/pinky.c (longopts): Likewise. + * src/pr.c (long_options): Likewise. + * src/ptx.c (long_options): Likewise. + * src/readlink.c (longopts): Likewise. + * src/rm.c (long_opts): Likewise. + * src/rmdir.c (longopts): Likewise. + * src/runcon.c (long_options): Likewise. + * src/seq.c (long_options): Likewise. + * src/shred.c (long_opts): Likewise. + * src/shuf.c (long_opts): Likewise. + * src/sort.c (monthtab, long_options): Likewise. + * src/split.c (longopts): Likewise. + * src/stat.c (long_options): Likewise. + * src/stty.c (mode_info, control_info, longopts, set_mode) Likewise. + (set_control_char, speeds): Likewise. + * src/su.c (longopts): Likewise. + * src/sum.c (longopts): Likewise. + * src/tac.c (longopts): Likewise. * src/tail.c (long_options): Likewise. + * src/tee.c (long_options): Likewise. + * src/timeout.c (long_options): Likewise. + * src/touch.c (longopts): Likewise. + * src/tr.c (long_options): Likewise. + * src/truncate.c (longopts): Likewise. + * src/tty.c (longopts): Likewise. + * src/uname.c (uname_long_options, arch_long_options): Likewise. + * src/unexpand.c (longopts): Likewise. + * src/uniq.c (longopts): Likewise. + * src/wc.c (longopts): Likewise. + * src/who.c (longopts): Likewise. + + revert previous change, "don't use "const" with scalar types" + * src/truncate.c: There is nothing wrong with that construct. + This reverts commit d7d80c5b7b122377fe250357a3ab182e8fbde20a. + + don't use "const" with scalar types + * src/truncate.c: Several vendor compilers reject that. + See http://article.gmane.org/gmane.comp.lib.gnulib.bugs/13876 + +2008-06-13 Eric Blake <ebb9@byu.net> + + od: improve handling of padding + * src/od.c (decode_one_format): Alter the format, again. + (FMT_BYTES_ALLOCATED): Reduce size by adjusting to new format. + (MAX_INTEGRAL_TYPE_SIZE): Move earlier in the file. + (charname): Turn it into a 2D array, since there's no need for + pointers now. + (PRINT_TYPE, print_named_ascii, print_ascii): Add a width + parameter. + (write_block): Account for width parameter. + Using ideas from Paul Eggert. + + od: align multiple -t specs + * src/od.c (struct tspec): Add pad_width field, and adjust + print_function prototype. + (decode_one_format): Rewrite all fmt_string values to account for + pad width. + (FMT_BYTES_ALLOCATED): Adjust to new format style. + (main): Compute pad width per spec. + (write_block): Account for pad width. + (dump): Don't print padding-only fields. + (PRINT_TYPE, print_named_ascii, print_ascii): All print functions + adjusted to use variable pad width. + * tests/Makefile.am (TESTS): Add test. + * tests/misc/od-multiple-t: New file. + * THANKS: Update. + * NEWS: Mention the improvement. + Reported by Gary Johnson. + + od: use gnulib printf replacement as necessary + * src/od.c (includes): Add xprintf.h. + (PRINT_TYPE): New macro, using xprintf instead of printf. + (print_s_char, print_char, print_s_short, print_short, print_int) + (print_long, print_long_long, print_float, print_double) + (print_long_double): Factor into PRINT_TYPE macro. + (print_named_ascii, print_ascii): Use xprintf. + * NEWS: Mention this as a bug fix. + + od: simplify long double support + * m4/jm-macros.m4 (gl_CHECK_ALL_TYPES): Remove obsolete check for + AC_C_LONG_DOUBLE. + * src/od.c (LONG_DOUBLE): Delete. + (width_bytes, MAX_FP_TYPE_SIZE, decode_one_format, main): Just use + 'long double' directly. + (print_long_double): No longer protect by HAVE_LONG_DOUBLE. + + doc: od defaults to -toS, not -td2 + * src/od.c (usage): Correct description of default. + +2008-06-13 Jim Meyering <meyering@redhat.com> + + skip (don't fail) root-only tests for common set-up failures + Address 2 of 4 failures reported by Jarod Wilson in + http://bugzilla.redhat.com/442352. More details here: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13803 + * tests/cp/cp-a-selinux: Skip the test if "mkfs -t ext2" fails. + * tests/rm/fail-2eperm: Skip the test if "rm" is not accessible. + +2008-06-12 Jim Meyering <meyering@redhat.com> + + tweak to conform with syntax policy + Use "<" or "<=" rather than ">" or ">=". + Use "Type const *", rather than "const Type *". + +2008-06-12 Bo Borgerson <gigabo@gmail.com> + + comm: accept new option: --output-delimiter=STR + * src/comm.c (delimiter): New global. + (writeline): Use delimiter string instead of single TAB character. + (main): Initialize delimiter. + * tests/misc/comm: Add tests for comm output delimiter specification. + * doc/coreutils.texi: Document new option. + * NEWS: Advertise new option. + * TODO: Remove associated item. + + comm: ensure that input files are sorted + * NEWS: List new behavior. + * doc/coreutils.texi (checkOrderOption) New macro for + describing `--check-order' and `--nocheck-order', used in + both join and comm. + * src/comm.c (main): Initialize new options. + (usage): Describe new options. + (compare_files): Keep an extra pair of buffers for the previous + line from each file to check the internal order. + (check_order): If an order-check is required, compare and handle + the result appropriately. + (copylinebuffer): Copy a linebuffer; used for copy before read. + * tests/misc/Makefile.am: List new test. + * tests/misc/comm: Tests for the comm program, including the + new order-checking functionality and attendant command-line options. + +2008-06-11 Jim Meyering <meyering@redhat.com> + + fix another unportable use of 'tr' + * configure.ac [EXTRA_PROGRAMS]: Add omitted space in tr's STRING2. + Spotted by Denis Excoffier, upon Solaris 8 build failure. + + tests: skip a chown test on FreeBSD 6.x + * tests/chown/separator: Skip this test if is likely to fail + due to the combination of a bogus group name and a broken + getgrnam function. + + tests: remove duplicate mention of misc/selinux + * tests/Makefile.am (TESTS): Remove misc/selinux, since it's + already listed in $(root_tests). + +2008-06-11 Bruno Haible <bruno@clisp.org> + + fix build failure on AIX 4 + * configure.ac: Fix unportable invocation of 'tr', introduced on + 2008-04-22. Affects tr from at least AIX 4.3.2. + +2008-06-10 Pádraig Brady <P@draigBrady.com> + + remove test for specific diagnostic when truncating missing directory + Solaris 10 returns ENOTDIR when truncating a nonexistent directory, + whereas Linux returns EISDIR (because it has a trailing /). + * tests/misc/truncate-fail-diag: Remove the test for the specific error. + + timeout: use system-independent exit values + Change exit values from ETIMEDOUT and ECANCELED, + the values of which are system dependent, to + 124 and 125 respectively. + * src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Define. + (usage, main): Adjust. + * coreutils.texi (timeout invocation): Update. + * tests/misc/timeout: Adjust. + +2008-06-09 Jim Meyering <meyering@redhat.com> + + enforce the proper_name_utf8-requires-ICONV link rule + * maint.mk (sc_proper_name_utf8_requires_ICONV): New rule. + * src/Makefile.am (timeout_LDADD, truncate_LDADD): Add $(LIBICONV). + +2008-06-09 Bruno Haible <bruno@clisp.org> + + * NEWS (Improvements): Mention improved (via gnulib) ACL support. + +2008-06-08 Jim Meyering <meyering@redhat.com> + + maint.mk: my-distcheck runs $(MAKE) syntax-check once again + * maint.mk (my-distcheck): Run $(MAKE) syntax-check once again. + Run "$(MAKE) check" _after_ the less expensive syntax-check. + +2008-06-08 Bo Borgerson <gigabo@gmail.com> + + standardize some error messages + * maint.mk: (sc_error_message_warn_fatal, sc_error_message_uppercase): + (sc_error_message_period): Add automatic checks for non-standard error + messages. + * .x-sc_error_message_uppercase: explicit exclusion for this check + * src/cp.c: Standardize some error messages. + * src/date.c: Likewise. + * src/dircolors.c: Likewise. + * src/du.c: Likewise. + * src/expr.c: Likewise. + * src/install.c: Likewise. + * src/join.c: Likewise. + * src/ln.c: Likewise. + * src/mv.c: Likewise. + * src/od.c: Likewise. + * src/pr.c: Likewise. + * src/split.c: Likewise. + * src/truncate.c: Likewise. + * src/wc.c: Likewise. + * tests/du/files0-from: Expect new error message. + * tests/misc/join: Likewise. + * tests/misc/split-a: Likewise. + * tests/misc/wc-files0-from: Likewise. + * tests/misc/xstrtol: Likewise. + * lib/xmemxfrm.c: Likewise. + +2008-06-08 Jim Meyering <meyering@redhat.com> + + syntax-check: detect anachronistic Perl-based tests + * maint.mk (sc_no_exec_perl_coreutils): Rename and rewrite. + +2008-06-06 Pádraig Brady <P@draigBrady.com> + + Add new program: truncate + * AUTHORS: Register as the author + * NEWS: Mention this change + * README: Add truncate command to list + * src/truncate.c: New command + * src/Makefile.am: Add truncate command to list to build + * src/.gitignore: Add truncate binary to list to ignore + * doc/coreutils.texi (truncate invocation): Add truncate info + * man/Makefile.am: Add truncate man page to list to build + * man/truncate.x: Add truncate man page template + * po/POTFILES.in: Add truncate to list to translate + * tests/Makefile.am: Add truncate tests + * tests/misc/help-version: Add support for new truncate command + * tests/misc/truncate-dangling-symlink: check dangling link ok + * tests/misc/truncate-dir-fail: ensure dirs fail + * tests/misc/truncate-fail-diag: validate messages for missing paths + * tests/misc/truncate-fifo: ensure fifos ignored + * tests/misc/truncate-no-create-missing: ensure -c option honoured + * tests/misc/truncate-overflow: check signed integer overflows + * tests/misc/truncate-owned-by-other: root permissions check + * tests/misc/truncate-parameters: check invalid parameter combinations + * tests/misc/truncate-relative: check invalid relative sizes + +2008-06-06 Eric Blake <ebb9@byu.net> + + improve 'date +%C' documentation + * src/date.c (usage): Use 20, not 21, for current century. + * THANKS: Update. + Reported by Dameon G. Rogers, fix suggested by Philip Rowlands. + +2008-06-03 Jim Meyering <meyering@redhat.com> + + nice.c: avoid a cast + * src/nice.c (main): Use argv[0], rather than + "program_name with a cast". Suggestion from Eric Blake. + + adjust c99-to-c89 patch as well as the code to generate it + * maint.mk (patch-check) [REGEN_PATCH]: Eliminate date-related + differences in generated diffs. + * src/c99-to-c89.diff: Adjust offsets. + + use gnulib's progname module + * bootstrap.conf (gnulib_modules): Add progname. + * src/*.c (program_name): Remove declaration. + * (main): Call set_program_name rather than setting program_name. + * src/nice.c (main): Cast program_name to "(char *)". + * src/prog-fprintf.c: Include "system.h" + * src/system.h: Include "progname.h". + * maint.mk (sc_program_name): Adjust rule. + Suggestion from Eric Blake. - * tests/misc/head-elide-tail: Update uses of undocumented, for- - testing-only --presume* options to start with `---'. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/dir-no-w: Likewise. - * tests/rm/isatty: Likewise. + remove duplicate definition of matchpathcon_init_prefix + * gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Remove definition. + It is already defined there. Reported by Eric Blake. + +2008-06-02 Jim Meyering <meyering@redhat.com> + + fix cpp indentation policy violations + * src/copy.c (mkfifo): Indent nested "# define". + * src/timeout.c (ECANCELED): Likewise. + + accommodate older SELinux which lacks matchpathcon_init_prefix + * m4/jm-macros.m4: Check for matchpathcon_init_prefix. + * src/install.c [!HAVE_MATCHPATHCON_INIT_PREFIX] + (matchpathcon_init_prefix): Define away. + * gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define. + Reported by Ilya N. Golubev in + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13686>. + + each file with a "main" must also declare program_name + * maint.mk (sc_program_name): New rule. + * .x-sc_program_name: New file. + * Makefile.am (EXTRA_DIST): Add .x-sc_program_name. + + declare program_name consistently + * src/base64.c: Likewise. + * src/basename.c: Likewise. + * src/cat.c: Likewise. + * src/chcon.c: Likewise. + * src/chgrp.c: Likewise. + * src/chmod.c: Likewise. + * src/chown.c: Likewise. + * src/chroot.c: Likewise. + * src/cksum.c: Likewise. + * src/comm.c: Likewise. + * src/cp.c: Likewise. + * src/csplit.c: Likewise. + * src/cut.c: Likewise. + * src/date.c: Likewise. + * src/dd.c: Likewise. + * src/df.c: Likewise. + * src/dircolors.c: Likewise. + * src/dirname.c: Likewise. + * src/du.c: Likewise. + * src/echo.c: Likewise. + * src/env.c: Likewise. + * src/expand.c: Likewise. + * src/expr.c: Likewise. + * src/factor.c: Likewise. + * src/fmt.c: Likewise. + * src/fold.c: Likewise. + * src/groups.c: Likewise. + * src/head.c: Likewise. + * src/hostid.c: Likewise. + * src/hostname.c: Likewise. + * src/id.c: Likewise. + * src/install.c: Likewise. + * src/join.c: Likewise. + * src/kill.c: Likewise. + * src/link.c: Likewise. + * src/ln.c: Likewise. + * src/logname.c: Likewise. + * src/ls.c: Likewise. + * src/md5sum.c: Likewise. + * src/mkdir.c: Likewise. + * src/mkfifo.c: Likewise. + * src/mknod.c: Likewise. + * src/mktemp.c: Likewise. + * src/mv.c: Likewise. + * src/nice.c: Likewise. + * src/nl.c: Likewise. + * src/nohup.c: Likewise. + * src/od.c: Likewise. + * src/paste.c: Likewise. + * src/pathchk.c: Likewise. + * src/pinky.c: Likewise. + * src/pr.c: Likewise. + * src/printenv.c: Likewise. + * src/printf.c: Likewise. + * src/ptx.c: Likewise. + * src/pwd.c: Likewise. + * src/readlink.c: Likewise. + * src/rm.c: Likewise. + * src/rmdir.c: Likewise. + * src/runcon.c: Likewise. + * src/seq.c: Likewise. + * src/setuidgid.c: Likewise. + * src/shuf.c: Likewise. + * src/sleep.c: Likewise. + * src/sort.c: Likewise. + * src/split.c: Likewise. + * src/stat.c: Likewise. + * src/stty.c: Likewise. + * src/su.c: Likewise. + * src/sum.c: Likewise. + * src/sync.c: Likewise. + * src/tac.c: Likewise. + * src/tail.c: Likewise. + * src/tee.c: Likewise. + * src/test.c: Likewise. + * src/timeout.c: Likewise. + * src/touch.c: Likewise. + * src/tr.c: Likewise. + * src/true.c: Likewise. + * src/tsort.c: Likewise. + * src/tty.c: Likewise. + * src/uname.c: Likewise. + * src/unexpand.c: Likewise. + * src/uniq.c: Likewise. + * src/unlink.c: Likewise. + * src/uptime.c: Likewise. + * src/users.c: Likewise. + * src/wc.c: Likewise. + * src/who.c: Likewise. + * src/whoami.c: Likewise. + * src/yes.c: Likewise. + +2008-06-02 Eric Blake <ebb9@byu.net> + + export program_name, required by gnulib + * src/timeout.c (program_name): Export. + +2008-06-02 Jim Meyering <meyering@redhat.com> + + revert inadvertent change in last patch + * configure.ac (AM_INIT_AUTOMAKE): Restore accidentally-modified + options. Spotted by Eric Blake. + +2008-06-02 Pádraig Brady <P@draigBrady.com> + + new program: timeout + * AUTHORS: Register as the author. + * NEWS: Mention this change. + * README: Add timeout command to list. + * src/timeout.c: New file. + * src/kill.c (operand2sig): Move function to its own file, + now that timeout.c will also use it. + * src/operand2sig.c (operand2sig): New file, extracted from kill.c. + * src/operand2sig.h (operand2sig): Declare. + * src/Makefile.am (EXTRA_PROGRAMS): Add timeout. + * src/.gitignore: Add timeout binary to list to ignore. + * doc/coreutils.texi (timeout invocation): Add timeout info. + (Signal specifications): New section, also referenced by kill. + * man/Makefile.am (timeout.1): Add dependency. + * man/timeout.x: New file. + * po/POTFILES.in: Add timeout.c and operand2sig.c to list to translate. + * tests/Makefile.am (TESTS): Add the two new tests. + * tests/misc/help-version: Add support for new timeout command. + * tests/misc/invalid-opt: Add support for new timeout command. + * tests/misc/timeout: New file: check basic timeout operation. + * tests/misc/timeout-parameters: New file: check invalid parameter + combinations. + +2008-06-02 Jim Meyering <meyering@redhat.com> + + spell author names consistently + * src/comm.c (AUTHORS): Use RMS' middle initial. + * src/ls.c (AUTHORS): Likewise. + * src/rm.c (AUTHORS): Likewise. + * src/uniq.c (AUTHORS): Likewise. + * src/cut.c (AUTHORS): Use David M. Ihnat's middle initial. + * AUTHORS: Update to match. + Reported by Michael Piefel. + +2008-06-01 Simon Josefsson <simon@josefsson.org> + + doc: adjust base64 documentation + * coreutils.texi (base64 invocation): Use RFC 4648 as the specification. + Move the URL down a bit in the text. + +2008-06-01 Erik Auerswald <auerswal@unix-ag.uni-kl.de> + + md5sum: new option, --quiet, to suppress OK messages + sha1sum, sha224sum, sha384sum, and sha512sum accept it, too. + * src/md5sum.c: add option --quiet to suppress OK messages + * doc/coreutils.texi: document option --quiet + * tests/misc/md5sum: add test for option --quiet + * NEWS: mention new option --quiet for md5sum+sha*sum in "New + features" section + +2008-06-01 Jim Meyering <meyering@redhat.com> + + add rules to commit three post-release changes automatically + * maint.mk (noteworthy): Define. + (emit-commit-log): Define. + (alpha beta major): Also update NEWS and cfg.mk automatically, + and commit all three changes at once. + + update old_NEWS_hash + * cfg.mk (old_NEWS_hash): Update by running "make update-NEWS-hash". + Reported by Erik Auerswald. + +2008-06-01 Simon Josefsson <simon@josefsson.org> + + src/base64.c: Improve comments. + +2008-06-01 Jim Meyering <meyering@redhat.com> + + * NEWS: add header line for next release + + adjust format of .prev-version commit message + * maint.mk (alpha beta major): Start with "*", omit version number. + + * .prev-version: Record previous version. + +2008-05-31 Jim Meyering <meyering@redhat.com> + + Version 6.12. + * NEWS: Record release date. + + install: reenable matchpathcon-related code + The underlying performance problem is being dealt with in Automake + by limiting the number of install invocations, and in SELinux with + incremental changes as well as a potential new implementation. + * src/Makefile.am (ginstall_CPPFLAGS) [ENABLE_MATCHPATHCON]: Define. + * src/install.c [ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]: + Rename to ENABLE_MATCHPATHCON. + * NEWS: mention this change + +2008-05-30 Jim Meyering <meyering@redhat.com> + + configure.ac: remove explicit use of AB_INIT + * configure.ac: Don't invoke AB_INIT directly, now that it's + done automatically via gl_INIT. + + tests: ignore known failure on all Darwin 8.x / Mac OS X v10.4.x + * tests/chgrp/basic: Update comment and host_triplet version test. + + tests: avoid failure with older version of Perl's File::Temp + * tests/CuTmpdir.pm (import): Use &File::Temp::cleanup only + if it is defined. Reported by Bruno Haible in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13652 + + NEWS: mention that cp -p copies permissions more portably + Based on wording suggested by Bruno Haible. + +2008-05-29 Jim Meyering <meyering@redhat.com> -2005-11-30 Jim Meyering <jim@meyering.net> + improve description of du's--separate-dirs option + * coreutils.texi (du invocation): Prompted by Volker Badziong's + report in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13646 - * Makefile.maint: Add a comment about cvsu. + du.c: tiny cleanup (no semantic change) + * src/du.c (process_file): Use "file", rather than + equivalent "ent->fts_path". -2005-11-25 Paul Eggert <eggert@cs.ucla.edu> +2008-05-27 Jim Meyering <meyering@redhat.com> - * NEWS: df updates for "none", "proc", inaccessible file systems. - * src/df.c (show_point): Ignore inaccessible file systems. - (usage): -a includes dummy file systems, not size-0 file systems. + in 280+ tests/* files, use $srcdir, not $top_srcdir/tests - * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t, - to avoid collision with POSIX name space. All uses changed. + prefer abs_srcdir over abs_top_srcdir, ... + so that e.g., tests/* may refer to absolute names without + hard-coding the name of the containing directory (tests/, here). + * tests/check.mk (TESTS_ENVIRONMENT): Define abs_srcdir. + * tests/pr/pr-tests: Use $abs_srcdir/pr not $abs_top_srcdir/tests/pr. + * tests/chmod/c-option: Use $abs_srcdir, not $abs_top_srcdir/tests. + * tests/cp/cp-parents: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + * tests/mv/acl: Likewise. + * tests/mv/backup-is-src: Likewise. + * tests/mv/hard-link-1: Likewise. + * tests/mv/into-self-2: Likewise. + * tests/mv/leak-fd: Likewise. + * tests/mv/mv-special-1: Likewise. + * tests/mv/part-fail: Likewise. + * tests/mv/part-hardlink: Likewise. + * tests/mv/part-rename: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/mv/partition-perm: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + * tests/mv/to-symlink: Likewise. + * tests/rm/one-file-system: Likewise. + * tests/sample-test: Likewise. -2005-11-24 Jim Meyering <jim@meyering.net> + tests: generalize my-distcheck + * maint.mk (my-distcheck): Accommodate missing gnulib-tests. - * tests/Makefile.am (EXTRA_DIST): Add acl to the list. - * tests/acl: Add `$0: ' prefix to diagnostics. +2008-05-26 Jim Meyering <meyering@redhat.com> - * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list. + reflect renaming of acl.c in gnulib + * POTFILES.in: s/acl.c/set-mode-acl.c/ + + test installation results more thoroughly + * maint.mk (my-distcheck): Ensure that properly-named binaries + are installed. Also check all man pages, except [.1. + Move configure-time --prefix= to install-time prefix=. + (my-instcheck, install-transform-check): Define. -2005-11-23 Paul Eggert <eggert@cs.ucla.edu> + install many binaries at once, when possible + * src/Makefile.am (install-exec-am): Override the standard + automake-generated target, so we can decide whether to use + the usual install-one-by-one rule, or whether we can use + the new install-many-at-once rule: + (cu-install-binPROGRAMS): New rule. + + * src/runcon.c: Add copyright comment. + + adjust AUTHORS and check-AUTHORS rule to accommodate + * AUTHORS: Add coding: utf-8 comment at end. + Spell François' and Torbjörn's names properly. + * src/Makefile.am: Parse AUTHORS file more carefully. + Use perl to join now-split lines. + Use en_US.UTF-8 to generate --version output. + + * src/c99-to-c89.diff: Adjust offsets. + + adjust copyright dates + + convert the rest to use proper_name -- manually + * src/base64.c (AUTHORS): Rename from AUTHOR, for consistency. + + convert 3-author programs to use proper_name + g grep -E -l 'define AUTHORS "[^,]+", "[^,]+", "[^,]+"$'|xargs perl -pi -e \ + 's/(define AUTHORS) ("[^,]+"), ("[^,]+"), ("[^,]+")$/$1 \\\n proper_name ($2), \\\n proper_name ($3), \\\n proper_name ($4)/' + + convert 2-author programs to use proper_name + g grep -E -l 'define AUTHORS "[^,]+", "[^,]+"$'|xargs perl -pi -e \ + 's/(define AUTHORS) ("[^,]+"), ("[^,]+")$/$1 \\\n proper_name ($2), \\\n proper_name ($3)/' + + convert single-author programs to use proper_name + g grep -E -l 'define AUTHORS "[^,]+"$'|xargs perl -pi -e \ + 's/(define AUTHORS) ("[^,]+")$/$1 proper_name ($2)/' + + use gnulib's proper_name_utf8 function, but *not* proper_name + * bootstrap.conf (gnulib_modules): Add propername. + (XGETTEXT_OPTIONS): Add options to tell xgettext about the functions. + * src/cat.c, src/cp.c, src/df.c, src/du.c, src/split.c: + Mark Torbjörn Granlund's name. + * src/ptx.c: Mark François Pinard's name. + Use "TRANSLATORS:" comment marker, rather than "Note to translators:". + * src/system.h: Include propername.h. + (proper_name): Define away. + * src/Makefile.am (cat_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD): + Initialize, so we can... + (cat_LDADD, cp_LDADD, df_LDADD, du_LDADD, ptx_LDADD, split_LDADD): + ...Use "+=" to append $(LIBICONV) for each program that uses + proper_name_utf8. + +2008-05-24 Jim Meyering <meyering@redhat.com> + + * POTFILES.in: Add lib/copy-acl.c. + +2008-05-20 Jim Meyering <meyering@redhat.com> + + install: avoid a leak in currently-ifdef'd-out code + * src/install.c (setdefaultfilecon) + [ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]: + Call matchpathcon_init_prefix only once. + Suggestion from Stephen Smalley. Reported by Ben Webb in + <http://bugzilla.redhat.com/447410>. + +2008-05-19 Jim Meyering <meyering@redhat.com> + + use gnulib's base64 module, now that it's sync'd to match this one + * gl/lib/base64.c: Remove file. + * gl/lib/base64.h: Remove file. + +2008-05-19 Pádraig Brady <P@draigBrady.com> + + doc: clarify field delimiter description in uniq --help output + * src/uniq.c: Clarify in help output that field delimiters are + blanks and not the larger set of whitespace characters. + +2008-05-17 Jim Meyering <meyering@redhat.com> + + tests: skip when a debian libc6-2.7-11 bug makes printf segfault + * tests/misc/printf-surprise: Detect case of a low-memory-provoked + segfault and skip the test (this is actually a bug in snprintf). + For details, see http://bugs.debian.org/481543 + + tests: sync and update wc and du --files0-from tests + * tests/du/files0-from: Sync from tests/misc/wc-files0-from. + (minus-in-minus): New test. + Adjust for new diagnostics. + * tests/misc/wc-files0-from: Adjust for new diagnostics. + + du, wc: merge improved --files0-from=F-related diagnostics + du gave a better diagnostic for one unusual case, + and wc gave a better diagnostic for a different one. + Now each diagnoses both unusual cases. + * src/du.c (main): Disallow '-' as file name when reading from stdin. + * src/wc.c (main): Give a better diagnostic for a zero-length file name. + + test invalid-option handling in all programs + * tests/Makefile.am (TESTS): Add misc/invalid-opt. + * tests/misc/invalid-opt: New file. + +2008-05-17 Jim Meyering <meyering@redhat.com> + + tests: remove ugly /bin/sh wrapper around each perl-based test script + * tests/check.mk (TESTS_ENVIRONMENT): Save and restore TMPDIR around + envvar-check, so that the few scripts that require $TMPDIR don't fail. + This is also good to let a user's default TMPDIR setting be used e.g., + in the search for an 'other-partition'. + FIXME: this is pretty ugly. maybe undo it and find a better way. + (TESTS_ENVIRONMENT): Invoke perl scripts with $(PERL), and use -T + if the script requires that. Otherwise, use $(SHELL). + + * tests/misc/md5sum-newline: Create a file whose name contains + a newline in Perl (resort to using "system", since open refuses). + + Fix old brokenness exposed by this change: + * tests/du/files0-from: Correct test not to rely on stdin + being attached to a non-tty. + * tests/misc/sort (3g, 3h, 3i): Likewise: add explicit empty input file. + Avoid warnings about using qw()-around-commas. + + * tests/rm/fail-eperm: Now that this test is run from a temporary + subdirectory, adjust the full name of the "rm" program we're going + to run. + + Change #!/bin/sh to #!/usr/bin/perl, and factor out the few lines + of boilerplate code to invoke perl. Do not "require 5.00x"; + a configure-time Perl test handles that + * tests/dd/skip-seek: + * tests/misc/base64: + * tests/misc/basename: + * tests/misc/cut: + * tests/misc/date: + * tests/misc/dircolors: + * tests/misc/dirname: + * tests/misc/expand: + * tests/misc/expr: + * tests/misc/factor: + * tests/misc/fmt: + * tests/misc/fold: + * tests/misc/head: + * tests/misc/head-elide-tail: + * tests/misc/join: + * tests/misc/ls-misc: + * tests/misc/md5sum: + * tests/misc/md5sum-newline: + * tests/misc/mktemp: + * tests/misc/od: + * tests/misc/paste: + * tests/misc/pr: + * tests/misc/printf-cov: + * tests/misc/seq: + * tests/misc/sha1sum: + * tests/misc/sha1sum-vec: + * tests/misc/sha224sum: + * tests/misc/sha256sum: + * tests/misc/sha384sum: + * tests/misc/sha512sum: + * tests/misc/sort-merge: + * tests/misc/stat-printf: + * tests/misc/sum: + * tests/misc/tac: + * tests/misc/tail: + * tests/misc/test: + * tests/misc/test-diag: + * tests/misc/tr: + * tests/misc/tsort: + * tests/misc/tty-eof: + * tests/misc/unexpand: + * tests/misc/uniq: + * tests/misc/wc: + * tests/misc/wc-files0-from: + * tests/misc/xstrtol: + * tests/mv/i-1: + * tests/pr/pr-tests: + * tests/rm/empty-name: + * tests/rm/fail-eperm: + * tests/rm/unreadable: + +2008-05-16 Jim Meyering <meyering@redhat.com> + + tests: allow to run Perl tests more cleanly + Before this change, perl tests were run via a #!/bin/sh script + in which perl was invoked via $(PERL) ... -- - <<\EOF. + That made some stty tests fail due to the way stdin was usurped. + * build-aux/check.mk (am__check_pre): Don't append $(SHELL) to this + nominally automake-internal variable. + * tests/check.mk (TESTS_ENVIRONMENT): Instead, define a shell function + here, and append it to the more user-visible $(TESTS_ENVIRONMENT). + + tests: env-related clean up + * tests/Coreutils.pm: tiny clean-up: s/env/env --/ + * tests/misc/help-version: Use "env" rather than an absolute file + name prefix. + * tests/misc/printf-surprise: Likewise. + + tests: improve coverage of printf.c + * tests/misc/printf-cov: New file. + * tests/Makefile.am (TESTS): Add misc/printf-cov. + * tests/misc/help-version: Use env rather than abs file name prefix. + + make HACKING slightly more generic + * HACKING: remove some uses of "coreutils" + Point to git's own SubmittingPatches URL. + +2008-05-15 Bruno Haible <bruno@clisp.org> + + doc: some Unicode characters cannot be specified via \u or \U + * doc/coreutils.texi (printf invocation): Clarify invalid ranges for + Unicode character escape syntax. + +2008-05-11 Jim Meyering <meyering@redhat.com> + + move sha256 and sha512 modules to gnulib + * bootstrap.conf (gnulib_modules) [sha256, sha512]: Add "crypto/" + prefix to module name, now that they come from gnulib. + * gl/lib/sha256.c: Remove file. + * gl/lib/sha256.h: Likewise. + * gl/lib/sha512.c: Likewise. + * gl/lib/sha512.h: Likewise. + * gl/lib/u64.h: Likewise. + * gl/m4/sha256.m4: Likewise. + * gl/m4/sha512.m4: Likewise. + * gl/modules/sha256: Likewise. + * gl/modules/sha512: Likewise. + +2008-05-10 Jim Meyering <meyering@redhat.com> + + now that the last of the mk-script-using tests is gone... + * tests/Makefile.am (EXTRA_DIST): Remove Makefile.am.in and mk-script. + Move/adjust SUBDIRS-related comments. + * tests/Makefile.am.in: Remove file, no longer used. + * tests/mk-script: Likewise. + * bootstrap: Remove coreutils-specific SUBDIRS-related code. + + tests: remove directory, tests/join/ + * configure.ac (AC_CONFIG_FILES): Remove tests/join/Makefile. + * tests/misc/join: New file, with tests from... + * tests/join/Test.pm: ...here. Remove file. + * tests/Makefile.am (SUBDIRS): Remove definition. + + * tests/misc/tac: Also perform stdin and piped tests. + + tests: convert pr tests + * configure.ac (AC_CONFIG_FILES): Remove tests/pr/Makefile. + * tests/Makefile.am (SUBDIRS): Remove pr. + * tests/pr/pr-tests: New file, with tests from... + * tests/pr/Test.pm: ...here. Remove file. + * tests/Makefile.am (EXTRA_DIST): Add $(pr_data). + (pr_data): List all of the pr's test-related data files. + + tests: remove directory, tests/tail/ + * configure.ac (AC_CONFIG_FILES): Remove tests/tail/Makefile. + * tests/Makefile.am (SUBDIRS): Remove tail. + * tests/misc/tail: New file, with tests from... + * tests/tail/Test.pm: ...here. Remove file. + +2008-05-09 Bernhard Marx <berny@bernhard-marx.de> + + doc: improve description of "niceness" values + * doc/coreutils.texi (nice invocation): + +2008-05-09 Jim Meyering <meyering@redhat.com> + + tests: remove directory, tests/sort/ + * configure.ac (AC_CONFIG_FILES): Remove tests/sort/Makefile. + * tests/Makefile.am (SUBDIRS): Remove sort. + * tests/misc/sort: New file, with tests from... + * tests/sort/Test.pm: ...here. Remove file. + +2008-05-08 Bruno Haible <bruno@clisp.org> + + Speed up "wc -m" and "wc -w" in multibyte case. + * src/wc.c: Include mbchar.h. + (wc): New variable in_shift. Use it to avoid calling mbrtowc for most + ASCII characters. Reported via Jan Engelhardt in + http://bugzilla.novell.com/381873 with discussion here + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13520 + +2008-05-08 Jim Meyering <meyering@redhat.com> + + tests: remove directory, tests/tac/ + * configure.ac (AC_CONFIG_FILES): Remove tests/tac/Makefile. + * tests/Makefile.am (SUBDIRS): Remove tac. + * tests/misc/tac: Many new tests, from... + * tests/tac/Test.pm: ...here. Remove file. + + tests: remove directory, tests/test/ + * configure.ac (AC_CONFIG_FILES): Remove tests/test/Makefile. + * tests/Makefile.am (SUBDIRS): Remove test. + * tests/misc/test: Many new tests, from... + * tests/test/Test.pm: ...here. Remove file. + + tests: Coreutils.pm: support running a program that is a shell built-in + * tests/Coreutils.pm (run_tests): Add support for running a + program like 'test', that is a shell built-in. + +2008-05-06 Jim Meyering <meyering@redhat.com> + + * TODO: Bo Borgerson is rewriting support for cp --recursive + + tests: remove directory, tests/tr/ + * configure.ac (AC_CONFIG_FILES): Remove tests/tr/Makefile. + * tests/Makefile.am (SUBDIRS): Remove tr. + * tests/misc/tr: Many new tests, from... + * tests/tr/Test.pm: ...here. Remove file. + * tests/tr/failures: Remove file. + * tests/tr/TODO: Remove file. + + tests: skip another test if mcstransd is running + * tests/test-lib.sh (skip_if_mcstransd_is_running_): New function, + extracted from... + * tests/misc/chcon: ...here. Use function, not open-coded test. + * tests/misc/selinux: Use the function here, too. + Require root, not non-root. + * tests/Makefile.am (root_tests): Add misc/selinux. + + tests: translate uniq-z-test-adding code to new framework + * tests/misc/uniq (add-z-variants): New function. + Use it. + + tests: remove directory, tests/uniq/ + * configure.ac (AC_CONFIG_FILES): Remove tests/uniq/Makefile. + * tests/Makefile.am (SUBDIRS): Remove uniq. + * tests/misc/uniq: Many new tests, from... + * tests/uniq/Test.pm: ...here. Remove file. + + tests: remove directory, tests/cut/ + * configure.ac (AC_CONFIG_FILES): Remove tests/cut/Makefile. + * tests/Makefile.am (SUBDIRS): Remove cut. + * tests/misc/cut: Many new tests, from... + * tests/cut/Test.pm: ...here. Remove file. + + tests: remove directory, tests/head/ + * configure.ac (AC_CONFIG_FILES): Remove tests/head/Makefile. + * tests/Makefile.am (SUBDIRS): Remove head. + * tests/misc/head: New file, derived from ... + * tests/head/Test.pm: ...this. Remove file. + * tests/head/in: Remove file. + * tests/head/in-1024: Remove file. + * tests/Coreutils.pm (triple_test): New function. + +2008-05-06 Jim Meyering <meyering@redhat.com> + + tests: Coreutils.pm improvements + * tests/Coreutils.pm: Allow test names longer than 12. + Print a useful diagnostic for bogus spec entry. + + Handle the combination of IN_PIPE and ENV properly. + * tests/Coreutils.pm (run_tests): Put ENV right before command, + not before the "cat INPUT_FILE |" prefix. + +2008-05-06 Jim Meyering <meyering@redhat.com> + + tests: move "sparse-file" into test-lib.sh + * tests/sparse-file: Remove file Move contents into ... + * tests/test-lib.sh (require_sparse_support_): ...here. New function. + * tests/cp/sparse: Use the function, not the file. + * tests/du/8gb: Likewise. + * tests/Makefile.am (EXTRA_DIST): Remove sparse-file. + + tests: move "group-names" into test-lib.sh + * tests/group-names: Remove file Move contents into ... + * tests/test-lib.sh (require_membership_in_two_groups_): ...here. New function. + * tests/chgrp/basic: Use the function, not the file. + * tests/chgrp/default-no-deref: Likewise. + * tests/chgrp/deref: Likewise. + * tests/chgrp/no-x: Likewise. + * tests/chgrp/posix-H: Likewise. + * tests/chgrp/recurse: Likewise. + * tests/cp/existing-perm-race: Likewise. + * tests/Makefile.am (EXTRA_DIST): Remove group-names. + + tests: use printf+sed rather than yes+head+tr + * tests/misc/fmt-long-line: Minor clean-up. + Using "yes" like that has caused trouble in the past. + + tests: save and restore TERM around use of TESTS_ENVIRONMENT, + now that TESTS_ENVIRONMENT unsets it. + * check.mk (am__check_pre): Save $TERM. + (am__check_post): Restore saved value of TERM and export. + + tests: hoist the sourcing of "lang-default" + * tests/check.mk (TESTS_ENVIRONMENT): Source lang-default here, ... + ... rather than in each of 100+ test scripts. + * tests/chgrp/basic: + * tests/chgrp/no-x: + * tests/chmod/c-option: + * tests/chmod/no-x: + * tests/chmod/setgid: + * tests/chmod/thru-dangling: + * tests/chmod/umask-x: + * tests/chmod/usage: + * tests/chown/basic: + * tests/chown/deref: + * tests/chown/preserve-root: + * tests/cp/abuse: + * tests/cp/acl: + * tests/cp/backup-is-src: + * tests/cp/cp-a-selinux: + * tests/cp/cp-i: + * tests/cp/cp-mv-backup: + * tests/cp/deref-slink: + * tests/cp/fail-perm: + * tests/cp/into-self: + * tests/cp/link-preserve: + * tests/cp/preserve-gid: + * tests/cp/same-file: + * tests/cp/slink-2-slink: + * tests/cp/special-f: + * tests/cp/symlink-slash: + * tests/cp/thru-dangling: + * tests/du/basic: + * tests/du/hard-link: + * tests/du/inacc-dest: + * tests/du/long-sloop: + * tests/du/no-x: + * tests/install/basic-1: + * tests/ln/hard-backup: + * tests/ln/sf-1: + * tests/ls/file-type: + * tests/ls/infloop: + * tests/ls/nameless-uid: + * tests/ls/rt-1: + * tests/ls/stat-failed: + * tests/ls/symlink-slash: + * tests/ls/x-option: + * tests/misc/chcon: + * tests/misc/chcon-fail: + * tests/misc/csplit: + * tests/misc/df-P: + * tests/misc/groups-dash: + * tests/misc/groups-version: + * tests/misc/nohup: + * tests/misc/printf-surprise: + * tests/misc/runcon-no-reorder: + * tests/misc/selinux: + * tests/misc/split-a: + * tests/misc/split-fail: + * tests/misc/tac-continue: + * tests/misc/wc-files0: + * tests/mkdir/p-v: + * tests/mkdir/selinux: + * tests/mv/acl: + * tests/mv/backup-dir: + * tests/mv/backup-is-src: + * tests/mv/childproof: + * tests/mv/diag: + * tests/mv/dir2dir: + * tests/mv/dup-source: + * tests/mv/force: + * tests/mv/hard-link-1: + * tests/mv/hard-verbose: + * tests/mv/i-2: + * tests/mv/i-3: + * tests/mv/i-4: + * tests/mv/i-5: + * tests/mv/i-link-no: + * tests/mv/into-self: + * tests/mv/into-self-2: + * tests/mv/into-self-3: + * tests/mv/mv-special-1: + * tests/mv/part-fail: + * tests/mv/part-symlink: + * tests/mv/partition-perm: + * tests/mv/perm-1: + * tests/mv/reply-no: + * tests/mv/sticky-to-xpart: + * tests/mv/update: + * tests/rm/cycle: + * tests/rm/dir-no-w: + * tests/rm/dir-nonrecur: + * tests/rm/fail-2eperm: + * tests/rm/fail-eacces: + * tests/rm/inaccessible: + * tests/rm/interactive-always: + * tests/rm/interactive-once: + * tests/rm/isatty: + * tests/rm/one-file-system: + * tests/rm/r-1: + * tests/rm/r-2: + * tests/rm/rm1: + * tests/rm/rm2: + * tests/rm/rm3: + * tests/rm/rm4: + * tests/rm/rm5: + * tests/rm/unread2: + * tests/rm/v-slash: + * tests/touch/fail-diag: + * tests/touch/not-owner: + + tests: hoist envvar-check so it is run for every test + I.e., also for Perl-based tests; not just the ones using test-lib.sh. + * tests/check.mk (TESTS_ENVIRONMENT): Source envvar-check here, ... + * tests/test-lib.sh: ...not here. + + fix typo in comments: s/ouput/output/ + adjust spelling in that same comment: s/localisation/localization/ + + * tests/touch/Makefile.am: Remove now-unused file. + + tests: test split more thoroughly + * tests/misc/split-a: Clean up. Catch more failures. + + * tests/misc/wc: Remove an unused variable. + + tests: detect and check more uses of strcmp + * maint.mk (sc_prohibit_strcmp): Relax regexp to recognize other + formatting styles. + +2008-05-06 Jim Meyering <meyering@redhat.com> + + avoid problems with sign-extended "char" operand to is* functions + * src/cut.c (set_fields): Apply to_uchar to isblank operands. + * src/uniq.c (find_field): Likewise. + * src/seq.c (scan_arg): Likewise, for isblank. + * tests/misc/uniq: New file. Test for the above, but only + when isspace(0240). + * tests/Makefile.am (TESTS): Add misc/uniq. + * configure.ac: Use gt_LOCALE_FR. + * tests/check.mk (TESTS_ENVIRONMENT): Propagate LOCALE_FR to scripts. + * NEWS: Mention the bug fixes. + + Before this patch, on FreeBSD 6: + + $ printf 'x y z\nx \xa0 y z\n' > in + $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' . + x.y.z + x. .y.z + + With the patch: + + $ LC_ALL=fr_FR.UTF-8 uniq -f2 in|tr ' ' . + x.y.z + + This also affected many other locales: + for i in $(locale -a); do test $(LC_ALL=$i ./uniq -f1 in|wc -l) + = $(LC_ALL=$i uniq -f1 in|wc -l) || echo $i ; done + ... + en_GB.ISO8859-1 + en_GB.ISO8859-15 + en_GB.UTF-8 + en_IE.UTF-8 + en_NZ.ISO8859-1 + en_NZ.ISO8859-15 + en_NZ.UTF-8 + en_US.ISO8859-1 + en_US.ISO8859-15 + en_US.UTF-8 + ... + +2008-05-06 Bo Borgerson <gigabo@gmail.com> + + base64: remove some unused/redundant getopt code + * src/base64.c (struct option long_option): Remove redundant help/version + option items. + (main): Remove unused 'q' from short options. + +2008-05-05 Jim Meyering <meyering@redhat.com> + + help2man: fix perl 5.10 problem properly + * man/help2man: Do pull LC_ALL via "use POSIX". + Instead, limit the importing of gettext-related symbols + to just those two we'll use: gettext and textdomain. + + help2man: avoid failure with Debian unstable's Perl 5.10.0 + Avoid failure that produced this diagnostic: + Constant subroutine main::LC_ALL redefined at /.../Exporter.pm + * man/help2man: Don't include LC_ALL in the "use POSIX" list, + since Locale::gettext->import will get it. + +2008-05-05 Bo Borgerson <gigabo@gmail.com> + + base64 module: adjust API so it's compatible with gnulib's + * gl/lib/base64.c (base64_decode_ctx): If no context structure was passed in, + treat newlines as garbage (this is the historical behavior). Formerly + base64_decode. + (base64_decode_alloc_ctx): Formerly base64_decode_alloc. + * gl/lib/base64.h (base64_decode): Macro for four-argument calls. + (base64_decode_alloc): Likewise. + * src/base64.c (do_decode): Call base64_decode_ctx instead of base64_decode. + +2008-05-05 Jim Meyering <meyering@redhat.com> + + * tests/misc/tac: Set execute bit. + + tac: avoid segfault for e.g., "echo > x; tac -r x x" + * src/tac.c (tac_seekable): Move local "regs" declaration out + to file scope, so its values aren't clobbered between calls. + Discovered by Cristian Cadar, Daniel Dunbar and Dawson Engler, + reported in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13501 + * NEWS: Mention the bug fix. + * tests/Makefile.am (TESTS): Add misc/tac. + * tests/misc/tac: New file. Test for the above. - * src/copy.c: Improve performance a bit by optimizing away - unnecessary system calls and going to a block size of at least - 8192 (on normal hosts, anyway). This improved performance 5% on my - Debian stable host (2.4.27 kernel, x86, copying from root - ext3 file system to itself). - Include "buffer-lcm.h". - (copy_reg): Omit last argument. All callers changed. - Use xmalloc to allocate rather than trusting alloca - (which is unwise with large block sizes). - Declare locals more locally, if possible. - Use uintptr_t words instead of int words, for a bit more speed - when looking for null blocks on 64-bit hosts. - Optimize away reads of zero bytes on regular files. - In the typical case, insist on 8 KiB buffers, at least. - Avoid unnecessary extra call to fstat when checking for sparse files. - Avoid now-unnecessary cast to off_t, and "0L". - Avoid unnecessary test of *new_dst when checking for same owner - and group. +2008-04-30 Jim Meyering <meyering@redhat.com> -2005-11-22 Paul Eggert <eggert@cs.ucla.edu> + tests: avoid a "make check-root" failure when mcstransd is running + * tests/misc/chcon: Skip this test if mcstransd seems to be running. - * src/remove.c (rm): Don't assume C99 for-loop syntax. + tests: avoid spurious "make check-root" failure + * README (Running tests as root): Also set PATH in suggested "sudo" + command. This avoids failure of at least tests/cp/cp-a-selinux + when the default PATH does not contain /sbin. + * tests/cp/cp-a-selinux: Don't redirect stderr to /dev/null. + "mkfs" was failing due to /sbin not being in PATH. -2005-11-22 Jim Meyering <jim@meyering.net> +2008-04-30 Bo Borgerson <gigabo@gmail.com> - * src/remove.c (AD_push): Remove debugging cruft. + Add Daniel Dunbar's lcov instructions to HACKING + * HACKING: New section `Finding things to do', points to TODO file and + gives instructions on generating an html coverage report as provided by + Daniel Dunbar. + * TODO: Add item for improving test coverage. Point back to HACKING. - * tests/rm/unread2 (rm): Change expected diagnostic, - `cannot open directory' to `cannot remove', to align with - new version of rm. - * tests/rm/rm2: Ensure that rm now continues removing entries - even after certain types of failure. +2008-04-29 Jim Meyering <meyering@redhat.com> - * src/remove.c: Rewrite. Now, this module is reentrant on systems - that provide openat (Solaris), and on systems like Linux+procfs - where our openat emulation code is reentrant. This also fixes a - few low-probability leaks and eliminates some code that could, - in very unusual circumstances, cause rm() (via a callee) to exit. + chcon, runcon: make --help print the bug-reporting address + * src/chcon.c (usage): Use emit_bug_reporting_address. + * src/runcon.c (usage): Likewise. + * tests/misc/help-version: Don't exempt chcon and runcon. * NEWS: Mention this. - * configure.ac: Put copyright dates all on one line so the - emacs function that updates them works properly. +2008-04-28 Jim Meyering <meyering@redhat.com> -2005-11-18 Paul Eggert <eggert@cs.ucla.edu> + tests: don't hard-code coreutils list of tests/ SUBDIRS in bootstrap + * bootstrap: Extract the list from tests/Makefile.am, and die + when it is empty -- it will be, eventually. - * configure.ac (AM_PROG_CC_C_O): Add. Needed for CVS Automake. - Problem reported by Eric Blake. - (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that - we get a standard-conforming compiler. This relies on the new - m4/c.m4 file. Note that it's a bit tricky, since c.m4 doesn't - define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals. - m4/c.m4 can go away with Autoconf 2.60 comes out. +2008-04-28 Bo Borgerson <gigabo@gmail.com> -2005-11-17 Jim Meyering <jim@meyering.net> + tests: remove references to tests/wc from bootstrap + * bootstrap: Don't try to initialize anything in tests/wc. - * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'. - (AD_mark_current_as_unremovable): Likewise, but for a local. - (rm_1): Likewise. +2008-04-28 Jim Meyering <meyering@redhat.com> - * tests/mv/acl: Let traps handle removing temporary directories. + tests: slightly relax sc_cast_of_argument_to_free syntax check + * maint.mk (sc_cast_of_argument_to_free): Relax regexp slightly. + (sc_no_have_config_h): Add a comment. - Expect acl-related tests to fail, until the corresponding - patches are committed. - * tests/mv/Makefile.am (XFAIL_TESTS): Add acl. - * tests/cp/Makefile.am (XFAIL_TESTS): Likewise. +2008-04-28 Bo Borgerson <gigabo@gmail.com> - ACL tests, from Andreas Gruenbacher. - * tests/acl, tests/mv/acl, tests/cp/acl: New files. - * tests/mv/Makefile.am (TESTS): Add acl. - * tests/cp/Makefile.am (TESTS): Add acl. + tests: don't chmod after a failed chdir in cleanup + * tests/CuTmpdir.pm (chmod_tree): Don't chmod if chdir failed. - * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment. + Only cleanup test dirs from the process that created them. + * tests/CuTmpdir.pm (import): Use closure around current PID to avoid cleanup races. -2005-11-16 Paul Eggert <eggert@cs.ucla.edu> +2008-04-27 Jim Meyering <meyering@redhat.com> - * NEWS: Improve quality of ln's diagnostics. - * src/ln.c (do_link, usage): Likewise. - (do_link): Don't use alloca on a buffer of unbounded size. + move wc tests from own subdir into a single script + * configure.ac (AC_CONFIG_FILES): Remove wc/Makefile from the list. + * tests/Makefile.am (SUBDIRS): Remove wc from the list. + (TESTS): Add misc/wc. + * tests/misc/wc: New file, derived from tests/wc/Tests.pm. + * tests/wc/Test.pm: Remove file. -2005-11-16 Jim Meyering <jim@meyering.net> + tests: remove temporary log file upon catchable signal + * check.mk (am__check_pre): Add signal handler to remove $@-t. - * tests/cp/fail-perm: Accommodate HPUX. It appears to fail - with EACCES rather than EPERM. Reported by Peter O'Gorman here: - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766 - This also affects AIX 4.3.3, according to Ralf Wildenhues, in - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html + tests: don't source envvar-check manually, test-lib.sh does it + * tests/cp/abuse: Remove ". $top_srcdir/tests/envvar-check". + * tests/cp/parent-perm: Likewise. + * tests/cp/special-f: Likewise. + * tests/ls/proc-selinux-segfault: Likewise. + * tests/misc/help-version: Likewise. + * tests/mkdir/selinux: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + * tests/touch/now-owned-by-other: Likewise. + * tests/sample-test: Remove commented out suggestion. -2005-11-14 Jim Meyering <jim@meyering.net> + tests: ensure at least one failure when $built_programs is empty + Before, this test and others would pass with empty $built_programs. + * tests/misc/help-version: Fail if built_programs is empty. - * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix. + tests: improve perl-based tempdir handling + Before, upon interrupt, directories would be left behind. + * tests/CuTmpdir.pm: Remove temporary directory on interrupt. -2005-11-13 Jim Meyering <jim@meyering.net> + tests: reorder some tests in the long list + * tests/Makefile.am (TESTS): Move some tests that use sleep + "up" in the list so that they don't delay even a little the + completion of "make check". Also run a chmod test early. - * announce-gen: Accept new option, --gpg-key-id=ID and - emit a blurb telling how to use the .sig files. - * Makefile.cfg (gpg_key_ID): Define. - * Makefile.maint (announcement): Use new option and key. + tests: put root-only (usually skipped) tests at the end + * tests/Makefile.am (TESTS): Don't list root-only tests explicitly. + Instead, just use $(root_tests). + * tests/check.mk (vc_exe_in_TESTS): Now that root_tests are separate, + parse out the union of $(TESTS) and $(root_tests). - Require that most .c files include <config.h>. - * Makefile.maint (sc_require_config_h): New rule. - (syntax-check-rules): Add it. - * .x-sc_require_config_h: New file listing exceptions to the - above rule. Some are legit, others are simply grandfathered in. - * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too. + tests: move another file (expensive) into test-lib.sh + * tests/expensive: Remove file. Move contents into ... + * tests/test-lib.sh (expensive_): ...here. New function. + * tests/du/fd-leak: Update caller to use the new function. + * tests/mv/leak-fd: Likewise. + * tests/rm/hash: Likewise. + * tests/tail-2/big-4gb: Likewise. + * tests/Makefile.am (EXTRA_DIST): Remove its name. + + tests: cp/perm (usually not run) was failing on systems with SELinux + * tests/cp/perm: Use stat to get the permission string, not ls. + This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set + in the environment. It would fail on SELinux-enable systems + because ls-generated permission strings would not match, e.g., + "test _-rw-r--r--+ = _-rw-r--r--" would fail. -2005-11-12 Jim Meyering <jim@meyering.net> + tweak HACKING advice - * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files. +2008-04-24 Jim Meyering <meyering@redhat.com> -2005-11-11 Jim Meyering <jim@meyering.net> + tests: do define built_programs + * tests/check.mk (built_programs): Define here, where it's used. + This definition was in now-removed tests/misc/Makefile.am. - * NEWS: Mention `readlink -f' bug fix in 5.3.0 news. - Mention new readlink options in 5.3.0's `New features' section. - Spotted by Thomas Hood. +2008-04-23 Jim Meyering <meyering@redhat.com> -2005-11-08 Jim Meyering <jim@meyering.net> + tests: update commented-out examples in sample-test, too + * tests/sample-test: Use $top_srcdir/tests/SCRIPT_NAME, not + $top_srcdir/../SCRIPT_NAME here, too. - * NEWS: Merge in changes from b5_9x branch. +2008-04-23 Ondřej Vašík <ovasik@redhat.com> -2005-11-08 Paul Eggert <eggert@cs.ucla.edu> + tests: don't fail in a non-English locale + * tests/chmod/thru-dangling: Source lang-default. + * tests/cp/thru-dangling: Likewise. + * tests/misc/printf-surprise: Likewise. - * NEWS: ls now defaults to --time-style='locale', which in turn acts - like --time-style='posix-long-iso' if the locale settings are messed up. - * src/ls.c (decode_switches): Implement this. +2008-04-23 Jim Meyering <meyering@redhat.com> -2005-11-08 Jim Meyering <jim@meyering.net> + tests: remove now-unused Makefile.am + * tests/misc/Makefile.am: Remove file. - * tests/du/2g: s/expensive/very expensive/ in a comment. - From Paul Townsend. +2008-04-23 Ondřej Vašík <ovasik@redhat.com> -2005-10-17 Eric Blake <ebb9@byu.net> + id: do not print SELinux context when invoked with a USERNAME argument + * NEWS: Mention new behaviour. + * src/id.c (main): Do not print SELinux context when user is specified. + * tests/Makefile.am: Add the new test. + * tests/misc/id-context: New file. Test for the fix. + Problem reported by Ronny Buchmann in http://bugzilla.redhat.com/443485. - * src/ls.c (usage): Fix descriptions of --sort, --time. - Reported by Vitaly A. Ostanin. +2008-04-23 Jim Meyering <meyering@redhat.com> -2005-11-04 Paul Eggert <eggert@cs.ucla.edu> + id: do print the AFS-specific nameless group ID (called a PAG) + In 6.11, we mistakenly suppressed the printing of certain group IDs, + thinking they were useless AFS-specific artifacts. + This change reverts that, so now they are printed once again. + http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13345 + This also reverts the bug-fix that applied solely to the new code + used to avoid printing those IDs + + Revert "id bug fix: don't point to potentially clobbered static storage" + This reverts commit f7d1c59c224f81a8bab5fa2afcaf815988f50467. + Revert "Work around AFS bug: id and groups would print invalid group number." + This reverts commit b7a836c0a3524cda8ef79c30c3fe7ea759ae4656. + Revert "* src/c99-to-c89.diff: Accommodate a C99-ism in id.c." + This reverts commit d44893c5dba4150b4ded9cf6aad316c1ef620c9f. + +2008-04-22 Jim Meyering <meyering@redhat.com> + + build: move a project-specific definition to cfg.mk + * cfg.mk (old_NEWS_hash): Define here, ... + * maint.mk: ... not here. + (update-NEWS-hash): Update comment. + Suggestion from Eric Blake. - * src/ln.c: Include filenamecat.c. - (FILE_BASENAME_CONCAT): Remove. - (do_link): Remove last arg DEST_IS_DIR. All callers changed. - (main): Use file_name_concat, base_name, and strip_trailing_slashes - instead of FILE_BASENAME_CONCAT. This simplifies the code, and avoids - the use of alloca. + Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4) + * configure.ac: Filter out carriage returns in more places. + Reported by Elbert Pol, details here: + http://thread.gmane.org/gmane.org.fsf.announce/867/focus=13332 -2005-11-04 Jim Meyering <jim@meyering.net> + guard against inserting a NEWS entry into a block for a prior release + Without a guard like this, it is far too easy to apply a patch + prepared against a preceding release, and not notice that a NEWS + entry is inserted into the wrong block. + * maint.mk (sc_immutable_NEWS): New rule. + (update-NEWS-hash): New rule to update the hard-coded hash. - * src/du.c (process_file): Don't overflow for files of size >= 2^31 - on systems with stat.st_blocks of a signed 32-bit type. - This bug causes trouble on some AIX 5.1 systems. - Report and trivial patch from Paul Townsend: - <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html> + tests: ensure that all exec-$PERL lines are the same + * maint.mk (sc_perl_coreutils_test): New rule. + +2008-04-21 Jim Meyering <meyering@redhat.com> + + tests: skip (don't fail) rm/one-file-system when mount --bind fails + * tests/rm/one-file-system: Reported by Allen Hewes. + +2008-04-20 Jim Meyering <meyering@redhat.com> + + tests: convert umask-check to a function + * tests/test-lib.sh (working_umask_or_skip_): New function, from... + * tests/umask-check: ...here. Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove umask-check. + * tests/mkdir/perm: Use the function rather than sourcing the file. + * tests/cp/cp-parents: Likewise. + * tests/cp/parent-perm: Likewise. + Bruno Haible reported that parent-perm was failing to run umask-check. + + tests: adjust perl -I to use $top_srcdir/tests, not $srcdir/.. + + tests: clean up root tests; adapt to new layout + * tests/Makefile.am (root_tests): New list. + (check-root): Add 'SUBDIRS='. + (root-hint): Point to README. + * Makefile.am (check-root): Add 'SUBDIRS=' here, too. + * maint.mk (sc_root_tests): Adapt rule to new syntax used + in tests/Makefile.am. + +2008-04-20 Jim Meyering <meyering@redhat.com> + + Revamp test-related Makefiles. + One side-effect of this change is that "make check" now works even if + you put "." early in your shell's search PATH (don't do that!). + + Remove all test-related Makefile.am files, except those generated + by mk-script. Instead, tests/Makefile.am now lists not only the + tests directly under tests/, but also those in tests/*/ that are + not generated by mk-script, e.g., cp/abuse, cp/acl, mv/i-1, etc. + + A lot of these changes are like this: + + -. $srcdir/../lang-default + +. $top_srcdir/tests/lang-default + + -. $srcdir/../test-lib.sh + +. $top_srcdir/tests/test-lib.sh + + * configure.ac (AC_CONFIG_FILES): Remove corresponding Makefiles. + * tests/check.mk (vc_exe_in_TESTS): Relax syntax requirements. + * tests/rwx-to-mode: Remove file. Rewritten as... + * tests/test-lib.sh (rwx_to_mode_): ...this new function. + * tests/Makefile.am (EXTRA_DIST): Remove rwx-to-mode. + (SUBDIRS): Remove each dir with a removed Makefile.am. + (EXTRA_DIST): Add $(TESTS). + (TESTS): Add over 300 entries. + +2008-04-20 Jim Meyering <meyering@redhat.com> + + * tests/misc/Makefile.am (built_programs): Remove. Unused. + + Use "env" to invoke potential built-ins. + * tests/misc/pwd-unreadable-parent: Invoke pwd via "env -- pwd", + rather than via an absolute name. + * tests/touch/not-owner: Likewise for test. + * tests/chmod/setgid: Likewise. + +2008-04-19 Jim Meyering <meyering@redhat.com> + + * .prev-version: Record previous version: 6.11. + + Version 6.11. + * NEWS: Record release date. + + * maint.mk (writable-files): Fix syntax error. + + * doc/.gitignore: Add texinfo-related outputs. + +2008-04-19 Sven Joachim <svenjoac@gmx.de> + + * THANKS: Update my address, correct encoding for a name. + +2008-04-19 Jim Meyering <meyering@redhat.com> + + pr -e, with a mix of backspaces and TABs, could corrupt the heap + * tests/pr/Test.pm: New tests for the above. + * src/pr.c (char_to_clump): Ensure that "input_position" never + goes below 0. + Also, elide any backspace encountered when input_position is 0, + to be compatible at least with /bin/pr from Solaris 10. + This bug is present in the original version: + b25038ce9a234ea0906ddcbd8a0012e917e6c661 + * NEWS [Bug fixes]: Mention this. + Report and diagnosis by Cristian Cadar, Daniel Dunbar and Dawson Engler + in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13272 + +2008-04-19 Mike Frysinger <vapier@gentoo.org> + + * src/dircolors.hin: Add .flv. Move .svgz to "image formats". + +2008-04-18 Jim Meyering <meyering@redhat.com> + + md5sum -c: ignore a line with a NUL byte among checksum hex digits + * src/md5sum.c (hex_digits): Require that all "digest_hex_bytes" + be hexadecimal digits, not just those before the first NUL byte. + This bug dates back to the original version: + 3763a4f24eb21be40674d13ff7b04e078f473e85 + * tests/misc/md5sum (nul-in-cksum): Test for the above. + * NEWS [Bug fixes]: Mention this. + Prompted by a report from Flóki Pálsson in + http://bugzilla.redhat.com/439531 + +2008-04-16 Matthew Woehlke <mw_triad@users.sourceforge.net> + + tests: accommodate built-in mknod more cleanly still + * tests/mkdir/selinux: Use "env" rather than "nice". + +2008-04-16 Jim Meyering <meyering@redhat.com> + + tests: accommodate built-in mknod more cleanly + * tests/mkdir/selinux: Undo most of previous change, + bc22dbbf844f31ddaf2e68b167d0128a985d73ab, and instead + invoke the command via "nice". Using "exec" should be + enough, but isn't with OpenBSD's PD KSH v5.2.14 99/07/13.2. + Eric Blake suggested using nice. + + mknod --help: note that this command may be a shell built-in + * src/mknod.c (usage): Print USAGE_BUILTIN_WARNING. + Suggestion from Eric Blake. + + avoid "may be used uninitialized" warning from newer gcc + * src/md5sum.c (digest_check) [lint]: Initialize local, "filename". + + tests: add a comment explaining the potential failure + + tests: avoid mkdir/selinux failure when mknod is a shell built-in + * tests/mkdir/selinux: Skip the mknod test if it's a built-in. + +2008-04-15 Jim Meyering <meyering@redhat.com> + + md5sum, sha1sum, etc: handle invalid input (i.e., don't segfault) + * src/md5sum.c (bsd_split_3): Return right away if s_len == 0. + * tests/misc/md5sum (bsd-segv): New test for the above. + * tests/misc/sha1sum (bsd-segv): Likewise. + * NEWS: Mention the bug fix. + Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler. + +2008-04-14 Jim Meyering <meyering@redhat.com> + + tests: don't fail on systems without a "stat" syscall + * tests/test-lib.sh (require_strace_): Add a syscall parameter. + * tests/ls/stat-free-symlinks: Update caller. + * tests/mv/atomic: Likewise. + * tests/mv/atomic2: Likewise. + Reported by Mike Frysinger in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13222 + + tests: accommodate a different errno string on Irix 6.5 + * tests/mkdir/selinux: Also handle "Not supported". + Reported by Peter Fales. + + seq: work around floating point inaccuracies on more systems + * src/seq.c: Include <math.h> for fabs. + Include <float.h> for DBL_EPSILON. + (abs_rel_diff): New function. + (print_numbers): Use abs_rel_diff rather than a strict equality test. + Without this change, Solaris 8 and Irix 6.2 would fail the float-6 + test. Reported by Peter Fales in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13183 + * src/c99-to-c89.diff: Adjust seq.c offsets. + + doc: fix typo + * coreutils.texi (sort invocation): s/Whitespace/White space/ + +2008-04-12 Jim Meyering <meyering@redhat.com> + + tests: Accommodate a different errno value on OSF/1 4.0F. + * tests/mkdir/selinux: Also handle "Function not implemented". + + Avoid link failure when using mkstemp replacement. + * src/Makefile.am (tac_LDADD): Add $(LIB_CLOCK_GETTIME). + This is necessary at least on a DEC Alpha OSF/1 4.0F. + + tests: always enable VERBOSE output, now that test framework works better + * cfg.mk: Set VERBOSE=yes. + * tests/check.mk: Likewise. + +2008-04-11 Jim Meyering <meyering@redhat.com> + + doc: avoid "make pdf" failure (due to texi2dvi bug?) + * doc/coreutils.texi (filesZeroFromOption): + Comment out @cindex-in-@macro use. + + doc: use a valid texinfo macro name + * doc/coreutils.texi (filesZeroFromOption): s/0/Zero/ + +2008-04-08 Jim Meyering <meyering@redhat.com> + + tests: accommodate a different errno value on HPUX-10.20 + * tests/mkdir/selinux: Also handle "Unknown system error". + Reported by Peter Fales. + +2008-04-06 Jim Meyering <meyering@redhat.com> + + doc: factor out --files0-from duplication + * coreutils.texi (wc invocation) [files0fromOption]: New macro. Use it. + (du invocation): Use it here, too. + + * src/c99-to-c89.diff: Adjust remove.c diffs. + +2008-04-06 Jim Meyering <jim@meyering.net> + + remove.c: accommodate systems with negative errno values + This is required at least on Haiku and BeOS. + * src/remove.c (write_protected_non_symlink): Return 1 for a write- + protected non-symlink, 0 if we determine it's not, and -1 upon + error (setting errno accordingly only in this final case). + (prompt): Deal with the changed semantics of the above function. + Based on this patch from Axel Dörfler: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071 + +2008-04-05 Jim Meyering <meyering@redhat.com> + + Accommodate building on OS/2 (www.ecomstation.com Ecs v2 rc4) + * configure.in: Also filter out carriage returns from the value + of $no_install_progs_default. Reported by Elbert Pol. + +2008-04-02 Jim Meyering <meyering@redhat.com> + + "touch E; mkfifo F; cp -fR F E" no longer fails due to existing E + * src/copy.c (copy_internal): Revert change of 2005-03-01, + 4303f0454592421eea48be87777d32a49e1d5e5b + Prompted by Michael Stone, who pointed me to an old bug report from + Ian Jackson: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/7504 + * tests/cp/special-f: New file. Test for the above. + * tests/cp/Makefile.am (TESTS): Add special-f. + * NEWS: mention this bug fix. + + copy.c: remove an in-function #ifdef + * src/copy.c (rpl_mkfifo) [! HAVE_MKFIFO]: New function. + (mkfifo) [! HAVE_MKFIFO]: Define to rpl_mkfifo. + (copy_internal): Remove #ifdef. + + HACKING: rename README-contribution-guidelines + README-contribution-guidelines: Rename to .. + HACKING: ...this. + +2008-04-01 Jim Meyering <meyering@redhat.com> + + bootstrap: remove dangling *.[ch] symlinks from lib + * bootstrap [dangling symlink removal]: Match *.[ch] files, too. + Suggestion from Eric Blake. + + bootstrap: make find's -depth option be the first. + * bootstrap [dangling symlink removal]: Move find's -depth + option to precede all others, to avoid a warning. + + * bootstrap: Remove dangling symlinks from lib (aka $source_base), too. + + Avoid root-only SELinux-related test failures w/o mcstransd. + When mcstransd is not running (i.e., after service mcstrans stop), + "make check" as root would provoke two test failures. + * tests/cp/cp-a-selinux: Use the context, root:object_r:tmp_t:s0, + that works both with and without mcstransd. + Thanks to Eric Paris for the tip and to Ondřej Vašík for alerting + me to the problem. + Reported by Robert Scheck in <http://bugzilla.redhat.com/436717>. + + root tests: Set NON_ROOT_USERNAME if not set already. + * tests/test-lib.sh (require_root_): This avoids failure of a + couple of root-only tests that require a value for that envvar. + + texinfo formatting tweaks + * coreutils.texi: Avoid some overfull hbox warnings. + (Treating / specially): Use @file{/} rather than a bare /. + + printf doc: xref print(3) and libc's "Output Conversion Syntax" node + * coreutils.texi (printf invocation): Add xref. + Use "The GNU C Library Reference Manual" as the name of the 'libc' + document consistently. + * man/printf.x: Add See also: printf(3). + Suggested by A. Costa in http://bugs.debian.org/465522 + +2008-03-31 Jim Meyering <meyering@redhat.com> + + Emit "#line 1" right after the two 'read-only/GENERATED' lines. + * bootstrap (cp_mark_as_generated): This preserves line numbering + e.g., in assertions, which is important when correlating between + coreutils test failures and the original files in gnulib/tests. + Suggested by Eric Blake. + + * README-contribution-guidelines: Mention how to amend a commit. + Suggestion from Pádraig Brady. + + Begin documenting contribution guidelines. + * README-contribution-guidelines: New file. For now, not distributed. + + "rm -r DIR" would mistakenly prompt about very long names + * src/remove.c (write_protected_non_symlink): Return 0(-1) when + euidaccess_stat pronounces a writable(not-writable) file, not -1(0). + * tests/rm/deep-2: New file. Test for the above-fixed bug. + * tests/rm/Makefile.am (TESTS): Add deep-2. + Discovered while reviewing this change: + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13071 + + * NEWS: Note the dd bug fix. The bug was introduced over 8 years ago: + 9fca49f67c16c8b42c32e185808fe187cedb0fa7 + +2008-03-31 Paul Eggert <eggert@cs.ucla.edu> + + dd bug fix: accept e.g., if=/dev/stdin and of=/dev/stdout + * lib/fd-reopen.c: Work even if FILE is "/dev/stdin". + Problem reported by Geoffrey Lee in <http://bugs.debian.org/290727>. + * tests/dd/misc: Check for this bug. + +2008-03-29 Jim Meyering <meyering@redhat.com> + + avoid failure of new test on kernel without SELinux support + * tests/mkdir/selinux: Also accept ENOENT. + Reported by Sven Joachim. + + tests: accept ENOTSUP message as well as the EINVAL one + This test would fail on most non-Linux systems because the original + expected an "Invalid argument" diagnostic, yet they all produced + "Operation not supported". + * tests/mkdir/selinux: Accept both strings. Factor out duplication. + +2008-03-28 Jim Meyering <meyering@redhat.com> + + Work around a recent glibc/getopt.c diagnostic change. + * tests/misc/factor: Map new "-- '1'" to expected "-- 1". + + mknod, mkfifo: don't segfault when diagnosing invalid SELinux context + Identical to the bug fixed by 72d052896a9092b811961a8f3e6ca5d151a59be5. + * src/mkfifo.c (main): Use "scontext", not NULL optarg in diagnostic. + * src/mknod.c (main): Likewise. + Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler. + * tests/mkdir/selinux: Test for the above fixes. + * NEWS: Mention the fixes. + + Fix typo in old NEWS and ChangeLog: s/commmand/command/. + * ChangeLog-2007: Likewise. + * NEWS: Likewise. + Prompted by http://bugzilla.redhat.com/439410 + +2008-03-28 Pádraig Brady <P@draigBrady.com> + + tests: Factor out code that's going to be reused. + * tests/test-lib.sh (mkfifo_or_skip_): New function, factored out of... + * tests/touch/fifo: ...here. + +2008-03-28 Jim Meyering <meyering@redhat.com> + + Require that "(exit $fail); exit $fail" be last line of each test. + * maint.mk (sc_require_test_exit_idiom): New rule to enforce policy. + * tests/cp/acl: Adhere to the new policy. + * tests/cp/preserve-gid: Likewise. + * tests/dd/misc: + * tests/install/create-leading: + * tests/ln/sf-1: + * tests/ls/symlink-slash: + * tests/misc/help-version: + * tests/misc/ls-time: + * tests/misc/nice: + * tests/misc/shred-remove: + * tests/misc/stty: + * tests/misc/stty-row-col: + * tests/mkdir/p-1: + * tests/mkdir/p-2: + * tests/mkdir/p-3: + * tests/mkdir/p-v: + * tests/mkdir/special-1: + * tests/mkdir/writable-under-readonly: + * tests/mv/acl: + * tests/mv/backup-is-src: + * tests/mv/diag: + * tests/mv/dir-file: + * tests/mv/force: + * tests/mv/hard-link-1: + * tests/mv/i-2: + * tests/mv/i-4: + * tests/mv/into-self: + * tests/mv/into-self-2: + * tests/mv/into-self-3: + * tests/mv/partition-perm: + * tests/mv/to-symlink: + * tests/rmdir/ignore: + * tests/tail-2/assert: + * tests/tail-2/assert-2: + * tests/touch/dangling-symlink: + * tests/touch/dir-1: + * tests/touch/empty-file: + * tests/touch/fifo: + * tests/touch/no-rights: Likewise. + + Perform explicit exit-nonzero if the embedded Perl script fails. + * tests/misc/pwd-long: Add canonical '(exit $fail); exit $fail'. + +2008-03-27 Jim Meyering <meyering@redhat.com> + + paste -d\\: avoid heap overrun for backslash at end of delim list + * src/paste.c: Include "quotearg.h". + (collapse_escapes): Handle backslash-escaped backslash explicitly. + Handle unescaped backslash at end of string by returning nonzero, + rather than by overrunning memory. + (main): Diagnose an invalid delimiter list -- carefully. + Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler. + * tests/misc/paste-no-nl (delim-bs): Add a test to demonstrate the + heap-smashing capability. + (delim-bs2): Prior to coreutils-5.1.2, this bug was a little harder + to demonstrate: it would corrupt a first-argument containing e.g., \b + * NEWS: Mention the bug fix. + * tests/misc/Makefile.am (TESTS): Reflect renaming. + * tests/misc/paste: Rename from paste-no-nl. + +2008-03-26 Jim Meyering <meyering@redhat.com> + + * src/join.c (keycmp): Document new parameters. + + Test for mkdir bug fix. + * tests/mkdir/selinux: New file: test for today's fix. + * tests/mkdir/Makefile.am (TESTS): Add selinux. + +2008-03-25 Daniel Dunbar <daniel@zuster.org> + + mkdir -Z x d: don't segfault when diagnosing invalid context "x" (tiny change) + * src/mkdir.c (main): Use "scontext", not NULL optarg in diagnostic. + Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler. + * NEWS: Mention the bug fix. + +2008-03-25 Peter Fales <psfales@alcatel-lucent.com> + + id bug fix: don't point to potentially clobbered static storage + On at least Mac OS, when calling getpwuid twice with the same UID, + the static storage containing results from the first call is + invalidated by the second call. + * src/id.c (main): Point to a copy of the user name string. + +2008-03-25 Eric Blake <ebb9@byu.net> + + Use new gnulib gnumakefile module. + * bootstrap.conf (gnulib_modules): Pull in new module. + * GNUmakefile: Remove from version control. + * .gitignore: Update. + * configure.ac (AC_CONFIG_LINKS): Delete; rely on gnulib to do + this now. + * Makefile.am (EXTRA_DIST, distclean-local): Likewise. + +2008-03-25 Jim Meyering <meyering@redhat.com> + + join bug fix: adapt keycmp to work with new order-checking feature + * src/join.c (keycmp): Add two join-field parameters. + (check_order, join): Update callers. + Reported by Dmitry V. Levin in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12731/focus=13017 + * tests/join/Test.pm (chkodr-7): New test for this fix. + +2008-03-23 Jim Meyering <meyering@redhat.com> + + join.c: syntax/style tweaks + * src/join.c (check_order): Rename from checkorder. + Move definition to precede first use and remove prototype. + Use EXIT_FAILURE, rather than "1". + (key_cmp): Move definition to precede first use. + +2008-03-22 Jim Meyering <meyering@redhat.com> + + portability: work around a "busybox sed" limitation + * configure.ac: While every other sed tested supports usage like + '/\(re\)/{s//\1/;...<NEWLINE>}', and POSIX appears to requires this, + busybox's sed does not support it. So duplicate the regexp: + '/\(re\)/{s/\(re\)/\1/;...<NEWLINE>}'. Reported by Vincent Lefevre: + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>. + +2008-03-21 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Adjust seq.c offsets. + + ptx: avoid heap overrun for backslash at end of optarg string + * src/ptx.c (copy_unescaped_string): Ignore a lone backslash + at end of string. Reported by Cristian Cadar, Daniel Dunbar + and Dawson Engler. Details here: + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13005>. + * tests/misc/Makefile.am (TESTS): Add ptx-overrun. + * tests/misc/ptx-overrun: New file. Test for the above fix. + * NEWS: Mention the fix. + + ptx.c readability + * src/ptx.c (copy_unescaped_string): Add braces around 80+-line + single-stmt while-loop body. + + Write NEWS and update c99-to-c89 patch for today's rm improvement. + * NEWS: call this a "portability improvement" ;-) + * src/c99-to-c89.diff: Adjust remove.c offsets. + +2008-03-21 Ingo Weinhold <ingo_weinhold@gmx.de> + + remove.c: Accommodate systems with negative errno values. + * src/remove.c (cache_fstatat): Store errno value directly in + the st_ino field, rather than trying to shoehorn it into st_size. + This is required at least on BeOS and Haiku. + +2008-03-21 Jim Meyering <meyering@redhat.com> + + * src/seq.c (long_double_format): Add a comment. + +2008-03-20 Jim Meyering <meyering@redhat.com> + + * GNUmakefile: Update from gnulib. + + Remove today's automake kludge, altogether. Fix properly. + * man/Makefile.am: Use dist_man1_MANS instead of dist_man_MANS. + Suggestion from Ralf Wildenhues. + + Add a check to detect this problem, in case it reappears. + * maint.mk (my-distcheck): Run "make install", and then ensure + that ls.1 is installed. + + Kludge to make automake generate install-man rules + * man/Makefile.am (dist_man_MANS): Add a literal, rm.1. + Without this, "make install" would not install man pages. + However, with this kludge, the rm.1 man page is installed + even when you configure with --enable-no-install-program=rm. + + Revert recent man/Makefile.am change. + Revert 4b544e447eb78fd1f031a026a499f6aed177808a. + * man/Makefile.am: That change was only a band-aid. It solved + the stated problem, but not a deeper one: that "make install" + would no longer man pages. Reported by Dmitry V. Levin. + The latter problem arose in + 167b8025aca487de001da2448c1aebc2747bc1d3 with the removal of + the sole literal from the definition of dist_man_MANS. When + automake perceives dist_man_MANS as empty, it no longer emits + the install-man* rules. + +2008-03-20 Eric Blake <ebb9@byu.net> + + Sync GNUmakefile with gnulib. + * GNUmakefile (Makefile.cfg): Rename... + (cfg.mk): ...to this, and make optional. + (GNUmakefile.cfg): Delete, redundant with cfg.mk. + (Makefile.maint): Rename... + (maint.mk): ...to this. + (all) [!_have-Makefile]: Rename... + (abort-due-to-no-makefile): ...to this, and invoke via + .DEFAULT_GOAL to pick up all targets. + * Makefile.cfg: Rename... + * cfg.mk: ...to this. + * Makefile.maint: Rename... + * maint.mk ...to this. + (ME): Reflect rename. + (makefile-check, m4-check, author_mark_check, msg): Use $(ME) + rather than hard-coded name. + * Makefile.am (EXTRA_DIST): Distribute renamed files. + * .x-sc_file_system: Remove Makefile.maint along with others. No longer needed. + * .x-sc_obsolete_symbols: Likewise. + * .x-sc_prohibit_atoi_atof: Reflect renaming and remove no-longer-VC'd names. + * TODO: Likewise. + +2008-03-19 Bob Proulx <bob@proulx.com> + + make check: Remove /tmp/ls-creating debug code. + * tests/misc/ls-misc: Remove debug code creating /tmp/ls. + +2008-03-19 Jim Meyering <meyering@redhat.com> + + bootstrap: restore kludge removed on 2008-03-12: it's still necessary. + * bootstrap: Make the gnulib-tests/test-*.sh scripts executable. + This restores code removed by dec8bb25bb6da2fe9fe6dd63c0fbbd593a0e94cb. + Reported by Bob Proulx. + + Check for -- and remove -- some unnecessarily included header files. + * Makefile.maint: Add checks for a handful of additional header files. + * src/mktemp.c: Don't include "long-options.h". Not used. + * src/pr.c: Don't include "inttostr.h". Not used. + * src/printenv.c: Don't include "error.h". Not used. + * src/test.c: Don't include "error.h". Not used. + * src/touch.c: Don't include "safe-read.h". Not used. + + Remove more vestiges of CVS. + * Makefile.maint (VC_LIST): Rename from CVS_LIST. + (VC_LIST_EXCEPT): Rename from CVS_LIST_EXCEPT. + + mv: never unlink a destination file before calling rename + While cp --preserve=links must unlink certain destination files, + mv must never do that. + * src/copy.c (copy_internal): Pull the '! x->move_mode' test "up", + so it affects the entire condition, and not just DEREF_NEVER mode. + Reported by James Ralston in <http://bugzilla.redhat.com/438076>. + * tests/mv/atomic2: New file. Test for the above fix. + * tests/mv/Makefile.am (TESTS): Add atomic2. + * NEWS: Mention the bug-fix. + [Bug introduced in 367719ba5f1dbd5e2f7fa2466c441f23f66a7c9e] + + "make" would not always update man/*.1 files (but "make dist" would) + * man/Makefile.am (BUILT_SOURCES): Define, so that "make" always + updates man/*.1 files. Reported by Bob Proulx. + +2008-03-18 Jim Meyering <meyering@redhat.com> + + syntax-check: Make the space-before-open-paren optional. + * Makefile.maint (sc_prohibit_assert_without_use): Match also + when there is no space before the opening parenthesis. + (sc_prohibit_getopt_without_use): Likewise. + (sc_prohibit_quotearg_without_use): Likewise. + (sc_prohibit_quote_without_use): Likewise. + + * Makefile.maint (sc_no_have_config_h): Use a more precise regexp. + + * Makefile.maint (CVS): Remove now-unused definition. + + Factor out duplication in sc_prohibit_*_without_use rules. + * Makefile.maint (_header_without_use): New "command", + factored out of four sc_prohibit_HEADER_without_use rules. + (sc_prohibit_assert_without_use): Rewrite using $(_header_without_use). + (sc_prohibit_getopt_without_use): Likewise. + (sc_prohibit_quotearg_without_use): Likewise. + (sc_prohibit_quote_without_use): Likewise. + +2008-03-18 Dmitry V. Levin <ldv@altlinux.org> + + Correct typo in "make syntax-check" diagnostic. + * Makefile.maint (sc_prohibit_getopt_without_use): s/assert.h/getopt.h/ + +2008-03-16 Jim Meyering <meyering@redhat.com> + + Prohibit inclusion of getopt.h without use. + * Makefile.maint (sc_prohibit_getopt_without_use): New rule. + + Include <getopt.h> only if used. + * src/group-list.c: Don't include <getopt.h>. + * src/printf.c: Likewise. + +2008-03-16 J. Scott Edwards <qrw.software@gmail.com> + + sha512_process_bytes: fix a bug in processing a buffer where length&64 != 0 + * gl/lib/sha512.c (sha512_process_bytes): s/63/127/. + +2008-03-12 Jim Meyering <meyering@redhat.com> + + Generalize GNUmakefile, ... + ...so that it can be used unmodified by autoconf. + * GNUmakefile: Include optional file, GNUmakefile.cfg. + Autoconf will use this to override _autoreconf and to export PATH. + (_autoreconf): Define. + (_dummy): cd to $(srcdir) before removing autom4te.cache. + + * bootstrap: Sync from gnulib and remove part of a local kludge. + +2008-03-10 Ondřej Vašík <ovasik@redhat.com> + + install, rmdir: write --verbose output to stdout, not to stderr. + * src/install.c (announce_mkdir): Write verbose output to stdout, + not to stderr. + * src/mkdir.c (announce mkdir): Use prog_fprintf for verbose output. + * src/prog-fprintf.c (prog_fprintf): New function and file. + * src/prog-fprintf.h: New file. + * src/rmdir.c (main): Write verbose output to stdout, not to stderr. + Quote directory name in a diagnostic. + * src/rmdir.c (remove_parents): Write verbose output to stdout, + not to stderr. + * doc/coreutils.texi: Mention that shred verbose output is to stderr. + * NEWS: Mention the changes. + +2008-03-10 Jim Meyering <meyering@redhat.com> + + make syntax-check: also check src/*.h files for extern functions, + * src/Makefile.am (sc_tight_scope): ... now that there is one. + +2008-03-07 Jim Meyering <meyering@redhat.com> + + dd: avoid unnecessary, but harmless close_stdout call. + * src/dd.c (close_stdout_required): New global. + (maybe_close_stdout): New function. + (main): Set the global. + Reported by Ulrich Drepper in http://bugzilla.redhat.com/436368 + +2008-03-06 Jim Meyering <meyering@redhat.com> + + Now that ChangeLog is no longer under version control, ... + * Makefile.maint (alpha beta major): Don't make changelog-check. + (changelog-version-check): Rename from changelog-check. + +2008-03-05 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Accommodate a C99-ism in id.c. + +2008-03-05 ribalba <geerd.dietger.hoffmann@gmail.com> + + Work around AFS bug: id and groups would print invalid group number. + * src/id.c (main): Call print_group_list with a user name, if possible. + * src/groups.c (main): Likewise. * NEWS: Mention this. + For details, see + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12852 + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12875 - * tests/du/2g: New (very-expensive) test for the above-fixed bug. - * tests/du/Makefile.am (TESTS): Add it here. - * tests/very-expensive: New file. - * tests/Makefile.am (EXTRA_DIST): Add it here. - * tests/cp/perm: Mark this test as `very-expensive', too. +2008-03-05 Jim Meyering <meyering@redhat.com> -2005-11-02 Paul Eggert <eggert@cs.ucla.edu> + Now that Makefile.maint is used in VPATH builds, too... + * Makefile.maint (prev_version_file): Prefix with $(srcdir)/. + (syntax-check-rules): Prefix $(ME) with $(srcdir)/. - * NEWS: Mention that rm -d and maybe ln -d are scheduled for - removal in 2006. - * src/remove.h (struct rm_options): Remove unlink_dirs. All uses - removed. - * src/rm.c (usage): Don't mention rm -d. + Avoid new "make distcheck" failure, now that VPATH has GNUmakefile. + * GNUmakefile: Remove commands to create ".version". + They were unnecessary, and caused creation of a newer .version + file in a VPATH build, which in turn caused creation of updated + man/*.1 files reflecting the newer time stamp on .version. + Those *.1 files were not removed (since they're distributed), and + the fact that they remained after "distclean" triggered the failure. -2005-11-02 Jim Meyering <jim@meyering.net> +2008-03-04 Eric Blake <ebb9@byu.net> - * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils. - From Andreas Schwab. + Reinstate GNUmakefile patch, but with workaround for automake. + * configure.ac (AC_CONFIG_LINKS): Use shell variable to bypass + automake distclean rules. + * Makefile.am (distclean-local): Clean GNUmakefile in VPATH builds, + since we are bypassing automake. + * GNUmakefile (_is-dist-target): 'distclean' is not a dist target. - * tests/dd/unblock-sync: Redirect stderr to /dev/null so the - `M+N records in/out' lines don't pollute `make check' output. +2008-03-04 Jim Meyering <meyering@redhat.com> - * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug - fixed on 2005-10-31. This test uses the new, IN_PIPE specifier. - * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE, - to indicate that the input file should be piped into the command - under test (via `cat FILE | $prog ...'). + Clarify comment and attribute preceding change: Reported by Ralf Wildenhues. - * src/remove.c (remove_entry): Emit a better diagnostic when rm - (without -r) fails to remove a directory on a non-Linux system. - This change affects only newer Solaris systems (with priv_* - functions like priv_allocset). Reported by Keith Thompson. + Comment out yesterday's VPATH-friendly addition, for now. + * configure.ac: ...while we wait for a fixed version of automake. - * tests/rm/dir-nonrecur: New file/test for the above fix. - * tests/rm/Makefile.am (TESTS): Add dir-nonrecur. +2008-03-03 Eric Blake <ebb9@byu.net> -2005-11-01 Paul Eggert <eggert@cs.ucla.edu> + Use m4_PACKAGE_VERSION, not AC_AUTOCONF_VERSION. + * configure.ac: The latter is only in post-2.61 autoconf. - * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as - POSIX 1002.1-2001 requires. - * src/tail.c (parse_obsolete_option): Implement this. - Problem reported by Vincent Lefevre. - * src/touch.c (main): Pass PDS_PRE_2000 to posixtime. - * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests. - (test_vector): Add special cases for _POSIX2_VERSION, and - regularize the old ones a bit. - * tests/touch/obsolescent: Add y2000 test. + GNUmakefile build tweaks. + * GNUmakefile: When Makefile is not present, make common targets depend + on "all" in order to trigger nicer error message. + * configure.ac: If autoconf is new enough, link GNUmakefile into VPATH + builds. + For more details, see + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/12853>. -2005-10-31 Paul Eggert <eggert@cs.ucla.edu> +2008-03-03 Simon Josefsson <simon@josefsson.org> - * src/dd.c (skip): Fix off-by-one error reported by - Theodoros V. Kalamatianos. + Define SHA*_DIGEST_SIZE symbols. + * gl/lib/sha256.h (SHA224_DIGEST_SIZE, SHA256_DIGEST_SIZE): Define. + * gl/lib/sha512.h (SHA384_DIGEST_SIZE, SHA512_DIGEST_SIZE): Define. -2005-10-30 Paul Eggert <eggert@cs.ucla.edu> +2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * tests/mkdir/p-3: Require that the test be run as non-root. - Problem and trivial fix reported by Theodoros V. Kalamatianos. + Fix so that out-of-tree VPATH "make dist" works, too. + * GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument. -2005-10-28 Paul Eggert <eggert@cs.ucla.edu> +2008-03-02 Jim Meyering <meyering@redhat.com> - * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the - boundary between DEST and SOURCE in the result. + One more for non-srcdir "make dist". + * GNUmakefile: Also cd $(srcdir) before running autoreconf. -2005-10-26 Dmitry V. Levin <ldv@altlinux.org> + Adjust so that non-srcdir "make dist" works, too. + * GNUmakefile: Add $(srcdir)/ prefix to git-version-gen and argument. - * src/md5sum.c (main) [!O_BINARY]: Changed default read mode - back to text, to sync with documentation and for backwards - compatibility. + Don't infringe namespace of "sub"-Makefiles. + * GNUmakefile (_dummy, _have-Makefile): Add "_" prefix. -2005-10-25 Jim Meyering <jim@meyering.net> + Create sha256 and sha512 modules and move files into gl/. + * bootstrap.conf (gnulib_modules): Add sha256 and sha512. + * m4/prereq.m4: Don't require gl_SHA256 or gl_SHA512. + * gl/modules/sha512: New file. + * gl/modules/sha256: New file. + * m4/sha256.m4: Move to ... + * gl/m4/sha256.m4: ...here, removing use of AC_SOURCES. + * m4/sha512.m4: Move to ... + * gl/m4/sha512.m4: ...here, removing use of AC_SOURCES. + * lib/sha256.c, lib/sha256.h: Move to ... + * gl/lib/sha256.c, gl/lib/sha256.h: ...here. + * lib/sha512.c, lib/sha512.h: Move to ... + * gl/lib/sha512.c, gl/lib/sha512.h: ...here. + * lib/u64.h: Move to ... + * gl/lib/u64.h: ...here. - * tests/dircolors/simple (other-wr): Add an explicit test for - the dircolors bug (NULL-dereference) fixed yesterday. + * bootstrap: Remove only *.m4, and only from $m4_base/. Rewrite the comment. -2005-10-24 Jim Meyering <jim@meyering.net> + * bootstrap: Sync from gnulib. - * src/tac.c (tac_file): When determining whether a file is seekable, - also test whether it is a tty. Using only the lseek-based test would - give a false positive on Solaris. Reported by Peter Fales. +2008-03-01 Jim Meyering <meyering@redhat.com> -2005-10-24 Dmitry V. Levin <ldv@altlinux.org> + Don't skip the groups-version test. + * tests/Makefile.am (built_programs): Remove unused definition. + * src/Makefile.am (built_programs.list): Print a space-separated + list of program names, not NL-separated, since all clients now + expect a space-separated list. - * tests/install/d-slashdot: New test, for "install -d" failure. - * tests/install/Makefile.am (TESTS): Add d-slashdot. - * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure. - * tests/mkdir/Makefile.am (TESTS): Add p-slashdot. + Don't exempt "groups" from write-failure test, now that it's a C program. + * tests/misc/help-version: Since groups is no longer a shell + script, a buggy bourne shell can't cause trouble. -2005-10-24 Jim Meyering <jim@meyering.net> + * configure.ac (AC_INIT): Use .tarball-version, not .version. - * src/dircolors.c (ls_codes): Add missing comma. - Anonymous report and patch from - http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849 + Don't depend on gnulib's deprecated "free" module. + * bootstrap.conf (obsolete_gnulib_modules): Remove free. + * gl/modules/mgetgroups (Depends-on): Remove free. - * src/dircolors.c: Add compile-time assertion that the slack_codes - and ls_codes arrays have the same number of elements. This would - have prevented the above-fixed bug. +2008-02-29 Jim Meyering <meyering@redhat.com> - * src/expand.c (parse_tab_stops): Add a comment to make this function - identical to the one in unexpand.c. - * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function - identical to the one in expand.c. + Merge bootstrap changes from gnulib. + * bootstrap (MSGID_BUGS_ADDRESS): Define and use. + (version_controlled_file): Use "git rm", not "git-rm". - * src/expand.c (next_file): Don't assume fopen cannot return stdin. + Use "git tag", not "git-tag", in preparation for git-1.6.0. + * Makefile.maint (VC-tag): Remove '-': s/git-tag/git tag/ -2005-10-23 Jim Meyering <jim@meyering.net> +2008-02-28 Jim Meyering <meyering@redhat.com> - * src/md5sum.c (digest_check, main): Use ptr_align rather than - a dangerous pointer-value-to-`unsigned' cast. - * NEWS: mention the new sha* programs. - * AUTHORS: Add new sha* programs. + Make copyright comments consistent. + * src/mktemp.c: Update copyright to use newer form. -2005-08-28 David Madore <david.madore@ens.fr> + Make first copyright lines consistent. Some did not end in ", Inc.". + Due to that missing ", Inc" at end of line, emacs' copyright-updating + code missed some opportunities. This corrects most of those, and + adds some mistakenly omitted years. + * src/chown-core.c: Adjust. + * src/chown-core.h: Likewise. + * src/copy.c: Likewise. + * src/copy.h: Likewise. + * src/cp-hash.c: Likewise. + * src/cp.c: Likewise. + * src/group-list.h: Likewise. + * src/mktemp.c: Likewise. + * src/stat.c: Likewise. + * tests/chmod/equal-x: Likewise. + * tests/dd/skip-seek: Likewise. + * tests/envvar-check: Likewise. + * tests/mv/into-self-2: Likewise. - Add new programs: sha224sum, sha256sum, sha384sum, sha512sum. - * README: Add their names to the list. - * src/md5sum.c: Provide framework for computing sha-2 hashes. - * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum): - Rules for compiling sha-2 utilities - (noinst_HEADERS): Remove checksum.h. - * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x: - New files. - * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names. - (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies. - * tests/misc/sha224sum, tests/misc/sha256sum: New files. - * tests/misc/sha384sum, tests/misc/sha512sum: New files. - * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum, - sha384sum, sha512sum test scripts here rather that each in its - own directory. +2008-02-25 Bob Proulx <bob@proulx.com> -2005-08-28 David Madore <david.madore@ens.fr> + Fix test failure where rm would appear to succeed incorrectly. + * tests/rm/fail-eperm: Ignore files that were opportunistically chosen + to test permission failures but disappear before we can finish the test. - * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one - of the FIPS test vectors). +2008-02-24 Jim Meyering <meyering@redhat.com> -2005-10-23 Jim Meyering <jim@meyering.net> + * gl/lib/mgetgroups.c (mgetgroups): Parenthesize correctly. - * configure.ac: Use 6.0-cvs as the version string. - * NEWS: Adjust accordingly. + * gl/lib/mgetgroups.c: Include <stdlib.h>. + +2008-02-23 Jim Meyering <meyering@redhat.com> + + Avoid test failures when root (/) is not readable. + * tests/test-lib.sh (require_readable_root_): New function. + * tests/misc/pwd-long: Skip this test when / is unreadable. + * tests/du/slash: Likewise. + This is required at least for Mandrake/Mandriva in "secure" mode. + Reported by Theodoros V. Kalamatianos in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12800 + +2008-02-22 Jim Meyering <meyering@redhat.com> + + id: avoid race when a group is added between getgrouplist calls + * gl/lib/mgetgroups.c (mgetgroups) [N_GROUPS_INIT]: Rename enum. + Use a larger value. + Update *groups only upon success. + Iterate upon failed getgrouplist. + +2008-02-21 James Youngman <jay@gnu.org> + + id: use getgrouplist when possible + * gl/m4/mgetgroups.m4: Check for getgrouplist. + * gl/lib/mgetgroups.c (mgetgroups): Use getgrouplist, if available. + * TODO: Remove the item about switching to getgrouplist. + * NEWS: mention this + +2008-02-21 Paul Eggert <eggert@CS.UCLA.EDU> + + du vs. hard links and argument order: improve documentation + * doc/coreutils.texi (du invocation): Document default behavior on + hard links, and why argument order matters. + +2008-02-20 James Youngman <jay@gnu.org> + + join: avoid new leaks + * src/join.c (prevline): Make prevline module-level static, so that + the allocated items can be freed at exit. + (free_prevline): new atexit function; frees items in prevline[]. + Use ARRAY_CARDINALITY, so include "argmatch.h" to get that. + (main): Arrange for free_prevline to be called during exit. + (get_line): Free prevline[which - 1] also, as that + will have been allocated by dup_line. + +2008-02-20 Jim Meyering <meyering@redhat.com> + + Remove xdelta support, clean up distcheck process. * Makefile.maint (writable-files): Don't create $(release_archive_dir). (my-distcheck): Don't depend on prev-tgz. Remove xdelta-related variables and uses. (alpha beta major): Skip steps if $(release_archive_dir) doesn't exist. + + * bootstrap: Remove dangling symlinks before invoking aclocal. + +2008-02-20 Andreas Schwab <schwab@suse.de> + + sort: add --sort=... option. + * src/sort.c (SORT_OPTION): New enum. + (sort_args, sort_types): Define. + (usage, long_options, main): New option --sort. + * tests/sort/Test.pm: Test it. + * doc/coreutils.texi (sort invocation): Document --sort option. + * NEWS: Mention this. + +2008-02-19 Jim Meyering <meyering@redhat.com> + + 2008-02-19 Jim Meyering <meyering@redhat.com> + * TODO: Remove final seq-related item. + + * src/c99-to-c89.diff: Adjust seq.c offsets. Accommodate a new C99-ism. + +2008-02-19 Steven Schubiger <schubiger@gmail.com> + + seq: give better diagnostics for invalid formats. + * src/seq.c: (validate_format): New function. + (main): Use it. + * tests/misc/seq (fmt-d, fmt-e): Test for expected diagnostics with + invalid formats. + * NEWS: Mention this change. + * TODO: Remove this item. + [jm: src/seq.c: make diagnostics more consistent + tests/misc/seq (fmt-eos1): adjust the expected diagnostic ] + +2008-02-19 James Youngman <jay@gnu.org> + + join: new options: --check-order and --nocheck-order. + * src/join.c: Support --check-order and --nocheck-order. + New variables check_input_order, seen_unpairable and + issued_disorder_warning[]. For --check-order, verify that the + input files are in sorted order. For the default case, check the + order only if there are unpairable lines. + (join): Perform ordering checks after reaching EOF on either + input. + (usage): Mention --check-order and --nocheck-order. + (dupline): Save a copy of the previously-read input line so that + we can detect disorder on the input. + (get_line): Temporarily save a copy of the previous line (by + calling dupline) and check relative ordering (by calling + checkorder) before returning the newly-read line. + (getseq, join): Tell get_line which file we are reading from. + (advance_seq): New function, factoring out some of the code + commonly surrounding calls to getseq. + (checkorder): New function. Verifies that a pair of consecutive + input lines are in sorted order. + * doc/coreutils.texi (join invocation): Document the new options + --check-order and --nocheck-order. + * tests/join/Test.pm (tv): Added tests for --check-order and + --nocheck-order. + * NEWS: Mention this new feature. + + Fix non-srcdir "make distcheck" failure. + * Makefile.am (check-ls-dircolors): Look for sources under + $(srcdir), not under ".". + +2008-02-18 Jim Meyering <meyering@redhat.com> + + seq: give a proper diagnostic for an invalid --format=% option + * src/seq.c (long_double_format): Handle '%' at end of string. + * tests/misc/seq [fmt-eos1, fmt-eos2]: New tests for the bug. + * NEWS: Mention this. + Reported by Pádraig Brady. + +2008-02-17 Jim Meyering <meyering@redhat.com> + + .gitignore, src/.gitignore: ignore more + + Clean up Makefile.maint. + * Makefile.maint: Remove obsolete comments. + (local-checks-available): Remove changelog-check. + + Clean up ls.c. + * src/ls.c (put_indicator): Use fwrite, not a loop. + + Ensure that dircolors.c and ls.c remain in sync. + * Makefile.am (check-ls-dircolors): New rule. + (distcheck-hook): Depend on it. + +2008-02-17 Jim Meyering <meyering@redhat.com> + + Expand "ls --color" tests to also use the dircolors defaults. + * tests/misc/ls-misc: Adjust this test so each is run twice. First, as usual, + and the second time with LS_COLORS set using the default settings + produced by running dircolors. + * tests/Coreutils.pm: See below. + + This required some changes: + - save and restore $ENV{LS_COLORS} for each individual test + that requires a specific value. + - Since this is the first test to call the run_tests command more + than once, it has exposed that that function erroneously modifies + the \@Tests array. Fix that in tests/Coreutils.pm. + +2008-02-17 Jim Meyering <meyering@redhat.com> + + Adjust dircolors to match ls.c. + * src/dircolors.hin: comment out NORMAL and FILE, define RESET. + * src/dircolors.c (slack_codes) Add "RESET". + (ls_codes): Add "rs". + +2008-02-17 Ed Avis <ed@membled.com> + + ls --color no longer outputs unnecessary escape sequences + In --color mode, plain files do not get any color, not even white. + When no highlighting is required, ls outputs no escape sequence at all. + * src/ls.c (print_with_color): + (used_color): New global. + (indicator_no) [C_RESET]: New enum value. + (indicator_name) ["rs"]: Corresponding new string. + (color_indicator): Make the 'normal' and 'file' markers be NULL. + Use "rs" (C_RESET) to reset to ordinary colors. + (process_signals): Restore default colors only if necessary. + (main): Don't call prep_non_filename_text here. + (print_name_with_quoting): Call it here, instead. + (prep_non_filename_text): Use C_RESET, not C_NORM. + (print_color_indicator): Return bool, not void. + Print nothing, when possible. + (put_indicator): Call prep_non_filename_text the first time. + * tests/misc/ls-misc: Test for above. + * tests/ls/color-dtype-dir: Adapt: no escapes around regular file name. + * TODO: Remove item. + * NEWS: Mention this. + +2008-02-17 Dan Jacobson <jidanni@jidanni.org> + + ls: Improve description of --group-directories-first. + * src/ls.c (usage) [--group-directories-first]: Improve description. + * doc/coreutils.texi (Which files are listed): Likewise. + +2008-02-16 Jim Meyering <meyering@redhat.com> + + Avoid tests/cp/acl test failure. + * tests/check.mk (TESTS_ENVIRONMENT) [CONFIG_HEADER]: Define + to an absolute name, so it can be used from any point in the + test hierarchy. Reported by James Youngman. + +2008-02-16 James Youngman <jay@gnu.org> + + Use the gettime module in ls.c. + Implement TODO list item to make ls.c use the gettime module. + * TODO (ls): Now that we use gettime, remove the TODO entry. + * src/ls.c: Use timespec.h and the gettime module. + (current_time): Change type from time_t to struct timespec. + (current_time_ns): Removed. + (get_current_time): Removed. + (print_long_format): Remove when and when_ns, since we have + when_timespec anyway. Change type of variable six_months_ago from + time_t to struct timespec. + +2008-02-14 Jim Meyering <meyering@redhat.com> + + groups: don't test printf and putchar calls for failure + They are unnecessary, since we use gnulib's closeout module. + * src/group-list.c (print_group): Remove explicit error tests. + * src/groups.c (main): Likewise. + (write_error): Remove function. + +2008-02-13 James Youngman <jay@gnu.org> + + Replace groups.sh with groups.c. + * src/groups.c (main): New file, replacing groups.sh. + * src/group-list.c, src/group-list.h: New files, factored out of id.c, + implementing the functionality that "id" and "groups" have in common. + * src/id.c (print_full_info): Avoid a segfault when trying to print + an error message if getgroups fails. + (print_group_list): Move to group-list.c. + (print_group): Likewise. + * man/Makefile.am: When building groups.1, obtain the help text + from src/groups.c, not src/groups.sh. + (noinst_HEADERS): Add group-list.h. + (group): Remove rule. + (dist_man_MANS): Remove groups.1. + * doc/coreutils.texi (groups: Print group names a user is in): + Explain why "groups" and "groups $(id -un)" give different results + in existing login sessions after you change the group database. + (id: Print user identity): Likewise for "id". + * po/POTFILES.in: Add src/group-list.c and src/groups.c. + * NEWS: mention this. + * AUTHORS: Update. + +2008-02-12 Jim Meyering <meyering@redhat.com> + + Move more test_skip_-using code to follow ". test-lib.sh". + * tests/mv/acl: Likewise. + * tests/cp/acl: Likewise. + +2008-02-12 Peter Fales <psfales@alcatel-lucent.com> + + tests/touch/not-owner: Source test-lib.sh before using skip_test_. + +2008-02-11 Jim Meyering <meyering@redhat.com> + + * tests/Makefile.am (EXTRA_DIST): Remove strace. + + tests: Migrate sourced strace file into a function, require_strace_. + * tests/strace: Remove file. + * tests/test-lib.sh (require_strace_): New function. + * tests/mv/atomic: Use require_strace_, rather than ". strace". + * tests/ls/stat-free-symlinks: Likewise. + Peter Fales reported that stat-free-symlinks failed without strace. + + * tests/rm/inaccessible: Source test-lib.sh *before* using skip_test_. + Reported by Peter Fales. + +2008-02-10 Jim Meyering <meyering@redhat.com> + + Ensure there are no removable (useless) if-before-free tests. + * bootstrap.conf (gnulib_modules): Add useless-if-before-free. + * Makefile.maint (sc_avoid_if_before_free): New rule. + + Use a better dirname emulation. + * build-aux/check.mk (_dirname): Define. + (am__check_pre): Use it. + + Avoid test failure when run with risky PATH ("." before /usr/bin). + * build-aux/check.mk (approx_dirname_filter): Define. + (am__check_pre): Emulate dirname using sed. + Report and suggested fix from Bruno Haible in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12587/focus=12590 + + * build-aux/.gitignore: Remove file from version control. It's generated. + + Generate ChangeLog from git log. + * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. + Ensure that ChangeLog exists, for automake. + * Makefile.am (gen-ChangeLog): New rule. + (dist-hook): Depend on it. + (EXTRA_DIST): Add ChangeLog-2006, ChangeLog-2007, ChangeLog-2008. + + Remove ChangeLog, dividing its content into ChangeLog-200? + * ChangeLog: Remove file. + * ChangeLog-2005: Prepend the 2005 entries. + * ChangeLog-2006: New file. + * ChangeLog-2007: New file. + * ChangeLog-2008: New file. + + * ChangeLog: Manually update copyright notice at *bottom*. +2008-02-09 Jim Meyering <meyering@redhat.com> - ----- + tests: rm/fail-eperm: require-non-root in perl, not sh + Since it creates no temporaries and since it requires non-root, + do the require-non-root bit in perl, rather than using test-lib.sh. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + tests: Remove priv-check. Use new require_root_ function instead. + * tests/priv-check: Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove priv-check. + * tests/test-lib.sh (require_root_): New function. + Use this function rather than sourcing the priv-check file. + * tests/sample-test: Use require_root_ rather than priv-check. + * tests/chown/basic: Likewise. + * tests/cp/cp-a-selinux: Likewise. + * tests/cp/preserve-gid: Likewise. + * tests/cp/special-bits: Likewise. + * tests/ls/nameless-uid: Likewise. + * tests/misc/chcon: Likewise. + * tests/mkdir/writable-under-readonly: Likewise. + * tests/mv/sticky-to-xpart: Likewise. + * tests/rm/fail-2eperm: Likewise. + * tests/rm/no-give-up: Likewise. + * tests/rm/one-file-system: Likewise. + * tests/tail-2/append-only: Likewise. + * tests/touch/now-owned-by-other: Likewise. + * tests/rm/fail-eperm: Use skip_if_root_ rather than priv-check. + * Makefile.maint (sc_root_tests): Reflect this change: + search for the new function name. + +2008-02-09 Jim Meyering <meyering@redhat.com> + + tests: factor out the perl-requiring code in many test scripts + * tests/require-perl: New file. + * tests/Makefile.am (EXTRA_DIST): Add require-perl. + * tests/dd/skip-seek: Use it, and remove manual tests. + * tests/du/files0-from: Likewise. + * tests/ls/nameless-uid: Likewise. + * tests/misc/base64: Likewise. + * tests/misc/basename: Likewise. + * tests/misc/cut: Likewise. + * tests/misc/date: Likewise. + * tests/misc/dircolors: Likewise. + * tests/misc/dirname: Likewise. + * tests/misc/expand: Likewise. + * tests/misc/expr: Likewise. + * tests/misc/factor: Likewise. + * tests/misc/fmt: Likewise. + * tests/misc/fold: Likewise. + * tests/misc/head-elide-tail: Likewise. + * tests/misc/ls-misc: Likewise. + * tests/misc/md5sum: Likewise. + * tests/misc/md5sum-newline: Likewise. + * tests/misc/mktemp: Likewise. + * tests/misc/od: Likewise. + * tests/misc/paste-no-nl: Likewise. + * tests/misc/pr: Likewise. + * tests/misc/pwd-long: Likewise. + * tests/misc/seq: Likewise. + * tests/misc/sha1sum: Likewise. + * tests/misc/sha1sum-vec: Likewise. + * tests/misc/sha224sum: Likewise. + * tests/misc/sha256sum: Likewise. + * tests/misc/sha384sum: Likewise. + * tests/misc/sha512sum: Likewise. + * tests/misc/sort-merge: Likewise. + * tests/misc/stat-printf: Likewise. + * tests/misc/sum: Likewise. + * tests/misc/sum-sysv: Likewise. + * tests/misc/test-diag: Likewise. + * tests/misc/tsort: Likewise. + * tests/misc/tty-eof: Likewise. + * tests/misc/unexpand: Likewise. + * tests/misc/wc-files0-from: Likewise. + * tests/misc/xstrtol: Likewise. + * tests/mv/i-1: Likewise. + * tests/rm/empty-name: Likewise. + * tests/rm/fail-eperm: Likewise. + * tests/rm/unreadable: Likewise. + + (EXTRA_DIST): *do* require require-perl as a stand-alone, 'source'able script. + +2008-02-09 Jim Meyering <meyering@redhat.com> + + tests: call skip_test_ in place of echo+exit 77 + * tests/mv/no-target-dir: Likewise. + * tests/other-fs-tmpdir: Likewise. + * tests/rm/empty-name: Likewise. + * tests/rm/fail-eperm: Likewise. + * tests/rm/inaccessible: Likewise. + * tests/rm/isatty: Likewise. + * tests/rm/unreadable: Likewise. + * tests/setgid-check: Likewise. + * tests/sparse-file: Likewise. + * tests/strace: Likewise. + * tests/tail-2/append-only: Likewise. + * tests/tail-2/big-4gb: Likewise. + * tests/tail-2/tail-n0f: Likewise. + * tests/touch/dangling-symlink: Likewise. + * tests/touch/fifo: Likewise. + * tests/touch/not-owner: Likewise. + * tests/mv/i-3: Likewise. + * tests/umask-check: Likewise. + * tests/mv/acl: Likewise. + * tests/cp/acl: Likewise. + * tests/chgrp/deref: Likewise. + * tests/chmod/setgid: Likewise. + * tests/cp/existing-perm-race: Likewise. + * tests/cp/file-perm-race: Likewise. + * tests/cp/parent-perm-race: Likewise. + * tests/du/2g: Likewise. + * tests/du/8gb: Likewise. + * tests/du/long-from-unreadable: Likewise. + * tests/du/long-sloop: Likewise. + * tests/du/slink: Likewise. + * tests/ls/nameless-uid: Likewise. + * tests/ls/stat-dtype: Likewise. + * tests/misc/cat-proc: Likewise. + * tests/misc/md5sum-newline: Likewise. + * tests/misc/nice: Likewise. + * tests/misc/od-x8: Likewise. + * tests/misc/pwd-unreadable-parent: Likewise. + * tests/misc/selinux: Likewise. + * tests/misc/stty-row-col: Likewise. + * tests/misc/tac-continue: Likewise. + * tests/misc/arch: Likewise, and source $srcdir/../test-lib.sh *before* + the use of skip_test_. + + tests: move the very-expensive file into test-lib.sh + * tests/very-expensive: Remove file. + * tests/test-lib.sh (very_expensive_): New function. + * tests/Makefile.am (EXTRA_DIST): Remove very-expensive. + * tests/cp/perm: Call the new function, rather than sourcing the file. + * tests/tail-2/assert: Likewise. + * tests/tail-2/assert-2: Likewise. + * tests/du/2g: Likewise. + + tests: start migrating sourced-file function-like tests into test-lib.sh. + * tests/acl: Remove file. + * tests/test-lib.sh (require_acl_): New function. + * tests/cp/acl: Use require_acl_ instead. + * tests/mv/acl: Likewise. + * tests/Makefile.am (EXTRA_DIST): Remove acl. - Copying and distribution of this file, with or without - modification, are permitted provided the copyright notice - and this notice are preserved. + tests: mv/acl: Don't mention "yes" as a partition name in diagnostic. |