[libvirt] [PATCH] autogen: work around BSD toolchain snafu
Roman Bogorodskiy
novel at FreeBSD.org
Wed Dec 4 08:01:25 UTC 2013
Eric Blake wrote:
> 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.
It works only when the submodule is not up to date.
When running autogen.sh again it doesn't reach the 'else' clause
you create intl/VERSION in, so it just runs autoreconf and
fails with the same error.
Also, I think we cannot do 'rmdir intl' because it's not empty (scripts
copy over gettext sources there?), so it fails:
rmdir: intl: Directory not empty
> 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
>
Roman Bogorodskiy
More information about the libvir-list
mailing list