You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/09/05 08:28:29 UTC
[2/2] git commit: [flex-utilities] [refs/heads/develop] - check in
approval scripts I use
check in approval scripts I use
Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/51ae233a
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/51ae233a
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/51ae233a
Branch: refs/heads/develop
Commit: 51ae233a89ffa6f3d55ea4bbdc9616f7e39aab31
Parents: 7c8fa2b
Author: Alex Harui <ah...@apache.org>
Authored: Thu Sep 4 23:28:21 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Sep 4 23:28:21 2014 -0700
----------------------------------------------------------------------
Squiggly/ApproveSquiggly.xml | 368 ++++++++++++++++++++++++++++++++++++++
TourDeFlex/ApproveTDF.xml | 366 +++++++++++++++++++++++++++++++++++++
2 files changed, 734 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/51ae233a/Squiggly/ApproveSquiggly.xml
----------------------------------------------------------------------
diff --git a/Squiggly/ApproveSquiggly.xml b/Squiggly/ApproveSquiggly.xml
new file mode 100644
index 0000000..ea01ea3
--- /dev/null
+++ b/Squiggly/ApproveSquiggly.xml
@@ -0,0 +1,368 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+<project name="ApproveApacheFlexSquiggly" default="main" basedir=".">
+
+
+ <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
+ <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
+ <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
+ <condition property="local.d32" value="-d32">
+ <and>
+ <os family="windows"/>
+ <equals arg1="${sun.arch.data.model}" arg2="64"/>
+ <equals arg1="${os.arch}" arg2="x86_64"/>
+ <equals arg1="${ant.java.version}" arg2="1.6"/>
+ </and>
+ </condition>
+
+ <condition property="isMac" value="mac">
+ <os family="mac" />
+ </condition>
+ <condition property="isWindows" value="windows">
+ <os family="windows" />
+ </condition>
+ <condition property="isLinux" value="linux">
+ <and>
+ <os family="unix" />
+ <not>
+ <isset property="isMac" />
+ </not>
+ </and>
+ </condition>
+ <condition property="package.suffix" value="zip">
+ <os family="windows" />
+ </condition>
+ <property name="package.suffix" value="tar.gz" />
+
+ <property name="rat.report" value="${basedir}/rat-report.txt"/>
+ <property name="apache.rat.jar" value="apache-rat-0.8.jar" />
+ <property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.8.jar" />
+ <property name="apache.rat.url" value="http://people.apache.org/~aharui/rat" />
+
+ <property name="mac.text.display" value="cat" />
+ <property name="win.text.display" value="type" />
+ <property name="linux.text.display" value="cat" />
+
+ <property file="${basedir}/approvetdf.properties"/>
+ <property environment="env"/>
+
+ <property name="build.target" value="main" />
+
+ <condition property="do.copy.downloads" >
+ <isset property="download.cache.dir" />
+ </condition>
+
+ <fail message="The ANT_HOME environment variable is not set."
+ unless="env.ANT_HOME"/>
+
+ <available file="${env.FLEX_HOME}"
+ type="dir"
+ property="FLEX_HOME" value="${env.FLEX_HOME}" />
+
+ <fail message="The FLEX_HOME property is not set in environment or command-line."
+ unless="FLEX_HOME"/>
+
+ <available file="${env.AIR_HOME}"
+ type="dir"
+ property="AIR_HOME" value="${env.AIR_HOME}" />
+
+ <fail message="The AIR_HOME property is not set in environment or command-line."
+ unless="AIR_HOME"/>
+
+ <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
+ type="file"
+ property="apache.rat.found"/>
+ <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
+ type="file"
+ property="apache.rat.tasks.found"/>
+
+ <fail message="The release version is not set. Specify -Drelease.version=<release version (e.g. 3.1, 3.2, etc)>"
+ unless="release.version"/>
+
+ <fail message="The release candidate number is not set. Specify -Drc=<rc number (e.g. 1, 2, 3, etc)>"
+ unless="rc"/>
+
+ <property name="package.url.path" value="https://dist.apache.org/repos/dist/dev/flex/squiggly/${release.version}/rc${rc}" />
+ <property name="package.url.name" value="apache-flex-squiggly-${release.version}-src" />
+
+ <condition property="zip.compressed">
+ <equals arg1="zip" arg2="${package.suffix}" />
+ </condition>
+
+ <target name="display-text-mac" if="isMac">
+ <echo>========================= Begin ${file} ==============================</echo>
+ <exec executable="${mac.text.display}" >
+ <arg value="${file}" />
+ </exec>
+ <echo>========================= End ${file} ==============================</echo>
+ </target>
+ <target name="display-text-win" if="isWindows">
+ <pathconvert targetos="windows" property="winfile">
+ <path path="${file}" />
+ </pathconvert>
+ <echo>========================= Begin ${winfile} ==============================</echo>
+ <exec executable="cmd.exe" >
+ <arg value="/c" />
+ <arg value="${win.text.display}" />
+ <arg value="${winfile}" />
+ </exec>
+ <echo>========================= End ${winfile} ==============================</echo>
+ </target>
+ <target name="display-text-linux" if="isLinux">
+ <echo>========================= Begin ${file} ==============================</echo>
+ <exec executable="${linux.text.display}" >
+ <arg value="${file}" />
+ </exec>
+ <echo>========================= End ${file} ==============================</echo>
+ </target>
+
+ <target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
+ <target name="install-rat.jar" unless="apache.rat.found">
+ <get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
+ </target>
+ <target name="install-rat.tasks.jar" unless="apache.rat.tasks.found">
+ <get src="${apache.rat.url}/${apache.rat.tasks.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}" />
+ </target>
+
+ <target name="rat-taskdef" description="Rat taskdef">
+ <typedef resource="org/apache/rat/anttasks/antlib.xml"
+ uri="antlib:org.apache.rat.anttasks"
+ classpathref="anttask.classpath"/>
+ </target>
+
+ <target name="main" depends="install-rat,download,check-sigs,uncompress,rat-check,check-notices,build,approve" description="Perform required release approval steps">
+ </target>
+
+ <target name="main-no-download" depends="install-rat,check-sigs,uncompress,rat-check,check-notices,build,approve" description="Perform required release approval steps">
+ </target>
+
+ <target name="test" >
+ <echo>${rat.report}.bin.txt</echo>
+ <replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
+ </target>
+
+ <target name="display-text" >
+ <antcall target="display-text-mac" />
+ <antcall target="display-text-win" />
+ <antcall target="display-text-linux" />
+ </target>
+
+ <target name="display-text-test" >
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/rat-report.txt" />
+ </antcall>
+ </target>
+
+ <target name="download" description="download the release package">
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}.${package.suffix}" />
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}.md5"
+ dest="${basedir}/${package.url.name}.${package.suffix}.md5" />
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}.asc"
+ dest="${basedir}/${package.url.name}.${package.suffix}.asc" />
+ </target>
+
+ <target name="check-sigs" description="check md5 and gpg sigs">
+ <replace file="${basedir}/${package.url.name}.${package.suffix}.md5"
+ token=" " />
+ <checksum file="${basedir}/${package.url.name}.${package.suffix}" algorithm="md5" verifyproperty="md5.ok" />
+ <condition property="MD5Invalid">
+ <not>
+ <equals arg1="${md5.ok}" arg2="true" />
+ </not>
+ </condition>
+ <fail message="MD5 checksum did not match" if="MD5Invalid" />
+ <exec executable="gpg" failonerror="true">
+ <arg value="--verify" />
+ <arg value="${basedir}/${package.url.name}.${package.suffix}.asc" />
+ <arg value="${basedir}/${package.url.name}.${package.suffix}" />
+ </exec>
+ </target>
+
+ <target name="uncompress" depends="pre-clean, untar-file, unzip-file" />
+
+ <target name="pre-clean" description="remove old uncompressed package" >
+ <delete dir="${basedir}/${package.url.name}" failonerror="false" />
+ </target>
+
+ <target name="untar-file" unless="zip.compressed" description="Untars zipFile">
+ <untar src="${basedir}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}" compression="gzip"/>
+ </target>
+
+ <target name="unzip-file" if="zip.compressed" description="Unzips zipFile">
+ <unzip src="${basedir}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}"/>
+ </target>
+
+ <target name="rat-check" >
+
+ <echo message="Checking files at ${basedir}/${package.url.name}, report is ${rat.report}"/>
+
+ <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+ reportFile="${rat.report}">
+ <fileset dir="${basedir}/${package.url.name}">
+ <!-- exclude media (png, gif, jpg, mp3, flv) -->
+ <exclude name="**/*.png"/>
+ <exclude name="**/*.gif"/>
+ <exclude name="**/*.jpg"/>
+ <exclude name="**/*.mp3"/>
+ <exclude name="**/*.flv"/>
+ <exclude name="docs/**"/>
+ <exclude name="main/Data/usa.txt"/>
+ <exclude name="main/Tools/AdobeSpellingDictGen/sample/sampleWordList.txt"/>
+ </fileset>
+ </rat:report>
+ <antcall target="display-text" >
+ <param name="file" value="${rat.report}" />
+ </antcall>
+ <input
+ message="Check that there are no unknown or unapproved licenses or archives. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="rat.license.ok"/>
+ <echo>filtering out AL files to make it easier to see binary files</echo>
+ <copy file="${rat.report}" tofile="${rat.report}.bin.txt" />
+ <replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
+ <antcall target="display-text" >
+ <param name="file" value="${rat.report}.bin.txt" />
+ </antcall>
+ <input
+ message="Check that there are no unexpected binaries. Is it ok?"
+ validargs="y,n"
+ defaultvalue="n"
+ addproperty="rat.binaries.ok"/>
+ </target>
+
+ <target name="check-notices" description="open each notice file for review, grep for a few things" >
+ <fail message="README not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/README" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="RELEASE_NOTES not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/RELEASE_NOTES" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="NOTICE not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/NOTICE" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="LICENSE not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/LICENSE" />
+ </not>
+ </condition>
+ </fail>
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/README" />
+ </antcall>
+ <input
+ message="Check the README for version numbers, spelling, grammar, accuracy. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="readme.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/RELEASE_NOTES" />
+ </antcall>
+ <input
+ message="Check the RELEASE_NOTES for copyright years, spelling, grammar, accuracy. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="releasenotes.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/NOTICE" />
+ </antcall>
+ <input
+ message="Check the NOTICE for required notices from third-parties. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="notice.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/LICENSE" />
+ </antcall>
+ <input
+ message="Check the LICENSE for the Apache License and third-party licenses. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="license.ok"/>
+ </target>
+
+ <target name="build" depends="copy.downloads">
+ <input
+ message="The final step is to run the build and any tests the build script runs. This can take several minutes. Press y to start the build."
+ validargs="y"
+ defaultvalue="y" />
+ <ant dir="${basedir}/${package.url.name}" target="compile" />
+ </target>
+
+ <target name="copy.downloads" if="${do.copy.downloads}" description="instead of actually downloading all of the dependencies, you can save lots of time by just copying from some other folder in some other SDK.">
+ <echo>Copying downloads</echo>
+ <copy todir="${basedir}/${package.url.name}/in" >
+ <fileset dir="${download.cache.dir}" />
+ </copy>
+ </target>
+
+ <target name="approve" >
+ <condition property="vote" value="+1">
+ <and>
+ <equals arg1="${rat.license.ok}" arg2="y" />
+ <equals arg1="${rat.binaries.ok}" arg2="y" />
+ <equals arg1="${readme.ok}" arg2="y" />
+ <equals arg1="${releasenotes.ok}" arg2="y" />
+ <equals arg1="${notice.ok}" arg2="y" />
+ <equals arg1="${license.ok}" arg2="y" />
+ </and>
+ </condition>
+ <property name="vote" value="-1" />
+ <echo>
+${vote}
+Package ${package.url.path}/${package.url.name}.${package.suffix}
+Java ${ant.java.version}
+OS: ${os.name} ${os.arch} ${os.version}
+Source kit signatures match: y
+Source kit builds: y
+README is ok: ${readme.ok}
+RELEASE_NOTES is ok: ${releasenotes.ok}
+NOTICE is ok: ${notice.ok}
+LICENSE is ok: ${license.ok}
+No unapproved licenses or archives: ${rat.license.ok}
+No unapproved binaries: ${rat.binaries.ok}
+ </echo>
+ <fail>
+ <condition>
+ <equals arg1="-1" arg2="${vote}"/>
+ </condition>
+ </fail>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/51ae233a/TourDeFlex/ApproveTDF.xml
----------------------------------------------------------------------
diff --git a/TourDeFlex/ApproveTDF.xml b/TourDeFlex/ApproveTDF.xml
new file mode 100644
index 0000000..eb2e153
--- /dev/null
+++ b/TourDeFlex/ApproveTDF.xml
@@ -0,0 +1,366 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+<project name="ApproveApacheFlexTourDeFlex" default="main" basedir=".">
+
+
+ <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
+ <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
+ <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
+ <condition property="local.d32" value="-d32">
+ <and>
+ <os family="windows"/>
+ <equals arg1="${sun.arch.data.model}" arg2="64"/>
+ <equals arg1="${os.arch}" arg2="x86_64"/>
+ <equals arg1="${ant.java.version}" arg2="1.6"/>
+ </and>
+ </condition>
+
+ <condition property="isMac" value="mac">
+ <os family="mac" />
+ </condition>
+ <condition property="isWindows" value="windows">
+ <os family="windows" />
+ </condition>
+ <condition property="isLinux" value="linux">
+ <and>
+ <os family="unix" />
+ <not>
+ <isset property="isMac" />
+ </not>
+ </and>
+ </condition>
+ <condition property="package.suffix" value="zip">
+ <os family="windows" />
+ </condition>
+ <property name="package.suffix" value="tar.gz" />
+
+ <property name="rat.report" value="${basedir}/rat-report.txt"/>
+ <property name="apache.rat.jar" value="apache-rat-0.8.jar" />
+ <property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.8.jar" />
+ <property name="apache.rat.url" value="http://people.apache.org/~aharui/rat" />
+
+ <property name="mac.text.display" value="cat" />
+ <property name="win.text.display" value="type" />
+ <property name="linux.text.display" value="cat" />
+
+ <property file="${basedir}/approvetdf.properties"/>
+ <property environment="env"/>
+
+ <property name="build.target" value="main" />
+
+ <condition property="do.copy.downloads" >
+ <isset property="download.cache.dir" />
+ </condition>
+
+ <fail message="The ANT_HOME environment variable is not set."
+ unless="env.ANT_HOME"/>
+
+ <available file="${env.FLEX_HOME}"
+ type="dir"
+ property="FLEX_HOME" value="${env.FLEX_HOME}" />
+
+ <fail message="The FLEX_HOME property is not set in environment or command-line."
+ unless="FLEX_HOME"/>
+
+ <available file="${env.AIR_HOME}"
+ type="dir"
+ property="AIR_HOME" value="${env.AIR_HOME}" />
+
+ <fail message="The AIR_HOME property is not set in environment or command-line."
+ unless="AIR_HOME"/>
+
+ <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
+ type="file"
+ property="apache.rat.found"/>
+ <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
+ type="file"
+ property="apache.rat.tasks.found"/>
+
+ <fail message="The release version is not set. Specify -Drelease.version=<release version (e.g. 3.1, 3.2, etc)>"
+ unless="release.version"/>
+
+ <fail message="The release candidate number is not set. Specify -Drc=<rc number (e.g. 1, 2, 3, etc)>"
+ unless="rc"/>
+
+ <property name="package.url.path" value="https://dist.apache.org/repos/dist/dev/flex/TourDeFlex/${release.version}/rc${rc}" />
+ <property name="package.url.name" value="apache-flex-tour-de-flex-component-explorer-src-${release.version}" />
+
+ <condition property="zip.compressed">
+ <equals arg1="zip" arg2="${package.suffix}" />
+ </condition>
+
+ <target name="display-text-mac" if="isMac">
+ <echo>========================= Begin ${file} ==============================</echo>
+ <exec executable="${mac.text.display}" >
+ <arg value="${file}" />
+ </exec>
+ <echo>========================= End ${file} ==============================</echo>
+ </target>
+ <target name="display-text-win" if="isWindows">
+ <pathconvert targetos="windows" property="winfile">
+ <path path="${file}" />
+ </pathconvert>
+ <echo>========================= Begin ${winfile} ==============================</echo>
+ <exec executable="cmd.exe" >
+ <arg value="/c" />
+ <arg value="${win.text.display}" />
+ <arg value="${winfile}" />
+ </exec>
+ <echo>========================= End ${winfile} ==============================</echo>
+ </target>
+ <target name="display-text-linux" if="isLinux">
+ <echo>========================= Begin ${file} ==============================</echo>
+ <exec executable="${linux.text.display}" >
+ <arg value="${file}" />
+ </exec>
+ <echo>========================= End ${file} ==============================</echo>
+ </target>
+
+ <target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
+ <target name="install-rat.jar" unless="apache.rat.found">
+ <get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
+ </target>
+ <target name="install-rat.tasks.jar" unless="apache.rat.tasks.found">
+ <get src="${apache.rat.url}/${apache.rat.tasks.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}" />
+ </target>
+
+ <target name="rat-taskdef" description="Rat taskdef">
+ <typedef resource="org/apache/rat/anttasks/antlib.xml"
+ uri="antlib:org.apache.rat.anttasks"
+ classpathref="anttask.classpath"/>
+ </target>
+
+ <target name="main" depends="install-rat,download,check-sigs,uncompress,rat-check,check-notices,build,approve" description="Perform required release approval steps">
+ </target>
+
+ <target name="main-no-download" depends="install-rat,check-sigs,uncompress,rat-check,check-notices,build,approve" description="Perform required release approval steps">
+ </target>
+
+ <target name="test" >
+ <echo>${rat.report}.bin.txt</echo>
+ <replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
+ </target>
+
+ <target name="display-text" >
+ <antcall target="display-text-mac" />
+ <antcall target="display-text-win" />
+ <antcall target="display-text-linux" />
+ </target>
+
+ <target name="display-text-test" >
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/rat-report.txt" />
+ </antcall>
+ </target>
+
+ <target name="download" description="download the release package">
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}.${package.suffix}" />
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}.md5"
+ dest="${basedir}/${package.url.name}.${package.suffix}.md5" />
+ <get src="${package.url.path}/${package.url.name}.${package.suffix}.asc"
+ dest="${basedir}/${package.url.name}.${package.suffix}.asc" />
+ </target>
+
+ <target name="check-sigs" description="check md5 and gpg sigs">
+ <replace file="${basedir}/${package.url.name}.${package.suffix}.md5"
+ token=" " />
+ <checksum file="${basedir}/${package.url.name}.${package.suffix}" algorithm="md5" verifyproperty="md5.ok" />
+ <condition property="MD5Invalid">
+ <not>
+ <equals arg1="${md5.ok}" arg2="true" />
+ </not>
+ </condition>
+ <fail message="MD5 checksum did not match" if="MD5Invalid" />
+ <exec executable="gpg" failonerror="true">
+ <arg value="--verify" />
+ <arg value="${basedir}/${package.url.name}.${package.suffix}.asc" />
+ <arg value="${basedir}/${package.url.name}.${package.suffix}" />
+ </exec>
+ </target>
+
+ <target name="uncompress" depends="pre-clean, untar-file, unzip-file" />
+
+ <target name="pre-clean" description="remove old uncompressed package" >
+ <delete dir="${basedir}/${package.url.name}" failonerror="false" />
+ </target>
+
+ <target name="untar-file" unless="zip.compressed" description="Untars zipFile">
+ <untar src="${basedir}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}" compression="gzip"/>
+ </target>
+
+ <target name="unzip-file" if="zip.compressed" description="Unzips zipFile">
+ <unzip src="${basedir}/${package.url.name}.${package.suffix}"
+ dest="${basedir}/${package.url.name}"/>
+ </target>
+
+ <target name="rat-check" >
+
+ <echo message="Checking files at ${basedir}/${package.url.name}, report is ${rat.report}"/>
+
+ <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+ reportFile="${rat.report}">
+ <fileset dir="${basedir}/${package.url.name}">
+ <!-- exclude media (png, gif, jpg, mp3, flv) -->
+ <exclude name="**/*.png"/>
+ <exclude name="**/*.gif"/>
+ <exclude name="**/*.jpg"/>
+ <exclude name="**/*.mp3"/>
+ <exclude name="**/*.flv"/>
+ <exclude name="installer/build.number"/>
+ </fileset>
+ </rat:report>
+ <antcall target="display-text" >
+ <param name="file" value="${rat.report}" />
+ </antcall>
+ <input
+ message="Check that there are no unknown or unapproved licenses or archives. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="rat.license.ok"/>
+ <echo>filtering out AL files to make it easier to see binary files</echo>
+ <copy file="${rat.report}" tofile="${rat.report}.bin.txt" />
+ <replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
+ <antcall target="display-text" >
+ <param name="file" value="${rat.report}.bin.txt" />
+ </antcall>
+ <input
+ message="Check that there are no unexpected binaries. Is it ok?"
+ validargs="y,n"
+ defaultvalue="n"
+ addproperty="rat.binaries.ok"/>
+ </target>
+
+ <target name="check-notices" description="open each notice file for review, grep for a few things" >
+ <fail message="README not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/README" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="RELEASE_NOTES not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/RELEASE_NOTES" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="NOTICE not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/NOTICE" />
+ </not>
+ </condition>
+ </fail>
+ <fail message="LICENSE not in package">
+ <condition>
+ <not>
+ <available file="${basedir}/${package.url.name}/LICENSE" />
+ </not>
+ </condition>
+ </fail>
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/README" />
+ </antcall>
+ <input
+ message="Check the README for version numbers, spelling, grammar, accuracy. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="readme.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/RELEASE_NOTES" />
+ </antcall>
+ <input
+ message="Check the RELEASE_NOTES for copyright years, spelling, grammar, accuracy. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="releasenotes.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/NOTICE" />
+ </antcall>
+ <input
+ message="Check the NOTICE for required notices from third-parties. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="notice.ok"/>
+
+ <antcall target="display-text" >
+ <param name="file" value="${basedir}/${package.url.name}/LICENSE" />
+ </antcall>
+ <input
+ message="Check the LICENSE for the Apache License and third-party licenses. Is it ok?"
+ validargs="y,n"
+ defaultvalue="y"
+ addproperty="license.ok"/>
+ </target>
+
+ <target name="build" depends="copy.downloads">
+ <input
+ message="The final step is to run the build and any tests the build script runs. This can take several minutes. Press y to start the build."
+ validargs="y"
+ defaultvalue="y" />
+ <ant dir="${basedir}/${package.url.name}" target="compile" />
+ </target>
+
+ <target name="copy.downloads" if="${do.copy.downloads}" description="instead of actually downloading all of the dependencies, you can save lots of time by just copying from some other folder in some other SDK.">
+ <echo>Copying downloads</echo>
+ <copy todir="${basedir}/${package.url.name}/in" >
+ <fileset dir="${download.cache.dir}" />
+ </copy>
+ </target>
+
+ <target name="approve" >
+ <condition property="vote" value="+1">
+ <and>
+ <equals arg1="${rat.license.ok}" arg2="y" />
+ <equals arg1="${rat.binaries.ok}" arg2="y" />
+ <equals arg1="${readme.ok}" arg2="y" />
+ <equals arg1="${releasenotes.ok}" arg2="y" />
+ <equals arg1="${notice.ok}" arg2="y" />
+ <equals arg1="${license.ok}" arg2="y" />
+ </and>
+ </condition>
+ <property name="vote" value="-1" />
+ <echo>
+${vote}
+Package ${package.url.path}/${package.url.name}.${package.suffix}
+Java ${ant.java.version}
+OS: ${os.name} ${os.arch} ${os.version}
+Source kit signatures match: y
+Source kit builds: y
+README is ok: ${readme.ok}
+RELEASE_NOTES is ok: ${releasenotes.ok}
+NOTICE is ok: ${notice.ok}
+LICENSE is ok: ${license.ok}
+No unapproved licenses or archives: ${rat.license.ok}
+No unapproved binaries: ${rat.binaries.ok}
+ </echo>
+ <fail>
+ <condition>
+ <equals arg1="-1" arg2="${vote}"/>
+ </condition>
+ </fail>
+ </target>
+</project>