Permalink
Cannot retrieve contributors at this time
200 lines (160 sloc)
6.28 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| ;NSIS Installer for Tor Browser Bundle | |
| ;Written by Moritz Bartl | |
| ;released under Public Domain | |
| ;-------------------------------- | |
| ;Modern" UI | |
| !include "MUI2.nsh" | |
| !include "LogicLib.nsh" | |
| !include "WinVer.nsh" | |
| ;-------------------------------- | |
| ;General | |
| ; location of Tor Browser bundle to put into installer | |
| !define TBBSOURCE ".\Tor Browser\" | |
| !if "${CHANNEL}" == "release" | |
| !define CHANNEL_NAME "" | |
| !define CHANNEL_ICON "torbrowser-release.ico" | |
| !endif | |
| !if "${CHANNEL}" == "nightly" | |
| !define CHANNEL_NAME " Nightly" | |
| !define CHANNEL_ICON "torbrowser-nightly.ico" | |
| !endif | |
| !if "${CHANNEL}" == "alpha" | |
| !define CHANNEL_NAME " Alpha" | |
| !define CHANNEL_ICON "torbrowser-alpha.ico" | |
| !endif | |
| Name "Tor Browser${CHANNEL_NAME}" | |
| OutFile "torbrowser-install.exe" | |
| ;Default installation folder | |
| InstallDir "$DESKTOP\Tor Browser${CHANNEL_NAME}" | |
| ;Best (but slowest) compression | |
| SetCompressor /SOLID lzma | |
| SetCompressorDictSize 32 | |
| ;Request application privileges for Windows Vista | |
| RequestExecutionLevel user | |
| ;-------------------------------- | |
| ;Interface Configuration | |
| !define MUI_ICON "${CHANNEL_ICON}" | |
| !define MUI_ABORTWARNING | |
| ;-------------------------------- | |
| ;Modern UI settings | |
| !define MUI_FINISHPAGE_NOREBOOTSUPPORT ; we don't require a reboot | |
| !define MUI_FINISHPAGE_RUN | |
| !define MUI_FINISHPAGE_RUN_FUNCTION "StartTorBrowser" | |
| !define MUI_FINISHPAGE_SHOWREADME ; misuse for option to create shortcut; less ugly than MUI_PAGE_COMPONENTS | |
| !define MUI_FINISHPAGE_SHOWREADME_TEXT "&Add Start Menu && Desktop shortcuts" | |
| !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CreateShortCuts" | |
| ;-------------------------------- | |
| ;Pages | |
| !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckIfTargetDirectoryExists | |
| !insertmacro MUI_PAGE_DIRECTORY | |
| !insertmacro MUI_PAGE_INSTFILES | |
| !insertmacro MUI_PAGE_FINISH | |
| ;-------------------------------- | |
| ;Languages | |
| !insertmacro MUI_LANGUAGE "English" ;first language is the default language | |
| !insertmacro MUI_LANGUAGE "French" | |
| !insertmacro MUI_LANGUAGE "German" | |
| !insertmacro MUI_LANGUAGE "Spanish" | |
| !insertmacro MUI_LANGUAGE "SpanishInternational" | |
| !insertmacro MUI_LANGUAGE "SimpChinese" | |
| !insertmacro MUI_LANGUAGE "TradChinese" | |
| !insertmacro MUI_LANGUAGE "Japanese" | |
| !insertmacro MUI_LANGUAGE "Korean" | |
| !insertmacro MUI_LANGUAGE "Italian" | |
| !insertmacro MUI_LANGUAGE "Dutch" | |
| !insertmacro MUI_LANGUAGE "Danish" | |
| !insertmacro MUI_LANGUAGE "Swedish" | |
| !insertmacro MUI_LANGUAGE "Norwegian" | |
| !insertmacro MUI_LANGUAGE "NorwegianNynorsk" | |
| !insertmacro MUI_LANGUAGE "Finnish" | |
| !insertmacro MUI_LANGUAGE "Greek" | |
| !insertmacro MUI_LANGUAGE "Russian" | |
| !insertmacro MUI_LANGUAGE "Portuguese" | |
| !insertmacro MUI_LANGUAGE "PortugueseBR" | |
| !insertmacro MUI_LANGUAGE "Polish" | |
| !insertmacro MUI_LANGUAGE "Ukrainian" | |
| !insertmacro MUI_LANGUAGE "Czech" | |
| !insertmacro MUI_LANGUAGE "Slovak" | |
| !insertmacro MUI_LANGUAGE "Croatian" | |
| !insertmacro MUI_LANGUAGE "Bulgarian" | |
| !insertmacro MUI_LANGUAGE "Hungarian" | |
| !insertmacro MUI_LANGUAGE "Thai" | |
| !insertmacro MUI_LANGUAGE "Romanian" | |
| !insertmacro MUI_LANGUAGE "Latvian" | |
| !insertmacro MUI_LANGUAGE "Macedonian" | |
| !insertmacro MUI_LANGUAGE "Estonian" | |
| !insertmacro MUI_LANGUAGE "Turkish" | |
| !insertmacro MUI_LANGUAGE "Lithuanian" | |
| !insertmacro MUI_LANGUAGE "Slovenian" | |
| !insertmacro MUI_LANGUAGE "Serbian" | |
| !insertmacro MUI_LANGUAGE "SerbianLatin" | |
| !insertmacro MUI_LANGUAGE "Arabic" | |
| !insertmacro MUI_LANGUAGE "Farsi" | |
| !insertmacro MUI_LANGUAGE "Hebrew" | |
| !insertmacro MUI_LANGUAGE "Indonesian" | |
| !insertmacro MUI_LANGUAGE "Mongolian" | |
| !insertmacro MUI_LANGUAGE "Luxembourgish" | |
| !insertmacro MUI_LANGUAGE "Albanian" | |
| !insertmacro MUI_LANGUAGE "Breton" | |
| !insertmacro MUI_LANGUAGE "Belarusian" | |
| !insertmacro MUI_LANGUAGE "Icelandic" | |
| !insertmacro MUI_LANGUAGE "Malay" | |
| !insertmacro MUI_LANGUAGE "Bosnian" | |
| !insertmacro MUI_LANGUAGE "Kurdish" | |
| !insertmacro MUI_LANGUAGE "Irish" | |
| !insertmacro MUI_LANGUAGE "Uzbek" | |
| !insertmacro MUI_LANGUAGE "Galician" | |
| !insertmacro MUI_LANGUAGE "Afrikaans" | |
| !insertmacro MUI_LANGUAGE "Catalan" | |
| !insertmacro MUI_LANGUAGE "Esperanto" | |
| ;-------------------------------- | |
| ;Multi Language support: Read strings from separate file | |
| ; !include torbrowser-langstrings.nsi | |
| ;-------------------------------- | |
| ;Reserve Files | |
| ;If you are using solid compression, files that are required before | |
| ;the actual installation should be stored first in the data block, | |
| ;because this will make your installer start faster. | |
| !insertmacro MUI_RESERVEFILE_LANGDLL | |
| ;-------------------------------- | |
| ;Installer Sections | |
| Section "Tor Browser Bundle" SecTBB | |
| SetOutPath "$INSTDIR" | |
| File /r "${TBBSOURCE}\*.*" | |
| SetOutPath "$INSTDIR\Browser" | |
| CreateShortCut "$INSTDIR\Tor Browser${CHANNEL_NAME}.lnk" "$INSTDIR\Browser\firefox.exe" | |
| SectionEnd | |
| Function CreateShortcuts | |
| CreateShortCut "$SMPROGRAMS\Tor Browser${CHANNEL_NAME}.lnk" "$INSTDIR\Browser\firefox.exe" | |
| CreateShortCut "$DESKTOP\Tor Browser${CHANNEL_NAME}.lnk" "$INSTDIR\Browser\firefox.exe" | |
| FunctionEnd | |
| ;-------------------------------- | |
| ;Installer Functions | |
| Function .onInit | |
| ${IfNot} ${AtLeastWin7} | |
| MessageBox MB_USERICON|MB_OK "Tor Browser requires at least Windows 7" | |
| SetErrorLevel 1 | |
| Quit | |
| ${EndIf} | |
| ; Don't install on systems that don't support SSE2. The parameter value of | |
| ; 10 is for PF_XMMI64_INSTRUCTIONS_AVAILABLE which will check whether the | |
| ; SSE2 instruction set is available. | |
| System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7" | |
| ${If} "$R7" == "0" | |
| MessageBox MB_OK|MB_ICONSTOP "Sorry, Tor Browser can't be installed. This version of Tor Browser requires a processor with SSE2 support." | |
| Abort | |
| ${EndIf} | |
| !insertmacro MUI_LANGDLL_DISPLAY | |
| FunctionEnd | |
| ;-------------------------------- | |
| ;Helper Functions | |
| Function CheckIfTargetDirectoryExists | |
| ${If} ${FileExists} "$INSTDIR\*.*" | |
| MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade the Tor Browser Bundle, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort | |
| Abort | |
| NoAbort: | |
| ${EndIf} | |
| FunctionEnd | |
| Function StartTorBrowser | |
| ExecShell "open" "$INSTDIR/Tor Browser${CHANNEL_NAME}.lnk" | |
| FunctionEnd | |