dev-build/autoconf: Sync with Gentoo

It's from Gentoo commit 38ad77e9de7933ea023a6addcdad9b2347569197.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Flatcar Buildbot 2025-07-21 07:10:52 +00:00 committed by Mathieu Tortuyaux
parent d115e8a153
commit 8c06a6c855
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
6 changed files with 359 additions and 8 deletions

View File

@ -29,7 +29,6 @@ HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
LICENSE="GPL-3+"
SLOT="${PV}"
IUSE="emacs"
BDEPEND+="
>=sys-devel/m4-1.4.16
@ -43,8 +42,6 @@ RDEPEND="
[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
PDEPEND="emacs? ( app-emacs/autoconf-mode )"
PATCHES=(
"${FILESDIR}"/${PN}-2.69-perl-5.26.patch
"${FILESDIR}"/${P}-fix-libtool-test.patch

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -37,7 +37,6 @@ HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
LICENSE="GPL-3+"
SLOT="${PV/_*}"
IUSE="emacs"
# for 2.71, our Perl time resolution patch changes our min Perl from 5.6
# (vanilla upstream for 2.71) to 5.8.
@ -52,7 +51,6 @@ RDEPEND="
!~${CATEGORY}/${P}:2.5
"
[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
PDEPEND="emacs? ( app-emacs/autoconf-mode )"
PATCHES=(
"${FILESDIR}"/${P}-AC_LANG_CALL_C_cxx.patch

View File

@ -0,0 +1,100 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Bumping notes:
# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper
# on new autoconf releases, as well as the dependency in RDEPEND below too.
# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass.
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
inherit git-r3
else
# For _beta handling replace with real version number
MY_PV="${PV}"
MY_P="${PN}-${MY_PV}"
#PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
inherit verify-sig
SRC_URI="
mirror://gnu/${PN}/${MY_P}.tar.xz
https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz
https://meyering.net/ac/${P}.tar.xz
verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.xz.sig )
"
S="${WORKDIR}"/${MY_P}
if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
fi
inherit toolchain-autoconf multiprocessing
DESCRIPTION="Used to create autoconfiguration files"
HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
LICENSE="GPL-3+"
SLOT="$(ver_cut 1-2)"
BDEPEND+="
>=dev-lang/perl-5.10
>=sys-devel/m4-1.4.16
"
RDEPEND="
${BDEPEND}
>=dev-build/autoconf-wrapper-20231224
sys-devel/gnuconfig
!~${CATEGORY}/${P}:2.5
"
[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
PATCHES=(
"${FILESDIR}"/${PN}-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
"${FILESDIR}"/${PN}-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
)
src_prepare() {
if [[ ${PV} == *9999 ]] ; then
# Avoid the "dirty" suffix in the git version by generating it
# before we run later stages which might modify source files.
local ver=$(./build-aux/git-version-gen .tarball-version)
echo "${ver}" > .tarball-version || die
autoreconf -f -i || die
fi
# usr/bin/libtool is provided by binutils-apple, need gnu libtool
if [[ ${CHOST} == *-darwin* ]] ; then
PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch )
fi
# Save timestamp to avoid later makeinfo call
touch -r doc/{,old_}autoconf.texi || die
toolchain-autoconf_src_prepare
# Restore timestamp to avoid makeinfo call
# We already have an up to date autoconf.info page at this point.
touch -r doc/{old_,}autoconf.texi || die
}
src_test() {
emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
}
src_install() {
toolchain-autoconf_src_install
local f
for f in config.{guess,sub} ; do
ln -fs ../../gnuconfig/${f} \
"${ED}"/usr/share/autoconf-*/build-aux/${f} || die
done
}

View File

@ -42,7 +42,6 @@ HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
LICENSE="GPL-3+"
SLOT="$(ver_cut 1-2)"
IUSE="emacs"
BDEPEND+="
>=dev-lang/perl-5.10
@ -55,7 +54,6 @@ RDEPEND="
!~${CATEGORY}/${P}:2.5
"
[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
PDEPEND="emacs? ( app-emacs/autoconf-mode )"
src_prepare() {
if [[ ${PV} == *9999 ]] ; then

View File

@ -0,0 +1,104 @@
https://savannah.gnu.org/support/?111273
https://file.savannah.gnu.org/file/0001-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch?file_id=57364
From d75171fdf8d03d2e070fcc3dbb5afb942dbd7828 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 5 Jul 2025 17:20:11 +0200
Subject: [PATCH] autoreconf: Adapt to the on-disk situation after autopoint
has run.
Reported in <https://savannah.gnu.org/support/?111273>.
* bin/autoreconf.in (autoreconf_current_directory): After invoking autopoint,
rerun aclocal. When doing so, pass extra options "-I m4" if the configure.ac
does not specify a macro dir.
---
bin/autoreconf.in | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index 3f6a74fe..eb0d96a9 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -489,6 +489,7 @@ sub autoreconf_current_directory ($)
# Actually, it is even more restrictive, as it greps for
# '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while
# scanning configure.ac.
+ my $invoked_autopoint;
if (!$uses_liblink && !$uses_iconv && !$uses_gettext)
{
verb "$configure_ac: not using Gettext";
@@ -514,6 +515,7 @@ sub autoreconf_current_directory ($)
xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
$autopoint);
}
+ $invoked_autopoint = 1;
}
@@ -593,6 +595,7 @@ sub autoreconf_current_directory ($)
# from the final autoconf invocation.
my $aux_dir;
my @aux_files;
+ my @macro_dirs;
my $uses_liblink_via_traces;
my $uses_iconv_via_traces;
my $uses_gettext_via_traces;
@@ -616,6 +619,8 @@ sub autoreconf_current_directory ($)
'AC_CONFIG_AUX_DIR',
'AC_CONFIG_HEADERS',
'AC_CONFIG_SUBDIRS',
+ 'AC_CONFIG_MACRO_DIR_TRACE',
+ 'AC_CONFIG_MACRO_DIR',
'AC_INIT',
'AC_REQUIRE_AUX_FILE',
'AC_PROG_LIBTOOL',
@@ -640,6 +645,8 @@ sub autoreconf_current_directory ($)
my ($macro, @args) = split (/::/);
$aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR";
push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE";
+ push @macro_dirs, $args[0] if $macro eq "AC_CONFIG_MACRO_DIR_TRACE"
+ || $macro eq "AC_CONFIG_MACRO_DIR";
$uses_autoconf = 1 if $macro eq "AC_INIT";
# Here we need to explicitly test for GUILE_FLAGS, because in the
# typical situation where configure.ac invokes GUILE_FLAGS,
@@ -679,6 +686,15 @@ sub autoreconf_current_directory ($)
}
}
+ # When configure.ac does not specify a macro dir, autopoint has
+ # created a directory named 'm4' and copied its *.m4 files into it.
+ # In this case, we need to rerun 'aclocal', in order to pass it the
+ # options "-I m4" this time.
+ if ($invoked_autopoint && !@macro_dirs)
+ {
+ $rerun_aclocal = 1;
+ }
+
# Gettext consistency checks.
# Some projects intentionally don't call AM_GNU_GETTEXT_(REQUIRE_)VERSION
# because they have all of the gettext infrastructure checked into version
@@ -807,6 +823,8 @@ sub autoreconf_current_directory ($)
xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
$autopoint);
}
+ $invoked_autopoint = 1;
+ $rerun_aclocal = 1;
}
@@ -824,6 +842,12 @@ sub autoreconf_current_directory ($)
}
else
{
+ # When configure.ac does not specify a macro dir, autopoint has
+ # created a directory named 'm4' and copied its *.m4 files into it.
+ if ($invoked_autopoint && !@macro_dirs)
+ {
+ $aclocal_flags .= " -I m4";
+ }
xsystem ("$aclocal $aclocal_flags");
}
}
--
2.43.0

