From 25b0e7a6e7bad8307b952c03770698b00a74087d Mon Sep 17 00:00:00 2001 From: Bert van der Weerd Date: Wed, 10 Mar 2021 13:09:35 +0100 Subject: [PATCH] Using seperate installer_win.nsi file --- .gitignore | 2 +- installer_win.nsi | 81 +++++++++++++++++++++++++++++++++++++++++++++++ installer_win.sh | 22 +++++++------ 3 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 installer_win.nsi diff --git a/.gitignore b/.gitignore index d98c261..3bfa72e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ unity-menubar.patch mozconfig Makefile librewolf -installer_win.nsi + diff --git a/installer_win.nsi b/installer_win.nsi new file mode 100644 index 0000000..c2fb520 --- /dev/null +++ b/installer_win.nsi @@ -0,0 +1,81 @@ +# +# Change these values to fit your application... +# + +!define APPNAME "LibreWolf" # Full app name, like: "Gtk+ 2.0 Hello World" +!define PROGNAME "librewolf" # executable name, like: gtk2hello +!define PROG_VERSION "86.0" # the program version, like: 0.3.0 +!define ICON_NAME "librewolf.ico" # filename of icon to use for this app +!define COMPANYNAME "LibreWolf" # Your name, or company (or just the program name) +!define ESTIMATED_SIZE 190000 # Estimated size (in KB) of installed program for use in "add or remove programs" / 190 MB + +# +# The actual installer/uninstaller, you should not need to change much here below +# + +Name "${PROGNAME}" +OutFile "${PROGNAME}-${PROG_VERSION}.en-US.win64-setup.exe" +InstallDir $PROGRAMFILES64\${APPNAME} +RequestExecutionLevel admin + +Page directory +Page instfiles + +function .onInit + setShellVarContext all +functionEnd + +Section "${PROGNAME}" + + # Copy files + SetOutPath $INSTDIR + File /r librewolf\*.* + + # Start Menu + createDirectory "$SMPROGRAMS\${COMPANYNAME}" + createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\${PROGNAME}.exe" "" "$INSTDIR\${ICON_NAME}" + + # Uninstaller + writeUninstaller "$INSTDIR\uninstall.exe" + + # Registry information for add/remove programs + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${APPNAME}" + 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\${ICON_NAME}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${PROG_VERSION}" + # 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" ${ESTIMATED_SIZE} + +SectionEnd + +# Before uninstall, ask for confirmation +function un.onInit + SetShellVarContext all + + #Verify the uninstaller - last chance to back out + MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next + Abort + next: +functionEnd + +# Uninstaller +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 + rmDir /r $INSTDIR + + # Remove uninstaller information from the registry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" + +sectionEnd diff --git a/installer_win.sh b/installer_win.sh index 144824a..a7a3b95 100644 --- a/installer_win.sh +++ b/installer_win.sh @@ -7,9 +7,11 @@ fi rm -rf ../firefox ../librewolf cp -r obj-x86_64-pc-mingw32/dist/firefox .. + pushd .. mv firefox librewolf + # apply the LibreWolf settings cp -rv settings/* librewolf # rename the executable manually @@ -23,6 +25,7 @@ cd librewolf ; rm -rf maintenanceservice* pingsender.exe firefox.*.xml precomple # be sure to remove the previous zip file.. rm -f librewolf-$pkgver.en-US.win64.zip* + zip -r9 librewolf-$pkgver.en-US.win64.zip librewolf if [ $? -ne 0 ]; then exit 1; fi sha256sum.exe librewolf-$pkgver.en-US.win64.zip > librewolf-$pkgver.en-US.win64.zip.sha256sum @@ -30,7 +33,7 @@ if [ $? -ne 0 ]; then exit 1; fi - +function generate_installer() { # generate the .nsi intaller file. cat >installer_win.nsi < librewolf-$pkgver.en-US.win64-setup.exe.sha256sum - if [ $? -ne 0 ]; then exit 1; fi - - rm -f installer_win.nsi +cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico + +makensis-3.01.exe installer_win.nsi +if [ $? -ne 0 ]; then exit 1; fi +sha256sum.exe librewolf-$pkgver.en-US.win64-setup.exe > librewolf-$pkgver.en-US.win64-setup.exe.sha256sum +if [ $? -ne 0 ]; then exit 1; fi + popd