1 | <?xml version="1.0" encoding="utf-8" ?>
|
---|
2 | <project name="create-installer">
|
---|
3 |
|
---|
4 | <target name="create-installer" depends="init">
|
---|
5 |
|
---|
6 | <!-- create installer directory -->
|
---|
7 | <mkdir dir="installer/classes"/>
|
---|
8 |
|
---|
9 | <!-- insert the installer descriptors -->
|
---|
10 | <copy todir="installer" overwrite="true">
|
---|
11 | <fileset dir="${rk.home}/kits/${rk.name}/installer" includes="antinstall-config.xml,build.xml"/>
|
---|
12 | </copy>
|
---|
13 |
|
---|
14 | <!-- insert the language bundle -->
|
---|
15 | <native2ascii
|
---|
16 | implementation="sun"
|
---|
17 | encoding="UTF-8"
|
---|
18 | src="${rk.home}/shared/core/language-strings"
|
---|
19 | dest="${basedir}/installer/classes/resources"/>
|
---|
20 |
|
---|
21 | <!-- insert core, rk-specific and os-specific installer classes -->
|
---|
22 | <copy todir="${basedir}/installer/classes" overwrite="true">
|
---|
23 | <fileset dir="${rk.home}/shared/core/installer-classes" erroronmissingdir="false"/>
|
---|
24 | <fileset dir="${rk.home}/kits/${rk.name}/installer-classes" erroronmissingdir="false"/>
|
---|
25 | <fileset dir="${rk.home}/shared/${rk.os}/installer-classes" erroronmissingdir="false"/>
|
---|
26 | </copy>
|
---|
27 |
|
---|
28 | <!-- insert the licence -->
|
---|
29 | <copy file="compiled/LICENSE.txt" todir="${basedir}/installer/classes" overwrite="true"/>
|
---|
30 |
|
---|
31 | <!-- insert greenstone's ant tasks -->
|
---|
32 | <unjar src="${rk.home}/shared/core/ant-tasks/greenstone/anttasks.jar" dest="installer/classes"/>
|
---|
33 |
|
---|
34 | <!-- insert antelope tasks -->
|
---|
35 | <unjar src="${rk.home}/shared/core/ant-tasks/antelope/AntelopeTasks_3.4.2.jar" dest="installer/classes"/>
|
---|
36 |
|
---|
37 | <!-- Include lib/crypt.class for both releasekit2 and 3 (rk2 and rk3)
|
---|
38 | since we need it to encrypt the admin password -->
|
---|
39 | <unjar src="${rk.home}/shared/core/lib/crypt.jar" dest="${basedir}/installer/classes">
|
---|
40 | <patternset><include name="**/*.class"/></patternset>
|
---|
41 | </unjar>
|
---|
42 |
|
---|
43 | <!-- (windows only) -->
|
---|
44 | <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
|
---|
45 | <!-- insert 7za.exe tool -->
|
---|
46 | <copy todir="installer/classes" overwrite="true" file="${rk.home}/shared/windows/7za/7za.exe"/>
|
---|
47 |
|
---|
48 | <!-- insert roxes and orangevolt for windows tricks in ant -->
|
---|
49 | <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar" dest="installer/classes"/>
|
---|
50 | <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar" dest="installer/classes"/>
|
---|
51 |
|
---|
52 | <!-- (linux and mac only) -->
|
---|
53 | <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
|
---|
54 | <!-- insert 7zip ant task -->
|
---|
55 | <unjar src="${rk.home}/shared/core/ant-tasks/7z-ant/7z.jar" dest="installer/classes"/>
|
---|
56 |
|
---|
57 | </if></else></if>
|
---|
58 |
|
---|
59 | <!-- clean up meta directory -->
|
---|
60 | <delete dir="installer/classes/META-INF"/>
|
---|
61 |
|
---|
62 | <!-- calculate the size of: core -->
|
---|
63 | <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
|
---|
64 | <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
|
---|
65 | <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
|
---|
66 | <else><if><bool><equals arg1="${rk.os}" arg2="linux"/></bool>
|
---|
67 | <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
|
---|
68 | <else>
|
---|
69 | <exec dir="." executable="/bin/sh" outputproperty="bitness.ouput"><arg line="-c "uname -m""/></exec>
|
---|
70 | <if><bool><contains string="${bitness.ouput}" substring="_64"/></bool>
|
---|
71 | <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.mac-java}" datatype="int"/>
|
---|
72 | <else><property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/></else>
|
---|
73 | </if>
|
---|
74 | </else></if></else></if>
|
---|
75 | <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
|
---|
76 | <property name="component.size.core" value="${component.megabytesize.core} MB"/>
|
---|
77 |
|
---|
78 | <!-- calculate the size of: imagemagick -->
|
---|
79 | <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
|
---|
80 | <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
|
---|
81 | <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
|
---|
82 |
|
---|
83 | <!-- calculate the size of: ghostscript -->
|
---|
84 | <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
|
---|
85 | <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
|
---|
86 | <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
|
---|
87 |
|
---|
88 | <!-- calculate the size of: apache httpd -->
|
---|
89 | <length property="component.bytesize.httpd" mode="all"><fileset file="${basedir}/components/apachehttpd.comp"/></length>
|
---|
90 | <math result="component.megabytesize.httpd" operand1="${component.bytesize.httpd}" operation="/" operand2="1048576" datatype="int"/>
|
---|
91 | <property name="component.size.httpd" value="${component.megabytesize.httpd} MB"/>
|
---|
92 |
|
---|
93 | <!-- calculate the size of: tomcat -->
|
---|
94 | <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
|
---|
95 | <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
|
---|
96 | <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
|
---|
97 |
|
---|
98 | <!-- EXT -->
|
---|
99 | <!-- calculate the size of: amp (and put it into the components directory) -->
|
---|
100 | <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/><not><available file="${rk.home}/ext/amp.lzma"/></not></and></bool>
|
---|
101 | <fail>amp.lzma file not found in the release kit ext directory</fail>
|
---|
102 | </if>
|
---|
103 |
|
---|
104 | <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/></and></bool>
|
---|
105 | <echo>Copying amp.lzma to compontents directory</echo>
|
---|
106 | <copy file="${rk.home}/ext/amp.lzma" todir="${basedir}/components"/>
|
---|
107 | <property name="component.size.amp" value="257 MB"/>
|
---|
108 | </if>
|
---|
109 | <!-- /EXT -->
|
---|
110 |
|
---|
111 | <!-- make the installer descriptors relevant to the current os -->
|
---|
112 | <dcff file="installer/antinstall-config.xml" startTag="<!--\s*if\s*(?!.*${rk.os})[^ ]+\s*-->" endTag="<!--\s*/if\s*-->" />
|
---|
113 | <dcff file="installer/build.xml" startTag="<!--\s*if\s*(?!.*${rk.os})[^ ]+\s*-->" endTag="<!--\s*/if\s*-->" />
|
---|
114 |
|
---|
115 | <!-- EXT -->
|
---|
116 | <if><bool><not><equals arg1="${amp.enabled}" arg2="true"/></not></bool>
|
---|
117 |
|
---|
118 | <dcff file="installer/antinstall-config.xml" startTag="<!-- start amp -->" endTag="<!-- end amp -->" />
|
---|
119 | <dcff file="installer/build.xml" startTag="<!-- start amp -->" endTag="<!-- end amp -->" />
|
---|
120 | </if>
|
---|
121 | <!-- /EXT -->
|
---|
122 | <!-- put the concrete values of things in the config -->
|
---|
123 | <rsr>
|
---|
124 | <fileset dir="${basedir}/installer" includes="*.xml"/>
|
---|
125 | <job pattern="@version@" replacement="${version}${version-extra}"/>
|
---|
126 | <job pattern="@component.size.core@" replacement="${component.size.core}"/>
|
---|
127 | <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
|
---|
128 | <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
|
---|
129 | <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
|
---|
130 | <job pattern="@component.size.httpd@" replacement="${component.size.httpd}"/>
|
---|
131 | <job pattern="@java.min.version@" replacement="${java.min.version}"/>
|
---|
132 | <job pattern="@java.extracted@" replacement="${java.extracted}"/>
|
---|
133 | </rsr>
|
---|
134 |
|
---|
135 | <!-- If this is a FLAX installer then we need to change a few things -->
|
---|
136 | <if><bool><equals arg1="${forward.install.flax}" arg2="true"/></bool>
|
---|
137 | <dcff file="installer/build.xml" startTag="<!-- NO FLAX START -->" endTag="<!-- NO FLAX END -->" />
|
---|
138 | <dcff file="installer/antinstall-config.xml" startTag="<!-- NO FLAX START -->" endTag="<!-- NO FLAX END -->" />
|
---|
139 | <else>
|
---|
140 | <dcff file="installer/build.xml" startTag="<!-- FLAX START -->" endTag="<!-- FLAX END -->" />
|
---|
141 | <dcff file="installer/antinstall-config.xml" startTag="<!-- FLAX START -->" endTag="<!-- FLAX END -->" />
|
---|
142 | </else>
|
---|
143 | </if>
|
---|
144 |
|
---|
145 | <!-- If we don't want GLI/GEMS -->
|
---|
146 | <if><bool><equals arg1="${with.gli.and.gems}" arg2="false" /></bool>
|
---|
147 | <dcff file="installer/build.xml" startTag="<!-- GLI START -->" endTag="<!-- GLI END -->" />
|
---|
148 | </if>
|
---|
149 |
|
---|
150 | <!-- EXT -->
|
---|
151 | <if><bool><equals arg1="${amp.enabled}" arg2="true"/></bool>
|
---|
152 | <rsr>
|
---|
153 | <fileset dir="${basedir}/installer" includes="*.xml"/>
|
---|
154 | <job pattern="@component.size.amp@" replacement="${component.size.amp}"/>
|
---|
155 | </rsr>
|
---|
156 | </if>
|
---|
157 | <!-- /EXT -->
|
---|
158 |
|
---|
159 | <!-- put the concrete values of things in the text -->
|
---|
160 | <rsr>
|
---|
161 | <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
|
---|
162 | <job pattern="@version@" replacement="${version}${version-extra}"/>
|
---|
163 | <job pattern="@version.major@" replacement="${version.major}"/>
|
---|
164 | <job pattern="@java.min.version@" replacement="${java.min.version}"/>
|
---|
165 | <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
|
---|
166 | <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
|
---|
167 | <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
|
---|
168 | <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
|
---|
169 | <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
|
---|
170 | </rsr>
|
---|
171 |
|
---|
172 | <!-- now ready to run "compile-*-installer" targets -->
|
---|
173 |
|
---|
174 | <antcall target="compile-binary-installer"/>
|
---|
175 |
|
---|
176 | </target>
|
---|
177 |
|
---|
178 | <target name="compile-binary-installer">
|
---|
179 |
|
---|
180 | <!-- strip out lines for the cdrom installer -->
|
---|
181 | <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-binary.xml" overwrite="true"/>
|
---|
182 | <dcff file="installer/antinstall-config-binary.xml" startTag=".*<!-- start cdrom -->.*" endTag=".*<!-- end cdrom -->.*" />
|
---|
183 | <copy file="installer/build.xml" tofile="installer/build-binary.xml" overwrite="true"/>
|
---|
184 | <dcff file="installer/build-binary.xml" startTag=".*<!-- start cdrom -->.*" endTag=".*<!-- end cdrom -->.*" />
|
---|
185 |
|
---|
186 | <!-- create insaller jar with ant-installer's ant task -->
|
---|
187 | <installer file="installer/Greenstone-${version}${version-extra}-${os.suffix}.jar"
|
---|
188 | compress="true"
|
---|
189 | extractType="NonExtractor"
|
---|
190 | installConfig="installer/antinstall-config-binary.xml"
|
---|
191 | buildFile="installer/build-binary.xml"
|
---|
192 | antInstallLib="${rk.home}/shared/core/ant-installer/lib"
|
---|
193 | antLib="${ant.home}/lib"
|
---|
194 | validateConfig="true"
|
---|
195 | icons="bluecurve">
|
---|
196 |
|
---|
197 | <zipfileset dir="installer/classes" includes="**/*" />
|
---|
198 | <zipfileset dir="components" includes="*.lzma"/>
|
---|
199 | </installer>
|
---|
200 |
|
---|
201 | </target>
|
---|
202 |
|
---|
203 | <target name="compile-cdrom-installer">
|
---|
204 |
|
---|
205 | <!-- strip out lines for the binary(web) installer -->
|
---|
206 | <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-cdrom.xml"/>
|
---|
207 | <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*<!-- start web -->.*" endTag=".*<!-- end web -->.*" />
|
---|
208 | <copy file="installer/build.xml" tofile="installer/build-cdrom.xml"/>
|
---|
209 | <dcff file="installer/build-cdrom.xml" startTag=".*<!-- start web -->.*" endTag=".*<!-- end web -->.*" />
|
---|
210 |
|
---|
211 | <installer file="installer/cdrom.jar"
|
---|
212 | compress="true"
|
---|
213 | extractType="NonExtractor"
|
---|
214 | installConfig="installer/antinstall-config-cdrom.xml"
|
---|
215 | buildFile="installer/build-cdrom.xml"
|
---|
216 | antInstallLib="${rk.home}/shared/core/ant-installer/lib"
|
---|
217 | antLib="${ant.home}/lib"
|
---|
218 | validateConfig="true"
|
---|
219 | icons="bluecurve">
|
---|
220 |
|
---|
221 | <zipfileset dir="installer/classes" includes="**/*" />
|
---|
222 | </installer>
|
---|
223 |
|
---|
224 | </target>
|
---|
225 |
|
---|
226 | </project>
|
---|