summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog36263
1 files changed, 31777 insertions, 4486 deletions
diff --git a/ChangeLog b/ChangeLog
index 034a6d6..bfa5d7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.