* Noteworthy changes in release ?.? (????-??-??) [?]
+** New features
+
+ df now accepts the --output[=FIELD_LIST] option to define the list of columns
+ to include in the output, or all available columns if the FIELD_LIST is
+ omitted. Note this enables df to output both block and inode fields together.
+
+** Bug fixes
+
+ cp --no-preserve=mode now no longer exits non-zero.
+ [bug introduced in coreutils-8.20]
+
+ cut with a range like "N-" no longer allocates N/8 bytes. That buffer
+ would never be used, and allocation failure could cause cut to fail.
+ [bug introduced in coreutils-8.10]
+
+ cut no longer accepts the invalid range 0-, which made it print empty lines.
+ Instead, cut now fails and emits an appropriate diagnostic.
+ [This bug was present in "the beginning".]
+
+ cut now handles overlapping to-EOL ranges properly. Before, it would
+ interpret "-b2-,3-" like "-b3-". Now it's treated like "-b2-".
+ [This bug was present in "the beginning".]
+
+ cut no longer prints extraneous delimiters when a to-EOL range subsumes
+ another range. Before, "echo 123|cut --output-delim=: -b2-,3" would print
+ "2:3". Now it prints "23". [bug introduced in 5.3.0]
+
+ factor no longer loops infinitely on 32 bit powerpc systems.
+ [bug introduced in coreutils-8.20]
+
+ install -m M SOURCE DEST no longer has a race condition where DEST's
+ permissions are temporarily derived from SOURCE instead of from M.
+
+ pr -n no longer crashes when passed values >= 32. Also line numbers are
+ consistently padded with spaces, rather than with zeros for certain widths.
+ [bug introduced in TEXTUTILS-1_22i]
+
+ seq -w ensures that for numbers input in scientific notation,
+ the output numbers are properly aligned and of the correct width.
+ [This bug was present in "the beginning".]
+
+** Changes in behavior
+
+ df --total now prints '-' into the target column (mount point) of the
+ summary line, accommodating to the --output option where the target
+ field can be in any column. If there is no source column, then df
+ prints 'total' into the target column.
+
+ df now properly outputs file system information with bind mounts present on
+ the system by skipping duplicate entries (identified by the device number).
+
+ df now skips the early-boot pseudo file system type "rootfs" unless either
+ the -a option or "-t rootfs" is specified.
+
+ nl no longer supports the --page-increment option which was deprecated
+ since coreutils-7.5. Use --line-increment instead.
+
+** Improvements
+
+ stat and tail now know about CEPH. stat -f --format=%T now reports the file
+ system type, and tail -f uses polling for files on CEPH file systems.
+
+
+** Build-related
+
+ Perl is now more of a prerequisite. It has long been required in order
+ to run (not skip) a significant percentage of the tests. Now, it is
+ also required in order to generate proper man pages, via help2man. The
+ generated man/*.1 man pages are no longer distributed. Building without
+ perl, you would create stub man pages. Thus, while perl is not an
+ official prerequisite (build and "make check" will still succeed), any
+ resulting man pages would be inferior. In addition, this fixes a bug
+ in distributed (not from clone) Makefile.in that could cause parallel
+ build failure when building from modified sources, as is common practice
+ for a patched distribution package.
+
+ The check in the root-only tests to test whether our dummy user,
+ $NON_ROOT_USERNAME, is able to run binaries from the build directory
+ failed. As a result, these tests have been skipped unnecessarily.
+ [bug introduced in coreutils-8.20]
+
+
+* Noteworthy changes in release 8.20 (2012-10-23) [stable]
+
+** New features
+
+ dd now accepts 'status=none' to suppress all informational output.
+
+ md5sum now accepts the --tag option to print BSD-style output with GNU
+ file name escaping. This also affects sha1sum, sha224sum, sha256sum,
+ sha384sum and sha512sum.
+
+** Bug fixes
+
+ cp could read from freed memory and could even make corrupt copies.
+ This could happen with a very fragmented and sparse input file,
+ on GNU/Linux file systems supporting fiemap extent scanning.
+ This bug also affects mv when it resorts to copying, and install.
+ [bug introduced in coreutils-8.11]
+
+ cp --no-preserve=mode now no longer preserves the original file's
+ permissions but correctly sets mode specified by 0666 & ~umask
+
+ du no longer emits a "disk-corrupted"-style diagnostic when it detects
+ a directory cycle that is due to a bind-mounted directory. Instead,
+ it detects this precise type of cycle, diagnoses it as such and
+ eventually exits nonzero.
+
+ factor (when using gmp) would mistakenly declare some composite numbers
+ to be prime, e.g., 465658903, 2242724851, 6635692801 and many more.
+ The fix makes factor somewhat slower (~25%) for ranges of consecutive
+ numbers, and up to 8 times slower for some worst-case individual numbers.
+ [bug introduced in coreutils-7.0, with GNU MP support]
+
+ ls now correctly colors dangling symlinks when listing their containing
+ directories, with orphaned symlink coloring disabled in LS_COLORS.
+ [bug introduced in coreutils-8.14]
+
+ rm -i -d now prompts the user then removes an empty directory, rather
+ than ignoring the -d option and failing with an 'Is a directory' error.
+ [bug introduced in coreutils-8.19, with the addition of --dir (-d)]
+
+ rm -r S/ (where S is a symlink-to-directory) no longer gives the invalid
+ "Too many levels of symbolic links" diagnostic.
+ [bug introduced in coreutils-8.6]
+
+ seq now handles arbitrarily long non-negative whole numbers when the
+ increment is 1 and when no format-changing option is specified.
+ Before, this would infloop:
+ b=100000000000000000000; seq $b $b
+ [the bug dates back to the initial implementation]
+
+** Changes in behavior
+
+ nproc now diagnoses with an error, non option command line parameters.
+
+** Improvements
+
+ factor's core has been rewritten for speed and increased range.
+ It can now factor numbers up to 2^128, even without GMP support.
+ Its speed is from a few times better (for small numbers) to over
+ 10,000 times better (just below 2^64). The new code also runs a
+ deterministic primality test for each prime factor, not just a
+ probabilistic test.
+
+ seq is now up to 70 times faster than it was in coreutils-8.19 and prior,
+ but only with non-negative whole numbers, an increment of 1, and no
+ format-changing options.
+
+ stat and tail know about ZFS, VZFS and VMHGFS. stat -f --format=%T now
+ reports the file system type, and tail -f now uses inotify for files on
+ ZFS and VZFS file systems, rather than the default (for unknown file
+ system types) of issuing a warning and reverting to polling. tail -f
+ still uses polling for files on VMHGFS file systems.
+
+** Build-related
+
+ root-only tests now check for permissions of our dummy user,
+ $NON_ROOT_USERNAME, before trying to run binaries from the build directory.
+ Before, we would get hard-to-diagnose reports of failing root-only tests.
+ Now, those tests are skipped with a useful diagnostic when the root tests
+ are run without following the instructions in README.
+
+ We now build most directories using non-recursive make rules. I.e.,
+ rather than running make in man/, lib/, src/, tests/, instead, the top
+ level Makefile.am includes a $dir/local.mk that describes how to build
+ the targets in the corresponding directory. Two directories remain
+ unconverted: po/, gnulib-tests/. One nice side-effect is that the more
+ accurate dependencies have eliminated a nagging occasional failure that
+ was seen when running parallel "make syntax-check".
+
+
+* Noteworthy changes in release 8.19 (2012-08-20) [stable]
+
+** Bug fixes
+
+ df now fails when the list of mounted file systems (/etc/mtab) cannot
+ be read, yet the file system type information is needed to process
+ certain options like -a, -l, -t and -x.
+ [This bug was present in "the beginning".]
+
+ sort -u could fail to output one or more result lines.
+ For example, this command would fail to print "1":
+ (yes 7 | head -11; echo 1) | sort --p=1 -S32b -u
+ [bug introduced in coreutils-8.6]
+
+ sort -u could read freed memory.
+ For example, this evokes a read from freed memory:
+ perl -le 'print "a\n"."0"x900'|valgrind sort --p=1 -S32b -u>/dev/null
+ [bug introduced in coreutils-8.6]
+
+** New features
+
+ rm now accepts the --dir (-d) option which makes it remove empty directories.
+ Since removing empty directories is relatively safe, this option can be
+ used as a part of the alias rm='rm --dir'. This improves compatibility
+ with Mac OS X and BSD systems which also honor the -d option.
+
+
+* Noteworthy changes in release 8.18 (2012-08-12) [stable]
+
+** Bug fixes
+
+ cksum now prints checksums atomically so that concurrent
+ processes will not intersperse their output.
+ [the bug dates back to the initial implementation]
+
+ 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'
+ [This bug was present in "the beginning".]
+
+ df no longer outputs control characters present in the mount point name.
+ Such characters are replaced with '?', so for example, scripts consuming
+ lines output by df, can work reliably.
+ [This bug was present in "the beginning".]
+
+ df --total now exits with an appropriate diagnostic and error code, when
+ file system --type options do not lead to a processed file system.
+ [This bug dates back to when --total was added in coreutils-7.0]
+
+ head --lines=-N (-n-N) now resets the read pointer of a seekable input file.
+ This means that "head -n-3" no longer consumes all of its input, and lines
+ not output by head may be processed by other programs. For example, this
+ command now prints the final line, 2, while before it would print nothing:
+ seq 2 > k; (head -n-1 > /dev/null; cat) < k
+ [This bug was present in "the beginning".]
+
+ ls --color would mis-color relative-named symlinks in /
+ [bug introduced in coreutils-8.17]
+
+ split now ensures it doesn't overwrite the input file with generated output.
+ [the bug dates back to the initial implementation]
+
+ stat and df now report the correct file system usage,
+ in all situations on GNU/Linux, by correctly determining the block size.
+ [df bug since coreutils-5.0.91, stat bug since the initial implementation]
+
+ tail -f no longer tries to use inotify on AUFS or PanFS file systems
+ [you might say this was introduced in coreutils-7.5, along with inotify
+ support, but even now, its magic number isn't in the usual place.]
+
+** New features
+
+ stat -f recognizes the new remote file system types: aufs, panfs.
+
+** Changes in behavior
+
+ su: this program has been removed. We stopped installing "su" by
+ default with the release of coreutils-6.9.90 on 2007-12-01. Now,
+ that the util-linux package has the union of the Suse and Fedora
+ patches as well as enough support to build on the Hurd, we no longer
+ have any reason to include it here.
+
+** Improvements
+
+ sort avoids redundant processing in the presence of inaccessible inputs,
+ or unwritable output. Sort now diagnoses certain errors at start-up,
+ rather than after potentially expensive processing.
+
+ sort now allocates no more than 75% of physical memory by default,
+ to better share system resources, and thus operate more efficiently.
+ [The default max memory usage changed from 50% to 100% in coreutils-8.16]
+
+
+* Noteworthy changes in release 8.17 (2012-05-10) [stable]
+
+** Bug fixes
+
+ id and groups, when invoked with no user name argument, would print
+ the default group ID listed in the password database, and sometimes
+ that ID would be neither real nor effective. For example, when run
+ set-GID, or in a session for which the default group has just been
+ changed, the new group ID would be listed, even though it is not
+ yet effective. [bug introduced in coreutils-8.1]
+
+ cp S D is no longer subject to a race: if an existing D were removed
+ between the initial stat and subsequent open-without-O_CREATE, cp would
+ fail with a confusing diagnostic saying that the destination, D, was not
+ found. Now, in this unusual case, it retries the open (but with O_CREATE),
+ and hence usually succeeds. With NFS attribute caching, the condition
+ was particularly easy to trigger, since there, the removal of D could
+ precede the initial stat. [This bug was present in "the beginning".]
+
+ split --number=C /dev/null no longer appears to infloop on GNU/Hurd
+ [bug introduced in coreutils-8.8]
+
+ stat no longer reports a negative file size as a huge positive number.
+ [bug present since 'stat' was introduced in fileutils-4.1.9]
+
+** New features
+
+ split and truncate now allow any seekable files in situations where
+ the file size is needed, instead of insisting on regular files.
+
+ fmt now accepts the --goal=WIDTH (-g) option.
+
+ stat -f recognizes new file system types: bdevfs, inodefs, qnx6
+
+** Changes in behavior
+
+ cp,mv,install,cat,split: now read and write a minimum of 64KiB at a time.
+ This was previously 32KiB and increasing to 64KiB was seen to increase
+ throughput by about 10% when reading cached files on 64 bit GNU/Linux.
+
+ cp --attributes-only no longer truncates any existing destination file,
+ allowing for more general copying of attributes from one file to another.
+
* Noteworthy changes in release 8.16 (2012-03-26) [stable]
join --header now skips the ordering check for the first line
even if the other file is empty. [bug introduced in coreutils-8.5]
+ join -v2 now ensures the default output format prints the match field
+ at the start of the line when it is different to the match field for
+ the first file. [bug present in "the beginning".]
+
rm -f no longer fails for EINVAL or EILSEQ on file systems that
reject file names invalid for that file system.
On Solaris 9, many commands would mistakenly treat file/ the same as
file. Now, even on such a system, path resolution obeys the POSIX
- rules that a trailing slash ensures that the preceeding name is a
+ rules that a trailing slash ensures that the preceding name is a
directory or a symlink to a directory.
** Changes in behavior
** Changes in behavior
shred, sort, shuf: now use an internal pseudorandom generator by default.
- This is mainly noticable in shred where the 3 random passes it does by
+ This is mainly noticeable in shred where the 3 random passes it does by
default should proceed at the speed of the disk. Previously /dev/urandom
was used if available, which is relatively slow on GNU/Linux systems.
* Any time style can be preceded by "posix-"; this causes "ls" to
use traditional timestamp format when in the POSIX locale.
* The default time style is now posix-long-iso instead of posix-iso.
- Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
+ Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 through 4.1.9.
* 'rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
* stat: remove support for --secure/-s option and related %S and %C format specs
* stat: rename --link/-l to --dereference/-L.