[ANNOUNCEMENT] Test: coreutils 9.0 (TEST)

Cygwin coreutils Co-Maintainer Brian.Inglis@SystematicSW.ab.ca
Mon Jul 18 03:38:38 GMT 2022


The following test package has been uploaded to the Cygwin distribution:

* coreutils	9.0

GNU core utilities (includes fileutils, shellutils and textutils)

Common core utilities include: [ arch b2sum base32 base64
basename cat chcon chgrp chmod chown chroot cksum comm cp csplit cut date
dd df dir dircolors dirname du echo env expand expr factor false fmt fold
gkill groups head hostid id install join link ln logname ls md5sum mkdir
mkfifo mknod mktemp mv nice nl nohup nproc numfmt od paste pathchk pinky
pr printenv printf ptx pwd readlink realpath rm rmdir runcon seq sha1sum
sha224sum sha256sum sha384sum sha512sum shred shuf sleep sort split stat
stdbuf stty sum sync tac tail tee test timeout touch tr true truncate
tsort tty uname unexpand uniq unlink users vdir wc who whoami yes

Please test these Base category utilities as extensively as possible
(especially if you are a Cygwin package maintainer) as this package is
used in all installations and the latest test release had issues.
I have it locally installed so it is used by commands, scripts,
cron jobs, and cygport builds, so it has and is getting frequent
exercise with no apparent issues so far.
If no issues are reported within a couple of weeks the package will be
upgraded to current.

For more information, see the project home pages:

	https://www.gnu.org/software/coreutils
	https://savannah.gnu.org/projects/coreutils

In case of doubts about changes, it may be useful to check the FAQ or Gotchas:

	https://www.gnu.org/software/coreutils/faq/coreutils-faq.html
	https://www.pixelbeat.org/docs/coreutils-gotchas.html

For changes since the previous Cygwin release, see below or read
/usr/share/doc/coreutils/NEWS after installation; for complete details see:

	https://github.com/coreutils/coreutils/blob/v9.0/NEWS
        https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=log;h=refs/tags/v9.0
        /usr/share/doc/coreutils/ChangeLog


Noteworthy changes in release 9.0 (2021-09-24)

Bug fixes

* chmod -v no longer misreports modes of dangling symlinks.
  [bug introduced in coreutils-5.3.0]

* cp -a --attributes-only now never removes destination files,
  even if the destination files are hardlinked, or the source
  is a non regular file.
  [bug introduced in coreutils-8.6]

* csplit --suppress-matched now elides the last matched line
  when a specific number of pattern matches are performed.
  [bug introduced with the --suppress-matched feature in coreutils-8.22]

* df no longer outputs duplicate remote mounts in the presence of bind mounts.
  [bug introduced in coreutils-8.26]

* df no longer mishandles command-line args that it pre-mounts
  [bug introduced in coreutils-8.29]

* du no longer crashes on XFS file systems when the directory hierarchy is
  heavily changed during the run.
  [bug introduced in coreutils-8.25]

* env -S no longer crashes when given unusual whitespace characters
  [bug introduced in coreutils-8.30]

* expr no longer mishandles unmatched \(...\) in regular expressions.
  [bug introduced in coreutils-6.0]

* ls no longer crashes when printing the SELinux context for unstatable files.
  [bug introduced in coreutils-6.9.91]

* mkdir -m no longer mishandles modes more generous than the umask.
  [bug introduced in coreutils-8.22]

* nl now handles single character --section-delimiter arguments,
  by assuming a second ':' character has been specified, as specified by POSIX.
  [This bug was present in "the beginning".]

* pr again adjusts tabs in input, to maintain alignment in multi column output.
  [bug introduced in coreutils-6.9]

* rm no longer skips an extra file when the removal of an empty directory fails.
  [bug introduced by the rewrite to use fts in coreutils-8.0]

* split --number=K/N will again correctly split chunk K of N to stdout.
  Previously a chunk starting after 128KiB, output the wrong part of the file.
  [bug introduced in coreutils-8.26]

* tail -f no longer overruns a stack buffer when given too many files
  to follow and ulimit -n exceeds 1024.
  [bug introduced in coreutils-7.5]

* tr no longer crashes when using --complement with certain
  invalid combinations of case character classes.
  [bug introduced in coreutils-8.6]

* basenc --base64 --decode no longer silently discards decoded characters
  on (1024*5) buffer boundaries
  [bug introduced in coreutils-8.31]

Changes in behavior

* cp and install now default to copy-on-write (COW) if available.

* cp, install and mv now use the copy_file_range syscall if available.
  Also, they use lseek+SEEK_HOLE rather than ioctl+FS_IOC_FIEMAP on sparse
  files, as lseek is simpler and more portable.

* On GNU/Linux systems, ls no longer issues an error message on a
  directory merely because it was removed.  This reverts a change
  that was made in release 8.32.

* ptx -T no longer attempts to substitute old-fashioned TeX escapes
  for 8-bit non-ASCII alphabetic characters.  TeX indexes should
  instead use '\usepackage[latin1]{inputenc}' or equivalent.

* stat will use decomposed (major,minor) device numbers in its default format.
  This is less ambiguous, and more consistent with ls.

* sum [-r] will output a file name, even if only a single name is passed.
  This is consistent with sum -s, cksum, and other sum(1) implementations.

New Features

* cksum now supports the -a (--algorithm) option to select any
  of the existing sum, md5sum, b2sum, sha*sum implementations etc.
  cksum now subsumes all of these programs, and coreutils
  will introduce no future standalone checksum utility.

* cksum -a now supports the 'sm3' argument, to use the SM3 digest algorithm.

* cksum --check now supports auto detecting the digest type to use,
  when verifying tagged format checksums.

* expr and factor now support bignums on all platforms.

* ls --classify now supports the "always", "auto", or "never" flags,
  to support only outputting classifier characters if connected to a tty.

* ls now accepts the --sort=width option, to sort by file name width.
  This is useful to more compactly organize the default vertical column output.

* ls now accepts the --zero option, to terminate each output line with
  NUL instead of newline.

* nl --line-increment can now take a negative number to decrement the count.

* stat supports more formats for representing decomposed device numbers.
  %Hd,%Ld and %Hr,%Lr will output major,minor device numbers and device types
  respectively.  %d corresponds to st_dev and %r to std_rdev.

Improvements

* cat --show-ends will now show \r\n as ^M$.  Previously the \r was taken
  literally, thus overwriting the first character in the line with '$'.

* cksum [-a crc] is now up to 4 times faster by using a slice by 8 algorithm,
  and at least 8 times faster where pclmul instructions are supported.
  A new --debug option will indicate if pclmul is being used.

* md5sum --check now supports checksum files with CRLF line endings.
  This also applies to cksum, sha*sum, and b2sum.

* df now recognizes these file systems as remote:
  acfs, coda, fhgfs, gpfs, ibrix, ocfs2, and vxfs.

* rmdir now clarifies the error if a symlink_to_dir/ has not been traversed.
  This is the case on GNU/Linux systems, where the trailing slash is ignored.

* stat and tail now know about the "devmem", "exfat", "secretmem", "vboxsf",
  and "zonefs" file system types.  stat -f -c%T now reports the file system
  type, and tail -f uses polling for "vboxsf" and inotify for the others.

* timeout now supports sub-second timeouts on macOS.

* wc is up to 5 times faster when counting only new line characters,
  where avx2 instructions are supported.
  A new --debug option will indicate if avx2 is being used.



More information about the Cygwin mailing list