Modified: tomcat/tc7.0.x/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/build.xml?rev=1834565&r1=1834564&r2=1834565&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/build.xml (original)
+++ tomcat/tc7.0.x/trunk/build.xml Thu Jun 28 00:52:16 2018
@@ -1565,30 +1565,45 @@
       <param name="sourcefile.2" value="${commons-logging-src.loc.2}"/>
       <param name="destfile" value="${commons-logging-src.tar.gz}"/>
       <param name="destdir" value="${commons-logging.home}"/>
+      <param name="checksum.enabled" 
value="${commons-logging-src.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-logging-src.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${commons-logging-src.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${avalon-framework.loc}"/>
       <param name="destfile" value="${avalon-framework.jar}"/>
       <param name="destdir" value="${avalon-framework.home}"/>
+      <param name="checksum.enabled" 
value="${avalon-framework.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${avalon-framework.checksum.algorithm}"/>
+      <param name="checksum.value" value="${avalon-framework.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${log4j.loc}"/>
       <param name="destfile" value="${log4j.jar}"/>
       <param name="destdir" value="${log4j.home}"/>
+      <param name="checksum.enabled" value="${log4j.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${log4j.checksum.algorithm}"/>
+      <param name="checksum.value" value="${log4j.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${logkit.loc}"/>
       <param name="destfile" value="${logkit.jar}"/>
       <param name="destdir" value="${logkit.home}"/>
+      <param name="checksum.enabled" value="${logkit.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${logkit.checksum.algorithm}"/>
+      <param name="checksum.value" value="${logkit.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${servletapi.loc}"/>
       <param name="destfile" value="${servletapi.jar}"/>
       <param name="destdir" value="${servletapi.home}"/>
+      <param name="checksum.enabled" value="${servletapi.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${servletapi.checksum.algorithm}"/>
+      <param name="checksum.value" value="${servletapi.checksum.value}"/>
     </antcall>
 
   </target>
@@ -1705,12 +1720,18 @@
       <param name="sourcefile" value="${jaxrpc-lib.loc}"/>
       <param name="destfile" value="${jaxrpc-lib.jar}"/>
       <param name="destdir" value="${jaxrpc-lib.home}"/>
+      <param name="checksum.enabled" value="${jaxrpc-lib.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${jaxrpc-lib.checksum.algorithm}"/>
+      <param name="checksum.value" value="${jaxrpc-lib.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${wsdl4j-lib.loc}"/>
       <param name="destfile" value="${wsdl4j-lib.jar}"/>
       <param name="destdir" value="${wsdl4j-lib.home}"/>
+      <param name="checksum.enabled" value="${wsdl4j-lib.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${wsdl4j-lib.checksum.algorithm}"/>
+      <param name="checksum.value" value="${wsdl4j-lib.checksum.value}"/>
     </antcall>
 
     <copy file="${jaxrpc-lib.jar}"
@@ -2608,6 +2629,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile" value="${checkstyle.loc}"/>
       <param name="destfile" value="${checkstyle.jar}"/>
       <param name="destdir" value="${base.path}"/>
+      <param name="checksum.enabled" value="${checkstyle.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${checkstyle.checksum.algorithm}"/>
+      <param name="checksum.value" value="${checkstyle.checksum.value}"/>
     </antcall>
 
   </target>
@@ -2620,6 +2644,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.1" value="${commons-daemon.bin.loc.1}"/>
       <param name="sourcefile.2" value="${commons-daemon.bin.loc.2}"/>
       <param name="destfile" value="${commons-daemon.jar}"/>
+      <param name="checksum.enabled" 
value="${commons-daemon.bin.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-daemon.bin.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${commons-daemon.bin.checksum.value}"/>
     </antcall>
 
     <!-- Download src and build Tomcat DBCP bundle -->
@@ -2627,11 +2654,17 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.1" value="${commons-pool-src.loc.1}"/>
       <param name="sourcefile.2" value="${commons-pool-src.loc.2}"/>
       <param name="destfile" value="${commons-pool.home}/build.xml" />
