[libvirt] [PATCH] autogen: work around BSD toolchain snafu

Eric Blake eblake at redhat.com
Tue Dec 3 21:06:15 UTC 2013


With my help on IRC, Roman Bogorodskiy identified a bug where the
BSD autoconf wrapper script eats stdin[1], which in turn causes
autopoint from gettext 0.18.3 to fail to find AM_GNU_GETTEXT_VERSION
within configure.ac[2], with this error:

./bootstrap: autopoint --force
autopoint: *** Missing version: please specify in configure.ac through a line 'AM_GNU_GETTEXT_VERSION(x.yy.zz)' the gettext version the package is using

[1] http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184479
[2] http://git.sv.gnu.org/cgit/gettext.git/commit/gettext-tools/misc/autopoint.in?id=eea2dddde

We found a workaround - fake the use of an intl subdirectory long
enough for autopoint to get what it wants from that fallback.  This
workaround may eventually move upstream into gnulib's bootstrap;
when it does, we can remove the hack from libvirt's autogen.sh.

* autogen.sh (bootstrap): Force autopoint to work even if autom4te
doesn't.

Signed-off-by: Eric Blake <eblake at redhat.com>
---

I tested that this doesn't fall apart on Fedora 19 when running
autogen.sh (autopoint 0.18.2, no autom4te wrapper), but would
like feedback from Roman that it works for his broken toolchain
setup.  I'd also like feedback from gnulib whether we should
fold a similar fix into gnulib's bootstrap, instead of applying
this patch to libvirt.

 autogen.sh | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/autogen.sh b/autogen.sh
index 5aa1990..31e66c0 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -88,9 +88,16 @@ if test -d .git || test -f .git; then
             echo cleaning up submodules...
             git submodule foreach 'git clean -dfqx && git reset --hard'
         fi
+        # work around broken BSD toolchain, where gettext 0.18.3 triggers
+        # a bug with the autom4te wrapper script eating stdin unless
+        # intl/VERSION exists, with contents comparable to configure.ac
+        mkdir -p intl
+        echo gettext-0.17 > intl/VERSION
         echo running bootstrap$no_git...
         ./bootstrap$no_git --bootstrap-sync && bootstrap_hash > $curr_status \
             || { echo "Failed to bootstrap, please investigate."; exit 1; }
+        rm intl/VERSION
+        rmdir -p intl
     fi
 fi

-- 
1.8.3.1




More information about the libvir-list mailing list