gentoo-ebuilds/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
Sam James 3dab132e84
dev-build/autoconf: update autoreconf patch for >=gettext-0.24
I think at this point..
1) sys-devel/gettext is ready in terms of any changes needed to that package;
2) autotools.eclass's eautoreconf needs updating to match the autoreconf patches
   from Bruno which we're applying here;
3) autotools.eclass should seriously consider using autoreconf instead, not
   reinventing it

Also, stable for remaining arches to make it easier to update the patch
in-place.

Bug: https://bugs.gentoo.org/957583
Closes: https://bugs.gentoo.org/962269
Signed-off-by: Sam James <sam@gentoo.org>
2025-10-05 16:03:39 +01:00

161 lines
5.8 KiB
Diff

https://savannah.gnu.org/support/?111272
https://file.savannah.gnu.org/file/0001-autoreconf-Invoke-autopoint-in-more-situations.patch?file_id=57421
From e2a4935b45f273410e975ecf56ab26ad72855df0 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Wed, 2 Jul 2025 02:43:41 +0200
Subject: [PATCH 1/2] 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_GNU_GETTEXT (without AM_GNU_GETTEXT_VERSION), AM_PO_SUBDIRS,
AM_ICONV, AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_LINKFLAGS_FROM_LIBS,
or GUILE_FLAGS.
---
bin/autoreconf.in | 80 ++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 76 insertions(+), 4 deletions(-)
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index a5ffc6fa..207900df 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,8 +451,13 @@ sub autoreconf_current_directory ($)
s/#.*//;
s/dnl.*//;
$uses_autoconf = 1 if /AC_INIT/;
+ $uses_liblink = 1 if /AC_LIB_HAVE_LINKFLAGS/;
+ $uses_liblink = 1 if /AC_LIB_LINKFLAGS/;
+ $uses_liblink = 1 if /AC_LIB_LINKFLAGS_FROM_LIBS/;
+ $uses_iconv = 1 if /AM_ICONV/;
# See below for why we look for gettext here.
- $uses_gettext = 1 if /^AM_GNU_GETTEXT_(?:REQUIRE_)?VERSION/;
+ $uses_gettext = 1 if /AM_GNU_GETTEXT/;
+ $uses_gettext = 1 if /AM_PO_SUBDIRS/;
}
if (!$uses_autoconf)
{
@@ -485,7 +492,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 +502,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 +596,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 +625,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 +644,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 +777,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