View File

@ -0,0 +1,154 @@
https://savannah.gnu.org/support/?111272
https://file.savannah.gnu.org/file/0001-autoreconf-Invoke-autopoint-in-more-situations.patch?file_id=57356
From 797eceb60214565db1f13339708c288c522e34a2 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Wed, 2 Jul 2025 02:43:41 +0200
Subject: [PATCH] autoreconf: Invoke autopoint in more situations.
Reported in <https://savannah.gnu.org/support/?111272>.
* bin/autoreconf.in (autoreconf_current_directory): Invoke autopoint also when
the package uses AM_ICONV, AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, or
GUILE_FLAGS.
---
bin/autoreconf.in | 75 +++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 3 deletions(-)
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index a5ffc6fa..3f6a74fe 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -440,6 +440,8 @@ sub autoreconf_current_directory ($)
# ---------------------- #
my $uses_autoconf;
+ my $uses_liblink;
+ my $uses_iconv;
my $uses_gettext;
if (-f $configure_ac)
{
@@ -449,6 +451,8 @@ sub autoreconf_current_directory ($)
s/#.*//;
s/dnl.*//;
$uses_autoconf = 1 if /AC_INIT/;
+ $uses_liblink = 1 if /AC_LIB_(?:HAVE_)LINKFLAGS/;
+ $uses_iconv = 1 if /AM_ICONV/;
# See below for why we look for gettext here.
$uses_gettext = 1 if /^AM_GNU_GETTEXT_(?:REQUIRE_)?VERSION/;
}
@@ -485,7 +489,7 @@ sub autoreconf_current_directory ($)
# Actually, it is even more restrictive, as it greps for
# '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while
# scanning configure.ac.
- if (!$uses_gettext)
+ if (!$uses_liblink && !$uses_iconv && !$uses_gettext)
{
verb "$configure_ac: not using Gettext";
}
@@ -495,8 +499,21 @@ sub autoreconf_current_directory ($)
}
else
{
- xsystem_hint ("autopoint is needed because this package uses Gettext",
- $autopoint);
+ if ($uses_gettext)
+ {
+ xsystem_hint ("autopoint is needed because this package uses Gettext",
+ $autopoint);
+ }
+ elsif ($uses_iconv)
+ {
+ xsystem_hint ("autopoint is needed because this package uses AM_ICONV",
+ $autopoint);
+ }
+ elsif ($uses_liblink)
+ {
+ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
+ $autopoint);
+ }
}
@@ -576,6 +593,8 @@ sub autoreconf_current_directory ($)
# from the final autoconf invocation.
my $aux_dir;
my @aux_files;
+ my $uses_liblink_via_traces;
+ my $uses_iconv_via_traces;
my $uses_gettext_via_traces;
my $uses_libtool;
my $uses_intltool;
@@ -603,6 +622,11 @@ sub autoreconf_current_directory ($)
'AM_PROG_LIBTOOL',
'LT_INIT',
'LT_CONFIG_LTDL_DIR',
+ 'AC_LIB_LINKFLAGS',
+ 'AC_LIB_HAVE_LINKFLAGS',
+ 'AC_LIB_LINKFLAGS_FROM_LIBS',
+ 'GUILE_FLAGS',
+ 'AM_ICONV',
'AM_GNU_GETTEXT',
'AM_INIT_AUTOMAKE',
'GTK_DOC_CHECK',
@@ -617,6 +641,15 @@ sub autoreconf_current_directory ($)
$aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR";
push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE";
$uses_autoconf = 1 if $macro eq "AC_INIT";
+ # Here we need to explicitly test for GUILE_FLAGS, because in the
+ # typical situation where configure.ac invokes GUILE_FLAGS,
+ # guile.m4 defines GUILE_FLAGS and uses AC_LIB_LINKFLAGS_FROM_LIBS,
+ # the traces still for AC_LIB_LINKFLAGS_FROM_LIBS are empty.
+ $uses_liblink_via_traces = 1 if $macro eq "AC_LIB_LINKFLAGS"
+ || $macro eq "AC_LIB_HAVE_LINKFLAGS"
+ || $macro eq "AC_LIB_LINKFLAGS_FROM_LIBS"
+ || $macro eq "GUILE_FLAGS";
+ $uses_iconv_via_traces = 1 if $macro eq "AM_ICONV";
$uses_gettext_via_traces = 1 if $macro eq "AM_GNU_GETTEXT";
$uses_libtool = 1 if $macro eq "AC_PROG_LIBTOOL"
|| $macro eq "AM_PROG_LIBTOOL"
@@ -741,6 +774,42 @@ sub autoreconf_current_directory ($)
}
+ # --------------------------------------------- #
+ # Running autopoint, if not already run above. #
+ # --------------------------------------------- #
+
+ if (!$uses_liblink_via_traces && !$uses_iconv_via_traces && !$uses_gettext_via_traces)
+ {
+ verb "$configure_ac: not needing autopoint";
+ }
+ elsif (!$install)
+ {
+ verb "$configure_ac: not running autopoint: --install not given";
+ }
+ elsif ($uses_liblink || $uses_iconv || $uses_gettext)
+ {
+ verb "$configure_ac: not running autopoint a second time";
+ }
+ else
+ {
+ if ($uses_gettext_via_traces)
+ {
+ xsystem_hint ("autopoint is needed because this package uses Gettext",
+ $autopoint);
+ }
+ elsif ($uses_iconv_via_traces)
+ {
+ xsystem_hint ("autopoint is needed because this package uses AM_ICONV",
+ $autopoint);
+ }
+ elsif ($uses_liblink_via_traces)
+ {
+ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
+ $autopoint);
+ }
+ }
+
+
# ------------------- #
# Rerunning aclocal. #
# ------------------- #
--
2.43.0