[libvirt] [PATCH] do not require two ./autogen.sh runs to permit "make"
Daniel P. Berrange
berrange at redhat.com
Wed Mar 17 09:47:37 UTC 2010
On Tue, Mar 16, 2010 at 09:42:32PM +0100, Jim Meyering wrote:
> I tracked down the source of the two-autogen.sh-runs-required bug.
> Here's the fix:
>
> >From 0583de2de2038d4f8875268391fd4994329d39bf Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Tue, 16 Mar 2010 21:08:31 +0100
> Subject: [PATCH] do not require two ./autogen.sh runs to permit "make"
>
> * autogen.sh (bootstrap_hash): New function.
> Running bootstrap may update the gnulib SHA1, yet we were computing
> t=$(git submodule status ...) *prior* to running bootstrap, and
> then recording that sometimes-stale value in the stamp file upon
> a successful bootstrap run. That would require two (lengthy!)
> bootstrap runs to update the stamp file.
> ---
> autogen.sh | 21 ++++++++++++++-------
> 1 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/autogen.sh b/autogen.sh
> index ff94678..b93cdba 100755
> --- a/autogen.sh
> +++ b/autogen.sh
> @@ -62,20 +62,27 @@ else
> fi
> fi
>
> +# Compute the hash we'll use to determine whether rerunning bootstrap
> +# is required. The first is just the SHA1 that selects a gnulib snapshot.
> +# The second ensures that whenever we change the set of gnulib modules used
> +# by this package, we rerun bootstrap to pull in the matching set of files.
> +bootstrap_hash()
> +{
> + git submodule status | sed 's/^[ +-]//;s/ .*//'
> + git hash-object bootstrap.conf
> +}
> +
> # Ensure that whenever we pull in a gnulib update or otherwise change to a
> # different version (i.e., when switching branches), we also rerun ./bootstrap.
> curr_status=.git-module-status
> -t=$(git submodule status|sed 's/^[ +-]//;s/ .*//'; \
> - git hash-object bootstrap.conf)
> +t=$(bootstrap_hash)
> if test "$t" = "$(cat $curr_status 2>/dev/null)"; then
> : # good, it's up to date, all we need is autoreconf
> autoreconf -if
> else
> - echo running bootstrap...
> - ./bootstrap && echo "$t" > $curr_status || {
> - echo "Failed to bootstrap gnulib, please investigate."
> - exit 1;
> - }
> + echo running bootstrap...
> + ./bootstrap && bootstrap_hash > $curr_status \
> + || { echo "Failed to bootstrap gnulib, please investigate."; exit 1; }
> fi
>
> cd "$THEDIR"
ACK
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list