+      <param name="checksum.enabled" 
value="${commons-pool-src.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-pool-src.checksum.algorithm}"/>
+      <param name="checksum.value" value="${commons-pool-src.checksum.value}"/>
     </antcall>
     <antcall target="downloadgz-2">
       <param name="sourcefile.1" value="${commons-dbcp-src.loc.1}"/>
       <param name="sourcefile.2" value="${commons-dbcp-src.loc.2}"/>
       <param name="destfile" value="${commons-dbcp.home}/build.xml" />
+      <param name="checksum.enabled" 
value="${commons-dbcp-src.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-dbcp-src.checksum.algorithm}"/>
+      <param name="checksum.value" value="${commons-dbcp-src.checksum.value}"/>
     </antcall>
     <mkdir dir="${tomcat-dbcp.home}"/>
     <!-- Rebuild dbcp only if built jars do not exist -->
@@ -2652,6 +2685,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.2" value="${jdt.loc.2}"/>
       <param name="destfile" value="${jdt.jar}"/>
       <param name="destdir" value="${jdt.home}"/>
+      <param name="checksum.enabled" value="${jdt.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${jdt.checksum.algorithm}"/>
+      <param name="checksum.value" value="${jdt.checksum.value}"/>
     </antcall>
   </target>
 
@@ -2662,30 +2698,45 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile" value="${junit.loc}"/>
       <param name="destfile" value="${junit.jar}"/>
       <param name="destdir" value="${junit.home}"/>
+      <param name="checksum.enabled" value="${junit.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${junit.checksum.algorithm}"/>
+      <param name="checksum.value" value="${junit.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${hamcrest.loc}"/>
       <param name="destfile" value="${hamcrest.jar}"/>
       <param name="destdir" value="${hamcrest.home}"/>
+      <param name="checksum.enabled" value="${hamcrest.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${hamcrest.checksum.algorithm}"/>
+      <param name="checksum.value" value="${hamcrest.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadzip">
       <param name="sourcefile" value="${easymock.loc}"/>
       <param name="destfile" value="${easymock.jar}"/>
       <param name="destdir" value="${base.path}"/>
+      <param name="checksum.enabled" value="${easymock.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${easymock.checksum.algorithm}"/>
+      <param name="checksum.value" value="${easymock.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile">
       <param name="sourcefile" value="${cglib.loc}"/>
       <param name="destfile" value="${cglib.jar}"/>
       <param name="destdir" value="${cglib.home}"/>
+      <param name="checksum.enabled" value="${cglib.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${cglib.checksum.algorithm}"/>
+      <param name="checksum.value" value="${cglib.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadzip">
       <param name="sourcefile" value="${objenesis.loc}"/>
       <param name="destfile" value="${objenesis.jar}"/>
       <param name="destdir" value="${base.path}"/>
+      <param name="checksum.enabled" value="${objenesis.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${objenesis.checksum.algorithm}"/>
+      <param name="checksum.value" value="${objenesis.checksum.value}"/>
     </antcall>
 
   </target>
@@ -2697,6 +2748,9 @@ Apache Tomcat ${version} native binaries
     <antcall target="downloadgz">
       <param name="sourcefile" value="${cobertura.loc}"/>
       <param name="destfile" value="${cobertura.jar}"/>
+      <param name="checksum.enabled" value="${cobertura.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${cobertura.checksum.algorithm}"/>
+      <param name="checksum.value" value="${cobertura.checksum.value}"/>
     </antcall>
 
   </target>
@@ -2709,6 +2763,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.2" value="${tomcat-native.loc.2}"/>
       <param name="destfile" value="${tomcat-native.tar.gz}"/>
       <param name="destdir" value="${tomcat-native.home}"/>
+      <param name="checksum.enabled" 
value="${tomcat-native.src.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${tomcat-native.src.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${tomcat-native.src.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadzip-2">
@@ -2716,6 +2773,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.2" value="${tomcat-native.win.2}"/>
       <param name="destfile" value="${tomcat-native.home}/LICENSE"/>
       <param name="destdir" value="${tomcat-native.home}"/>
+      <param name="checksum.enabled" 
value="${tomcat-native.win.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${tomcat-native.win.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${tomcat-native.win.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadfile-2">
@@ -2723,6 +2783,9 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.2" value="${commons-daemon.native.src.loc.2}"/>
       <param name="destfile" value="${commons-daemon.native.src.tgz}"/>
       <param name="destdir" value="${commons-daemon.home}"/>
