mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-11 15:04:03 +03:00
d1693c27c0
the windows installer package generation was not correctly parameterised which resulted in fetching resources from incorrect locations. Additionally the clean target was not removing generated installer output.
163 lines
6.4 KiB
Plaintext
163 lines
6.4 KiB
Plaintext
# 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
|