GNOME Bugzilla – Bug 777430
Cannot build geocode-glib due to gettext infrastructure mismatch.
Last modified: 2017-01-18 14:58:35 UTC
I am on Fedora 25, and have successfully built jhbuild and its sysdeps. Now I wish to build gnome-calendar. But while building geocode-glib in the process, I get the following error (followed by the standard user choice menu): *** Error during phase build of geocode-glib: ########## Error running make -j 9 *** The log shows the error here: make geocode-glib.pot-update *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19 Makefile:147: recipe for target 'check-macro-version' failed sadiq suggested different methods (clean cache with `jhbuild buildone -acf geocode-glib`, sans repo-update with `jhbuild buildone -n geocode-glib`) of building the module, but the error persists. Editing the file geocode-glib/po/Makefile.in.in and replacing 'GETTEXT_MACRO_VERSION = 0.18' to 'GETTEXT_MACRO_VERSION = 0.19', before running `jhbuild buildone -n geocode-glib` was a successful workaround for sadiq, but my edited file was renamed as Makefile.in.in~ and a new Makefile.in.in with 'GETTEXT_MACRO_VERSION = 0.18' was automatically created, leading to a failed build. Here are relevant pastes: https://paste.fedoraproject.org/529369/84727320/ https://paste.fedoraproject.org/529370/47273511/
I've ran into this as well, so I'm unable to build GNOME Maps. *** Building geocode-glib *** [34/52] make -j 5 git.mk: Generating /home/andreasn/jhbuild/checkout/geocode-glib/.gitignore make all-recursive make[1]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib' Making all in geocode-glib make[2]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' GEN geocode-enum-types.h git.mk: Generating /home/andreasn/jhbuild/checkout/geocode-glib/geocode-glib/.gitignore GEN geocode-enum-types.c make all-recursive make[3]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' Making all in . make[4]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' CC geocode-backend.lo CC geocode-nominatim.lo CC geocode-location.lo CC geocode-reverse.lo CC geocode-forward.lo CC geocode-glib.lo CC geocode-error.lo CC geocode-enum-types.lo CC geocode-place.lo CC geocode-bounding-box.lo CCLD libgeocode-glib.la GISCAN GeocodeGlib-1.0.gir GICOMP GeocodeGlib-1.0.gir make[4]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' Making all in tests make[4]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib/tests' git.mk: Generating /home/andreasn/jhbuild/checkout/geocode-glib/geocode-glib/tests/.gitignore make all-am make[5]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib/tests' CC geo-uri.o CC geocode-nominatim-test.o CC geocode-glib.o CCLD geo-uri CCLD geocode-glib make[5]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib/tests' make[4]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib/tests' make[3]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' make[2]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/geocode-glib' Making all in po make[2]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/po' make geocode-glib.pot-update *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19 Makefile:147: recipe for target 'check-macro-version' failed make[2]: *** [check-macro-version] Error 1 make[2]: *** Waiting for unfinished jobs.... make[3]: Entering directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/po' sed -e '/^#/d' /home/andreasn/jhbuild/checkout/geocode-glib/po/remove-potcdate.sin > t-remove-potcdate.sed mv t-remove-potcdate.sed remove-potcdate.sed if LC_ALL=C grep 'GNU geocode-glib' /home/andreasn/jhbuild/checkout/geocode-glib/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '' || test 'http://bugzilla.gnome.org/enter_bug.cgi?product=geocode-glib' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address=''; \ else \ msgid_bugs_address='http://bugzilla.gnome.org/enter_bug.cgi?product=geocode-glib'; \ fi; \ case `/home/andreasn/jhbuild/install/bin/xgettext --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ /home/andreasn/jhbuild/install/bin/xgettext --default-domain=geocode-glib --directory=/home/andreasn/jhbuild/checkout/geocode-glib \ --add-comments=TRANSLATORS: --keyword=_ --keyword=N_ --from-code=UTF-8 \ --files-from=/home/andreasn/jhbuild/checkout/geocode-glib/po/POTFILES.in \ --copyright-holder='Free Software Foundation, Inc.' \ --msgid-bugs-address="$msgid_bugs_address" \ ;; \ *) \ /home/andreasn/jhbuild/install/bin/xgettext --default-domain=geocode-glib --directory=/home/andreasn/jhbuild/checkout/geocode-glib \ --add-comments=TRANSLATORS: --keyword=_ --keyword=N_ --from-code=UTF-8 \ --files-from=/home/andreasn/jhbuild/checkout/geocode-glib/po/POTFILES.in \ --copyright-holder='Free Software Foundation, Inc.' \ --package-name="${package_gnu}geocode-glib" \ --package-version='3.23.1' \ --msgid-bugs-address="$msgid_bugs_address" \ ;; \ esac test ! -f geocode-glib.po || { \ if test -f /home/andreasn/jhbuild/checkout/geocode-glib/po/geocode-glib.pot; then \ sed -f remove-potcdate.sed < /home/andreasn/jhbuild/checkout/geocode-glib/po/geocode-glib.pot > geocode-glib.1po && \ sed -f remove-potcdate.sed < geocode-glib.po > geocode-glib.2po && \ if cmp geocode-glib.1po geocode-glib.2po >/dev/null 2>&1; then \ rm -f geocode-glib.1po geocode-glib.2po geocode-glib.po; \ else \ rm -f geocode-glib.1po geocode-glib.2po /home/andreasn/jhbuild/checkout/geocode-glib/po/geocode-glib.pot && \ mv geocode-glib.po /home/andreasn/jhbuild/checkout/geocode-glib/po/geocode-glib.pot; \ fi; \ else \ mv geocode-glib.po /home/andreasn/jhbuild/checkout/geocode-glib/po/geocode-glib.pot; \ fi; \ } make[3]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/po' make[2]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib/po' Makefile:558: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/andreasn/.cache/jhbuild/build/geocode-glib' Makefile:467: recipe for target 'all' failed make: *** [all] Error 2 *** Error during phase build of geocode-glib: ########## Error running make -j 5 *** [34/52]
I see this as well.
I think I have a fix for this. Testing now.
Created attachment 343724 [details] [review] build: Drop unnecessary mention of intltool in MAINTAINERCLEANFILES We don’t use intltool any more, so there should be no need to clean this file.
Created attachment 343725 [details] [review] build: Use a minimum gettext requirement rather than an exact one In configure.ac, specify the minimum gettext version we require, rather than the exact one. This fixes a situation where the autoconf macros used for gettext will be the latest available on the system (for example, 0.19); but the copied-in Makefile.in.in will be for the exact version specified in configure.ac (in this case, 0.18). In that situation, the gettext build rules will error out at `make` time with the message: *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19 Avoid that by specifying a minimum version dependency rather than an exact one. This should not cause problems as we haven’t committed any generated or external gettext files into git, so each developer will end up regenerating the build system for their system’s version of gettext, as expected. See the subsection of https://www.gnu.org/software/gettext/manual/html_node/Version-Control-Issues.html for more information. Note that autoreconf currently doesn’t recognise AM_GNU_GETTEXT_REQUIRE_VERSION, so we must continue also using AM_GNU_GETTEXT_VERSION. autopoint will ignore the latter if the former is present. See https://lists.gnu.org/archive/html/autoconf-patches/2015-10/msg00000.html. This bumps our gettext dependency to 0.19.6, which is when AM_GNU_GETTEXT_REQUIRE_VERSION was introduced.
Review of attachment 343724 [details] [review]: Yes.
Review of attachment 343725 [details] [review]: Looks good.
Pushed, thanks. Attachment 343724 [details] pushed as f4f94a6 - build: Drop unnecessary mention of intltool in MAINTAINERCLEANFILES Attachment 343725 [details] pushed as 6ba0e38 - build: Use a minimum gettext requirement rather than an exact one