bootstrap safety

Eric Blake <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

A recent bug report to coreutils pointed out that running ./bootstrap on a
distribution tarball is risky - a user might report bugs claiming to be m4
1.4.7, but with newer files pulled from gnulib.  So I'm installing this to
branch and head.

2006-09-21  Eric Blake  <[email protected]>

	* bootstrap: Add --force option, based on idea from coreutils.
	* README: Document that ./bootstrap and autoreconf are for
	developers, and not lightly done in tarballs.

- --
Life is short - so eat dessert first!

Eric Blake             [email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFEo4k84KuGfSFAYARAhu3AKCX3ypy/Vp1ugbr5FLpX/Y9B9wa+wCfeqYQ
jFs9yvTCHCX+3ghnX7FmUPs=
=aYVp
-----END PGP SIGNATURE-----

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches
m4.patch163 (text/plain, 3.6 KB)
Index: bootstrap
===================================================================
RCS file: /sources/m4/m4/bootstrap,v
retrieving revision 1.39
diff -u -p -r1.39 bootstrap
--- bootstrap	8 Sep 2006 15:47:13 -0000	1.39
+++ bootstrap	21 Sep 2006 13:03:15 -0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# bootstrap (GNU M4) version 2006-09-08
+# bootstrap (GNU M4) version 2006-09-21
 # Written by Gary V. Vaughan  <[email protected]>
 
 # Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -25,6 +25,7 @@
 
 # Usage: $progname [options]
 
+# -f      --force            bootstrap even when sources are not from CVS
 # -p ARG  --download-po=ARG  whether to download pofiles [yes]
 # -v      --version          print version information
 # -h,-?   --help             print short or long help message
@@ -87,6 +88,9 @@ progpath="$0"
 progname=`echo "$progpath" | $SED "$basename"`
 PROGRAM=bootstrap
 
+# Detect whether this is a CVS checkout or a tarball
+CVS_only_file=HACKING
+
 # func_echo arg...
 # Echo program name prefixed message.
 func_echo ()
@@ -195,6 +199,10 @@ func_version ()
     opt="$1"
     shift
     case $opt in
+      -f|--force)
+			CVS_only_file=
+			;;
+
       -p|--download-po)
 			test $# = 0 && func_missing_arg $opt && break
 			case $1 in
@@ -228,6 +236,10 @@ func_version ()
 
   # Bail if the options were screwed
   $exit_cmd $EXIT_FAILURE
+
+  if test -n "$CVS_only_file" && test ! -r "$CVS_only_file"; then
+    func_fatal_error "Bootstrapping from a non-CVS distribution is risky."
+  fi
 }
 
 ## ------------------------------ ##
Index: README
===================================================================
RCS file: /sources/m4/m4/README,v
retrieving revision 1.11
diff -u -p -r1.11 README
--- README	22 Aug 2006 16:16:47 -0000	1.11
+++ README	21 Sep 2006 13:03:15 -0000
@@ -14,6 +14,11 @@ should be fully installed *prior to* con
 Likewise, if you intend on hacking GNU `m4' from CVS, the bootstrap
 process requires that you first install a released copy of GNU `m4'.
 
+If you are just trying to build `m4' from a released tarball, you
+should not normally need to run `./bootstrap' or `autoreconf'; just go
+ahead and start with `./configure'.  If you are trying to build `m4'
+from CVS, more information can be found in the CVS-only file HACKING.
+
 In the subdirectories `tests' and `examples' you will find various m4
 files, ranging from trivial test files to rather advanced macros.  If
 you intend to use m4 seriously, you might find useful material down
@@ -47,7 +52,9 @@ GNU M4 uses GNU Libtool in order to buil
 variety of systems.  While this is very nice for making usable
 binaries, it can be a pain when trying to debug a program. For that
 reason, compilation of shared libraries can be turned off by
-specifying the `--disable-shared' option to `configure'.
+specifying the `--disable-shared' option to `configure'.  However,
+without shared libraries, modules that are not preloaded will not be
+available for use.
 
 Send bug reports, comments or ideas to `[email protected]'.  A bug report
 is an adequate description of the problem: your input, what you
@@ -69,12 +76,6 @@ make check TESTSUITEFLAGS='-v -d -x 12'
 The testsuite understands --help to tell you more about the current
 set of tests.
 
-If you wish to run bootstrap, the released versions of
-automake and libtool are missing some functionality we need.  You
-will need a CVS build of libtool head (1.5.x does not have enough
-functionality), autoconf 2.60 or later, automake 1.9b or later,
-gettext 0.15 or later, and a CVS checkout of gnulib.
-
 ========================================================================
 
 Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.