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