[1/2] autoconf: Update to version 2.72

Message ID 20250221124449.1635655-1-adolf.belka@ipfire.org
State New
Headers
Series [1/2] autoconf: Update to version 2.72 |

Commit Message

Adolf Belka Feb. 21, 2025, 12:44 p.m. UTC
  - Update from version 2.71 to 2.72
- Update of rootfile
- The update of collectd from 4.10.9 to 5.12.0 now allows it to build with this newer
   version of autoconf.
- pmacct however failed to build with it. Updated the pmacct lfs to allow it to build
   with this newer version of autoconf. Fix for that is combined in this patch set.
- Changelog
    2.72
     Backward incompatibilities
	Configure scripts no longer support pre-1989 C compilers.
	  Specifically, compilers that *only* implement the original “K&R”
	   function definition syntax, and not the newer “prototyped” syntax,
	   will not be able to parse the test programs now emitted by
	   AC_CHECK_FUNC, AC_LANG_CALL, and similar macros.  AC_PROG_CC still
	   accepts such compilers, but this may change in the near future.
	  This change was necessary in order to support the upcoming 2024
	   edition of the C standard (often referred to as “C23”), which will
	   officially remove the function declaration syntax used by
	   AC_CHECK_FUNC in Autoconf 2.71 and earlier.  We feel that support
	   for compilers that support only C 2024 is more useful, nowadays,
	   than support for compilers that don’t implement a core feature of
	   C 1989.
	Autoconf developers now need Perl 5.10 (2007) or later.
	  “Autoconf developers” means specifically people hacking on Autoconf
	   itself.  Autoconf *users*, i.e. authors of configure.ac files and
	   add-on M4 macros, still need only Perl 5.6 (2000) or later.
	  We do recommend all Autoconf users upgrade to Perl 5.10 or later if
	   possible, as this version significantly improves Perl’s ability to
	   handle files with last-modification timestamps separated by less
	   than a second.  (Note: even in the most recent release, Perl cannot
	   always match the file system’s timestamp resolution.)
	  Generated configure scripts continue to run without Perl.
	Autoconf users now need GNU M4 1.4.8 (2006) or later.
	  Use of GNU M4 1.4.16 or later is recommended, as all earlier versions
	   are known to have had serious bugs in the text-processing builtins
	   on some, but not all, operating systems.  Autoconf’s own configure
	   script will attempt to find a version of M4 that is not affected by
	   these bugs.
	  Note: Autoconf 2.70 and 2.71 include code that malfunctions with
	   M4 1.4.6 or 1.4.7.  However, the only effect of the malfunction is
	   that you will get a confusing error message if you run autoconf on
	   a configure.ac that neglects to use AC_INIT or AC_OUTPUT.
	  Generated 'configure' scripts continue to run without M4.
	Some m4sh diversions have been renumbered.
	   This will only affect macros that use m4_divert with numbered rather
	   than named diversions, which has always been strongly discouraged
	   both by the documentation and with warnings.
	AC_FUNC_GETGROUPS and AC_TYPE_GETGROUPS no longer run test programs.
	  These macros were testing for OS bugs that we believe are at least
	   twenty years in the past.  Most operating systems are now trusted to
	   provide an accurate prototype for getgroups in unistd.h, and to
	   implement it as specified in POSIX.
	  AC_FUNC_GETGROUPS still includes a short block-list of OSes with
	   known, severe bugs in getgroups.  It can be overridden using
	   config.site.  If you encounter a mistake in this list,
	   please report it to bug-autoconf.
	All internal uses of AC_EGREP_CPP and AC_EGREP_HEADER have been removed.
	  These macros look for text matching a regular expression in the
	   output of the C preprocessor.  Their use has been discouraged for
	   many years, as they tend to be unreliable; it is better to find a
	   way to use AC_COMPILE_IFELSE or AC_PREPROC_IFELSE instead.  We have
	   finally taken our own advice.
	  This change might break configure scripts that expected probes for
	   ‘grep’ and/or the C preprocessor to happen as a side effect of an
	   unrelated operation.  Such scripts can be fixed by adding
	   AC_PROG_EGREP and/or AC_PROG_CPP in an appropriate place.
	  The macros affected by this change are AC_C_STRINGIZE,
	   AC_C_VARARRAYS, AC_FUNC_GETGROUPS, AC_FUNC_GETLOADAVG,
	   AC_HEADER_TIOCGWINSZ, AC_PROG_GCC_TRADITIONAL, AC_TYPE_GETGROUPS,
	   AC_TYPE_UID_T, and AC_XENIX_DIR. Many of these macros are themselves
	   obsolete; if your configure script uses any of them, check whether
	   it is actually needed.
     New features
	Support for ensuring time_t is Y2038-safe
	  configure can now ensure that time_t can represent moments in time
	   after 18 January 2038, i.e. 2**31 - 1 seconds after the Unix epoch.
	   On most “64-bit” systems this is true by default; the new feature
	   is detection of systems where time_t is a 32-bit signed integer by
	   default, *and* there is an alternative mode in which it is larger,
	   in which case that mode will be enabled.
	  In this release, all configure scripts that use AC_SYS_LARGEFILE
	   gain a new command line option --enable-year2038.  When this option
	   is used, the configure script will check for and enable support for
	   a large time_t.
	  This release also adds two new macros, AC_SYS_YEAR2038 and
	   AC_SYS_YEAR2038_RECOMMENDED.  Both have all the effects of
	   AC_SYS_LARGEFILE.  (This is because it is not possible to enlarge
	   time_t without also enlarging off_t, on any system we are aware of.)
	  AC_SYS_YEAR2038 additionally flips the default for --enable-year2038;
	   a configure script that uses this macro will check for and enable
	   support for a large time_t by default, but this can be turned off by
	   using --disable-year2038.  AC_SYS_YEAR2038_RECOMMENDED goes even
	   further, and makes the configure script fail on systems that do not
	   seem to support timestamps after 18 January 2038 at all.  This
	   failure can be suppressed by using --disable-year2038.
	  Changing the size of time_t can change a library’s ABI.  Therefore,
	   application and library builders should take care that all packages
	   are configured with consistent use of --enable-year2038 or
	   --disable-year2038, to ensure binary compatibility.  This is similar
	   to longstanding consistency requirements with --enable-largefile and
	   --disable-largefile.
	  In this release, these macros only know how to enlarge time_t on two
	   classes of systems: 32-bit MinGW, and any system where time_t can be
	   enlarged by defining the preprocessor macro _TIME_BITS with the
	   value 64.  At the time this NEWS entry was written, only GNU libc
	   (version 2.34 and later) supported the latter macro.  Authors of
	   other C libraries with a 32-bit time_t are encouraged to adopt
	   _TIME_BITS, rather than inventing a different way to enlarge time_t.
	AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions
	   by defining __STDC_WANT_IEC_60559_EXT__.
     Obsolete features and new warnings
	Autoconf now quotes 'like this' instead of `like this'.
	  Autoconf’s diagnostics now follow current GNU coding standards,
	   which say that diagnostics in the C locale should quote 'like this'
	   with plain apostrophes instead of the older GNU style `like this'
	   with grave accent and apostrophe.
	AC_PROG_GCC_TRADITIONAL no longer does anything.
	  This macro has had no useful effect since GCC dropped support for
	   traditional-mode compilation in version 3.3 (released in 2003), and
	   the systems that needed it are also long obsolete.  It is now a
	   compatibility synonym for AC_PROG_CC.
     Notable bug fixes
	autom4te now uses fine-grained file timestamps
	  Autoconf’s internal “autom4te” utility is now able to compare file
	   modification timestamps with sub-second precision, when available.
	   This eliminates a class of bugs where autom4te fails to regenerate
	   an outdated file.  Automake 1.17 (forthcoming) is required for a
	   complete fix.
	AC_HEADER_STDBOOL, AC_CHECK_HEADER_STDBOOL are obsolescent and less picky.
	  These macros are now obsolescent, as most programs can simply include
	   stdbool.h unconditionally.  If you use these macros, they now accept
	   a stdbool.h that exists but does nothing, so long as ‘bool’, ‘true’,
	   and ‘false’ work anyway.  This is for compatibility with C23 and
	   with C++.
	AC_PROG_MKDIR_P now falls back on plain 'mkdir -p'.
	  When AC_PROG_MKDIR_P cannot find a mkdir implementation that is
	   known to lack race condition bugs, it now falls back on 'mkdir -p'
	   instead of falling back on a relative path to install-sh, as the
	   relative paths now seem to be a more important problem than the
	   problems of ancient mkdir implementations with race condition bugs.
	   See <https://savannah.gnu.org/support/?110740>.  The only ancient
	   mkdir still supported is Solaris 10 /usr/bin/mkdir, and for that
	   platform AC_PROG_MKDIR_P falls back on /opt/sfw/bin/mkdir which
	   should work if it is installed; if not, you should avoid parallel
	   'make' on that platform.
	Better diagnostics for calling m4_warn() with a bad first argument
	  Calling m4_warn with a first argument that doesn’t match any of the
	   official warning categories now produces a sensible error message,
	   instead of something that makes it look like there’s a bug in the
	   guts of autom4te.  Also, the documentation has been adjusted in
	   several places to make it clearer what the official warning
	   categories are.
	  Note: In Autoconf 2.69 and earlier, the manual said that [] and [all]
	   could be used as the first argument to m4_warn.  This was incorrect,
	   even at the time.
	 Improved compatibility with a wide variety of systems and tools
	   including CheriBSD, Darwin (macOS), GNU Guix, OS/2, z/OS, Bash 5.2,
	   the BusyBox shell and utilities, Clang/LLVM version 16, the upcoming
	   GCC version 14, etc.
     Known bugs
	 AC_SYS_LARGEFILE and AC_SYS_YEAR2038 only work correctly in C mode.
	  This is only a problem for configure scripts that invoke either
	   macro while AC_LANG([something other than C]) is in effect, and
	   will only be a *visible* problem on systems where support
	   for large files and/or timestamps after 2038 are *available*
	   but not enabled by default.
	  This is the cause of the AC_SYS_LARGEFILE, AC_SYS_YEAR2038, and/or
	   AC_SYS_YEAR2038_RECOMMENDED testsuite failures on some systems.
	   See <https://savannah.gnu.org/support/index.php?110983> for details
	   and a workaround.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/autoconf | 2 +-
 lfs/autoconf                     | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
  

