GNU automake-1.17 released
posted by Roy Schestowitz on Jul 15, 2024
This is to announce GNU Automake 1.17, a stable release.
[Thanks to Karl Berry for doing so much of work, preparing
for this release and even writing most of the following. ]
This release changes AM_PATH_PYTHON to prefer Python 3 to Python 2 (set
PYTHON beforehand to override the searching), among plenty of other
modernizations and fixes. See the NEWS below for a brief summary of
changes.
Apart from the above Python change, forced on us by the Python world,
our hope and intent is that it does not create incompatibilities with
previous releases. Indeed, many of the changes in this release were
made purely to improve portability. But of course bugs are always
possible, so please report problems, e.g., if your build setup worked
with an older Automake but fails with 1.17.
Download here:
https://ftp.gnu.org/gnu/automake/automake-1.17.tar.gz (2.4MB)
https://ftp.gnu.org/gnu/automake/automake-1.17.tar.xz (1.6MB)
Please report bugs and problems to <bug-automake@gnu.org>
(instead of replying to this mail),
and send general comments and feedback to <automake@gnu.org>,
and patches to <automake-patches@gnu.org>.
Thanks to everyone who has reported problems, sent patches, and helped
test Automake! The following people contributed changes to this
release:
Alex Vong (1)
Alexander Neumann (1)
Bogdan (11)
Bruno Haible (7)
Collin Funk (2)
Dave Hart (1)
Dimitri Papadopoulos (2)
Frédéric Bérat (5)
Gianfranco Costamagna (1)
Hans Ulrich Niedermann (1)
Ineiev (1)
Jacob Bachmeyer (4)
Jakub Wilk (1)
Jan Engelhardt (2)
Jim Meyering (10)
Karl Berry (99)
Kelvin M. Klann (1)
Mark Wooding (1)
Mathieu Lirzin (1)
Matthew Leeds (1)
Mike Frysinger (62)
Olly Betts (1)
Paul Eggert (13)
Pavel Raiskup (2)
Reuben Thomas (4)
Richard Hopkins (3)
Vincent Lefevre (1)
Yves Orton (1)
Zack Weinberg (5)
Jim
[on behalf of the automake maintainers]
==================================================================
Here is the GNU automake home page:
https://gnu.org/s/automake/
For a summary of changes and contributors, see:
https://git.sv.gnu.org/gitweb/?p=automake.git;a=shortlog;h=v1.17
or run this command from a git-cloned automake directory:
git shortlog v1.16.5..v1.17
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/automake/automake-1.17.tar.gz.sig
https://ftp.gnu.org/gnu/automake/automake-1.17.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA1 and SHA256 checksums:
07e95bac8fa1b69dae24346cbfcfb3d30a5ee585 automake-1.17.tar.gz
OXdn1NswGN1EQIJbYMZCWLY26va/mayLCJfwbIkxCs0= automake-1.17.tar.gz
626e4e1fe203cddb1d50ca7e6a3a396baa8190b8 automake-1.17.tar.xz
iSDB/EEeE7kL9wTvnbbynVQOdtIyyzssn03EzFmb2ZA= automake-1.17.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 automake-1.17.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa4096/0x7FD9FCCB000BEEEE 2010-06-14 [SCEA]
Key fingerprint = 155D 3FC5 00C8 3448 6D1E EA67 7FD9 FCCB 000B EEEE
uid [ unknown] Jim Meyering <jim@meyering.net>
uid [ unknown] Jim Meyering <@fb.com>
uid [ unknown] Jim Meyering <@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 --recv-keys 0x7FD9FCCB000BEEEE
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 automake-1.17.tar.gz.sig
-*-*-*-
For planned incompatibilities in a possible future Automake 2.0 release,
please see NEWS-2.0 and start following the advice there now.
============================================================================
Noteworthy changes in Automake 1.17:
* New features added
- AM_PATH_PYTHON will, after checking "python", prefer any Python 3
version (latest versions checked first) over any Python 2
version. If a specific version of Python 2 is still needed, the
$PYTHON variable should be set beforehand.
- AM_PATH_PYTHON will also search for Python versions 3.20 through 3.10.
It previously searched for 3.9 through 3.0. (bug#53530)
- RANLIB may be overridden on a per-target basis.
- AM_TEXI2FLAGS may be defined to pass extra flags to TEXI2DVI & TEXI2PDF.
- New option "posix" to emit the special target .POSIX for make.
(bug#55025, bug#67891)
- Systems with non-POSIX "rm -f" behavior are now supported, and the
prior intent to drop support for them has been reversed.
The ACCEPT_INFERIOR_RM_PROGRAM setting no longer exists.
(bug#10828)
- Variables using escaped \# will trigger portability warnings, but be
retained when appended. GNU Make & BSD Makes are known to support it.
(bug#7610)
- GNU Make's default pattern rules are disabled, for speed and debugging.
(.SUFFIXES was already cleared.) (bug#64743)
- For Texinfo documents, if a .texi.in file exists, but no .texi, the
.texi.in will be read. Texinfo source files need not be present at
all, and if present, need not contain @setfilename. Then the file name
as given in the Makefile.am will be used. If @setfilename is present,
it should be the basename of the Texinfo file, extended with .info.
(bug#54063)
- aclocal has a new option --aclocal-path to override $ACLOCAL_PATH.
(https://lists.gnu.org/archive/html/automake-patches/2022-01/msg00029.html)
- The missing script also supports autoreconf, autogen, and perl.
(https://lists.gnu.org/archive/html/automake-patches/2015-08/msg00000.html)
- test-suite.log now contains basic system information, and the
console message about bug reporting on failure has a bit more detail.
(bug#68746, bug#71421)
- When using the (default) "parallel" test driver, you can now omit the
output of skipped tests from test-suite.log by defining the
variable IGNORE_SKIPPED_LOGS to a non-empty value. (bug#71422)
* Bugs fixed
- Generated file timestamp checks handle filesystems with subsecond
timestamp granularity dynamically, greatly speeding up the sleep
done by AC_OUTPUT when generating config.status (all packages) and
Automake's make check.
However, this subsecond-mtime support requires an autom4te from
Autoconf 2.72 or later (or random test failures and other timing
problems may ensue), as well as a Perl, sleep program, make program,
and filesystem that all support subsecond resolution; otherwise, we
fall back to a two-second granularity, not even testing the (common)
1s case since that would induce a 2s delay for all configure scripts
in all packages on all systems that don't support subsecond mtimes.
When everything is supported, a line "Features: subsecond-mtime" is
now printed by automake --version and autom4te --version.
To override this check and delay, e.g. to use 1 second:
am_cv_filesystem_timestamp_resolution=1
export am_cv_filesystem_timestamp_resolution
(commit 720a11531,
https://lists.gnu.org/archive/html/automake-commit/2022-02/msg00009.html
then bug#60808, bug#64756, bug#67670, bug#68808, bug#71652,
history reviewed in
https://lists.gnu.org/archive/html/automake/2024-06/msg00054.html
and more info in surrounding threads.)
- The default value of $ARFLAGS is now "cr" instead of "cru", to better
support deterministic builds. (bug#20082)
- Automake's make dist now uses -9 instead of --best with gzip,
because Alpine gzip does not support --best. Also, GZIP_ENV is used
only for compression, not decompression, because of the same system.
(bug#68151)
- Dependency files are now empty, instead of "# dummy", for speed.
(https://lists.gnu.org/archive/html/automake/2022-05/msg00006.html)
- Compiling Python modules with Python 3.5+ uses multiple optimization
levels. (bug#38043)
- If the Python installation "scheme" is set to posix_local (Debian),
it is reset to either deb_system (if the prefix = /usr), or
posix_prefix (otherwise). (bug#54412, bug#64837)
- As a result of the Python scheme change, the installation directory
for Python files again defaults to "site-packages" under the usual
installation prefix, even on systems (generally Debian-based) that
would normally use the "dist-packages" subdirectory under
/usr/local.
- When compiling Emacs Lisp files, emacs is run with --no-site-file to
disable user config files that might hang or access the terminal;
and -Q is not used, since its support and behavior varies. (bug#58102)
- Emacs Lisp compilations respect silent make output.
- Automake no longer incorrectly warns that the POSIX make variables
$(*D) and the like are non-POSIX. Unfortunately, the make
implementations which do not correctly implement all the POSIX
variables are not detected, but this seems to have little impact
in practice. (bug#9587)
- Pass libtool tags OBJC and OBJCXX for the respective languages.
(bug#67539)
- distcleancheck ignores "silly rename" files (.nfs* .smb* .__afs*)
that can show up on network file systems.
(https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html)
- Pass any options given to AM_PROG_LEX on to AC_PROG_LEX.
(bug#65600, bug#65730)
- aclocal: recognize ; as path separator on OS/2 and Windows. (bug#71534)
- Hash iterations with external effects now consistently sort keys.
(bug#25629, bug#46744)
- tests: avoid some declaration conflicts for lex et al. on SunOS.
(bug#34151 and others)
- tests: declare yyparse before use and use (void) parameter lists
instead of (), to placate C23. (bug#71425)
- Typos in code and other doc fixes. (bug#68003, bug#68004, et al.)
* Obsolescence:
- py-compile no longer supports Python 0.x or 1.x versions. Python 2.0,
released in 2000, is currently the minimum required version.
Read on