source: installer/install5.xml

Last change on this file was 099cacd, checked in by zzz <zzz@…>, 11 months ago

Installer: Fix -console install for izpack 5 (ticket #2492)
Switch to izpack 5 for non-windows release installer

  • Property mode set to 100644
File size: 17.5 KB
Line 
1<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
2<!--
3   This is for izpack 5.
4   See install.xml for izpack 4.
5-->
6<izpack:installation version="5.0"
7                     xmlns:izpack="http://izpack.org/schema/installation"
8                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9                     xsi:schemaLocation="http://izpack.org/schema/installation http://izpack.org/schema/5.0/izpack-installation-5.0.xsd">
10
11    <info>
12        <appname>i2p</appname>
13        <appversion>0.9.40</appversion>
14        <authors>
15            <author name="I2P" email="https://geti2p.net/"/>
16        </authors>
17        <url>https://geti2p.net/</url>
18        <javaversion>1.7</javaversion>
19
20        <!-- adding this element will make the installer attempt to launch itself with administrator permissions,
21             but see http://www.nabble.com/Classpath-security-issues-on-Vista-td22456230.html
22             which says it isn't sufficient:
23
24                Just to let you know that I managed to identify and resolve the problem (in
25                case anyone else has it).  The default installation directory for Vista is
26                under "Program Files" which is a "special" directory which can only be
27                written to (create sub-directories) by administrators.  However, stupid
28                Vista downgrades an administrator to a normal user when the program is run
29                via the application shortcut menu.  As you suggested, I added a script which
30                runs ICACLS which resolved the problem, i.e.
31
32                icacls %1 /grant Users:F /T > priv.log
33
34                The command needs to be run as a Process rather than as an executable tag in
35                order to pass $INSTALL_PATH as a parameter.
36         -->
37        <run-privileged condition="izpack.windowsinstall.vista|izpack.windowsinstall.7"/>
38    </info>
39
40    <guiprefs width="590" height="356" resizable="yes">
41<!--
42Not in 5.1.2, pick another one
43https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491730/GUI+Preferences
44        <laf name="liquid">
45            <os family="unix"/>
46        </laf>
47-->
48        <!-- full names, not iso3 codes -->
49        <modifier key="langDisplayType" value="native" />
50    </guiprefs>
51
52    <locale>
53        <langpack iso3="eng"/>
54        <langpack iso3="bra"/>
55        <langpack iso3="cat"/>
56        <langpack iso3="ces"/>
57        <langpack iso3="chn"/>
58        <langpack iso3="dan"/>
59        <langpack iso3="deu"/>
60        <langpack iso3="ell"/>
61        <langpack iso3="fin"/>
62        <langpack iso3="fra"/>
63        <langpack iso3="hun"/>
64        <langpack iso3="idn"/>
65        <langpack iso3="ita"/>
66        <langpack iso3="jpn"/>
67        <langpack iso3="kor"/>
68        <langpack iso3="msa"/>
69        <langpack iso3="nld"/>
70        <langpack iso3="nor"/>
71        <langpack iso3="pol"/>
72        <langpack iso3="prt"/>
73        <langpack iso3="ron"/>
74        <langpack iso3="rus"/>
75        <langpack iso3="slk"/>
76        <langpack iso3="spa"/>
77        <langpack iso3="srp"/>
78        <langpack iso3="swe"/>
79        <langpack iso3="tur"/>
80        <langpack iso3="twn"/>
81        <langpack iso3="ukr"/>
82<!--
83"WARNING: No locale for:"
84        <langpack iso3="eus"/>
85        <langpack iso3="fa"/>
86        <langpack iso3="glg"/>
87-->
88    </locale>
89
90    <!--
91        The <os> tag can be used to restrict the inclusion into the uninstaller
92        to a specific operating system family, architecture or version.
93        The inclusion into the installer will be always done.
94        Here's a sample :
95
96        <native type="izpack" name="ShellLink.dll">
97            <os family="windows"/>
98        </native>
99
100        This doesn't appear to be necessary, the dlls don't get put in Uninstaller/uninstaller.jar on linux
101     -->
102    <natives>
103        <native type="izpack" name="ShellLink.dll" />
104        <native type="izpack" name="ShellLink_x64.dll" />
105      <!--
106        https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491532/Advanced+Features
107        <native type="izpack" name="WinSetupAPI.dll" />
108        <native type="izpack" name="WinSetupAPI_x64.dll" />
109        https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491676/RegistryInstallerListener+RegistryUninstallerListener
110        <native type="3rdparty" name="COIOSHelper.dll" />
111        <native type="3rdparty" name="COIOSHelper_x64.dll" />
112       -->
113    </natives>
114
115    <resources>
116        <res id="Installer.image" src="installer/resources/i2plogo.png" />
117        <res id="InfoPanel.info" src="installer/resources/readme.license.txt"/>
118        <!-- <res id="ProcessPanel.Spec.xml" src="installer/resources/ProcessPanel.Spec.xml"/> -->
119        <res id="shortcutSpec.xml" src="installer/resources/shortcutSpec.xml" />
120        <res id="XInfoPanel.info" src="installer/resources/start-i2p.txt" />
121    </resources>
122
123    <variables>
124        <!-- desktop shortcuts enabled by default in ShortcutPanel -->
125        <variable name="DesktopShortcutCheckboxEnabled" value="true" />
126    </variables>
127
128    <dynamicvariables>
129        <variable name="datamodel" value="${SYSTEM[sun.arch.data.model]}"/>
130    </dynamicvariables>
131
132    <conditions>
133        <condition type="variable" id="is64bit">
134            <name>datamodel</name>
135            <value>64</value>
136        </condition>
137    </conditions>
138
139    <!-- XInfoConsolePanel -->
140    <jar src="installer/lib/izpack5/patches/java/build/izpack-i2p.jar" />
141
142    <panels>
143        <panel classname="HelloPanel"/>
144        <panel classname="InfoPanel"/>
145        <panel classname="TargetPanel"/>
146        <!-- In 5.1.2, PacksPanel will NPE at install time if before TargetPanel -->
147        <panel classname="PacksPanel"><os family="windows" /></panel>
148        <panel classname="InstallPanel"/>
149        <!-- In 5.1.2, ShortcutPanel must be after InstallPanel, so the .ico files will be there,
150             unless <lateShortcutInstall/> is set in shorcutSpec.xml.
151             If you don't do this right, the shortcuts won't have our icons.
152         -->
153        <panel classname="ShortcutPanel"><os family="windows" /></panel>
154        <!--
155         Using the condition this way, the panel is shown on everything *but* Windows.
156         Fails in console mode: Installer says:
157           No console mode helper found for class com.izforge.izpack.panels.xinfo.XInfoPanel, panel type will be skipped in console mode installation
158           No automation helper found for class com.izforge.izpack.panels.xinfo.XInfoPanel, panel type will be skipped in automated installation
159         But isn't actually skipped when installing with -console:
160           SEVERE: com.izforge.izpack.api.exception.IzPackException: Console implementation not found for panel: com.izforge.izpack.panels.xinfo.XInfoPanel
161         -->
162        <panel classname="XInfoPanel" condition="!izpack.windowsinstall" />
163        <panel classname="SimpleFinishPanel"/>
164    </panels>
165
166    <packs>
167        <pack name="Base" required="yes">
168            <description>Base installation files</description>
169            <!-- non-jars -->
170            <fileset dir="pkg-temp" excludes="**/*.jar" targetdir="$INSTALL_PATH"/>
171            <!-- pack200 jars -->
172            <fileset dir="pkg-temp" includes="**/*.jar"
173                     excludes="lib/commons-logging.jar lib/jasper-compiler.jar lib/jetty-java5-threadpool.jar lib/jetty-sslengine.jar lib/jbigi.jar"
174                     targetdir="$INSTALL_PATH">
175                <pack200/>
176            </fileset>
177            <!-- non-pack200 jars -->
178            <fileset dir="pkg-temp"
179                     includes="lib/commons-logging.jar lib/jasper-compiler.jar lib/jetty-java5-threadpool.jar lib/jetty-sslengine.jar lib/jbigi.jar"
180                     targetdir="$INSTALL_PATH">
181            </fileset>
182            <!--
183              Do variable substitution in these files. See:
184              http://www.javalobby.org/forums/thread.jspa?threadID=15967&tstart=0
185              and the izpack docs for some guidance.
186             -->
187            <parsable targetfile="$INSTALL_PATH/wrapper.config" type="plain" />
188            <parsable targetfile="$INSTALL_PATH/i2prouter" type="shell"> <os family="unix" /> </parsable>
189            <parsable targetfile="$INSTALL_PATH/eepget" type="shell"> <os family="unix" /> </parsable>
190            <parsable targetfile="$INSTALL_PATH/eepget.bat" type="shell"><os family="windows" /></parsable>
191            <parsable targetfile="$INSTALL_PATH/runplain.sh" type="shell"> <os family="unix" /> </parsable>
192            <parsable targetfile="$INSTALL_PATH/Start I2P Router.app/Contents/MacOS/i2prouter" type="shell"><os family="mac" /></parsable>
193
194            <!-- postinstall stuff for windows -->
195            <!-- Wrapper for 32bit Windows JVM -->
196            <executable targetfile="$INSTALL_PATH/utility.jar"
197                type="jar"
198                class="net.i2p.installer.Main"
199                stage="postinstall"
200                keep="true"
201                failure="warn"
202                condition="!is64bit">
203                <os family="windows" />
204                <args>
205                    <arg value="copy" />
206                    <arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" />
207                    <arg value="$INSTALL_PATH" />
208                </args>
209            </executable>
210
211            <executable targetfile="$INSTALL_PATH/utility.jar"
212                type="jar"
213                class="net.i2p.installer.Main"
214                stage="postinstall"
215                keep="true"
216                failure="warn"
217                condition="!is64bit">
218                <os family="windows" />
219                <args>
220                    <arg value="copy" />
221                    <arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" />
222                    <arg value="$INSTALL_PATH\lib" />
223                </args>
224            </executable>
225
226            <!-- wrapper for 64bit Windows JVM -->
227            <executable targetfile="$INSTALL_PATH/utility.jar"
228                type="jar"
229                class="net.i2p.installer.Main"
230                stage="postinstall"
231                keep="true"
232                failure="warn"
233                condition="is64bit">
234                <os family="windows" />
235                <args>
236                    <arg value="copy" />
237                    <arg value="$INSTALL_PATH\lib\wrapper\win64\I2Psvc.exe" />
238                    <arg value="$INSTALL_PATH" />
239                </args>
240            </executable>
241
242            <executable targetfile="$INSTALL_PATH/utility.jar"
243                type="jar"
244                class="net.i2p.installer.Main"
245                stage="postinstall"
246                keep="true"
247                failure="warn"
248                condition="is64bit">
249                <os family="windows" />
250                <args>
251                    <arg value="copy" />
252                    <arg value="$INSTALL_PATH\lib\wrapper\win64\wrapper.dll" />
253                    <arg value="$INSTALL_PATH\lib" />
254                </args>
255            </executable>
256
257            <!--
258             We still copy the 32 bit version of wrapper.dll (even with a
259             64bit jvm) so that if a 32 bit jvm is installed in the future,
260             nothing breaks.
261            -->
262             <executable targetfile="$INSTALL_PATH/utility.jar"
263                 type="jar"
264                 class="net.i2p.installer.Main"
265                 stage="postinstall"
266                 keep="true"
267                 failure="warn"
268                 condition="is64bit">
269                 <os family="windows" />
270                 <args>
271                     <arg value="copy" />
272                     <arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" />
273                     <arg value="$INSTALL_PATH\lib\wrapper-windows-x86-32.dll" />
274                 </args>
275             </executable>
276
277             <!-- workaround for bad default path for wrapper.log in Windows. -->
278             <executable targetfile="$INSTALL_PATH/utility.jar"
279                 type="jar"
280                 class="net.i2p.installer.Main"
281                 stage="postinstall" keep="true">
282                 <os family="windows" />
283                 <args>
284                     <arg value="fixwinpaths" />
285                     <arg value="$INSTALL_PATH\wrapper.config" />
286                 </args>
287             </executable>
288
289             <!-- Now we'll get rid of the UNIX-only stuff -->
290             <executable targetfile="$INSTALL_PATH/utility.jar"
291                 type="jar"
292                 class="net.i2p.installer.Main"
293                 stage="postinstall" keep="true" failure="warn">
294                 <os family="windows" />
295                 <args>
296                     <arg value="delete" />
297                     <arg value="$INSTALL_PATH\i2prouter" />
298                     <arg value="$INSTALL_PATH\install_i2p_service_unix" />
299                     <arg value="$INSTALL_PATH\install-headless.txt" />
300                     <arg value="$INSTALL_PATH\runplain.sh" />
301                     <arg value="$INSTALL_PATH\osid" />
302                     <arg value="$INSTALL_PATH\postinstall.sh" />
303                     <arg value="$INSTALL_PATH\uninstall_i2p_service_unix" />
304                     <arg value="$INSTALL_PATH\lib\wrapper" />
305                     <arg value="$INSTALL_PATH\eepget" />
306                     <arg value="$INSTALL_PATH/Start I2P Router.app" />
307                     <arg value="$INSTALL_PATH/net.i2p.router.plist.template" />
308                     <arg value="$INSTALL_PATH/install_i2p_service_osx.command" />
309                     <arg value="$INSTALL_PATH/uninstall_i2p_service_osx.command" />
310                     <arg value="$INSTALL_PATH/man" />
311                     <arg value="$INSTALL_PATH/locale" />
312             <!-- Placeholder for an OSX 'shortcut' to the router console
313                    <arg value="$INSTALL_PATH/I2P Router Console.webloc" />
314            -->
315                </args>
316            </executable>
317
318            <!-- workaround for vista permission problems - see comments above -->
319            <executable targetfile="$INSTALL_PATH/fixperms.bat" type="bin" stage="postinstall" keep="true" failure="warn"
320                condition="!izpack.windowsinstall.xp+!izpack.windowsinstall.2003" >
321                <os family="windows" />
322                <args>
323                    <arg value="$INSTALL_PATH" />
324                </args>
325            </executable>
326            <!-- else delete it -->
327            <executable targetfile="$INSTALL_PATH/utility.jar"
328                type="jar"
329                class="net.i2p.installer.Main"
330                stage="postinstall" keep="true" failure="warn" condition="izpack.windowsinstall.xp|izpack.windowsinstall.2003">
331                <os family="windows" />
332                <args>
333                    <arg value="delete" />
334                    <arg value="$INSTALL_PATH\fixperms.bat" />
335                </args>
336            </executable>
337
338            <!--
339            <executable targetfile="$INSTALL_PATH/utility.jar"
340                type="jar"
341                class="net.i2p.installer.Main"
342                stage="postinstall" keep="true" failure="warn">
343                <os family="windows" />
344                    <args>
345                        <arg value="exec" />
346                        <arg value="$INSTALL_PATH" />
347                        <arg value="$INSTALL_PATH\I2Psvc.exe" />
348                        <arg value="-c" />
349                        <arg value="$INSTALL_PATH\wrapper.config" />
350                    </args>
351            </executable>
352            -->
353
354             <!--
355                  and now we delete the installer utility jar.
356                  I moved this out of installer/ because the directory
357                  couldn't be deleted while the jar was active and would
358                  remain on the system.
359
360                  This, however, works fine.
361             -->
362             <executable targetfile="$INSTALL_PATH/utility.jar"
363                 type="jar"
364                 class="net.i2p.installer.Main"
365                 stage="postinstall" keep="false" failure="warn">
366                 <os family="windows" />
367                 <args>
368                     <arg value="delete" />
369                     <arg value="$INSTALL_PATH/utility.jar" />
370                 </args>
371             </executable>
372
373            <!-- postinstall stuff for *nix -->
374            <!-- stage=never means chmod a+x -->
375            <executable targetfile="$INSTALL_PATH/postinstall.sh" type="bin" stage="never" keep="true" failure="warn"><os family="unix" /></executable>
376            <executable targetfile="$INSTALL_PATH/postinstall.sh" type="bin" stage="postinstall" keep="true" failure="warn"><os family="unix" />
377                <args><arg value="$INSTALL_PATH" /></args></executable>
378            <!--
379             Removal of the I2P service in Windows should be done in the base pack
380             so that even if a user installed the service manually it will still be
381             removed when uninstalling.
382            -->
383            <executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall"><os family="windows" /></executable>
384        </pack>
385
386        <!-- to disable by default, add preselected="no" -->
387        <pack name="Windows Service" required="no" preselected="no">
388            <description>Automatically start I2P in the background</description>
389            <os family="windows" />
390            <executable targetfile="$INSTALL_PATH/set_config_dir_for_nt_service.bat" stage="postinstall" failure="warn" keep="true" />
391            <executable targetfile="$INSTALL_PATH/install_i2p_service_winnt.bat" stage="postinstall" failure="warn" keep="true" />
392            <executable targetfile="$INSTALL_PATH/I2Psvc.exe" stage="postinstall" failure="warn" keep="true">
393                <args>
394                    <arg value="-t" />
395                    <arg value="$INSTALL_PATH\wrapper.config" />
396                </args>
397            </executable>
398        </pack>
399    </packs>
400
401</izpack:installation>
Note: See TracBrowser for help on using the repository browser.