diff options
Diffstat (limited to 'devel/autoconf')
| -rw-r--r-- | devel/autoconf/Makefile | 2 | ||||
| -rw-r--r-- | devel/autoconf/files/patch-01-bin_autoreconf.in | 159 | ||||
| -rw-r--r-- | devel/autoconf/files/patch-02-bin_autoreconf.in | 102 |
3 files changed, 262 insertions, 1 deletions
diff --git a/devel/autoconf/Makefile b/devel/autoconf/Makefile index 6ccff1dac878..a19565396ebe 100644 --- a/devel/autoconf/Makefile +++ b/devel/autoconf/Makefile @@ -1,5 +1,6 @@ PORTNAME= autoconf DISTVERSION= 2.72 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= GNU @@ -25,7 +26,6 @@ USES= perl5 tar:xz VERSION= ${DISTVERSION} GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --program-suffix=${VERSION} \ --without-lispdir CONFIGURE_ENV= AWK=${AWK} \ diff --git a/devel/autoconf/files/patch-01-bin_autoreconf.in b/devel/autoconf/files/patch-01-bin_autoreconf.in new file mode 100644 index 000000000000..db203ab42277 --- /dev/null +++ b/devel/autoconf/files/patch-01-bin_autoreconf.in @@ -0,0 +1,159 @@ +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 +--- bin/autoreconf.in ++++ 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 + diff --git a/devel/autoconf/files/patch-02-bin_autoreconf.in b/devel/autoconf/files/patch-02-bin_autoreconf.in new file mode 100644 index 000000000000..e5da001e84d6 --- /dev/null +++ b/devel/autoconf/files/patch-02-bin_autoreconf.in @@ -0,0 +1,102 @@ +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 +--- bin/autoreconf.in ++++ 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 + |
