diff options
author | Riccardo Spagni <ric@spagni.net> | 2014-10-05 23:44:31 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2014-10-05 23:44:31 +0200 |
commit | 9ef094b356b4da7542c3cab898dac7e135b76903 (patch) | |
tree | 99b5876712b0b1551fc042fe75447b998e4b0fc1 /external/unbound/winrc/setup.nsi | |
parent | split mnemonic printout over 3 lines (diff) | |
download | monero-9ef094b356b4da7542c3cab898dac7e135b76903.tar.xz |
added unbound to external deps
Diffstat (limited to 'external/unbound/winrc/setup.nsi')
-rw-r--r-- | external/unbound/winrc/setup.nsi | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/external/unbound/winrc/setup.nsi b/external/unbound/winrc/setup.nsi new file mode 100644 index 000000000..cd9fc76df --- /dev/null +++ b/external/unbound/winrc/setup.nsi @@ -0,0 +1,228 @@ +# The NSIS (http://nsis.sourceforge.net) install script. +# This script is BSD licensed. +SetCompressor /solid /final lzma + +!include LogicLib.nsh +!include MUI2.nsh + +!define VERSION "0.0.0" +!define QUADVERSION "0.0.0.0" + +outFile "unbound_setup_${VERSION}.exe" +Name "Unbound" + +# default install directory +installDir "$PROGRAMFILES\Unbound" +installDirRegKey HKLM "Software\Unbound" "InstallLocation" +RequestExecutionLevel admin +#give credits to Nullsoft: BrandingText "" +VIAddVersionKey "ProductName" "Unbound" +VIAddVersionKey "CompanyName" "NLnet Labs" +VIAddVersionKey "FileDescription" "(un)install the unbound DNS resolver" +VIAddVersionKey "LegalCopyright" "Copyright 2009, NLnet Labs" +VIAddVersionKey "FileVersion" "${QUADVERSION}" +VIAddVersionKey "ProductVersion" "${QUADVERSION}" +VIProductVersion "${QUADVERSION}" + +# Global Variables +Var StartMenuFolder + +# use ReserveFile for files required before actual installation +# makes the installer start faster +#ReserveFile "System.dll" +#ReserveFile "NsExec.dll" + +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install-nsis.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall-nsis.ico" + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_RIGHT +!define MUI_HEADERIMAGE_BITMAP "setup_top.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP "setup_left.bmp" +!define MUI_ABORTWARNING +#!define MUI_FINISHPAGE_NOAUTOCLOSE # so we can inspect install log. + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "..\LICENSE" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Unbound" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Unbound" +!insertmacro MUI_PAGE_STARTMENU UnboundStartMenu $StartMenuFolder + +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the uninstallation of Unbound.$\r$\n$\r$\nClick Next to continue." +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +# default section, one per component, we have one component. +section "Unbound" SectionUnbound + SectionIn RO # cannot unselect this one + # real work in postinstall +sectionEnd + +section "Root anchor - DNSSEC" SectionRootKey + # add estimated size for key (Kb) + AddSize 2 +sectionEnd + +# the /o means it is not selected by default. +section /o "DLV - dlv.isc.org" SectionDLV + # add estimated size for key (Kb) + AddSize 2 + SetOutPath $INSTDIR + + # libgcc exception lib used by NSISdl plugin (in crosscompile). + File /nonfatal "/oname=$PLUGINSDIR\libgcc_s_sjlj-1.dll" "/usr/i686-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll" + + NSISdl::download "http://ftp.isc.org/www/dlv/dlv.isc.org.key" "$INSTDIR\dlv.isc.org.key" + Pop $R0 # result from Inetc::get + ${If} $R0 != "success" + MessageBox MB_OK|MB_ICONEXCLAMATION "Download error (ftp.isc.org: $R0), click OK to abort installation" /SD IDOK + SetOutPath "C:\" + RMDir "$INSTDIR" # doesnt work directory in use by us ... + Abort + ${EndIf} +sectionEnd + +section "-hidden.postinstall" + # copy files + setOutPath $INSTDIR + File "..\LICENSE" + File "README.txt" + File "..\unbound.exe" + File "..\unbound-checkconf.exe" + File "..\unbound-control.exe" + File "..\unbound-host.exe" + File "..\unbound-anchor.exe" + File "..\unbound-service-install.exe" + File "..\unbound-service-remove.exe" + File "..\anchor-update.exe" + File "unbound-control-setup.cmd" + File "unbound-website.url" + File "service.conf" + File "..\doc\example.conf" + + # Store Root Key choice + SectionGetFlags ${SectionRootKey} $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + ${If} $R0 == ${SF_SELECTED} + ClearErrors + FileOpen $R1 "$INSTDIR\service.conf" a + IfErrors done_rk + FileSeek $R1 0 END + FileWrite $R1 "$\nserver: auto-trust-anchor-file: $\"$INSTDIR\root.key$\"$\n" + FileClose $R1 + done_rk: + WriteRegStr HKLM "Software\Unbound" "RootAnchor" "$\"$INSTDIR\unbound-anchor.exe$\" -a $\"$INSTDIR\root.key$\" -c $\"$INSTDIR\icannbundle.pem$\"" + ${Else} + WriteRegStr HKLM "Software\Unbound" "RootAnchor" "" + ${EndIf} + + # Store DLV choice + SectionGetFlags ${SectionDLV} $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + ${If} $R0 == ${SF_SELECTED} + ClearErrors + FileOpen $R1 "$INSTDIR\service.conf" a + IfErrors done_dlv + FileSeek $R1 0 END + FileWrite $R1 "$\nserver: dlv-anchor-file: $\"$INSTDIR\dlv.isc.org.key$\"$\n" + FileClose $R1 + done_dlv: + WriteRegStr HKLM "Software\Unbound" "CronAction" "$\"$INSTDIR\anchor-update.exe$\" dlv.isc.org $\"$INSTDIR\dlv.isc.org.key$\"" + ${Else} + WriteRegStr HKLM "Software\Unbound" "CronAction" "" + ${EndIf} + + # store installation folder + WriteRegStr HKLM "Software\Unbound" "InstallLocation" "$INSTDIR" + WriteRegStr HKLM "Software\Unbound" "ConfigFile" "$INSTDIR\service.conf" + WriteRegDWORD HKLM "Software\Unbound" "CronTime" 86400 + + # uninstaller + WriteUninstaller "uninst.exe" + + # register uninstaller + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "DisplayName" "Unbound" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "UninstallString" "$\"$INSTDIR\uninst.exe$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "QuietUninstallString" "$\"$INSTDIR\uninst.exe$\" /S" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "NoModify" "1" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "NoRepair" "1" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "URLInfoAbout" "http://unbound.net" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" "Publisher" "NLnet Labs" + + # start menu items + !insertmacro MUI_STARTMENU_WRITE_BEGIN UnboundStartMenu + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\unbound.net website.lnk" "$INSTDIR\unbound-website.url" "" "$INSTDIR\unbound.exe" "" "" "" "Visit the unbound website" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\uninst.exe" "" "" "" "" "" "Uninstall unbound" + !insertmacro MUI_STARTMENU_WRITE_END + + # install service entry + nsExec::ExecToLog '"$INSTDIR\unbound-service-install.exe"' + # start unbound service + nsExec::ExecToLog '"$INSTDIR\unbound-service-install.exe" start' +sectionEnd + +# set section descriptions +LangString DESC_unbound ${LANG_ENGLISH} "The base unbound DNS(SEC) validating caching resolver. $\r$\n$\r$\nStarted at boot from the Services control panel, logs to the Application Log, and the config file is its Program Files folder." +LangString DESC_rootkey ${LANG_ENGLISH} "Set up to use the DNSSEC root trust anchor. It is automatically updated. $\r$\n$\r$\nThis provides the main key that is used for security verification." +LangString DESC_dlv ${LANG_ENGLISH} "Set up to use DLV with dlv.isc.org. Downloads the key during install. $\r$\n$\r$\nIt fetches additional public keys that are used for security verification by querying the isc.org server with names encountered." + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionUnbound} $(DESC_unbound) + !insertmacro MUI_DESCRIPTION_TEXT ${SectionRootKey} $(DESC_rootkey) + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDLV} $(DESC_dlv) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +# setup macros for uninstall functions. +!ifdef UN +!undef UN +!endif +!define UN "un." + +# uninstaller section +section "un.Unbound" + # stop unbound service + nsExec::ExecToLog '"$INSTDIR\unbound-service-remove.exe" stop' + # uninstall service entry + nsExec::ExecToLog '"$INSTDIR\unbound-service-remove.exe"' + # deregister uninstall + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Unbound" + Delete "$INSTDIR\uninst.exe" # delete self + Delete "$INSTDIR\LICENSE" + Delete "$INSTDIR\README.txt" + Delete "$INSTDIR\unbound.exe" + Delete "$INSTDIR\unbound-checkconf.exe" + Delete "$INSTDIR\unbound-control.exe" + Delete "$INSTDIR\unbound-host.exe" + Delete "$INSTDIR\unbound-anchor.exe" + Delete "$INSTDIR\unbound-service-install.exe" + Delete "$INSTDIR\unbound-service-remove.exe" + Delete "$INSTDIR\anchor-update.exe" + Delete "$INSTDIR\unbound-control-setup.cmd" + Delete "$INSTDIR\unbound-website.url" + Delete "$INSTDIR\service.conf" + Delete "$INSTDIR\example.conf" + Delete "$INSTDIR\dlv.isc.org.key" + Delete "$INSTDIR\root.key" + RMDir "$INSTDIR" + + # start menu items + !insertmacro MUI_STARTMENU_GETFOLDER UnboundStartMenu $StartMenuFolder + Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\unbound.net website.lnk" + RMDir "$SMPROGRAMS\$StartMenuFolder" + + DeleteRegKey HKLM "Software\Unbound" +sectionEnd |