Richard W.M. Jones wrote:
On Mon, Aug 10, 2009 at 02:16:31PM +0200, Jim Meyering wrote:
We learned via libvirt that when people use "git pull" to pull in a new snapshot of gnulib, it's important to make the usual autogen.sh script detect that and automatically take the unusual step of re-running the relatively expensive bootstrap script.
Isn't this a similar situation to someone who does 'git clone' and then runs autogen (without running bootstrap)?
I can't see why it wouldn't work now, because 'git submodule status' should produce a different result if the submodule does not exist. Or maybe I'm not understanding how that works.
The first autogen.sh run is special in that some files are not yet present, like po/Makevars.template, required for this (from bootstrap): # Create gettext configuration. echo "$0: Creating po/Makevars from po/Makevars.template ..." rm -f po/Makevars sed ' /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ /^MSGID_BUGS_ADDRESS *=/s/=.*/= '"$MSGID_BUGS_ADDRESS"'/ /^XGETTEXT_OPTIONS *=/{ s/$/ \\/ a\ '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} } ' po/Makevars.template >po/Makevars Normally, po/Makevars.template is created when autoreconf invokes autopoint, but autoreconf has to be run *after* bootstrap pulls in .m4 and .am snippets from gnulib. The solution is to run autopoint *before* bootstrap. I've just confirmed that this patch solves the problem: diff --git a/bootstrap b/bootstrap index 1eee72d..cea8c40 100755 --- a/bootstrap +++ b/bootstrap @@ -28,6 +28,9 @@ GNULIB_SRCDIR=.gnulib ls po/*.po 2>/dev/null | sed 's|.*/||; s|\.po$||' > po/LINGUAS +# Run autopoint, to get po/Makevars.template: +autopoint + # Create gettext configuration. echo "$0: Creating po/Makevars from po/Makevars.template ..." rm -f po/Makevars