m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bootstrap safety


From: Eric Blake
Subject: bootstrap safety
Date: Thu, 21 Sep 2006 07:05:40 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Thunderbird/1.5.0.7 Mnenhy/0.7.4.666

-----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  <address@hidden>

        * 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             address@hidden
-----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-----
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  <address@hidden>
 
 # 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 address@hidden'.  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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]