After investigating some autogen.sh/bootstrap-vs-new-gnulib
problems today, I realized that libvirt's SHA1-comparing code
lacked improvements I'd made in libguestfs, which does the same thing.
AFAIK, this is not related to the problems we've seen today,
but it might well help someone down the road.
Here's the result of that synchronization:
From fada075bcaf46d1bd0c51165475594544e18ecfd Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Wed, 24 Feb 2010 12:01:09 +0100
Subject: [PATCH] build: make git submodule checking more reliable
* cfg.mk (_curr_status): Accommodate leading "+" or "-" in the output
of git submodule status.
* autogen.sh: Likewise.
---
autogen.sh | 2 +-
cfg.mk | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/autogen.sh b/autogen.sh
index 833b1d1..9ae8d67 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -65,7 +65,7 @@ fi
# 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)
+t=$(git submodule status|sed 's/^[ +-]//;s/ .*//')
if test "$t" = "$(cat $curr_status 2>/dev/null)"; then
: # good, it's up to date, all we need is autoreconf
autoreconf -if
diff --git a/cfg.mk b/cfg.mk
index 17bb341..8317ae2 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -262,7 +262,9 @@ ifeq (0,$(MAKELEVEL))
# submodule name. Contrast these:
# -b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib
# b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib (v0.0-2286-gb653eda)
- _submodule_hash = sed 's/.//;s/ .*//'
+ # $ cat .git-module-status
+ # b653eda3ac4864de205419d9f41eec267cb89eeb
+ _submodule_hash = sed 's/^[ +-]//;s/ .*//'
_update_required := $(shell \
actual=$$(git submodule status | $(_submodule_hash)); \
stamp="$$($(_submodule_hash) $(_curr_status) 2>/dev/null)"; \
--
1.7.0.377.g90adb