|
|
Subscribe / Log in / New account

coreutils-9.2 released

Version 9.2 of the GNU coreutils collection — the home of common tools like cp, mv, ls, rm, and more — is out. The changes are mostly minor; numerous bugs have been fixed and a few new command-line options have been added.


From:  Pádraig Brady <P-AT-draigBrady.com>
To:  info-gnu-AT-gnu.org
Subject:  coreutils-9.2 released [stable]
Date:  Mon, 20 Mar 2023 16:00:59 +0000
Message-ID:  <fc417334-3a13-8896-d94b-60f035d6f124__31041.5792557009$1679335012$gmane$org@draigBrady.com>
Cc:  coordinator-AT-translationproject.org, coreutils-AT-gnu.org, coreutils-announce-AT-gnu.org

This is to announce coreutils-9.2, a stable release.
See the NEWS below for a summary of changes.

There have been 209 commits by 14 people in the 48 weeks since 9.1.
Thanks to everyone who has contributed!
The following people contributed changes to this release:

   Arsen Arsenović (1)     Jim Meyering (7)
   Bernhard Voelker (3)    Paul Eggert (90)
   Bruno Haible (1)        Pierre Marsais (1)
   Carl Edquist (2)        Pádraig Brady (98)
   ChuanGang Jiang (2)     Rasmus Villemoes (1)
   Dennis Williamson (1)   Stefan Kangas (1)
   Ivan Radić (1)          Álvar Ibeas (1)


Pádraig [on behalf of the coreutils maintainers]

==================================================================

Here is the GNU coreutils home page:
     http://gnu.org/s/coreutils/

For a summary of changes and contributors, see:
     http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;...
or run this command from a git-cloned coreutils directory:
     git shortlog v9.1..v9.2

To summarize the 665 gnulib-related changes, run these commands
from a git-cloned coreutils directory:
      git checkout v9.2
      git submodule summary v9.1

==================================================================

Here are the compressed sources:
   https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.gz   (14MB)
   https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.xz   (5.6MB)

Here are the GPG detached signatures:
   https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.gz.sig
   https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.xz.sig

Use a mirror for higher download bandwidth:
   https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

   6afa9ce3729afc82965a33d02ad585d1571cdeef  coreutils-9.2.tar.gz
   ebWNqhmcY84g95GRF3NLISOUnJLReVZPkI4yiQFZzUg=  coreutils-9.2.tar.gz
   3769071b357890dc36d820c597c1c626a1073fcb  coreutils-9.2.tar.xz
   aIX/R7nNshHeR9NowXhT9Abar5ixSKrs3xDeKcwEsLM=  coreutils-9.2.tar.xz

Verify the base64 SHA256 checksum with cksum -a sha256 --check
from coreutils-9.2 or OpenBSD's cksum since 2007.

Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

   gpg --verify coreutils-9.2.tar.xz.sig

The signature should match the fingerprint of the following key:

   pub   rsa4096 2011-09-23 [SC]
         6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9
   uid           [ unknown] Pádraig Brady <P@draigBrady.com>
   uid           [ unknown] Pádraig Brady <pixelbeat@gnu.org>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

   gpg --locate-external-key P@draigBrady.com

   gpg --recv-keys DF6FD971306037D9

   wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?grou...' |
gpg --import -

As a last resort to find the key, you can try the official GNU
keyring:

   wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
   gpg --keyring gnu-keyring.gpg --verify coreutils-9.2.tar.gz.sig

This release was bootstrapped with the following tools:
   Autoconf 2.71
   Automake 1.16.5
   Gnulib v0.1-5857-gf17d397771
   Bison 3.8.2

==================================================================

NEWS

* Noteworthy changes in release 9.2 (2023-03-20) [stable]

** Bug fixes

   'comm --output-delimiter="" --total' now delimits columns in the total
   line with the NUL character, consistent with NUL column delimiters in
   the rest of the output.  Previously no delimiters were used for the
   total line in this case.
   [bug introduced with the --total option in coreutils-8.26]

   'cp -p' no longer has a security hole when cloning into a dangling
   symbolic link on macOS 10.12 and later.
   [bug introduced in coreutils-9.1]

   'cp -rx / /mnt' no longer complains "cannot create directory /mnt/".
   [bug introduced in coreutils-9.1]

   cp, mv, and install avoid allocating too much memory, and possibly
   triggering "memory exhausted" failures, on file systems like ZFS,
   which can return varied file system I/O block size values for files.
   [bug introduced in coreutils-6.0]

   cp, mv, and install now immediately acknowledge transient errors
   when creating copy-on-write or cloned reflink files, on supporting
   file systems like XFS, BTRFS, APFS, etc.
   Previously they would have tried again with other copy methods
   which may have resulted in data corruption.
   [bug introduced in coreutils-7.5 and enabled by default in coreutils-9.0]

   cp, mv, and install now handle ENOENT failures across CIFS file systems,
   falling back from copy_file_range to a better supported standard copy.
   [issue introduced in coreutils-9.0]

   'mv --backup=simple f d/' no longer mistakenly backs up d/f to f~.
   [bug introduced in coreutils-9.1]

   rm now fails gracefully when memory is exhausted.
   Previously it may have aborted with a failed assertion in some cases.
   [This bug was present in "the beginning".]

   rm -d (--dir) now properly handles unreadable empty directories.
   E.g., before, this would fail to remove d: mkdir -m0 d; src/rm -d d
   [bug introduced in v8.19 with the addition of this option]

   runcon --compute no longer looks up the specified command in the $PATH
   so that there is no mismatch between the inspected and executed file.
   [bug introduced when runcon was introduced in coreutils-6.9.90]

   'sort -g' no longer infloops when given multiple NaNs on platforms
   like x86_64 where 'long double' has padding bits in memory.
   Although the fix alters sort -g's NaN ordering, that ordering has
   long been documented to be platform-dependent.
   [bug introduced 1999-05-02 and only partly fixed in coreutils-8.14]

   stty ispeed and ospeed options no longer accept and silently ignore
   invalid speed arguments, or give false warnings for valid speeds.
   Now they're validated against both the general accepted set,
   and the system supported set of valid speeds.
   [This bug was present in "the beginning".]

   stty now wraps output appropriately for the terminal width.
   Previously it may have output 1 character too wide for certain widths.
   [bug introduced in coreutils-5.3]

   tail --follow=name works again with non seekable files.  Previously it
   exited with an "Illegal seek" error when such a file was replaced.
   [bug introduced in fileutils-4.1.6]

   'wc -c' will again efficiently determine the size of large files
   on all systems.  It no longer redundantly reads data from certain
   sized files larger than SIZE_MAX.
   [bug introduced in coreutils-8.24]

