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(a)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