aboutsummaryrefslogtreecommitdiff
path: root/subsonic-installer-windows/src/main
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
committerScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
commita1a18f77a50804e0127dfa4b0f5240c49c541184 (patch)
tree19a38880afe505beddb5590379a8134d7730a277 /subsonic-installer-windows/src/main
parentb61d787706979e7e20f4c3c4f93c1f129d92273f (diff)
downloaddsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.gz
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.bz2
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.zip
Initial Commit
Diffstat (limited to 'subsonic-installer-windows/src/main')
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-16.icobin0 -> 1150 bytes
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions1
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j35
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions1
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j35
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions6
-rw-r--r--subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j35
-rw-r--r--subsonic-installer-windows/src/main/nsis/jre-6u27-windows-i586-iftw.exebin0 -> 908064 bytes
-rw-r--r--subsonic-installer-windows/src/main/nsis/subsonic.nsi203
9 files changed, 316 insertions, 0 deletions
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-16.ico b/subsonic-installer-windows/src/main/exe4j/subsonic-16.ico
new file mode 100644
index 00000000..d2c13383
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-16.ico
Binary files differ
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions b/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions
new file mode 100644
index 00000000..2f8294cc
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions
@@ -0,0 +1 @@
+-Xmx16m
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j b/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j
new file mode 100644
index 00000000..7226164d
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<exe4j version="4.4.4" transformSequenceNumber="1">
+ <directoryPresets config="." />
+ <application name="Subsonic" distributionSourceDir="../../../target">
+ <languages>
+ <principalLanguage id="en" customLocalizationFile="" />
+ </languages>
+ </application>
+ <executable name="subsonic-agent-elevated" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="requireAdministrator" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
+ <messageSet>
+ <message id="NoJvmFound" text="Java was not found on your system. Please download Java from www.java.com." />
+ </messageSet>
+ <versionInfo include="false" fileVersion="" fileDescription="" legalCopyright="" internalName="" productName="" companyName="" productVersion="" />
+ </executable>
+ <splashScreen show="false" autoOff="false" alwaysOnTop="false" width="-1" height="-1" bitmapFile="" java6SplashScreen="false">
+ <text>
+ <statusLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ <versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ </text>
+ </splashScreen>
+ <java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="" arguments="-agent -elevated" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
+ <searchSequence>
+ <registry />
+ <envVar name="JAVA_HOME" />
+ <envVar name="JDK_HOME" />
+ </searchSequence>
+ <classPath>
+ <archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
+ </classPath>
+ <nativeLibraryDirectories />
+ </java>
+ <includedFiles />
+ <unextractableFiles />
+</exe4j>
+
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions b/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions
new file mode 100644
index 00000000..2f8294cc
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions
@@ -0,0 +1 @@
+-Xmx16m
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j b/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j
new file mode 100644
index 00000000..41af642a
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<exe4j version="4.4.4" transformSequenceNumber="1">
+ <directoryPresets config="." />
+ <application name="Subsonic" distributionSourceDir="../../../target">
+ <languages>
+ <principalLanguage id="en" customLocalizationFile="" />
+ </languages>
+ </application>
+ <executable name="subsonic-agent" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
+ <messageSet>
+ <message id="NoJvmFound" text="Java was not found on your system. Please download Java from www.java.com." />
+ </messageSet>
+ <versionInfo include="false" fileVersion="" fileDescription="" legalCopyright="" internalName="" productName="" companyName="" productVersion="" />
+ </executable>
+ <splashScreen show="false" autoOff="false" alwaysOnTop="false" width="-1" height="-1" bitmapFile="" java6SplashScreen="false">
+ <text>
+ <statusLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ <versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ </text>
+ </splashScreen>
+ <java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="" arguments="-agent" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
+ <searchSequence>
+ <registry />
+ <envVar name="JAVA_HOME" />
+ <envVar name="JDK_HOME" />
+ </searchSequence>
+ <classPath>
+ <archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
+ </classPath>
+ <nativeLibraryDirectories />
+ </java>
+ <includedFiles />
+ <unextractableFiles />
+</exe4j>
+
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions b/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions
new file mode 100644
index 00000000..e37bda80
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions
@@ -0,0 +1,6 @@
+-Xmx150m
+-verbose:gc
+-Dsubsonic.host=0.0.0.0
+-Dsubsonic.port=4040
+-Dsubsonic.httpsPort=0
+-Dsubsonic.contextPath=/
diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j b/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j
new file mode 100644
index 00000000..025659fd
--- /dev/null
+++ b/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<exe4j version="4.4.4" transformSequenceNumber="1">
+ <directoryPresets config="." />
+ <application name="Subsonic" distributionSourceDir="../../../target">
+ <languages>
+ <principalLanguage id="en" customLocalizationFile="" />
+ </languages>
+ </application>
+ <executable name="subsonic-service" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-service.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="3" changeWorkingDirectory="true" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
+ <messageSet>
+ <message id="NoJvmFound" text="Java was not found on your system. Please download Java from www.java.com." />
+ </messageSet>
+ <versionInfo include="false" fileVersion="" fileDescription="" legalCopyright="" internalName="" productName="" companyName="" productVersion="" />
+ </executable>
+ <splashScreen show="false" autoOff="false" alwaysOnTop="false" width="-1" height="-1" bitmapFile="" java6SplashScreen="false">
+ <text>
+ <statusLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ <versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
+ </text>
+ </splashScreen>
+ <java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="-Dsubsonic.createLinkFile=true -Dsubsonic.windowsInstall=true" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.5" maxVersion="" allowBetaVM="true" jdkOnly="false">
+ <searchSequence>
+ <registry />
+ <envVar name="JAVA_HOME" />
+ <envVar name="JDK_HOME" />
+ </searchSequence>
+ <classPath>
+ <archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
+ </classPath>
+ <nativeLibraryDirectories />
+ </java>
+ <includedFiles />
+ <unextractableFiles />
+</exe4j>
+
diff --git a/subsonic-installer-windows/src/main/nsis/jre-6u27-windows-i586-iftw.exe b/subsonic-installer-windows/src/main/nsis/jre-6u27-windows-i586-iftw.exe
new file mode 100644
index 00000000..c5cc6a5c
--- /dev/null
+++ b/subsonic-installer-windows/src/main/nsis/jre-6u27-windows-i586-iftw.exe
Binary files differ
diff --git a/subsonic-installer-windows/src/main/nsis/subsonic.nsi b/subsonic-installer-windows/src/main/nsis/subsonic.nsi
new file mode 100644
index 00000000..1fa404d1
--- /dev/null
+++ b/subsonic-installer-windows/src/main/nsis/subsonic.nsi
@@ -0,0 +1,203 @@
+# subsonic.nsi
+
+!include "WordFunc.nsh"
+!include "MUI.nsh"
+
+!insertmacro VersionCompare
+
+# The name of the installer
+Name "Subsonic"
+
+# The default installation directory
+InstallDir $PROGRAMFILES\Subsonic
+
+# Registry key to check for directory (so if you install again, it will
+# overwrite the old one automatically)
+InstallDirRegKey HKLM "Software\Subsonic" "Install_Dir"
+
+#--------------------------------
+#Interface Configuration
+
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
+!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Getting Started.html"
+!define MUI_FINISHPAGE_SHOWREADME_TEXT "View Getting Started document"
+
+#--------------------------------
+# Pages
+
+# This page checks for JRE
+Page custom CheckInstalledJRE
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+# Languages
+!insertmacro MUI_LANGUAGE "English"
+
+Section "Subsonic"
+
+ SectionIn RO
+
+ # Install for all users
+ SetShellVarContext "all"
+
+ # Take backup of existing subsonic-service.exe.vmoptions
+ CopyFiles /SILENT $INSTDIR\subsonic-service.exe.vmoptions $TEMP\subsonic-service.exe.vmoptions
+
+ # Silently uninstall existing version.
+ ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR'
+
+ # Remove previous Jetty temp directory.
+ RMDir /r "c:\subsonic\jetty"
+
+ # Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ # Write files.
+ File ..\..\..\target\subsonic-agent.exe
+ File ..\..\..\target\subsonic-agent.exe.vmoptions
+ File ..\..\..\target\subsonic-agent-elevated.exe
+ File ..\..\..\target\subsonic-agent-elevated.exe.vmoptions
+ File ..\..\..\target\subsonic-service.exe
+ File ..\..\..\target\subsonic-service.exe.vmoptions
+ File ..\..\..\..\subsonic-booter\target\subsonic-booter-jar-with-dependencies.jar
+ File ..\..\..\..\subsonic-main\README.TXT
+ File ..\..\..\..\subsonic-main\LICENSE.TXT
+ File "..\..\..\..\subsonic-main\Getting Started.html"
+ File ..\..\..\..\subsonic-main\target\subsonic.war
+ File ..\..\..\..\subsonic-main\target\classes\version.txt
+ File ..\..\..\..\subsonic-main\target\classes\build_number.txt
+
+ # Write the installation path into the registry
+ WriteRegStr HKLM SOFTWARE\Subsonic "Install_Dir" "$INSTDIR"
+
+ # Write the uninstall keys for Windows
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "DisplayName" "Subsonic"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "NoModify" 1
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "NoRepair" 1
+ WriteUninstaller "uninstall.exe"
+
+ # Restore subsonic-service.exe.vmoptions
+ CopyFiles /SILENT $TEMP\subsonic-service.exe.vmoptions $INSTDIR\subsonic-service.exe.vmoptions
+ Delete $TEMP\subsonic-service.exe.vmoptions
+
+ # Write transcoding pack files.
+ SetOutPath "c:\subsonic\transcode"
+ File ..\..\..\..\subsonic-transcode\windows\*.*
+
+ # Add Windows Firewall exception.
+ # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed
+ # as NSIS_HOME/Plugins/SimpleFC.dll)
+ SimpleFC::AddApplication "Subsonic Service" "$INSTDIR\subsonic-service.exe" 0 2 "" 1
+ SimpleFC::AddApplication "Subsonic Agent" "$INSTDIR\subsonic-agent.exe" 0 2 "" 1
+ SimpleFC::AddApplication "Subsonic Agent (Elevated)" "$INSTDIR\subsonic-agent-elevated.exe" 0 2 "" 1
+
+ # Install and start service.
+ ExecWait '"$INSTDIR\subsonic-service.exe" -install'
+ ExecWait '"$INSTDIR\subsonic-service.exe" -start'
+
+ # Start agent.
+ Exec '"$INSTDIR\subsonic-agent-elevated.exe" -balloon'
+
+SectionEnd
+
+
+Section "Start Menu Shortcuts"
+
+ CreateDirectory "$SMPROGRAMS\Subsonic"
+ CreateShortCut "$SMPROGRAMS\Subsonic\Open Subsonic.lnk" "$INSTDIR\subsonic.url" "" "$INSTDIR\subsonic-agent.exe" 0
+ CreateShortCut "$SMPROGRAMS\Subsonic\Subsonic Tray Icon.lnk" "$INSTDIR\subsonic-agent.exe" "-balloon" "$INSTDIR\subsonic-agent.exe" 0
+ CreateShortCut "$SMPROGRAMS\Subsonic\Start Subsonic Service.lnk" "$INSTDIR\subsonic-service.exe" "-start" "$INSTDIR\subsonic-service.exe" 0
+ CreateShortCut "$SMPROGRAMS\Subsonic\Stop Subsonic Service.lnk" "$INSTDIR\subsonic-service.exe" "-stop" "$INSTDIR\subsonic-service.exe" 0
+ CreateShortCut "$SMPROGRAMS\Subsonic\Uninstall Subsonic.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
+ CreateShortCut "$SMPROGRAMS\Subsonic\Getting Started.lnk" "$INSTDIR\Getting Started.html" "" "$INSTDIR\Getting Started.html" 0
+
+ CreateShortCut "$SMSTARTUP\Subsonic.lnk" "$INSTDIR\subsonic-agent.exe" "" "$INSTDIR\subsonic-agent.exe" 0
+
+SectionEnd
+
+
+# Uninstaller
+
+Section "Uninstall"
+
+ # Uninstall for all users
+ SetShellVarContext "all"
+
+ # Stop and uninstall service if present.
+ ExecWait '"$INSTDIR\subsonic-service.exe" -stop'
+ ExecWait '"$INSTDIR\subsonic-service.exe" -uninstall'
+
+ # Stop agent by killing it.
+ # (Requires NSIS plugin found on http://nsis.sourceforge.net/Processes_plug-in to be installed
+ # as NSIS_HOME/Plugins/Processes.dll)
+ Processes::KillProcess "subsonic-agent"
+ Processes::KillProcess "subsonic-agent-elevated"
+ Processes::KillProcess "ffmpeg"
+ Processes::KillProcess "lame"
+
+ # Remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic"
+ DeleteRegKey HKLM SOFTWARE\Subsonic
+
+ # Remove files.
+ Delete "$SMSTARTUP\Subsonic.lnk"
+ RMDir /r "$SMPROGRAMS\Subsonic"
+ Delete "$INSTDIR\build_number.txt"
+ Delete "$INSTDIR\elevate.exe"
+ Delete "$INSTDIR\Getting Started.html"
+ Delete "$INSTDIR\LICENSE.TXT"
+ Delete "$INSTDIR\README.TXT"
+ Delete "$INSTDIR\subsonic.url"
+ Delete "$INSTDIR\subsonic.war"
+ Delete "$INSTDIR\subsonic-agent.exe"
+ Delete "$INSTDIR\subsonic-agent.exe.vmoptions"
+ Delete "$INSTDIR\subsonic-agent-elevated.exe"
+ Delete "$INSTDIR\subsonic-agent-elevated.exe.vmoptions"
+ Delete "$INSTDIR\subsonic-booter-jar-with-dependencies.jar"
+ Delete "$INSTDIR\subsonic-service.exe"
+ Delete "$INSTDIR\subsonic-service.exe.vmoptions"
+ Delete "$INSTDIR\uninstall.exe"
+ Delete "$INSTDIR\version.txt"
+ RMDir /r "$INSTDIR\log"
+ RMDir "$INSTDIR"
+
+ # Remove Windows Firewall exception.
+ # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed
+ # as NSIS_HOME/Plugins/SimpleFC.dll)
+ SimpleFC::RemoveApplication "$INSTDIR\elevate.exe"
+ SimpleFC::RemoveApplication "$INSTDIR\subsonic-service.exe"
+ SimpleFC::RemoveApplication "$INSTDIR\subsonic-agent.exe"
+ SimpleFC::RemoveApplication "$INSTDIR\subsonic-agent-elevated.exe"
+
+SectionEnd
+
+
+Function CheckInstalledJRE
+ # Read the value from the registry into the $0 register
+ ReadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion
+
+ # Check JRE version. At least 1.6 is required.
+ # $1=0 Versions are equal
+ # $1=1 Installed version is newer
+ # $1=2 Installed version is older (or non-existent)
+ ${VersionCompare} $0 "1.6" $1
+ IntCmp $1 2 InstallJRE 0 0
+ Return
+
+ InstallJRE:
+ # Launch Java web installer.
+ MessageBox MB_OK "Java 6 was not found and will now be installed."
+ File /oname=$TEMP\jre-setup.exe jre-6u27-windows-i586-iftw.exe
+ ExecWait '"$TEMP\jre-setup.exe"' $0
+ Delete "$TEMP\jre-setup.exe"
+
+FunctionEnd