boklm pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits: 3299ed3d by Nicolas Vigier at 2023-02-10T09:44:21+01:00 Bug 40757: Use single .nsi template for all browsers
- - - - -
4 changed files:
- projects/browser/build - projects/browser/windows-installer/basebrowser.nsi → projects/browser/windows-installer.nsi - − projects/browser/windows-installer/privacybrowser.nsi - − projects/browser/windows-installer/torbrowser.nsi
Changes:
===================================== projects/browser/build ===================================== @@ -285,6 +285,9 @@ done export PATH="/var/tmp/dist/nsis/bin:$PATH"
mv $rootdir/windows-installer $distdir/windows-installer + cat > $distdir/windows-installer/browser.nsi << 'BROWSER_NSI' +[% INCLUDE 'windows-installer.nsi' %] +BROWSER_NSI mv ${TB_STAGE_DIR} $distdir/windows-installer/"[% c('var/Project_Name') %]" mv $distdir/windows-installer ${TB_STAGE_DIR} [% END %] @@ -354,7 +357,7 @@ cd $distdir [% ELSIF c("var/windows") %] find "$PKG_DIR" -exec [% c("touch") %] {} ; pushd "$PKG_DIR" - makensis [% c("var/projectname") %].nsi + makensis browser.nsi # Working around NSIS braindamage mv [% c("var/projectname") %]-install.exe browser-install-tmp.exe python3 $rootdir/pe_checksum_fix.py
===================================== projects/browser/windows-installer/basebrowser.nsi → projects/browser/windows-installer.nsi ===================================== @@ -1,4 +1,4 @@ -;NSIS Installer for Base Browser Bundle +;NSIS Installer for Tor/Base/Privacy Browser ;Written by Moritz Bartl ;released under Public Domain
@@ -12,14 +12,14 @@ ;-------------------------------- ;General
- ; location of Base Browser bundle to put into installer - !define TBBSOURCE ".\Base Browser" + ; location of Tor/Base/Privacy Browser to put into installer + !define PROGRAM_SOURCE ".[% c('var/Project_Name') %]"
- Name "Base Browser" - OutFile "basebrowser-install.exe" + Name "[% c('var/Project_Name') %]" + OutFile "[% c('var/projectname') %]-install.exe"
;Default installation folder - InstallDir "$DESKTOP\Base Browser" + InstallDir "$DESKTOP[% c('var/Project_Name') %]"
;Best (but slowest) compression SetCompressor /SOLID lzma @@ -31,14 +31,14 @@ ;-------------------------------- ;Interface Configuration
- !define MUI_ICON "basebrowser.ico" + !define MUI_ICON "[% c('var/projectname') %].ico" !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 "StartBaseBrowser" + !define MUI_FINISHPAGE_RUN_FUNCTION "StartBrowser" !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" @@ -113,7 +113,7 @@ ;-------------------------------- ;Multi Language support: Read strings from separate file
-; !include torbrowser-langstrings.nsi +; !include [% c('var/projectname') %]-langstrings.nsi
;-------------------------------- ;Reserve Files @@ -127,19 +127,19 @@ ;-------------------------------- ;Installer Sections
-Section "Base Browser Bundle" SecTBB +Section "[% c('var/Project_Name') %]" SecBrowser
SetOutPath "$INSTDIR" - File /r "${TBBSOURCE}*.*" + File /r "${PROGRAM_SOURCE}*.*" SetOutPath "$INSTDIR\Browser" - CreateShortCut "$INSTDIR\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe" + CreateShortCut "$INSTDIR\Start [% c('var/Project_Name') %].lnk" "$INSTDIR\Browser[% c('var/exe_name') %].exe"
SectionEnd
Function CreateShortcuts
- CreateShortCut "$SMPROGRAMS\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe" - CreateShortCut "$DESKTOP\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe" + CreateShortCut "$SMPROGRAMS\Start [% c('var/Project_Name') %].lnk" "$INSTDIR\Browser[% c('var/exe_name') %].exe" + CreateShortCut "$DESKTOP\Start [% c('var/Project_Name') %].lnk" "$INSTDIR\Browser[% c('var/exe_name') %].exe"
FunctionEnd ;-------------------------------- @@ -148,7 +148,7 @@ FunctionEnd Function .onInit
${IfNot} ${AtLeastWin7} - MessageBox MB_USERICON|MB_OK "Base Browser requires at least Windows 7" + MessageBox MB_USERICON|MB_OK "[% c('var/Project_Name') %] requires at least Windows 7" SetErrorLevel 1 Quit ${EndIf} @@ -159,7 +159,7 @@ Function .onInit System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
${If} "$R7" == "0" - MessageBox MB_OK|MB_ICONSTOP "Sorry, Base Browser can't be installed. This version of Base Browser requires a processor with SSE2 support." + MessageBox MB_OK|MB_ICONSTOP "Sorry, [% c('var/Project_Name') %] can't be installed. This version of [% c('var/Project_Name') %] requires a processor with SSE2 support." Abort ${EndIf}
@@ -172,14 +172,14 @@ FunctionEnd
Function CheckIfTargetDirectoryExists ${If} ${FileExists} "$INSTDIR*.*" - MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade the Base Browser Bundle, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort + MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade the [% c('var/Project_Name') %], but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort Abort NoAbort: ${EndIf} FunctionEnd
-Function StartBaseBrowser -ExecShell "open" "$INSTDIR/Start Base Browser.lnk" +Function StartBrowser +ExecShell "open" "$INSTDIR/Start [% c('var/Project_Name') %].lnk" FunctionEnd
===================================== projects/browser/windows-installer/privacybrowser.nsi deleted ===================================== @@ -1,180 +0,0 @@ -;NSIS Installer for Privacy Browser -;Written by Moritz Bartl -;released under Public Domain - -;-------------------------------- -;Modern UI - - !include "MUI2.nsh" - !include "LogicLib.nsh" - !include "WinVer.nsh" - -;-------------------------------- -;General - - ; location of Privacy Browser bundle to put into installer - !define TBBSOURCE ".\Privacy Browser" - - Name "Privacy Browser" - OutFile "privacybrowser-install.exe" - - ;Default installation folder - InstallDir "$DESKTOP\Privacy Browser" - - ;Best (but slowest) compression - SetCompressor /SOLID lzma - SetCompressorDictSize 32 - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Interface Configuration - - !define MUI_ICON "privacybrowser.ico" - !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 "StartPrivacyBrowser" - !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" - -;-------------------------------- -;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 "Privacy Browser" SecPB - - SetOutPath "$INSTDIR" - File /r "${TBBSOURCE}*.*" - SetOutPath "$INSTDIR\Browser" - CreateShortCut "$INSTDIR\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe" - -SectionEnd - -Function CreateShortcuts - - CreateShortCut "$SMPROGRAMS\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe" - CreateShortCut "$DESKTOP\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe" - -FunctionEnd -;-------------------------------- -;Installer Functions - -Function .onInit - - ${IfNot} ${AtLeastWin7} - MessageBox MB_USERICON|MB_OK "Privacy 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, Privacy Browser can't be installed. This version of Privacy 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 Privacy Browser, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort - Abort - NoAbort: -${EndIf} -FunctionEnd - - -Function StartPrivacyBrowser -ExecShell "open" "$INSTDIR/Start Privacy Browser.lnk" -FunctionEnd -
===================================== projects/browser/windows-installer/torbrowser.nsi deleted ===================================== @@ -1,185 +0,0 @@ -;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" - - Name "Tor Browser" - OutFile "torbrowser-install.exe" - - ;Default installation folder - InstallDir "$DESKTOP\Tor Browser" - - ;Best (but slowest) compression - SetCompressor /SOLID lzma - SetCompressorDictSize 32 - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Interface Configuration - - !define MUI_ICON "torbrowser.ico" - !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\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe" - -SectionEnd - -Function CreateShortcuts - - CreateShortCut "$SMPROGRAMS\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe" - CreateShortCut "$DESKTOP\Start Tor Browser.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/Start Tor Browser.lnk" -FunctionEnd -
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/32...