SetCompressor /SOLID lzma !define PRODUCT_PUBLISHER "LEAP Encryption Access Project" !include "MUI2.nsh" Name "RiseupVPN" Outfile "..\dist\RiseupVPN-installer.exe" ;TODO make the installdir configurable - and set it in the registry. InstallDir "C:\Program Files\RiseupVPN\" RequestExecutionLevel admin !include FileFunc.nsh !insertmacro GetParameters !insertmacro GetOptions ;Macros !macro SelectByParameter SECT PARAMETER DEFAULT ${GetOptions} $R0 "/${PARAMETER}=" $0 ${If} ${DEFAULT} == 0 ${If} $0 == 1 !insertmacro SelectSection ${SECT} ${EndIf} ${Else} ${If} $0 != 0 !insertmacro SelectSection ${SECT} ${EndIf} ${EndIf} !macroend !define BITMAP_FILE riseupvpn.bmp !define MUI_ICON "..\assets\riseupvpn.ico" !define MUI_UNICON "..\assets\riseupvpn.ico" !define MUI_WELCOMEPAGE_TITLE "RiseupVPN" !define MUI_WELCOMEPAGE_TEXT "This will install RiseupVPN in your computer. RiseupVPN is a simple, fast and secure VPN Client, powered by Bitmask. \n This VPN service is run by donations from people like you." #!define MUI_WELCOMEFINISHPAGE_BITMAP "riseup.png" !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH Section "InstallFiles" SetOutPath $INSTDIR WriteUninstaller $INSTDIR\uninstall.exe ;Start Menu createDirectory "$SMPROGRAMS\RiseupVPN\" createShortCut "$SMPROGRAMS\RiseupVPN\RiseupVPN.lnk" "$INSTDIR\bitmask-systray.exe" "" "$INSTDIR\riseupvpn.ico" File "readme.txt" File "..\staging\nssm.exe" File "..\assets\riseupvpn.ico" File ..\staging\bitmask_helper.exe File ..\staging\bitmask-systray.exe File ..\staging\libcrypto-1_1-x64.dll File ..\staging\liblzo2-2.dll File ..\staging\libpkcs11-helper-1.dll File ..\staging\libssl-1_1-x64.dll File ..\staging\padlock.dll File ..\staging\openvpn\openvpn.exe File ..\staging\openvpn\tap-windows.exe SectionEnd Section "InstallService" ; Easy service management thanks to nssm ExecWait '"$INSTDIR\nssm.exe" remove riseupvpn-helper confirm' ExecWait '"$INSTDIR\nssm.exe" install riseupvpn-helper "$INSTDIR\bitmask_helper.exe"' ExecWait '"$INSTDIR\nssm.exe" set riseupvpn-helper AppDirectory "$INSTDIR"' ExecWait '"$INSTDIR\nssm.exe" start riseupvpn-helper' ; why are these here? Delete "C:\riseupvpn.ico" Delete "C:\riseupvpn.png" SectionEnd Section /o "TAP Virtual Ethernet Adapter" SecTAP ; Adapted from the windows nsis installer from OpenVPN (openvpn-build repo). DetailPrint "Installing TAP (may need confirmation)..." ExecWait '"$INSTDIR\tap-windows.exe" /SELECT_UTILITIES=1' ;Making it explicit for now. It looks like the /S flag is "silent", isn't it? ;ExecWait '"$INSTDIR\tap-windows.exe" /S /SELECT_UTILITIES=1' Pop $R0 # return value/error/timeout WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RiseupVPN" "tap" "installed" DetailPrint "TAP installed!" SectionEnd Section "Uninstall" ExecWait '"$INSTDIR"\nssm.exe stop riseupvpn-helper' ExecWait '"$INSTDIR"\nssm.exe remove riseupvpn-helper confirm' Delete $INSTDIR\readme.txt Delete $INSTDIR\nssm.exe Delete $INSTDIR\riseupvpn.ico Delete $INSTDIR\openssl.exe Delete $INSTDIR\openvpn.exe Delete $INSTDIR\ssleay32.dll Delete $INSTDIR\libeay32.dll Delete $INSTDIR\liblzo2-2.dll Delete $INSTDIR\libpkcs11-helper-1.dll Delete $INSTDIR\bitmask_helper.exe Delete $INSTDIR\bitmask-systray.exe Delete $INSTDIR\tap-windows.exe ; uninstaller must be always the last thing to remove Delete $INSTDIR\uninstall.exe SectionEnd Function .onInit !insertmacro SelectByParameter ${SecTAP} SELECT_TAP 1 FunctionEnd ;---------------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English"