http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/build.xml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/build.xml b/flex-installer/installer/build.xml new file mode 100644 index 0000000..2d1c83f --- /dev/null +++ b/flex-installer/installer/build.xml @@ -0,0 +1,670 @@ +<?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="Installer" basedir="." default="build"> + + <!--load environment variables prefixed with env --> + <property environment="env"/> + + <!--location of property file --> + <property file="${basedir}/local.properties" /> + <condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_WIN}" > + <and> + <not> + <available file="${CERT_PASSWORD_FILE}" /> + </not> + <available file="${CERT_PASSWORD_FILE_WIN}" /> + </and> + </condition> + <condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_MAC}" > + <and> + <not> + <available file="${CERT_PASSWORD_FILE}" /> + </not> + <available file="${CERT_PASSWORD_FILE_MAC}" /> + </and> + </condition> + <condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_WIN}" > + <and> + <not> + <available file="${RELEASE_KEYSTORE_FILE}" /> + </not> + <available file="${RELEASE_KEYSTORE_FILE_WIN}" /> + </and> + </condition> + <condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_MAC}" > + <and> + <not> + <available file="${RELEASE_KEYSTORE_FILE}" /> + </not> + <available file="${RELEASE_KEYSTORE_FILE_MAC}" /> + </and> + </condition> + + <property file="${basedir}/build.properties" description="Properties for Apache Flex SDK Installer project" /> + <property file="${basedir}/build.number"/> + <property file="${CERT_PASSWORD_FILE}"/> + + <property name="installer.version" value="${release.version}.${build.number}"/> + <property name="kit.prefix" value="apache-flex-sdk-installer-${installer.version}"/> + <property name="source.kit" value="${kit.prefix}-src"/> + <property name="binary.kit" value="${kit.prefix}-bin"/> + <property name="LOCAL_CONFIG_FILE" value="${basedir}/src/installer/sdk-installer-config-4.0.xml" /> + + <!--<property name="commons.zip" value="http://projects.yoolab.org/maven/content/repositories/releases/org/as3commons/as3commons-zip/1.0.0-alpha.1/as3commons-zip-1.0.0-alpha.1.swc" />--> + <!-- use this one for now until we find a better source --> + <property name="commons.zip" value="https://github.com/bigosmallm/MakeApacheFlexForFlashBuilder/blob/master/libs/as3commons-zip-1.0.0-alpha.1.swc?raw=true" /> + + <!-- + Properties are immutable so value frozen first time property is set. + If FLEX_HOME is not set with -DFLEX_HOME=/path/to/flex/sdk on the ant command line + use the environment variable, if it exists. Else if windows, use FLEX_HOME_WIN + else use FLEX_HOME_MAC, which are both defined in build.properties. + --> + <condition property="FLEX_HOME" value="${env.FLEX_HOME}"> + <isset property="env.FLEX_HOME" /> + </condition> + <condition property="FLEX_HOME" value="${FLEX_HOME_WIN}"> + <os family="windows"/> + </condition> + <condition property="FLEX_HOME" value="${FLEX_HOME_MAC}"> + <os family="mac"/> + </condition> + <condition property="FLEX_HOME" value="${FLEX_HOME_LINUX}"> + <os family="unix"/> + </condition> + + <condition property="adl" value="adl.exe"> + <os family="windows"/> + </condition> + + <condition property="adl" value="adl"> + <os family="mac"/> + </condition> + + <condition property="runtime" value="win"> + <os family="windows"/> + </condition> + + <condition property="runtime" value="mac"> + <os family="mac"/> + </condition> + + <condition property="LOCAL_CONFIG_URL" value="file:///${LOCAL_CONFIG_FILE}"> + <os family="windows"/> + </condition> + <property name="LOCAL_CONFIG_URL" value="file://${LOCAL_CONFIG_FILE}" /> + + <!-- + Properties are immutable so value frozen first time property is set. + If AIR_HOME is not set on the command line with -DAIR_HOME=/path/to/air/sdk on the + ant command line use the environment variable, if it exists. Else if windows, use + AIR_HOME_WIN else use AIR_HOME_MAC, which are both defined in build.properties. + --> + <condition property="AIR_HOME" value="${env.AIR_HOME}"> + <isset property="env.AIR_HOME" /> + </condition> + <condition property="AIR_HOME" value="${AIR_HOME_WIN}"> + <os family="windows"/> + </condition> + <condition property="AIR_HOME" value="${AIR_HOME_MAC}"> + <os family="mac"/> + </condition> + <condition property="AIR_HOME" value="${AIR_HOME_LINUX}"> + <os family="unix"/> + </condition> + + <condition property="cert_pwd_not_found" > + <not> + <available file="${CERT_PASSWORD_FILE}"/> + </not> + </condition> + + <condition property="KEYSTORE" value="${RELEASE_KEYSTORE_FILE}" > + <available file="${CERT_PASSWORD_FILE}"/> + </condition> + + <condition property="KEYSTORE" value="temp.p12" > + <not> + <available file="${CERT_PASSWORD_FILE}"/> + </not> + </condition> + + <condition property="CERT_PASSWORD" value="${TEMP_PASS_CHANGE_THIS}" > + <not> + <available file="${CERT_PASSWORD_FILE}"/> + </not> + </condition> + + <!-- compilers --> + <property name="ADL" value="${AIR_HOME}/bin/adl"/> + <property name="ADT" value="${AIR_HOME}/lib/adt.jar"/> + + <!-- additional tasks - mxmlc tag --> + <path id="flexTasks.path"> + <fileset dir="${FLEX_HOME}"> + <include name="lib/flexTasks.jar" /> + <include name="ant/lib/flexTasks.jar" /> + </fileset> + </path> + <taskdef resource="flexTasks.tasks" classpathref="flexTasks.path"/> + + <!-- + Optional jars but should be in place for a real release build. + + For <rat> apache-rat-0.8.jar and apache-rat-tasks-0.8.jar should be in classpath. + See rat-report. + --> + <path id="anttask.classpath"> + <fileset dir="${env.ANT_HOME}/lib"> + <include name="**/apache-rat*.jar"/> + </fileset> + <fileset dir="${user.home}"> + <include name=".ant/lib/**/apache-rat*.jar"/> + </fileset> + </path> + + <!-- AIR package extension --> + <condition property="extension" value="exe"> + <os family="windows" /> + </condition> + <condition property="extension" value="dmg"> + <os family="mac" /> + </condition> + <condition property="extension" value="deb"> + <os family="unix" /> + </condition> + + <target name="build" depends="init,certificate,compile,packagenative,cleanup" + description="Compiles and packages application"/> + + <target name="release" depends="clean,build,source-package,rat-report,sign,copy-misc" + description="Build the application and package up the distros for release."/> + + <target name="init" depends="clean,createDirs,update-version-in-xml-files" + description="Creates the deploy folders and sets app extension"/> + + <target name="clean" description="Cleans up old files."> + <delete dir="${BUILD_DIR}" failOnError="false" includeEmptyDirs="true" /> + <delete dir="${LIBRARY_DIR}" failOnError="false" includeEmptyDirs="true" /> + <delete dir="${RELEASE_DIR}" failOnError="false" includeEmptyDirs="true" /> + <delete file="${basedir}/rat.report" failOnError="false"/> + </target> + + <target name="cleanup" description="Cleans up old files." unless="no.cleanup"> + <delete dir="${BUILD_DIR}" failOnError="false" includeEmptyDirs="true" /> + </target> + + <target name="createDirs"> + <echo>***************************************${line.separator}Execute the update-version target once,${line.separator}and only once, when you modifiy this app.${line.separator}This will increment the version number to allow${line.separator}the app to be updated by the AIR installer.${line.separator}*************************************** + </echo> + <mkdir dir="${BUILD_DIR}"/> + <mkdir dir="${RELEASE_DIR}"/> + </target> + + <!-- Make sure version, esp, build.number, in APP_NAME-app.xml is in sync. --> + <target name="update-version-in-xml-files" description="Update version in APP_NAME-app.xml."> + <echo message="version in ${APP_NAME}-app.xml will be ${installer.version}"/> + <replaceregexp byline="true"> + <regexp pattern="<versionNumber>(\d+\.)?(\d+\.)?(\d+)</versionNumber>"/> + <substitution expression="<versionNumber>${installer.version}</versionNumber>"/> + <fileset dir="${SOURCE_DIR}"> + <include name="${APP_NAME}-app.xml"/> + </fileset> + </replaceregexp> + <replaceregexp byline="true"> + <regexp pattern="<latest>(\d+\.)?(\d+\.)?(\d+)</latest>"/> + <substitution expression="<latest>${installer.version}</latest>"/> + <fileset dir="${SOURCE_DIR}"> + <include name="${APP_CONFIG_XML_NAME}.xml"/> + </fileset> + </replaceregexp> + </target> + + <!-- + Run this target once, and then rebuild, when you make a change to this app + so that the AIR Installer will allow the app to be updated. The build.number + property in the file build.property will be read and then incremented and the + nano version number in the <version> tag in InstallApacheFlex-app.xml will be + updated. + --> + <target name="update-version" description="Update the app version number so the installer will be updated."> + <tstamp> + <format property="touch.year" pattern="yyyy"/> + </tstamp> + + <propertyfile file="build.number" + comment="Copyright ${touch.year} The Apache Software Foundation."> + <entry key="build.number" type="int" default="0" operation="+"/> + </propertyfile> + + </target> + + <target name="packagenative" depends="packageair" + description="Packages the AIR file from the build directory to create a native installer (exe/dmg) file"> + + <java jar="${ADT}" fork="true" + failonerror="true" + maxmemory="512m"> + <arg value="-package"/> + <arg value="-target"/> + <arg value="native"/> + <arg value="${RELEASE_DIR}/${binary.kit}.${extension}"/> + <arg value="${BUILD_DIR}/${APP_NAME}.air"/> + </java> + </target> + + <target name="check-as3commons.swc"> + <available file="${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc" property="as3commons.swc.present"/> + </target> + + <!-- This has a BSD license which is a reciprocal license with the Apache v2 license. --> + <target name="get-as3commons.swc" depends="check-as3commons.swc" unless="as3commons.swc.present" + description="Download as3commons.swc and fail if checksum mismatch."> + <mkdir dir="${LIBRARY_DIR}"/> + <get src="${commons.zip}" + dest="${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc" + verbose="true"/> + <!-- skip checksum until we find a valid file + <get src="${commons.zip}.md5" + dest="${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc.md5" + verbose="true"/> + <checksum file="${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc" algorithm="md5" verifyProperty="isMD5ok"/> + <delete file="${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc.md5" failOnError="false"/> + <fail message="Checksum failure for ${LIBRARY_DIR}/as3commons-zip-1.0.0-alpha.1.swc"> + <condition> + <isfalse value="${isMD5ok}"/> + </condition> + </fail> + --> + </target> + + <target name="check-as3httpclient.swc"> + <available file="${LIBRARY_DIR}/as3httpclient.swc" property="as3httpclient.swc.present"/> + </target> + + <!-- This has a BSD license which is a reciprocal license with the Apache v2 license. --> + <target name="get-as3httpclient.swc" depends="check-as3commons.swc" unless="as3httpclient.swc.present" + description="Download as3httpclient.swc"> + <mkdir dir="${LIBRARY_DIR}"/> + <get src="https://github.com/quetwo/as3httpclient/releases/download/1.0/as3httpclient.swc" + dest="${LIBRARY_DIR}/as3httpclient.swc" + verbose="true"/> + </target> + + <target name="compile" depends="get-as3commons.swc, get-as3httpclient.swc" + description="Compiles the AIR application to a SWF file and places SWF in a temp directory to be packaged."> + <mxmlc file="${SOURCE_DIR}/${APP_NAME}.${APP_EXTENSION}" + output="${BUILD_DIR}/${APP_NAME}.swf" + static-rsls="true" + accessible="true" + configname="air" + debug="${DEBUG_FLAG}" + failonerror="true" + fork="true" + link-report="${BUILD_DIR}/${APP_NAME}.lnk.xml" + maxmemory="512m"> + <source-path path-element="${SOURCE_DIR}"/> + <source-path path-element="${COMMON_SOURCE_DIR}"/> + <external-library-path file="${AIR_HOME}/frameworks/libs/air/airglobal.swc" append="true"/> + <library-path dir="${LIBRARY_DIR}" includes="*.swc" append="true"/> + <library-path dir="${ANT_ON_AIR_DIR}" includes="*.swc" append="true"/> + <define name="INSTALLER::releaseVersion" value="${release.version}"/> + <define name="INSTALLER::buildNumber" value="${build.number}"/> + </mxmlc> + </target> + + <!-- Make sure to use the same certificate each time so we can update the app. --> + <target name="certificate" if="cert_pwd_not_found"> + <antcall target="generate-certificate"/> + </target> + + <target name="generate-certificate"> + <echo message="Using cert ${KEYSTORE}" /> + <java jar="${ADT}" fork="true" + failonerror="true"> + <arg value="-certificate"/> + <arg value="-cn"/> + <arg value="${CERT_NAME}"/> + <arg value="-ou"/> + <arg value="${CERT_ORG_UNIT}"/> + <arg value="-o"/> + <arg value="${CERT_ORG_NAME}"/> + <arg value="-c"/> + <arg value="${CERT_COUNTRY}"/> + <arg value="${CERT_KEY_TYPE}"/> + <arg value="${KEYSTORE}"/> + <arg value="${CERT_PASSWORD}"/> + </java> + </target> + + <target name="packageair" + description="Packages the build SWF file from a temp directory to create an AIR file"> + <echo message="Using cert ${KEYSTORE}" /> + <java jar="${ADT}" fork="true" + failonerror="true" + maxmemory="512m"> + <arg value="-package"/> + <arg value="-storetype"/> + <arg value="${STORETYPE}"/> + <arg value="-keystore"/> + <arg value="${KEYSTORE}"/> + <arg value="-storepass"/> + <arg value="${CERT_PASSWORD}"/> + <arg value="${BUILD_DIR}/${APP_NAME}.air"/> + <arg value="${SOURCE_DIR}/${APP_NAME}-app.xml"/> + <arg value="${basedir}/LICENSE"/> + <arg value="${basedir}/NOTICE"/> + <arg value="-C"/> + <arg value="${BUILD_DIR}"/> + <arg value="${BUILD_DIR}/${APP_NAME}.swf"/> + <arg value="-C"/> + <arg value="${SOURCE_DIR}"/> + <arg value="${SOURCE_DIR}/${APP_CONFIG_XML_NAME}.xml"/> + <arg value="${ASSETS_DIR}"/> + </java> + </target> + + <target name="copy-misc" description="Copy config files to release directory"> + <copy file="${basedir}/README" tofile="${RELEASE_DIR}/READme"/> + </target> + + <!-- + Packages the source distribution with ZIP and TAR_GZIP. + The source file line endings match the package type. + --> + <target name="source-package" description="Package source files."> + <mkdir dir="${BUILD_DIR}/temp"/> + <copy todir="${BUILD_DIR}/temp/${COMMON_PROJECT_NAME}" includeEmptyDirs="false"> + <fileset dir="${COMMON_PROJECT_DIR}"> + <exclude name="*.p12"/> + <exclude name="*.password"/> + <exclude name="rat.report"/> + <exclude name="libs/**"/> + <exclude name="bin/**"/> + <exclude name="bin-debug/**"/> + <exclude name="release/**"/> + <exclude name=".settings/**"/> + <exclude name="**/.actionScriptProperties"/> + <exclude name="**/.flexProperties"/> + <exclude name="**/.flexLibProperties"/> + <exclude name="**/.project"/> + <exclude name="**/.idea/**"/> + </fileset> + </copy> + + <copy todir="${BUILD_DIR}/temp/ant_on_air" includeEmptyDirs="false"> + <fileset dir="${basedir}/../ant_on_air"> + <include name="build.properties" /> + <include name="build.xml" /> + </fileset> + </copy> + <copy todir="${BUILD_DIR}/temp/ant_on_air/src" includeEmptyDirs="false"> + <fileset dir="${basedir}/../ant_on_air/src"> + </fileset> + </copy> + <copy todir="${BUILD_DIR}/temp/ant_on_air/locale" includeEmptyDirs="false"> + <fileset dir="${basedir}/../ant_on_air/locale"> + </fileset> + </copy> + <copy todir="${BUILD_DIR}/temp/ant_on_air/tests" includeEmptyDirs="false"> + <fileset dir="${basedir}/../ant_on_air/tests"> + <exclude name="*.swf" /> + </fileset> + </copy> + + <copy todir="${BUILD_DIR}/temp/${INSTALLER_PROJECT_NAME}" includeEmptyDirs="false"> + <fileset dir="${basedir}"> + <exclude name="*.p12"/> + <exclude name="*.password"/> + <exclude name="rat.report"/> + <exclude name="libs/**"/> + <exclude name="bin/**"/> + <exclude name="bin-debug/**"/> + <exclude name="build/**"/> + <exclude name="release/**"/> + <exclude name="rc/**"/> + <exclude name=".settings/**"/> + <exclude name="**/.actionScriptProperties"/> + <exclude name="**/.flexProperties"/> + <exclude name="**/.flexLibProperties"/> + <exclude name="**/.project"/> + <exclude name="**/.idea/**"/> + <exclude name="local.properties"/> + <!-- These are bumped up to the top-level release directory. --> + <exclude name="DISCLAIMER"/> + <exclude name="LICENSE"/> + <exclude name="NOTICE"/> + <exclude name="README"/> + <exclude name="RELEASE_GUIDE"/> + <exclude name="RELEASE_NOTES"/> + </fileset> + </copy> + + <!-- Bump these up to the top-level release directory. --> + <copy todir="${BUILD_DIR}/temp" includeEmptyDirs="false"> + <fileset dir="${basedir}"> + <include name="DISCLAIMER"/> + <include name="LICENSE"/> + <include name="NOTICE"/> + <include name="README"/> + <include name="RELEASE_GUIDE"/> + <include name="RELEASE_NOTES"/> + </fileset> + </copy> + + <fixcrlf srcdir="${BUILD_DIR}/temp" eol="crlf" encoding="UTF8" excludes="**/assets/**,**/*.ttf,**/*.png" fixlast="false"/> + + <mkdir dir="${RELEASE_DIR}"/> + <zip destfile="${RELEASE_DIR}/${source.kit}.zip" + basedir="${BUILD_DIR}/temp"/> + + <fixcrlf srcdir="${BUILD_DIR}/temp" eol="unix" encoding="UTF8" excludes="**/assets/**,**/*.ttf,**/*.png" fixlast="false"/> + + <tar destfile="${RELEASE_DIR}/${source.kit}.tar.gz" + compression="gzip" + basedir="${BUILD_DIR}/temp"/> + + <delete dir="${BUILD_DIR}/temp"/> + <delete dir="${BUILD_DIR}"/> + </target> + + <!-- + Packages the binary distribution with ZIP and TAR_GZIP. + --> + <target name="binary-package" description="Package binary files."> + <mkdir dir="${RELEASE_DIR}"/> + + <zip destfile="${RELEASE_DIR}/${binary.kit}.zip"> + <fileset dir="${basedir}/release"> + <exclude name="**/*.zip"/> + <exclude name="**/*.tar*"/> + </fileset> + </zip> + + <tar destfile="${RELEASE_DIR}/${binary.kit}.tar.gz" compression="gzip"> + <zipfileset src="${RELEASE_DIR}/${binary.kit}.zip"/> + </tar> + </target> + + <!-- + Run the Apache Rat audit tool against the source in the source kit. + The report is written to rat.report. + + You need to place apache-rat-tasks-0.8.jar and apache-rat-0.8.jar in the + anttask.classpath in order to do this. If the jar isn't found, the report + will not be generated. + --> + <target name="rat-report" depends="rat-taskdef" if="have.rattasks" + description="Report on licenses in source kit."> + + <!-- Unzip the source kit --> + <unzip src="${RELEASE_DIR}/${source.kit}.zip" dest="${RELEASE_DIR}/temp"/> + + <property name="rat.dir" value="${RELEASE_DIR}/temp"/> + + <echo message="Checking files at ${rat.dir}, report is ${basedir}/rat.report"/> + + <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" + reportFile="${basedir}/rat.report"> + <fileset dir="${rat.dir}"> + <exclude name="**/Apache License Version 2.txt"/> + <!-- Start of source files --> + <!-- Apache Category A: Authorized Licenses --> + <!-- "New BSD License" aka Modified BSD License" aka "BSD 3-Clause License" --> + <exclude name="${INSTALLER_PROJECT_NAME}/src/com/adobe/crypto/MD5Stream.as"/> + <exclude name="${INSTALLER_PROJECT_NAME}/src/com/adobe/utils/IntUtil.as"/> + <!-- generated source files that don't have Apache v2 license header --> + <exclude name="**/build.number"/> + <exclude name="**/.actionScriptProperties"/> + <exclude name="**/.flexProperties"/> + <exclude name="**/.flexLibProperties"/> + <exclude name="**/.project"/> + <exclude name="**/.fxpProperties"/> + <exclude name="**/.settings/**"/> + <exclude name="**/.idea/**"/> + <exclude name="**/*.iml"/> + <!-- End of source files --> + <!-- Start of binary files --> + <!-- exclude media (png, ico) --> + <exclude name="**/*.ico"/> + <exclude name="**/*.png"/> + <!-- exclude fonts --> + <exclude name="**/*.ttf"/> + <!-- End of binary files --> + </fileset> + </rat:report> + + <delete dir="${RELEASE_DIR}/temp" failOnError="false"/> + </target> + + <target name="rat-taskdef" description="Rat taskdef"> + <available property="have.rattasks" + resource="org/apache/rat/anttasks/antlib.xml" + classpathref="anttask.classpath"/> + + <antcall target="have-rattasks"/> + <antcall target="no-rattasks"/> + </target> + + <target name="have-rattasks" if="have.rattasks"> + <typedef resource="org/apache/rat/anttasks/antlib.xml" + uri="antlib:org.apache.rat.anttasks" + classpathref="anttask.classpath"/> + </target> + + <target name="no-rattasks" unless="have.rattasks"> + <echo message="Rat report not generated."/> + <echo message="rat jars (apache-rat-*.jar, apache-rat-tasks-*.jar)"/> + <echo message="not found in anttask.classpath"/> + </target> + + <target name="create-md5s" > + <checksum file="${RELEASE_DIR}/${source.kit}.zip" algorithm="md5" forceOverwrite="yes" /> + <checksum file="${RELEASE_DIR}/${source.kit}.tar.gz" algorithm="md5" forceOverwrite="yes" /> + <checksum file="${RELEASE_DIR}/${binary.kit}.${extension}" algorithm="md5" forceOverwrite="yes" /> + + </target> + + <target name="sign" > + <exec executable="gpg"> + <arg value="--armor" /> + <arg value="--output" /> + <arg value="${RELEASE_DIR}/${source.kit}.zip.asc" /> + <arg value="--detach-sig" /> + <arg value="${RELEASE_DIR}/${source.kit}.zip" /> + </exec> + + <exec executable="gpg"> + <arg value="--armor" /> + <arg value="--output" /> + <arg value="${RELEASE_DIR}/${source.kit}.tar.gz.asc" /> + <arg value="--detach-sig" /> + <arg value="${RELEASE_DIR}/${source.kit}.tar.gz" /> + </exec> + + <exec executable="gpg"> + <arg value="--armor" /> + <arg value="--output" /> + <arg value="${RELEASE_DIR}/${binary.kit}.${extension}.asc" /> + <arg value="--detach-sig" /> + <arg value="${RELEASE_DIR}/${binary.kit}.${extension}" /> + </exec> + </target> + + <target name="sign_exe" description="sign exe when on mac" > + <checksum file="${RELEASE_DIR}/${binary.kit}.exe" algorithm="md5" forceOverwrite="yes" /> + + <exec executable="gpg"> + <arg value="--armor" /> + <arg value="--output" /> + <arg value="${RELEASE_DIR}/${binary.kit}.exe.asc" /> + <arg value="--detach-sig" /> + <arg value="${RELEASE_DIR}/${binary.kit}.exe" /> + </exec> + </target> + + <target name="sign_dmg" description="sign dmg when on win" > + <checksum file="${RELEASE_DIR}/${binary.kit}.dmg" algorithm="md5" forceOverwrite="yes" /> + + <exec executable="gpg"> + <arg value="--armor" /> + <arg value="--output" /> + <arg value="${RELEASE_DIR}/${binary.kit}.dmg.asc" /> + <arg value="--detach-sig" /> + <arg value="${RELEASE_DIR}/${binary.kit}.dmg" /> + </exec> + </target> + + <target name="debug" > + <copy file="${SOURCE_DIR}/${APP_NAME}-app.xml" todir="${BUILD_DIR}" /> + <mkdir dir="${BUILD_DIR}/installer" /> + <exec executable="${AIR_HOME}/bin/${adl}" dir="${BUILD_DIR}" failonerror="true"> + <arg value="-runtime" /> + <arg value="${AIR_HOME}/runtimes/air/${runtime}" /> + <arg value="${BUILD_DIR}/${APP_NAME}-app.xml" /> + <arg value="--" /> + <arg value="-config=${LOCAL_CONFIG_URL}" /> + </exec> + </target> + + <target name="debug-locale" > + <copy file="${SOURCE_DIR}/${APP_NAME}-app.xml" todir="${BUILD_DIR}" /> + <mkdir dir="${BUILD_DIR}/installer" /> + <exec executable="${AIR_HOME}/bin/${adl}" dir="${BUILD_DIR}" failonerror="true"> + <arg value="-runtime" /> + <arg value="${AIR_HOME}/runtimes/air/${runtime}" /> + <arg value="${BUILD_DIR}/${APP_NAME}-app.xml" /> + <arg value="--" /> + <arg value="-config=${LOCAL_CONFIG_URL}" /> + <arg value="-language=${TEST_LOCALE}" /> + </exec> + </target> + + <target name="debug-for-real" > + <copy file="${SOURCE_DIR}/${APP_NAME}-app.xml" todir="${BUILD_DIR}" /> + <mkdir dir="${BUILD_DIR}/installer" /> + <exec executable="${AIR_HOME}/bin/${adl}" dir="${BUILD_DIR}" failonerror="true"> + <arg value="-runtime" /> + <arg value="${AIR_HOME}/runtimes/air/${runtime}" /> + <arg value="${BUILD_DIR}/${APP_NAME}-app.xml" /> + </exec> + </target> +</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/releasecandidate.xml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/releasecandidate.xml b/flex-installer/installer/releasecandidate.xml new file mode 100644 index 0000000..3dca3d9 --- /dev/null +++ b/flex-installer/installer/releasecandidate.xml @@ -0,0 +1,449 @@ +<?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="CreateInstallerReleaseCandidate" 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> + + <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 file="${basedir}/local.properties" /> + <condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_WIN}" > + <and> + <not> + <available file="${CERT_PASSWORD_FILE}" /> + </not> + <available file="${CERT_PASSWORD_FILE_WIN}" /> + </and> + </condition> + <condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_MAC}" > + <and> + <not> + <available file="${CERT_PASSWORD_FILE}" /> + </not> + <available file="${CERT_PASSWORD_FILE_MAC}" /> + </and> + </condition> + <condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_WIN}" > + <and> + <not> + <available file="${RELEASE_KEYSTORE_FILE}" /> + </not> + <available file="${RELEASE_KEYSTORE_FILE_WIN}" /> + </and> + </condition> + <condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_MAC}" > + <and> + <not> + <available file="${RELEASE_KEYSTORE_FILE}" /> + </not> + <available file="${RELEASE_KEYSTORE_FILE_MAC}" /> + </and> + </condition> + <property file="${basedir}/build.properties" /> + <property file="${basedir}/build.number"/> + + <property environment="env"/> + + <condition property="do.copy.downloads" > + <isset property="download.cache.dir" /> + </condition> + + <condition property="CRLF" value="%0D%0A"> + <isset property="isWindows" /> + </condition> + <property name="CRLF" value="%0A" /> + + <fail message="The my.name property is not set to the RM's name" + unless="my.name"/> + + <fail message="The ANT_HOME environment variable is not set." + unless="env.ANT_HOME"/> + + <available file="${svn.dist.dev}" + type="dir" + property="dist.dev" value="${svn.dist.dev}" /> + + <fail message="The svn.dist.dev property is not set to the working copy for https://dist.apache.org/repos/dist/dev." + unless="dist.dev"/> + + <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.PLAYERGLOBAL_HOME}" + type="dir" + property="PLAYERGLOBAL_HOME" value="${env.PLAYERGLOBAL_HOME}" /> + + <fail message="The PLAYERGLOBAL_HOME property is not set in environment or command-line." + unless="PLAYERGLOBAL_HOME"/> + + <available file="${env.FLASHPLAYER_DEBUGGER}" + type="dir" + property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" /> + + <available file="${env.FLASHPLAYER_DEBUGGER}" + type="file" + property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" /> + + <fail message="The FLASHPLAYER_DEBUGGER property is not set in environment or command-line." + unless="FLASHPLAYER_DEBUGGER"/> + + <available file="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" + type="file" + property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" /> + <available file="${env.ProgramFiles(x86)}/Mozilla Firefox/firefox.exe" + type="file" + property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" /> + <available file="/Applications/Firefox.app/Contents/MacOS/firefox" + type="file" + property="browser" value="/Applications/Firefox.app/Contents/MacOS/firefox" /> + + <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="Could not locate Firefox. Please specify a browser with + -Dbrowser=<path-to-browser>" + unless="browser"/> + + <available file="${env.ProgramFiles}/SlikSVN/bin/svn.exe" + type="file" + property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" /> + <available file="${env.ProgramFiles(x86)}/SlikSVN/bin/svn.exe" + type="file" + property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" /> + <available file="/opt/subversion/bin/svn" + type="file" + property="svn" value="/opt/subversion/bin/svn" /> + <fail message="Could not locate SVN command-line. Please specify the path to SVN with + -Dsvn=<path-to-svn>" + unless="svn"/> + + <available file="${env.ProgramFiles}/Git/bin/git.exe" + type="file" + property="git" value="${env.ProgramFiles}/Git/bin/git.exe" /> + <available file="${env.ProgramFiles(x86)}/Git/bin/git.exe" + type="file" + property="git" value="${env.ProgramFiles}/Git/bin/git.exe" /> + <available file="/usr/local/git/bin/git" + type="file" + property="git" value="/usr/local/git/bin/git" /> + <fail message="Could not locate Git command-line. Please specify the path to Git with + -Dgit=<path-to-git>" + unless="git"/> + + <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="Could not locate Firefox. Please specify a browser with + -Dbrowser=<path-to-browser>" + unless="browser"/> + <fail message="The release candidate number is not set. Specify -Drc=<rc number (e.g. 1, 2, 3, etc)>" + unless="rc"/> + + <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" description="Perform required release approval steps"> + <antcall target="check-new-version" /> + <antcall target="other-platform" /> + <exec executable="${git}" dir="${basedir}/.." failonerror="true" > + <arg value="pull" /> + <arg value="--rebase" /> + </exec> + <ant antfile="build.xml" target="release" /> + <mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" /> + <copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}" > + <fileset dir="${basedir}/release" > + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-src*" /> + </fileset> + </copy> + <copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" > + <fileset dir="${basedir}/release" > + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-bin*" /> + </fileset> + </copy> + <copy file="${basedir}/README" tofile="${dist.dev}/flex/installer/${release.version}/rc${rc}/READme" /> + <copy file="${basedir}/ApproveInstaller.xml" tofile="${dist.dev}/flex/installer/${release.version}/rc${rc}/ApproveInstaller.xml" /> + <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" > + <arg value="add" /> + <arg value="${dist.dev}/flex/installer/${release.version}/rc${rc}" /> + </exec> + <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" > + <arg value="commit" /> + <arg value="--force-interactive" /> + <arg value="-m" /> + <arg value="rc${rc} of Apache Flex Installer ${release.version}" /> + </exec> + <exec executable="${git}" dir="${basedir}/.." failonerror="true" > + <arg value="tag" /> + <arg value="-a" /> + <arg value="apache-flex-sdk-installer-${release.version}-rc${rc}" /> + <arg value="-m" /> + <arg value=""rc${rc} of apache-flex-sdk-installer-${release.version}"" /> + </exec> + <exec executable="${git}" dir="${basedir}/.." failonerror="true" > + <arg value="push" /> + <arg value="--tags" /> + </exec> + <antcall target="mail" /> + </target> + + <target name="check-new-version" description="check if svn folder needs to be added" > + <condition property="version.folder" value="${dist.dev}/flex/installer/${release.version}" > + <not> + <available file="${dist.dev}/flex/installer/${release.version}" /> + </not> + </condition> + <antcall target="add-version-folder" /> + </target> + + <target name="add-version-folder" description="adds svn folder if needed" if="version.folder" > + <mkdir dir="${version.folder}" /> + <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" > + <arg value="add" /> + <arg value="${version.folder}" /> + </exec> + </target> + + <target name="other-platform" depends="other-platform-mac, other-platform-win" unless="skip.other.platform" > + </target> + <target name="other-platform-mac" if="isMac" > + <available file="${basedir}/release/apache-flex-sdk-installer-${release.version}.${build.number}-bin.exe" + type="file" property="other.binary" /> + <fail message="${basedir}/release/apache-flex-sdk-installer-${release.version}.${build.number}-bin.exe not found. The windows version should be built before running this script" + unless="other.binary"/> + <ant antfile="build.xml" target="sign_exe" /> + <mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" /> + <copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" > + <fileset dir="${basedir}/release" > + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-bin*" /> + </fileset> + </copy> + </target> + <target name="other-platform-win" if="isWindows" > + <available file="${basedir}/release/apache-flex-sdk-installer-${release.version}.${build.number}-bin.dmg" + type="file" property="other.binary" /> + <fail message="${basedir}/release/apache-flex-sdk-installer-${release.version}.${build.number}-bin.dmg not found. The windows version should be built before running this script" + unless="other.binary"/> + <ant antfile="build.xml" target="sign_dmg" /> + <mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" /> + <copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" > + <fileset dir="${basedir}/release" > + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-bin*" /> + </fileset> + </copy> + </target> + + <target name="mail" > + <!-- try to set line breaks before the vertical line | --> + <echo file="${basedir}/discussthread.properties">discuss.thread.body=This is the discussion thread.\n\ +\n\ +Changes in this RC include:\n\ +\n\ +\n\ +Thanks,\n\ +${my.name} +</echo> + <replace file="${basedir}/discussthread.properties"> + <replacefilter token=" " value="%20" /> + <replacefilter token="\n" value="${CRLF}" /> + </replace> + <property file="${basedir}/discussthread.properties" /> + + <!-- try to set line breaks before the vertical line | --> + <echo file="${basedir}/votethread.properties">vote.thread.body=Hi,\n\ +\n\ +Please vote to approve Apache Flex SDK Installer version ${release.version} to be \n\ +released.\n\ +\n\ +The source distributions for Windows and Mac are available here:\n\ +https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/\n\ +\n\ +The binary distributions as a convenience for the respective platforms,\n\ +are available here:\n\ +https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/binaries\n\ +\n\ +As agreed, there are no Linux binaries for this version.\n\ +\n\ +Before voting please review the sections:\n\ +What are the ASF requirements on approving a release? at\n\ +http://www.apache.org/dev/ and approving a release at\n\ +http://www.apache.org/dev/release.html#approving-a-release\n\ +\n\ +For your convenience, there is an Ant script in the RC folder that\n\ +automates the checks a voter should perform on the RC.\n\ +It will:\n\ + - download the default source package for your OS (use -Dpackage.suffix to override)\n\ + - run md5 and gpg checks (this assumes you have gpg installed in your path)\n\ + - uncompress the source package\n\ + - install and run rat\n\ + - display the rat report and ask you to verify\n\ + - display the rat report without the AL files and ask you to verify the non-AL files\n\ + - display the README and ask you to verify\n\ + - display the RELEASE_NOTES and ask you to verify\n\ + - display the NOTICE and ask you to verify\n\ + - display the LICENSE and ask you to verify\n\ + - run the build and any tests run by the build.\n\ +\n\ +\n\ +You should be able to go away for a while during the build. When it is\n\ +finished, it will display information to be copied into the vote thread.\n\ +You are not required to use this script, and more testing of the packages\n\ +and build results are always encouraged.\n\ +\n\ +\n\ +To use this script (assuming you have Ant installed), it should be as\n\ +simple as:\n\ +- Create an empty folder\n\ +- Download ApproveInstaller.xml into that folder from:\n\ +\n\ +https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/ApproveInstaller.xml\n\ +\n\ +- Run: ant -e -f ApproveInstaller.xml -Drelease.version=${release.version} -Drc=${rc}\n\ +\n\ +\n\ +Vote\n\ +[ ] +1 Approve the release\n\ +[ ] -1 Veto the release (please provide specific comments)\n\ +\n\ +This vote will be open for at least 72 hours.\n\ +\n\ +Thanks,\n\ +${my.name} +</echo> + <replace file="${basedir}/votethread.properties"> + <replacefilter token=" " value="%20" /> + <replacefilter token="\n" value="${CRLF}" /> + </replace> + <property file="${basedir}/votethread.properties" /> + <echo file="${basedir}/votethread.html"><html><body><a href="mailto:[email protected]?subject=[DISCUSS]%20Discuss%20Release%20Apache%20Flex%20SDK%20Installer%20${release.version}%20RC${rc}&body=${discuss.thread.body}">Click here to review discuss thread</a><br/><a href="mailto:[email protected]?subject=[VOTE]%20Release%20Apache%20Flex%20SDK%20Installer%20${release.version}%20RC${rc}&body=${vote.thread.body}">Click here to review vote thread</a></body></html></echo> + <makeurl file="${basedir}/votethread.html" property="vote.thread.url" /> + <exec executable="${browser}"> + <arg value="${vote.thread.url}" /> + </exec> + <delete file="${basedir}/votethread.properties" /> + <delete file="${basedir}/votethread.html" /> + <delete file="${basedir}/discussthread.properties" /> + </target> + + <target name="release" > + <available file="${svn.dist.release}" + type="dir" + property="dist.release" value="${svn.dist.release}" /> + + <fail message="The svn.dist.release property is not set to the working copy for https://dist.apache.org/repos/dist/release." + unless="dist.release"/> + + <exec executable="${svn}" dir="${dist.release}/flex" failonerror="true" > + <arg value="update" /> + </exec> + <mkdir dir="${dist.release}/flex/installer/${release.version}" /> + <mkdir dir="${dist.release}/flex/installer/${release.version}/binaries" /> + <copy todir="${dist.release}/flex/installer/${release.version}/binaries" > + <fileset dir="${dist.dev}/flex/installer/rc${rc}/binaries" > + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-bin*" /> + </fileset> + </copy> + <copy todir="${dist.release}/flex/installer/${release.version}" > + <fileset dir="${dist.dev}/flex/installer/rc${rc}" > + <include name="READme" /> + <include name="apache-flex-sdk-installer-${release.version}.${build.number}-src*" /> + </fileset> + </copy> + <exec executable="${svn}" dir="${dist.release}/flex/installer" failonerror="true" > + <arg value="add" /> + <arg value="${release.version}" /> + </exec> + <exec executable="${svn}" dir="${dist.release}/flex/installer" failonerror="true" > + <arg value="commit" /> + <arg value="--username" /> + <arg value="${apache.username}" /> + <arg value="--password" /> + <arg value="${apache.password}" /> + <arg value="-m" /> + <arg value="Apache Flex SDK Installer ${release.version}" /> + </exec> + <exec executable="${git}" dir="${basedir}" failonerror="true" > + <arg value="tag" /> + <arg value="-a" /> + <arg value="apache-flex-sdk-installer-${release.version}.${build.number}" /> + <arg value="-m" /> + <arg value=""Official release of apache-flex-sdk-installer-${release.version}.${build.number}"" /> + </exec> + <exec executable="${git}" dir="${basedir}" failonerror="true" > + <arg value="push" /> + <arg value="--tags" /> + </exec> + <echo>Wait at least 24 hours before updating sdk-installer-config-4.0.xml and installer page on website</echo> + </target> + +</project> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/sign_and_hash.sh ---------------------------------------------------------------------- diff --git a/flex-installer/installer/sign_and_hash.sh b/flex-installer/installer/sign_and_hash.sh new file mode 100644 index 0000000..0e2d3c2 --- /dev/null +++ b/flex-installer/installer/sign_and_hash.sh @@ -0,0 +1,56 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# Copyright 2004 The Apache Software Foundation +# +# Licensed 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. +#------------------------------------------------------------------------------ +# $Id$ +# +# Creates detached ascii signatures and md5 hashes for each of the files in the +# current directory. +# +# Also verifies the signatures. +# +# For each file in the current directory, two new files are created: +# +# <name>.asc -- ascii-armored detached PGP digital signature +# <name>.md5 -- md5 hash (checksum) +# +# where <name> is the name of the file, not including file path. +# +# For example, foo-1.0-src.tar.gz in the current directory will result in +# foo-1.0-src.tar.gz.asc and foo-1.0-src.tar.gz.md5 added to the current +# directory. +# +# Deletes any .asc or .md5 files in the current directory before processing +# and does NOT recurse subdirectories. +# +# Assumes that you have a pgp id and keypair set up and prompts for the +# passphrase for each signature created. +# +# usage: +# sign_and_hash.sh +# +# requires: +# gpg +# md5sum +#------------------------------------------------------------------------------ +rm -f *.asc +rm -f *.md5 +for file in *; do + if [ -f "$file" ]; then + gpg --print-md MD5 $file > ${file}.md5 + gpg --armor --output ${file}.asc --detach-sig $file + gpg --verify ${file}.asc $file + fi +done http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/InstallApacheFlex-app.xml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/InstallApacheFlex-app.xml b/flex-installer/installer/src/InstallApacheFlex-app.xml new file mode 100755 index 0000000..79ff410 --- /dev/null +++ b/flex-installer/installer/src/InstallApacheFlex-app.xml @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!-- + + 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. + +--> +<application xmlns="http://ns.adobe.com/air/application/4.0"> + +<!-- Adobe AIR Application Descriptor File Template. + + Specifies parameters for identifying, installing, and launching AIR applications. + + xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.8 + The last segment of the namespace specifies the version + of the AIR runtime required for this application to run. + + minimumPatchLevel - The minimum patch level of the AIR runtime required to run + the application. Optional. +--> + + <!-- A universally unique application identifier. Must be unique across all AIR applications. + Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. --> + <id>org.apache.flex.installapacheflex</id> + + <!-- Used as the filename for the application. Required. --> + <filename>Apache Flex SDK Installer</filename> + + <!-- The name that is displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <name>Apache Flex SDK Installer</name> + + <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. + Values can also be 1-part or 2-part. It is not necessary to have a 3-part value. + An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . --> + <versionNumber>3.2.0</versionNumber> + + <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. --> + <!-- <versionLabel></versionLabel> --> + + <!-- Description, displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <!-- <description></description> --> + + <!-- Copyright information. Optional --> + <copyright>Copyright 2014 The Apache Software Foundation.</copyright> + + <!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 --> + <!-- <publisherID></publisherID> --> + + <!-- Settings for the application's initial window. Required. --> + <initialWindow> + <!-- The main SWF or HTML file of the application. Required. --> + <!-- Note: In Flash Builder, the SWF reference is set automatically. --> + <content>InstallApacheFlex.swf</content> + + <!-- The title of the main window. Optional. --> + <!-- <title></title> --> + + <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. --> + <!-- <systemChrome></systemChrome> --> + + <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --> + <!-- <transparent></transparent> --> + + <!-- Whether the window is initially visible. Optional. Default false. --> + <!-- <visible></visible> --> + + <!-- Whether the user can minimize the window. Optional. Default true. --> + <!-- <minimizable></minimizable> --> + + <!-- Whether the user can maximize the window. Optional. Default true. --> + <!-- <maximizable></maximizable> --> + + <!-- Whether the user can resize the window. Optional. Default true. --> + <!-- <resizable></resizable> --> + + <!-- The window's initial width in pixels. Optional. --> + <!-- <width></width> --> + + <!-- The window's initial height in pixels. Optional. --> + <!-- <height></height> --> + + <!-- The window's initial x position. Optional. --> + <!-- <x></x> --> + + <!-- The window's initial y position. Optional. --> + <!-- <y></y> --> + + <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. --> + <!-- <minSize></minSize> --> + + <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. --> + <!-- <maxSize></maxSize> --> + + <!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device --> + + <!-- <aspectRatio></aspectRatio> --> + + <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false --> + + <!-- <autoOrients></autoOrients> --> + + <!-- Whether the app launches in full screen. Optional. Mobile only. Default false --> + + <!-- <fullScreen></fullScreen> --> + + <!-- The render mode for the app (either auto, cpu, gpu, or direct). Optional. Default auto --> + + <!-- <renderMode></renderMode> --> + + <!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none"). Optional. Defaults "pan." --> + <!-- <softKeyboardBehavior></softKeyboardBehavior> --> + <autoOrients>false</autoOrients> + <fullScreen>false</fullScreen> + <visible>false</visible> + </initialWindow> + + <!-- We recommend omitting the supportedProfiles element, --> + <!-- which in turn permits your application to be deployed to all --> + <!-- devices supported by AIR. If you wish to restrict deployment --> + <!-- (i.e., to only mobile devices) then add this element and list --> + <!-- only the profiles which your application does support. --> + <!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> --> + <supportedProfiles>extendedDesktop desktop</supportedProfiles> + + <!-- The subpath of the standard default installation location to use. Optional. --> + <installFolder>Apache Flex</installFolder> + + <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --> + <programMenuFolder>Apache Flex</programMenuFolder> + + <!-- The icon the system uses for the application. For at least one resolution, + specify the path to a PNG file included in the AIR package. Optional. --> + <icon> + <image16x16>assets/icons/16.png</image16x16> + <image29x29>assets/icons/29.png</image29x29> + <image32x32>assets/icons/32.png</image32x32> + <image36x36>assets/icons/36.png</image36x36> + <image48x48>assets/icons/48.png</image48x48> + <image57x57>assets/icons/57.png</image57x57> + <image72x72>assets/icons/72.png</image72x72> + <image114x114>assets/icons/114.png</image114x114> + <image128x128>assets/icons/128.png</image128x128> + </icon> + + <!-- Whether the application handles the update when a user double-clicks an update version + of the AIR file (true), or the default AIR application installer handles the update (false). + Optional. Default false. --> + <!-- <customUpdateUI></customUpdateUI> --> + + <!-- Whether the application can be launched when the user clicks a link in a web browser. + Optional. Default false. --> + <!-- <allowBrowserInvocation></allowBrowserInvocation> --> + + <!-- Listing of file types for which the application can register. Optional. --> + <!-- <fileTypes> --> + + <!-- Defines one file type. Optional. --> + <!-- <fileType> --> + + <!-- The name that the system displays for the registered file type. Required. --> + <!-- <name></name> --> + + <!-- The extension to register. Required. --> + <!-- <extension></extension> --> + + <!-- The description of the file type. Optional. --> + <!-- <description></description> --> + + <!-- The MIME content type. --> + <!-- <contentType></contentType> --> + + <!-- The icon to display for the file type. Optional. --> + <!-- <icon> + <image16x16></image16x16> + <image32x32></image32x32> + <image48x48></image48x48> + <image128x128></image128x128> + </icon> --> + + <!-- </fileType> --> + <!-- </fileTypes> --> + + <!-- iOS specific capabilities --> + <!-- <iPhone> --> + <!-- A list of plist key/value pairs to be added to the application Info.plist --> + <!-- <InfoAdditions> + <![CDATA[ + <key>UIDeviceFamily</key> + <array> + <string>1</string> + <string>2</string> + </array> + <key>UIStatusBarStyle</key> + <string>UIStatusBarStyleBlackOpaque</string> + <key>UIRequiresPersistentWiFi</key> + <string>YES</string> + ]]> + </InfoAdditions> --> + <!-- A list of plist key/value pairs to be added to the application Entitlements.plist --> + <!-- <Entitlements> + <![CDATA[ + <key>keychain-access-groups</key> + <array> + <string></string> + <string></string> + </array> + ]]> + </Entitlements> --> + <!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" --> + <!-- <requestedDisplayResolution></requestedDisplayResolution> --> + <!-- </iPhone> --> + + <!-- Specify Android specific tags that get passed to AndroidManifest.xml file. --> + <!--<android> --> + <!-- <manifestAdditions> + <![CDATA[ + <manifest android:installLocation="auto"> + <uses-permission android:name="android.permission.INTERNET"/> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> + <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/> + <application android:enabled="true"> + <activity android:excludeFromRecents="false"> + <intent-filter> + <action android:name="android.intent.action.MAIN"/> + <category android:name="android.intent.category.LAUNCHER"/> + </intent-filter> + </activity> + </application> + </manifest> + ]]> + </manifestAdditions> --> + <!-- Color depth for the app (either "32bit" or "16bit"). Optional. Default 16bit before namespace 3.0, 32bit after --> + <!-- <colorDepth></colorDepth> --> + <!-- </android> --> + <!-- End of the schema for adding the android specific tags in AndroidManifest.xml file --> + +</application>
