This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Update gcc_release on 4.0 branch
- From: Mark Mitchell <mark at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 5 Mar 2006 12:29:01 -0800
- Subject: PATCH: Update gcc_release on 4.0 branch
- Reply-to: mark at codesourcery dot com
The 4.0 branch version of gcc_release still used CVS. I updated it
wholesale to the version used on the 4.1 branch, after consulting with
Joseph, who pointed out that the snapshots are all built using the
same release script.
The updated script seems to have worked (tested by building 4.0.3
RC1), so I've checked in this change, on the 4.1 branch.
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713
2006-03-05 Mark Mitchell <mark@codesourcery.com>
* gcc_release: Update to version from 4.1 branch.
Index: gcc_release
===================================================================
--- gcc_release (revision 111679)
+++ gcc_release (working copy)
@@ -25,8 +25,8 @@
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING. If not, write to
-# the Free Software Foundation, 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
#
########################################################################
@@ -65,19 +65,19 @@ inform() {
usage() {
cat <<EOF
gcc_release -r release [-f] [further options]
-gcc_release -s name:cvsbranch [further options]
+gcc_release -s name:svnbranch [further options]
Options:
-r release Version of the form X.Y or X.Y.Z.
- -s name:cvsbranch Create a snapshot, not a real release.
+ -s name:svnbranch Create a snapshot, not a real release.
-d destination Local working directory where we will build the release
(default=${HOME}).
-f Create a final release (and update ChangeLogs,...).
-l Indicate that we are running on gcc.gnu.org.
-p previous-tarball Location of a previous tarball (to generate diff files).
- -t tag Tag to mark the release in CVS.
+ -t tag Tag to mark the release in SVN.
-u username Username for upload operations.
EOF
exit 1
@@ -118,8 +118,7 @@ build_sources() {
if [ ${FINAL} -ne 0 ]; then
inform "Updating ChangeLogs and version files"
- ${CVS} co -d "`basename ${SOURCE_DIRECTORY}`" \
- -r ${CVSBRANCH} gcc || \
+ ${SVN} -q co "${SVNROOT}/${SVNBRANCH}" "`basename ${SOURCE_DIRECTORY}`" ||\
error "Could not check out release sources"
for x in `find ${SOURCE_DIRECTORY} -name ChangeLog`; do
# Update this ChangeLog file only if it does not yet contain the
@@ -135,76 +134,64 @@ EOF
mv ${x}.new ${x} || \
error "Could not update ${x}"
(changedir `dirname ${x}` && \
- ${CVS} ci -m 'Mark ChangeLog' `basename ${x}`) || \
+ ${SVN} -q ci -m 'Mark ChangeLog' `basename ${x}`) || \
error "Could not commit ${x}"
fi
done
- # Update `gcc/version.c'.
- for x in gcc/version.c; do
- y=`basename ${x}`
- (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \
- sed -e 's|version_string\[\] = \".*\"|version_string\[\] = \"'${RELEASE}'\"|g' < ${y} > ${y}.new && \
- mv ${y}.new ${y} && \
- ${CVS} ci -m 'Update version' ${y}) || \
- error "Could not update ${x}"
- done
+ # Update gcc/DEV-PHASE if it exists, otherwise gcc/version.c.
+
+ if [ -f ${SOURCE_DIRECTORY}/gcc/DEV-PHASE ]; then
+ [ `cat ${SOURCE_DIRECTORY}/gcc/BASE-VER` = ${RELEASE} ] || \
+ error "Release number ${RELEASE} does not match BASE-VER"
+ (changedir ${SOURCE_DIRECTORY}/gcc && \
+ : > DEV-PHASE && \
+ ${SVN} -q ci -m 'Mark as release' DEV-PHASE) || \
+ error "Could not update DEV-PHASE"
+ else
+ for x in gcc/version.c; do
+ y=`basename ${x}`
+ (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \
+ sed -e 's|version_string\[\] = \".*\"|version_string\[\] = \"'${RELEASE}'\"|g' < ${y} > ${y}.new && \
+ mv ${y}.new ${y} && \
+ ${SVN} -q ci -m 'Update version' ${y}) || \
+ error "Could not update ${x}"
+ done
+ fi
# Make sure we tag the sources for a final release.
- TAG="gcc_`echo ${RELEASE} | tr . _`_release"
+ TAG="tags/gcc_`echo ${RELEASE} | tr . _`_release"
rm -rf ${SOURCE_DIRECTORY}
fi
# Tag the sources.
- EXPORTDATE=""
if [ -n "${TAG}" ]; then
inform "Tagging sources as ${TAG}"
- EXPORTTAG="-r${TAG}"
- # Try to check out a file using ${TAG}. If the command succeeds,
- # then the sources have already been tagged. We don't want to
- # overwrite an existing tag, so we don't want to use the "-F"
- # option to "cvs rtag" below. So, if the tag already exists,
- # issue an error message; the release manager can manually remove
- # the tag if appropriate.
- if ${CVS} export -d "`basename ${SOURCE_DIRECTORY}`" \
- "${EXPORTTAG}" gcc/ChangeLog; then
+ # We don't want to overwrite an existing tag. So, if the tag
+ # already exists, issue an error message; the release manager can
+ # manually remove the tag if appropriate.
+ echo "${SVN} ls ${SVNROOT}/${TAG}/ChangeLog"
+ if ${SVN} ls "${SVNROOT}/${TAG}/ChangeLog"; then
error "Tag ${TAG} already exists"
fi
- ${CVS} rtag -r ${CVSBRANCH} ${TAG} gcc || \
+ ${SVN} -m "Tagging source as ${TAG}" cp "${SVNROOT}/${SVNBRANCH}" "${SVNROOT}/${TAG}" || \
error "Could not tag sources"
- else
- if [ ${CVSBRANCH} != "HEAD" ]; then
- EXPORTTAG="-r${CVSBRANCH}"
- # It does not work to use both "-r" and "-D" with
- # "cvs export" so EXPORTDATE is not set here.
- else
- # HEAD is the default branch, no need to specify it.
- EXPORTTAG=""
- EXPORTDATE="-D`date -u +"%Y-%m-%d %H:%M"` UTC"
- fi
+ SVNBRANCH=${TAG}
fi
+ SVNREV=`${SVN} info "${SVNROOT}/${SVNBRANCH}"|awk '/Revision:/ {print $2}'`
# Export the current sources.
- inform "Retrieving sources (cvs export ${EXPORTTAG} ${EXPORTDATE} gcc)"
+ inform "Retrieving sources (svn export -r ${SVNREV} ${SVNROOT}/${SVNBRANCH})"
- if [ -z "${EXPORTTAG}" ]; then
- ${CVS} export -d "`basename ${SOURCE_DIRECTORY}`" \
- "${EXPORTDATE}" gcc || \
- error "Could not retrieve sources"
- elif [ -z "${EXPORTDATE}" ]; then
- ${CVS} export -d "`basename ${SOURCE_DIRECTORY}`" \
- "${EXPORTTAG}" gcc || \
- error "Could not retrieve sources"
- else
- error "Cannot specify -r and -D at the same time"
- fi
+ ${SVN} -q export -r${SVNREV} "${SVNROOT}/${SVNBRANCH}" "`basename ${SOURCE_DIRECTORY}`" ||\
+ error "Could not retrieve sources"
# Run gcc_update on them to set up the timestamps nicely, and (re)write
- # the LAST_UPDATED file containing the CVS tag/date used.
+ # the LAST_UPDATED file containing the SVN tag/revision used.
changedir "gcc-${RELEASE}"
contrib/gcc_update --touch
- echo "Obtained from CVS: ${EXPORTTAG} ${EXPORTDATE}" > LAST_UPDATED
+ echo "Obtained from SVN: ${SVNBRANCH} revision ${SVNREV}" > LAST_UPDATED
# Obtain some documentation files from the wwwdocs module.
inform "Retrieving HTML documentation"
@@ -227,7 +214,7 @@ EOF
done
# For a prerelease or real release, we need to generate additional
- # files not present in CVS.
+ # files not present in SVN.
changedir "${SOURCE_DIRECTORY}"
if [ $SNAPSHOT -ne 1 ]; then
# Generate the documentation.
@@ -452,8 +439,8 @@ announce_snapshot() {
ftp://gcc.gnu.org/pub/gcc/snapshots/"${RELEASE}"/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.
-This snapshot has been generated from the GCC "${BRANCH}" CVS branch
-with the following options: "${EXPORTTAG} ${EXPORTDATE}"
+This snapshot has been generated from the GCC "${BRANCH}" SVN branch
+with the following options: "svn://gcc.gnu.org/svn/gcc/${SVNBRANCH} revision ${SVNREV}"
You'll find:
" > ${SNAPSHOT_README}
@@ -476,8 +463,8 @@ for testing purposes.</p>
we highly recommend you join the GCC developers list. Details for
how to sign up can be found on the GCC project home page.</p>
-<p>This snapshot has been generated from the GCC "${BRANCH}" CVS branch
-with the following options: <code>"${EXPORTTAG} ${EXPORTDATE}"</code></p>
+<p>This snapshot has been generated from the GCC "${BRANCH}" SVN branch
+with the following options: <code>"svn://gcc.gnu.org/svn/gcc/${SVNBRANCH} revision ${SVNREV}"</code></p>
<table>" > ${SNAPSHOT_INDEX}
@@ -535,14 +522,13 @@ Last modified "${TEXT_DATE}"
DATE=`date "+%Y%m%d"`
LONG_DATE=`date "+%Y-%m-%d"`
+SVN=${SVN:-/usr/bin/svn}
# The CVS server containing the GCC repository.
-CVS_SERVER="gcc.gnu.org"
+SVN_SERVER="gcc.gnu.org"
# The path to the repository on that server.
-CVS_REPOSITORY="/cvs/gcc"
-# The CVS protocol to use.
-CVS_PROTOCOL="ext"
+SVN_REPOSITORY="/svn/gcc"
# The username to use when connecting to the server.
-CVS_USERNAME="${USER}"
+SVN_USERNAME="${USER}"
# The machine to which files will be uploaded.
GCC_HOSTNAME="gcc.gnu.org"
@@ -571,7 +557,7 @@ BRANCH=""
# The name of the branch from which the release should be made, as used
# for our version control system.
-CVSBRANCH=""
+SVNBRANCH=""
# The tag to apply to the sources used for the release.
TAG=""
@@ -589,7 +575,7 @@ SOURCE_DIRECTORY=""
# The directories that should be part of the various language-specific
# tar files. These are all relative to the top of the source tree.
-ADA_DIRS="gcc/ada libada"
+ADA_DIRS="gcc/ada libada gnattools"
CPLUSPLUS_DIRS="gcc/cp libstdc++-v3"
FORTRAN_DIRS="gcc/f libf2c"
FORTRAN95_DIRS="gcc/fortran libgfortran"
@@ -639,11 +625,11 @@ while getopts "d:fr:u:t:p:s:l" ARG; do
d) DESTINATION="${OPTARG}";;
r) RELEASE="${OPTARG}";;
t) TAG="${OPTARG}";;
- u) CVS_USERNAME="${OPTARG}";;
+ u) SVN_USERNAME="${OPTARG}";;
f) FINAL=1;;
s) SNAPSHOT=1
BRANCH=${OPTARG%:*}
- CVSBRANCH=${OPTARG#*:}
+ SVNBRANCH=${OPTARG#*:}
;;
l) LOCAL=1
SCP=cp
@@ -677,7 +663,7 @@ while [ $# -ne 0 ]; do
done
# Perform consistency checking.
-if [ ${LOCAL} -eq 0 ] && [ -z ${CVS_USERNAME} ]; then
+if [ ${LOCAL} -eq 0 ] && [ -z ${SVN_USERNAME} ]; then
error "No username specified"
fi
@@ -708,7 +694,7 @@ if [ $SNAPSHOT -eq 0 ]; then
# Compute the name of the branch, which is based solely on the major
# and minor release numbers.
- CVSBRANCH="gcc-${RELEASE_MAJOR}_${RELEASE_MINOR}-branch"
+ SVNBRANCH="branches/gcc-${RELEASE_MAJOR}_${RELEASE_MINOR}-branch"
# If this is not a final release, set various parameters acordingly.
if [ ${FINAL} -ne 1 ]; then
@@ -720,9 +706,6 @@ if [ $SNAPSHOT -eq 0 ]; then
else
RELEASE=${BRANCH}-${DATE}
FTP_PATH="${FTP_PATH}/snapshots/${RELEASE}"
- if [ ${CVSBRANCH} != "HEAD" ]; then
- TAG=gcc-ss-`echo ${RELEASE} | tr '.' '_'`
- fi
# If diffs are requested when building locally on gcc.gnu.org, we (usually)
# know what the last snapshot date was and take the corresponding tarballs,
@@ -747,13 +730,15 @@ JAVA_DIRS=`adjust_dirs ${JAVA_DIRS}`
OBJECTIVEC_DIRS=`adjust_dirs ${OBJECTIVEC_DIRS}`
TESTSUITE_DIRS=`adjust_dirs ${TESTSUITE_DIRS}`
-# Set up CVSROOT.
+# Set up SVNROOT.
if [ $LOCAL -eq 0 ]; then
- CVSROOT=":${CVS_PROTOCOL}:${CVS_USERNAME}@"
- CVSROOT="${CVSROOT}${CVS_SERVER}:${CVS_REPOSITORY}"
+ SVNROOT="svn+ssh://${SVN_USERNAME}@${SVN_SERVER}${SVN_REPOSITORY}"
+ CVSROOT=":ext:${SVN_USERNAME}@gcc.gnu.org/cvs/gcc"
else
- CVSROOT="${CVS_REPOSITORY}"
+ SVNROOT="file:///svn/gcc"
+ CVSROOT="/cvs/gcc"
fi
+export SVNROOT
export CVSROOT
########################################################################
@@ -793,7 +778,6 @@ if [ $MODE_GZIP -ne 0 ]; then
fi
# Upload them to the FTP server.
-
if [ $MODE_UPLOAD -ne 0 ]; then
upload_files