added unbound to external deps
This commit is contained in:
228
external/unbound/winrc/setup.nsi
vendored
Normal file
228
external/unbound/winrc/setup.nsi
vendored
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user