diff --git a/!_package-sources.txt b/!_package-sources.txt new file mode 100644 index 0000000000000000000000000000000000000000..acb823f12de1d1d592991f8e548aba262086556f --- /dev/null +++ b/!_package-sources.txt @@ -0,0 +1,12 @@ + +GnuPG packages came from: + +gnupg-2.2.45.tar.bz2 +gnupg-snapshot-2.2.45.tar.gz +gnupg-w32-2.2.45_20241022.exe + +in "packages" folder under ... +GnuPG-VS-Desktop-3.2.4.tar.xz\GnuPG-VS-Desktop-3.2.4.tar\gpg4win-3.2.4\ + +in Download: +https://download.gnupg.com/files/src/GnuPG-VS-Desktop-3.2.4.tar.xz diff --git a/gnupg-w32-2.2.45_20241022.exe b/gnupg-w32-2.2.45_20241022.exe new file mode 100644 index 0000000000000000000000000000000000000000..4f520068648616bf864867ee3b8f45631ad0c4e4 Binary files /dev/null and b/gnupg-w32-2.2.45_20241022.exe differ diff --git a/inst-options.ini b/inst-options.ini new file mode 100644 index 0000000000000000000000000000000000000000..8697e89ad9b6d9b01d9d3988baf58999699a7cc7 --- /dev/null +++ b/inst-options.ini @@ -0,0 +1,46 @@ +[Settings] +NumFields=5 + +; The number of the fields here is known in w32inst.nsi. +; The tags must be "[Field N]" with N=1..NumFields + +[Field 1] +Type=Label +Left=0 +Right=-1 +Top=0 +Bottom=20 + +[Field 2] +Type=Checkbox +Left=0 +Right=-1 +Top=30 +Bottom=40 +;Text=Start Menu +State=1 + +[Field 3] +Type=Checkbox +Left=0 +Right=-1 +Top=50 +Bottom=60 +;Text=Desktop +State=0 + +[Field 4] +Type=Checkbox +Left=0 +Right=-1 +Top=70 +Bottom=80 +;Text=Quick Launch Bar +State=0 + +[Field 5] +Type=Label +Left=0 +Right=-1 +Top=90 +Bottom=130 diff --git a/inst.nsi b/inst.nsi new file mode 100644 index 0000000000000000000000000000000000000000..2e9fc2fb05663fb3ec94e3bcb40a9a2d730cb8a9 --- /dev/null +++ b/inst.nsi @@ -0,0 +1,1899 @@ +# inst.nsi - Installer for GnuPG on Windows. +# Copyright (C) 2005, 2014, 2019-2021 g10 Code GmbH +# 2017 Intevation GmbH +# +# This file is part of GnuPG. +# +# GnuPG 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 3 of the License, or +# (at your option) any later version. +# +# GnuPG 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, see <http://www.gnu.org/licenses/>. + +# Macros to provide for invocation: +# INST_DIR +# INST6_DIR +# BUILD_DIR +# TOP_SRCDIR +# W32_SRCDIR +# BUILD_ISODATE - the build date, e.g. "2014-10-31" +# BUILD_DATESTR - ditto w/o '-', e.g. "20141031" +# NAME +# VERSION +# PROD_VERSION +# +# WITH_GUI - Include the GPA GUI + +# This one must be done before addplugindir. +Unicode true + +# MODIFIED FOR VS-NFD CONFIGURATION BY vitusb in 20250106 --- BEGIN --- +# Got vars below from "gnupg-w32-x.x.xx.src\build-aux\speedo.mk" ... +# ------------------------------------------------------------------ +# Line 287: (build-release: gnupg-2.2.45) +# ------------------------------------------------------------------ +# # Directory names. +# They must be absolute, as we switch directories pretty often. +# root := $(shell pwd)/PLAY +# sdir := $(root)/src +# bdir := $(root)/build +# bdir6:= $(root)/build-w64 +# ifeq ($(INSTALL_PREFIX),none) +# idir := $(root)/inst +# else +# idir := $(abspath $(INSTALL_PREFIX)) +# endif +# idir6:= $(root)/inst-w64 +# stampdir := $(root)/stamps +# topsrc := $(shell cd $(dir $(SPEEDO_MK)).. && pwd) +# auxsrc := $(topsrc)/build-aux/speedo +# patdir := $(topsrc)/build-aux/speedo/patches +# w32src := $(topsrc)/build-aux/speedo/w32 +# ------------------------------------------------------------------ +# Line 1371: (build-release: gnupg-2.2.45) +# ------------------------------------------------------------------ +# $(MAKENSIS) -V2 \ +# -DINST_DIR=$(idir) \ +# -DINST6_DIR=$(idir6) \ +# -DBUILD_DIR=$(bdir) \ +# -DTOP_SRCDIR=$(topsrc) \ +# -DW32_SRCDIR=$(w32src) \ +# -DBUILD_ISODATE=$(BUILD_ISODATE) \ +# -DBUILD_DATESTR=$(BUILD_DATESTR) \ +# -DNAME=$(INST_NAME) \ +# -DVERSION=$(INST_VERSION) \ +# -DPROD_VERSION=$(INST_PROD_VERSION) \ +# $(extra_installer_options) $(w32src)/inst.nsi +#. +# @echo "Ready: $(idir)/$(INST_NAME)-$(INST_VERSION)_$(BUILD_DATESTR).exe" +# ... +# ------------------------------------------------------------------ +# ${VERSION} was taken from: +# gnupg-w32-x.x.xx.src\configure +# ------------------------------------------------------------------ +# Line 583: PACKAGE_VERSION='2.2.45' +# Line 2921: VERSION=$PACKAGE_VERSION +# ------------------------------------------------------------------ +# 1.) ${PROD_VERSION} was taken from ... +# "gnupg-w32-x.x.xx.src\build-aux\speedo.mk" +# ------------------------------------------------------------------ +# Line 638: sed -n 's/.*PACKAGE_VERSION "\(.*\)"/\1/p' config.h >$(idir)/INST_VERSION; \ +# Line 639: sed -n 's/.*W32INFO_VI_PRODUCTVERSION \(.*\)/\1/p' common/w32info-rc.h \ +# Line 640: |sed 's/,/./g' >$(idir)/INST_PROD_VERSION ) +# ... +# Line 847: INST_PROD_VERSION=$(shell head -1 $(idir)/INST_PROD_VERSION) +# ... +# Line 1381: -DPROD_VERSION=$(INST_PROD_VERSION) \ +# ------------------------------------------------------------------ +# 2.) ... by W32INFO_VI_PRODUCTVERSION in ... +# "gnupg-w32-x.x.xx.src\common\w32info-rc.h" +# ------------------------------------------------------------------ +# Line 23: #define W32INFO_VI_PRODUCTVERSION @BUILD_FILEVERSION@ +# ------------------------------------------------------------------ +# 3.) ... over BUILD_FILEVERSION in ... +# "gnupg-w32-x.x.xx.src\configure" +# ------------------------------------------------------------------ +# Line 15983: BUILD_VERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./'` +# Line 15984: BUILD_VERSION="${BUILD_VERSION}36415" +# Line 15985: BUILD_FILEVERSION=`echo "${BUILD_VERSION}" | tr . ,` +# ------------------------------------------------------------------ +# 4.) ... that produces the string by a "tr"-filter: +# echo "2.2.45.36415" | tr . , +# 2,2,45,36415 +# 5.) ... with a "sed" filter by: +# echo "2,2,45,36415" | sed 's/,/./g' +# 2.2.45.36415 + +# +# MAKE CHANGES HERE --- BEGIN --- +# + +# Example for Project-dir: +# +# "gnupg-w32-x.x.xx.src\PLAY\build" +# "gnupg-w32-x.x.xx.src\PLAY\inst" +# "gnupg-w32-x.x.xx.src\build-aux\speedo\w32" + +# +# 1.) Extract original installer of "${NAME}-${VERSION}_${BUILD_DATESTR}.exe" +# (i. e.: "gnupg-w32-2.2.45_20241022.exe" into ".\PLAY\inst" dir. +# - Move ".\PLAY\inst\$PLUGINSDIR\g4wihelp.dll" to ".\PLAY\build". +# - Move ".\PLAY\inst\README.txt" to ".\PLAY\build". +# - Create directory ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\dirmngr_ldap.exe" to ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\gpg-check-pattern.exe" to ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\gpgme-w32spawn.exe" to ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\gpg-preset-passphrase.exe" to ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\gpg-wks-client.exe" to ".\PLAY\inst\libexec". +# - Move ".\PLAY\inst\bin\scdaemon.exe" to ".\PLAY\inst\libexec". +# - Rename ".\PLAY\inst\lib\libassuan.imp" to "libassuan.dll.a" +# - Rename ".\PLAY\inst\lib\libgcrypt.imp" to "libgcrypt.dll.a" +# - Rename ".\PLAY\inst\lib\libgpg-error.imp" to "libgpg-error.dll.a" +# - Rename ".\PLAY\inst\lib\libgpgme.imp" to "libgpgme.dll.a" +# - Rename ".\PLAY\inst\lib\libksba.imp" to "libksba.dll.a" +# - Rename ".\PLAY\inst\lib\libnpth.imp" to "libnpth.dll.a" +# - Rename ".\PLAY\inst\bin\pinentry-basic.exe" to "pinentry-w32.exe" + +!define My_VERSION "2.2.45" +!define My_PROD_VERSION "2.2.45.36415" + +!define My_TOP_SRCDIR "_" # gnupg-w32-x.x.xx.src\PLAY\build +!define My_BUILD_DIR "${My_TOP_SRCDIR}\PLAY\build" # gnupg-w32-x.x.xx.src\PLAY\build +!define My_INST_DIR "${My_TOP_SRCDIR}\PLAY\inst" # gnupg-w32-x.x.xx.src\PLAY\inst +!define My_INST6_DIR "${My_TOP_SRCDIR}\PLAY\inst-w64" # gnupg-w32-x.x.xx.src\PLAY\inst-w64 +!define My_W32_SRCDIR "${My_TOP_SRCDIR}\build-aux\speedo\w32" # gnupg-w32-x.x.xx.src\build-aux\speedo\w32 + +# VS-NFD centralized configuration +!define VSNFD_CFG_SOURCE "${My_TOP_SRCDIR}\PLAY\vs-nfd-config" +!define VSNFD_CFG_TARGET "$COMMONPROGRAMDATA\GNU" + +# "BUILD_ISODATE" and "BUILD_DATESTR" were taken from: +# "gnupg-w32-x.x.xx.src\build-aux\speedo.mk" +# Line 841: BUILD_ISODATE=$(shell date -u +%Y-%m-%d) +# Line 842: BUILD_DATESTR=$(subst -,,$(BUILD_ISODATE)) +# BUILD_ISODATE is like: 2024-10-22 +# BUILD_DATESTR is like: 20241022 + +!define My_BUILD_ISODATE "2024-10-22" # BUILD_ISODATE=$(shell date -u +%Y-%m-%d) +!define My_BUILD_DATESTR "20241022" # BUILD_DATESTR=$(subst -,,$(BUILD_ISODATE)) + +# "NAME" was taken from "INST_NAME" in: +# "gnupg-w32-x.x.xx.src\build-aux\speedo.mk" +# Line 236: INST_NAME=gnupg-w32 + +!define My_NAME "gnupg-w32" + +# +# MAKE CHANGES HERE --- END --- +# + +!define VERSION "${My_VERSION}" +!define PROD_VERSION "${My_PROD_VERSION}" +!define TOP_SRCDIR "${My_TOP_SRCDIR}" +!define INST_DIR "${My_INST_DIR}" +!define INST6_DIR "${My_INST6_DIR}" +!define W32_SRCDIR "${My_W32_SRCDIR}" +!define BUILD_DIR "${My_BUILD_DIR}" +!define BUILD_ISODATE "${My_BUILD_ISODATE}" +!define BUILD_DATESTR "${My_BUILD_DATESTR}" +!define NAME "${My_NAME}" + +# TODO: !!! CHECK FILES FOR AVAILABILITY UNDER "${BUILD_DIR}" +# !!! IN REFERENCE TO SOURCE-FILES IN THIS SCRIPT. + +# The output of "!echo"-function works here only in debug-mode +# verbosity when "makensis" is launching with /V4 (all output), +# so we have to use the "!system"-function here ! +# NSIS is awfull !! +!system '@echo ### Debug ### NAME is............: ${NAME}' +!system '@echo ### Debug ### TOP_SRCDIR is......: ${TOP_SRCDIR}' +!system '@echo ### Debug ### VERSION is.........: ${VERSION}' +!system '@echo ### Debug ### PROD_VERSION is....: ${PROD_VERSION}' +!system '@echo ### Debug ### INST_DIR is........: ${INST_DIR}' +!system '@echo ### Debug ### INST6_DIR is.......: ${INST6_DIR}' +!system '@echo ### Debug ### W32_SRCDIR is......: ${W32_SRCDIR}' +!system '@echo ### Debug ### BUILD_DIR is.......: ${BUILD_DIR}' +!system '@echo ### Debug ### BUILD_ISODATE is...: ${BUILD_ISODATE}' +!system '@echo ### Debug ### BUILD_DATESTR is...: ${BUILD_DATESTR}' + +!system '@echo ### Debug ### VSNFD_CFG_SOURCE is....: ${VSNFD_CFG_SOURCE}' +!system '@echo ### Debug ### VSNFD_CFG_TARGET is....: ${VSNFD_CFG_TARGET}' + +# MODIFIED FOR VS-NFD CONFIGURATION BY vitusb in 20250106 --- END --- + +#!cd "${INST_DIR}" # We cannot cd into the ${INST_DIR}, + # because we will get a + # "cannot-create"-error below, when + # writing "inst-options.ini" during + # install. +!addincludedir "${W32_SRCDIR}" +!addplugindir "${BUILD_DIR}" + +# The package name and version. PRETTY_PACKAGE is a user visible name +# only while PACKAGE is useful for filenames etc. PROD_VERSION is the +# product version and needs to be in the format "MAJ.MIN.MIC.BUILDNR". +!define PACKAGE "gnupg" +!define PACKAGE_SHORT "gnupg" +!define PRETTY_PACKAGE "GNU Privacy Guard" +!define PRETTY_PACKAGE_SHORT "GnuPG" +!define COMPANY "The GnuPG Project" +!define COPYRIGHT "Copyright (C) 2017 The GnuPG Project" +!define DESCRIPTION "GnuPG: The GNU Privacy Guard for Windows (VS-NfD)" + +!define INSTALL_DIR "GnuPG" + +!define WELCOME_TITLE_ENGLISH \ + "Welcome to the installation of GnuPG (VS-NfD)" + +!define WELCOME_TITLE_GERMAN \ + "Willkommen bei der Installation von GnuPG (VS-NfD)" + +!define ABOUT_ENGLISH \ + "GnuPG is the mostly used software for mail and data encryption. \ + GnuPG can be used to encrypt data and to create digital signatures. \ + GnuPG includes an advanced key management facility and is compliant \ + with the OpenPGP Internet standard as described in RFC-4880. \ + \r\n\r\n$_CLICK \ + \r\n\r\nThis is GnuPG version ${VERSION} with a VS-NfD \ + conformant configuration. The German Federal Office for Information \ + Security (BSI) approved GnuPG VS-Desktop® for transmitting confidential \ + documents classified as VS-NfD (a German classification level). This is \ + GnuPG with the activated configuration behind this security-concept.\r\n\r\n\ + File version: ${PROD_VERSION}\r\n\ + Release date: ${BUILD_ISODATE}" +!define ABOUT_GERMAN \ + "GnuPG is die am häufigsten verwendete Software zur Mail- \ + und Datenverschlüsselung.\ + \r\n\r\n$_CLICK \ + \r\n\r\nDies ist GnuPG Version ${VERSION} mit einer \ + VS-NfD konformen Konfiguration. Das Bundesamt für Sicherheit in der \ + Informationstechnik (BSI) hat GnuPG VS-Desktop® für die Übermittlung \ + vertraulicher Dokumente der Geheimhaltungsstufe VS-NfD freigegeben. \ + Hier sehen Sie GnuPG mit der aktivierten Konfiguration hinter diesem \ + Sicherheitskonzept.\r\n\r\n\ + Dateiversion: ${PROD_VERSION}\r\n\ + Releasedatum: ${BUILD_ISODATE}" + + +# The copyright license of the package. Define only one of these. +!define LICENSE_GPL + +# Select the best compression algorithm available. The dictionary +# size is the default (8 MB). +!ifndef SOURCES +SetCompressor lzma +# SetCompressorDictSize 8 +!endif + +# We use the modern UI. +!include "MUI.nsh" + +# Some helper some +!include "LogicLib.nsh" +!include "x64.nsh" + +# We support user mode installation but prefer system wide +!define MULTIUSER_EXECUTIONLEVEL Highest +!define MULTIUSER_MUI +!define MULTIUSER_INSTALLMODE_COMMANDLINE +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\${PACKAGE_SHORT}" +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\${PACKAGE_SHORT}" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install Directory" +!define MULTIUSER_INSTALLMODE_INSTDIR "${PACKAGE_SHORT}" +!include "MultiUser.nsh" + +# Set the package name. Note that this name should not be suffixed +# with the version because this would get displayed in the start menu. +# Given that a slash in the name troubles Windows startmenu creation +# we set the Startmenu explicit below. +Name "${PRETTY_PACKAGE}" + +# Set the output filename. +OutFile "${NAME}-${VERSION}_${BUILD_DATESTR}.exe" + +#Fixme: Do we need a logo? +#Icon "${TOP_SRCDIR}\doc\logo\gnupg-logo-icon.ico" +#UninstallIcon "${TOP_SRCDIR}\doc\logo\gnupg-logo-icon.ico" + +# Icon of the installer-exe (based on MUI.nsh / NOT MUI2) +# Must be done AFTER include-statement of "MUI.nsh" +!define MUI_ICON "${BUILD_DIR}\gnupg-logo-icon.ico" +!define MUI_UNICON "${BUILD_DIR}\gnupg-logo-icon.ico" + +# Set the installation directory. +!ifndef INSTALL_DIR +!define INSTALL_DIR "GnuPG" +!endif +InstallDir "$PROGRAMFILES\${INSTALL_DIR}" + +# Add version information to the file properties. +VIProductVersion "${PROD_VERSION}" +VIAddVersionKey "ProductName" "${PRETTY_PACKAGE_SHORT} (${VERSION})" +VIAddVersionKey "Comments" \ + "GnuPG 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" +VIAddVersionKey "CompanyName" "${COMPANY}" +VIAddVersionKey "LegalTrademarks" "" +VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" +VIAddVersionKey "FileDescription" "${DESCRIPTION}" +VIAddVersionKey "FileVersion" "${PROD_VERSION}" + +# Interface Settings + +# !define MUI_ABORTWARNING +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_UNFINISHPAGE_NOAUTOCLOSE + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "${W32_SRCDIR}\gnupg-logo-150x57.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP "${W32_SRCDIR}\gnupg-logo-164x314.bmp" + +# Remember the installer language +!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" +!define MUI_LANGDLL_REGISTRY_KEY "Software\GnuPG" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +# +# The list of wizard pages. +# +!define MUI_WELCOMEPAGE_TITLE "$(T_WelcomeTitle)" +!define MUI_WELCOMEPAGE_TEXT "$(T_About)" +!insertmacro MUI_PAGE_WELCOME + +!define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)" +!define MUI_PAGE_HEADER_SUBTEXT "$(T_GPLHeader)" +!define MUI_LICENSEPAGE_TEXT_BOTTOM "$(T_GPLShort)" +!insertmacro MUI_PAGE_LICENSE "${TOP_SRCDIR}\COPYING" + +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PrintNonAdminWarning +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckExistingVersion +!insertmacro MUI_PAGE_COMPONENTS + +# We don't have MUI_PAGE_DIRECTORY + +!ifdef WITH_GUI + +Page custom CustomPageOptions + +Var STARTMENU_FOLDER + +!define MUI_PAGE_CUSTOMFUNCTION_PRE CheckIfStartMenuWanted +!define MUI_STARTMENUPAGE_NODISABLE +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GnuPG" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" +# We need to set the Startmenu name explicitly because a slash in the +# name is not possible. +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "GnuPG" + +!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + +!endif + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PrintCloseOtherApps +!insertmacro MUI_PAGE_INSTFILES + +#!define MUI_PAGE_CUSTOMFUNCTION_PRE ShowFinalWarnings +!define MUI_FINISHPAGE_SHOWREADME "README.txt" +!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(T_ShowReadme)" +#!define MUI_FINISHPAGE_RUN +#!define MUI_FINISHPAGE_RUN_FUNCTION RunOnFinish +#!define MUI_FINISHPAGE_RUN_TEXT "$(T_RunKeyManager)" +#!define MUI_FINISHPAGE_RUN_NOTCHECKED +!define MUI_FINISHPAGE_LINK "$(T_MoreInfo)" +!define MUI_FINISHPAGE_LINK_LOCATION "$(T_MoreInfoURL)" +!insertmacro MUI_PAGE_FINISH + + +# Uninstaller pages. + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + + +#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. + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "German" + +!insertmacro MUI_RESERVEFILE_LANGDLL +!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS +ReserveFile "${BUILD_DIR}\g4wihelp.dll" +ReserveFile "${W32_SRCDIR}\gnupg-logo-150x57.bmp" +ReserveFile "${W32_SRCDIR}\gnupg-logo-164x314.bmp" +ReserveFile "${TOP_SRCDIR}\COPYING" +ReserveFile "inst-options.ini" # Must be used here without PATH, + # otherwise we will get a + # "cannot-create"-error in the + # installer under Windows. + +# Language support + +LangString T_LangCode ${LANG_ENGLISH} "en" +LangString T_LangCode ${LANG_GERMAN} "de" + + +# The WelcomeTitle is displayed on the first page. +LangString T_WelcomeTitle ${LANG_ENGLISH} "${WELCOME_TITLE_ENGLISH}" +LangString T_WelcomeTitle ${LANG_GERMAN} "${WELCOME_TITLE_GERMAN}" + +# The About string as displayed on the first page. +LangString T_About ${LANG_ENGLISH} "${ABOUT_ENGLISH}" +LangString T_About ${LANG_GERMAN} "${ABOUT_GERMAN}" + +# Startup page +LangString T_GPLHeader ${LANG_ENGLISH} \ + "This software is licensed under the terms of the GNU General Public \ + License (GNU GPL)." +LangString T_GPLHeader ${LANG_GERMAN} \ + "Diese Software ist unter der GNU General Public License \ + (GNU GPL) lizensiert." + +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_GPLShort ${LANG_GERMAN} \ + "In aller Kürze: Sie haben das Recht, die Software zu jedem Zweck \ + einzusetzen. Sie können die Software weitergeben, sofern Sie dem \ + Empfänger dieselben Rechte einräumen, die auch Sie erhalten haben." + +LangString T_RunKeyManager ${LANG_ENGLISH} \ + "Run the key manager" +LangString T_RunKeyManager ${LANG_GERMAN} \ + "Die Schlüsselverwaltung aufrufen" + +LangString T_MoreInfo ${LANG_ENGLISH} \ + "Click here to see how to help the GnuPG Project" +LangString T_MoreInfo ${LANG_GERMAN} \ + "Hier klicken um dem GnuPG Projekt zu zu helfen" +LangString T_MoreInfoURL ${LANG_ENGLISH} "https://gnupg.org/donate" +LangString T_MoreInfoURL ${LANG_GERMAN} "https://gnupg.org/donate" + +LangString T_ShowReadme ${LANG_ENGLISH} \ + "Show the README file" +LangString T_ShowReadme ${LANG_GERMAN} \ + "Die README Datei anzeigen" + +LangString T_NoKeyManager ${LANG_ENGLISH} \ + "No key manager has been installed, thus we can't run one now." +LangString T_NoKeyManager ${LANG_GERMAN} \ + "Es wurde keine Schlüsselverwaltung installiert. \ + Deswegen kann sie jetzt auch nicht ausgeführt werden." + +# Functions + +# Custom functions and macros for this installer. +LangString T_AlreadyRunning ${LANG_ENGLISH} \ + "An instance of this installer is already running." +LangString T_AlreadyRunning ${LANG_GERMAN} \ + "Ein Exemplar dieses Installers läuft bereits." + +Function G4wRunOnce + Push $R0 + StrCpy $R0 "gnupg" + g4wihelp::runonce + StrCmp $R0 0 +3 + MessageBox MB_OK $(T_AlreadyRunning) + Abort + Pop $R0 +FunctionEnd + +# +# Control function for the Custom page to select special +# install options. +# +Function CustomPageOptions + !insertmacro MUI_HEADER_TEXT "$(T_InstallOptions)" "$(T_InstallOptLinks)" + + # Note, that the default selection is done in the ini file + !insertmacro MUI_INSTALLOPTIONS_WRITE "inst-options.ini" \ + "Field 1" "Text" "$(T_InstOptLabelA)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "inst-options.ini" \ + "Field 2" "Text" "$(T_InstOptFieldA)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "inst-options.ini" \ + "Field 3" "Text" "$(T_InstOptFieldB)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "inst-options.ini" \ + "Field 4" "Text" "$(T_InstOptFieldC)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "inst-options.ini" \ + "Field 5" "Text" "$(T_InstOptLabelB)" + + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "inst-options.ini" +FunctionEnd + +# Check whether GnuPG has already been installed. This is called as +# a leave function from the components page. A call to abort will get +# back to the components selection. +Function CheckExistingVersion + ClearErrors + FileOpen $0 "$INSTDIR\VERSION" r + IfErrors nexttest + FileRead $0 $R0 + FileRead $0 $R1 + FileClose $0 + + Push $R1 + Call TrimNewLines + Pop $R1 + + MessageBox MB_YESNO "$(T_FoundExistingVersion)" IDYES leave + Abort + + nexttest: + ClearErrors + ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG" "DisplayVersion" + IfErrors leave 0 + MessageBox MB_YESNO "$(T_FoundExistingVersionB)" 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 + 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 whether the start menu is actually wanted. + +Function CheckIfStartMenuWanted + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "inst-options.ini" \ + "Field 2" "State" + IntCmp $R0 1 +2 + Abort +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 + IfFileExists $INSTDIR\bin\gpg.exe print_warning + IfFileExists $INSTDIR\bin\gpa.exe print_warning + Return + print_warning: + MessageBox MB_OK|MB_ICONEXCLAMATION "$(T_CloseOtherApps)" + +FunctionEnd + +# Called right before the final page to show more warnings. +#Function ShowFinalWarnings +# leave: +#FunctionEnd + +#----------------------------------------------- +# Strings pertaining to the install options page +#----------------------------------------------- + +# Installation options title +LangString T_InstallOptions ${LANG_ENGLISH} "Install Options" +LangString T_InstallOptions ${LANG_GERMAN} "Installationsoptionen" + +# Installation options subtitle 1 +LangString T_InstallOptLinks ${LANG_ENGLISH} "Start links" +LangString T_InstallOptLinks ${LANG_GERMAN} "Startlinks" + +LangString T_InstOptLabelA ${LANG_ENGLISH} \ + "Please select where GnuPG shall install links:" +LangString T_InstOptLabelA ${LANG_GERMAN} \ + "Bitte wählen Sie, welche Verknüpfungen angelegt werden sollen:" + +LangString T_InstOptLabelB ${LANG_ENGLISH} \ + "(Only programs will be linked into the quick launch bar.)" +LangString T_InstOptLabelB ${LANG_GERMAN} \ + "(In die Schnellstartleiste werden nur Verknüpfungen für \ + Programme angelegt.) " + +LangString T_InstOptFieldA ${LANG_ENGLISH} \ + "Start Menu" +LangString T_InstOptFieldA ${LANG_GERMAN} \ + "Startmenü" + +LangString T_InstOptFieldB ${LANG_ENGLISH} \ + "Desktop" +LangString T_InstOptFieldB ${LANG_GERMAN} \ + "Arbeitsfläche" + +LangString T_InstOptFieldC ${LANG_ENGLISH} \ + "Quick Launch Bar" +LangString T_InstOptFieldC ${LANG_GERMAN} \ + "Schnellstartleiste" + +#------------------------------------------------ +# 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_FoundExistingVersion ${LANG_GERMAN} \ + "Version $R1 ist hier bereits installiert. $\r$\n\ + Möchten Sie diese mit Version ${VERSION} überschreiben? $\r$\n\ + $\r$\n\ + (Sie können in jedem Fall mit JA antworten, falls es sich um \ + eine neuere oder dieselbe Version handelt.)" +LangString T_FoundExistingVersionB ${LANG_ENGLISH} \ + "A version of GnuPG has already been installed on the system. \ + $\r$\n\ + $\r$\n\ + Do you want to continue installing GnuPG?" +LangString T_FoundExistingVersionB ${LANG_GERMAN} \ + "Eine Version von GnuPG ist hier bereits installiert. \ + $\r$\n\ + $\r$\n\ + Möchten die die Installation von GnuPG fortführen?" + + + +# From Function PrintNonAdminWarning +LangString T_AdminWanted ${LANG_ENGLISH} \ + "Warning: It is recommended to install GnuPG system-wide with \ + administrator rights. \ + $\r$\n\ + $\r$\n\ + Do you want to continue installing GnuPG without administrator rights?" +LangString T_AdminWanted ${LANG_GERMAN} \ + "Achtung: Es wird empfohlen GnuPG systemweit mit \ + Administratorrechten zu installieren. \ + $\r$\n\ + $\r$\n\ + Möchten die die Installation von GnuPG ohne Administratorrechte fortführen?" + +# From Function PrintCloseOtherApps +LangString T_CloseOtherApps ${LANG_ENGLISH} \ + "Please make sure that other applications are not running. \ + GnuPG will try to install anyway but a reboot may be required." +LangString T_CloseOtherApps ${LANG_GERMAN} \ + "Bitte stellen Sie sicher, daß alle anderen Anwendugen geschlossen \ + sind. GnuPG wird auf jeden Fall versuchen, eine Installation \ + durchzuführen; es ist dann aber u.U. notwendig, das System neu zu starten." + + +# 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 + + +# AddToPath - Adds the given dir to the search path. +# Input - head of the stack +Function AddToPath + ClearErrors + UserInfo::GetName + IfErrors add_admin + Pop $0 + UserInfo::GetAccountType + Pop $1 + StrCmp $1 "Admin" add_admin add_user + +add_admin: + Exch $0 + g4wihelp::path_add "$0" "0" + goto add_done +add_user: + Exch $0 + g4wihelp::path_add "$0" "1" + goto add_done + +add_done: + StrCmp $R5 "0" add_to_path_done + SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 + add_to_path_done: + Pop $0 +FunctionEnd + + +# RemoveFromPath - Remove a given dir from the path +# Input: head of the stack +Function un.RemoveFromPath + ClearErrors + UserInfo::GetName + IfErrors remove_admin + Pop $0 + UserInfo::GetAccountType + Pop $1 + StrCmp $1 "Admin" remove_admin remove_user + +remove_admin: + Exch $0 + g4wihelp::path_remove "$0" "0" + goto remove_done +remove_user: + Exch $0 + g4wihelp::path_remove "$0" "1" + goto remove_done + +remove_done: + StrCmp $R5 "0" remove_from_path_done + SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 + remove_from_path_done: + Pop $0 +FunctionEnd + + +# +# Define the installer sections. +# + +Section "-gnupginst" + SetOutPath "$INSTDIR" + + File "${BUILD_DIR}\README.txt" + + # Write a version file. + FileOpen $0 "$INSTDIR\VERSION" w + FileWrite $0 "${PACKAGE}$\r$\n" + FileWrite $0 "${VERSION}$\r$\n" + FileClose $0 + + WriteRegStr SHCTX "Software\GnuPG" "Install Directory" $INSTDIR + + # If we are reinstalling, try to kill a possible running gpa using + # an already installed gpa. + ifFileExists "$INSTDIR\bin\launch-gpa.exe" 0 no_uiserver + nsExec::ExecToLog '"$INSTDIR\bin\launch-gpa" "--stop-server"' + + no_uiserver: + + # If we are reinstalling, try to kill a possible running agent using + # an already installed gpgconf. + + ifFileExists "$INSTDIR\bin\gpgconf.exe" 0 no_gpgconf + nsExec::ExecToLog '"$INSTDIR\bin\gpgconf" "--kill" "dirmngr"' + nsExec::ExecToLog '"$INSTDIR\bin\gpgconf" "--kill" "gpg-agent"' + + no_gpgconf: + + # Add the bin directory to the PATH + Push "$INSTDIR\bin" + Call AddToPath + DetailPrint "Added $INSTDIR\bin to PATH" + + # Install global central config + # ${VSNFD_CFG_TARGET} is: "$COMMONPROGRAMDATA\GNU" + # ${VSNFD_CFG_SOURCE} is: "${My_TOP_SRCDIR}\PLAY\vs-nfd-config" + SetOutPath "${VSNFD_CFG_TARGET}" + SetOverwrite on + File "${VSNFD_CFG_SOURCE}\GnuPG-VS-NfD-Config.txt" + File "${VSNFD_CFG_SOURCE}\Icon.ico" + SetOverwrite lastused + + ifFileExists "${VSNFD_CFG_TARGET}\etc\*.*" 0 no_etc + RMDir /r "${VSNFD_CFG_TARGET}\etc" + + no_etc: + + SetOutPath "${VSNFD_CFG_TARGET}" + SetOverwrite on + File /r "${VSNFD_CFG_SOURCE}\etc" + SetOverwrite lastused + +SectionEnd + +LangString DESC_Menu_gnupg_readme ${LANG_ENGLISH} \ + "General information on GnuPG" +LangString DESC_Menu_gnupg_readme ${LANG_GERMAN} \ + "Allgemeine Informationen zu GnuPG" + + +Section "GnuPG" SEC_gnupg + SectionIn RO + + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\gpg.exe" + File "${INST_DIR}\bin\gpgv.exe" + File "${INST_DIR}\bin\gpgsm.exe" + File "${INST_DIR}\bin\gpgconf.exe" + File "${INST_DIR}\bin\gpg-connect-agent.exe" + File "${INST_DIR}\bin\gpgtar.exe" + File "${INST_DIR}\libexec\dirmngr_ldap.exe" + File "${INST_DIR}\libexec\gpg-preset-passphrase.exe" + File "${INST_DIR}\libexec\gpg-check-pattern.exe" + File "${INST_DIR}\libexec\gpg-wks-client.exe" + + ClearErrors + SetOverwrite try + File "${INST_DIR}\bin\gpg-agent.exe" + SetOverwrite lastused + ifErrors 0 +3 + File /oname=gpg-agent.exe.tmp "${INST_DIR}\bin\gpg-agent.exe" + Rename /REBOOTOK gpg-agent.exe.tmp gpg-agent.exe + + ClearErrors + SetOverwrite try + File "${INST_DIR}\bin\dirmngr.exe" + SetOverwrite lastused + ifErrors 0 +3 + File /oname=dirmngr.exe.tmp "${INST_DIR}\bin\dirmngr.exe" + Rename /REBOOTOK dirmngr.exe.tmp dirmngr.exe + + ClearErrors + SetOverwrite try + File "${INST_DIR}\libexec\scdaemon.exe" + SetOverwrite lastused + ifErrors 0 +3 + File /oname=scdaemon.exe.tmp "${INST_DIR}\libexec\scdaemon.exe" + Rename /REBOOTOK scdaemon.exe.tmp scdaemon.exe + + SetOutPath "$INSTDIR\share\gnupg" + File "${INST_DIR}\share\gnupg\distsigkey.gpg" + File "${INST_DIR}\share\gnupg\sks-keyservers.netCA.pem" + + SetOutPath "$INSTDIR\share\doc\gnupg\examples" + File "${INST_DIR}\share\doc\gnupg\examples\Automatic.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Brainpool256.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Brainpool384.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Brainpool512.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Curve25519.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Curve448.prf" + File "${INST_DIR}\share\doc\gnupg\examples\Curve-secp256k1.prf" + File "${INST_DIR}\share\doc\gnupg\examples\pwpattern.list" + File "${INST_DIR}\share\doc\gnupg\examples\RSA-4096.prf" + File "${INST_DIR}\share\doc\gnupg\examples\VS-NfD.prf" + + SetOutPath "$INSTDIR\share\locale\ca\LC_MESSAGES" + File "${INST_DIR}\share\locale\ca\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\cs\LC_MESSAGES" + File "${INST_DIR}\share\locale\cs\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\da\LC_MESSAGES" + File "${INST_DIR}\share\locale\da\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES" + File "${INST_DIR}\share\locale\de\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\el\LC_MESSAGES" + File "${INST_DIR}\share\locale\el\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\en@boldquot\LC_MESSAGES" + File "${INST_DIR}\share\locale\en@boldquot\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\en@quot\LC_MESSAGES" + File "${INST_DIR}\share\locale\en@quot\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\eo\LC_MESSAGES" + File "${INST_DIR}\share\locale\eo\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\es\LC_MESSAGES" + File "${INST_DIR}\share\locale\es\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\et\LC_MESSAGES" + File "${INST_DIR}\share\locale\et\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\fi\LC_MESSAGES" + File "${INST_DIR}\share\locale\fi\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\fr\LC_MESSAGES" + File "${INST_DIR}\share\locale\fr\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\gl\LC_MESSAGES" + File "${INST_DIR}\share\locale\gl\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\hu\LC_MESSAGES" + File "${INST_DIR}\share\locale\hu\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\id\LC_MESSAGES" + File "${INST_DIR}\share\locale\id\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\it\LC_MESSAGES" + File "${INST_DIR}\share\locale\it\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\ja\LC_MESSAGES" + File "${INST_DIR}\share\locale\ja\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\nb\LC_MESSAGES" + File "${INST_DIR}\share\locale\nb\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\pl\LC_MESSAGES" + File "${INST_DIR}\share\locale\pl\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\pt\LC_MESSAGES" + File "${INST_DIR}\share\locale\pt\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\ro\LC_MESSAGES" + File "${INST_DIR}\share\locale\ro\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\ru\LC_MESSAGES" + File "${INST_DIR}\share\locale\ru\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\sk\LC_MESSAGES" + File "${INST_DIR}\share\locale\sk\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\sv\LC_MESSAGES" + File "${INST_DIR}\share\locale\sv\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\tr\LC_MESSAGES" + File "${INST_DIR}\share\locale\tr\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\uk\LC_MESSAGES" + File "${INST_DIR}\share\locale\uk\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\zh_CN\LC_MESSAGES" + File "${INST_DIR}\share\locale\zh_CN\LC_MESSAGES\gnupg2.mo" + SetOutPath "$INSTDIR\share\locale\zh_TW\LC_MESSAGES" + File "${INST_DIR}\share\locale\zh_TW\LC_MESSAGES\gnupg2.mo" +SectionEnd + + +LangString DESC_SEC_gnupg ${LANG_ENGLISH} \ + "The GnuPG Core is the actual encrypt core and a set of command \ + line utilities." +LangString DESC_SEC_gnupg ${LANG_GERMAN} \ + "Der GnuPG Core ist, wie der Name schon sagt, der Kernbestandteil \ + dieser Software. Der GnuPG Core stellt die eigentliche \ + Verschlüsselung sowie die Verwaltung der Schlüssel bereit." + +LangString DESC_Menu_gnupg_manual ${LANG_ENGLISH} \ + "Show the manual for the GnuPG Core" +LangString DESC_Menu_gnupg_manual ${LANG_GERMAN} \ + "Das Handbuch zum GnuPG Kern anzeigen" + +Section "-libgpg-error" SEC_libgpg_error + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libgpg-error-0.dll" + SetOutPath "$INSTDIR\lib" + File /oname=libgpg-error.imp "${INST_DIR}\lib\libgpg-error.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\gpg-error.h" + SetOutPath "$INSTDIR\share\locale\cs\LC_MESSAGES" + File "${INST_DIR}\share\locale\cs\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\da\LC_MESSAGES" + File "${INST_DIR}\share\locale\da\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES" + File "${INST_DIR}\share\locale\de\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\eo\LC_MESSAGES" + File "${INST_DIR}\share\locale\eo\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\es\LC_MESSAGES" + File "${INST_DIR}\share\locale\es\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\fr\LC_MESSAGES" + File "${INST_DIR}\share\locale\fr\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\hu\LC_MESSAGES" + File "${INST_DIR}\share\locale\hu\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\it\LC_MESSAGES" + File "${INST_DIR}\share\locale\it\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\ja\LC_MESSAGES" + File "${INST_DIR}\share\locale\ja\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\nl\LC_MESSAGES" + File "${INST_DIR}\share\locale\nl\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\pl\LC_MESSAGES" + File "${INST_DIR}\share\locale\pl\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\pt\LC_MESSAGES" + File "${INST_DIR}\share\locale\pt\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\ro\LC_MESSAGES" + File "${INST_DIR}\share\locale\ro\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\ru\LC_MESSAGES" + File "${INST_DIR}\share\locale\ru\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\sr\LC_MESSAGES" + File "${INST_DIR}\share\locale\sr\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\sv\LC_MESSAGES" + File "${INST_DIR}\share\locale\sv\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\uk\LC_MESSAGES" + File "${INST_DIR}\share\locale\uk\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\vi\LC_MESSAGES" + File "${INST_DIR}\share\locale\vi\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\zh_CN\LC_MESSAGES" + File "${INST_DIR}\share\locale\zh_CN\LC_MESSAGES\libgpg-error.mo" + SetOutPath "$INSTDIR\share\locale\zh_TW\LC_MESSAGES" + File "${INST_DIR}\share\locale\zh_TW\LC_MESSAGES\libgpg-error.mo" +SectionEnd + +Section "-zlib" SEC_zlib + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\zlib1.dll" +SectionEnd + +Section "-npth" SEC_npth + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libnpth-0.dll" + SetOutPath "$INSTDIR\lib" + File /oname=libnpth.imp "${INST_DIR}\lib\libnpth.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\npth.h" +SectionEnd + +Section "-gcrypt" SEC_gcrypt + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libgcrypt-20.dll" + SetOutPath "$INSTDIR\lib" + File /oname=libgcrypt.imp "${INST_DIR}\lib\libgcrypt.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\gcrypt.h" +SectionEnd + +Section "-assuan" SEC_assuan + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libassuan-9.dll" + SetOutPath "$INSTDIR\lib" + File /oname=libassuan.imp "${INST_DIR}\lib\libassuan.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\assuan.h" +SectionEnd + +Section "-ksba" SEC_ksba + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libksba-8.dll" + SetOutPath "$INSTDIR\lib" + File /oname=libksba.imp "${INST_DIR}\lib\libksba.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\ksba.h" +SectionEnd + +Section "-gpgme" SEC_gpgme + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libgpgme-11.dll" + File /nonfatal "${INST_DIR}\bin\libgpgme-glib-11.dll" + File "${INST_DIR}\libexec\gpgme-w32spawn.exe" + SetOutPath "$INSTDIR\lib" + File /oname=libgpgme.imp "${INST_DIR}\lib\libgpgme.dll.a" + File /nonfatal /oname=libgpgme-glib.imp "${INST_DIR}\lib\libgpgme-glib.dll.a" + SetOutPath "$INSTDIR\include" + File "${INST_DIR}\include\gpgme.h" +SectionEnd + +Section "-sqlite" SEC_sqlite + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libsqlite3-0.dll" +SectionEnd + +!ifdef WITH_GUI +Section "-libiconv" SEC_libiconv + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libiconv-2.dll" +SectionEnd + +Section "-gettext" SEC_gettext + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libintl-8.dll" +SectionEnd + +Section "-glib" SEC_glib + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libgio-2.0-0.dll" + File "${INST_DIR}\bin\libglib-2.0-0.dll" + File "${INST_DIR}\bin\libgmodule-2.0-0.dll" + File "${INST_DIR}\bin\libgobject-2.0-0.dll" + File "${INST_DIR}\bin\libgthread-2.0-0.dll" + File "${INST_DIR}\bin\gspawn-win32-helper.exe" + File "${INST_DIR}\bin\gspawn-win32-helper-console.exe" + + File "${INST_DIR}\bin\libffi-6.dll" +SectionEnd + +Section "-libpng" SEC_libpng + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libpng14-14.dll" +SectionEnd + +#Section "-jpeg" SEC_jpeg +# SetOutPath "$INSTDIR" +# File "${INST_DIR}\bin\jpeg62.dll" +#SectionEnd + +Section "-cairo" SEC_cairo + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libcairo-gobject-2.dll" + File "${INST_DIR}\bin\libpangocairo-1.0-0.dll" + File "${INST_DIR}\bin\libcairo-2.dll" + File "${INST_DIR}\bin\libcairo-script-interpreter-2.dll" +SectionEnd + +Section "-pixman" SEC_pixman + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libpixman-1-0.dll" +SectionEnd + +Section "-pango" SEC_pango + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\pango-querymodules.exe" + File "${INST_DIR}\bin\libpango-1.0-0.dll" + File "${INST_DIR}\bin\libpangowin32-1.0-0.dll" + + SetOutPath "$INSTDIR\lib\pango\1.6.0\modules" + File "${INST_DIR}\lib\pango\1.6.0\modules\pango-basic-win32.dll" + File "${INST_DIR}\lib\pango\1.6.0\modules\pango-arabic-lang.dll" + File "${INST_DIR}\lib\pango\1.6.0\modules\pango-indic-lang.dll" + + SetOutPath "$INSTDIR\etc\pango" + File "${W32_SRCDIR}\pango.modules" +SectionEnd + +Section "-atk" SEC_atk + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libatk-1.0-0.dll" +SectionEnd + +Section "-gtk+" SEC_gtk_ + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\libgdk_pixbuf-2.0-0.dll" + File "${INST_DIR}\bin\libgdk-win32-2.0-0.dll" + File "${INST_DIR}\bin\libgtk-win32-2.0-0.dll" + + SetOutPath "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0" + File /oname=loaders.cache "${W32_SRCDIR}\gdk-pixbuf-loaders.cache" + SetOutPath "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-ani.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-bmp.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-emf.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-gif.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-ico.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-jpeg.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-tiff.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-wmf.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-icns.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-pcx.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-png.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-pnm.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-qtif.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-ras.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-tga.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xbm.dll" + File "${INST_DIR}\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xpm.dll" + + SetOutPath "$INSTDIR\lib\gtk-2.0\2.10.0\engines" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\engines\libwimp.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\engines\libpixmap.dll" + + SetOutPath "$INSTDIR\lib\gtk-2.0\2.10.0\immodules" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-thai.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-cyrillic-translit.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-multipress.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-ti-er.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-am-et.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-cedilla.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-inuktitut.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-viqr.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-ti-et.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-ipa.dll" + File "${INST_DIR}\lib\gtk-2.0\2.10.0\immodules\im-ime.dll" + + SetOutPath "$INSTDIR\share\themes\Default\gtk-2.0-key" + File "${INST_DIR}\share\themes\Default\gtk-2.0-key\gtkrc" + + SetOutPath "$INSTDIR\share\themes\MS-Windows\gtk-2.0" + File "${INST_DIR}\share\themes\MS-Windows\gtk-2.0\gtkrc" + + SetOutPath "$INSTDIR\etc\gtk-2.0" + File "${INST_DIR}\etc\gtk-2.0\im-multipress.conf" +SectionEnd +!endif + +Section "-pinentry" SEC_pinentry + SetOutPath "$INSTDIR\bin" + File /oname=pinentry-basic.exe "${INST_DIR}\bin\pinentry-w32.exe" +SectionEnd + +!ifdef WITH_GUI +Section "gpa" SEC_gpa + SectionIn RO + SetOutPath "$INSTDIR\bin" + File "${INST_DIR}\bin\gpa.exe" + File "${INST_DIR}\bin\launch-gpa.exe" +SectionEnd + +LangString DESC_SEC_gpa ${LANG_ENGLISH} \ + "The GnuPG Assistant is the graphical interface of GnuPG" +LangString DESC_SEC_gpa ${LANG_GERMAN} \ + "Der GnuPG Assistent ist die graphische Oberfläche von GnuPG." + +LangString DESC_Menu_gpa ${LANG_ENGLISH} \ + "Run the GnuGP Assistant." +LangString DESC_Menu_gpa ${LANG_GERMAN} \ + "Den GnuPG Assistenten starten." + +Section "gpgex" SEC_gpgex + SetOutPath "$INSTDIR\bin" + + ClearErrors + SetOverwrite try + File "${INST_DIR}\bin\gpgex.dll" + SetOverwrite lastused + ifErrors 0 do_reg + File /oname=gpgex.dll.tmp "${INST_DIR}\bin\gpgex.dll" + Rename /REBOOTOK gpgex.dll.tmp gpgex.dll + + do_reg: + ClearErrors + RegDLL "$INSTDIR\bin\gpgex.dll" + ifErrors 0 +2 + MessageBox MB_OK "$(T_GPGEX_RegFailed)" + +${If} ${RunningX64} + # Install the 64 bit version of the plugin. + # Note that we install this in addition to the 32 bit version so that + # the 32 bit version can be used by file dialogs of 32 bit programs. + ClearErrors + SetOverwrite try + File /oname=gpgex6.dll "${INST6_DIR}\bin\gpgex.dll" + SetOverwrite lastused + ifErrors 0 do_reg64 + File /oname=gpgex6.dll.tmp "${INST6_DIR}\bin\gpgex.dll" + Rename /REBOOTOK gpgex6.dll.tmp gpgex6.dll + + do_reg64: + # Register the DLL. We need to register both versions. However + # RegDLL can't be used for 64 bit and InstallLib seems to be a + # registry hack. + ClearErrors + nsExec::ExecToLog '"$SYSDIR\regsvr32" "/s" "$INSTDIR\bin\gpgex6.dll"' + ifErrors 0 +2 + MessageBox MB_OK "$(T_GPGEX_RegFailed) (64 bit)" + + # Note: There is no need to install the help an mo files because + # they are identical to those installed by the 32 bit version. +${EndIf} +SectionEnd + +LangString T_GPGEX_RegFailed ${LANG_ENGLISH} \ + "Warning: Registration of the Explorer plugin failed." + +LangString DESC_SEC_gpgex ${LANG_ENGLISH} \ + "GnuPG Explorer Extension" + +!endif + + +Section "-gnupglast" SEC_gnupglast + SetOutPath "$INSTDIR" +SectionEnd + + +# +# Define the uninstaller sections. +# +# (reverse order of the installer sections!) +# + +Section "-un.gnupglast" + ifFileExists "$INSTDIR\bin\launch-gpa.exe" 0 no_uiserver + nsExec::ExecToLog '"$INSTDIR\bin\launch-gpa" "--stop-server"' + no_uiserver: + ifFileExists "$INSTDIR\bin\gpgconf.exe" 0 no_gpgconf + nsExec::ExecToLog '"$INSTDIR\bin\gpgconf" "--kill" "gpg-agent"' + nsExec::ExecToLog '"$INSTDIR\bin\gpgconf" "--kill" "dirmngr"' + no_gpgconf: +SectionEnd + +Section "-un.gpgex" + UnRegDLL "$INSTDIR\bin\gpgex.dll" + + Delete /REBOOTOK "$INSTDIR\bin\gpgex.dll" + +${If} ${RunningX64} + nsExec::ExecToLog '"$SYSDIR\regsvr32" "/u" "/s" "$INSTDIR\bin\gpgex6.dll"' + Delete /REBOOTOK "$INSTDIR\bin\gpgex6.dll" +${EndIf} +SectionEnd + +!ifdef WITH_GUI +Section "-un.gpa" + Delete "$INSTDIR\bin\gpa.exe" + Delete "$INSTDIR\bin\launch-gpa.exe" + + RMDir "$INSTDIR\share\gpa" +SectionEnd +!endif + +Section "-un.pinentry" + Delete "$INSTDIR\bin\pinentry-basic.exe" +SectionEnd + +!ifdef WITH_GUI +Section "-un.gtk+" + Delete "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll" + Delete "$INSTDIR\bin\libgdk-win32-2.0-0.dll" + Delete "$INSTDIR\bin\libgtk-win32-2.0-0.dll" + + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache" + + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-ani.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-bmp.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-emf.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-gif.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-ico.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-jpeg.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-tiff.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-gdip-wmf.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-icns.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-pcx.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-png.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-pnm.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-qtif.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-ras.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-tga.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xbm.dll" + Delete "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-xpm.dll" + RMDir "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0\loaders" + RMDir "$INSTDIR\lib\gdk-pixbuf-2.0\2.10.0" + RMDir "$INSTDIR\lib\gdk-pixbuf-2.0" + + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\engines\libwimp.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\engines\libpixmap.dll" + RMDir "$INSTDIR\lib\gtk-2.0\2.10.0\engines" + + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-thai.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-cyrillic-translit.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-multipress.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-ti-er.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-am-et.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-cedilla.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-inuktitut.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-viqr.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-ti-et.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-ipa.dll" + Delete "$INSTDIR\lib\gtk-2.0\2.10.0\immodules\im-ime.dll" + RMDir "$INSTDIR\lib\gtk-2.0\2.10.0\immodules" + + RMDir "$INSTDIR\lib\gtk-2.0\2.10.0" + RMDir "$INSTDIR\lib\gtk-2.0" + + Delete "$INSTDIR\share\themes\Default\gtk-2.0-key\gtkrc" + RMDir "$INSTDIR\share\themes\Default\gtk-2.0-key" + RMDir "$INSTDIR\share\themes\Default" + + Delete "$INSTDIR\share\themes\MS-Windows\gtk-2.0\gtkrc" + RMDir "$INSTDIR\share\themes\MS-Windows\gtk-2.0" + RMDir "$INSTDIR\share\themes\MS-Windows" + + RMDir "$INSTDIR\share\themes" + + Delete "$INSTDIR\etc\gtk-2.0\im-multipress.conf" + RMDir "$INSTDIR\etc\gtk-2.0" +SectionEnd + +Section "-un.atk" + Delete "$INSTDIR\bin\libatk-1.0-0.dll" +SectionEnd + +Section "-un.pango" + Delete "$INSTDIR\bin\pango-querymodules.exe" + Delete "$INSTDIR\bin\libpango-1.0-0.dll" + Delete "$INSTDIR\bin\libpangowin32-1.0-0.dll" + + Delete "$INSTDIR\lib\pango\1.6.0\modules\pango-basic-win32.dll" + Delete "$INSTDIR\lib\pango\1.6.0\modules\pango-arabic-lang.dll" + Delete "$INSTDIR\lib\pango\1.6.0\modules\pango-indic-lang.dll" + RMDir "$INSTDIR\lib\pango\1.6.0\modules" + RMDir "$INSTDIR\lib\pango\1.6.0" + RMDir "$INSTDIR\lib\pango" + + Delete "$INSTDIR\etc\pango\pango.modules" + RMDir "$INSTDIR\etc\pango" +SectionEnd + +Section "-un.pixman" + Delete "$INSTDIR\bin\libpixman-1-0.dll" +SectionEnd + +Section "-un.cairo" + Delete "$INSTDIR\bin\libcairo-gobject-2.dll" + Delete "$INSTDIR\bin\libpangocairo-1.0-0.dll" + Delete "$INSTDIR\bin\libcairo-2.dll" + Delete "$INSTDIR\bin\libcairo-script-interpreter-2.dll" +SectionEnd + +Section "-un.libpng" + Delete "$INSTDIR\bin\libpng14-14.dll" +SectionEnd + +Section "-un.glib" + Delete "$INSTDIR\bin\libgio-2.0-0.dll" + Delete "$INSTDIR\bin\libglib-2.0-0.dll" + Delete "$INSTDIR\bin\libgmodule-2.0-0.dll" + Delete "$INSTDIR\bin\libgobject-2.0-0.dll" + Delete "$INSTDIR\bin\libgthread-2.0-0.dll" + Delete "$INSTDIR\bin\gspawn-win32-helper.exe" + Delete "$INSTDIR\bin\gspawn-win32-helper-console.exe" + Delete "$INSTDIR\bin\libffi-6.dll" +SectionEnd +!endif + + +Section "-un.gettext" + Delete "$INSTDIR\bin\libintl-8.dll" +SectionEnd + +Section "-un.libiconv" + Delete "$INSTDIR\bin\libiconv-2.dll" +SectionEnd + +Section "-un.gpgme" + Delete "$INSTDIR\bin\libgpgme-11.dll" + Delete "$INSTDIR\bin\libgpgme-glib-11.dll" + Delete "$INSTDIR\bin\gpgme-w32spawn.exe" + Delete "$INSTDIR\lib\libgpgme.imp" + Delete "$INSTDIR\lib\libgpgme-glib.imp" + Delete "$INSTDIR\include\gpgme.h" +SectionEnd + +Section "-un.ksba" + Delete "$INSTDIR\bin\libksba-8.dll" + Delete "$INSTDIR\lib\libksba.imp" + Delete "$INSTDIR\include\ksba.h" +SectionEnd + +Section "-un.assuan" + Delete "$INSTDIR\bin\libassuan-9.dll" + Delete "$INSTDIR\lib\libassuan.imp" + Delete "$INSTDIR\include\assuan.h" +SectionEnd + +Section "-un.gcrypt" + Delete "$INSTDIR\bin\libgcrypt-20.dll" + Delete "$INSTDIR\lib\libgcrypt.imp" + Delete "$INSTDIR\include\gcrypt.h" +SectionEnd + +Section "-un.npth" + Delete "$INSTDIR\bin\libnpth-0.dll" + Delete "$INSTDIR\lib\libnpth.imp" + Delete "$INSTDIR\include\npth.h" +SectionEnd + +Section "-un.zlib" + Delete "$INSTDIR\bin\zlib1.dll" +SectionEnd + +Section "-un.libgpg-error" + Delete "$INSTDIR\bin\libgpg-error-0.dll" + Delete "$INSTDIR\lib\libgpg-error.imp" + Delete "$INSTDIR\include\gpg-error.h" + Delete "$INSTDIR\share\locale\cs\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\cs\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\cs" + Delete "$INSTDIR\share\locale\da\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\da\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\da" + Delete "$INSTDIR\share\locale\de\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\de\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\de" + Delete "$INSTDIR\share\locale\eo\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\eo\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\eo" + Delete "$INSTDIR\share\locale\es\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\es\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\es" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\fr\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\fr" + Delete "$INSTDIR\share\locale\hu\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\hu\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\hu" + Delete "$INSTDIR\share\locale\it\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\it\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\it" + Delete "$INSTDIR\share\locale\ja\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\ja\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ja" + Delete "$INSTDIR\share\locale\nl\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\nl\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\nl" + Delete "$INSTDIR\share\locale\pl\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\pl\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\pl" + Delete "$INSTDIR\share\locale\pt\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\pt\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\pt" + Delete "$INSTDIR\share\locale\ro\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\ro\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ro" + Delete "$INSTDIR\share\locale\ru\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\ru\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ru" + Delete "$INSTDIR\share\locale\sr\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\sr\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\sr" + Delete "$INSTDIR\share\locale\sv\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\sv\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\sv" + Delete "$INSTDIR\share\locale\uk\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\uk\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\uk" + Delete "$INSTDIR\share\locale\vi\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\vi\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\vi" + Delete "$INSTDIR\share\locale\zh_CN\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\zh_CN\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\zh_CN" + Delete "$INSTDIR\share\locale\zh_TW\LC_MESSAGES\libgpg-error.mo" + RMDir "$INSTDIR\share\locale\zh_TW\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\zh_TW" + RMDir "$INSTDIR\share\locale" +SectionEnd + +Section "-un.gnupg" + Delete "$INSTDIR\bin\gpg.exe" + Delete "$INSTDIR\bin\gpgv.exe" + Delete "$INSTDIR\bin\gpgsm.exe" + Delete "$INSTDIR\bin\gpg-agent.exe" + Delete "$INSTDIR\bin\scdaemon.exe" + Delete "$INSTDIR\bin\dirmngr.exe" + Delete "$INSTDIR\bin\gpgconf.exe" + Delete "$INSTDIR\bin\gpg-connect-agent.exe" + Delete "$INSTDIR\bin\gpgtar.exe" + Delete "$INSTDIR\bin\dirmngr_ldap.exe" + Delete "$INSTDIR\bin\gpg-preset-passphrase.exe" + Delete "$INSTDIR\bin\gpg-check-pattern.exe" + Delete "$INSTDIR\bin\gpg-wks-client.exe" + + Delete "$INSTDIR\share\doc\gnupg\examples\Automatic.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Brainpool256.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Brainpool384.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Brainpool512.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Curve25519.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Curve448.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\Curve-secp256k1.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\pwpattern.list" + Delete "$INSTDIR\share\doc\gnupg\examples\RSA-4096.prf" + Delete "$INSTDIR\share\doc\gnupg\examples\VS-NfD.prf" + + RMDir "$INSTDIR\share\doc\gnupg\examples" + RMDir "$INSTDIR\share\doc\gnupg" + + Delete "$INSTDIR\share\gnupg\sks-keyservers.netCA.pem" + Delete "$INSTDIR\share\gnupg\dirmngr-conf.skel" + Delete "$INSTDIR\share\gnupg\distsigkey.gpg" + Delete "$INSTDIR\share\gnupg\gpg-conf.skel" + RMDir "$INSTDIR\share\gnupg" + + Delete "$INSTDIR\share\locale\ca\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\ca\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ca" + Delete "$INSTDIR\share\locale\cs\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\cs\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\cs" + Delete "$INSTDIR\share\locale\da\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\da\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\da" + Delete "$INSTDIR\share\locale\de\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\de\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\de" + Delete "$INSTDIR\share\locale\el\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\el\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\el" + Delete "$INSTDIR\share\locale\en@boldquot\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\en@boldquot\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\en@boldquot" + Delete "$INSTDIR\share\locale\en@quot\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\en@quot\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\en@quot" + Delete "$INSTDIR\share\locale\eo\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\eo\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\eo" + Delete "$INSTDIR\share\locale\es\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\es\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\es" + Delete "$INSTDIR\share\locale\et\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\et\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\et" + Delete "$INSTDIR\share\locale\fi\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\fi\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\fi" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\fr\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\fr" + Delete "$INSTDIR\share\locale\gl\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\gl\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\gl" + Delete "$INSTDIR\share\locale\hu\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\hu\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\hu" + Delete "$INSTDIR\share\locale\id\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\id\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\id" + Delete "$INSTDIR\share\locale\it\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\it\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\it" + Delete "$INSTDIR\share\locale\ja\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\ja\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ja" + Delete "$INSTDIR\share\locale\nb\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\nb\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\nb" + Delete "$INSTDIR\share\locale\pl\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\pl\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\pl" + Delete "$INSTDIR\share\locale\pt\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\pt\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\pt" + Delete "$INSTDIR\share\locale\ro\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\ro\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ro" + Delete "$INSTDIR\share\locale\ru\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\ru\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\ru" + Delete "$INSTDIR\share\locale\sk\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\sk\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\sk" + Delete "$INSTDIR\share\locale\sv\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\sv\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\sv" + Delete "$INSTDIR\share\locale\tr\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\tr\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\tr" + Delete "$INSTDIR\share\locale\uk\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\uk\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\uk" + Delete "$INSTDIR\share\locale\zh_CN\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\zh_CN\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\zh_CN" + Delete "$INSTDIR\share\locale\zh_TW\LC_MESSAGES\gnupg2.mo" + RMDir "$INSTDIR\share\locale\zh_TW\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\zh_TW" + RMDir "$INSTDIR\share\locale" +SectionEnd + +Section "-un.sqlite" + Delete "$INSTDIR\bin\libsqlite3-0.dll" +SectionEnd + +Section "-un.gnupginst" + # Delete standard stuff. + Delete "$INSTDIR\README.txt" + + Delete "$INSTDIR\VERSION" + + # Remove the bin directory from the PATH + Push "$INSTDIR\bin" + Call un.RemoveFromPath + + # Try to remove the top level directories. + RMDir "$INSTDIR\bin" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR\include" + RMDir "$INSTDIR\share" + RMDir "$INSTDIR\etc" + RMDir "$INSTDIR" + + # Clean the registry. + DeleteRegValue SHCTX "Software\GNU\GnuPG" "Install Directory" +SectionEnd + + +Function .onInit + ;;!define MUI_LANGDLL_ALWAYSSHOW + !insertmacro MUI_LANGDLL_DISPLAY + + Call G4wRunOnce + + SetOutPath $TEMP +#!ifdef SOURCES +# File /oname=gpgspltmp.bmp "${TOP_SRCDIR}\doc\logo\gnupg-logo-400px.bmp" +# # We play the tune only for the soruce installer +# File /oname=gpgspltmp.wav "${TOP_SRCDIR}\src\gnupg-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} +#!endif + + # We can't use TOP_SRCDIR dir as the name of the file needs to be + # the same while building and running the installer. Thus we + # generate the file from a template. + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "inst-options.ini" + + #Call CalcDepends + + 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 +initDone: +FunctionEnd + +Function "un.onInit" + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +#Function .onInstFailed +# Delete $TEMP\gpgspltmp.wav +#FunctionEnd + +#Function .onInstSuccess +# Delete $TEMP\gpgspltmp.wav +#FunctionEnd + +#Function .onSelChange +# Call CalcDepends +#FunctionEnd + + +# This must be in a central place. Urgs. + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gnupg} $(DESC_SEC_gnupg) +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpa} $(DESC_SEC_gpa) +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgex} $(DESC_SEC_gpgex) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + + +# This also must be in a central place. Also Urgs. + +!ifdef WITH_GUI +Section "-startmenu" + + # Check if the start menu entries where requested. + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "inst-options.ini" \ + "Field 2" "State" + IntCmp $R0 0 no_start_menu + +!insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + + SectionGetFlags ${SEC_gpa} $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} 0 no_gpa_menu + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GPA.lnk" \ + "$INSTDIR\bin\launch-gpa.exe" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa) + no_gpa_menu: + + + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG Manual.lnk" \ + "$INSTDIR\share\gnupg\gnupg.html" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gnupg_manual) + + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG README.lnk" \ + "$INSTDIR\README.txt" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gnupg_readme) + +!insertmacro MUI_STARTMENU_WRITE_END + + + +no_start_menu: + + + # Check if the desktop entries where requested. + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "inst-options.ini" \ + "Field 3" "State" + IntCmp $R0 0 no_desktop + + SectionGetFlags ${SEC_gpa} $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} 0 no_gpa_desktop + CreateShortCut "$DESKTOP\GPA.lnk" \ + "$INSTDIR\bin\launch-gpa.exe" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa) + no_gpa_desktop: + + + CreateShortCut "$DESKTOP\GPA Manual.lnk" \ + "$INSTDIR\share\gpa\gpa.html" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa_manual) + +no_desktop: + + + # Check if the quick launch bar entries where requested. + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "inst-options.ini" \ + "Field 4" "State" + IntCmp $R0 0 no_quick_launch + StrCmp $QUICKLAUNCH $TEMP no_quick_launch + + SectionGetFlags ${SEC_gpa} $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} 0 no_gpa_quicklaunch + CreateShortCut "$QUICKLAUNCH\GPA.lnk" \ + "$INSTDIR\bin\launch-gpa.exe" \ + "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa) +no_gpa_quicklaunch: + + +no_quick_launch: + + +SectionEnd +!endif + + +# +# Now for the generic parts to end the installation. +# +Var MYTMP + +# Last section is a hidden one. +Section + WriteUninstaller "$INSTDIR\gnupg-uninstall.exe" + + # Windows Add/Remove Programs support + StrCpy $MYTMP "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG" + WriteRegExpandStr SHCTX $MYTMP "UninstallString" '"$INSTDIR\gnupg-uninstall.exe"' + WriteRegExpandStr SHCTX $MYTMP "InstallLocation" "$INSTDIR" + WriteRegStr SHCTX $MYTMP "DisplayName" "${PRETTY_PACKAGE}" +!ifdef WITH_GUI + WriteRegStr SHCTX $MYTMP "DisplayIcon" "$INSTDIR\bin\gpa.exe,0" +!else + WriteRegStr SHCTX $MYTMP "DisplayIcon" "$INSTDIR\bin\gpg.exe,0" +!endif + WriteRegStr SHCTX $MYTMP "DisplayVersion" "${VERSION}" + WriteRegStr SHCTX $MYTMP "Publisher" "The GnuPG Project" + WriteRegStr SHCTX $MYTMP "URLInfoAbout" "https://gnupg.org" + WriteRegDWORD SHCTX $MYTMP "NoModify" "1" + WriteRegDWORD SHCTX $MYTMP "NoRepair" "1" +SectionEnd + +Section Uninstall +!ifdef WITH_GUI + #--------------------------------------------------- + # Delete the menu entries and any empty parent menus + #--------------------------------------------------- + !insertmacro MUI_STARTMENU_GETFOLDER Application $MYTMP + Delete "$SMPROGRAMS\$MYTMP\GPA.lnk" + Delete "$SMPROGRAMS\$MYTMP\GnuPG Manual.lnk" + Delete "$SMPROGRAMS\$MYTMP\GnuPG README.lnk" + Delete "$SMPROGRAMS\$MYTMP\*.lnk" + StrCpy $MYTMP "$SMPROGRAMS\$MYTMP" + startMenuDeleteLoop: + ClearErrors + RMDir $MYTMP + GetFullPathName $MYTMP "$MYTMP\.." + IfErrors startMenuDeleteLoopDone + StrCmp $MYTMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + DeleteRegValue SHCTX "Software\GNU\GnuPG" "Start Menu Folder" + + # Delete Desktop links. + Delete "$DESKTOP\GPA.lnk" + Delete "$DESKTOP\GnuPG Manual.lnk" + Delete "$DESKTOP\GnuPG README.lnk" + + # Delete Quick Launch Bar links. + StrCmp $QUICKLAUNCH $TEMP no_quick_launch_uninstall + Delete "$QUICKLAUNCH\GPA.lnk" +no_quick_launch_uninstall: + +!endif + + Delete "$INSTDIR\gnupg-uninstall.exe" + RMDir "$INSTDIR" + + # Clean the registry. + DeleteRegValue SHCTX "Software\GnuPG" "Install Directory" + DeleteRegKey /ifempty SHCTX "Software\GnuPG" + # Remove Windows Add/Remove Programs support. + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG" +SectionEnd diff --git a/unattended.bat b/unattended.bat new file mode 100644 index 0000000000000000000000000000000000000000..eb8b45ad8a7b8cec529f8df6cfc995c2abd97f6c --- /dev/null +++ b/unattended.bat @@ -0,0 +1,39 @@ +@echo off +color 1E +cls + +set INSTALLER=gnupg-w32-2.2.45_20241022.exe + +REM :: Script-Name +set SCRIPTNAME=%~nx0 + +SETLOCAL +SETLOCAL EnableDelayedExpansion + +set drive=%~d0 +set drivep=%drive% +If $#\#$==$#%drive:~-1%#$ set drivep=%drive:~0,-1% +set drivename=%drivep% + +REM :: relative path to absolute path -PATH- +set pathn=%~p0 +set pathp=%pathn% +If $#\#$==$#%pathn:~-1%#$ set pathp=%pathn:~0,-1% +set pathname=%pathp% + +set HOMEDRIVE=%drivename% +set HOMEPATH=%pathname% +set EXEDIR=%HOMEDRIVE%%HOMEPATH% +set DIRCMD=/O:GNE + +%HOMEDRIVE% +chdir "%EXEDIR%" + +start /wait "" "%EXEDIR%\%INSTALLER%" /S /D=$PROGRAMFILES\GnuPG + +goto end + +:end +ENDLOCAL +REM :: echo.Bitte Taste ... +REM :: pause >nul