Patch

diff --git a/config/rootfiles/common/autoconf b/config/rootfiles/common/autoconf
index c9aeb7a87..a351b29c6 100644
--- a/config/rootfiles/common/autoconf
+++ b/config/rootfiles/common/autoconf
@@ -58,7 +58,7 @@ 
 #usr/share/autoconf/m4sugar/m4sh.m4f
 #usr/share/autoconf/m4sugar/m4sugar.m4
 #usr/share/autoconf/m4sugar/m4sugar.m4f
-#usr/share/autoconf/m4sugar/version.m4
+#usr/share/autoconf/version.m4
 #usr/share/info/autoconf.info
 #usr/share/info/standards.info
 #usr/share/man/man1/autoconf.1
diff --git a/lfs/autoconf b/lfs/autoconf
index 18880cb5a..43033d6db 100644
--- a/lfs/autoconf
+++ b/lfs/autoconf
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 2.71
+VER        = 2.72
 
 THISAPP    = autoconf-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -39,7 +39,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 7fd4b98b4cfff10720e8da6ee91045637991643b50fcb3e47a0ecfcc01600f7b7b36fd1c0a5f08b68a418f1bdbd8d5a98de1008157595dd37cc3a31facb61416
+$(DL_FILE)_BLAKE2 = 01caeced9e53d8bd39fb0cf4929322f0d463971b0a96368aa55892026897a9e98c2ca84a77db1b3c6c4483aea54b96da16a7bc00b7ac15e23c6b0471438012db
 
 install : $(TARGET)