Page MenuHome GnuPG

No OneTemporary

diff --git a/src/inst-gpg4win.nsi b/src/inst-gpg4win.nsi
index fa104987..cc2884c2 100644
--- a/src/inst-gpg4win.nsi
+++ b/src/inst-gpg4win.nsi
@@ -1,136 +1,137 @@
# inst-gpg4win.nsi - Hidden section for common files. -*- coding: latin-1; -*-
# Copyright (C) 2006 g10 Code GmbH
#
# This file is part of GPG4Win.
#
# GPG4Win is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPG4Win is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
# This is the very first section installed.
Section "-gpg4win" SEC_gpg4win
!ifdef SOURCES
SetOutPath "$INSTDIR"
File "${BUILD_DIR}/../gpg4win-${VERSION}.tar.bz2"
!else
+ Call KillOtherAppsOrWarn
StrCpy $is_update "0"
# Start the slideshow.
SetDetailsPrint none
SetOutPath "$PLUGINSDIR\Slides"
File "${BUILD_DIR}/slideshow/slide1-gpgol.png"
File "${BUILD_DIR}/slideshow/slide2-gpgex.png"
#File "${BUILD_DIR}/slideshow/slide3-kleopatra.png"
File "${BUILD_DIR}/slideshow/slide4-summary.png"
File "${BUILD_DIR}/slideshow/slides.dat"
g4wihelp::slide_show /NOUNLOAD /CCOLOR=0x000000 "/auto=$PLUGINSDIR\Slides\slides.dat" /FIT=WIDTH
SetDetailsPrint both
SetOutPath "$INSTDIR"
# Uninstall an old version if found.
ClearErrors
ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "DisplayVersion"
IfErrors skip_uninst 0
StrCmp $0 "" skip_uninst
DetailPrint "$(T_UninstallingOldVersion)$0"
ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "UninstallString"
IfErrors skip_uninst 0
ReadRegStr $1 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "InstallLocation"
IfErrors skip_uninst 0
ExecWait '$0 /S /UPDATE=1 _?=$1'
# Deleting here does not work?
StrCpy $is_update "1"
Delete /REBOOTOK "$1\gpg4win-uninstall.exe"
RmDir "$1"
SetOutPath "$INSTDIR\share\gpg4win"
skip_uninst:
SetOutPath "$INSTDIR\share\gpg4win"
File "${BUILD_DIR}/README.en.txt"
File "${BUILD_DIR}/README.de.txt"
File /oname=README.ar.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.cz.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.es.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.fr.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.it.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.no.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.pt.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.ru.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.zh_CN.txt "${BUILD_DIR}/README.en.txt"
File /oname=README.zh_TW.txt "${BUILD_DIR}/README.en.txt"
File "${BUILD_DIR}/HOWTO-SMIME.en.txt"
File "${BUILD_DIR}/HOWTO-SMIME.de.txt"
File "${BUILD_DIR}/versioninfo.txt"
# Write a version file.
DetailPrint "Opening VERSION file for writing"
FileOpen $0 "$INSTDIR\VERSION" w
FileWrite $0 "${PACKAGE}$\r$\n"
FileWrite $0 "${VERSION}$\r$\n"
FileClose $0
DetailPrint "VERSION closed"
# Register the install directory for Gpg4win suite.
WriteRegStr SHCTX "Software\${PRETTY_PACKAGE_SHORT}" "Install Directory" $INSTDIR
DetailPrint "Saved install directory in the registry"
# We used to determine the language using a Registry entry.
# Although we don't want to delete the user's Lang Registry Setting
# because he might have have selected a different language than his
# default. We delete the global Lang of the installation.
DeleteRegValue SHCTX "Software\GNU\GnuPG" "Lang"
DetailPrint "Deleted obsolete Lang entry"
# This old key is required for GPGee. Please do not use in new
# applications.
# Note: We don't use it anymore so that gpgme decides what gpg to use
# For the new gpg4win we actually use gpg2.exe.
# To cope with old installations we actually remove this value.
# However we can only remove the SHCTX version not those set by
# the user under HKCU.
#WriteRegStr SHCTX "Software\GNU\GnuPG" "gpgProgram" "$INSTDIR\gpg.exe"
DeleteRegValue SHCTX "Software\GNU\GnuPG" "gpgProgram"
DetailPrint "Deleted obsolete gpgProgram value"
# Install gpg4win included tools
SetOutPath "$INSTDIR\bin"
File "${BUILD_DIR}/sha1sum.exe"
SetOutPath "$INSTDIR\bin"
File "${BUILD_DIR}/sha256sum.exe"
File "${BUILD_DIR}/md5sum.exe"
File "${BUILD_DIR}/mkportable.exe"
# Install the mingw32 runtime libraries. They are stored in the
# build directory with a different suffix, so that makensis does not
# list symbol names.
File /oname=libstdc++-6.dll "${BUILD_DIR}/libstdc++-6.dll-x"
File /oname=libgcc_s_sjlj-1.dll "${BUILD_DIR}/libgcc_s_sjlj-1.dll-x"
File /oname=libwinpthread-1.dll "${BUILD_DIR}/libwinpthread-1.dll-x"
!endif
SectionEnd
LangString DESC_Menu_gpg4win_readme ${LANG_ENGLISH} \
"General information on Gpg4win"
LangString DESC_Menu_gpg4win_howtosmime ${LANG_ENGLISH} \
"Instruction to configure S/MIME"
LangString DESC_Menu_gnupg_faq ${LANG_ENGLISH} \
"Show the Frequently Asked Questions document for GnuPG"
diff --git a/src/installer.nsi b/src/installer.nsi
index 24b8f908..4abd691f 100644
--- a/src/installer.nsi
+++ b/src/installer.nsi
@@ -1,803 +1,802 @@
# installer.nsi - Installer for GnuPG 4 Windows. -*- coding: latin-1; -*-
# Copyright (C) 2005, 2007 g10 Code GmbH
# Copyright (C) 2017 Intevation GmbH
#
# This file is part of GPG4Win.
#
# GPG4Win is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPG4Win is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
# No servicable parts beyond this line. Stay clear :)
!ifdef REQUIRE_W32_NSIS
!ifdef PACKAGE_LIBRARY
!include "Library.nsh"
!endif
!else
!macro InstallLib libtype shared install localfile destfile tempbasedir
File "${localfile}"
!macroend
!endif
!include "FileFunc.nsh"
!include "WinMessages.nsh"
!include "WinVer.nsh"
# We use the modern UI 2.
!include "MUI2.nsh"
!ifdef DEBUG
!undef DEBUG
!endif
# Set the package name. Note that this name should not be sufficed
# with the version because this would get displayed in the start menu.
Name "${PRETTY_PACKAGE}"
OutFile "${PACKAGE}-${VERSION}.exe"
BrandingText "${PRETTY_PACKAGE}-${VERSION}"
# Details button conflicts with splashscreen
ShowInstDetails nevershow
# Set the installation directory.
!ifndef INSTALL_DIR
!define INSTALL_DIR "${PACKAGE}"
!endif
InstallDir "$PROGRAMFILES\${INSTALL_DIR}"
# Add version information to the file properties.
VIProductVersion "${PROD_VERSION}"
VIAddVersionKey "ProductName" "${PRETTY_PACKAGE_SHORT} (${VERSION})"
!ifdef LICENSE_GPL
VIAddVersionKey "Comments" \
"${PRETTY_PACKAGE_SHORT} is Free Software; you can redistribute it \
and/or modify it under the terms of the GNU General Public License. \
You should have received a copy of the GNU General Public License \
along with this software; if not, write to the Free Software \
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \
MA 02110-1301, USA"
!else
VIAddVersionKey "Comments" \
"${PRETTY_PACKAGE_SHORT} is Free Software; you can redistribute it \
and/or modify it under the terms of the GNU Lesser General Public \
License. You should have received a copy of the GNU Lesser General \
Public License along with this software; if not, write to the Free \
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \
MA 02110-1301, USA"
!endif
VIAddVersionKey "CompanyName" "${COMPANY}"
VIAddVersionKey "LegalTrademarks" ""
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
VIAddVersionKey "FileDescription" "${DESCRIPTION}"
VIAddVersionKey "FileVersion" "${PROD_VERSION}"
# Set to the name of another GnuPG installation if one has been detected
Var OtherGnuPGDetected
# Interface Settings
# !define MUI_ABORTWARNING
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP \
"${TOP_SRCDIR}/doc/logo/gpg4win-nsis-header-install-150x57.bmp"
!define MUI_HEADERIMAGE_UNBITMAP \
"${TOP_SRCDIR}/doc/logo/gpg4win-nsis-header-uninstall-150x57.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP \
"${TOP_SRCDIR}/doc/logo/gpg4win-nsis-wizard-install-164x314.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP \
"${TOP_SRCDIR}/doc/logo/gpg4win-nsis-wizard-uninstall-164x314.bmp"
!define MUI_ICON "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-install.ico"
!define MUI_UNICON "${TOP_SRCDIR}/doc/logo/gpg4win-nsis-uninstall.ico"
# Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "SHCTX"
!define MUI_LANGDLL_REGISTRY_KEY "Software\${PRETTY_PACKAGE_SHORT}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
# No Umlaute, please!
!define MUI_LANGDLL_INFO "Please choose a language for the setup.$\r$\n\
Bitte die Sprache des Installations-Vorgangs angeben."
# The list of wizard pages.
!define MUI_WELCOMEPAGE_TITLE "${WELCOME_TITLE_STR}"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeFunction
!define MUI_WELCOMEPAGE_TEXT "${ABOUT_STR}"
!insertmacro MUI_PAGE_WELCOME
Function WelcomeFunction
IfSilent leave
ClearErrors
ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "DisplayVersion"
IfErrors leave 0
StrCmp $0 "" leave
SendMessage $mui.WelcomePage.Text ${WM_SETTEXT} 0 "STR:${ABOUT_STR}$\r$\n$(T_UPDATE_STR) $0"
leave:
FunctionEnd
#!define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
#!define MUI_PAGE_HEADER_SUBTEXT "$(T_GPLHeader)"
#!insertmacro MUI_PAGE_LICENSE "license.blurb"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW PrintNonAdminWarning
!insertmacro MUI_PAGE_COMPONENTS
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckExistingVersion
!insertmacro MUI_PAGE_DIRECTORY
!define MUI_PAGE_CUSTOMFUNCTION_PRE BeforeInstallHooks
!insertmacro MUI_PAGE_INSTFILES
# Finish page
!ifndef SOURCES
!define MUI_PAGE_CUSTOMFUNCTION_PRE ShowFinalWarnings
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishFunction
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_FUNCTION RunAsUser
!define MUI_FINISHPAGE_SHOWREADME "share\gpg4win\README.$(T_LangCode).txt"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(T_ShowReadme)"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_LINK "$(T_MoreInfo)"
!define MUI_FINISHPAGE_LINK_LOCATION "$(T_MoreInfoURL)"
!insertmacro MUI_PAGE_FINISH
Function FinishFunction
IfSilent leave
!insertmacro SectionFlagIsSet ${SEC_kleopatra} \
${SF_SELECTED} have_kleo check_gpa
check_gpa:
!insertmacro SectionFlagIsSet ${SEC_gpa} \
${SF_SELECTED} have_gpa have_nothing
have_nothing:
ShowWindow $mui.FinishPage.Run ${SW_HIDE}
goto leave
have_kleo:
SendMessage $mui.FinishPage.Run.Text ${WM_SETTEXT} 0 "STR:$(T_RunKleopatra)"
goto leave
have_gpa:
SendMessage $mui.FinishPage.Run.Text ${WM_SETTEXT} 0 "STR:$(T_RunGPA)"
leave:
FunctionEnd
Function RunAsUser
!insertmacro SectionFlagIsSet ${SEC_kleopatra} \
${SF_SELECTED} do_kleo skip_kleo
do_kleo:
g4wihelp::DesktopShellRun "$INSTDIR\bin\kleopatra.exe"
goto leave
skip_kleo:
!insertmacro SectionFlagIsSet ${SEC_gpa} \
${SF_SELECTED} do_gpa leave
do_gpa:
g4wihelp::DesktopShellRun "$INSTDIR\bin\gpa.exe"
leave:
FunctionEnd
LangString T_RunKleopatra ${LANG_ENGLISH} \
"Run Kleopatra"
LangString T_RunGPA ${LANG_ENGLISH} \
"Run GPA"
# /SOURCES
!endif
# Uninstaller pages.
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!ifndef SOURCES
!define MUI_PAGE_CUSTOMFUNCTION_PRE un.CloseApps
!endif
!insertmacro MUI_UNPAGE_INSTFILES
#!insertmacro MUI_UNPAGE_FINISH
#Page license
#Page components
#Page directory
#Page instfiles
#UninstPage uninstConfirm
#UninstPage instfiles
# Language support. This has to be done after defining the pages, but
# before defining the translation strings. Confusing.
# Enable this to not filter languages for the current code page. Note
# that languages which are then not filtered out may not be displayed
# correctly in the Windows version the user is using. Not recommended,
# but can be useful for testing.
!ifdef DEBUG
!define MUI_LANGDLL_ALLLANGUAGES
!endif
!insertmacro MUI_LANGUAGE "English"
!define PO_HEADER
!include "../po/catalogs.nsi"
!undef PO_HEADER
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "${BUILD_DIR}\g4wihelp.dll"
!ifdef SOURCES
ReserveFile "${TOP_SRCDIR}\doc\logo\gpg4win-logo-400px.bmp"
ReserveFile "${TOP_SRCDIR}\src\gpg4win-splash.wav"
!endif
ReserveFile "${TOP_SRCDIR}\COPYING"
ReserveFile "${TOP_SRCDIR}\doc\logo\gpg4win-logo-164x314.bmp"
# Language support
LangString T_LangCode ${LANG_ENGLISH} "en"
# Startup page
LangString T_GPLHeader ${LANG_ENGLISH} \
"This software is licensed under the terms of the GNU General Public \
License (GNU GPL)."
LangString T_GPLShort ${LANG_ENGLISH} \
"In short: You are allowed to run this software for any purpose. \
You may distribute it as long as you give the recipients the same \
rights you have received."
LangString T_MoreInfo ${LANG_ENGLISH} \
"Go to Gpg4win's webpage"
LangString T_MoreInfoURL ${LANG_ENGLISH} "https://www.gpg4win.org"
LangString T_ShowReadme ${LANG_ENGLISH} \
"Show the README file"
LangString T_NoKeyManager ${LANG_ENGLISH} \
"No key manager has been installed, thus we can't run one now."
# Used as subdirectory name in Start Menu.
LangString DESC_Menu_manuals ${LANG_ENGLISH} \
"Documentation"
LangString DESC_Menu_uninstall ${LANG_ENGLISH} \
"Uninstall"
# Used as subdirectory name on Desktop.
LangString DESC_Desktop_manuals ${LANG_ENGLISH} \
"Gpg4win Documentation"
# Functions
# Custom functions and macros for gpg4win.
!include "g4wihelp.nsi"
# Display a warning if this is a Beta version.
#Function PrintBetaWarning
# MessageBox MB_OK "$(T_BetaWarning)"
#FunctionEnd
# Display a warning if GnuPP has been detected and allow the user to abort
# the installation.
Function PrintGnuPPWarning
MessageBox MB_YESNO "$(T_FoundOldGnuPP)" IDYES cont
Abort
cont:
StrCpy $OtherGnuPGDetected "GnuPP"
FunctionEnd
# Display a warning if GnuPT has been detected and allow the user to abort
# the installation.
Function PrintGnuPTWarning
MessageBox MB_YESNO "$(T_FoundOldGnuPT)" IDYES cont
Abort
cont:
StrCpy $OtherGnuPGDetected "GnuPT"
FunctionEnd
# Display a warning if the Sourceforge WinPT has been detected and
# allow the user to abort the installation.
Function PrintWinPTSFWarning
MessageBox MB_YESNO "$(T_FoundOldWinPTSF)" IDYES cont
Abort
cont:
StrCpy $OtherGnuPGDetected "WinPT-SF"
FunctionEnd
# Display a warning if GnuPG Pack has been detected and abort the
# the installation. This one clobbers our own Registry space.
Function PrintGnuPackWarning
MessageBox MB_OK "$(T_FoundOldGnuPack)"
Abort
FunctionEnd
# Check whether one of the other GnuPG systems has already been
# installed. We do this by looking at the registry.
!ifndef SOURCES
Function CheckOtherGnuPGApps
StrCpy $OtherGnuPGDetected ""
ClearErrors
ReadRegStr $0 SHCTX "Software\GNU\GnuPP\Settings" "Path"
IfErrors +2 0
Call PrintGnuPPWarning
EnumRegKey $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\GnuPT" 0
StrCmp $0 "" +2
Call PrintGnuPTWarning
ClearErrors
ReadRegStr $0 SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Windows Privacy Tools" "DisplayVersion"
IfErrors +2 0
Call PrintWinPTSFWarning
ReadRegStr $0 SHCTX "Software\GNU\GnuPG" "Install Directory"
Push $0
Push "GnuPG-Pack"
Call StrStr
Pop $0
StrCmp $0 "" +2
Call PrintGnuPackWarning
FunctionEnd
!endif
# Check whether gpg4win has already been installed. This is called as
# a leave function from the directory page. A call to abort will get
# back to the directory selection.
Function CheckExistingVersion
ClearErrors
FileOpen $0 "$INSTDIR\VERSION" r
IfErrors leave
FileRead $0 $R0
FileRead $0 $R1
FileClose $0
Push $R1
Call TrimNewLines
Pop $R1
# Extract major version.
StrCpy $0 $R1 2
StrCmp $0 "1." 0 leave
MessageBox MB_YESNO "$(T_FoundExistingOldVersion)" IDYES leave
Abort
leave:
FunctionEnd
# PrintNonAdminWarning
# Check whether the current user is in the Administrator group or an
# OS version without the need for an Administrator is in use. Print a
# diagnostic if this is not the case and abort installation.
Function PrintNonAdminWarning
#Call PrintBetaWarning
ClearErrors
UserInfo::GetName
IfErrors leave
Pop $0
UserInfo::GetAccountType
Pop $1
StrCmp $1 "Admin" leave +1
MessageBox MB_YESNO "$(T_AdminWanted)" IDNO exit
goto leave
exit:
Quit
leave:
FunctionEnd
# Check for claws mail installation which was shipped in Gpg4win
# versions < 2.2.6
Function CheckClawsUninstall
IfFileExists $INSTDIR\claws-mail.exe 0 leave
MessageBox MB_YESNO "$(T_FoundOldClaws)" IDYES uninstall IDNO leave
uninstall:
!insertmacro SelectSection ${SecUninstClawsMail}
leave:
FunctionEnd
# Check whether this is a reinstall and popup a message box to explain
# that it is better to close other apps before continuing
-Function PrintCloseOtherApps
+Function KillOtherAppsOrWarn
g4wihelp::KillProc "kleopatra.exe"
g4wihelp::KillProc "gpa.exe"
g4wihelp::KillProc "gpgme-w32spawn.exe"
g4wihelp::KillProc "resolver.exe"
g4wihelp::KillProc "overlayer.exe"
g4wihelp::KillProc "gpg-agent.exe"
g4wihelp::KillProc "gpg.exe"
g4wihelp::KillProc "dirmngr.exe"
g4wihelp::KillProc "gpgsm.exe"
goto leave
# TODO check for running outlook and offer to kill it.
print_warning:
MessageBox MB_OK|MB_ICONEXCLAMATION "$(T_CloseOtherApps)"
leave:
FunctionEnd
Function un.CloseApps
g4wihelp::KillProc "kleopatra.exe"
g4wihelp::KillProc "gpa.exe"
g4wihelp::KillProc "gpgme-w32spawn.exe"
g4wihelp::KillProc "resolver.exe"
g4wihelp::KillProc "overlayer.exe"
g4wihelp::KillProc "gpg-agent.exe"
g4wihelp::KillProc "gpg.exe"
g4wihelp::KillProc "dirmngr.exe"
g4wihelp::KillProc "gpgsm.exe"
FunctionEnd
# Called right before installation
Function BeforeInstallHooks
- Call PrintCloseOtherApps
Call CheckClawsUninstall
FunctionEnd
# Called right before the final page to show more warnings.
Function ShowFinalWarnings
StrCmp $OtherGnupgDetected "" +2
MessageBox MB_OK "$(T_FoundOldSeeManual)"
leave:
FunctionEnd
#-----------------------------------------------
# Strings pertaining to the install options page
#-----------------------------------------------
# Installation options title
LangString T_InstallOptions ${LANG_ENGLISH} "Install Options"
# Installation options subtitle 1
LangString T_InstallOptLinks ${LANG_ENGLISH} "Start links"
LangString T_InstOptLabelA ${LANG_ENGLISH} \
"Please select where Gpg4win shall install links:"
LangString T_InstOptLabelB ${LANG_ENGLISH} \
"(Only programs will be linked into the quick launch bar.)"
LangString T_InstOptFieldA ${LANG_ENGLISH} \
"Start Menu"
LangString T_InstOptFieldB ${LANG_ENGLISH} \
"Desktop"
LangString T_InstOptFieldC ${LANG_ENGLISH} \
"Quick Launch Bar"
#------------------------------------------------
# String pertaining to the existing version check
#------------------------------------------------
LangString T_FoundExistingVersion ${LANG_ENGLISH} \
"Version $R1 has already been installed. $\r$\n\
Do you want to overwrite it with version ${VERSION}?"
LangString T_FoundExistingOldVersion ${LANG_ENGLISH} \
"An old version $R1 has already been installed. It is \
strongly recommended to deinstall previous versions on \
major upgrades. $\r$\n\
Do you want to continue installing Gpg4win ${VERSION} anyway?"
LangString T_UninstallingOldVersion ${LANG_ENGLISH} \
"Uninstalling Gpg4win-"
#---------------------------------------------
# From the old installation checking functions
#---------------------------------------------
LangString T_FoundOldSeeManual ${LANG_ENGLISH} \
"Please see the Gpg4win user manual to learn how to migrate existing \
keys from other GnuPG based installations to Gpg4win."
#---------
LangString T_FoundOldGnuPP ${LANG_ENGLISH} \
"An old installation of GnuPP (GNU Privacy Project) has been \
detected. That software is not maintained anymore and thus should \
be removed. $\r$\n\
$\r$\n\
Do you want to continue installing Gpg4win and take care of the old \
installation later?"
#---------
LangString T_FoundOldGnuPT ${LANG_ENGLISH} \
"An installation of GnuPT has been detected. This may cause \
problems when used along with Gpg4win. $\r$\n\
$\r$\n\
Do you want to continue installing Gpg4win?"
#---------
LangString T_FoundOldWinPTSF ${LANG_ENGLISH} \
"An old installation of the Sourceforge hosted WinPT has been \
detected. That software is not maintained anymore and should \
be removed. $\r$\n\
$\r$\n\
Do you want to continue installing Gpg4win and take care of the old \
installation later?"
#--------
LangString T_FoundOldGnuPack ${LANG_ENGLISH} \
"An installation of GnuPG-Pack has been detected. You need to \
uninstall it before you can continue with Gpg4win installation. $\r$\n\
$\r$\n\
The installation will be aborted now!"
# From Function PrintBetaWarning
LangString T_BetaWarning ${LANG_ENGLISH} \
"Note: This is a BETA version of Gpg4win. $\r$\n\
$\r$\n\
Beta versions are only intended for testing and \
shall not be used in a production environment."
# From Function PrintNonAdminWarning
LangString T_AdminWanted ${LANG_ENGLISH} \
"Warning: It is recommended to install Gpg4win system-wide with \
administrator rights. \
$\r$\n\
$\r$\n\
Do you want to continue installing Gpg4win without administrator rights?"
-# From Function PrintCloseOtherApps
+# From Function KillOtherAppsOrWarn
LangString T_CloseOtherApps ${LANG_ENGLISH} \
"Please make sure that other applications are not running. \
In particular you should close Outlook and all Explorer \
windows. Gpg4win will try to install anyway but a reboot \
will be required then."
LangString T_ShuttingDownWinPT ${LANG_ENGLISH} \
"Trying to shutdown a possible running instance of WinPT."
# From Function CheckClawsUninstall
LangString T_FoundOldClaws ${LANG_ENGLISH} \
"An old version of Claws Mail was found in your Installation directory. \
$\r$\nPlease note that Claws Mail is no longer bundled with Gpg4win \
and is now available as a standalone package.$\r$\n\
You should uninstall Claws Mail now, and if you wish to \
continue to use it, install an up-to-date version from:$\r$\n\
http://www.claws-mail.org/win32 $\r$\n$\r$\n\
Uninstall Claws Mail from Gpg4win now?"
# From Function CheckClawsUninstall
LangString T_WinisDeprecated ${LANG_ENGLISH} \
"Windows Versions before Windows 7 are no longer maintained by Gpg4win. \
$\r$\nSupport for them may be removed in a future version.\
$\r$\n$\r$\nKleopatra is disabled."
# From Function WelcomeFunction
LangString T_UPDATE_STR ${LANG_ENGLISH} \
"Updating Version"
# FIXME: The GetAfterChar function comes from the NSIS wiki.
Function un.GetAfterChar
Exch $0 ; chop char
Exch
Exch $1 ; input string
Push $2
Push $3
StrCpy $2 0
loop:
IntOp $2 $2 - 1
StrCpy $3 $1 1 $2
StrCmp $3 "" 0 +3
StrCpy $0 ""
Goto exit2
StrCmp $3 $0 exit1
Goto loop
exit1:
IntOp $2 $2 + 1
StrCpy $0 $1 "" $2
exit2:
Pop $3
Pop $2
Pop $1
Exch $0 ; output
FunctionEnd
Function un.SourceDelete
Push "/"
Call un.GetAfterChar
Pop $R0
Delete "$INSTDIR\$R0"
FunctionEnd
# StrStr - taken from the NSIS reference
# input, top of stack = string to search for
# top of stack-1 = string to search in
# output, top of stack (replaces with the portion of the string remaining)
# modifies no other variables.
#
# Usage:
# Push "this is a long ass string"
# Push "ass"
# Call StrStr
# Pop $R0
# ($R0 at this point is "ass string")
#
!macro StrStr un
Function ${un}StrStr
Exch $R1 # st=haystack,old$R1, $R1=needle
Exch # st=old$R1,haystack
Exch $R2 # st=old$R1,old$R2, $R2=haystack
Push $R3
Push $R4
Push $R5
StrLen $R3 $R1
StrCpy $R4 0
# $R1=needle
# $R2=haystack
# $R3=len(needle)
# $R4=cnt
# $R5=tmp
loop:
StrCpy $R5 $R2 $R3 $R4
StrCmp $R5 $R1 done
StrCmp $R5 "" done
IntOp $R4 $R4 + 1
Goto loop
done:
StrCpy $R1 $R2 "" $R4
Pop $R5
Pop $R4
Pop $R3
Pop $R2
Exch $R1
FunctionEnd
!macroend
# TrimNewlines - taken from the NSIS reference
# input, top of stack (e.g. whatever$\r$\n)
# output, top of stack (replaces, with e.g. whatever)
# modifies no other variables.
Function TrimNewlines
Exch $R0
Push $R1
Push $R2
StrCpy $R1 0
loop:
IntOp $R1 $R1 - 1
StrCpy $R2 $R0 1 $R1
StrCmp $R2 "$\r" loop
StrCmp $R2 "$\n" loop
IntOp $R1 $R1 + 1
IntCmp $R1 0 no_trim_needed
StrCpy $R0 $R0 $R1
no_trim_needed:
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
Function .onInit
Call G4wRunOnce
SetOutPath $TEMP
!ifdef SOURCES
File /oname=gpgspltmp.bmp "${TOP_SRCDIR}/doc/logo/gpg4win-logo-400px.bmp"
# We play the tune only for the source installer
File /oname=gpgspltmp.wav "${TOP_SRCDIR}/src/gpg4win-splash.wav"
g4wihelp::playsound $TEMP\gpgspltmp.wav
g4wihelp::showsplash 2500 $TEMP\gpgspltmp.bmp
Delete $TEMP\gpgspltmp.bmp
# Note that we delete gpgspltmp.wav in .onInst{Failed,Success}
!else
${GetParameters} $R0
ClearErrors
${GetOptions} $R0 /MINIMAL= $is_minimal
Var /GLOBAL changed_dir
# Check if the install directory was modified on the command line
StrCmp "$INSTDIR" "$PROGRAMFILES\${INSTALL_DIR}" unmodified 0
# It is modified. Save that value.
StrCpy $changed_dir "$INSTDIR"
# MULITUSER_INIT overwrites directory setting from command line
!insertmacro MULTIUSER_INIT
StrCpy $INSTDIR "$changed_dir"
goto initDone
unmodified:
!insertmacro MULTIUSER_INIT
!endif
initDone:
# Enable this to force a language selection dialog on every run (the
# preferred language is the default). Otherwise, the preferred
# language is stored in the registry, and the installer does not ask
# on upgrades.
!ifdef DEBUG
!define MUI_LANGDLL_ALWAYSSHOW
!endif
!insertmacro MUI_LANGDLL_DISPLAY
${IfNot} ${AtLeastWin7}
MessageBox MB_OK "$(T_WinisDeprecated)"
${Endif}
${MementoSectionRestore}
Call CalcDefaults
Call CalcDepends
!ifndef SOURCES
Call CheckOtherGnuPGApps
!endif
FunctionEnd
Function un.onInit
!ifndef SOURCES
!insertmacro MULTIUSER_UNINIT
!endif
# Remove the language preference.
!insertmacro MUI_UNGETLANGUAGE
!ifndef SOURCES
StrCpy $is_update "0"
${un.GetParameters} $R0
ClearErrors
${un.GetOptions} $R0 /UPDATE= $R1
IfErrors +2
StrCpy $is_update "1"
!endif
FunctionEnd
# This must be in a central place. Urgs.
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!ifdef HAVE_PKG_GNUPG_W32
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gnupg_w32} $(DESC_SEC_gnupg_w32)
!endif
!ifdef HAVE_PKG_GPGOL
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgol} $(DESC_SEC_gpgol)
!endif
!ifdef HAVE_PKG_GPGEX
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgex} $(DESC_SEC_gpgex)
!endif
!ifdef HAVE_PKG_PAPERKEY
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_paperkey} $(DESC_SEC_paperkey)
!endif
!ifdef HAVE_PKG_GPA
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpa} $(DESC_SEC_gpa)
!endif
!ifdef HAVE_PKG_KLEOPATRA
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_kleopatra} $(DESC_SEC_kleopatra)
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_novice_en} $(DESC_SEC_man_novice_en)
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_advanced_en} $(DESC_SEC_man_advanced_en)
!endif
!ifdef HAVE_PKG_COMPENDIUM
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_compendium} $(DESC_SEC_compendium)
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_novice_de} $(DESC_SEC_man_novice_de)
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_advanced_de} $(DESC_SEC_man_advanced_de)
!endif
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgme_browser} $(DESC_SEC_gpgme_browser)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

File Metadata

Mime Type
text/x-diff
Expires
Mon, Dec 23, 2:04 PM (1 d, 19 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
49/dc/79f96ea9da618a89658c76b0b620

Event Timeline