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

Last change on this file since 19644 was 19644, checked in by oranfry, 15 years ago

make sure concretised files are used for installer, not abstract ones from the repository

File size: 20.9 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="installer/antinstall-config.xml" tofile="installer/antinstall-config-binary.xml"/>
155 <dcff file="installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
156 <dcff file="installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
157
158 <copy file="installer/build.xml" tofile="installer/build-binary.xml"/>
159 <dcff file="installer/build-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
160
161
162
163 <installer file="installer/Greenstone-${version}-${os.suffix}.jar"
164 compress="true"
165 extractType="NonExtractor"
166 installConfig="installer/antinstall-config-binary.xml"
167 buildFile="installer/build-binary.xml"
168 antInstallLib="${rk.home}/core/ant-installer/lib"
169 antLib="${rk.home}/core/ant/lib"
170 validateConfig="true"
171 icons="bluecurve">
172
173 <zipfileset dir="installer/classes" includes="**/*" />
174 <zipfileset dir="components" includes="*.lzma" excludes="source-release.lzma" />
175
176 </installer>
177
178 </target>
179
180 <target name="compile-cdrom-installer">
181
182 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-cdrom.xml"/>
183 <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
184 <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
185
186 <copy file="installer/build.xml" tofile="installer/build-cdrom.xml"/>
187 <dcff file="installer/build-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
188
189 <installer file="installer/cdrom.jar"
190 compress="true"
191 extractType="NonExtractor"
192 installConfig="installer/antinstall-config-cdrom.xml"
193 buildFile="installer/build-cdrom.xml"
194 antInstallLib="${rk.home}/core/ant-installer/lib"
195 antLib="${rk.home}/core/ant/lib"
196 validateConfig="true"
197 icons="bluecurve">
198 <zipfileset dir="installer/classes" includes="**/*" />
199 </installer>
200
201 </target>
202
203 <target name="compile-minimal-installer">
204
205 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-minimal.xml"/>
206 <dcff file="${basedir}/installer/antinstall-config-minimal.xml" startTag=".*&lt;!-- start source release --&gt;.*" endTag=".*&lt;!-- end source release --&gt;.*" />
207 <dcff file="${basedir}/installer/antinstall-config-minimal.xml" startTag=".*&lt;!-- start bundled components --&gt;.*" endTag=".*&lt;!-- end bundled components --&gt;.*" />
208 <installer file="${basedir}/installer/Greenstone-${version}-${os.suffix}-minimal.jar"
209 compress="true"
210 extractType="NonExtractor"
211 installConfig="${basedir}/installer/antinstall-config-minimal.xml"
212 buildFile="${basedir}/installer/build.xml"
213 antInstallLib="${rk.home}/core/ant-installer/lib"
214 antLib="${rk.home}/core/ant/lib"
215 validateConfig="true"
216 icons="bluecurve">
217
218 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
219 <zipfileset dir="${basedir}/components" includes="core.lzma" />
220 </installer>
221
222 </target>
223
224 <target name="compile-source-installer">
225
226 <copy file="${basedir}/installer/antinstall-config.xml" tofile="${basedir}/installer/antinstall-config-source.xml"/>
227 <dcff file="${basedir}/installer/antinstall-config-source.xml" startTag=".*&lt;!-- start binary release --&gt;.*" endTag=".*&lt;!-- end binary release --&gt;.*" />
228
229 <installer file="${basedir}/installer/Greenstone-${version}-${os.suffix}-source.jar"
230 compress="true"
231 extractType="NonExtractor"
232 installConfig="${basedir}/installer/antinstall-config-source.xml"
233 buildFile="${basedir}/installer/build.xml"
234 antInstallLib="${rk.home}/core/ant-installer/lib"
235 antLib="${rk.home}/core/ant/lib"
236 validateConfig="true"
237 icons="bluecurve">
238
239 <zipfileset dir="${basedir}/installer/classes" includes="**/*" />
240 <zipfileset dir="${basedir}/components" includes="source-release.lzma" />
241 </installer>
242
243 </target>
244
245 <!-- fork the web distribution to preserve a source release -->
246 <target name="copy-web-to-source">
247 <copy todir="distributions/source"><fileset dir="distributions/web"/></copy>
248 </target>
249
250 <target name="copy-main-installer-files">
251
252 <mkdir dir="${basedir}/installer/classes"/>
253
254 <!-- the installer descriptors -->
255 <copy todir="${basedir}/installer" file="${rk.home}/installer/antinstall-config.xml" overwrite="true" />
256 <copy todir="${basedir}/installer" file="${rk.home}/installer/build.xml" overwrite="true" />
257
258 <!-- the language bundle -->
259 <native2ascii
260 implementation="sun"
261 encoding="UTF-8"
262 src="${rk.home}/core/language-strings"
263 dest="${basedir}/installer/classes/resources"/>
264
265 <!-- os- and major version-specific files -->
266 <copy todir="${basedir}/installer/classes" overwrite="true">
267 <fileset dir="${rk.home}/linux/installer-classes" erroronmissingdir="false"/>
268 <fileset dir="${rk.home}/windows/installer-classes" erroronmissingdir="false"/>
269 <fileset dir="${rk.home}/greenstone3/installer-classes" erroronmissingdir="false"/>
270 <fileset dir="${rk.home}/greenstone2/installer-classes" erroronmissingdir="false"/>
271 </copy>
272
273 </target>
274
275 <target name="make-installer-files-concrete">
276
277 <!-- calculate the size of components -->
278 <echo>Calculating the size of some components</echo>
279
280 <!-- core -->
281 <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
282 <if><bool><equals arg1="${java.os}" arg2="windows"/></bool>
283 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
284 <else><if><bool><equals arg1="${java.os}" arg2="linux"/></bool>
285 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
286 <else>
287 <property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/>
288 </else></if></else></if>
289 <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
290 <property name="component.size.core" value="${component.megabytesize.core} MB"/>
291
292 <!-- sourcecode core -->
293 <length property="component.bytesize.sourcecode-core" mode="all"><fileset file="${basedir}/components/sourcecode-core.comp"/></length>
294 <math result="component.megabytesize.sourcecode-core" operand1="${component.bytesize.sourcecode-core}" operation="/" operand2="1048576" datatype="int"/>
295 <property name="component.size.sourcecode-core" value="${component.megabytesize.sourcecode-core} MB"/>
296
297 <!-- sourcecode -->
298 <length property="component.bytesize.sourcecode" mode="all"><fileset file="${basedir}/components/sourcecode.comp"/></length>
299 <math result="component.megabytesize.sourcecode" operand1="${component.bytesize.sourcecode}" operation="/" operand2="1048576" datatype="int"/>
300 <property name="component.size.sourcecode" value="${component.megabytesize.sourcecode} MB"/>
301
302 <!-- imagemagick -->
303 <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
304 <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
305 <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
306
307 <!-- ghostscript -->
308 <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
309 <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
310 <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
311
312 <!-- tomcat -->
313 <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
314 <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
315 <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
316
317 <!-- ant -->
318 <length property="component.bytesize.ant" mode="all"><fileset file="${basedir}/components/ant.comp"/></length>
319 <math result="component.megabytesize.ant" operand1="${component.bytesize.ant}" operation="/" operand2="1048576" datatype="int"/>
320 <property name="component.size.ant" value="${component.megabytesize.ant} MB"/>
321
322 <!-- put the concrete values of things in the config -->
323 <rsr>
324 <fileset dir="${basedir}/installer" includes="*.xml"/>
325 <job pattern="@version@" replacement="${version}"/>
326 <job pattern="@component.size.core@" replacement="${component.size.core}"/>
327 <job pattern="@component.size.sourcecode-core@" replacement="${component.size.sourcecode-core}"/>
328 <job pattern="@component.size.sourcecode@" replacement="${component.size.sourcecode}"/>
329 <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
330 <job pattern="@component.size.ant@" replacement="${component.size.ant}"/>
331 <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
332 <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
333 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
334 <job pattern="@windows-java.extracted@" replacement="${windows-java.extracted}"/>
335 <job pattern="@linux-java.extracted@" replacement="${linux-java.extracted}"/>
336 </rsr>
337
338 <!-- put the concrete values of things in the text -->
339 <rsr>
340 <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
341 <job pattern="@version@" replacement="${version}"/>
342 <job pattern="@version.major@" replacement="${version.major}"/>
343 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
344 <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
345 <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
346 <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
347 <job pattern="@bundled.version.ant@" replacement="${bundled.version.ant}"/>
348 <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
349 <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
350 </rsr>
351
352 </target>
353
354 <!-- shared target to compile the uninstaller -->
355 <target name="compile-uninstaller">
356 <echo>Compiling Uninstaller</echo>
357
358 <!-- create working build directory -->
359 <mkdir dir="${basedir}/compiled/uninstaller/build/resources" />
360
361 <!-- copile to build -->
362 <javac
363 srcdir="${rk.home}/core/uninstaller"
364 destdir="${basedir}/compiled/uninstaller/build" />
365
366 <!-- copy language bundle into place -->
367 <native2ascii
368 implementation="sun"
369 src="${rk.home}/core/language-strings"
370 dest="${basedir}/compiled/uninstaller/build/resources"/>
371
372 <!-- jar it all up -->
373 <jar
374 destfile="${basedir}/compiled/uninst.jar"
375 manifest="${rk.home}/core/uninstaller/manifest.mf"
376 basedir="${basedir}/compiled/uninstaller/build" />
377
378 </target>
379
380 <!-- copy the uninstaller script from the rk to web distribution -->
381 <target name="insert-uninstaller">
382 <copy file="${rk.home}/core/uninstaller/Uninstall.${script-format}" todir="distributions/web" />
383 </target>
384
385 <!-- create the zipped up binary release from the web distribution -->
386 <target name="compress-zipped-binary-release">
387 <mkdir dir="products"/>
388 <if>
389 <bool><equals arg1="zip" arg2="${format}"/></bool>
390 <zip destfile="products/Greenstone-${version}-${os.suffix}-binary.zip" basedir="distributions" includes="Greenstone-${version}-${os.suffix}-binary/**/*" compress="true"/>
391 <else>
392 <exec dir="distributions" executable="tar">
393 <arg line="-czf ../products/Greenstone-${version}-${os.suffix}-binary.tar.gz Greenstone-${version}-${os.suffix}-binary"/>
394 </exec>
395 </else>
396 </if>
397 </target>
398
399 <!-- unzip windows perl into bin/windows of the given gsdl or gs2build -->
400 <target name="insert-windows-perl">
401 <mkdir dir="${gsdl.basedir}/bin/windows"/>
402 <delete dir="${gsdl.basedir}/bin/windows/perl"/>
403 <unzip src="${rk.home}/windows/perl.zip" dest="${gsdl.basedir}/bin/windows"/>
404 </target>
405
406 <!-- targets all or selected intermediate files of the release -->
407 <target name="erase">
408 <antcall target="erase-compiled"/>
409 <antcall target="erase-distribution"/>
410 <antcall target="erase-components"/>
411 <antcall target="erase-installer"/>
412 <antcall target="erase-wrapped-installer"/>
413 </target>
414
415 <target name="erase-compiled">
416 <delete dir="compiled"/>
417 </target>
418
419 <target name="erase-distribution">
420 <delete dir="distributions"/>
421 </target>
422
423 <target name="erase-components">
424 <delete dir="components"/>
425 </target>
426
427 <target name="erase-installer">
428 <delete dir="installer"/>
429 </target>
430
431 <target name="erase-wrapped-installer">
432 <delete dir="wrapped-installer"/>
433 </target>
434
435
436</project>
Note: See TracBrowser for help on using the repository browser.