source: main/trunk/release-kits/shared/core/ant-scripts/shared.xml@ 23811

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

Several changes to integrate FLAX release building as an option in the release kits

File size: 20.0 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="rk-init">
3
4 <!-- CHECK PRE-CONDITIONS -->
5 <target name="init">
6
7 <!-- load in static properties from build.properties -->
8 <property file="${rk.name}-build.properties" />
9
10 <!-- load environment properties -->
11 <property environment="env"/>
12
13 <!-- CLASSPATH -->
14 <path id="project.classpath">
15
16 <!-- our classes -->
17 <fileset dir="${rk.home}/shared/core">
18 <include name="ant-tasks/antelope/AntelopeTasks_3.4.2.jar"/>
19 <include name="ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar"/>
20 <include name="ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar"/>
21 <include name="ant-tasks/greenstone/anttasks.jar"/>
22 <include name="ant-tasks/7z-ant/7z.jar"/>
23 <include name="lib/crypt.jar"/>
24 <include name="lib/serializer.jar"/>
25 <include name="lib/xalan.jar"/>
26 <include name="lib/xercesImpl.jar"/>
27 <include name="lib/xml-apis.jar"/>
28 <include name="ant-installer/lib/ant-installer-ext.jar"/>
29 <include name="ant-installer/lib/ant-installer.jar"/>
30 </fileset>
31
32 </path>
33
34 <!-- SELF DEFINED TASKS AND TYPES -->
35 <taskdef name="if" classname="ise.antelope.tasks.IfTask" classpathref="project.classpath"/>
36 <taskdef name="try" classname="ise.antelope.tasks.TryTask" classpathref="project.classpath"/>
37 <taskdef name="math" classname="ise.antelope.tasks.MathTask" classpathref="project.classpath"/>
38 <taskdef name="sevenzip" classname="org.apache.tools.ant.SevenZip" classpathref="project.classpath"/>
39 <taskdef name="installer" classname="org.tp23.antinstaller.taskdefs.Installer" classpathref="project.classpath"/>
40 <typedef name="iuv" classname="org.greenstone.anttasks.InsertUniqueValue" classpathref="project.classpath"/>
41 <typedef name="rsr" classname="org.greenstone.anttasks.RegexSearchReplace" classpathref="project.classpath"/>
42 <typedef name="dcff" classname="org.greenstone.anttasks.DeleteChunkFromFile" classpathref="project.classpath"/>
43 <typedef name="pstf" classname="org.greenstone.anttasks.PatternSetToFile" classpathref="project.classpath"/>
44 <typedef name="rsplit" classname="org.greenstone.anttasks.SplitResource" classpathref="project.classpath"/>
45 <typedef name="get-property-value" classname="org.greenstone.anttasks.GetPropertyValue" classpathref="project.classpath"/>
46
47 <!-- CONSTANTS (overridable in build.properties) -->
48
49 <!-- svn root -->
50 <property name="svn.root" value="http://svn.greenstone.org" />
51
52 <!-- the minimum version of java which the installer should be run with (this gets used in search4j) -->
53 <property name="java.min.version" value="1.4.0_00"/>
54
55 <!-- create a localised basedir property -->
56 <path id="basedir.path"><pathelement location="${basedir}"/></path>
57 <property name="basedir.local" refid="basedir.path"/>
58
59 <!-- size of resource chunks (windows wrapper) -->
60 <property name="resources.chunksize" value="8388608"/>
61
62 <!-- the extra space for the dmg image in KB (mac wrapper) -->
63 <property name="dmg.overhead" value="4096"/>
64
65 <!-- current date and time -->
66 <tstamp>
67 <format property="current.month" pattern="MMM"/>
68 <format property="current.year" pattern="yyyy"/>
69 <format property="date" pattern="yyyy.MM.dd"/>
70 </tstamp>
71
72 <!-- extra features -->
73 <property name="version-extra" value="" />
74 <property name="post.2.83.version" value="true" />
75 <property name="x64" value="false" />
76
77 <if>
78 <bool><equals arg1="${x64}" arg2="true"/></bool>
79 <property name="extension-x64" value="-x64" />
80 <property name="extension_x64" value="_x64" />
81 <else>
82 <property name="extension-x64" value="" />
83 <property name="extension_x64" value="" />
84 </else>
85 </if>
86
87 <!-- BUNDLED JAVA INFO -->
88 <!-- the bundled javas are kept in shared/linux/wrapper and shared/windows/wrapper in the repository -->
89 <!-- change this info when the bundled version changes -->
90 <property name="java.extracted" value="jre"/> <!-- set this to the name of the top level directory in the above archive -->
91
92 <!-- linux -->
93 <property name="linux-java.installer" value="jre_bin${extension_x64}"/>
94 <property name="bundled.version.linux-java" value="1.6.0_05"/> <!-- set this to the version number of java in the above archive -->
95 <property name="component.bytesize.linux-java" value="101245987"/> <!-- set this to the size of the extract archive -->
96
97 <!-- windows -->
98 <property name="windows-java.installer" value="jre.exe"/>
99 <property name="bundled.version.windows-java" value="1.6.0_07"/> <!-- set this to the version number of java in the above archive -->
100 <property name="component.bytesize.windows-java" value="75000000"/> <!-- set this to the size of the extract archive -->
101
102 <!-- version numbers of other bundled things -->
103 <property name="bundled.version.imagemagick" value="6.4.3"/>
104 <property name="bundled.version.ghostscript" value="8.63"/>
105 <property name="bundled.version.tomcat" value="6.0.20"/>
106
107 <!-- default revision and branch path -->
108 <property name="branch.revision" value="HEAD" />
109 <property name="branch.path" value="trunk" />
110
111 <!-- DATES IN DIFFERENT LANGUAGES -->
112 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="ar.Dates.${current.month}" outputProperty="month.ar"/>
113 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="ca.Dates.${current.month}" outputProperty="month.ca"/>
114 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="el.Dates.${current.month}" outputProperty="month.el"/>
115 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="es.Dates.${current.month}" outputProperty="month.es"/>
116 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="fr.Dates.${current.month}" outputProperty="month.fr"/>
117 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="lv.Dates.${current.month}" outputProperty="month.lv"/>
118 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="mr.Dates.${current.month}" outputProperty="month.mr"/>
119 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="ro.Dates.${current.month}" outputProperty="month.ro"/>
120 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="ru.Dates.${current.month}" outputProperty="month.ru"/>
121 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="vi.Dates.${current.month}" outputProperty="month.vi"/>
122 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="zh.Dates.${current.month}" outputProperty="month.zh"/>
123 <get-property-value propertiesFile="${rk.home}/shared/core/lib/dates.properties" propertyName="default.Dates.${current.month}" outputProperty="month.default"/>
124
125
126 <!-- version number -->
127 <if><bool><not><isset property="version"/></not></bool>
128 <fail>Version number not set. Check that the file '${rk.name}-build.properties' exists and defines property 'version'.</fail>
129 </if>
130 <property name="app.version" value="${version}"/>
131
132 <!-- work out rk.os -->
133 <if>
134 <bool>
135 <or>
136 <equals arg1="${rk.os}" arg2="linux"/>
137 <equals arg1="${rk.os}" arg2="mac"/>
138 <equals arg1="${rk.os}" arg2="windows"/>
139 </or>
140 </bool>
141 <echo>Using user-specified value for rk.os: '${rk.os}'</echo>
142
143 <else><if>
144 <bool><equals arg1="${os.name}" arg2="Linux"/></bool>
145 <property name="rk.os" value="linux"/>
146
147 <else><if>
148 <bool><equals arg1="${os.name}" arg2="Mac OS X"/></bool>
149 <property name="rk.os" value="mac"/>
150
151 <else><if>
152 <bool>
153 <or>
154 <equals arg1="${os.name}" arg2="Windows 95"/>
155 <equals arg1="${os.name}" arg2="Windows 98"/>
156 <equals arg1="${os.name}" arg2="Windows 2000"/>
157 <equals arg1="${os.name}" arg2="Windows XP"/>
158 <equals arg1="${os.name}" arg2="Windows NT"/>
159 <equals arg1="${os.name}" arg2="Windows ME"/>
160 <equals arg1="${os.name}" arg2="Windows Vista"/>
161 <equals arg1="${os.name}" arg2="Windows 7"/>
162 </or>
163 </bool>
164 <property name="rk.os" value="windows"/>
165
166 <else>
167 <fail>Can't work out what to set rk.os to. Please report this to [email protected] . In the mean time, manually set rk.os to 'windows', 'mac', or 'linux' by reinvoking the release kit with, for example, '-Drk.os=windows'</fail>
168
169 </else></if></else></if></else></if></else></if>
170
171 <!-- set os.suffix and os.shell -->
172 <if><bool><equals arg1="${rk.os}" arg2="mac"/></bool>
173 <exec executable="uname" outputproperty="mac.arch">
174 <arg line="-p"/>
175 </exec>
176
177 <if><bool><equals arg1="${mac.arch}" arg2="powerpc"/></bool>
178 <property name="os.suffix" value="MacOS-ppc"/>
179 <property name="arch" value="-ppc"/>
180 <else>
181 <property name="os.suffix" value="MacOS-intel"/>
182 <property name="arch" value="-intel"/>
183 </else>
184 </if>
185
186 <property name="os.shell" value="darwin"/>
187 </if>
188 <property name="arch" value=""/>
189
190 <property name="os.suffix" value="${rk.os}"/>
191 <property name="os.shell" value="${rk.os}"/>
192
193 <!-- set os.script.format -->
194 <if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
195 <property name="os.script.format" value="sh"/>
196 <else><if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
197 <property name="os.script.format" value="bat"/>
198 </if></else></if>
199
200 <!-- show important properties -->
201 <echo level="info">Version (version): ${version}${version-extra}</echo>
202 <echo level="info">Major Version (version.major): ${version.major}</echo>
203 <echo level="info">Branch Path (branch.path): ${branch.path}</echo>
204 <echo level="info">Date (date): ${date}</echo>
205 <echo level="info">Current Month (current.month): ${current.month}</echo>
206 <echo level="info">Current Year (current.year): ${current.year}</echo>
207 <echo level="info">Operating System (rk.os): ${rk.os}</echo>
208 <echo level="info">Operating System Suffix (os.suffix): ${os.suffix}</echo>
209 <echo level="info">Operating System Script format (os.script.format): ${os.script.format}</echo>
210 <echo level="info">Operating System Shell (os.shell): ${os.shell}</echo>
211 <!--
212 <echo level="info">Current Date</echo>
213 <echo level="info">ar: ${month.ar} ${current.year}</echo>
214 <echo level="info">ca: ${month.el} ${current.year}</echo>
215 <echo level="info">el: ${month.el} ${current.year}</echo>
216 <echo level="info">es: ${month.es} ${current.year}</echo>
217 <echo level="info">fr: ${month.fr} ${current.year}</echo>
218 <echo level="info">lv: ${month.lv} ${current.year}</echo>
219 <echo level="info">mr: ${month.mr} ${current.year}</echo>
220 <echo level="info">ro: ${month.ro} ${current.year}</echo>
221 <echo level="info">ru: ${month.ru} ${current.year}</echo>
222 <echo level="info">vi: ${month.vi} ${current.year}</echo>
223 <echo level="info">zh: ${month.zh} ${current.year}</echo>
224 <echo level="info">default: (${month.default} ${current.year})</echo>
225 -->
226 </target>
227
228 <!-- show the core properties of all release-kits -->
229 <target name="core-properties">
230 <echo>version (required) the version string for the release</echo>
231 <echo>branch.path (optional) the branch of Greenstone to make a release of. Eg: tags/2.81. Default: trunk.</echo>
232 <echo>branch.revision (optional) the revision of Greenstone to make a release of. Eg: 18273. Default: HEAD.</echo>
233 </target>
234
235 <!-- a target to strip any directory of .svn folders -->
236 <target name="strip-svn-dirs">
237 <delete includeemptydirs="true">
238 <fileset dir="${dir}" defaultexcludes="false">
239 <include name="**/.svn/**" />
240 <include name="**/.svn/" />
241 <include name=".svn/**" />
242 <include name=".svn/" />
243 </fileset>
244 </delete>
245 </target>
246
247 <!-- target to insert the uninstaller into 'compiled' and compile it -->
248 <target name="insert-and-compile-uninstaller">
249
250 <!-- create working build directory -->
251 <mkdir dir="compiled/uninstaller/build/resources" />
252 <mkdir dir="compiled/uninstall"/>
253
254 <!-- copile to build -->
255 <javac
256 srcdir="${rk.home}/shared/core/uninstaller"
257 destdir="compiled/uninstaller/build" />
258
259 <!-- copy language bundle into place -->
260 <native2ascii
261 implementation="sun"
262 src="${rk.home}/shared/core/language-strings"
263 dest="compiled/uninstaller/build/resources"/>
264
265 <!-- jar it all up -->
266 <jar
267 destfile="compiled/uninstall/uninst.jar"
268 manifest="${rk.home}/shared/core/uninstaller/manifest.mf"
269 basedir="compiled/uninstaller/build" />
270
271 <!-- clean up build directory -->
272 <delete dir="compiled/uninstaller"/>
273
274 <!-- put the associated script in place -->
275 <copy file="${rk.home}/shared/core/uninstaller/Uninstall.${os.script.format}" todir="compiled/uninstall"/>
276
277 </target>
278
279 <!-- target to set all the version numbers in a greenstone2 or gs2build directory -->
280 <target name="gsdl-set-version-numbers">
281
282 <if><bool><available file="${gsdl.basedir}/common-src/src/lib/gsdlconf.h"/></bool>
283 <rsr file="${gsdl.basedir}/common-src/src/lib/gsdlconf.h" pattern="(#define GSDL_VERSION) &quot;.*&quot;" replacement="$1 &quot;${version}${version-extra}&quot;" />
284 </if>
285
286 <if><bool><available file="${gsdl.basedir}/etc/VERSION"/></bool>
287 <rsr file="${gsdl.basedir}/etc/VERSION" pattern="(gsdl version: ).*" replacement="$1${version}${version-extra}" />
288 </if>
289
290 <if><bool><available file="${gsdl.basedir}/lib/java/server.properties"/></bool>
291 <rsr file="${gsdl.basedir}/lib/java/server.properties" pattern="^(Server2Control.Version[:=]).*" replacement="$1${version}${version-extra}" />
292 </if>
293
294 <if><bool><available file="${gsdl.basedir}/lib/java/log4j.properties.in"/></bool>
295 <rsr file="${gsdl.basedir}/lib/java/log4j.properties.in" pattern="^(log4j.category.org.greenstone.server[:=].*)INFO(.*)" replacement="$1WARN$2" />
296 </if>
297
298 <antcall target="gsdl-set-dates-in-readmes"><param name="gsdl.basedir" value="${gsdl.basedir}"/></antcall>
299
300 </target>
301
302 <!-- target to set dates in readme files -->
303 <target name="gsdl-set-dates-in-readmes">
304
305 <!-- en -->
306 <if><bool><available file="${gsdl.basedir}/READMEen.txt"/></bool>
307 <rsr file="${gsdl.basedir}/READMEen.txt">
308 <job pattern="^(Date\s*)(.*)" replacement="$1${month.default} ${current.year}" />
309 <job pattern="^(Version\s*)(.*)" replacement="$1${version}${version-extra}" />
310 </rsr>
311 </if>
312
313 <!-- ar -->
314 <if><bool><available file="${gsdl.basedir}/READMEar.txt"/></bool>
315 <rsr file="${gsdl.basedir}/READMEar.txt">
316 <job pattern="(التاريخ : \s*)(.*)" replacement="$1${month.ar} ${current.year}"/>
317 <job pattern="(النسخه : \s*)(.*)" replacement="$1${version}${version-extra}"/>
318 </rsr>
319 </if>
320
321 <!-- es -->
322 <if><bool><available file="${gsdl.basedir}/READMEes.txt"/></bool>
323 <rsr file="${gsdl.basedir}/READMEes.txt">
324 <job pattern="^(Fecha\s*)(.*)" replacement="$1${month.es} de ${current.year}"/>
325 <job pattern="^(Versi.?n\s*)(.*)" replacement="$1${version}${version-extra}"/>
326 </rsr>
327 </if>
328
329 <!-- fr -->
330 <if><bool><available file="${gsdl.basedir}/READMEfr.txt"/></bool>
331 <rsr file="${gsdl.basedir}/READMEfr.txt">
332 <job pattern="^(Date\s*)(.*)" replacement="$1${month.fr} ${current.year}"/>
333 <job pattern="^(Version\s*)(.*)" replacement="$1${version}${version-extra}"/>
334 </rsr>
335 </if>
336
337 <!-- ru -->
338 <if><bool><available file="${gsdl.basedir}/READMEru.txt"/></bool>
339 <rsr file="${gsdl.basedir}/READMEru.txt">
340 <job pattern="^(Дата\s*)(.*)" replacement="$1${month.ru} ${current.year}"/>
341 <job pattern="^(ВерсОя\s*)(.*)" replacement="$1${version}${version-extra}"/>
342 </rsr>
343 </if>
344
345 </target>
346
347 <!-- target to set version numbers in gli -->
348 <target name="gli-set-version-numbers">
349 <if><bool><not><equals arg1="${with.gli.and.gems}" arg2="false"/></not></bool>
350 <!-- DICTIOANRY FILES (AboutDialog.Date) -->
351 <echo level="info">Changing AboutDialog.Date in all dictionaries</echo>
352
353 <rsr file="${glibasedir}/classes/dictionary_ar.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ar} ${current.year})" />
354 <rsr file="${glibasedir}/classes/dictionary_ca.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ca} de ${current.year})" />
355 <rsr file="${glibasedir}/classes/dictionary_el.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.el} ${current.year})" />
356 <rsr file="${glibasedir}/classes/dictionary_es.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.es} ${current.year})" />
357 <rsr file="${glibasedir}/classes/dictionary_fr.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.fr} ${current.year})" />
358 <rsr file="${glibasedir}/classes/dictionary_lv.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.lv} ${current.year})" />
359 <rsr file="${glibasedir}/classes/dictionary_mr.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.mr} ${current.year})" />
360 <rsr file="${glibasedir}/classes/dictionary_ro.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ro} ${current.year})" />
361 <rsr file="${glibasedir}/classes/dictionary_ru.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ru} ${current.year})" />
362 <rsr file="${glibasedir}/classes/dictionary_vi.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.vi} ${current.year})" />
363 <rsr file="${glibasedir}/classes/dictionary_zh.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.zh} ${current.year})" />
364 <rsr file="${glibasedir}/classes/dictionary.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.default} ${current.year})" />
365
366 <!-- GLI GATHERER -->
367 <echo level="info">Changing version number in gli Gatherer</echo>
368 <rsr file="${glibasedir}/src/org/greenstone/gatherer/Gatherer.java" pattern="^(.*)String\s*PROGRAM_VERSION\s*=\s*&quot;(.*)&quot;" replacement="$1String PROGRAM_VERSION = &quot;${version}${version-extra}&quot;"/>
369
370 <!-- CONFIG XML FILES -->
371 <echo level="info">Changing configuration version in classes/xml/config.xml</echo>
372 <rsr file="${glibasedir}/classes/xml/config.xml" pattern="^(\s*&lt;Configuration.* version=&quot;)[^&quot;]*(&quot;.*&gt;)" replacement="$1${version}${version-extra}$2"/>
373
374 <echo level="info">Changing configuration version in gli/classes/xml/configRemote.xml</echo>
375 <rsr file="${glibasedir}/classes/xml/configRemote.xml" pattern="^(\s*&lt;Configuration.* version=&quot;)[^&quot;]*(&quot;.*&gt;)" replacement="$1${version}${version-extra}$2"/>
376 </if>
377 </target>
378
379 <!-- target to tidy gli up for distribution -->
380 <target name="gli-tidy-for-dist">
381 <!-- delete unneeded things -->
382 <delete file="${glibasedir}/.greenstonestore"/>
383 <delete dir="${glibasedir}/classes/META-INF"/>
384 <delete dir="${glibasedir}/classes/org"/>
385 <delete dir="${glibasedir}/classes/images"/>
386 <delete dir="${glibasedir}/jar"/>
387 </target>
388
389
390 <!-- target to archive and compress a given component -->
391 <target name="create-component">
392 <mkdir dir="components"/>
393
394 <!-- the PatternSet To File task takes one or more patternsets and outputs to a file all of the files it includes -->
395 <pstf dir="compiled" outfile="compiled/uninstall/${component}.uninstall" toplevelonly="true">
396 <patternset refid="greenstone${version.major}.${component}${ext-x64}.component"/>
397 </pstf>
398
399 <zip destfile="components/${component}.comp" compress="false">
400 <zipfileset dir="compiled">
401 <patternset refid="greenstone${version.major}.${component}${ext-x64}.component"/>
402 </zipfileset>
403 </zip>
404
405 <!-- windows -->
406 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
407 <exec executable="${rk.home}/shared/windows/7za/7za.exe" dir="components"><arg line="a -t7z -mx=9 ${component}.lzma ${component}.comp"/></exec>
408
409 <!-- linux, mac -->
410 <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
411 <sevenzip task="encode" input="components/${component}.comp" output="components/${component}.lzma" dictionnary="26"/>
412
413 <!-- else warn -->
414 <else>
415 <fail>this target does not support this os (was a new release-kit os added?)</fail>
416
417 </else></if></else></if>
418 </target>
419
420</project>
Note: See TracBrowser for help on using the repository browser.