Hi! The following is an attempt to verify two steps from releasing.html which are needed before the gcc_release is run, but we sometimes forget to do it before that, so either NEWS in the tarballs doesn't contain info about the new major release at all, or doesn't contain info about the current release in those pages.
This will complain before tagging the release. Tested with a dry run with exit 0 after the second hunk, ok for trunk? 2018-05-03 Jakub Jelinek <ja...@redhat.com> PR other/85622 * gcc_release: For -f, verify contrib/gennews has the major version pages listed and both index.html and changes.html have been updated for the new release. --- maintainer-scripts/gcc_release.jj 2018-01-25 12:13:11.204328565 +0100 +++ maintainer-scripts/gcc_release 2018-05-03 10:59:10.597852827 +0200 @@ -9,7 +9,7 @@ # Contents: # Script to create a GCC release. # -# Copyright (c) 2001-2015 Free Software Foundation. +# Copyright (c) 2001-2018 Free Software Foundation. # # This file is part of GCC. # @@ -109,6 +109,36 @@ build_sources() { ${SVN} -q co "${SVNROOT}/${SVNBRANCH}" "`basename ${SOURCE_DIRECTORY}`" ||\ error "Could not check out release sources" + + grep -q "gcc-${RELEASE_MAJOR}/index.html gcc-${RELEASE_MAJOR}/changes.html" \ + ${SOURCE_DIRECTORY}/contrib/gennews ||\ + error "New release not listed in contrib/gennews" + + ${SOURCE_DIRECTORY}/contrib/gennews > NEWS ||\ + error "Could not regenerate NEWS files" + + grep -q "no releases of GCC ${RELEASE_MAJOR} have yet been made" NEWS &&\ + error "gcc-${RELEASE_MAJOR}/index.html has not been updated yet" + + grep -q "GCC ${RELEASE_MAJOR} has not been released yet" NEWS &&\ + error "gcc-${RELEASE_MAJOR}/changes.html has not been updated yet" + + thisindex="http:\/\/gcc.gnu.org\/gcc-${RELEASE_MAJOR}\/index.html" + thischanges="http:\/\/gcc.gnu.org\/gcc-${RELEASE_MAJOR}\/changes.html" + previndex="http:\/\/gcc.gnu.org\/gcc-`expr ${RELEASE_MAJOR} - 1`\/index.html" + sed -n -e "/^${thisindex}/,/^${thischanges}/p" NEWS |\ + sed -n -e "/Release History/,/References and Acknowledgments/p" |\ + grep -q "GCC ${RELEASE_MAJOR}.${RELEASE_MINOR}" ||\ + error "GCC ${RELEASE_MAJOR}.${RELEASE_MINOR} not mentioned "\ + "in gcc-${RELEASE_MAJOR}/index.html" + + sed -n -e "/^${thischanges}/,/^${previndex}/p" NEWS |\ + grep -q "^GCC ${RELEASE_MAJOR}.${RELEASE_MINOR}" ||\ + error "GCC ${RELEASE_MAJOR}.${RELEASE_MINOR} not mentioned "\ + "in gcc-${RELEASE_MAJOR}/changes.html" + + rm -f NEWS + svnciargs="" for x in `changedir ${SOURCE_DIRECTORY} && \ find . -name ChangeLog`; do Jakub