diff options
author | Eric Blake <ebb9@byu.net> | 2007-11-02 14:41:45 -0600 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2007-11-02 14:41:45 -0600 |
commit | 0f7701a19187152180a0b9907fab29d152fc534a (patch) | |
tree | 3662a995d187a392232522565a0de101cbc025e8 | |
parent | 01ea20559b76e22383bf71d87b598d84b420761d (diff) | |
download | m4-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-- | ChangeLog | 7 | ||||
-rw-r--r-- | HACKING | 30 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | README | 5 | ||||
-rwxr-xr-x | bootstrap | 15 | ||||
-rwxr-xr-x | commit | 463 |
6 files changed, 34 insertions, 488 deletions
@@ -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. @@ -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 @@ -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. @@ -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 @@ -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: |