source: release-kits/shared/core/ant-scripts/init.xml@ 19510

Last change on this file since 19510 was 19510, checked in by oranfry, 12 years ago

main release kits now create their own cdrom installers and wrap them

File size: 20.8 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="rk-init">
3
4 <!-- load in static properties from build.properties -->
5 <property file="${rk.name}-build.properties" />
6
7 <!-- CONSTANTS (overridable in build.properties) -->
8
9 <!-- svn root -->
10 <property name="svn.root" value="http://svn.greenstone.org" />
11
12 <!-- default revision and branch path -->
13 <property name="branch.path" value="trunk" />
14 <property name="branch.revision" value="HEAD" />
15
16 <!-- the minimum version of java which the installer should be run with (this gets used in search4j) -->
17 <property name="java.min.version" value="1.4.0_00"/>
18
19 <!-- create a localised basedir property -->
20 <path id="basedir.path"><pathelement location="${basedir}"/></path>
21 <property name="basedir.local" refid="basedir.path"/>
22
23 <!-- current date and time -->
24 <tstamp>
25 <format property="current.month" pattern="MMM"/>
26 <format property="current.year" pattern="yyyy"/>
27 <format property="date" pattern="yyyy.MM.dd"/>
28 </tstamp>
29
30 <!-- BUNDLED JAVA INFO -->
31 <!-- the bundled javas are kept in shared/linux/wrapper and shared/windows/wrapper in the repository -->
32 <!-- change this info when the bundled version changes -->
33 <!-- linux -->
34 <property name="linux-java.installer" value="jre_bin"/>
35 <property name="bundled.version.linux-java" value="1.6.0_05"/> <!-- set this to the version number of java in the above archive -->
36 <property name="linux-java.extracted" value="jre"/> <!-- set this to the name of the top level directory in the above archive -->
37 <property name="component.bytesize.linux-java" value="101245987"/> <!-- set this to the size of the extract archive -->
38
39 <!-- windows -->
40 <property name="windows-java.installer" value="jre.exe"/>
41 <property name="bundled.version.windows-java" value="1.6.0_07"/> <!-- set this to the version number of java in the above archive -->
42 <property name="windows-java.extracted" value="jre"/> <!-- set this to the name of the top level directory in the above archive -->
43 <property name="component.bytesize.windows-java" value="75000000"/> <!-- set this to the size of the extract archive -->
44
45 <!-- version numbers of other bundled things -->
46 <property name="bundled.version.imagemagick" value="6.4.3"/>
47 <property name="bundled.version.ghostscript" value="8.63"/>
48 <property name="bundled.version.tomcat" value="5.5.25"/>
49 <property name="bundled.version.ant" value="1.6.5"/>
50
51 <!-- CLASSPATH -->
52 <path id="project.classpath">
53
54 <!-- our classes -->
55 <fileset dir="${rk.home}/core">
56 <include name="ant-tasks/antelope/AntelopeTasks_3.4.2.jar"/>
57 <include name="ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar"/>
58 <include name="ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar"/>
59 <include name="ant-tasks/svnant/lib/ganymed.jar"/>
60 <include name="ant-tasks/svnant/lib/svnClientAdapter.jar"/>
61 <include name="ant-tasks/svnant/lib/svnant.jar"/>
62 <include name="ant-tasks/svnant/lib/svnjavahl.jar"/>
63 <include name="ant-tasks/svnant/lib/svnkit.jar"/>
64 <include name="ant-tasks/greenstone/anttasks.jar"/>
65 <include name="ant-tasks/7z-ant/7z.jar"/>
66 <include name="lib/crypt.jar"/>
67 <include name="lib/serializer.jar"/>
68 <include name="lib/xalan.jar"/>
69 <include name="lib/xercesImpl.jar"/>
70 <include name="lib/xml-apis.jar"/>
71 <include name="ant-installer/lib/ant-installer-ext.jar"/>
72 <include name="ant-installer/lib/ant-installer.jar"/>
73 </fileset>
74
75 </path>
76
77 <!-- SELF DEFINED TASKS AND TYPES -->
78 <taskdef name="if" classname="ise.antelope.tasks.IfTask" classpathref="project.classpath"/>
79 <taskdef name="try" classname="ise.antelope.tasks.TryTask" classpathref="project.classpath"/>
80 <taskdef name="math" classname="ise.antelope.tasks.MathTask" classpathref="project.classpath"/>
81 <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="project.classpath"/>
82 <taskdef name="sevenzip" classname="org.apache.tools.ant.SevenZip" classpathref="project.classpath"/>
83 <taskdef name="installer" classname="org.tp23.antinstaller.taskdefs.Installer" classpathref="project.classpath"/>
84 <typedef name="rsr" classname="org.greenstone.anttasks.RegexSearchReplace" classpathref="project.classpath"/>
85 <typedef name="dcff" classname="org.greenstone.anttasks.DeleteChunkFromFile" classpathref="project.classpath"/>
86 <typedef name="rsplit" classname="org.greenstone.anttasks.SplitResource" classpathref="project.classpath"/>
87 <typedef name="get-property-value" classname="org.greenstone.anttasks.GetPropertyValue" classpathref="project.classpath"/>
88
89 <!-- DATES IN DIFFERENT LANGUAGES -->
90 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ar.Dates.${current.month}" outputProperty="month.ar"/>
91 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ca.Dates.${current.month}" outputProperty="month.ca"/>
92 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="el.Dates.${current.month}" outputProperty="month.el"/>
93 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="es.Dates.${current.month}" outputProperty="month.es"/>
94 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="fr.Dates.${current.month}" outputProperty="month.fr"/>
95 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="lv.Dates.${current.month}" outputProperty="month.lv"/>
96 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="mr.Dates.${current.month}" outputProperty="month.mr"/>
97 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ro.Dates.${current.month}" outputProperty="month.ro"/>
98 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ru.Dates.${current.month}" outputProperty="month.ru"/>
99 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="vi.Dates.${current.month}" outputProperty="month.vi"/>
100 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="zh.Dates.${current.month}" outputProperty="month.zh"/>
101 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="default.Dates.${current.month}" outputProperty="month.default"/>
102
103 <!--
104 <echo level="info">Current Date</echo>
105 <echo level="info">ar: ${month.ar} ${current.year}</echo>
106 <echo level="info">ca: ${month.el} ${current.year}</echo>
107 <echo level="info">el: ${month.el} ${current.year}</echo>
108 <echo level="info">es: ${month.es} ${current.year}</echo>
109 <echo level="info">fr: ${month.fr} ${current.year}</echo>
110 <echo level="info">lv: ${month.lv} ${current.year}</echo>
111 <echo level="info">mr: ${month.mr} ${current.year}</echo>
112 <echo level="info">ro: ${month.ro} ${current.year}</echo>
113 <echo level="info">ru: ${month.ru} ${current.year}</echo>
114 <echo level="info">vi: ${month.vi} ${current.year}</echo>
115 <echo level="info">zh: ${month.zh} ${current.year}</echo>
116 <echo level="info">default: (${month.default} ${current.year})</echo>
117 -->
118
119 <!-- CHECKS PRE-CONDITIONS -->
120 <target name="init">
121
122 <!-- version number -->
123 <if>
124 <bool>
125 <not><isset property="version"/></not>
126 </bool>
127 <fail>Version number not set.
128Check that the file '${rk.name}-build.properties' exists and defines property 'version'.</fail>
129 </if>
130 <property name="app.version" value="${version}"/>
131
132 <!-- show important properties -->
133 <echo level="info">Version (version): ${version}</echo>
134 <echo level="info">Branch Path (branch.path): ${branch.path}</echo>
135 <echo level="info">Date (date): ${date}</echo>
136 <echo level="info">Current Month (current.month): ${current.month}</echo>
137 <echo level="info">Current Year (current.year): ${current.year}</echo>
138
139 </target>
140
141 <target name="strip-svn-dirs">
142 <delete includeemptydirs="true">
143 <fileset dir="${dir}" defaultexcludes="false">
144 <include name="**/.svn/**" />
145 <include name="**/.svn/" />
146 <include name=".svn/**" />
147 <include name=".svn/" />
148 </fileset>
149 </delete>
150 </target>
151
152 <target name="compile-binary-installer">
153
154 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-binary.xml"/>
155 <dcff file="${basedir}/installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
156
157 <copy file="${basedir}/installer/build.xml" tofile="${basedir}/installer/build-binary.xml"/>
158 <dcff file="${basedir}/installer/build-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
159
160 <installer file="${basedir}/installer/Greenstone-${version}-${os.suffix}.jar"
161 compress="true"
162 extractType="NonExtractor"
163 installConfig="${basedir}/installer/antinstall-config-binary.xml"
164 buildFile="${basedir}/installer/build-binary.xml"
165 antInstallLib="${rk.home}/core/ant-installer/lib"
166 antLib="${rk.home}/core/ant/lib"
167 validateConfig="true"
168 icons="bluecurve">
169
170 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
171 <zipfileset dir="${basedir}/components" includes="*.lzma" excludes="source-release.lzma" />
172
173 </installer>
174
175 </target>
176
177 <target name="compile-cdrom-installer">
178
179 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-cdrom.xml"/>
180 <dcff file="${basedir}/installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
181
182 <copy file="${basedir}/installer/build.xml" tofile="${basedir}/installer/build-cdrom.xml"/>
183 <dcff file="${basedir}/installer/build-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
184
185 <installer file="${basedir}/installer/cdrom.jar"
186 compress="true"
187 extractType="NonExtractor"
188 installConfig="${basedir}/installer/antinstall-config-cdrom.xml"
189 buildFile="${basedir}/installer/build-cdrom.xml"
190 antInstallLib="${rk.home}/core/ant-installer/lib"
191 antLib="${rk.home}/core/ant/lib"
192 validateConfig="true"
193 icons="bluecurve">
194 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
195 </installer>
196
197 </target>
198
199 <target name="compile-minimal-installer">
200
201 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-minimal.xml"/>
202 <dcff file="${basedir}/installer/antinstall-config-minimal.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
203 <dcff file="${basedir}/installer/antinstall-config-minimal.xml" startTag=".*&lt;!-- start bundled components --&gt;.*" endTag=".*&lt;!-- end bundled components --&gt;.*" />
204 <installer file="${basedir}/installer/Greenstone-${version}-${os.suffix}-minimal.jar"
205 compress="true"
206 extractType="NonExtractor"
207 installConfig="${basedir}/installer/antinstall-config-minimal.xml"
208 buildFile="${basedir}/installer/build.xml"
209 antInstallLib="${rk.home}/core/ant-installer/lib"
210 antLib="${rk.home}/core/ant/lib"
211 validateConfig="true"
212 icons="bluecurve">
213
214 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
215 <zipfileset dir="${basedir}/components" includes="core.lzma" />
216 </installer>
217
218 </target>
219
220 <target name="compile-source-installer">
221
222 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-source.xml"/>
223 <dcff file="${basedir}/installer/antinstall-config-source.xml" startTag=".*&lt;!-- start binary release --&gt;.*" endTag=".*&lt;!-- end binary release --&gt;.*" />
224 <installer file="${basedir}/installer/Greenstone-${version}-${os.suffix}-source.jar"
225 compress="true"
226 extractType="NonExtractor"
227 installConfig="${basedir}/installer/antinstall-config-source.xml"
228 buildFile="${basedir}/installer/build.xml"
229 antInstallLib="${rk.home}/core/ant-installer/lib"
230 antLib="${rk.home}/core/ant/lib"
231 validateConfig="true"
232 icons="bluecurve">
233
234 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
235 <zipfileset dir="${basedir}/components" includes="source-release.lzma" />
236 </installer>
237
238 </target>
239
240 <!-- fork the web distribution to preserve a source release -->
241 <target name="copy-web-to-source">
242 <copy todir="distributions/source"><fileset dir="distributions/web"/></copy>
243 </target>
244
245 <target name="copy-main-installer-files">
246
247 <mkdir dir="${basedir}/installer/classes"/>
248
249 <!-- the installer descriptors -->
250 <copy todir="${basedir}/installer" file="${rk.home}/installer/antinstall-config.xml" overwrite="true" />
251 <copy todir="${basedir}/installer" file="${rk.home}/installer/build.xml" overwrite="true" />
252
253 <!-- the language bundle -->
254 <native2ascii
255 implementation="sun"
256 encoding="UTF-8"
257 src="${rk.home}/core/language-strings"
258 dest="${basedir}/installer/classes/resources"/>
259
260 <!-- os- and major version-specific files -->
261 <copy todir="${basedir}/installer/classes" overwrite="true">
262 <fileset dir="${rk.home}/linux/installer-classes" erroronmissingdir="false"/>
263 <fileset dir="${rk.home}/windows/installer-classes" erroronmissingdir="false"/>
264 <fileset dir="${rk.home}/greenstone3/installer-classes" erroronmissingdir="false"/>
265 <fileset dir="${rk.home}/greenstone2/installer-classes" erroronmissingdir="false"/>
266 </copy>
267
268 </target>
269
270 <target name="make-installer-files-concrete">
271
272 <!-- calculate the size of components -->
273 <echo>Calculating the size of some components</echo>
274
275 <!-- core -->
276 <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
277 <if><bool><equals arg1="${java.os}" arg2="windows"/></bool>
278 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
279 <else><if><bool><equals arg1="${java.os}" arg2="linux"/></bool>
280 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
281 <else>
282 <property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/>
283 </else></if></else></if>
284 <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
285 <property name="component.size.core" value="${component.megabytesize.core} MB"/>
286
287 <!-- sourcecode core -->
288 <length property="component.bytesize.sourcecode-core" mode="all"><fileset file="${basedir}/components/sourcecode-core.comp"/></length>
289 <math result="component.megabytesize.sourcecode-core" operand1="${component.bytesize.sourcecode-core}" operation="/" operand2="1048576" datatype="int"/>
290 <property name="component.size.sourcecode-core" value="${component.megabytesize.sourcecode-core} MB"/>
291
292 <!-- sourcecode -->
293 <length property="component.bytesize.sourcecode" mode="all"><fileset file="${basedir}/components/sourcecode.comp"/></length>
294 <math result="component.megabytesize.sourcecode" operand1="${component.bytesize.sourcecode}" operation="/" operand2="1048576" datatype="int"/>
295 <property name="component.size.sourcecode" value="${component.megabytesize.sourcecode} MB"/>
296
297 <!-- imagemagick -->
298 <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
299 <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
300 <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
301
302 <!-- ghostscript -->
303 <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
304 <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
305 <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
306
307 <!-- tomcat -->
308 <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
309 <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
310 <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
311
312 <!-- ant -->
313 <length property="component.bytesize.ant" mode="all"><fileset file="${basedir}/components/ant.comp"/></length>
314 <math result="component.megabytesize.ant" operand1="${component.bytesize.ant}" operation="/" operand2="1048576" datatype="int"/>
315 <property name="component.size.ant" value="${component.megabytesize.ant} MB"/>
316
317 <!-- put the concrete values of things in the config -->
318 <rsr>
319 <fileset dir="${basedir}/installer" includes="*.xml"/>
320 <job pattern="@version@" replacement="${version}"/>
321 <job pattern="@component.size.core@" replacement="${component.size.core}"/>
322 <job pattern="@component.size.sourcecode-core@" replacement="${component.size.sourcecode-core}"/>
323 <job pattern="@component.size.sourcecode@" replacement="${component.size.sourcecode}"/>
324 <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
325 <job pattern="@component.size.ant@" replacement="${component.size.ant}"/>
326 <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
327 <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
328 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
329 <job pattern="@windows-java.extracted@" replacement="${windows-java.extracted}"/>
330 <job pattern="@linux-java.extracted@" replacement="${linux-java.extracted}"/>
331 </rsr>
332
333 <!-- put the concrete values of things in the text -->
334 <rsr>
335 <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
336 <job pattern="@version@" replacement="${version}"/>
337 <job pattern="@version.major@" replacement="${version.major}"/>
338 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
339 <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
340 <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
341 <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
342 <job pattern="@bundled.version.ant@" replacement="${bundled.version.ant}"/>
343 <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
344 <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
345 </rsr>
346
347 </target>
348
349 <!-- shared target to compile the uninstaller -->
350 <target name="compile-uninstaller">
351 <echo>Compiling Uninstaller</echo>
352
353 <!-- create working build directory -->
354 <mkdir dir="${basedir}/compiled/uninstaller/build/resources" />
355
356 <!-- copile to build -->
357 <javac
358 srcdir="${rk.home}/core/uninstaller"
359 destdir="${basedir}/compiled/uninstaller/build" />
360
361 <!-- copy language bundle into place -->
362 <native2ascii
363 implementation="sun"
364 src="${rk.home}/core/language-strings"
365 dest="${basedir}/compiled/uninstaller/build/resources"/>
366
367 <!-- jar it all up -->
368 <jar
369 destfile="${basedir}/compiled/uninst.jar"
370 manifest="${rk.home}/core/uninstaller/manifest.mf"
371 basedir="${basedir}/compiled/uninstaller/build" />
372
373 </target>
374
375 <!-- copy the uninstaller script from the rk to web distribution -->
376 <target name="insert-uninstaller">
377 <copy file="${rk.home}/core/uninstaller/Uninstall.${script-format}" todir="distributions/web" />
378 </target>
379
380 <!-- create the zipped up binary release from the web distribution -->
381 <target name="compress-zipped-binary-release">
382 <mkdir dir="products"/>
383 <if>
384 <bool><equals arg1="zip" arg2="${format}"/></bool>
385 <zip destfile="products/Greenstone-${version}-${os.suffix}-binary.zip" basedir="distributions" includes="Greenstone-${version}-${os.suffix}-binary/**/*" compress="true"/>
386 <else>
387 <exec dir="distributions" executable="tar">
388 <arg line="-czf ../products/Greenstone-${version}-${os.suffix}-binary.tar.gz Greenstone-${version}-${os.suffix}-binary"/>
389 </exec>
390 </else>
391 </if>
392 </target>
393
394 <!-- unzip windows perl into bin/windows of the given gsdl or gs2build -->
395 <target name="insert-windows-perl">
396 <mkdir dir="${gsdl.basedir}/bin/windows"/>
397 <delete dir="${gsdl.basedir}/bin/windows/perl"/>
398 <unzip src="${rk.home}/windows/perl.zip" dest="${gsdl.basedir}/bin/windows"/>
399 </target>
400
401 <!-- targets all or selected intermediate files of the release -->
402 <target name="erase">
403 <antcall target="erase-compiled"/>
404 <antcall target="erase-distribution"/>
405 <antcall target="erase-components"/>
406 <antcall target="erase-installer"/>
407 <antcall target="erase-wrapped-installer"/>
408 </target>
409
410 <target name="erase-compiled">
411 <delete dir="compiled"/>
412 </target>
413
414 <target name="erase-distribution">
415 <delete dir="distributions"/>
416 </target>
417
418 <target name="erase-components">
419 <delete dir="components"/>
420 </target>
421
422 <target name="erase-installer">
423 <delete dir="installer"/>
424 </target>
425
426 <target name="erase-wrapped-installer">
427 <delete dir="wrapped-installer"/>
428 </target>
429
430
431</project>
Note: See TracBrowser for help on using the repository browser.