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

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

copy correct uninstaller script on windows, and prevent erroneous progress output at install

File size: 16.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="6.0.20"/>
49
50 <!-- CLASSPATH -->
51 <path id="project.classpath">
52
53 <!-- our classes -->
54 <fileset dir="${rk.home}/core">
55 <include name="ant-tasks/antelope/AntelopeTasks_3.4.2.jar"/>
56 <include name="ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar"/>
57 <include name="ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar"/>
58 <include name="ant-tasks/svnant/lib/ganymed.jar"/>
59 <include name="ant-tasks/svnant/lib/svnClientAdapter.jar"/>
60 <include name="ant-tasks/svnant/lib/svnant.jar"/>
61 <include name="ant-tasks/svnant/lib/svnjavahl.jar"/>
62 <include name="ant-tasks/svnant/lib/svnkit.jar"/>
63 <include name="ant-tasks/greenstone/anttasks.jar"/>
64 <include name="ant-tasks/7z-ant/7z.jar"/>
65 <include name="lib/crypt.jar"/>
66 <include name="lib/serializer.jar"/>
67 <include name="lib/xalan.jar"/>
68 <include name="lib/xercesImpl.jar"/>
69 <include name="lib/xml-apis.jar"/>
70 <include name="ant-installer/lib/ant-installer-ext.jar"/>
71 <include name="ant-installer/lib/ant-installer.jar"/>
72 </fileset>
73
74 </path>
75
76 <!-- SELF DEFINED TASKS AND TYPES -->
77 <taskdef name="if" classname="ise.antelope.tasks.IfTask" classpathref="project.classpath"/>
78 <taskdef name="try" classname="ise.antelope.tasks.TryTask" classpathref="project.classpath"/>
79 <taskdef name="math" classname="ise.antelope.tasks.MathTask" classpathref="project.classpath"/>
80 <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="project.classpath"/>
81 <taskdef name="sevenzip" classname="org.apache.tools.ant.SevenZip" classpathref="project.classpath"/>
82 <taskdef name="installer" classname="org.tp23.antinstaller.taskdefs.Installer" classpathref="project.classpath"/>
83 <typedef name="rsr" classname="org.greenstone.anttasks.RegexSearchReplace" classpathref="project.classpath"/>
84 <typedef name="dcff" classname="org.greenstone.anttasks.DeleteChunkFromFile" classpathref="project.classpath"/>
85 <typedef name="rsplit" classname="org.greenstone.anttasks.SplitResource" classpathref="project.classpath"/>
86 <typedef name="get-property-value" classname="org.greenstone.anttasks.GetPropertyValue" classpathref="project.classpath"/>
87
88 <!-- DATES IN DIFFERENT LANGUAGES -->
89 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ar.Dates.${current.month}" outputProperty="month.ar"/>
90 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ca.Dates.${current.month}" outputProperty="month.ca"/>
91 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="el.Dates.${current.month}" outputProperty="month.el"/>
92 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="es.Dates.${current.month}" outputProperty="month.es"/>
93 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="fr.Dates.${current.month}" outputProperty="month.fr"/>
94 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="lv.Dates.${current.month}" outputProperty="month.lv"/>
95 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="mr.Dates.${current.month}" outputProperty="month.mr"/>
96 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ro.Dates.${current.month}" outputProperty="month.ro"/>
97 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="ru.Dates.${current.month}" outputProperty="month.ru"/>
98 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="vi.Dates.${current.month}" outputProperty="month.vi"/>
99 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="zh.Dates.${current.month}" outputProperty="month.zh"/>
100 <get-property-value propertiesFile="${rk.home}/core/lib/dates.properties" propertyName="default.Dates.${current.month}" outputProperty="month.default"/>
101
102 <!--
103 <echo level="info">Current Date</echo>
104 <echo level="info">ar: ${month.ar} ${current.year}</echo>
105 <echo level="info">ca: ${month.el} ${current.year}</echo>
106 <echo level="info">el: ${month.el} ${current.year}</echo>
107 <echo level="info">es: ${month.es} ${current.year}</echo>
108 <echo level="info">fr: ${month.fr} ${current.year}</echo>
109 <echo level="info">lv: ${month.lv} ${current.year}</echo>
110 <echo level="info">mr: ${month.mr} ${current.year}</echo>
111 <echo level="info">ro: ${month.ro} ${current.year}</echo>
112 <echo level="info">ru: ${month.ru} ${current.year}</echo>
113 <echo level="info">vi: ${month.vi} ${current.year}</echo>
114 <echo level="info">zh: ${month.zh} ${current.year}</echo>
115 <echo level="info">default: (${month.default} ${current.year})</echo>
116 -->
117
118 <!-- CHECKS PRE-CONDITIONS -->
119 <target name="init">
120
121 <!-- version number -->
122 <if>
123 <bool>
124 <not><isset property="version"/></not>
125 </bool>
126 <fail>Version number not set.
127Check that the file '${rk.name}-build.properties' exists and defines property 'version'.</fail>
128 </if>
129 <property name="app.version" value="${version}"/>
130
131 <!-- show important properties -->
132 <echo level="info">Version (version): ${version}</echo>
133 <echo level="info">Branch Path (branch.path): ${branch.path}</echo>
134 <echo level="info">Date (date): ${date}</echo>
135 <echo level="info">Current Month (current.month): ${current.month}</echo>
136 <echo level="info">Current Year (current.year): ${current.year}</echo>
137
138 </target>
139
140 <target name="strip-svn-dirs">
141 <delete includeemptydirs="true">
142 <fileset dir="${dir}" defaultexcludes="false">
143 <include name="**/.svn/**" />
144 <include name="**/.svn/" />
145 <include name=".svn/**" />
146 <include name=".svn/" />
147 </fileset>
148 </delete>
149 </target>
150
151 <target name="compile-binary-installer">
152
153 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-binary.xml" overwrite="true"/>
154 <dcff file="installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
155
156 <copy file="installer/build.xml" tofile="installer/build-binary.xml" overwrite="true"/>
157 <dcff file="installer/build-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
158
159 <installer file="installer/Greenstone-${version}-${os.suffix}.jar"
160 compress="true"
161 extractType="NonExtractor"
162 installConfig="installer/antinstall-config-binary.xml"
163 buildFile="installer/build-binary.xml"
164 antInstallLib="${rk.home}/core/ant-installer/lib"
165 antLib="${rk.home}/core/ant/lib"
166 validateConfig="true"
167 icons="bluecurve">
168
169 <zipfileset dir="installer/classes" includes="**/*" />
170 <zipfileset dir="components" includes="*.lzma"/>
171
172 </installer>
173
174 </target>
175
176 <target name="compile-cdrom-installer">
177
178 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-cdrom.xml"/>
179 <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
180
181 <copy file="installer/build.xml" tofile="installer/build-cdrom.xml"/>
182 <dcff file="installer/build-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
183
184 <installer file="installer/cdrom.jar"
185 compress="true"
186 extractType="NonExtractor"
187 installConfig="installer/antinstall-config-cdrom.xml"
188 buildFile="installer/build-cdrom.xml"
189 antInstallLib="${rk.home}/core/ant-installer/lib"
190 antLib="${rk.home}/core/ant/lib"
191 validateConfig="true"
192 icons="bluecurve">
193 <zipfileset dir="installer/classes" includes="**/*" />
194 </installer>
195
196 </target>
197
198 <target name="copy-main-installer-files">
199
200 <mkdir dir="${basedir}/installer/classes"/>
201
202 <!-- the language bundle -->
203 <native2ascii
204 implementation="sun"
205 encoding="UTF-8"
206 src="${rk.home}/core/language-strings"
207 dest="${basedir}/installer/classes/resources"/>
208
209 <!-- os- and major version-specific files -->
210 <copy todir="${basedir}/installer/classes" overwrite="true">
211 <fileset dir="${rk.home}/linux/installer-classes" erroronmissingdir="false"/>
212 <fileset dir="${rk.home}/windows/installer-classes" erroronmissingdir="false"/>
213 <fileset dir="${rk.home}/greenstone3/installer-classes" erroronmissingdir="false"/>
214 <fileset dir="${rk.home}/greenstone2/installer-classes" erroronmissingdir="false"/>
215 </copy>
216
217 </target>
218
219 <target name="make-installer-files-concrete">
220
221 <!-- calculate the size of components -->
222 <echo>Calculating the size of some components</echo>
223
224 <!-- core -->
225 <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
226 <if><bool><equals arg1="${java.os}" arg2="windows"/></bool>
227 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
228 <else><if><bool><equals arg1="${java.os}" arg2="linux"/></bool>
229 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
230 <else>
231 <property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/>
232 </else></if></else></if>
233 <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
234 <property name="component.size.core" value="${component.megabytesize.core} MB"/>
235
236 <!-- imagemagick -->
237 <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
238 <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
239 <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
240
241 <!-- ghostscript -->
242 <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
243 <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
244 <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
245
246 <!-- tomcat -->
247 <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
248 <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
249 <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
250
251 <!-- make the installer descriptors relevant to the current os -->
252 <dcff file="installer/antinstall-config.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
253 <dcff file="installer/build.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
254
255 <!-- put the concrete values of things in the config -->
256 <rsr>
257 <fileset dir="${basedir}/installer" includes="*.xml"/>
258 <job pattern="@version@" replacement="${version}"/>
259 <job pattern="@component.size.core@" replacement="${component.size.core}"/>
260 <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
261 <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
262 <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
263 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
264 <job pattern="@windows-java.extracted@" replacement="${windows-java.extracted}"/>
265 <job pattern="@linux-java.extracted@" replacement="${linux-java.extracted}"/>
266 </rsr>
267
268 <!-- put the concrete values of things in the text -->
269 <rsr>
270 <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
271 <job pattern="@version@" replacement="${version}"/>
272 <job pattern="@version.major@" replacement="${version.major}"/>
273 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
274 <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
275 <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
276 <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
277 <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
278 <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
279 </rsr>
280
281 </target>
282
283 <!-- shared target to compile the uninstaller -->
284 <target name="compile-uninstaller">
285 <echo>Compiling Uninstaller</echo>
286
287 <!-- create working build directory -->
288 <mkdir dir="${basedir}/compiled/uninstaller/build/resources" />
289
290 <!-- copile to build -->
291 <javac
292 srcdir="${rk.home}/core/uninstaller"
293 destdir="${basedir}/compiled/uninstaller/build" />
294
295 <!-- copy language bundle into place -->
296 <native2ascii
297 implementation="sun"
298 src="${rk.home}/core/language-strings"
299 dest="${basedir}/compiled/uninstaller/build/resources"/>
300
301 <!-- jar it all up -->
302 <jar
303 destfile="${basedir}/compiled/uninst.jar"
304 manifest="${rk.home}/core/uninstaller/manifest.mf"
305 basedir="${basedir}/compiled/uninstaller/build" />
306
307 </target>
308
309 <!-- copy the uninstaller script from the rk to web distribution -->
310 <target name="insert-uninstaller">
311
312 <!-- linux and mac -->
313 <if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
314 <copy file="${rk.home}/core/uninstaller/Uninstall.sh" todir="distributions/web"/>
315
316 <!-- windows -->
317 <else><if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
318 <copy file="${rk.home}/core/uninstaller/Uninstall.bat" todir="distributions/web"/>
319
320 <!-- else fail -->
321 <else>
322 <fail>this target does not support the current os</fail>
323
324 </else></if></else></if>
325 </target>
326
327 <!-- unzip windows perl into bin/windows of the given gsdl or gs2build -->
328 <target name="insert-windows-perl">
329 <mkdir dir="${todir}"/>
330 <delete dir="${todir}/perl"/>
331 <unzip src="${rk.home}/windows/perl.zip" dest="${todir}"/>
332 </target>
333
334 <target name="copy-compiled-to-dist">
335
336 <!-- windows -->
337 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
338 <delete dir="distributions/web"/>
339 <mkdir dir="distributions"/>
340 <copy todir="distributions/web">
341 <fileset dir="compiled" includes="**/*"/>
342 </copy>
343
344 <!-- linux, mac -->
345 <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
346 <delete dir="distributions/web"/>
347 <mkdir dir="distributions"/>
348 <exec executable="cp" failonerror="true"><arg line="-r compiled distributions/web"/></exec>
349
350 <!-- else fail -->
351 <else>
352 <fail>this target does not support the current os</fail>
353
354 </else></if></else></if>
355
356 </target>
357
358
359</project>
Note: See TracBrowser for help on using the repository browser.