+      <param name="checksum.enabled" 
value="${commons-daemon.native.src.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-daemon.native.src.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${commons-daemon.native.src.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadzip-2">
@@ -2730,12 +2793,18 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile.2" value="${commons-daemon.native.win.loc.2}"/>
       <param name="destfile" value="${commons-daemon.native.win.mgr.exe}"/>
       <param name="destdir" value="${commons-daemon.native.win.home}"/>
+      <param name="checksum.enabled" 
value="${commons-daemon.native.win.checksum.enabled}"/>
+      <param name="checksum.algorithm" 
value="${commons-daemon.native.win.checksum.algorithm}"/>
+      <param name="checksum.value" 
value="${commons-daemon.native.win.checksum.value}"/>
     </antcall>
 
     <antcall target="downloadzip">
       <param name="sourcefile" value="${nsis.loc}"/>
       <param name="destfile" value="${nsis.exe}"/>
       <param name="destdir" value="${nsis.home}/.."/>
+      <param name="checksum.enabled" value="${nsis.checksum.enabled}"/>
+      <param name="checksum.algorithm" value="${nsis.checksum.algorithm}"/>
+      <param name="checksum.value" value="${nsis.checksum.value}"/>
     </antcall>
 
   </target>
@@ -2811,12 +2880,108 @@ Apache Tomcat ${version} native binaries
     <available file="${destfile}" property="exist"/>
   </target>
 
+  <macrodef name="verifyChecksum">
+    <attribute name="file" />
+    <attribute name="name" default="@{file}"/>
+    <attribute name="enabled" />
+    <attribute name="algorithm" />
+    <attribute name="value" />
+    <sequential>
+      <local name="name" />
+      <basename property="name" file="@{name}" />
+
+      <local name="value.md5" />
+      <local name="value.sha1" />
+      <local name="value.sha256" />
+      <local name="value.sha512" />
+      <local name="check.success" />
+      <local name="check.message" />
+      <fail message="Unknown algorithm: @{algorithm}">
+        <condition>
+          <and>
+            <equals arg1="@{enabled}" arg2="true" />
+            <not>
+              <or>
+                <equals arg1="@{algorithm}" arg2="MD5" />
+                <equals arg1="@{algorithm}" arg2="MD5|SHA-1" />
+                <equals arg1="@{algorithm}" arg2="SHA-1" />
+                <equals arg1="@{algorithm}" arg2="SHA-256" />
+                <equals arg1="@{algorithm}" arg2="SHA-512" />
+              </or>
+            </not>
+          </and>
+        </condition>
+      </fail>
+
+      <!-- Compute checksums -->
+      <checksum file="@{file}" property="value.md5" algorithm="MD5" />
+      <checksum file="@{file}" property="value.sha1" algorithm="SHA-1" />
+      <checksum file="@{file}" property="value.sha256" algorithm="SHA-256" />
+      <checksum file="@{file}" property="value.sha512" algorithm="SHA-512" />
+
+      <!-- Check actual checksum value -->
+      <condition property="check.success">
+        <or>
+          <not>
+            <equals arg1="@{enabled}" arg2="true" />
+          </not>
+          <and>
+            <equals arg1="@{algorithm}" arg2="MD5" />
+            <equals arg1="@{value}" arg2="${value.md5}" />
+          </and>
+          <and>
+            <equals arg1="@{algorithm}" arg2="SHA-1" />
+            <equals arg1="@{value}" arg2="${value.sha1}" />
+          </and>
+          <and>
+            <equals arg1="@{algorithm}" arg2="MD5|SHA-1" />
+            <equals arg1="@{value}" arg2="${value.md5}|${value.sha1}" />
+          </and>
+          <and>
+            <equals arg1="@{algorithm}" arg2="SHA-256" />
+            <equals arg1="@{value}" arg2="${value.sha256}" />
+          </and>
+          <and>
+            <equals arg1="@{algorithm}" arg2="SHA-512" />
+            <equals arg1="@{value}" arg2="${value.sha512}" />
+          </and>
+        </or>
+      </condition>
+      <fail unless="check.success">
+  Checksum check failure for ${name} (@{file}).
+  Algorithm: @{algorithm}
+  Expected value: @{value}
+  Actual values:
+  SHA-512: ${value.sha512}
+  SHA-256: ${value.sha256}
+  SHA-1: ${value.sha1}
+  MD5: ${value.md5}
+      </fail>
+
+      <condition property="check.message" value="WARNING: Checksum 
verification is disabled for ${name}">
+        <not>
+          <equals arg1="@{enabled}" arg2="true" />
+        </not>
+      </condition>
+      <condition property="check.message" value="Checksum check for ${name}, 
algorithm @{algorithm}: OK">
+        <equals arg1="@{enabled}" arg2="true" />
+      </condition>
+
+      <echo level="info" message="${check.message}" />
+    </sequential>
+  </macrodef>
+
   <target name="downloadgz" unless="exist" depends="setproxy,testexist">
     <!-- Download and extract the package -->
     <local name="temp.file"/>
     <mkdir dir="${base.path}"/>
     <tempfile property="temp.file" destdir="${base.path}" prefix="download-"/>
     <get src="${sourcefile}" httpusecaches="${trydownload.httpusecaches}" 
