source: main/trunk/release-kits/shared/core/ant-scripts/create-installer.xml@ 23493

Last change on this file since 23493 was 23493, checked in by sjm84, 13 years ago

Split the version property into a version propery (e.g. 2.84) and version-extra property (e.g. RC1) to better support the creation of special greenstone versions (e.g. release candidates). The amount of memory used by the release kit was also increased from 800MB to 1000MB

File size: 10.3 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="create-installer">
3
4 <target name="create-installer" depends="init">
5
6 <!-- create installer directory -->
7 <mkdir dir="installer/classes"/>
8
9 <!-- insert the installer descriptors -->
10 <copy todir="installer" overwrite="true">
11 <fileset dir="${rk.home}/kits/${rk.name}/installer" includes="antinstall-config.xml,build.xml"/>
12 </copy>
13
14 <!-- insert the language bundle -->
15 <native2ascii
16 implementation="sun"
17 encoding="UTF-8"
18 src="${rk.home}/shared/core/language-strings"
19 dest="${basedir}/installer/classes/resources"/>
20
21 <!-- insert core, rk-specific and os-specific installer classes -->
22 <copy todir="${basedir}/installer/classes" overwrite="true">
23 <fileset dir="${rk.home}/shared/core/installer-classes" erroronmissingdir="false"/>
24 <fileset dir="${rk.home}/kits/${rk.name}/installer-classes" erroronmissingdir="false"/>
25 <fileset dir="${rk.home}/shared/${rk.os}/installer-classes" erroronmissingdir="false"/>
26 </copy>
27
28 <!-- insert the licence -->
29 <copy file="compiled/LICENSE.txt" todir="${basedir}/installer/classes" overwrite="true"/>
30
31 <!-- insert greenstone's ant tasks -->
32 <unjar src="${rk.home}/shared/core/ant-tasks/greenstone/anttasks.jar" dest="installer/classes"/>
33
34 <!-- insert antelope tasks -->
35 <unjar src="${rk.home}/shared/core/ant-tasks/antelope/AntelopeTasks_3.4.2.jar" dest="installer/classes"/>
36
37 <!-- Include lib/crypt.class but only for releasekit2 (rk2) -->
38 <if><bool><equals arg1="${rk.name}" arg2="rk2"/></bool>
39 <unjar src="${rk.home}/shared/core/lib/crypt.jar" dest="${basedir}/installer/classes">
40 <patternset><include name="**/*.class"/></patternset>
41 </unjar>
42 </if>
43
44 <!-- (windows only) -->
45 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
46 <!-- insert 7za.exe tool -->
47 <copy todir="installer/classes" overwrite="true" file="${rk.home}/shared/windows/7za/7za.exe"/>
48
49 <!-- insert roxes and orangevolt for windows tricks in ant -->
50 <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar" dest="installer/classes"/>
51 <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar" dest="installer/classes"/>
52
53 <!-- (linux and mac only) -->
54 <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
55 <!-- insert 7zip ant task -->
56 <unjar src="${rk.home}/shared/core/ant-tasks/7z-ant/7z.jar" dest="installer/classes"/>
57
58 </if></else></if>
59
60 <!-- clean up meta directory -->
61 <delete dir="installer/classes/META-INF"/>
62
63 <!-- calculate the size of: core -->
64 <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
65 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
66 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
67 <else><if><bool><equals arg1="${rk.os}" arg2="linux"/></bool>
68 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
69 <else>
70 <property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/>
71 </else></if></else></if>
72 <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
73 <property name="component.size.core" value="${component.megabytesize.core} MB"/>
74
75 <!-- calculate the size of: imagemagick -->
76 <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
77 <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
78 <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
79
80 <!-- calculate the size of: ghostscript -->
81 <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
82 <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
83 <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
84
85 <!-- calculate the size of: apache httpd -->
86 <length property="component.bytesize.httpd" mode="all"><fileset file="${basedir}/components/apachehttpd.comp"/></length>
87 <math result="component.megabytesize.httpd" operand1="${component.bytesize.httpd}" operation="/" operand2="1048576" datatype="int"/>
88 <property name="component.size.httpd" value="${component.megabytesize.httpd} MB"/>
89
90 <!-- calculate the size of: tomcat -->
91 <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
92 <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
93 <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
94
95 <!-- EXT -->
96 <!-- calculate the size of: amp (and put it into the components directory) -->
97 <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/><not><available file="${rk.home}/ext/amp.lzma"/></not></and></bool>
98 <fail>amp.lzma file not found in the release kit ext directory</fail>
99 </if>
100
101 <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/></and></bool>
102 <echo>Copying amp.lzma to compontents directory</echo>
103 <copy file="${rk.home}/ext/amp.lzma" todir="${basedir}/components"/>
104 <property name="component.size.amp" value="257 MB"/>
105 </if>
106 <!-- /EXT -->
107
108 <!-- make the installer descriptors relevant to the current os -->
109 <dcff file="installer/antinstall-config.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
110 <dcff file="installer/build.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
111
112 <!-- EXT -->
113 <if><bool><not><equals arg1="${amp.enabled}" arg2="true"/></not></bool>
114
115 <dcff file="installer/antinstall-config.xml" startTag="&lt;!-- start amp --&gt;" endTag="&lt;!-- end amp --&gt;" />
116 <dcff file="installer/build.xml" startTag="&lt;!-- start amp --&gt;" endTag="&lt;!-- end amp --&gt;" />
117 </if>
118 <!-- /EXT -->
119 <!-- put the concrete values of things in the config -->
120 <rsr>
121 <fileset dir="${basedir}/installer" includes="*.xml"/>
122 <job pattern="@version@" replacement="${version}${version-extra}"/>
123 <job pattern="@component.size.core@" replacement="${component.size.core}"/>
124 <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
125 <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
126 <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
127 <job pattern="@component.size.httpd@" replacement="${component.size.httpd}"/>
128 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
129 <job pattern="@java.extracted@" replacement="${java.extracted}"/>
130 </rsr>
131
132 <!-- EXT -->
133 <if><bool><equals arg1="${amp.enabled}" arg2="true"/></bool>
134 <rsr>
135 <fileset dir="${basedir}/installer" includes="*.xml"/>
136 <job pattern="@component.size.amp@" replacement="${component.size.amp}"/>
137 </rsr>
138 </if>
139 <!-- /EXT -->
140
141 <!-- put the concrete values of things in the text -->
142 <rsr>
143 <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
144 <job pattern="@version@" replacement="${version}${version-extra}"/>
145 <job pattern="@version.major@" replacement="${version.major}"/>
146 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
147 <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
148 <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
149 <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
150 <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
151 <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
152 </rsr>
153
154 <!-- now ready to run "compile-*-installer" targets -->
155
156 <antcall target="compile-binary-installer"/>
157
158 </target>
159
160 <target name="compile-binary-installer">
161
162 <!-- strip out lines for the cdrom installer -->
163 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-binary.xml" overwrite="true"/>
164 <dcff file="installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
165 <copy file="installer/build.xml" tofile="installer/build-binary.xml" overwrite="true"/>
166 <dcff file="installer/build-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
167
168 <!-- create insaller jar with ant-installer's ant task -->
169 <installer file="installer/Greenstone-${version}${version-extra}-${os.suffix}.jar"
170 compress="true"
171 extractType="NonExtractor"
172 installConfig="installer/antinstall-config-binary.xml"
173 buildFile="installer/build-binary.xml"
174 antInstallLib="${rk.home}/shared/core/ant-installer/lib"
175 antLib="${ant.home}/lib"
176 validateConfig="true"
177 icons="bluecurve">
178
179 <zipfileset dir="installer/classes" includes="**/*" />
180 <zipfileset dir="components" includes="*.lzma"/>
181 </installer>
182
183 </target>
184
185 <target name="compile-cdrom-installer">
186
187 <!-- strip out lines for the binary(web) installer -->
188 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-cdrom.xml"/>
189 <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
190 <copy file="installer/build.xml" tofile="installer/build-cdrom.xml"/>
191 <dcff file="installer/build-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
192
193 <installer file="installer/cdrom.jar"
194 compress="true"
195 extractType="NonExtractor"
196 installConfig="installer/antinstall-config-cdrom.xml"
197 buildFile="installer/build-cdrom.xml"
198 antInstallLib="${rk.home}/shared/core/ant-installer/lib"
199 antLib="${ant.home}/lib"
200 validateConfig="true"
201 icons="bluecurve">
202
203 <zipfileset dir="installer/classes" includes="**/*" />
204 </installer>
205
206 </target>
207
208</project>
Note: See TracBrowser for help on using the repository browser.