autopoint, part of
gettext, import or update the internationalization infrastructure.
Some of this infrastructure, namely ca. 20 Autoconf macro files and the
config.rpath file, is also contained in Gnulib and may be imported
gnulib-tool. The use of
will therefore overwrite some of the files that
imported, and vice versa.
Avoiding to use
gettextize (manually, as package maintainer) or
autopoint (as part of a script like
autogen.sh) is not the solution: These programs also import the
infrastructure in the po/ and optionally in the intl/ directory.
The copies of the conflicting files in Gnulib are more up-to-date than
the copies brought in by
autopoint. When a
gettext release is made, the copies of the files in Gnulib will
be updated immediately.
The choice of which version of gettext to require depends on the needs of your package. For a package that wants to comply to GNU Coding Standards, the steps are:
gettextize, always use the
gettextizefrom the matching GNU gettext release. For the most recent Gnulib checkout, this is the newest release found on https://ftp.gnu.org/gnu/gettext/. For an older Gnulib snapshot, it is the release that was the most recent release at the time the Gnulib snapshot was taken.
gnulib-tooland import the
gettextmodule. Also, copy the latest version of gnulib’s build-aux/po/Makefile.in.in to your po/ directory (this is done for you if you use gnulib’s bootstrap script).
*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version ... but the Autoconf macros are from gettext version ..., it means that a new GNU gettext release was made, and its Autoconf macros were integrated into Gnulib and now mismatch the po/ infrastructure. In this case, fetch and install the new GNU gettext release and run
On the other hand, if your package is not as concerned with compliance to the latest standards, but instead favors development on stable environments, the steps are:
gettextthat you intend to support during development (at this time, gnulib recommends going no older than version 0.17). Run
gettextize) to copy infrastructure into place (newer versions of gettext will install the older infrastructure that you requested).
gnulib-tool, and import the
Regardless of which approach you used to get the infrastructure in place, the following steps must then be used to preserve that infrastructure (gnulib’s bootstrap script follows these rules):
gnulib-tool, make sure to not invoke
autopointa second time, by setting the
AUTOPOINTenvironment variable, like this:
$ env AUTOPOINT=true autoreconf --install