commit:     73016da8dd60b40660a085baf592db1de617f49e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  8 21:03:41 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul  8 21:03:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73016da8

dev-build/autoconf: add patches for gettext-0.25

See https://lists.gnu.org/archive/html/bug-gettext/2025-07/msg00006.html.

Bruno Haible pointed out (thank you!) that we need these in addition to
the changes I mentioned in ed7c4d9dd8c684444b529370944d1991bb50cb7e.

Bug: https://bugs.gentoo.org/957583
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-build/autoconf/autoconf-2.72-r2.ebuild         | 102 ++++++++++++++
 ...Adapt-to-the-on-disk-situation-after-auto.patch | 104 ++++++++++++++
 ...econf-Invoke-autopoint-in-more-situations.patch | 154 +++++++++++++++++++++
 3 files changed, 360 insertions(+)

diff --git a/dev-build/autoconf/autoconf-2.72-r2.ebuild 
b/dev-build/autoconf/autoconf-2.72-r2.ebuild
new file mode 100644
index 000000000000..0c8d87ee123a
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.72-r2.ebuild
@@ -0,0 +1,102 @@
+# 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)"
+IUSE="emacs"
+
+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"
+PDEPEND="emacs? ( app-emacs/autoconf-mode )"
+
+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
+}

diff --git 
a/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
 
b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
new file mode 100644
index 000000000000..d9ca338b2e96
--- /dev/null
+++ 
b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
@@ -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 <[email protected]>
+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

diff --git 
a/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
 
b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
new file mode 100644
index 000000000000..4d4d8ec49f2d
--- /dev/null
+++ 
b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
@@ -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 <[email protected]>
+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

Reply via email to