# This installs NetSurf execuatables and resources, creates a start menu shortcut, builds an uninstaller, and # adds uninstall information to the registry for Add/Remove Programs # show up in a few places. # All the other settings can be tweaked by editing the !defines at the top of this script !define APPNAME "NetSurf" !define COMPANYNAME "NetSurf" !define DESCRIPTION "Web Browser" # The version values must be simple integers !ifndef VERSIONMAJOR !define VERSIONMAJOR 3 !endif !ifndef VERSIONMINOR !define VERSIONMINOR 7 !endif !ifndef VERSIONBUILD !define VERSIONBUILD 0 !endif # These will be displayed by the "Click here for support information" link in "Add/Remove Programs" !define HELPURL "http://www.netsurf-browser.org/" # "Support Information" link !define UPDATEURL "http://www.netsurf-browser.org/" # "Product Updates" link !define ABOUTURL "http://www.netsurf-browser.org/" # "Publisher" link # This is the size (in kB) of all the files copied into "Program Files" !define INSTALLSIZE 9000 # output filename !ifndef OUTFNAME !define OUTFNAME "netsurf-installer.exe" !endif # path to resources !ifndef RESDIR !define RESDIR "frontends/windows/res" !endif RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}" # rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n) LicenseData "COPYING" # This will be in the installer/uninstaller's title bar Name "${COMPANYNAME} - ${APPNAME}" Icon "${RESDIR}\NetSurf.ico" outFile "${OUTFNAME}" BrandingText "${COMPANYNAME}" !include LogicLib.nsh # Just three pages - license agreement, install location, and installation page license page directory Page instfiles !macro VerifyUserIsAdmin UserInfo::GetAccountType pop $0 ${If} $0 != "admin" ;Require admin rights on NT4+ messageBox mb_iconstop "Administrator rights required!" setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED quit ${EndIf} !macroend function .onInit setShellVarContext all !insertmacro VerifyUserIsAdmin functionEnd section "install" # Files for the install directory # Default output path setOutPath $INSTDIR # Files added here should be removed by the uninstaller section file "NetSurf.exe" file /oname=NetSurf.ico "${RESDIR}\NetSurf.ico" file /oname=default.css "${RESDIR}\default.css" file /oname=internal.css "${RESDIR}\internal.css" file /oname=adblock.css "${RESDIR}\adblock.css" file /oname=welcome.html "${RESDIR}\welcome.html" file /oname=credits.html "${RESDIR}\credits.html" file /oname=licence.html "${RESDIR}\licence.html" file /oname=netsurf.png "${RESDIR}\netsurf.png" file /oname=messages "${OBJROOT}\messages-en" file /oname=ca-bundle.crt "${RESDIR}\ca-bundle.crt" # Uninstaller - See function un.onInit and section "uninstall" for configuration writeUninstaller "$INSTDIR\uninstall.exe" # Start Menu createDirectory "$SMPROGRAMS\${COMPANYNAME}" createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\NetSurf.exe" "" "$INSTDIR\NetSurf.ico" # Registry information for add/remove programs WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\NetSurf.ico$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\"" WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR} WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR} # There is no option for modifying or repairing the install WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1 # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE} sectionEnd # Uninstaller function un.onInit SetShellVarContext all #Verify the uninstaller - last chance to back out MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next Abort next: !insertmacro VerifyUserIsAdmin functionEnd section "uninstall" # Remove Start Menu launcher delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" # Try to remove the Start Menu folder - this will only happen if it is empty rmDir "$SMPROGRAMS\${COMPANYNAME}" # Remove files delete $INSTDIR\NetSurf.exe delete $INSTDIR\NetSurf.ico delete $INSTDIR\libcares-2.dll delete $INSTDIR\libgnurx-0.dll delete $INSTDIR\default.css delete $INSTDIR\internal.css delete $INSTDIR\adblock.css delete $INSTDIR\welcome.html delete $INSTDIR\credits.html delete $INSTDIR\licence.html delete $INSTDIR\netsurf.png delete $INSTDIR\messages delete $INSTDIR\ca-bundle.crt # Always delete uninstaller as the last action delete $INSTDIR\uninstall.exe # Try to remove the install directory - this will only happen if it is empty rmDir $INSTDIR # Remove uninstaller information from the registry DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" sectionEnd