[libvirt] the price we pay for using gettext-0.14

Jim Meyering jim at meyering.net
Wed Feb 24 15:39:35 UTC 2010


Jim Meyering wrote:

> Make distcheck currently fails like this:
>
>     make[2]: Entering directory `/t/libvirt-0.7.6/_build/po'
>     /bin/sh @MKINSTALLDIRS@ /t/libvirt-0.7.6/_inst/share
>     /bin/sh: @MKINSTALLDIRS@: No such file or directory
>     make[2]: *** [install-data-yes] Error 127
>
> That is due to our use of a version of gettext that is way too old:
>
>     $ grep GETT configure.ac
>     AM_GNU_GETTEXT_VERSION([0.14.1])
>
> The work-around is to define (via AC_SUBST) the now-obsolete symbol,
> MKINSTALLDIRS, so that @MKINSTALLDIRS@ in the autopoint-provided
> Makefile.in.in (from the old version of gettext) ends up being
> substituted.
>
> As I recall, people insist on using this old version of gettext,
> because nothing newer is supplied by RHEL5.x.  IMHO, that is RHEL5's
> problem, and should not be allowed to cause continuing problems
> in upstream projects.  It is easy and safe to install a newer version
> of gettext, especially since any project using autopoint will
> automatically continue to get the same bit-rotting old files:
> a gettext installation includes an archive of all older versions
> of its files, to provide just this type of backwards compatibility.
>
> We had a similar problem in libguestfs, and it was not trivial to diagnose
> there, either, even though I'd seen it at least once or twice before then.
>
> Here's the work-around:
> [just realized this requires a comment.  adding that now]

Added the comment, and moved it to be right next to
the offending GETTEXT 0.14.1 line:

>From 7f006798b0e2fe85a1b22c9bdbeae5b953d99596 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Wed, 24 Feb 2010 10:53:44 +0100
Subject: [PATCH] build: ensure that MKINSTALLDIRS is AC_SUBST-defined

since we're using gettext-0.14.1, which uses that now-obsolete
automake symbol.  Otherwise, make distcheck would fails like this:

    make[2]: Entering directory `/t/libvirt-0.7.6/_build/po'
    /bin/sh @MKINSTALLDIRS@ /t/libvirt-0.7.6/_inst/share
    /bin/sh: @MKINSTALLDIRS@: No such file or directory
    make[2]: *** [install-data-yes] Error 127

* configure.ac (MKINSTALLDIRS): Define.
---
 configure.ac |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/configure.ac b/configure.ac
index 095e5d2..9934710 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1655,6 +1655,11 @@ AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
 dnl Check for gettext
 AM_GNU_GETTEXT_VERSION([0.14.1])
 AM_GNU_GETTEXT([external])
+dnl Since we're using such an old version of gettext, we must also define
+dnl this symbol, in order to make the autopoint-supplied Makefile.in.in
+dnl work properly.
+AC_SUBST([MKINSTALLDIRS], [$ac_aux_dir/mkinstalldirs])
+
 ALL_LINGUAS=`cd "$srcdir/po" > /dev/null && ls *.po | sed 's+\.po$++'`

 dnl Extra link-time flags for Cygwin.
--
1.7.0.367.g566c3




More information about the libvir-list mailing list