After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 777430 - Cannot build geocode-glib due to gettext infrastructure mismatch.
Cannot build geocode-glib due to gettext infrastructure mismatch.
Status: RESOLVED FIXED
Product: geocode-glib
Classification: Other
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: geocode-glib maintainer(s)
geocode-glib maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2017-01-18 08:16 UTC by hbhyrava
Modified: 2017-01-18 14:58 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
build: Drop unnecessary mention of intltool in MAINTAINERCLEANFILES (792 bytes, patch)
2017-01-18 14:22 UTC, Philip Withnall
committed Details | Review
build: Use a minimum gettext requirement rather than an exact one (2.24 KB, patch)
2017-01-18 14:23 UTC, Philip Withnall
committed Details | Review

Description hbhyrava 2017-01-18 08:16:31 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/
Comment 1 Andreas Nilsson 2017-01-18 10:13:29 UTC
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]
Comment 2 Bastien Nocera 2017-01-18 13:38:17 UTC
I see this as well.
Comment 3 Philip Withnall 2017-01-18 14:09:53 UTC
I think I have a fix for this. Testing now.
Comment 4 Philip Withnall 2017-01-18 14:22:59 UTC
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.
Comment 5 Philip Withnall 2017-01-18 14:23:04 UTC
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.
Comment 6 Bastien Nocera 2017-01-18 14:26:38 UTC
Review of attachment 343724 [details] [review]:

Yes.
Comment 7 Bastien Nocera 2017-01-18 14:27:33 UTC
Review of attachment 343725 [details] [review]:

Looks good.
Comment 8 Philip Withnall 2017-01-18 14:58:27 UTC
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