aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2000-11-11 05:30:16 -0700
committerGerald Pfeifer <gerald@gcc.gnu.org>2000-11-11 12:30:16 +0000
commit1e8ba2a38cd259556340a4143716e7ee96b3f56c (patch)
treed6af08d281a7397cb552a9313d130aff58551d56
parentc1030c7c86a8097c2be12596ad54c8a771c127ab (diff)
downloadgcc-1e8ba2a38cd259556340a4143716e7ee96b3f56c.zip
gcc-1e8ba2a38cd259556340a4143716e7ee96b3f56c.tar.gz
gcc-1e8ba2a38cd259556340a4143716e7ee96b3f56c.tar.bz2
* release: New file.
From-SVN: r37384
-rw-r--r--contrib/ChangeLog4
-rw-r--r--contrib/release239
2 files changed, 243 insertions, 0 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 556d5da..545057a 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-11 Jeff Law <law@redhat.com>,
+
+ * release: New file.
+
2000-11-08 Jeff Law <law@redhat.com>,
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
diff --git a/contrib/release b/contrib/release
new file mode 100644
index 0000000..cc34fb2
--- /dev/null
+++ b/contrib/release
@@ -0,0 +1,239 @@
+#! /bin/sh -x
+#
+# GCC release generation script.
+#
+# Originally written by Jeff Law <law@redhat.com>.
+
+PATH=/home/law/gcc:$PATH
+
+TMPDIR=/var/tmp
+STATEDIR=/home/law
+
+export TMPDIR STATEDIR
+
+# We run this on the cvs server itself so we can get at the cvs
+# files quickly. It also assumes access to my home dir for some
+# programs.
+CVSROOT=/cvs/gcc
+export CVSROOT
+
+# Get somewhere useful with a lot of disk space.
+cd $TMPDIR
+
+# We need separate variables for the tag in the CVS sources and the
+# name of the release directory. Consider if we have a packaging problem
+# and need to respin the release. The sources do not change, but the release
+# name changes.
+#
+# We used to use a tag to get the previous release, but it is more reliable to
+# actually unpack the previous release from the ftp directory. Consider files
+# like .brik which are in the release, but not in the repository.
+#
+if test $# != 6 ; then
+ echo "usage: release release-tag release-name release_branch last-release-name prerelease dotag"
+ exit 1
+fi
+
+release_tag=$1
+release_name=$2
+release_suffix=`echo $release_name | sed -e s#gcc-##`
+release_branch=$3
+last_release_name=$4
+last_release_suffix=`echo $last_release_name | sed -e s#gcc-##`
+prerelease=$5
+dotag=$6
+
+case $last_release_name in
+ egcs-1.0*)
+ echo "unprotoize.c and README.gcc need special handling"
+ exit 1;
+ ;;
+ egcs-1.1*)
+ echo "No java or chill in egcs-1.1*"
+ ;;
+
+ gcc-2.95*)
+ echo "No testsuites in gcc-2.95*"
+ ;;
+esac
+
+# Get into a temporary directory so as not to be confused by
+# any existing CVS administration files.
+rm -rf $$
+mkdir $$
+cd $$
+
+if test $prerelease = no -a $dotag = yes; then
+ update_changelogs $release_name $release_branch
+fi
+
+# If requested, tag the branch. Three steps, first remove the old tag from
+# the repository, then check out the release branch, then retag the release
+# branch.
+if test $dotag = yes; then
+ rm -rf egcs
+ cvs -Q rtag -d $release_tag egcs
+ cvs -Q co -r $release_branch egcs
+ cvs -Q tag -f $release_tag
+ rm -rf egcs
+fi
+
+# Get a copy of the previous release. Get it from the ftp dir to avoid minor
+# issues with files like .brik not being in the repository.
+if test $prerelease = yes; then
+ echo "Yow!"
+ exit 1;
+ zcat ~ftp/pub/gcc/snapshots/egcs-1.1.2-prerelease/$last_release_name.tar.gz | tar xf -
+else
+ zcat ~ftp/pub/gcc/releases/$last_release_name/$last_release_name.tar.gz | tar xf -
+fi
+
+# Files/directories which are not part of the egcs-core module.
+noncore_files="gcc/cp libio libstdc++ gcc/f libf2c gcc/objc libobjc gcc/ch libchill gcc/java libjava gcc/testsuite"
+
+# Get the egcs core. Note that the egcs-core module doesn't work yet, so
+# we get the whole directory, then prune the things we do not want.
+#
+# Also, get the latest copy of the installation instructions and the
+# faq in html, build plaintext versions of those documents.
+cvs -Q export -ko -r$release_tag egcs
+cd egcs
+contrib/gcc_update --touch
+cp /home/law/gcc/gcc.pot gcc/po
+cd ..
+cvs -Q export -ko -Dnow wwwdocs/htdocs/install
+cvs -Q export -ko -Dnow wwwdocs/htdocs/faq.html
+#cvs -Q export -ko -Dnow wwwdocs/htdocs/bugs.html
+mv egcs $release_name
+release_docs $release_name $$
+
+# Build a list of files in this release.
+cd $release_name
+find . -type f -print | sort > ../files_$release_name
+/home/law/bin/brik -Gb -f ../files_$release_name > ../.brik_$release_name
+cp ../.brik_$release_name ./.brik
+
+# Get back to the directory with the two releases in it.
+cd ..
+
+# Remove anything that is not part of the core
+for file in $noncore_files; do
+ rm -rf $last_release_name/$file
+ rm -rf $release_name/$file
+done
+
+# Make the core tarball
+tar cf - $release_name | gzip --best > gcc-core-$release_suffix.tar.gz
+
+# make empty directories for directories that disappeared so that
+# patch will delete any files in those directories when patching up to
+# this release
+case $last_release_name in
+ gcc-2.95*)
+ mkdir $release_name/xiberty
+ mkdir $release_name/contrib/fixinc
+ ;;
+esac
+
+# Diff the core modules
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name $release_name > gcc-core-$last_release_suffix-$release_suffix.diff
+
+# Remove the core gunk
+rm -rf $last_release_name
+rm -rf $release_name
+
+
+# Go back and get the full distributions.
+if test $prerelease = yes; then
+ zcat ~ftp/pub/gcc/snapshots/egcs-1.1.2-prerelease/$last_release_name.tar.gz | tar xf -
+else
+ zcat ~ftp/pub/gcc/releases/$last_release_name/$last_release_name.tar.gz | tar xf -
+fi
+
+cvs -Q export -ko -r$release_tag egcs
+cd egcs
+contrib/gcc_update --touch
+cp /home/law/gcc/gcc.pot gcc/po
+cd ..
+cvs -Q export -ko -Dnow wwwdocs/htdocs/install
+cvs -Q export -ko -Dnow wwwdocs/htdocs/faq.html
+#cvs -Q export -ko -Dnow wwwdocs/htdocs/bugs.html
+mv egcs $release_name
+find $release_name/gcc/testsuite -type f -print | xargs rm -f
+release_docs $release_name $$
+
+
+# No need to regenerate the .brik file. We didn't delete it.
+cp .brik_$release_name $release_name/.brik
+
+# We don't need this anymore.
+rm .brik_$release_name
+rm .brik_$last_release_name
+
+# Make tarballs
+
+tar cf - $release_name/.brik $release_name/gcc/f $release_name/libf2c | gzip --best > gcc-g77-$release_suffix.tar.gz
+tar cf - $release_name/.brik $release_name/gcc/java | gzip --best > gcc-java-$release_suffix.tar.gz
+tar cf - $release_name/.brik $release_name/gcc/ch $release_name/libchill | gzip --best > gcc-chill-$release_suffix.tar.gz
+#tar cf - $release_name/.brik $release_name/gcc/testsuite/g77.f-torture | gzip --best > gcc-g77-testsuite-$release_suffix.tar.gz
+tar cf - $release_name/.brik $release_name/gcc/objc $release_name/libobjc | gzip --best > gcc-objc-$release_suffix.tar.gz
+tar cf - $release_name/.brik $release_name/gcc/cp $release_name/libio $release_name/libstdc++ | gzip --best > gcc-g++-$release_suffix.tar.gz
+#tar cf - $release_name/.brik $release_name/gcc/testsuite/g++.old-deja | gzip --best > gcc-g++-tests-$release_suffix.tar.gz
+#tar cf - $release_name/.brik $release_name/gcc/testsuite | gzip --best > gcc-tests-$release_suffix.tar.gz
+tar cf - $release_name | gzip --best > $release_name.tar.gz
+# make empty directories for directories that disappeared so that
+# patch will delete any files in those directories when patching up to
+# this release
+# make empty directories for directories that disappeared so that
+# patch will delete any files in those directories when patching up to
+# this release
+case $last_release_name in
+ gcc-2.95*)
+ mkdir $release_name/xiberty
+ mkdir $release_name/contrib/fixinc
+ ;;
+esac
+
+# Now make diffs for g77, g77-testsuite objc, g++, g++-testsuite, testsuite,
+# then the whole bloody thing. Add libobjc, java & chill for next major
+#release.
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/f $release_name/gcc/f > gcc-g77-$last_release_suffix-$release_suffix.diff
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libf2c $release_name/libf2c >> gcc-g77-$last_release_suffix-$release_suffix.diff
+
+#diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/testsuite/g77.f-torture $release_name/gcc/testsuite/g77.f-torture > gcc-g77-testsuite-$last_release_suffix-$release_suffix.diff
+
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/ch $release_name/gcc/ch > gcc-chill-$last_release_suffix-$release_suffix.diff
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libchill $release_name/libchill >> gcc-chill-$last_release_suffix-$release_suffix.diff
+
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/java $release_name/gcc/java > gcc-java-$last_release_suffix-$release_suffix.diff
+#diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libf2c $release_name/libf2c >> gcc-java-$last_release_suffix-$release_suffix.diff
+
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/objc $release_name/gcc/objc > gcc-objc-$last_release_suffix-$release_suffix.diff
+mkdir $last_release_name/libobjc
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libobjc $release_name/libobjc >> gcc-objc-$last_release_suffix-$release_suffix.diff
+
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/cp $release_name/gcc/cp > gcc-g++-$last_release_suffix-$release_suffix.diff
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libio $release_name/libio >> gcc-g++-$last_release_suffix-$release_suffix.diff
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/libstdc++ $release_name/libstdc++ >> gcc-g++-$last_release_suffix-$release_suffix.diff
+
+#diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/testsuite/g++.old-deja $release_name/gcc/testsuite/g++.old-deja > gcc-g++-tests-$last_release_suffix-$release_suffix.diff
+
+#diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name/gcc/testsuite $release_name/gcc/testsuite > gcc-tests-$last_release_suffix-$release_suffix.diff
+
+diff -x de.gmo -x fr.gmo -Nrc3p $last_release_name $release_name > gcc-$last_release_suffix-$release_suffix.diff
+
+
+# Remove the old snapshot, we're done with it.
+rm -rf $last_release_name
+
+
+# Compress the diff files.
+gzip --best *.diff
+
+# bzip everything too
+
+# Copy them to the FTP server XXX
+
+# Update links on the ftp server XXX
+
+# Announce it XXX