root/main/trunk/release-kits/shared/core/ant-scripts/shared.xml @ 29251

Revision 29251, 20.1 KB (checked in by ak19, 6 years ago)

Increasing the dmg.overhead size allocated for the dmg wrapper from 1 to 2MB. Recently, the GS3 binaries increased in size, probably due to the lucene and solr upgrade from 3.3 to 4. The dmg files of Mac binaries were no longer allocated enough head space and so the Greenstone binary jar files didn't get copied properly into the dmg file and were reported as corrupt or invalid.

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="8192"/>
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            <if>
166                <bool><os family="windows"/></bool>
167                <property name="rk.os" value="windows"/>   
168            <else>
169            <fail>Can't work out what to set rk.os to. Please report this to greenstone_team@cs.waikato.ac.nz . 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>
170
171        </else></if></else></if></else></if></else></if>
172
173        <!-- set os.suffix and os.shell -->
174        <if><bool><equals arg1="${rk.os}" arg2="mac"/></bool>
175            <exec executable="uname" outputproperty="mac.arch">
176                <arg line="-p"/>
177            </exec>
178           
179            <if><bool><equals arg1="${mac.arch}" arg2="powerpc"/></bool>
180                <property name="os.suffix" value="MacOS-ppc"/>
181                <property name="arch" value="-ppc"/>
182            <else>
183                <property name="os.suffix" value="MacOS-intel"/>
184                <property name="arch" value="-intel"/>
185            </else>
186            </if>
187
188            <property name="os.shell" value="darwin"/>
189        </if>
190        <property name="arch" value=""/>
191
192        <property name="os.suffix" value="${rk.os}"/>
193        <property name="os.shell" value="${rk.os}"/>
194
195        <!-- set os.script.format -->
196        <if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
197            <property name="os.script.format" value="sh"/>
198        <else><if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
199            <property name="os.script.format" value="bat"/>
200        </if></else></if>
201
202        <!-- show important properties -->
203        <echo level="info">Version (version): ${version}${version-extra}</echo>
204        <echo level="info">Major Version (version.major): ${version.major}</echo>
205        <echo level="info">Branch Path (branch.path): ${branch.path}</echo>
206        <echo level="info">Date (date): ${date}</echo>
207        <echo level="info">Current Month (current.month): ${current.month}</echo>
208        <echo level="info">Current Year (current.year): ${current.year}</echo>
209        <echo level="info">Operating System (rk.os): ${rk.os}</echo>
210        <echo level="info">Operating System Suffix (os.suffix): ${os.suffix}</echo>
211        <echo level="info">Operating System Script format (os.script.format): ${os.script.format}</echo>
212        <echo level="info">Operating System Shell (os.shell): ${os.shell}</echo>
213        <!--
214        <echo level="info">Current Date</echo>
215        <echo level="info">ar: ${month.ar} ${current.year}</echo>
216        <echo level="info">ca: ${month.el} ${current.year}</echo>
217        <echo level="info">el: ${month.el} ${current.year}</echo>
218        <echo level="info">es: ${month.es} ${current.year}</echo>
219        <echo level="info">fr: ${month.fr} ${current.year}</echo>
220        <echo level="info">lv: ${month.lv} ${current.year}</echo>
221        <echo level="info">mr: ${month.mr} ${current.year}</echo>
222        <echo level="info">ro: ${month.ro} ${current.year}</echo>
223        <echo level="info">ru: ${month.ru} ${current.year}</echo>
224        <echo level="info">vi: ${month.vi} ${current.year}</echo>
225        <echo level="info">zh: ${month.zh} ${current.year}</echo>
226        <echo level="info">default: (${month.default} ${current.year})</echo>
227        -->
228    </target>
229
230    <!-- show the core properties of all release-kits -->
231    <target name="core-properties">
232        <echo>version             (required)  the version string for the release</echo>
233        <echo>branch.path         (optional)  the branch of Greenstone to make a release of. Eg: tags/2.81. Default: trunk.</echo>
234        <echo>branch.revision     (optional)  the revision of Greenstone to make a release of. Eg: 18273. Default: HEAD.</echo>
235    </target>
236
237    <!-- a target to strip any directory of .svn folders -->
238    <target name="strip-svn-dirs">
239        <delete includeemptydirs="true">
240            <fileset dir="${dir}" defaultexcludes="false">
241                <include name="**/.svn/**" />
242                <include name="**/.svn/" />
243                <include name=".svn/**" />
244                <include name=".svn/" />
245            </fileset>
246        </delete>
247    </target>
248
249    <!-- target to insert the uninstaller into 'compiled' and compile it -->
250    <target name="insert-and-compile-uninstaller">
251
252        <!-- create working build directory -->
253        <mkdir dir="compiled/uninstaller/build/resources" />
254        <mkdir dir="compiled/uninstall"/>
255       
256        <!-- copile to build -->
257        <javac
258            srcdir="${rk.home}/shared/core/uninstaller"
259            destdir="compiled/uninstaller/build" />
260
261        <!-- copy language bundle into place -->
262        <native2ascii
263            implementation="sun"
264            src="${rk.home}/shared/core/language-strings"
265            dest="compiled/uninstaller/build/resources"/>
266
267        <!-- jar it all up -->
268        <jar
269            destfile="compiled/uninstall/uninst.jar"
270            manifest="${rk.home}/shared/core/uninstaller/manifest.mf"
271            basedir="compiled/uninstaller/build" />
272
273        <!-- clean up build directory -->
274        <delete dir="compiled/uninstaller"/>
275
276        <!-- put the associated script in place -->
277        <copy file="${rk.home}/shared/core/uninstaller/Uninstall.${os.script.format}" todir="compiled/uninstall"/>
278
279    </target>
280
281    <!-- target to set all the version numbers in a greenstone2 or gs2build directory -->
282    <target name="gsdl-set-version-numbers">
283
284        <if><bool><available file="${gsdl.basedir}/common-src/src/lib/gsdlconf.h"/></bool>
285            <rsr file="${gsdl.basedir}/common-src/src/lib/gsdlconf.h" pattern="(#define GSDL_VERSION) &quot;.*&quot;" replacement="$1 &quot;${version}${version-extra}&quot;" />
286        </if>
287
288        <if><bool><available file="${gsdl.basedir}/etc/VERSION"/></bool>
289            <rsr file="${gsdl.basedir}/etc/VERSION" pattern="(gsdl version: ).*" replacement="$1${version}${version-extra}" />
290        </if>
291
292        <if><bool><available file="${gsdl.basedir}/lib/java/server.properties"/></bool>
293            <rsr file="${gsdl.basedir}/lib/java/server.properties" pattern="^(Server2Control.Version[:=]).*" replacement="$1${version}${version-extra}" />
294        </if>
295
296        <if><bool><available file="${gsdl.basedir}/lib/java/log4j.properties.in"/></bool>
297            <rsr file="${gsdl.basedir}/lib/java/log4j.properties.in" pattern="^(log4j.category.org.greenstone.server[:=].*)INFO(.*)" replacement="$1WARN$2" />
298        </if>
299
300        <antcall target="gsdl-set-dates-in-readmes"><param name="gsdl.basedir" value="${gsdl.basedir}"/></antcall>
301
302    </target>
303
304    <!-- target to set dates in readme files -->
305    <target name="gsdl-set-dates-in-readmes">
306
307        <!-- en -->
308        <if><bool><available file="${gsdl.basedir}/READMEen.txt"/></bool>
309            <rsr file="${gsdl.basedir}/READMEen.txt">
310                <job pattern="^(Date\s*)(.*)" replacement="$1${month.default} ${current.year}" />
311                <job pattern="^(Version\s*)(.*)" replacement="$1${version}${version-extra}" />
312            </rsr>
313        </if>
314
315        <!-- ar -->
316        <if><bool><available file="${gsdl.basedir}/READMEar.txt"/></bool>
317            <rsr file="${gsdl.basedir}/READMEar.txt">
318                <job pattern="(التاريخ : \s*)(.*)" replacement="$1${month.ar} ${current.year}"/>
319                <job pattern="(النسخه : \s*)(.*)" replacement="$1${version}${version-extra}"/>
320            </rsr>
321        </if>
322
323        <!-- es -->
324        <if><bool><available file="${gsdl.basedir}/READMEes.txt"/></bool>
325            <rsr file="${gsdl.basedir}/READMEes.txt">
326                <job pattern="^(Fecha\s*)(.*)" replacement="$1${month.es} de ${current.year}"/>
327                <job pattern="^(Versi.?n\s*)(.*)" replacement="$1${version}${version-extra}"/>
328            </rsr>
329        </if>
330
331        <!-- fr -->
332        <if><bool><available file="${gsdl.basedir}/READMEfr.txt"/></bool>
333            <rsr file="${gsdl.basedir}/READMEfr.txt">
334                <job pattern="^(Date\s*)(.*)" replacement="$1${month.fr} ${current.year}"/>
335                <job pattern="^(Version\s*)(.*)" replacement="$1${version}${version-extra}"/>
336            </rsr>
337        </if>
338
339        <!-- ru -->
340        <if><bool><available file="${gsdl.basedir}/READMEru.txt"/></bool>
341            <rsr file="${gsdl.basedir}/READMEru.txt">
342                <job pattern="^(Дата\s*)(.*)" replacement="$1${month.ru} ${current.year}"/>
343                <job pattern="^(ВерсОя\s*)(.*)" replacement="$1${version}${version-extra}"/>
344            </rsr>
345        </if>
346
347    </target>
348
349    <!-- target to set version numbers in gli -->
350    <target name="gli-set-version-numbers">
351        <if><bool><not><equals arg1="${with.gli.and.gems}" arg2="false"/></not></bool>
352            <!-- DICTIOANRY FILES (AboutDialog.Date) -->
353            <echo level="info">Changing AboutDialog.Date in all dictionaries</echo>
354
355            <rsr file="${glibasedir}/classes/dictionary_ar.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ar} ${current.year})" />
356            <rsr file="${glibasedir}/classes/dictionary_ca.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ca} de ${current.year})" />
357            <rsr file="${glibasedir}/classes/dictionary_el.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.el} ${current.year})" />
358            <rsr file="${glibasedir}/classes/dictionary_es.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.es} ${current.year})" />
359            <rsr file="${glibasedir}/classes/dictionary_fr.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.fr} ${current.year})" />
360            <rsr file="${glibasedir}/classes/dictionary_lv.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.lv} ${current.year})" />
361            <rsr file="${glibasedir}/classes/dictionary_mr.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.mr} ${current.year})" />
362            <rsr file="${glibasedir}/classes/dictionary_ro.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ro} ${current.year})" />
363            <rsr file="${glibasedir}/classes/dictionary_ru.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.ru} ${current.year})" />
364            <rsr file="${glibasedir}/classes/dictionary_vi.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.vi} ${current.year})" />
365            <rsr file="${glibasedir}/classes/dictionary_zh.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.zh} ${current.year})" />
366            <rsr file="${glibasedir}/classes/dictionary.properties" pattern="AboutDialog.Date:.*" replacement="AboutDialog.Date:(${month.default} ${current.year})" />
367
368            <!-- GLI GATHERER -->
369            <echo level="info">Changing version number in gli Gatherer</echo>
370            <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;"/>
371
372            <!-- CONFIG XML FILES -->
373            <echo level="info">Changing configuration version in classes/xml/config.xml</echo>
374            <rsr file="${glibasedir}/classes/xml/config.xml" pattern="^(\s*&lt;Configuration.* version=&quot;)[^&quot;]*(&quot;.*&gt;)" replacement="$1${version}${version-extra}$2"/>
375
376            <echo level="info">Changing configuration version in gli/classes/xml/configRemote.xml</echo>
377            <rsr file="${glibasedir}/classes/xml/configRemote.xml" pattern="^(\s*&lt;Configuration.* version=&quot;)[^&quot;]*(&quot;.*&gt;)" replacement="$1${version}${version-extra}$2"/>
378        </if>
379    </target>
380
381    <!-- target to tidy gli up for distribution -->
382    <target name="gli-tidy-for-dist">
383        <!-- delete unneeded things -->
384        <delete file="${glibasedir}/.greenstonestore"/>     
385        <delete dir="${glibasedir}/classes/META-INF"/>
386        <delete dir="${glibasedir}/classes/org"/>
387        <delete dir="${glibasedir}/classes/images"/>
388        <delete dir="${glibasedir}/jar"/>
389    </target>
390
391
392    <!-- target to archive and compress a given component -->
393    <target name="create-component">
394        <mkdir dir="components"/>
395       
396        <!-- the PatternSet To File task takes one or more patternsets and outputs to a file all of the files it includes -->
397        <pstf dir="compiled" outfile="compiled/uninstall/${component}.uninstall" toplevelonly="true">
398            <patternset refid="greenstone${version.major}.${component}${ext-x64}.component"/>
399        </pstf>
400     
401        <zip destfile="components/${component}.comp" compress="false">
402            <zipfileset dir="compiled">
403                <patternset refid="greenstone${version.major}.${component}${ext-x64}.component"/>
404            </zipfileset>
405        </zip>
406   
407        <!-- windows -->
408        <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
409        <exec executable="${rk.home}/shared/windows/7za/7za.exe" dir="components"><arg line="a -t7z -mx=9 ${component}.lzma ${component}.comp"/></exec>
410       
411        <!-- linux, mac -->
412        <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
413        <sevenzip task="encode" input="components/${component}.comp" output="components/${component}.lzma" dictionnary="26"/>
414       
415        <!-- else warn -->
416        <else>
417          <fail>this target does not support this os (was a new release-kit os added?)</fail>
418         
419      </else></if></else></if>
420    </target>
421   
422</project>
Note: See TracBrowser for help on using the browser.