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

Last change on this file since 22659 was 22659, checked in by sjm84, 14 years ago

Changed the icon choosing code and added new icons for the uninstaller and Client GLI along with other tidying

File size: 13.7 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 </target>
164
165 <!-- Apache HTTPD -->
166 <target name="Installing Apache Web Server">
167 <echo>Installing the Apache Web Server</echo>
168
169 <!-- start web -->
170 <unzip src="${antinstaller.jar}" dest="${basedir}">
171 <patternset>
172 <include name="apachehttpd.lzma"/>
173 </patternset>
174 </unzip>
175
176 <!-- if linux|mac -->
177 <sevenzip task="decode" input="${basedir}/apachehttpd.lzma" output="${basedir}/apachehttpd.comp"/>
178 <!-- /if -->
179 <!-- if windows -->
180 <exec dir="${basedir}" executable="${basedir}/7za.exe">
181 <arg line="x apachehttpd.lzma"/>
182 </exec>
183 <!-- /if -->
184 <unzip src="${basedir}/apachehttpd.comp" dest="${installDir}"/>
185 <delete file="apachehttpd.comp"/>
186 <!-- end web -->
187
188 <!-- start cdrom -->
189 <copy todir="${installDir}">
190 <fileset dir="${orig.dir}/Software/apache-httpd"/>
191 </copy>
192 <!-- end cdrom -->
193
194 <!-- if linux|mac -->
195 <chmod dir="${installDir}/apache-httpd/${shell.name}/bin" includes="*" perm="775"/>
196 <chmod dir="${installDir}/apache-httpd/${shell.name}" includes="*.sh" perm="775"/>
197 <echo>Setting up apache web server</echo>
198 <exec dir="${installDir}" executable="${installDir}/apache-httpd/${shell.name}/install-bindist.sh">
199 <arg value="${installDir}/apache-httpd/${shell.name}"/>
200 </exec>
201 <!-- /if -->
202 </target>
203
204 <!-- ImageMagick -->
205 <target name="Installing ImageMagick">
206 <echo>Installing ImageMagick</echo>
207 <!-- start web -->
208 <unzip src="${antinstaller.jar}" dest="${basedir}"><patternset><include name="imagemagick.lzma"/></patternset></unzip>
209 <!-- if linux|mac --><sevenzip task="decode" input="${basedir}/imagemagick.lzma" output="${basedir}/imagemagick.comp"/><!-- /if -->
210 <!-- if windows --><exec dir="${basedir}" executable="${basedir}/7za.exe"><arg line="x imagemagick.lzma"/></exec><!-- /if -->
211 <delete file="imagemagick.lzma"/>
212 <unzip src="${basedir}/imagemagick.comp" dest="${installDir}"/>
213 <delete file="imagemagick.comp"/>
214 <!-- end web -->
215
216 <!-- start cdrom -->
217 <copy todir="${installDir}/bin/${shell.name}">
218 <fileset dir="${orig.dir}/Software/imagemagick/${rk.os}"/>
219 </copy>
220 <!-- end cdrom -->
221
222 <chmod dir="${installDir}/bin/${shell.name}/imagemagick/bin" includes="*" perm="775"/>
223
224 </target>
225
226 <!-- Ghostscript -->
227 <target name="Installing Ghostscript" depends="">
228 <echo message="Installing Ghostscript"/>
229 <!-- start web -->
230 <unzip src="${antinstaller.jar}" dest="${basedir}"><patternset><include name="ghostscript.lzma"/></patternset></unzip>
231 <!-- if linux|mac --><sevenzip task="decode" input="${basedir}/ghostscript.lzma" output="${basedir}/ghostscript.comp"/><!-- /if -->
232 <!-- if windows --><exec dir="${basedir}" executable="${basedir}/7za.exe"><arg line="x ghostscript.lzma"/></exec><!-- /if -->
233 <delete file="ghostscript.lzma"/>
234 <unzip src="${basedir}/ghostscript.comp" dest="${installDir}" />
235 <delete file="ghostscript.comp"/>
236 <!-- end web -->
237
238 <!-- start cdrom -->
239 <copy todir="${installDir}/bin/${shell.name}">
240 <fileset dir="${orig.dir}/Software/ghostscript/${rk.os}"/>
241 </copy>
242 <!-- end cdrom -->
243
244 <chmod dir="${installDir}/bin/${shell.name}/ghostscript/bin" includes="*" perm="775"/>
245 </target>
246
247 <!-- Start menu shortcuts -->
248 <target name="Installing Start Menu Shortcuts">
249
250 <mkdir dir="${startmenu.path}\Documentation"/>
251
252 <!-- Server shortcut -->
253 <if><bool><available file="${installDir}/web/images/server.ico"/></bool>
254 <property name="servericon" value="${installDir}\web\images\server.ico"/>
255 <else>
256 <property name="servericon" value="${installDir}\web\images\serverico.ico"/>
257 </else>
258 </if>
259
260 <shortcut
261 file="${startmenu.path}\Greenstone Server.lnk"
262 execute="${installDir}\gs2-server.bat"
263 workingDirectory="${installDir}"
264 iconFile="${servericon}"
265 iconIndex="0" />
266
267 <!-- Librarian shortcut -->
268 <if><bool><available file="${installDir}/web/images/librarian.ico"/></bool>
269 <property name="libraryicon" value="${installDir}\web\images\librarian.ico"/>
270 <else>
271 <property name="libraryicon" value="${installDir}\web\images\icon.ico"/>
272 </else>
273 </if>
274
275 <shortcut
276 file="${startmenu.path}\Librarian Interface (GLI).lnk"
277 execute="${installDir}\gli\gli.bat"
278 workingDirectory="${installDir}\gli"
279 iconFile="${libraryicon}"
280 iconIndex="0" />
281
282 <!-- Remote Server shortcut -->
283 <if><bool><available file="${installDir}/web/images/clientgli.ico"/></bool>
284 <property name="clientgliicon" value="${installDir}\web\images\clientgli.ico"/>
285 <else>
286 <property name="clientgliicon" value="${installDir}\web\images\icon.ico"/>
287 </else>
288 </if>
289
290 <shortcut
291 file="${startmenu.path}\Remote Librarian Interface (Client GLI).lnk"
292 execute="${installDir}\gli\client-gli.bat"
293 workingDirectory="${installDir}\gli"
294 iconFile="${clientgliicon}"
295 iconIndex="0" />
296
297 <!-- GEMS shortcut -->
298 <if><bool><available file="${installDir}/web/images/metadata.ico"/></bool>
299 <property name="gemsicon" value="${installDir}\web\images\metadata.ico"/>
300 <else>
301 <property name="gemsicon" value="${installDir}\web\images\gems.ico"/>
302 </else>
303 </if>
304
305 <shortcut
306 file="${startmenu.path}\Metadata Set Editor (GEMS).lnk"
307 execute="${installDir}\gli\gems.bat"
308 workingDirectory="${installDir}\gli"
309 iconFile="${gemsicon}"
310 iconIndex="0" />
311
312 <!-- Uninstall shortcut -->
313 <if><bool><available file="${installDir}/web/images/newuninstall.ico"/></bool>
314 <property name="uninstallicon" value="${installDir}\web\images\newuninstall.ico"/>
315 <else>
316 <property name="uninstallicon" value="${installDir}\web\images\uninstall.ico"/>
317 </else>
318 </if>
319
320 <shortcut
321 file="${startmenu.path}\Uninstall.lnk"
322 execute="${installDir}\Uninstall.bat"
323 workingDirectory="${installDir}"
324 iconFile="${uninstallicon}"
325 iconIndex="0" />
326
327 <!-- Misc shortcuts -->
328 <shortcut
329 file="${startmenu.path}\Documentation\READMEen.lnk"
330 execute="${installDir}\READMEen.txt" />
331
332 <shortcut
333 file="${startmenu.path}\Documentation\Greenstone Wiki.url"
334 url="http://wiki.greenstone.org" />
335
336 <shortcut
337 file="${startmenu.path}\Documentation\Greenstone Website.url"
338 url="http://www.greenstone.org" />
339
340 </target>
341
342 <target name="Configuring Administration Pages" if="enable.admin.pages">
343 <echo>Enabling Admin Pages</echo>
344 <rsr file="${installDir}/etc/main.cfg" pattern="^\s*status\s+.*" replacement="status enabled"/>
345 <echo>Creating admin and demo users</echo>
346 <adduser txt2db="${installDir}/bin/${shell.name}/txt2db"
347 usersDb="${installDir}/etc/users.gdb"
348 username="admin"
349 password="${admin.password}"
350 groups="administrator,colbuilder,all-collections-editor"
351 comment="created at install time"/>
352 <adduser
353 txt2db="${installDir}/bin/${shell.name}/txt2db"
354 usersDb="${installDir}/etc/users.gdb"
355 username="demo"
356 password="demo"
357 groups="demo"
358 comment="Dummy 'demo' user with password 'demo' for authen-e collection"/>
359 </target>
360
361 <target name="Installing Documented Examples">
362 <copy todir="${installDir}/collect">
363 <fileset dir="${orig.dir}/Documented Examples" includes="documented-examples/**/*"/>
364 </copy>
365 </target>
366
367</project>
Note: See TracBrowser for help on using the repository browser.