aboutsummaryrefslogtreecommitdiff
path: root/external/unbound/winrc/setup.nsi
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2014-10-05 23:44:31 +0200
committerRiccardo Spagni <ric@spagni.net>2014-10-05 23:44:31 +0200
commit9ef094b356b4da7542c3cab898dac7e135b76903 (patch)
tree99b5876712b0b1551fc042fe75447b998e4b0fc1 /external/unbound/winrc/setup.nsi
parentsplit mnemonic printout over 3 lines (diff)
downloadmonero-9ef094b356b4da7542c3cab898dac7e135b76903.tar.xz
added unbound to external deps
Diffstat (limited to 'external/unbound/winrc/setup.nsi')
-rw-r--r--external/unbound/winrc/setup.nsi228
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