On autoconf 2.69, this project: https://github.com/openzfs/zfs
logs the message:
autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not
AM_GNU_GETTEXT_VERSION
But succeeds.
With the update to autoconf 2.70, it instead logs:
configure.ac: error: AM_GNU_GETTEXT is used, but not
AM_GNU_GETTEXT_VERSION or AM_GNU_GETTEXT_REQUIRE_VERSION
And, as stated, errors out.
Now, configure.ac does not in fact use AM_GNU_GETTEXT, but the overly
ornate configure.ac does include...
$ cat config/user-gettext.m4
dnl #
dnl # Check if libintl and possibly libiconv are needed for gettext()
functionality
dnl #
AC_DEFUN([ZFS_AC_CONFIG_USER_GETTEXT], [
AM_GNU_GETTEXT([external])
])
And, ZFS_AC_CONFIG_USER_GETTEXT is then invoked in configure.ac
So apparently, autoreconf notices this by resolving macros. But, if I
try adding AM_GNU_GETTEXT_REQUIRE_VERSION inside the user-gettext.m4
macro, autoreconf continues to insist it is not there and errors out.
I cannot move just AM_GNU_GETTEXT_REQUIRE_VERSION to configure.ac, since
then it tells me:
autopoint: *** AM_GNU_GETTEXT without 'external' argument is no longer
supported in version 0.21
Apparently I need to have *both* in the configure.ac file itself. I
don't know why one would not do so -- I don't know why openzfs *wants*
to do so -- but the fact remains that this project does do so, and the
error message is very confusing.
...
So, here is my question. Is this an autoreconf bug? Is this a case where
the project is wrong for doing it in *.m4 and must change? And why did
this only fail once autoconf 2.70 came along?
I'd like to better understand this so I can, most likely, argue the case
upstream to move the macros into configure.ac
--
Eli Schwartz
Arch Linux Bug Wrangler and Trusted User