forked from I2P_Developers/i2p.i2p
* windows installer fixes / improvements
- move deprecated installer-only classes (Exec, Delete, and Copy) from i2p.jar into installer/ - replace installer/resources/fixpaths.cmd with an improved method in java - combine the installer-only utility classes into a single jar and call the classes from within izpack
This commit is contained in:
39
build.xml
39
build.xml
@@ -620,6 +620,7 @@
|
|||||||
<delete dir="debian/repo" />
|
<delete dir="debian/repo" />
|
||||||
<ant dir="core/java/" target="distclean" />
|
<ant dir="core/java/" target="distclean" />
|
||||||
<ant dir="router/java/" target="distclean" />
|
<ant dir="router/java/" target="distclean" />
|
||||||
|
<ant dir="installer/java" target="distclean" />
|
||||||
<ant dir="apps/ministreaming/java/" target="distclean" />
|
<ant dir="apps/ministreaming/java/" target="distclean" />
|
||||||
<ant dir="apps/streaming/java/" target="distclean" />
|
<ant dir="apps/streaming/java/" target="distclean" />
|
||||||
<ant dir="apps/i2ptunnel/java/" target="distclean" />
|
<ant dir="apps/i2ptunnel/java/" target="distclean" />
|
||||||
@@ -802,7 +803,6 @@
|
|||||||
<copy file="installer/resources/eepget.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/eepget.bat" todir="pkg-temp/" />
|
||||||
<copy file="installer/resources/i2prouter.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/i2prouter.bat" todir="pkg-temp/" />
|
||||||
<copy file="installer/resources/fixperms.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/fixperms.bat" todir="pkg-temp/" />
|
||||||
<copy file="installer/resources/fixpaths.cmd" todir="pkg-temp/" />
|
|
||||||
<copy file="installer/resources/install_i2p_service_winnt.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/install_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||||
<copy file="installer/resources/set_config_dir_for_nt_service.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/set_config_dir_for_nt_service.bat" todir="pkg-temp/" />
|
||||||
<copy file="installer/resources/uninstall_i2p_service_winnt.bat" todir="pkg-temp/" />
|
<copy file="installer/resources/uninstall_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||||
@@ -1154,40 +1154,11 @@
|
|||||||
basedir="${basedir}/installer/lib/izpack/patches" />
|
basedir="${basedir}/installer/lib/izpack/patches" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="utility-jars" depends="buildCore" >
|
<target name="buildUtilityJar" depends="buildCore">
|
||||||
<mkdir dir="pkg-temp/installer" />
|
<ant dir="installer/java" target="build" />
|
||||||
<!-- set if unset -->
|
|
||||||
<property name="workspace.changes.util.tr" value="" />
|
|
||||||
<jar destfile="./pkg-temp/installer/copy.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Copy.class net/i2p/util/FileUtil.class">
|
|
||||||
<manifest>
|
|
||||||
<attribute name="Main-Class" value="net.i2p.util.Copy" />
|
|
||||||
<attribute name="Built-By" value="${build.built-by}" />
|
|
||||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
|
||||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
|
||||||
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
|
||||||
</manifest>
|
|
||||||
</jar>
|
|
||||||
<jar destfile="./pkg-temp/installer/delete.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Delete.class net/i2p/util/FileUtil.class">
|
|
||||||
<manifest>
|
|
||||||
<attribute name="Main-Class" value="net.i2p.util.Delete" />
|
|
||||||
<attribute name="Built-By" value="${build.built-by}" />
|
|
||||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
|
||||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
|
||||||
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
|
||||||
</manifest>
|
|
||||||
</jar>
|
|
||||||
<jar destfile="./pkg-temp/installer/exec.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Exec.class">
|
|
||||||
<manifest>
|
|
||||||
<attribute name="Main-Class" value="net.i2p.util.Exec" />
|
|
||||||
<attribute name="Built-By" value="${build.built-by}" />
|
|
||||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
|
||||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
|
||||||
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
|
||||||
</manifest>
|
|
||||||
</jar>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="installer" depends="preppkg, buildProperties, util-list-changes, izpack-patches, utility-jars" >
|
<target name="installer" depends="preppkg, buildProperties, util-list-changes, izpack-patches, buildUtilityJar" >
|
||||||
<!--
|
<!--
|
||||||
Force 1.5 pack200 output
|
Force 1.5 pack200 output
|
||||||
Doesnt work!
|
Doesnt work!
|
||||||
@@ -1290,7 +1261,7 @@
|
|||||||
<delete dir="pkg-temp" includes="eepget i2prouter INSTALL-headless.txt osid postinstall.sh runplain.sh" />
|
<delete dir="pkg-temp" includes="eepget i2prouter INSTALL-headless.txt osid postinstall.sh runplain.sh" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="installer-windows" depends="clean, preppkg-windows-only, util-list-changes, izpack-patches, utility-jars" >
|
<target name="installer-windows" depends="clean, preppkg-windows-only, util-list-changes, izpack-patches, buildUtilityJar" >
|
||||||
<fixcrlf srcdir="pkg-temp" includes="*.config *.bat *.cmd **/*.xml **/*.properties **/*.txt scripts/*" encoding="utf8" eol="crlf"/>
|
<fixcrlf srcdir="pkg-temp" includes="*.config *.bat *.cmd **/*.xml **/*.properties **/*.txt scripts/*" encoding="utf8" eol="crlf"/>
|
||||||
<izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" />
|
<izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" />
|
||||||
<ant target="installerexe" />
|
<ant target="installerexe" />
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
package net.i2p.util;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Usage: Delete name
|
|
||||||
*
|
|
||||||
* @deprecated only for use by installer, to be removed from i2p.jar, use FileUtil.rmdir()
|
|
||||||
*/
|
|
||||||
public class Delete {
|
|
||||||
public static void main(String args[]) {
|
|
||||||
FileUtil.rmdir(args[0], false);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -98,8 +98,8 @@
|
|||||||
<res id="Installer.image" src="installer/resources/i2plogo.png" />
|
<res id="Installer.image" src="installer/resources/i2plogo.png" />
|
||||||
<res id="InfoPanel.info" src="installer/resources/readme.license.txt"/>
|
<res id="InfoPanel.info" src="installer/resources/readme.license.txt"/>
|
||||||
<!-- <res id="ProcessPanel.Spec.xml" src="installer/resources/ProcessPanel.Spec.xml"/> -->
|
<!-- <res id="ProcessPanel.Spec.xml" src="installer/resources/ProcessPanel.Spec.xml"/> -->
|
||||||
<res id="shortcutSpec.xml" src="installer/resources/shortcutSpec.xml" />
|
<res id="shortcutSpec.xml" src="installer/resources/shortcutSpec.xml" />
|
||||||
<res id="XInfoPanel.info" src="installer/resources/start-i2p.txt" />
|
<res id="XInfoPanel.info" src="installer/resources/start-i2p.txt" />
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
<panels>
|
<panels>
|
||||||
@@ -112,15 +112,12 @@
|
|||||||
<!-- <panel classname="ProcessPanel"><os family="windows" /></panel> -->
|
<!-- <panel classname="ProcessPanel"><os family="windows" /></panel> -->
|
||||||
<!-- unix|mac doesn't work, displays for windows too -->
|
<!-- unix|mac doesn't work, displays for windows too -->
|
||||||
|
|
||||||
<!-- Unfortunately unix is used for osx as well, so the XInfoPanel was shown *twice*
|
<!--
|
||||||
on OSX. Using the condition this way, the panel is shown on everything
|
Using the condition this way, the panel is shown on everything *but* Windows.
|
||||||
*but* Windows.
|
-->
|
||||||
-->
|
<panel classname="XInfoPanel" condition="!izpack.windowsinstall" />
|
||||||
<panel classname="XInfoPanel" condition="!izpack.windowsinstall" />
|
<panel classname="SimpleFinishPanel"/>
|
||||||
<!--<panel classname="XInfoPanel" ><os family="unix" /></panel> -->
|
</panels>
|
||||||
<!--<panel classname="XInfoPanel" ><os family="mac" /></panel> -->
|
|
||||||
<panel classname="SimpleFinishPanel"/>
|
|
||||||
</panels>
|
|
||||||
|
|
||||||
<packs>
|
<packs>
|
||||||
<pack name="Base" required="yes">
|
<pack name="Base" required="yes">
|
||||||
@@ -138,88 +135,170 @@
|
|||||||
<parsable targetfile="$INSTALL_PATH/runplain.sh" type="shell"> <os family="unix" /> </parsable>
|
<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" />
|
<parsable targetfile="$INSTALL_PATH/Start I2P Router.app/Contents/MacOS/i2prouter" type="shell" os="mac" />
|
||||||
|
|
||||||
<conditions>
|
<conditions>
|
||||||
<condition type="variable" id="is64bit">
|
<condition type="variable" id="is64bit">
|
||||||
<name>SYSTEM_sun_arch_data_model</name>
|
<name>SYSTEM_sun_arch_data_model</name>
|
||||||
<value>64</value>
|
<value>64</value>
|
||||||
</condition>
|
</condition>
|
||||||
</conditions>
|
</conditions>
|
||||||
|
|
||||||
<!-- postinstall stuff for windows -->
|
<!-- postinstall stuff for windows -->
|
||||||
<!-- Wrapper for 32bit Windows JVM -->
|
<!-- Wrapper for 32bit Windows JVM -->
|
||||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
condition="!is64bit"> <os family="windows" />
|
type="jar" class="net.i2p.installer.Copy"
|
||||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" /><arg value="$INSTALL_PATH" /></args></executable>
|
stage="postinstall"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
keep="true"
|
||||||
condition="!is64bit"> <os family="windows" />
|
failure="warn"
|
||||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" /><arg value="$INSTALL_PATH\lib" /></args></executable>
|
condition="!is64bit">
|
||||||
<!-- wrapper for 64bit Windows JVM -->
|
<os family="windows" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
<args>
|
||||||
condition="is64bit" > <os family="windows" />
|
<arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" />
|
||||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win64\I2Psvc.exe" /><arg value="$INSTALL_PATH" /></args></executable>
|
<arg value="$INSTALL_PATH" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
</args>
|
||||||
condition="is64bit" > <os family="windows" />
|
</executable>
|
||||||
<args><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
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
64bit jvm) so that if a 32 bit jvm is installed in the
|
type="jar" class="net.i2p.installer.Copy"
|
||||||
future, nothing breaks.
|
stage="postinstall"
|
||||||
-->
|
keep="true"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
failure="warn"
|
||||||
condition="is64bit" > <os family="windows" />
|
condition="!is64bit">
|
||||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" /><arg value="$INSTALL_PATH\lib\wrapper-windows-x86-32.dll" /></args></executable>
|
<os family="windows" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<args>
|
||||||
<args><arg value="$INSTALL_PATH\i2prouter" /></args></executable>
|
<arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<arg value="$INSTALL_PATH\lib" />
|
||||||
<args><arg value="$INSTALL_PATH\install_i2p_service_unix" /></args></executable>
|
</args>
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
</executable>
|
||||||
<args><arg value="$INSTALL_PATH\install-headless.txt" /></args></executable>
|
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<!-- wrapper for 64bit Windows JVM -->
|
||||||
<args><arg value="$INSTALL_PATH\runplain.sh" /></args></executable>
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
type="jar" class="net.i2p.installer.Copy"
|
||||||
<args><arg value="$INSTALL_PATH\osid" /></args></executable>
|
stage="postinstall"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
keep="true"
|
||||||
<args><arg value="$INSTALL_PATH\postinstall.sh" /></args></executable>
|
failure="warn"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
condition="is64bit">
|
||||||
<args><arg value="$INSTALL_PATH\uninstall_i2p_service_unix" /></args></executable>
|
<os family="windows" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<args>
|
||||||
<args><arg value="$INSTALL_PATH\lib\wrapper" /></args></executable>
|
<arg value="$INSTALL_PATH\lib\wrapper\win64\I2Psvc.exe" />
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<arg value="$INSTALL_PATH" />
|
||||||
<args><arg value="$INSTALL_PATH\eepget" /></args></executable>
|
</args>
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
</executable>
|
||||||
<args><arg value="$INSTALL_PATH/Start I2P Router.app" /></args></executable>
|
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
<args><arg value="$INSTALL_PATH/net.i2p.router.plist.template" /></args></executable>
|
type="jar" class="net.i2p.installer.Copy"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
stage="postinstall"
|
||||||
<args><arg value="$INSTALL_PATH/install_i2p_service_osx.command" /></args></executable>
|
keep="true"
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
failure="warn"
|
||||||
<args><arg value="$INSTALL_PATH/uninstall_i2p_service_osx.command" /></args></executable>
|
condition="is64bit">
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<os family="windows" />
|
||||||
<args><arg value="$INSTALL_PATH/man" /></args></executable>
|
<args>
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<arg value="$INSTALL_PATH\lib\wrapper\win64\wrapper.dll" />
|
||||||
<args><arg value="$INSTALL_PATH/locale" /></args></executable>
|
<arg value="$INSTALL_PATH\lib" />
|
||||||
<!-- Placeholder for an OSX 'shortcut' to the router console
|
</args>
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
</executable>
|
||||||
<args><arg value="$INSTALL_PATH/I2P Router Console.webloc" /></args></executable>
|
|
||||||
-->
|
<!--
|
||||||
<!-- workaround for bad default path for wrapper.log in Windows. -->
|
We still copy the 32 bit version of wrapper.dll (even with a
|
||||||
<executable targetfile="$INSTALL_PATH/fixpaths.cmd" type="bin" stage="postinstall" keep="false"> <os family="windows" />
|
64bit jvm) so that if a 32 bit jvm is installed in the future,
|
||||||
|
nothing breaks.
|
||||||
|
-->
|
||||||
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
|
type="jar" class="net.i2p.installer.Copy"
|
||||||
|
stage="postinstall"
|
||||||
|
keep="true"
|
||||||
|
failure="warn"
|
||||||
|
condition="is64bit">
|
||||||
|
<os family="windows" />
|
||||||
|
<args>
|
||||||
|
<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" class="net.i2p.installer.FixWinPaths"
|
||||||
|
stage="postinstall" keep="true">
|
||||||
|
<os family="windows" />
|
||||||
|
<args>
|
||||||
|
<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" class="net.i2p.installer.Delete"
|
||||||
|
stage="postinstall" keep="true" failure="warn">
|
||||||
|
<os family="windows" />
|
||||||
|
<args>
|
||||||
|
<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>
|
</executable>
|
||||||
|
|
||||||
<!-- workaround for vista permission problems - see comments above -->
|
<!-- workaround for vista permission problems - see comments above -->
|
||||||
<executable targetfile="$INSTALL_PATH/fixperms.bat" type="bin" stage="postinstall" keep="true" failure="warn"
|
<executable targetfile="$INSTALL_PATH/fixperms.bat" type="bin" stage="postinstall" keep="true" failure="warn"
|
||||||
condition="izpack.windowsinstall.vista|izpack.windowsinstall.7" >
|
condition="izpack.windowsinstall.vista|izpack.windowsinstall.7" >
|
||||||
<args><arg value="$INSTALL_PATH" /></args>
|
<args>
|
||||||
|
<arg value="$INSTALL_PATH" />
|
||||||
|
</args>
|
||||||
</executable>
|
</executable>
|
||||||
<!-- else delete it -->
|
<!-- else delete it -->
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
condition="izpack.windowsinstall.xp|izpack.windowsinstall.2003" >
|
type="jar" class="net.i2p.installer.Delete"
|
||||||
<args><arg value="$INSTALL_PATH\fixperms.bat" /></args>
|
stage="postinstall" keep="true" failure="warn" condition="izpack.windowsinstall.xp|izpack.windowsinstall.2003">
|
||||||
|
<args>
|
||||||
|
<arg value="$INSTALL_PATH\fixperms.bat" />
|
||||||
|
</args>
|
||||||
</executable>
|
</executable>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<executable targetfile="$INSTALL_PATH/installer/exec.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
<executable targetfile="$INSTALL_PATH/utility.jar"
|
||||||
<args><arg value="$INSTALL_PATH" /><arg value="$INSTALL_PATH\I2Psvc.exe" /><arg value="-c" /><arg value="$INSTALL_PATH\wrapper.config" /></args></executable>
|
type="jar" class="net.i2p.installer.Exec"
|
||||||
|
stage="postinstall" keep="true" failure="warn">
|
||||||
|
<os family="windows" />
|
||||||
|
<args>
|
||||||
|
<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" class="net.i2p.installer.Delete"
|
||||||
|
stage="postinstall" keep="false" failure="warn">
|
||||||
|
<os family="windows" />
|
||||||
|
<args>
|
||||||
|
<arg value="$INSTALL_PATH/utility.jar" />
|
||||||
|
</args>
|
||||||
|
</executable>
|
||||||
|
|
||||||
<!-- postinstall stuff for *nix -->
|
<!-- postinstall stuff for *nix -->
|
||||||
<!-- stage=never means chmod a+x -->
|
<!-- 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="never" keep="true" failure="warn"><os family="unix" /></executable>
|
||||||
@@ -231,10 +310,6 @@
|
|||||||
removed when uninstalling.
|
removed when uninstalling.
|
||||||
-->
|
-->
|
||||||
<executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall" os="windows" />
|
<executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall" os="windows" />
|
||||||
|
|
||||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="false" failure="warn"> <os family="windows" />
|
|
||||||
<args><arg value="$INSTALL_PATH/installer/" /></args></executable>
|
|
||||||
|
|
||||||
</pack>
|
</pack>
|
||||||
|
|
||||||
<!-- to disable by default, add preselected="no" -->
|
<!-- to disable by default, add preselected="no" -->
|
||||||
@@ -253,3 +328,6 @@
|
|||||||
</packs>
|
</packs>
|
||||||
|
|
||||||
</installation>
|
</installation>
|
||||||
|
<!--
|
||||||
|
vim:fenc=utf-8:ai:si:ts=4:sw=4:et:nu:
|
||||||
|
-->
|
||||||
|
72
installer/java/build.xml
Normal file
72
installer/java/build.xml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project basedir="." default="all" name="utility_jars">
|
||||||
|
<target name="all" depends="clean, build" />
|
||||||
|
<target name="build" depends="builddep, jar" />
|
||||||
|
<target name="builddep">
|
||||||
|
<!-- noop, since the core doesnt depend on anything -->
|
||||||
|
</target>
|
||||||
|
<condition property="depend.available">
|
||||||
|
<typefound name="depend" />
|
||||||
|
</condition>
|
||||||
|
<target name="depend" if="depend.available">
|
||||||
|
<depend
|
||||||
|
cache="../../build"
|
||||||
|
srcdir="./src"
|
||||||
|
destdir="./build/obj" >
|
||||||
|
</depend>
|
||||||
|
</target>
|
||||||
|
<!-- only used if not set by a higher build.xml -->
|
||||||
|
<property name="javac.compilerargs" value="" />
|
||||||
|
<property name="javac.classpath" value="" />
|
||||||
|
<target name="compile" depends="depend">
|
||||||
|
<mkdir dir="./build" />
|
||||||
|
<mkdir dir="./build/obj" />
|
||||||
|
<javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on"
|
||||||
|
includeAntRuntime="false"
|
||||||
|
destdir="./build/obj" classpath="${javac.classpath}:../../core/java/build/obj" >
|
||||||
|
<compilerarg line="${javac.compilerargs}" />
|
||||||
|
</javac>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="listChangedFiles" if="mtn.available" >
|
||||||
|
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||||
|
<arg value="list" />
|
||||||
|
<arg value="changed" />
|
||||||
|
<arg value="." />
|
||||||
|
</exec>
|
||||||
|
<!-- \n in an attribute value generates an invalid manifest -->
|
||||||
|
<exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||||
|
<arg value="-s" />
|
||||||
|
<arg value="[:space:]" />
|
||||||
|
<arg value="," />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="jar" depends="compile, listChangedFiles">
|
||||||
|
<!-- set if unset -->
|
||||||
|
<property name="workspace.changes.util.tr" value="" />
|
||||||
|
<jar destfile="../../pkg-temp/utility.jar">
|
||||||
|
<fileset dir="../../core/java/build/obj" includes="**/FileUtil.class"/>
|
||||||
|
<fileset dir="./build/obj" includes="**" />
|
||||||
|
<manifest>
|
||||||
|
<attribute name="Built-By" value="${build.built-by}" />
|
||||||
|
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||||
|
<attribute name="Base-Revision" value="${workspace.version}" />
|
||||||
|
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
||||||
|
</manifest>
|
||||||
|
</jar>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="clean">
|
||||||
|
<delete dir="./build" />
|
||||||
|
</target>
|
||||||
|
<target name="cleandep" depends="clean">
|
||||||
|
<!-- noop, since the core doesn't depend on anything -->
|
||||||
|
</target>
|
||||||
|
<target name="distclean" depends="clean">
|
||||||
|
<!-- noop, since the core doesn't depend on anything -->
|
||||||
|
</target>
|
||||||
|
</project>
|
||||||
|
<!--
|
||||||
|
vim:fenc=utf-8:ai:si:ts=4:sw=4:et:nu:fdm=indent:fdn=1:
|
||||||
|
-->
|
@@ -1,9 +1,11 @@
|
|||||||
package net.i2p.util;
|
package net.i2p.installer;
|
||||||
|
|
||||||
|
import net.i2p.util.FileUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Usage: Copy from to
|
* Usage: Copy from to
|
||||||
*
|
*
|
||||||
* @deprecated only for use by installer, to be removed from i2p.jar, use FileUtil.copy()
|
* only for use by installer
|
||||||
*/
|
*/
|
||||||
public class Copy {
|
public class Copy {
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
15
installer/java/src/net/i2p/installer/Delete.java
Normal file
15
installer/java/src/net/i2p/installer/Delete.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package net.i2p.installer;
|
||||||
|
|
||||||
|
import net.i2p.util.FileUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Usage: Delete name
|
||||||
|
*
|
||||||
|
* only for use by installer
|
||||||
|
*/
|
||||||
|
public class Delete {
|
||||||
|
public static void main(String args[]) {
|
||||||
|
for(int file=0; file < args.length; file++)
|
||||||
|
FileUtil.rmdir(args[file], false);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,11 +1,11 @@
|
|||||||
package net.i2p.util;
|
package net.i2p.installer;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Usage: Exec dir command [args ...]
|
* Usage: Exec dir command [args ...]
|
||||||
*
|
*
|
||||||
* @deprecated only for use by installer, to be removed from i2p.jar, use ShellCommand
|
* only for use by installer
|
||||||
*/
|
*/
|
||||||
public class Exec {
|
public class Exec {
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
89
installer/java/src/net/i2p/installer/FixWinPaths.java
Normal file
89
installer/java/src/net/i2p/installer/FixWinPaths.java
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
package net.i2p.installer;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Usage: FixWinPaths WrapperConfigFile
|
||||||
|
*
|
||||||
|
* only for use by installer
|
||||||
|
*/
|
||||||
|
public class FixWinPaths{
|
||||||
|
public static void main(String args[]) {
|
||||||
|
if(args.length != 1) {
|
||||||
|
System.err.println("Usage: FixWinPaths [wrapper.conf]\r\n");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is only intended for Windows systems
|
||||||
|
if(!System.getProperty("os.name").startsWith("Win")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
replace(args[0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
private static void replace(String file) {
|
||||||
|
// Shouldn't be true
|
||||||
|
if (!file.contains("wrapper.conf"))
|
||||||
|
return;
|
||||||
|
String wConf = file;
|
||||||
|
String wConfTemp = wConf + ".tmp";
|
||||||
|
|
||||||
|
BufferedReader br = null;
|
||||||
|
BufferedWriter bw = null;
|
||||||
|
try {
|
||||||
|
br = new BufferedReader(new FileReader(wConf));
|
||||||
|
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(wConfTemp), "UTF-8"));
|
||||||
|
String line;
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
if (line.startsWith("wrapper.logfile="))
|
||||||
|
line = "wrapper.logfile=%appdata%\\i2p\\wrapper.log";
|
||||||
|
else if (line.startsWith("#wrapper.java.pidfile="))
|
||||||
|
line = "#wrapper.java.pidfile=%appdata%\\i2p\\routerjvm.pid";
|
||||||
|
else if (line.startsWith("#wrapper.pidfile="))
|
||||||
|
line = "#wrapper.pidfile=%appdata%\\i2p\\i2p.pid";
|
||||||
|
if (line.contains("\\i2p/"))
|
||||||
|
line = line.replace("\\i2p/", "\\i2p\\");
|
||||||
|
if (line.contains("lib/"))
|
||||||
|
line = line.replace("lib/", "lib\\");
|
||||||
|
if (line.contains("\\/"))
|
||||||
|
line = line.replace("\\/", "\\");
|
||||||
|
if (line.contains("logs/log-router"))
|
||||||
|
line = line.replace("logs/log-router", "logs\\log-router");
|
||||||
|
bw.write(line);
|
||||||
|
bw.newLine();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if(br != null)
|
||||||
|
br.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if(bw != null)
|
||||||
|
bw.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Once everything is complete, delete the original wrapper.conf
|
||||||
|
File oldFile = new File(wConf);
|
||||||
|
oldFile.delete();
|
||||||
|
|
||||||
|
// ...and rename temp file's name to wrapper.conf
|
||||||
|
File newFile = new File(wConfTemp);
|
||||||
|
newFile.renameTo(oldFile);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -1,39 +0,0 @@
|
|||||||
@echo off
|
|
||||||
:: fixpaths.cmd
|
|
||||||
::
|
|
||||||
:: This is a simple (and/or stupid) script whose sole purpose is to set the
|
|
||||||
:: correct path for wrapper.logfile, by explicitly setting it to use the
|
|
||||||
:: environment variable %temp%.
|
|
||||||
::
|
|
||||||
:: On every *NIX-like system, $SYSTEM_java_io_tmpdir/wrapper.log points to a system-level
|
|
||||||
:: temp directory (/tmp on Linux, /var/tmp on BSD, etc.), but in Windows the value of %temp%
|
|
||||||
:: depends on whose account a process is running under. If the same user that installs I2P
|
|
||||||
:: is the only one that will run I2P, this isn't a problem.
|
|
||||||
::
|
|
||||||
:: The problem comes from trying to run the process as a service, or trying to run under an
|
|
||||||
:: account other than the one that did the installation. For example if the user "Administrator"
|
|
||||||
:: installed I2P on Windows 7, the value for wrapper.logfile will be set to the hardcoded value of
|
|
||||||
:: C:\Users\Administrator\AppData\Local\Temp\wrapper.log (if it's left at the default value of
|
|
||||||
:: $SYSTEM_java_io_tmpdir/wrapper.log.
|
|
||||||
::
|
|
||||||
:: If user Alice tries to run I2P, the wrapper will try to write its logfile to
|
|
||||||
:: C:\Users\Administrator\AppData\Local\Temp\wrapper.log. Unfortunately Alice
|
|
||||||
:: doesn't have the rights to access Administrator's temp directory. The same
|
|
||||||
:: will happen with the "limited access account" that the I2P service runs
|
|
||||||
:: under.
|
|
||||||
::
|
|
||||||
:: Since Windows doesn't have sed and it has a retarded find, we resort to this
|
|
||||||
:: lameness.
|
|
||||||
::
|
|
||||||
cd /d %~dp0
|
|
||||||
findstr /V /R "^wrapper.logfile=" wrapper.config > wrapper.tmp1
|
|
||||||
findstr /V /R "^wrapper.java.pidfile=" wrapper.tmp1 > wrapper.tmp2
|
|
||||||
findstr /V /R "^wrapper.pidfile=" wrapper.tmp2 > wrapper.new
|
|
||||||
del /F /Q wrapper.tmp*
|
|
||||||
echo #PORTABLE installation: >> wrapper.new
|
|
||||||
echo # The remaining lines should be commented out (or removed) >> wrapper.new
|
|
||||||
echo # for PORTABLE I2P installations: >> wrapper.new
|
|
||||||
echo wrapper.logfile=%%temp%%\wrapper.log >> wrapper.new
|
|
||||||
echo wrapper.java.pidfile=%%temp%%\routerjvm.pid >> wrapper.new
|
|
||||||
echo wrapper.pidfile=%%temp%%\i2p.pid >> wrapper.new
|
|
||||||
move /Y wrapper.new wrapper.config
|
|
@@ -117,7 +117,7 @@ rm -f ./lib/*.dll
|
|||||||
rm -f ./*.bat
|
rm -f ./*.bat
|
||||||
rm -f ./*.cmd
|
rm -f ./*.cmd
|
||||||
rm -f ./*.exe
|
rm -f ./*.exe
|
||||||
rm -rf ./installer
|
rm -rf ./utility.jar
|
||||||
|
|
||||||
if [ ! `echo $HOST_OS |grep osx` ]; then
|
if [ ! `echo $HOST_OS |grep osx` ]; then
|
||||||
rm -rf ./Start\ I2P\ Router.app
|
rm -rf ./Start\ I2P\ Router.app
|
||||||
|
@@ -142,7 +142,6 @@ wrapper.console.loglevel=INFO
|
|||||||
# Log file to use for wrapper output logging.
|
# Log file to use for wrapper output logging.
|
||||||
# You may wish to change this.
|
# You may wish to change this.
|
||||||
# NOTE: On Linux/Mac this is overridden in the i2prouter script; changes here will have no effect.
|
# NOTE: On Linux/Mac this is overridden in the i2prouter script; changes here will have no effect.
|
||||||
# Windows users may wish to change this to %APPDATA%\I2P\wrapper.log
|
|
||||||
# System temp directory:
|
# System temp directory:
|
||||||
wrapper.logfile=$SYSTEM_java_io_tmpdir/wrapper.log
|
wrapper.logfile=$SYSTEM_java_io_tmpdir/wrapper.log
|
||||||
# PORTABLE installation:
|
# PORTABLE installation:
|
||||||
|
Reference in New Issue
Block a user