<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>

<installation version="1.0">

    <info>
        <appname>i2p</appname>
        <appversion>2.8.1</appversion>
        <authors>
            <author name="I2P" email="https://geti2p.net/"/>
        </authors>
        <url>https://geti2p.net/</url>
        <javaversion>1.8</javaversion>

        <!-- use pack200 compression, saves about 33%
             see http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/pack200.html
             Unpack fails on java 1.5
             see http://jira.codehaus.org/browse/IZPACK-404
             <pack200 />
         -->

        <!-- adding this element will make the installer attempt to launch itself with administrator permissions,
         -->
        <run-privileged condition="izpack.windowsinstall.vista|izpack.windowsinstall.7"/>
    </info>

    <guiprefs width="590" height="356" resizable="yes">
        <laf name="liquid">
            <os family="unix"/>
        </laf>
        <!-- full names, not iso3 codes -->
        <modifier key="langDisplayType" value="native" />
    </guiprefs>

    <locale>
        <langpack iso3="eng"/>
        <langpack iso3="cat"/>
        <langpack iso3="chn"/>
        <langpack iso3="cze"/>
        <langpack iso3="dan"/>
        <langpack iso3="deu"/>
        <langpack iso3="ell"/>
        <langpack iso3="fa"/>
        <langpack iso3="fin"/>
        <langpack iso3="fra"/>
        <langpack iso3="glg"/>
        <langpack iso3="hun"/>
        <langpack iso3="ind"/>
        <langpack iso3="ita"/>
        <langpack iso3="jpn"/>
        <langpack iso3="kor"/>
        <langpack iso3="mys"/>
        <langpack iso3="ned"/>
        <langpack iso3="nor"/>
        <langpack iso3="pol"/>
        <langpack iso3="por"/>
        <langpack iso3="rom"/>
        <langpack iso3="rus"/>
        <langpack iso3="scg"/>
        <langpack iso3="spa"/>
        <langpack iso3="svk"/>
        <langpack iso3="swe"/>
        <langpack iso3="tur"/>
        <langpack iso3="twn"/>
        <langpack iso3="ukr"/>
    </locale>

    <!--
        The <os> tag can be used to restrict the inclusion into the uninstaller
        to a specific operating system family, architecture or version.
        The inclusion into the installer will be always done.
        Here's a sample :

        <native type="izpack" name="ShellLink.dll">
            <os family="windows"/>
        </native>

        This doesn't appear to be necessary, the dlls don't get put in Uninstaller/uninstaller.jar on linux
     -->
    <native type="izpack" name="ShellLink.dll" />
    <native type="izpack" name="ShellLink_x64.dll" />

    <resources>
        <res id="Installer.image" src="installer/resources/i2plogo.png" />
        <res id="InfoPanel.info" src="installer/resources/readme.license.txt"/>
        <!-- <res id="ProcessPanel.Spec.xml" src="installer/resources/ProcessPanel.Spec.xml"/> -->
        <res id="shortcutSpec.xml" src="installer/resources/shortcutSpec.xml" />
        <res id="XInfoPanel.info" src="installer/resources/start-i2p.txt" />
    </resources>

    <dynamicvariables>
        <variable name="datamodel" value="${SYSTEM_sun_arch_data_model}"/>
    </dynamicvariables>

    <conditions>
        <condition type="variable" id="is64bit">
            <name>datamodel</name>
            <value>64</value>
        </condition>
    </conditions>

    <panels>
        <panel classname="HelloPanel"/>
        <panel classname="InfoPanel"/>
        <panel classname="PacksPanel"><os family="windows" /></panel>
        <panel classname="TargetPanel"/>
        <panel classname="ShortcutPanel"><os family="windows" /></panel>
        <panel classname="InstallPanel"/>
        <!-- <panel classname="ProcessPanel"><os family="windows" /></panel> -->
        <!-- unix|mac doesn't work, displays for windows too -->

        <!--
         Using the condition this way, the panel is shown on everything *but* Windows.
         -->
        <panel classname="XInfoPanel" condition="!izpack.windowsinstall" />
        <panel classname="SimpleFinishPanel"/>
    </panels>

    <packs>
        <pack name="Base" required="yes">
            <description>Base installation files</description>
            <fileset dir="pkg-temp" includes="**/*" targetdir="$INSTALL_PATH"/>
            <!--
              Do variable substitution in these files. See:
              http://www.javalobby.org/forums/thread.jspa?threadID=15967&tstart=0
              and the izpack docs for some guidance.
             -->
            <parsable targetfile="$INSTALL_PATH/wrapper.config" type="plain" />
            <parsable targetfile="$INSTALL_PATH/i2prouter" type="shell"> <os family="unix" /> </parsable>
            <parsable targetfile="$INSTALL_PATH/eepget" type="shell"> <os family="unix" /> </parsable>
            <parsable targetfile="$INSTALL_PATH/eepget.bat" type="shell" os="windows" />
            <parsable targetfile="$INSTALL_PATH/runplain.sh" type="shell"> <os family="unix" /> </parsable>
            <parsable targetfile="$INSTALL_PATH/Start I2P Router.app/Contents/MacOS/i2prouter" type="shell" os="mac" />

            <!-- postinstall stuff for windows -->
            <!-- Wrapper for 32bit Windows JVM -->
            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall"
                keep="true"
                failure="warn"
                condition="!is64bit">
                <os family="windows" />
                <args>
                    <arg value="copy" />
                    <arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" />
                    <arg value="$INSTALL_PATH" />
                </args>
            </executable>

            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall"
                keep="true"
                failure="warn"
                condition="!is64bit">
                <os family="windows" />
                <args>
                    <arg value="copy" />
                    <arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" />
                    <arg value="$INSTALL_PATH\lib" />
                </args>
            </executable>

            <!-- wrapper for 64bit Windows JVM -->
            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall"
                keep="true"
                failure="warn"
                condition="is64bit">
                <os family="windows" />
                <args>
                    <arg value="copy" />
                    <arg value="$INSTALL_PATH\lib\wrapper\win64\I2Psvc.exe" />
                    <arg value="$INSTALL_PATH" />
                </args>
            </executable>

            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall"
                keep="true"
                failure="warn"
                condition="is64bit">
                <os family="windows" />
                <args>
                    <arg value="copy" />
                    <arg value="$INSTALL_PATH\lib\wrapper\win64\wrapper.dll" />
                    <arg value="$INSTALL_PATH\lib" />
                </args>
            </executable>

            <!--
             We still copy the 32 bit version of wrapper.dll (even with a
             64bit jvm) so that if a 32 bit jvm is installed in the future,
             nothing breaks.
            -->
             <executable targetfile="$INSTALL_PATH/utility.jar"
                 type="jar"
                 stage="postinstall"
                 keep="true"
                 failure="warn"
                 condition="is64bit">
                 <os family="windows" />
                 <args>
                     <arg value="copy" />
                     <arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" />
                     <arg value="$INSTALL_PATH\lib\wrapper-windows-x86-32.dll" />
                 </args>
             </executable>

             <!-- workaround for bad default path for wrapper.log in Windows. -->
             <executable targetfile="$INSTALL_PATH/utility.jar"
                 type="jar"
                 stage="postinstall" keep="true">
                 <os family="windows" />
                 <args>
                     <arg value="fixwinpaths" />
                     <arg value="$INSTALL_PATH\wrapper.config" />
                 </args>
             </executable>

             <!-- Now we'll get rid of the UNIX-only stuff -->
             <executable targetfile="$INSTALL_PATH/utility.jar"
                 type="jar"
                 stage="postinstall" keep="true" failure="warn">
                 <os family="windows" />
                 <args>
                     <arg value="delete" />
                     <arg value="$INSTALL_PATH\i2prouter" />
                     <arg value="$INSTALL_PATH\install_i2p_service_unix" />
                     <arg value="$INSTALL_PATH\install-headless.txt" />
                     <arg value="$INSTALL_PATH\runplain.sh" />
                     <arg value="$INSTALL_PATH\osid" />
                     <arg value="$INSTALL_PATH\postinstall.sh" />
                     <arg value="$INSTALL_PATH\uninstall_i2p_service_unix" />
                     <arg value="$INSTALL_PATH\lib\wrapper" />
                     <arg value="$INSTALL_PATH\eepget" />
                     <arg value="$INSTALL_PATH/Start I2P Router.app" />
                     <arg value="$INSTALL_PATH/net.i2p.router.plist.template" />
                     <arg value="$INSTALL_PATH/install_i2p_service_osx.command" />
                     <arg value="$INSTALL_PATH/uninstall_i2p_service_osx.command" />
                     <arg value="$INSTALL_PATH/man" />
                     <arg value="$INSTALL_PATH/locale" />
             <!-- Placeholder for an OSX 'shortcut' to the router console
                    <arg value="$INSTALL_PATH/I2P Router Console.webloc" />
            -->
                </args>
            </executable>

            <!-- change owner to %username% so updates will work -->
            <executable targetfile="$INSTALL_PATH/fixperms.bat" type="bin" stage="postinstall" keep="true" failure="warn"
                condition="!izpack.windowsinstall.xp+!izpack.windowsinstall.2003" >
                <os family="windows" />
                <args>
                    <arg value="$INSTALL_PATH" />
                </args>
            </executable>
            <!-- else delete it -->
            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall" keep="true" failure="warn" condition="izpack.windowsinstall.xp|izpack.windowsinstall.2003">
                <os family="windows" />
                <args>
                    <arg value="delete" />
                    <arg value="$INSTALL_PATH\fixperms.bat" />
                </args>
            </executable>

            <!--
            <executable targetfile="$INSTALL_PATH/utility.jar"
                type="jar"
                stage="postinstall" keep="true" failure="warn">
                <os family="windows" />
                    <args>
                        <arg value="exec" />
                        <arg value="$INSTALL_PATH" />
                        <arg value="$INSTALL_PATH\I2Psvc.exe" />
                        <arg value="-c" />
                        <arg value="$INSTALL_PATH\wrapper.config" />
                    </args>
            </executable>
            -->

             <!--
                  and now we delete the installer utility jar.
                  I moved this out of installer/ because the directory
                  couldn't be deleted while the jar was active and would
                  remain on the system.

                  This, however, works fine.
             -->
             <executable targetfile="$INSTALL_PATH/utility.jar"
                 type="jar"
                 stage="postinstall" keep="false" failure="warn">
                 <os family="windows" />
                 <args>
                     <arg value="delete" />
                     <arg value="$INSTALL_PATH/utility.jar" />
                 </args>
             </executable>

            <!-- postinstall stuff for *nix -->
            <!-- stage=never means chmod a+x -->
            <executable targetfile="$INSTALL_PATH/postinstall.sh" type="bin" stage="never" keep="true" failure="warn"><os family="unix" /></executable>
            <executable targetfile="$INSTALL_PATH/postinstall.sh" type="bin" stage="postinstall" keep="true" failure="warn"><os family="unix" />
                <args><arg value="$INSTALL_PATH" /></args></executable>
            <!--
             Removal of the I2P service in Windows should be done in the base pack
             so that even if a user installed the service manually it will still be
             removed when uninstalling.
            -->
            <executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall" os="windows" />
        </pack>

        <!-- to disable by default, add preselected="no" -->
        <pack name="Windows Service" required="no" preselected="no">
            <description>Automatically start I2P in the background</description>
            <os family="windows" />
            <executable targetfile="$INSTALL_PATH/set_config_dir_for_nt_service.bat" stage="postinstall" failure="warn" keep="true" />
            <executable targetfile="$INSTALL_PATH/install_i2p_service_winnt.bat" stage="postinstall" failure="warn" keep="true" />
            <executable targetfile="$INSTALL_PATH/I2Psvc.exe" stage="postinstall" failure="warn" keep="true">
                <args>
                    <arg value="-t" />
                    <arg value="$INSTALL_PATH\wrapper.config" />
                </args>
            </executable>
        </pack>
    </packs>

</installation>
<!--
vim:fenc=utf-8:ai:si:ts=4:sw=4:et:nu:
-->
