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

Reply via email to