diff --git a/packaging/nsis/Makefile.nmake b/packaging/nsis/Makefile.nmake index d005b1d9c9..1af5bf38fe 100644 --- a/packaging/nsis/Makefile.nmake +++ b/packaging/nsis/Makefile.nmake @@ -137,6 +137,10 @@ wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe : user-guide.chm $(NSI) $( /DGTK_WIMP_RCSRC_DIR=$(GTK_WIMP_RCSRC_DIR) \ /DINTL_DLL=$(INTL_DLL) \ /DVERSION=$(VERSION) \ + /DVERSION_MAJOR=$(VERSION_MAJOR) \ + /DVERSION_MINOR=$(VERSION_MINOR) \ + /DVERSION_MICRO=$(VERSION_MICRO) \ + /DVERSION_BUILD=$(VERSION_BUILD) \ /DPRODUCT_VERSION=$(PRODUCT_VERSION) \ /DWTAP_VERSION=$(WTAP_VERSION) \ !IF "$(C_ARES_DIR)" != "" diff --git a/packaging/nsis/wireshark.nsi b/packaging/nsis/wireshark.nsi index a3c8a67ce1..1e7ca8e210 100644 --- a/packaging/nsis/wireshark.nsi +++ b/packaging/nsis/wireshark.nsi @@ -32,7 +32,8 @@ InstType "un.All (remove all)" !define BITS 64 !endif -Name "${PROGRAM_NAME} ${VERSION} (${BITS}-bit)" +!define DISPLAY_NAME "${PROGRAM_NAME} ${VERSION} (${BITS}-bit)" +Name "${DISPLAY_NAME}" ; VIAddVersionKey "ProductName" "${PROGRAM_NAME}" @@ -690,15 +691,29 @@ File "..\..\wireshark-gtk2\help\display_filters.txt" File "..\..\wireshark-gtk2\help\faq.txt" ; Write the uninstall keys for Windows -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "DisplayVersion" "${VERSION}" -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "DisplayName" "Wireshark ${VERSION}" -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "UninstallString" '"$INSTDIR\uninstall.exe"' -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "Publisher" "The Wireshark developer community, http://www.wireshark.org" -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "HelpLink" "http://ask.wireshark.org/" -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "URLInfoAbout" "http://www.wireshark.org" -WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "URLUpdateInfo" "http://www.wireshark.org/download/${WIRESHARK_TARGET_PLATFORM}/" -WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "NoModify" 1 -WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wireshark" "NoRepair" 1 +; http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs +; http://msdn.microsoft.com/en-us/library/ms954376.aspx +; http://msdn.microsoft.com/en-us/library/windows/desktop/aa372105.aspx +!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}" + +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "Comments" "${DISPLAY_NAME}" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\wireshark.exe,0" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayName" "${DISPLAY_NAME}" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "HelpLink" "http://ask.wireshark.org/" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "InstallLocation" "$INSTDIR" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "Publisher" "The Wireshark developer community, http://www.wireshark.org" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "URLInfoAbout" "http://www.wireshark.org" +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "URLUpdateInfo" "http://www.wireshark.org/download.html" + +WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "NoModify" 1 +WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "NoRepair" 1 +WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "VersionMajor" ${VERSION_MAJOR} +WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "VersionMinor" ${VERSION_MINOR} + +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "UninstallString" '"$INSTDIR\uninstall.exe"' +WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "QuietUninstallString" '"$INSTDIR\uninstall.exe" /S' + WriteUninstaller "uninstall.exe" ; Write an entry for ShellExecute @@ -995,6 +1010,15 @@ File "user-guide.chm" SectionEnd !endif +Section "-Finally" + +; Compute and write the installation directory size +${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 +IntFmt $0 "0x%08X" $0 +WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "EstimatedSize" "$0" + +SectionEnd + Section "Uninstall" un.SecUinstall ;-------------------------------------------