summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2007-11-02 14:41:45 -0600
committerEric Blake <ebb9@byu.net>2007-11-02 14:41:45 -0600
commit0f7701a19187152180a0b9907fab29d152fc534a (patch)
tree3662a995d187a392232522565a0de101cbc025e8
parent01ea20559b76e22383bf71d87b598d84b420761d (diff)
downloadm4-0f7701a19187152180a0b9907fab29d152fc534a.tar.gz
Update some documentation about version control.
* NEWS: M4 is now stored in git. * HACKING: Likewise. * README: Likewise. * bootstrap: Likewise. * commit: Delete, now that CVS commits are no longer necessary. Signed-off-by: Eric Blake <ebb9@byu.net>
-rw-r--r--ChangeLog7
-rw-r--r--HACKING30
-rw-r--r--NEWS2
-rw-r--r--README5
-rwxr-xr-xbootstrap15
-rwxr-xr-xcommit463
6 files changed, 34 insertions, 488 deletions
diff --git a/ChangeLog b/ChangeLog
index 44e246a0..c2ad2adc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2007-11-02 Eric Blake <ebb9@byu.net>
+ Update some documentation about version control.
+ * NEWS: M4 is now stored in git.
+ * HACKING: Likewise.
+ * README: Likewise.
+ * bootstrap: Likewise.
+ * commit: Delete, now that CVS commits are no longer necessary.
+
Adjust to recent gnulib change.
* m4/gnulib-cache.m4: Drop vasprintf-posix and xvasprintf, and use
xvasprintf-posix instead.
diff --git a/HACKING b/HACKING
index 634ac1e9..d49bc667 100644
--- a/HACKING
+++ b/HACKING
@@ -38,7 +38,7 @@ and is not part of a release distribution.
3. Bootstrapping
================
-* The master M4 repository is stored in git.
+* The master M4 repository is stored in git.
* Before you can build from git, you need to bootstrap. This requires a
pre-installed version of GNU M4 built from a package, Autoconf 2.60 or
@@ -57,7 +57,7 @@ and is not part of a release distribution.
GNULIB_TOOL=path/to/gnulib/gnulib-tool ./bootstrap
* When it is time for a release, it is a good idea to bootstrap with
- official releases of the autotools, rather than CVS builds, to reduce
+ official releases of the autotools, rather than git builds, to reduce
the pain of a user re-running bootstrap on the packaged M4. However,
files installed by Automake should be updated to the latest version
from their respective upstream source, rather than the version that
@@ -208,7 +208,8 @@ yyyy-mm-dd Name of Author <email@address> (tiny change)
* Run ./commit from the source tree.
-* Run `make cvs-dist', which will build a release tarball (with `make
+* TODO - adjust this step to account for git:
+ Run `make cvs-dist', which will build a release tarball (with `make
distcheck') and tag the tree with release-$(VERSION).
* Run `make deltas' (pass LASTRELEASE=maj.min[.mic[alpha]] if needed) to
@@ -299,12 +300,11 @@ This release has @SUMMARY_OF_IMPROVEMENTS_SINCE_LAST_RELEASE_ON_THIS_BRANCH@.
This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@.
-Alternatively, you can fetch the unbootstrapped sourcecode from
-anonymous cvs by using the following commands:
+Alternatively, you can fetch the unbootstrapped sourcecode from git by
+using the following commands:
- $ export CVS_RSH=ssh
- $ cvs -z3 -d :pserver:anonymous@cvs.sv.gnu.org:/sources/m4 \
- co -r @CVS_RELEASE_TAG@ m4
+ $ git clone git://git.sv.gnu.org/m4
+ $ git checkout -b branch @GIT_RELEASE_TAG@
You will then need to have recent versions of Automake and Autoconf
installed, and a recent checkout of gnulib, in order to bootstrap the
@@ -388,16 +388,16 @@ Here are the MD5 and SHA1 checksums:
This release was bootstrapped with @BOOTSTRAP_TOOLS_WITH_VERSIONS@.
-Alternatively, you can fetch the unbootstrapped sourcecode from
-anonymous cvs by using the following commands:
+Alternatively, you can fetch the unbootstrapped sourcecode from git by
+using the following commands:
- $ export CVS_RSH=ssh
- $ cvs -z3 -d :pserver:anonymous@cvs.sv.gnu.org:/sources/m4 \
- co -r @CVS_RELEASE_TAG@ m4
+ $ git clone git://git.sv.gnu.org/m4
+ $ git checkout -b branch @GIT_RELEASE_TAG@
You will then need to have the latest release versions of Automake
-(@AUTOMAKE_VERSION@) and Autoconf (@AUTOCONF_VERSION@) installed to
-bootstrap the checked out sources yourself.
+(@AUTOMAKE_VERSION@) and Autoconf (@AUTOCONF_VERSION@) installed, as
+well as a git checkout of gnulib, in order to bootstrap the checked out
+sources yourself.
Please report bugs to <bug-m4@gnu.org>, along with the output of 'make
check' and any other information that might be useful in resolving the
diff --git a/NEWS b/NEWS
index 66e16c34..6d667f0e 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,7 @@ GNU M4 NEWS - User visible changes.
Copyright (C) 1992, 1993, 1994, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc.
-Version 1.4.11 - ?? ??? 2007, by ???? (CVS version 1.4.10a)
+Version 1.4.11 - ?? ??? 2007, by ???? (git version 1.4.10a-*)
* Fix core dump in 'm4 -F file -t undefined', present since -F was
introduced in 1.3.
diff --git a/README b/README
index f6bf2630..5176b55d 100644
--- a/README
+++ b/README
@@ -10,13 +10,14 @@ This release is considered stable.
If GNU `m4' is meant to serve GNU `autoconf', beware that `m4'
should be fully installed *prior to* configuring `autoconf' itself.
-Likewise, if you intend on hacking GNU `m4' from CVS, the bootstrap
+Likewise, if you intend on hacking GNU `m4' from git, 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.
+from git or CVS, more information can be found in the file HACKING,
+only found in a version control checkout.
In the subdirectory `examples' you will find various m4 files, ranging
from trivial test files to rather advanced macros. If you intend to
diff --git a/bootstrap b/bootstrap
index 0387059f..a75e32ce 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
#! /bin/sh
-# bootstrap (GNU M4) version 2007-09-24
+# bootstrap (GNU M4) version 2007-11-02
# Written by Gary V. Vaughan <gary@gnu.org>
# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@@ -22,7 +22,7 @@
# Usage: $progname [options]
-# -f --force bootstrap even when sources are not from CVS
+# -f --force bootstrap even when sources are not from git
# -v --version print version information
# -h,-? --help print short or long help message
@@ -62,8 +62,8 @@ progpath="$0"
progname=`echo "$progpath" | $SED "$basename"`
PROGRAM=bootstrap
-# Detect whether this is a CVS checkout or a tarball
-CVS_only_file=HACKING
+# Detect whether this is a version control system checkout or a tarball
+vcs_only_file=HACKING
# func_echo arg...
# Echo program name prefixed message.
@@ -187,7 +187,7 @@ func_update ()
shift
case $opt in
# Separate optargs to short options:
- -f|--force) CVS_only_file= ;;
+ -f|--force) vcs_only_file= ;;
-\?|-h) func_usage ;;
--help) func_help ;;
--version) func_version ;;
@@ -200,8 +200,9 @@ func_update ()
# 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."
+ if test -n "$vcs_only_file" && test ! -r "$vcs_only_file"; then
+ func_fatal_error \
+ "Bootstrapping from a non-version-control distribution is risky."
fi
}
diff --git a/commit b/commit
deleted file mode 100755
index ad2a3967..00000000
--- a/commit
+++ /dev/null
@@ -1,463 +0,0 @@
-#! /bin/sh
-
-# clcommit (GNU cvs-utils) version 0.11
-# Written by Gary V. Vaughan <gary@gnu.org>
-# and Alexandre Oliva <aoliva@redhat.com>
-
-# Copyright (C) 1999, 2000, 2004, 2006, 2007 Free Software Foundation, Inc.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Usage: $progname [-v] [-h] [-f] [-l] [-n] [-q] [-z N] [-C ChangeLog_file]
-# [-m msg|-F msg_file|-1] [-s addr [--from addr]] [--] [file|dir ...]
-
-# -C file --changelog=file extract commit message from specified ChangeLog
-# -zN --compress=N set compression level (0-9, 0=none, 9=max)
-# -n --dry-run don't commit anything
-# --fast same as --force --first
-# -F file --file=file read commit message from file
-# -1 --first extract first entry from ChangeLog, no cvs diff
-# -f --force don't check (unless *followed* by -n), and just
-# display commit message instead of running $PAGER
-# --from=addr override default from address in commit email
-# -l --local don't descend into subdirectories
-# -m msg --message=msg set commit message
-# --msg=msg same as -m
-# -q --quiet run cvs in quiet mode
-# -s addr --sendmail=addr send a commit email of the differences to ADDR
-# --signature[=file] add FILE to the end of the email (~/.signature)
-# -v --version print version information
-# -h,-? --help print short or long help message
-
-# This script eases checking in changes to CVS-maintained projects
-# with ChangeLog files. It will check that there have been no
-# conflicting commits in the CVS repository and print which files it
-# is going to commit to stderr. A list of files to compare and to
-# check in can be given in the command line. If it is not given, all
-# files in the current directory (and below, unless `-l' is given) are
-# considered for check in.
-
-# The commit message will be extracted from the differences between a
-# file named ChangeLog* in the commit list, or named after -C, and the
-# one in the repository (unless a message was specified with `-m' or
-# `-F'). An empty message is not accepted (but a blank line is). If
-# the message is acceptable, it will be presented for verification
-# (and possible edition) using the $PAGER environment variable (or
-# `more', if it is not set, or `cat', if the `-f' switch is given).
-# If $PAGER exits successfully, the modified files (at that moment)
-# are checked in, unless `-n' was specified, in which case nothing is
-# checked in.
-
-# Report bugs to <gary@gnu.org>
-
-: ${CVS="cvs"}
-: ${MAILNOTIFY="./ltdl/config/mailnotify"}
-: ${MKSTAMP="./ltdl/config/mkstamp"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SED="sed"}
-
-SHELL="/bin/sh"
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,g"
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-# The name of this program:
-progname=`echo "$progpath" | $SED "$basename"`
-PROGRAM=clcommit
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-
-cvs_flags=
-update_flags=
-commit_flags=
-opt_commit=:
-opt_update=:
-opt_first=false
-
-sendmail_to=
-sendmail_from=
-exit_cmd=:
-
-# Locations for important files
-signature_file=
-log_file="${TMPDIR-/tmp}/commitlog.$$"
-
-$RM "${log_file}*"
-trap '$RM "${log_file}*"; exit $EXIT_FAILURE' 1 2 15
-
-set -e
-
-
-# func_echo arg...
-# Echo program name prefixed message.
-func_echo ()
-{
- echo $progname: ${1+"$@"}
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- echo $progname: ${1+"$@"} 1>&2
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_error ${1+"$@"}
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "Try \`$progname --help' for more information."
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- func_error "missing argument for $1"
- exit_cmd=exit
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $SED '/^# Usage:/,/# -h/ {
- s/^# //; s/^# *$//;
- s/\$progname/'$progname'/;
- p;
- }; d' < "$progpath"
- echo
- echo "run \`$progname --help | more' for full usage"
- exit $EXIT_SUCCESS
-}
-
-# func_help
-# Echo long help message to standard output and exit.
-func_help ()
-{
- $SED '/^# Usage:/,/# Report bugs to/ {
- s/^# //; s/^# *$//;
- s/\$progname/'$progname'/;
- p;
- }; d' < "$progpath"
- exit $EXIT_SUCCESS
-}
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $SED '/^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //; s/^# *$//;
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/;
- p;
- }; d' < "$progpath"
- exit $EXIT_SUCCESS
-}
-
-# Parse options once, thoroughly. This comes as soon as possible in
-# the script to make things like `commit --version' happen quickly.
-{
- # sed scripts:
- my_sed_single_opt='1s/^\(..\).*$/\1/;q'
- my_sed_single_rest='1s/^..\(.*\)$/\1/;q'
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
-
- --fast) set -- --force --first ${1+"$@"} ;;
-
- -f|--force) opt_update=false; PAGER=cat ;;
-
- --from) test $# = 0 && func_missing_arg $opt && break
- sendmail_from="$1"
- shift
- ;;
-
- -l|--local) update_flags="$update_flags -l"
- commit_flags="$commit_flags -l"
- ;;
-
- -m|--message|--msg)
- test $# = 0 && func_missing_arg $opt && break
- if $opt_first || test -f "$log_file"; then
- func_error "you can have at most one of -m, -F and -1"
- break
- fi
- echo "$1" > "$log_file"
- shift
- ;;
-
- -F|--file) test $# = 0 && func_missing_arg $opt && break
- if $opt_first || test -f "$log_file"; then
- func_error "you can have at most one of -m, -F and -1"
- break
- fi
- if cat < "$1" > "$log_file"; then :; else
- break
- fi
- shift
- ;;
-
- -1|--first) if test -f "$log_File"; then
- func_error "you can have at most one of -m, -F and -1"
- break
- fi
- opt_first=:
- ;;
-
- -C|--[cC]hange[lL]og)
- test $# = 0 && func_missing_arg $opt && break
- if test -f "$1"; then :; else
- func_error "ChangeLog file \`$1' does not exist"
- break
- fi
- ChangeLog="$1"
- shift
- ;;
-
- -n|--dry-run) opt_commit=false; opt_update=: ;;
-
- -q|--quiet) cvs_flags="$cvs_flags -q" ;;
-
- -s|--sendmail) test $# = 0 && func_missing_arg $opt && break
- sendmail_to="$1"
- shift
- ;;
-
- --signature) test $# = 0 && func_missing_arg $opt && break
- signature_file="$HOME/.signature"
- case $1 in
- -*) ;;
- *) signature_file="$1"; shift ;;
- esac
- if test -f "$signature_file"; then :; else
- func_error "\`$signature_file': file not found"
- break
- fi
- ;;
-
- -z|--compress)
- test $# = 0 && func_missing_arg $opt && break
- case "$1" in
- [0-9]) :;;
- *) func_error "invalid argument for $opt"
- break
- ;;
- esac
- cvs_flags="$cvs_flags -z$1"
- shift
- ;;
-
- # Separate optargs to long options:
- --message=*|--msg=*|--from=*|--file=*|--[Cc]hange[Ll]og=*|--compress=*|--sendmail=*|--signature=*)
- arg=`echo "$opt" | $SED "$my_sed_long_arg"`
- opt=`echo "$opt" | $SED "$my_sed_long_opt"`
- set -- "$opt" "$arg" ${1+"$@"}
- ;;
-
- # Separate optargs to short options:
- -m*|-F*|-C*|-s*|-z*)
- arg=`echo "$opt" |$SED "$my_sed_single_rest"`
- opt=`echo "$opt" |$SED "$my_sed_single_opt"`
- set -- "$opt" "$arg" ${1+"$@"}
- ;;
-
- # Separate non-argument short options:
- -f*|-1*|-n*|-q*)
- rest=`echo "$opt" |$SED "$my_sed_single_rest"`
- opt=`echo "$opt" |$SED "$my_sed_single_opt"`
- set -- "$opt" "-$rest" ${1+"$@"}
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set -- "$opt" ${1+"$@"}; break ;;
- esac
- done
-
- if test -z "$sendmail_to"; then
-
- # can't have a from address without a destination address
- test -n "$sendmail_from" &&
- func_error "can't use --from without --sendmail." && exit_cmd=exit
-
- # can't use a signature file without a destination address
- test -n "$signature_file" &&
- func_error "can't use --signature without --sendmail." && exit_cmd=exit
- fi
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-$opt_update && {
- func_error "$progname: checking for conflicts..."
- if ( $CVS $cvs_flags -q -n update $update_flags ${1+"$@"} |
- while read line; do
- echo "$line"
- echo "$line" >&3
- done | grep '^C'
- ) 3>&1 >/dev/null; then
- func_fatal_error "some conflicts were found, aborting..."
- fi
-}
-
-if test -f "$log_file"; then :; else
- if test -z "$ChangeLog"; then
- for f in ${1+"$@"}; do
- case "$f" in
- ChangeLog* | */ChangeLog*)
- if test -z "$ChangeLog"; then
- ChangeLog="$f"
- else
- func_fatal_error "multiple ChangeLog files: $ChangeLog and $f"
- fi
- ;;
- esac
- done
- fi
-
- func_error "$progname: checking commit message..."
- if $opt_first; then
- skipping=:
- sed 's,^,+,' < ${ChangeLog-ChangeLog} |
- while read line; do
- case "$line" in
- "+") if $skipping; then skipping=false; else break; fi;;
- "+ "*)
- func_error "*** Warning: lines should start with tabs, not spaces; ignoring line:"
- echo "$line" | sed 's/^.//' >&2;;
- "+ "*)
- $skipping || echo "$line" ;;
- esac
- done |
- sed 's,^\+ ,,' > "$log_file" || exit $EXIT_FAILURE
- else
- $CVS $cvs_flags diff -u ${ChangeLog-ChangeLog} |
- while read line; do
- case $line in
- "--- "*) :;;
- "-"*)
- func_error "*** Warning: the following line in ChangeLog diff is suspicious:"
- echo "$line" | sed 's/^.//' >&2;;
- "+ "*)
- func_error "*** Warning: lines should start with tabs, not spaces; ignoring line:"
- echo "$line" | sed 's/^.//' >&2;;
- "+") echo ;;
- "+ "*) echo "$line";;
- esac
- done |
- sed -e 's,\+ ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > "$log_file" \
- || exit $EXIT_FAILURE
- fi
- # The sed script above removes "+TAB" from the beginning of a line, then
- # deletes the first and/or the last line, when they happen to be empty
-fi
-
-grep '[^ ]' < "$log_file" > /dev/null ||
- func_fatal_error "empty commit message, aborting"
-
-if grep '^$' < "$log_file" > /dev/null; then
- func_error "*** Warning: blank lines should not appear within commit messages."
- func_error "*** They should be used to separate distinct commits."
-fi
-
-${PAGER-more} "$log_file" || exit $EXIT_FAILURE
-
-sleep 1 # give the user some time for a ^C
-
-filelist=`cvs -nq up 2>/dev/null | grep '^[MAD] ' | sed 's/^. //'`
-
-# Do not check for empty $log_file again, even though the user might have
-# zeroed it out. If s/he did, it was probably intentional.
-
-if $opt_commit; then
- $CVS $cvs_flags commit $commit_flags -F $log_file ${1+"$@"} || exit $EXIT_FAILURE
-fi
-
-# Send a copy of the log_file if sendmail_to was set:
-if test -n "$sendmail_to"; then
- notify_file="${log_file}.2"
- func_error "Mailing commit notification to $sendmail_to"
- test $# -gt 0 && filelist="$@"
-
- {
- test -f CVS/Root &&
- echo "CVSROOT: `sed -e 's,.*:,,g' CVS/Root`"
- test -f $MKSTAMP &&
- echo "TIMESTAMP: `$SHELL $MKSTAMP < ./ChangeLog`"
- test -f CVS/Repository &&
- echo "Module name: `cat CVS/Repository`"
- test -f CVS/Tag &&
- echo "Branch: `sed -e 's,^T,,;1q' CVS/Tag`"
- test -f CVS/Root &&
- echo "Changes by: `sed -e 's,:.*$,,g;s,^.*:,,' CVS/Root`"
- echo ""
- echo "Log Message:"
- sed -e 's,^, ,' "$log_file"
- test -f "$signature_file" && cat "$signature_file"
- } > "$notify_file"
-
- if test -n "$sendmail_from"; then
- $SHELL $MAILNOTIFY -F "$sendmail_from" -s "`echo $filelist`" -f "$notify_file" -m "text/plain" "$sendmail_to"
- else
- $SHELL $MAILNOTIFY -s "`echo $filelist`" -f "$notify_file" -m "text/plain" "$sendmail_to"
- fi
-fi
-
-$RM "${log_file}*"
-
-exit $EXIT_SUCCESS
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End: