source: main/trunk/release-kits/kits/rk2/installer/build.xml@ 24631

Last change on this file since 24631 was 24631, checked in by ak19, 13 years ago

Mac .app shortcut files need to be generated from their .in template files first before placeholder strings are replaced.

File size: 15.1 KB
Line 
1<?xml version="1.0"?>
2<!--
3This is the build.xml run by AntInstaller for the installer
4-->
5
6<project name="Installation">
7
8 <!-- this is required to pick up the properties generated during the install pages -->
9 <property file="${basedir}/ant.install.properties"/>
10
11 <!-- set some properties to keep track of the OS -->
12 <!-- if windows -->
13 <property name="rk.os" value="windows"/>
14 <property name="shell.name" value="windows"/>
15 <!-- /if -->
16 <!-- if linux -->
17 <property name="rk.os" value="linux"/>
18 <property name="shell.name" value="linux"/>
19 <!-- /if -->
20 <!-- if mac -->
21 <property name="rk.os" value="mac"/>
22 <property name="shell.name" value="darwin"/>
23 <!-- /if -->
24
25 <!-- classpath -->
26 <path id="project.classpath">
27 <pathelement path="${antinstaller.jar}"/>
28 </path>
29
30 <!-- custom tasks -->
31 <taskdef name="if" classname="ise.antelope.tasks.IfTask" classpathref="project.classpath"/>
32 <typedef name="rsr" classname="org.greenstone.anttasks.RegexSearchReplace" classpathref="project.classpath"/>
33 <typedef name="adduser" classname="org.greenstone.anttasks.AddGreenstoneUserToDatabase" classpathref="project.classpath"/>
34 <!-- if windows -->
35 <taskdef name="shortcut" classname="com.orangevolt.tools.ant.Win32ShortcutTask" classpathref="project.classpath"/>
36 <taskdef name="winprops" classname="com.orangevolt.tools.ant.Win32PropertiesTask" classpathref="project.classpath"/>
37 <typedef name="getfreepath" classname="org.greenstone.anttasks.GetFreePath" classpathref="project.classpath"/>
38 <!-- /if -->
39 <!-- if linux|mac -->
40 <taskdef name="sevenzip" classname="org.apache.tools.ant.SevenZip" classpathref="project.classpath"/>
41 <!-- /if -->
42
43 <!-- determine if a bundled java exists -->
44 <condition property="bundled.java.exists">
45 <or>
46 <available file="../@java.extracted@/bin/java"/>
47 <available file="../@java.extracted@/bin/java.exe"/>
48 </or>
49 </condition>
50
51 <!-- determine if there is an existing installation in the installDir-->
52 <available file="${installDir}\etc\installation.properties" property="is.overinstall"/>
53
54 <!-- create a local installDir String -->
55 <path id="installDir.path"><pathelement location="${installDir}"/></path>
56 <property name="installDir.local" refid="installDir.path"/>
57
58 <!-- if windows -->
59 <!-- load windows properties -->
60 <winprops/>
61 <!-- /if -->
62
63 <!-- load the properties of the previous installation if this is an overinstall -->
64 <target name="Looking For Previous Installation" if="is.overinstall">
65 <property file="${installDir}\etc\installation.properties"/>
66 <delete dir="${installed.startmenu.path}" failonerror="false"/>
67 </target>
68
69 <!-- copy jre -->
70 <target name="Initialising" if="bundled.java.exists">
71 <mkdir dir="${installDir}/packages"/>
72 <copy todir="${installDir}/packages/jre" failonerror="false">
73 <fileset dir="../@java.extracted@"/>
74 </copy>
75 <chmod dir="${installDir}/packages/jre/bin" includes="*" perm="775"/>
76 </target>
77
78 <!-- core system -->
79 <target name="Installing Core System">
80
81 <!-- if windows -->
82 <!-- figure out the start menu path -->
83 <getfreepath path="${win32.personal.programs_menu}\Greenstone-@version@" property="startmenu.path"/>
84 <path id="startmenu.path.path" path="${startmenu.path}"/>
85 <pathconvert targetos="unix" property="startmenu.path.unix" refid="startmenu.path.path"/>
86
87 <!-- extract 7za tool -->
88 <unzip src="${antinstaller.jar}" dest="${basedir}">
89 <patternset><include name="7za.exe"/></patternset>
90 </unzip>
91 <!-- /if -->
92
93 <!-- start web -->
94 <unzip src="${antinstaller.jar}" dest="${basedir}"><patternset><include name="core.lzma"/></patternset></unzip>
95 <!-- if linux|mac --><sevenzip task="decode" input="${basedir}/core.lzma" output="${basedir}/core.comp"/><!-- /if -->
96 <!-- if windows --><exec dir="${basedir}" executable="${basedir}/7za.exe"><arg line="x core.lzma"/></exec><!-- /if -->
97 <delete file="core.lzma"/>
98 <unzip src="${basedir}/core.comp" dest="${installDir}"/>
99 <delete file="core.comp"/>
100 <!-- end web -->
101
102 <!-- start cdrom -->
103 <copy todir="${installDir}">
104 <fileset dir="${orig.dir}/Software/core/all"/>
105 <fileset dir="${orig.dir}/Software/core/${rk.os}"/><!-- /if -->
106 </copy>
107 <!-- if windows -->
108 <copy todir="${installDir}/packages/jre" failonerror="false">
109 <fileset dir="${orig.dir}/Java/Windows/jre"/>
110 </copy>
111 <!-- /if -->
112 <!-- end cdrom -->
113
114 <echo>Setting Binaries to Executable</echo>
115 <chmod dir="${installDir}" includes="*.sh,*.bash" perm="775"/>
116 <chmod dir="${installDir}/bin" includes="*" perm="775"/>
117 <chmod dir="${installDir}/cgi-bin" includes="*" perm="775"/>
118 <chmod dir="${installDir}/bin/script" includes="**/*" perm="775"/>
119 <chmod dir="${installDir}/gli" includes="*.sh" perm="775"/>
120 <!-- if linux|mac -->
121 <chmod dir="${installDir}/bin/${shell.name}" includes="**/*" perm="775"/>
122 <!-- /if -->
123
124 <echo>Filling in concrete values in config files</echo>
125 <copy file="${installDir}/cgi-bin/gsdlsite.cfg.in" tofile="${installDir}/cgi-bin/gsdlsite.cfg"/>
126 <rsr file="${installDir}/cgi-bin/gsdlsite.cfg" pattern="&quot;?\*\*GSDLHOME\*\*&quot;?" replacement="&quot;${installDir.local}&quot;"/>
127
128 <echo>Correcting perl shebangs in perl scripts</echo>
129 <!-- if linux|mac -->
130 <exec executable="which" outputproperty="perl.executable"><arg value="perl"/></exec>
131 <rsr file="${installDir}/cgi-bin/gliserver.pl" pattern="^#!.*" replacement="#!${perl.executable} -w" lines="1"/>
132 <!-- /if -->
133 <!-- if windows -->
134 <property name="perl.executable" value="${installDir.local}\bin\windows\perl\bin\perl.exe"/>
135 <rsr file="${installDir}/cgi-bin/gliserver.pl" pattern="^#!.*" replacement="#!${perl.executable} -w" lines="1"/>
136 <!-- /if -->
137
138 <echo>Creating the english dictionary</echo>
139 <copy file="${installDir}/gli/classes/dictionary.properties" tofile="${installDir}/gli/classes/dictionary_en.properties"/>
140
141 <!-- if linux|mac -->
142 <echo>Set the installation locale in config files</echo>
143 <rsr file="${installDir}/setup.bash" pattern="^gsdllang=.*" replacement="gsdllang=${language}"/>
144 <rsr file="${installDir}/gli/gli.sh" pattern="^glilang=.*" replacement="glilang=${language}"/>
145 <rsr file="${installDir}/gli/gems.sh" pattern="^glilang=.*" replacement="glilang=${language}"/>
146 <!-- /if -->
147 <rsr
148 file="${installDir}/gli/classes/xml/config.xml"
149 pattern="(&lt;Argument name=&quot;general.locale&quot;&gt;).*(&lt;/Argument&gt;)"
150 replacement="$1${language}$2"/>
151
152 <echo file="${installDir}/etc/main.cfg" append="true"
153 >cgiarg shortname=l argdefault=${language}</echo>
154
155 <echo message="Creating installation properties file"/>
156 <!-- if linux|mac -->
157 <echo file="${installDir}/etc/installation.properties">#this file is just a placeholder for now</echo>
158 <!-- /if -->
159 <!-- if windows -->
160 <echo file="${installDir}\etc\installation.properties">installed.startmenu.path:${startmenu.path.unix}</echo>
161 <!-- /if -->
162
163 <!-- if mac -->
164 <copy file="${installDir}/gli.app/Contents/document.wflow.in" tofile="${installDir}/gli.app/Contents/document.wflow"/>
165 <rsr file="${installDir}/gli.app/Contents/document.wflow" pattern="\*\*GSDLHOME\*\*" replacement="${installDir}"/>
166
167 <copy file="${installDir}/gs2-server.app/Contents/document.wflow.in" tofile="${installDir}/gs2-server.app/Contents/document.wflow"/>
168 <rsr file="${installDir}/gs2-server.app/Contents/document.wflow" pattern="\*\*GSDLHOME\*\*" replacement="${installDir}"/>
169
170 <copy file="${installDir}/gems.app/Contents/document.wflow.in" tofile="${installDir}/gems.app/Contents/document.wflow"/>
171 <rsr file="${installDir}/gems.app/Contents/document.wflow" pattern="\*\*GSDLHOME\*\*" replacement="${installDir}"/>
172
173 <copy file="${installDir}/client-gli.app/Contents/document.wflow.in" tofile="${installDir}/client-gli.app/Contents/document.wflow"/>
174 <rsr file="${installDir}/client-gli.app/Contents/document.wflow" pattern="\*\*GSDLHOME\*\*" replacement="${installDir}"/>
175
176 <chmod dir="${installDir}" includes="*.app" perm="755"/>
177 <chmod dir="${installDir}" includes="*.app/**/*" perm="755"/>
178 <!-- /if -->
179 </target>
180
181 <!-- Apache HTTPD -->
182 <target name="Installing Apache Web Server">
183 <echo>Installing the Apache Web Server</echo>
184
185 <!-- start web -->
186 <unzip src="${antinstaller.jar}" dest="${basedir}">
187 <patternset>
188 <include name="apachehttpd.lzma"/>
189 </patternset>
190 </unzip>
191
192 <!-- if linux|mac -->
193 <sevenzip task="decode" input="${basedir}/apachehttpd.lzma" output="${basedir}/apachehttpd.comp"/>
194 <!-- /if -->
195 <!-- if windows -->
196 <exec dir="${basedir}" executable="${basedir}/7za.exe">
197 <arg line="x apachehttpd.lzma"/>
198 </exec>
199 <!-- /if -->
200 <unzip src="${basedir}/apachehttpd.comp" dest="${installDir}"/>
201 <delete file="apachehttpd.comp"/>
202 <!-- end web -->
203
204 <!-- start cdrom -->
205 <mkdir dir="${installDir}/apache-httpd"/>
206 <mkdir dir="${installDir}/apache-httpd/${shell.name}"/>
207 <copy todir="${installDir}/apache-httpd/${shell.name}">
208 <fileset dir="${orig.dir}/Software/apache-httpd/${shell.name}"/>
209 </copy>
210 <!-- end cdrom -->
211
212 <!-- if linux|mac -->
213 <chmod dir="${installDir}/apache-httpd/${shell.name}/bin" includes="*" perm="775"/>
214 <chmod dir="${installDir}/apache-httpd/${shell.name}" includes="*.sh" perm="775"/>
215 <echo>Setting up apache web server</echo>
216 <exec dir="${installDir}" executable="${installDir}/apache-httpd/${shell.name}/install-bindist.sh">
217 <arg value="${installDir}/apache-httpd/${shell.name}"/>
218 </exec>
219 <!-- /if -->
220 </target>
221
222 <!-- ImageMagick -->
223 <target name="Installing ImageMagick">
224 <echo>Installing ImageMagick</echo>
225 <!-- start web -->
226 <unzip src="${antinstaller.jar}" dest="${basedir}"><patternset><include name="imagemagick.lzma"/></patternset></unzip>
227 <!-- if linux|mac --><sevenzip task="decode" input="${basedir}/imagemagick.lzma" output="${basedir}/imagemagick.comp"/><!-- /if -->
228 <!-- if windows --><exec dir="${basedir}" executable="${basedir}/7za.exe"><arg line="x imagemagick.lzma"/></exec><!-- /if -->
229 <delete file="imagemagick.lzma"/>
230 <unzip src="${basedir}/imagemagick.comp" dest="${installDir}"/>
231 <delete file="imagemagick.comp"/>
232 <!-- end web -->
233
234 <!-- start cdrom -->
235 <copy todir="${installDir}">
236 <fileset dir="${orig.dir}/Software/imagemagick/${rk.os}"/>
237 </copy>
238 <!-- end cdrom -->
239
240 <if><bool><available file="${installDir}/bin/${shell.name}/imagemagick" type="dir"/></bool>
241 <chmod dir="${installDir}/bin/${shell.name}/imagemagick/bin" includes="*" perm="775"/>
242 <else>
243 <chmod dir="${installDir}/ext/imagemagick/${shell.name}/bin" includes="*" perm="775"/>
244 </else>
245 </if>
246
247 </target>
248
249 <!-- Ghostscript -->
250 <target name="Installing Ghostscript" depends="">
251 <echo message="Installing Ghostscript"/>
252 <!-- start web -->
253 <unzip src="${antinstaller.jar}" dest="${basedir}"><patternset><include name="ghostscript.lzma"/></patternset></unzip>
254 <!-- if linux|mac --><sevenzip task="decode" input="${basedir}/ghostscript.lzma" output="${basedir}/ghostscript.comp"/><!-- /if -->
255 <!-- if windows --><exec dir="${basedir}" executable="${basedir}/7za.exe"><arg line="x ghostscript.lzma"/></exec><!-- /if -->
256 <delete file="ghostscript.lzma"/>
257 <unzip src="${basedir}/ghostscript.comp" dest="${installDir}" />
258 <delete file="ghostscript.comp"/>
259 <!-- end web -->
260
261 <!-- start cdrom -->
262 <copy todir="${installDir}">
263 <fileset dir="${orig.dir}/Software/ghostscript/${rk.os}"/>
264 </copy>
265 <!-- end cdrom -->
266
267 <chmod dir="${installDir}/bin/${shell.name}/ghostscript/bin" includes="*" perm="775"/>
268 </target>
269
270 <!-- Start menu shortcuts -->
271 <target name="Installing Start Menu Shortcuts">
272
273 <mkdir dir="${startmenu.path}\Documentation"/>
274
275 <!-- Server shortcut -->
276 <if><bool><available file="${installDir}/web/images/server.ico"/></bool>
277 <property name="servericon" value="${installDir}\web\images\server.ico"/>
278 <else>
279 <property name="servericon" value="${installDir}\web\images\serverico.ico"/>
280 </else>
281 </if>
282
283 <shortcut
284 file="${startmenu.path}\Greenstone Server.lnk"
285 execute="${installDir}\gs2-server.bat"
286 workingDirectory="${installDir}"
287 iconFile="${servericon}"
288 iconIndex="0" />
289
290 <!-- Librarian shortcut -->
291 <if><bool><available file="${installDir}/web/images/librarian.ico"/></bool>
292 <property name="libraryicon" value="${installDir}\web\images\librarian.ico"/>
293 <else>
294 <property name="libraryicon" value="${installDir}\web\images\icon.ico"/>
295 </else>
296 </if>
297
298 <shortcut
299 file="${startmenu.path}\Librarian Interface (GLI).lnk"
300 execute="${installDir}\gli\gli.bat"
301 workingDirectory="${installDir}\gli"
302 iconFile="${libraryicon}"
303 iconIndex="0" />
304
305 <!-- Remote Server shortcut -->
306 <if><bool><available file="${installDir}/web/images/clientgli.ico"/></bool>
307 <property name="clientgliicon" value="${installDir}\web\images\clientgli.ico"/>
308 <else>
309 <property name="clientgliicon" value="${installDir}\web\images\icon.ico"/>
310 </else>
311 </if>
312
313 <shortcut
314 file="${startmenu.path}\Remote Librarian Interface (Client GLI).lnk"
315 execute="${installDir}\gli\client-gli.bat"
316 workingDirectory="${installDir}\gli"
317 iconFile="${clientgliicon}"
318 iconIndex="0" />
319
320 <!-- GEMS shortcut -->
321 <if><bool><available file="${installDir}/web/images/metadata.ico"/></bool>
322 <property name="gemsicon" value="${installDir}\web\images\metadata.ico"/>
323 <else>
324 <property name="gemsicon" value="${installDir}\web\images\gems.ico"/>
325 </else>
326 </if>
327
328 <shortcut
329 file="${startmenu.path}\Metadata Set Editor (GEMS).lnk"
330 execute="${installDir}\gli\gems.bat"
331 workingDirectory="${installDir}\gli"
332 iconFile="${gemsicon}"
333 iconIndex="0" />
334
335 <!-- Uninstall shortcut -->
336 <if><bool><available file="${installDir}/web/images/newuninstall.ico"/></bool>
337 <property name="uninstallicon" value="${installDir}\web\images\newuninstall.ico"/>
338 <else>
339 <property name="uninstallicon" value="${installDir}\web\images\uninstall.ico"/>
340 </else>
341 </if>
342
343 <shortcut
344 file="${startmenu.path}\Uninstall.lnk"
345 execute="${installDir}\uninstall\Uninstall.bat"
346 workingDirectory="${installDir}\uninstall"
347 iconFile="${uninstallicon}"
348 iconIndex="0" />
349
350 <!-- Misc shortcuts -->
351 <shortcut
352 file="${startmenu.path}\Documentation\READMEen.lnk"
353 execute="${installDir}\READMEen.txt" />
354
355 <shortcut
356 file="${startmenu.path}\Documentation\Greenstone Wiki.url"
357 url="http://wiki.greenstone.org" />
358
359 <shortcut
360 file="${startmenu.path}\Documentation\Greenstone Website.url"
361 url="http://www.greenstone.org" />
362
363 </target>
364
365 <target name="Configuring Administration Pages" if="enable.admin.pages">
366 <echo>Enabling Admin Pages</echo>
367 <rsr file="${installDir}/etc/main.cfg" pattern="^\s*status\s+.*" replacement="status enabled"/>
368 <echo>Creating admin and demo users</echo>
369 <adduser txt2db="${installDir}/bin/${shell.name}/txt2db"
370 usersDb="${installDir}/etc/users.gdb"
371 username="admin"
372 password="${admin.password}"
373 groups="administrator,colbuilder,all-collections-editor"
374 comment="created at install time"/>
375 <adduser
376 txt2db="${installDir}/bin/${shell.name}/txt2db"
377 usersDb="${installDir}/etc/users.gdb"
378 username="demo"
379 password="demo"
380 groups="demo"
381 comment="Dummy 'demo' user with password 'demo' for authen-e collection"/>
382 </target>
383
384 <target name="Installing Documented Examples">
385 <unzip src="${orig.dir}/documented-examples.zip" dest="${installDir}/collect"/>
386 </target>
387
388</project>
Note: See TracBrowser for help on using the repository browser.