[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] autogen: work around BSD toolchain snafu
From: |
Roman Bogorodskiy |
Subject: |
Re: [PATCH] autogen: work around BSD toolchain snafu |
Date: |
Wed, 4 Dec 2013 12:01:25 +0400 |
User-agent: |
Mutt/1.5.22 (2013-10-16) |
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 <address@hidden>
> ---
>
> 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