** Changes in behavior

   Programs now support the new Ronna (R), and Quetta (Q) SI prefixes,
   corresponding to 10^27 and 10^30 respectively,
   along with their binary counterparts Ri (2^90) and Qi (2^100).
   In some cases (e.g., 'sort -h') these new prefixes simply work;
   in others, where they exceed integer width limits, they now elicit
   the same integer overflow diagnostics as other large prefixes.

   'cp --reflink=always A B' no longer leaves behind a newly created
   empty file B merely because copy-on-write clones are not supported.

   'cp -n' and 'mv -n' now exit with nonzero status if they skip their
   action because the destination exists, and likewise for 'cp -i',
   'ln -i', and 'mv -i' when the user declines.  (POSIX specifies this
   for 'cp -i' and 'mv -i'.)

   cp, mv, and install again read in multiples of the reported block size,
   to support unusual devices that may have this constraint.
   [behavior inadvertently changed in coreutils-7.2]

   du --apparent now counts apparent sizes only of regular files and
   symbolic links.  POSIX does not specify the meaning of apparent
   sizes (i.e., st_size) for other file types, and counting those sizes
   could cause confusing and unwanted size mismatches.

   'ls -v' and 'sort -V' go back to sorting ".0" before ".A",
   reverting to the behavior in coreutils-9.0 and earlier.
   This behavior is now documented.

   ls --color now matches a file extension case sensitively
   if there are different sequences defined for separate cases.

   printf unicode \uNNNN, \UNNNNNNNN syntax, now supports all valid
   unicode code points.  Previously is was restricted to the C
   universal character subset, which restricted most points <= 0x9F.

   runcon now exits with status 125 for internal errors.  Previously upon
   internal errors it would exit with status 1, which was less distinguishable
   from errors from the invoked command.

   'split -n N' now splits more evenly when the input size is not a
   multiple of N, by creating N output files whose sizes differ by at
   most 1 byte.  Formerly, it did this only when the input size was
   less than N.

   'stat -c %s' now prints sizes as unsigned, consistent with 'ls'.

** New Features

   cksum now accepts the --base64 (-b) option to print base64-encoded
   checksums.  It also accepts/checks such checksums.

   cksum now accepts the --raw option to output a raw binary checksum.
   No file name or other information is output in this mode.

   cp, mv, and install now accept the --debug option to
   print details on how a file is being copied.

   factor now accepts the --exponents (-h) option to print factors
   in the form p^e, rather than repeating the prime p, e times.

   ls now supports the --time=modification option, to explicitly
   select the default mtime timestamp for display and sorting.

   mv now supports the --no-copy option, which causes it to fail when
   asked to move a file to a different file system.

   split now accepts options like '-n SIZE' that exceed machine integer
   range, when they can be implemented as if they were infinity.

   split -n now accepts piped input even when not in round-robin mode,
   by first copying input to a temporary file to determine its size.

   wc now accepts the --total={auto,never,always,only} option
   to give explicit control over when the total is output.

** Improvements

   cp --sparse=auto (the default), mv, and install,
   will use the copy_file_range syscall now also with sparse files.
   This may be more efficient, by avoiding user space copies,
   and possibly employing copy offloading or reflinking,
   for the non sparse portion of such sparse files.

   On macOS, cp creates a copy-on-write clone in more cases.
   Previously cp would only do this when preserving mode and timestamps.

   date --debug now diagnoses if multiple --date or --set options are
   specified, as only the last specified is significant in that case.

   rm outputs more accurate diagnostics in the presence of errors
   when removing directories.  For example EIO will be faithfully
   diagnosed, rather than being conflated with ENOTEMPTY.

   tail --follow=name now works with single non regular files even
   when their modification time doesn't change when new data is available.
   Previously tail would not show any new data in this case.

   tee -p detects when all remaining outputs have become broken pipes, and
   exits, rather than waiting for more input to induce an exit when written.

   tee now handles non blocking outputs, which can be seen for example with
   telnet or mpirun piping through tee to a terminal.
   Previously tee could truncate data written to such an output and fail,
   and also potentially output a "Resource temporarily unavailable" error.

-
Also posted at https://savannah.gnu.org/forum/forum.php?forum_id=10367


to post comments


Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds