[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[M4-announce] m4-1.4.20 released [stable]
From: |
Eric Blake |
Subject: |
[M4-announce] m4-1.4.20 released [stable] |
Date: |
Sat, 10 May 2025 13:03:08 -0500 |
User-agent: |
NeoMutt/20250404 |
This is to announce m4-1.4.20, a stable release.
This release collects several years of portability improvements, as
well as a couple of minor optimizations to performance. Notable
improvements in this release include faster execution of the 'eval'
builtin.
GNU 'm4' is an implementation of the traditional Unix macro processor.
It is mostly SVR4 compatible, although it has some extensions (for
example, handling more than 9 positional parameters to macros). 'm4'
also has built-in functions for including files, running shell commands,
doing arithmetic, etc. Autoconf needs GNU 'm4' for generating
'configure' scripts, but not for running them.
There have been 69 commits by 4 people in the 206 weeks since 1.4.19.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Bruno Haible (7)
Eric Blake (51)
Paul Eggert (10)
Sam James (1)
Eric
[on behalf of the m4 maintainers]
==================================================================
Here is the GNU m4 home page:
https://gnu.org/s/m4/
Here are the compressed sources:
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.gz (3.4MB)
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.bz2 (2.5MB)
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.xz (2.0MB)
Here are the GPG detached signatures:
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.gz.sig
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.bz2.sig
https://ftpmirror.gnu.org/m4/m4-1.4.20.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA1 and SHA256 checksums:
File: m4-1.4.20.tar.gz
SHA1 sum: 4234ef3811c45d917b12bfb0694c793d548a27d2
SHA256 sum: 6ac4fc31ce440debe63987c2ebbf9d7b6634e67a7c3279257dc7361de8bdb3ef
File: m4-1.4.20.tar.bz2
SHA1 sum: 17b6f32ed5c30b066aafdc61bc2cd577407233aa
SHA256 sum: ac6989ee5d2aed81739780630cc2ce097e2a6546feb96a4a54db37d46a1452e4
File: m4-1.4.20.tar.xz
SHA1 sum: 025df51430845178f926b20a078f994eefaa50fd
SHA256 sum: e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b
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 m4-1.4.20.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa2048/0xA7A16B4A2527436A 2010-04-16 [SC]
Key fingerprint = 71C2 CC22 B1C4 6029 27D2 F3AA A7A1 6B4A 2527 436A
uid [ unknown] Eric Blake <eblake@redhat.com>
uid [ unknown] Eric Blake (Free Software Programmer)
<ebb9@byu.net>
uid [ unknown] [jpeg image of size 6874]
Key fingerprint = 4441 8D9D 02D6 9912 052A 708E D205 1C2F D2E4 726C
pub rsa2048/0xA7A16B4A2527436A 2010-04-16 [SC]
Key fingerprint = 71C2 CC22 B1C4 6029 27D2 F3AA A7A1 6B4A 2527 436A
uid [ unknown] Eric Blake (Free Software Programmer)
<ebb9@byu.net>
uid [ unknown] Eric Blake <eblake@redhat.com>
uid [ unknown] [jpeg image of size 6874]
Key fingerprint = 4441 8D9D 02D6 9912 052A 708E D205 1C2F D2E4 726C
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 eblake@redhat.com
gpg --recv-keys A7A16B4A2527436A
wget -q -O-
'https://savannah.gnu.org/project/release-gpgkeys.php?group=m4&download=1' |
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 m4-1.4.20.tar.gz.sig
This release is based on the m4 git repository, available as
git clone https://git.savannah.gnu.org/git/m4.git
with commit 8103916f2cbf885cae4f6c7c6e6f142f4b8c43f2 tagged as v1.4.20.
For a summary of changes and contributors, see:
https://git.sv.gnu.org/gitweb/?p=m4.git;a=shortlog;h=v1.4.20
or run this command from a git-cloned m4 directory:
git shortlog v1.4.19..v1.4.20
This release was bootstrapped with the following tools:
Autoconf 2.72
Automake 1.17
Gnulib 2025-05-10 9fc42e5f5711e501f80559539a78aed2b7c842ac
NEWS
* Noteworthy changes in release 1.4.20 (2025-05-10) [stable]
** Fix a bug in the `eval' builtin where it does not suppress warnings
about division by zero that occurs within a more complex expression on
the right hand side of || or && (present since short-circuiting was
introduced in 1.4.8b).
** The `syscmd' and `esyscmd' builtins no longer mishandle a command line
starting with `-' or `+' (present since "the beginning").
** Fix regression introduced in 1.4.19 where trace output (such as with
`debugmode(t)') could read invalid memory when tracing a series of
pushed macros that are popped during argument collection.
** Fix regression introduced in 1.4.19 where the `format' builtin
inadvertently took on locale-dependent parsing and output of floating
point numbers as a side-effect of introducing message translations.
While it would be nice for m4 to be fully locale-aware, such a behavior
change belongs in a major version release such as 1.6, and not a minor
release.
** Fix regression introduced in 1.4.11 where the experimental `changeword'
builtin could cause a crash if given a regex that does not match all
one-byte prefixes of valid longer matches. As a reminder, `changeword'
is not recommended for production use, and will likely not be present
in the next major version release.
** On non-Unix platforms where binary files differ from text, loading a
frozen file (which should be cross-platform compatible) now correctly
uses binary mode.
** Several documentation improvements to the manual.
** Update to comply with newer C standards, and inherit portability
improvements from gnulib.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization: qemu.org | libguestfs.org
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [M4-announce] m4-1.4.20 released [stable],
Eric Blake <=