dest="${temp.file}.tar.gz" />
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}.tar.gz" name="${sourcefile}" />
+
     <gunzip src="${temp.file}.tar.gz" dest="${temp.file}.tar"/>
     <untar src="${temp.file}.tar" dest="${base.path}"/>
     <delete file="${temp.file}.tar"/>
@@ -2836,6 +3001,12 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile" value="${sourcefile.2}" />
       <param name="destfile" value="${temp.file}.tar.gz" />
     </antcall>
+
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}.tar.gz" name="${sourcefile.1}" />
+
     <gunzip src="${temp.file}.tar.gz" dest="${temp.file}.tar"/>
     <untar src="${temp.file}.tar" dest="${base.path}"/>
     <delete file="${temp.file}.tar"/>
@@ -2848,6 +3019,11 @@ Apache Tomcat ${version} native binaries
     <mkdir dir="${base.path}"/>
     <tempfile property="temp.file" destdir="${base.path}" prefix="download-" 
suffix=".zip"/>
     <get src="${sourcefile}" httpusecaches="${trydownload.httpusecaches}" 
dest="${temp.file}"/>
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}" name="${sourcefile}" />
+
     <mkdir dir="${destdir}"/>
     <unzip src="${temp.file}" dest="${destdir}"/>
     <delete file="${temp.file}"/>
@@ -2866,6 +3042,12 @@ Apache Tomcat ${version} native binaries
       <param name="sourcefile" value="${sourcefile.2}" />
       <param name="destfile" value="${temp.file}" />
     </antcall>
+
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}" name="${sourcefile.1}" />
+
     <mkdir dir="${destdir}" />
     <unzip src="${temp.file}" dest="${destdir}"/>
     <delete file="${temp.file}"/>
@@ -2877,6 +3059,11 @@ Apache Tomcat ${version} native binaries
     <mkdir dir="${base.path}"/>
     <tempfile property="temp.file" destdir="${base.path}" prefix="download-" 
suffix=".tmp"/>
     <get src="${sourcefile}" httpusecaches="${trydownload.httpusecaches}" 
dest="${temp.file}"/>
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}" name="${destfile}" />
+
     <mkdir dir="${destdir}"/>
     <move file="${temp.file}" tofile="${destfile}"/>
   </target>
@@ -2900,6 +3087,11 @@ Apache Tomcat ${version} native binaries
     <available file="${temp.file}" property="exist"/>
     <fail unless="exist" message="Failed to download [${destfile}]. All 
download sources are unavailable." />
 
+    <verifyChecksum
+      enabled="${checksum.enabled}"
+      algorithm="${checksum.algorithm}" value="${checksum.value}"
+      file="${temp.file}" name="${destfile}" />
+
     <mkdir dir="${destdir}"/>
     <move file="${temp.file}" tofile="${destfile}"/>
   </target>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1834565&r1=1834564&r2=1834565&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Jun 28 00:52:16 2018
@@ -205,6 +205,10 @@
         pick up the latest Windows binaries built with APR 1.6.3 and OpenSSL
         1.0.2o. (markt)
       </update>
+      <add>
+        Implement checksum checks when downloading dependencies that are used
+        to build Tomcat. (kkolinko)
+      </add>
     </changelog>
   </subsection>
 </section>



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

Reply via email to