summaryrefslogtreecommitdiffstats
path: root/source/d/gcc/fetch-from-svn-and-prep-tarball.sh
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/gcc/fetch-from-svn-and-prep-tarball.sh')
-rwxr-xr-xsource/d/gcc/fetch-from-svn-and-prep-tarball.sh83
1 files changed, 83 insertions, 0 deletions
diff --git a/source/d/gcc/fetch-from-svn-and-prep-tarball.sh b/source/d/gcc/fetch-from-svn-and-prep-tarball.sh
new file mode 100755
index 000000000..b38c2fc0c
--- /dev/null
+++ b/source/d/gcc/fetch-from-svn-and-prep-tarball.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+# Copyright 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
+#
+# Parts of this script are based on the gcc_release script by
+# Jeffrey Law, Bernd Schmidt, Mark Mitchell.
+# Copyright (c) 2001-2015 Free Software Foundation.
+#
+# 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, 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/>.
+
+BRANCH=${BRANCH:-gcc-8-branch}
+
+rm -rf tmp-fetch
+mkdir tmp-fetch
+cd tmp-fetch
+# Not sure why, but this emits a different revision when the fetch is done than
+# what's returned by "svn log -r COMMITTED". We'll trust the latter.
+svn co svn://gcc.gnu.org/svn/gcc/branches/${BRANCH} gcc
+cd gcc
+echo "Generating LAST_UPDATED..."
+svn log -r COMMITTED > LAST_UPDATED.raw
+REVISION="$(cat LAST_UPDATED.raw | head -n 2 | tail -n 1 | cut -f 1 -d ' ' | cut -f 2 -d r)"
+DATE="$(date -d "$(cat LAST_UPDATED.raw | head -n 2 | tail -n 1 | cut -f 3 -d '|' | cut -f 1 -d '(')" "+%Y%m%d")"
+echo "Obtained from SVN: branches/${BRANCH} revision ${REVISION}" > LAST_UPDATED
+cat LAST_UPDATED.raw >> LAST_UPDATED
+rm LAST_UPDATED.raw
+# Remove the .svn data (not packaged):
+rm -r .svn
+# Get the version number:
+VERSION=$(cat gcc/BASE-VER)
+# Rename the directory:
+cd ..
+GCCDIR="gcc-${VERSION}_${DATE}_r${REVISION}"
+mv gcc $GCCDIR
+cd $GCCDIR
+# Now we need to generate some documentation files that would normally be
+# created during the GCC release process:
+echo "Generating INSTALL/ documentation..."
+SOURCEDIR=gcc/doc \
+DESTDIR=INSTALL \
+gcc/doc/install.texi2html 1> /dev/null 2> /dev/null
+echo "Generating NEWS..."
+contrib/gennews > NEWS
+# Create a "MD5SUMS" file to use for checking the validity of the release.
+echo "Generating MD5SUMS..."
+echo \
+"# This file contains the MD5 checksums of the files in the
+# "${GCCDIR}".tar.lz tarball.
+#
+# Besides verifying that all files in the tarball were correctly expanded,
+# it also can be used to determine if any files have changed since the
+# tarball was expanded or to verify that a patchfile was correctly applied.
+#
+# Suggested usage:
+# md5sum -c MD5SUMS | grep -v \"OK$\"
+#" > MD5SUMS
+find . -type f |
+sed -e 's:^\./::' -e '/MD5SUMS/d' |
+sort |
+xargs md5sum >>MD5SUMS
+cd ..
+# Tar it up:
+echo "Creating ${GCCDIR}.tar..."
+tar cf ${GCCDIR}.tar ${GCCDIR}
+# Compress with (p)lzip:
+echo "Compressing ${GCCDIR}.tar.lz..."
+plzip -9 ${GCCDIR}.tar
+# Move the new archive up a directory:
+mv ${GCCDIR}.tar.lz ..
+# Move up a directory and then delete the cruft:
+cd ..
+rm -r tmp-fetch
+echo "Done."