This is an automated email from the ASF dual-hosted git repository.

schultz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/main by this push:
     new 2b4031bb76 Record toolchain version numbers when performing a release. 
Verify toolchain version numbers when verifying a release.
2b4031bb76 is described below

commit 2b4031bb769985008ff81a3916491a48cb8dbdee
Author: schultz <schu...@apache.org>
AuthorDate: Thu Oct 12 13:13:23 2023 -0700

    Record toolchain version numbers when performing a release.
    Verify toolchain version numbers when verifying a release.
---
 build.xml | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index 10ada18129..f6cf11b037 100644
--- a/build.xml
+++ b/build.xml
@@ -2653,6 +2653,7 @@ skip.installer property in build.properties" />
 
   <target name="pre-release" depends="-pre-release-lone-target-check, 
-pre-release-read-asf-username"
       description="Prepares for a release build by writing 
build.properties.release which contains information about the release-build 
environment.">
+    <antversion property="antversion"/>
     <echo file="build.properties.release"># 
-----------------------------------------------------------------------------
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -2705,6 +2706,8 @@ gpg.exec=${gpg.exec}
 # File encoding:   ${file.encoding}
 #
 # Release Manager: ${release.asfusername}
+release-java-version=${java.vm.version}
+release-ant-version=${antversion}
 </echo>
     <echo file="res/maven/mvn.properties.release"># 
-----------------------------------------------------------------------------
 # Licensed to the Apache Software Foundation (ASF) under one or more
@@ -4065,7 +4068,8 @@ Signature mismatch for @{basefile}:
     </sequential>
   </macrodef>
 
-  <target name="verify-release" description="Verifies a release build against 
published hashes.">
+  <target name="verify-release" depends="-check-release-toolchain-versions, 
-require-release-toolchain-versions" description="Verifies a release build 
against published hashes.">
+
     <available property="released" file="build.properties.release" />
     <fail unless="released">
 
@@ -4166,6 +4170,41 @@ One or more signatures failed.
 
 
 All (important) signatures are verified; the build appears to be reproducible.
+</echo>
+  </target>
+
+  <target name="-check-release-toolchain-versions" if="release-java-version">
+    <!-- Establish default value -->
+    <property name="check-release-toolchain" value="true" />
+    <condition property="check-release-toolchain-versions">
+      <not>
+        <isfalse value="${check-release-toolchain}" />
+      </not>
+    </condition>
+  </target>
+
+  <target name="-require-release-toolchain-versions" 
if="check-release-toolchain-versions">
+    <antversion property="antversion"/>
+    <condition property="release-toolchain-versions-match">
+      <and>
+        <antversion exactly="${antversion}" />
+        <equals arg1="${java.vm.version}" arg2="${release-java-version}" />
+      </and>
+    </condition>
+
+    <fail unless="release-toolchain-versions-match">
+Release toolchain versions do not match local toolchain:
+
+Release Java: ${release-java-version}
+Local Java:   ${java.vm.version}
+Release Ant:  ${release-ant-version}
+Local Ant:    ${antversion}
+
+You may not be able to verify that this build is reproducible.
+
+Re-run with -Dcheck-release-toolchain=false to disable this check.
+</fail>
+    <echo>Local toolchain versions match release toolchain (Java 
${release-java-version}, Ant ${release-ant-version}).
 </echo>
   </target>
 </project>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to