[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] bootstrap: add bootstrap_sync option.
From: |
Joel E. Denny |
Subject: |
Re: [PATCH] bootstrap: add bootstrap_sync option. |
Date: |
Sat, 20 Nov 2010 09:56:49 -0500 (EST) |
User-agent: |
Alpine 1.00 (DEB 882 2007-12-20) |
Hi Ralf,
On Sat, 20 Nov 2010, Ralf Wildenhues wrote:
> > 1. If someone does "bash bootstrap", I'm not sure how to detect that in
> > order to do it again in the exec.
>
> Yep, sounds like a problem. How about honoring $CONFIG_SHELL if that is
> set?
Ok, is the following patch what you had in mind?
Inspired by gnulib-tool's --no-reexec, I also added --no-bootstrap-sync on
the exec just in case it might help avoid an infinite loop or fork bomb in
some strange case we haven't thought of.
>From 6a106df216da6fd3c8f70561903e5bc26a1f1ea4 Mon Sep 17 00:00:00 2001
From: Joel E. Denny <address@hidden>
Date: Sat, 20 Nov 2010 09:37:45 -0500
Subject: [PATCH] bootstrap: add bootstrap_sync option.
See discussion at
<http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00369.html>,
<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00200.html>.
* build-aux/bootstrap: Accept --bootstrap-sync to update
bootstrap if it is not identical to the local gnulib's
bootstrap. Accept bootstrap_sync=true in bootstrap.conf to
enable this by default. Accept --no-bootstrap-sync to disable
it.
---
ChangeLog | 12 ++++++++++++
build-aux/bootstrap | 26 +++++++++++++++++++++++++-
2 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 294b3aa..d8dcb22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2010-11-20 Joel E. Denny <address@hidden>
+
+ bootstrap: add bootstrap_sync option.
+ See discussion at
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00369.html>,
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00200.html>.
+ * build-aux/bootstrap: Accept --bootstrap-sync to update
+ bootstrap if it is not identical to the local gnulib's
+ bootstrap. Accept bootstrap_sync=true in bootstrap.conf to
+ enable this by default. Accept --no-bootstrap-sync to disable
+ it.
+
2010-11-20 Bruno Haible <address@hidden>
nproc: Fix condition.
diff --git a/build-aux/bootstrap b/build-aux/bootstrap
index 12fec20..dcd4773 100755
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -1,6 +1,6 @@
#! /bin/sh
# Print a version string.
-scriptversion=2010-11-12.21; # UTC
+scriptversion=2010-11-20.03; # UTC
# Bootstrap this package from checked-out sources.
@@ -54,6 +54,12 @@ Options:
have gnulib sources on your machine, and
do not want to waste your bandwidth downloading
them again. Defaults to \$GNULIB_SRCDIR.
+ --bootstrap-sync If this bootstrap script is not identical to
+ the version in the local gnulib sources,
+ update this script, and then restart it with
+ /bin/sh or the shell \$CONFIG_SHELL if
+ defined.
+ --no-bootstrap-sync Do not check whether bootstrap is out of sync.
--copy Copy files instead of creating symbolic links.
--force Attempt to bootstrap even if the sources seem
not to have been checked out.
@@ -168,6 +174,10 @@ copy=false
# on which version control system (if any) is used in the source directory.
vc_ignore=auto
+# Set this to true in bootstrap.conf to enable --bootstrap-sync by
+# default.
+bootstrap_sync=false
+
# find_tool ENVVAR NAMES...
# -------------------------
# Search for a required program. Use the value of ENVVAR, if set,
@@ -239,6 +249,10 @@ do
checkout_only_file=;;
--copy)
copy=true;;
+ --bootstrap-sync)
+ bootstrap_sync=true;;
+ --no-bootstrap-sync)
+ bootstrap_sync=false;;
*)
echo >&2 "$0: $option: unknown option"
exit 1;;
@@ -501,6 +515,16 @@ case ${GNULIB_SRCDIR--} in
;;
esac
+if $bootstrap_sync; then
+ cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
+ echo "$0: updating bootstrap and restarting..."
+ exec sh -c \
+ 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+ -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
+ "$0" "$@" --no-bootstrap-sync
+ }
+fi
+
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
<$gnulib_tool || exit
--
1.7.0.4
- Re: [PATCH] bootstrap: add bootstrap_sync option., Joel E. Denny, 2010/11/14
- Re: [PATCH] bootstrap: add bootstrap_sync option., Paul Eggert, 2010/11/15
- Re: [PATCH] bootstrap: add bootstrap_sync option., Pádraig Brady, 2010/11/15
- Re: [PATCH] bootstrap: add bootstrap_sync option., Paul Eggert, 2010/11/15
- Re: [PATCH] bootstrap: add bootstrap_sync option., Ralf Wildenhues, 2010/11/15
- Re: [PATCH] bootstrap: add bootstrap_sync option., Paolo Bonzini, 2010/11/17
- Re: [PATCH] bootstrap: add bootstrap_sync option., Ralf Wildenhues, 2010/11/17
- Re: [PATCH] bootstrap: add bootstrap_sync option., Joel E. Denny, 2010/11/19
- Re: [PATCH] bootstrap: add bootstrap_sync option., Ralf Wildenhues, 2010/11/20
- Re: [PATCH] bootstrap: add bootstrap_sync option.,
Joel E. Denny <=
- Re: [PATCH] bootstrap: add bootstrap_sync option., Ralf Wildenhues, 2010/11/20
- Re: [PATCH] bootstrap: add bootstrap_sync option., Joel E. Denny, 2010/11/20
- Re: [PATCH] bootstrap: add bootstrap_sync option., Jim Meyering, 2010/11/20
- Re: [PATCH] bootstrap: add bootstrap_sync option., Joel E. Denny, 2010/11/21