Page MenuHome GnuPG

No OneTemporary

diff --git a/src/gpg4win.nsi b/src/gpg4win.nsi
index 4f3dc43d..e26863c4 100644
--- a/src/gpg4win.nsi
+++ b/src/gpg4win.nsi
@@ -1,218 +1,221 @@
# gpg4win.nsi - Installer for GnuPG 4 Windows. -*- coding: latin-1; -*-
# Copyright (C) 2005, 2007, 2008 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
!cd "${BUILD_DIR}"
!addincludedir "${TOP_SRCDIR}"
!addincludedir "${TOP_SRCDIR}/po"
!addincludedir "${SRCDIR}"
!addplugindir "${BUILD_DIR}"
!include "config.nsi"
# For the "light" version of the package, we explicitely disable some
# of the packages right after including config.nsi.
!ifdef GPG4WIN_LIGHT
!ifdef HAVE_PKG_COMPENDIUM
!undef HAVE_PKG_COMPENDIUM
!endif
!ifdef HAVE_PKG_KLEOPATRA
!undef HAVE_PKG_KLEOPATRA
!endif
!ifdef HAVE_PKG_OXYGEN_ICONS
!undef HAVE_PKG_OXYGEN_ICONS
!endif
!ifdef HAVE_PKG_QTBASE
!undef HAVE_PKG_QTBASE
!endif
!endif
# For the "vanilla" version of the package, we explicitely disable most
# of the packages right after including config.nsi.
!ifdef GPG4WIN_VANILLA
!ifdef HAVE_PKG_GPGOL
!undef HAVE_PKG_GPGOL
!endif
!ifdef HAVE_PKG_GPGEX
!undef HAVE_PKG_GPGEX
!endif
!ifdef HAVE_PKG_GPA
!undef HAVE_PKG_GPA
!endif
!ifdef HAVE_PKG_LIBGSASL
!undef HAVE_PKG_LIBGSASL
!endif
;!ifdef HAVE_PKG_LIBTASN1
;!undef HAVE_PKG_LIBTASN1
;!endif
;!ifdef HAVE_PKG_GNUTLS
;!undef HAVE_PKG_GNUTLS
;!endif
!ifdef HAVE_PKG_LIBPNG
!undef HAVE_PKG_LIBPNG
!endif
!ifdef HAVE_PKG_PKGCONFIG
!undef HAVE_PKG_PKGCONFIG
!endif
!ifdef HAVE_PKG_GLIB
!undef HAVE_PKG_GLIB
!endif
!ifdef HAVE_PKG_ATK
!undef HAVE_PKG_ATK
!endif
!ifdef HAVE_PKG_EXPAT
!undef HAVE_PKG_EXPAT
!endif
!ifdef HAVE_PKG_FREETYPE
!undef HAVE_PKG_FREETYPE
!endif
!ifdef HAVE_PKG_FONTCONFIG
!undef HAVE_PKG_FONTCONFIG
!endif
!ifdef HAVE_PKG_CAIRO
!undef HAVE_PKG_CAIRO
!endif
!ifdef HAVE_PKG_PANGO
!undef HAVE_PKG_PANGO
!endif
!ifdef HAVE_PKG_GTK_
!undef HAVE_PKG_GTK_
!endif
!ifdef HAVE_PKG_DBUS
!undef HAVE_PKG_DBUS
!endif
!ifdef HAVE_PKG_QTBASE
!undef HAVE_PKG_QTBASE
!endif
!ifdef HAVE_PKG_OXYGEN_ICONS
!undef HAVE_PKG_OXYGEN_ICONS
!endif
!ifdef HAVE_PKG_KLEOPATRA
!undef HAVE_PKG_KLEOPATRA
!endif
!ifdef HAVE_PKG_COMPENDIUM
!undef HAVE_PKG_COMPENDIUM
!endif
!endif
# 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".
# NOTE: Please keep the capitalization of PRETTY_PACKAGE_SHORT as it is
# used as registry key.
!define PACKAGE "${_PACKAGE}"
!define PRETTY_PACKAGE "Gpg4win"
!define PRETTY_PACKAGE_SHORT "GPG4Win"
!define VERSION "${_VERSION}"
!define PROD_VERSION "${_BUILD_FILEVERSION}"
!define COMPANY "g10 Code GmbH"
!define COPYRIGHT "Copyright (C) 2008 g10 Code GmbH"
!define DESCRIPTION "Gpg4win: The GNU Privacy Guard and Tools for Windows"
!define INSTALL_DIR "Gpg4win"
!define WELCOME_TITLE_STR "$(T_WelcomeTitleGpg4win)"
!define ABOUT_STR "$(T_AboutGpg4win) \
$\r$\n$\r$\n$\r$\n$_CLICK $\r$\n$\r$\n$\r$\n \
$(T_AboutGpg4winVersion $\r$\n$(T_AboutGpg4winReleaseDate)"
# 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 DISABLE_LZMA
!ifndef SOURCES
SetCompressor /SOLID lzma
# SetCompressorDictSize 8
!endif
!endif
# 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\${PRETTY_PACKAGE_SHORT}"
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME ""
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\${PRETTY_PACKAGE_SHORT}"
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install Directory"
!define MULTIUSER_INSTALLMODE_INSTDIR "${PRETTY_PACKAGE_SHORT}"
!include "MultiUser.nsh"
!ifdef DEBUG
!undef DEBUG
!endif
# The installation directory.
!define ipdir "playground/install/pkgs"
!define exipdir "playground/install-ex/pkgs"
!define bpdir "playground/build"
!ifndef GPG4WIN_VANILLA
# Claws is a bit special because we installed
# it for some time and now remove the old
# version we did install during installation
# to be part of an update.
!include "uninst-claws-mail.nsi"
!endif
+# Variables
+VAR is_minimal
+
# Sections
!include "Sections.nsh"
# We use Memento to remember past installation choices.
!include Memento.nsh
!define MEMENTO_REGISTRY_ROOT SHCTX
!define MEMENTO_REGISTRY_KEY \
Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRETTY_PACKAGE_SHORT}
# We need to know wether we are installing to 64 bit.
!include "x64.nsh"
# Now include the sections.
!define BINARIES
!include "inst-sections.nsi"
# Now include the generic parts.
!define HAVE_STARTMENU
!include "installer.nsi"
# The WelcomeTitle is displayed on the first page.
LangString T_WelcomeTitleGpg4win ${LANG_ENGLISH} \
"Welcome to the installation of Gpg4win"
# The About string as displayed on the first page.
LangString T_AboutGpg4win ${LANG_ENGLISH} \
"Gpg4win is a installer package for Windows for EMail and \
file encryption using the core component GnuPG for Windows. \
Both relevant cryptography standards are supported, OpenPGP \
and S/MIME. Gpg4win and the software included with Gpg4win \
are Free Software."
LangString T_AboutGpg4winVersion ${LANG_ENGLISH} \
"This is Gpg4win version ${VERSION}"
LangString T_AboutGpg4winFileVersion ${LANG_ENGLISH} \
"file version ${PROD_VERSION}"
LangString T_AboutGpg4winReleaseDate ${LANG_ENGLISH} \
"release date ${_BUILD_ISODATE}"
# At long last, include all the translations.
!include "../po/catalogs.nsi"
# Now include the generic parts to end the installation.
!include "installer-finish.nsi"
diff --git a/src/inst-sections.nsi b/src/inst-sections.nsi
index c8075e93..1bd2a508 100644
--- a/src/inst-sections.nsi
+++ b/src/inst-sections.nsi
@@ -1,1022 +1,1037 @@
# inst-sections.nsi - Installer for GPG4Win sections. -*- coding: latin-1; -*-
# Copyright (C) 2005, 2006, 2007, 2008, 2009 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, see <http://www.gnu.org/licenses/>.
!include "inst-gpg4win.nsi"
# The order of installation must be the same as the build order. You
# can use tsort on the info in configure.ac, or just check out
# gpg4win_build_list in config.nsi. The order determines also the
# order in the packages selection dialog.
!ifdef HAVE_PKG_BZIP2
!include "inst-bzip2.nsi"
!endif
!ifdef HAVE_PKG_LIBICONV
!include "inst-libiconv.nsi"
!endif
!ifdef HAVE_PKG_LIBTASN1
!include "inst-libtasn1.nsi"
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!include "inst-breeze-icons.nsi"
!endif
!ifdef HAVE_PKG_PKGCONFIG
!include "inst-pkgconfig.nsi"
!endif
!ifdef HAVE_PKG_W32PTH
!include "inst-w32pth.nsi"
!endif
!ifdef HAVE_PKG_ZLIB
!include "inst-zlib.nsi"
!endif
!ifdef HAVE_PKG_QTBASE
!include "inst-qtbase.nsi"
!endif
!ifdef HAVE_PKG_GETTEXT
!include "inst-gettext.nsi"
!endif
!ifdef HAVE_PKG_LIBPNG
!include "inst-libpng.nsi"
!endif
!ifdef HAVE_PKG_LIBASSUAN
!include "inst-libassuan.nsi"
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!include "inst-libgpg-error.nsi"
!endif
!ifdef HAVE_PKG_LIBFFI
!include "inst-libffi.nsi"
!endif
!ifdef HAVE_PKG_GLIB
!include "inst-glib.nsi"
!endif
!ifdef HAVE_PKG_EXPAT
!include "inst-expat.nsi"
!endif
!ifdef HAVE_PKG_FREETYPE
!include "inst-freetype.nsi"
!endif
!ifdef HAVE_PKG_FONTCONFIG
!include "inst-fontconfig.nsi"
!endif
!ifdef HAVE_PKG_CAIRO
!include "inst-cairo.nsi"
!endif
!ifdef HAVE_PKG_PANGO
!include "inst-pango.nsi"
!endif
!ifdef HAVE_PKG_ATK
!include "inst-atk.nsi"
!endif
!ifdef HAVE_PKG_GDK_PIXBUF
!include "inst-gdk-pixbuf.nsi"
!endif
!ifdef HAVE_PKG_GTK_
!include "inst-gtk+.nsi"
!endif
!ifdef HAVE_PKG_PINENTRY
!include "inst-pinentry.nsi"
!endif
!ifdef HAVE_PKG_GNUPG_W32
!include "inst-gnupg-w32.nsi"
!endif
!ifdef HAVE_PKG_GPGME
!include "inst-gpgme.nsi"
!endif
!ifdef HAVE_PKG_QTTOOLS
!include "inst-qttools.nsi"
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!include "inst-qtwinextras.nsi"
!endif
!ifdef HAVE_PKG_BOOST
!include "inst-boost.nsi"
!endif
!ifdef HAVE_PKG_KCONFIG
!include "inst-kconfig.nsi"
!endif
!ifdef HAVE_PKG_KI18N
!include "inst-ki18n.nsi"
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!include "inst-kwidgetsaddons.nsi"
!endif
!ifdef HAVE_PKG_KCOMPLETION
!include "inst-kcompletion.nsi"
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!include "inst-kwindowsystem.nsi"
!endif
!ifdef HAVE_PKG_KCOREADDONS
!include "inst-kcoreaddons.nsi"
!endif
!ifdef HAVE_PKG_KCODECS
!include "inst-kcodecs.nsi"
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!include "inst-kconfigwidgets.nsi"
!endif
!ifdef HAVE_PKG_KXMLGUI
!include "inst-kxmlgui.nsi"
!endif
!ifdef HAVE_PKG_KGUIADDONS
!include "inst-kguiaddons.nsi"
!endif
!ifdef HAVE_PKG_KMIME
!include "inst-kmime.nsi"
!endif
!ifdef HAVE_PKG_KDE_L10N
!include "inst-kde-l10n.nsi"
!endif
!ifdef HAVE_PKG_KICONTHEMES
!include "inst-kiconthemes.nsi"
!endif
!ifdef HAVE_PKG_KARCHIVE
!include "inst-karchive.nsi"
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!include "inst-kitemviews.nsi"
!endif
!ifdef HAVE_PKG_KITEMMODELS
!include "inst-kitemmodels.nsi"
!endif
!ifdef HAVE_PKG_LIBKLEO
!include "inst-libkleo.nsi"
!endif
!ifdef HAVE_PKG_EXTRA_CMAKE_MODULES
!include "inst-extra-cmake-modules.nsi"
!endif
!ifdef HAVE_PKG_QTSVG
!include "inst-qtsvg.nsi"
!endif
# These are displayed in the selection dialog.
!ifdef HAVE_PKG_KLEOPATRA
!include "inst-kleopatra.nsi"
!endif
!ifdef HAVE_PKG_GPA
!include "inst-gpa.nsi"
!endif
!ifdef HAVE_PKG_GPGOL
!include "inst-gpgol.nsi"
!endif
!ifdef HAVE_PKG_GPGEX
!include "inst-gpgex.nsi"
!endif
!ifdef HAVE_PKG_PAPERKEY
!include "inst-paperkey.nsi"
!endif
!ifdef HAVE_PKG_COMPENDIUM
!include "inst-compendium.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "inst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "inst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "inst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "inst-man_advanced_de.nsi"
!endif
!include "inst-final.nsi"
# We have to invoke the uninstallers in reverse order!
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "uninst-man_advanced_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "uninst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "uninst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "uninst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_COMPENDIUM
!include "uninst-compendium.nsi"
!endif
!ifdef HAVE_PKG_PAPERKEY
!include "uninst-paperkey.nsi"
!endif
!ifdef HAVE_PKG_GPGEX
!include "uninst-gpgex.nsi"
!endif
!ifdef HAVE_PKG_GPGOL
!include "uninst-gpgol.nsi"
!endif
!ifdef HAVE_PKG_GPA
!include "uninst-gpa.nsi"
!endif
!ifdef HAVE_PKG_KLEOPATRA
!include "uninst-kleopatra.nsi"
!endif
!ifdef HAVE_PKG_GPGME
!include "uninst-gpgme.nsi"
!endif
!ifdef HAVE_PKG_GNUPG_W32
!include "uninst-gnupg-w32.nsi"
!endif
!ifdef HAVE_PKG_PINENTRY
!include "uninst-pinentry.nsi"
!endif
!ifdef HAVE_PKG_GNUTLS
!include "uninst-gnutls.nsi"
!endif
!ifdef HAVE_PKG_CURL
!include "uninst-curl.nsi"
!endif
!ifdef HAVE_PKG_GTK_
!include "uninst-gtk+.nsi"
!endif
!ifdef HAVE_PKG_GDK_PIXBUF
!include "uninst-gdk-pixbuf.nsi"
!endif
!ifdef HAVE_PKG_ATK
!include "uninst-atk.nsi"
!endif
!ifdef HAVE_PKG_PANGO
!include "uninst-pango.nsi"
!endif
!ifdef HAVE_PKG_CAIRO
!include "uninst-cairo.nsi"
!endif
!ifdef HAVE_PKG_FONTCONFIG
!include "uninst-fontconfig.nsi"
!endif
!ifdef HAVE_PKG_FREETYPE
!include "uninst-freetype.nsi"
!endif
!ifdef HAVE_PKG_EXPAT
!include "uninst-expat.nsi"
!endif
!ifdef HAVE_PKG_GLIB
!include "uninst-glib.nsi"
!endif
!ifdef HAVE_PKG_LIBFFI
!include "uninst-libffi.nsi"
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!include "uninst-libgpg-error.nsi"
!endif
!ifdef HAVE_PKG_LIBASSUAN
!include "uninst-libassuan.nsi"
!endif
!ifdef HAVE_PKG_LIBPNG
!include "uninst-libpng.nsi"
!endif
!ifdef HAVE_PKG_GETTEXT
!include "uninst-gettext.nsi"
!endif
!ifdef HAVE_PKG_QTBASE
!include "uninst-qtbase.nsi"
!endif
!ifdef HAVE_PKG_ZLIB
!include "uninst-zlib.nsi"
!endif
!ifdef HAVE_PKG_W32PTH
!include "uninst-w32pth.nsi"
!endif
!ifdef HAVE_PKG_PKGCONFIG
!include "uninst-pkgconfig.nsi"
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!include "uninst-breeze-icons.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "uninst-man_advanced_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "uninst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "uninst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "uninst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_LIBICONV
!include "uninst-libiconv.nsi"
!endif
!ifdef HAVE_PKG_QTTOOLS
!include "uninst-qttools.nsi"
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!include "uninst-qtwinextras.nsi"
!endif
!ifdef HAVE_PKG_BOOST
!include "uninst-boost.nsi"
!endif
!ifdef HAVE_PKG_KCONFIG
!include "uninst-kconfig.nsi"
!endif
!ifdef HAVE_PKG_KI18N
!include "uninst-ki18n.nsi"
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!include "uninst-kwidgetsaddons.nsi"
!endif
!ifdef HAVE_PKG_KCOMPLETION
!include "uninst-kcompletion.nsi"
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!include "uninst-kwindowsystem.nsi"
!endif
!ifdef HAVE_PKG_KCOREADDONS
!include "uninst-kcoreaddons.nsi"
!endif
!ifdef HAVE_PKG_KCODECS
!include "uninst-kcodecs.nsi"
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!include "uninst-kconfigwidgets.nsi"
!endif
!ifdef HAVE_PKG_KGUIADDONS
!include "uninst-kguiaddons.nsi"
!endif
!ifdef HAVE_PKG_KXMLGUI
!include "uninst-kxmlgui.nsi"
!endif
!ifdef HAVE_PKG_KICONTHEMES
!include "uninst-kiconthemes.nsi"
!endif
!ifdef HAVE_PKG_KARCHIVE
!include "uninst-karchive.nsi"
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!include "uninst-kitemviews.nsi"
!endif
!ifdef HAVE_PKG_KITEMMODELS
!include "uninst-kitemmodels.nsi"
!endif
!ifdef HAVE_PKG_KMIME
!include "uninst-kmime.nsi"
!endif
!ifdef HAVE_PKG_KDE_L10N
!include "uninst-kde-l10n.nsi"
!endif
!ifdef HAVE_PKG_LIBKLEO
!include "uninst-libkleo.nsi"
!endif
!ifdef HAVE_PKG_EXTRA_CMAKE_MODULES
!include "uninst-extra-cmake-modules.nsi"
!endif
!ifdef HAVE_PKG_BZIP2
!include "uninst-bzip2.nsi"
!endif
!ifdef HAVE_PKG_QTSVG
!include "uninst-qtsvg.nsi"
!endif
!include "uninst-gpg4win.nsi"
# Dependency Management
${MementoSectionDone}
Function CalcDefaults
!ifdef HAVE_PKG_KLEOPATRA
g4wihelp::config_fetch_bool "inst_kleopatra"
StrCmp $R0 "1" 0 calc_defaults_kleopatra_not_one
!insertmacro SelectSection ${SEC_kleopatra}
Goto calc_defaults_kleopatra_done
calc_defaults_kleopatra_not_one:
StrCmp $R0 "0" 0 calc_defaults_kleopatra_done
!insertmacro UnselectSection ${SEC_kleopatra}
calc_defaults_kleopatra_done:
!endif
!ifdef HAVE_PKG_GPGOL
g4wihelp::config_fetch_bool "inst_gpgol"
StrCmp $R0 "1" 0 calc_defaults_gpgol_not_one
!insertmacro SelectSection ${SEC_gpgol}
Goto calc_defaults_gpgol_done
calc_defaults_gpgol_not_one:
StrCmp $R0 "0" 0 calc_defaults_gpgol_done
!insertmacro UnselectSection ${SEC_gpgol}
calc_defaults_gpgol_done:
!endif
!ifdef HAVE_PKG_GPGEX
g4wihelp::config_fetch_bool "inst_gpgex"
StrCmp $R0 "1" 0 calc_defaults_gpgex_not_one
!insertmacro SelectSection ${SEC_gpgex}
Goto calc_defaults_gpgex_done
calc_defaults_gpgex_not_one:
StrCmp $R0 "0" 0 calc_defaults_gpgex_done
!insertmacro UnselectSection ${SEC_gpgex}
calc_defaults_gpgex_done:
!endif
!ifdef HAVE_PKG_PAPERKEY
g4wihelp::config_fetch_bool "inst_paperkey"
StrCmp $R0 "1" 0 calc_defaults_paperkey_not_one
!insertmacro SelectSection ${SEC_paperkey}
Goto calc_defaults_paperkey_done
calc_defaults_paperkey_not_one:
StrCmp $R0 "0" 0 calc_defaults_paperkey_done
!insertmacro UnselectSection ${SEC_paperkey}
calc_defaults_paperkey_done:
!endif
!ifdef HAVE_PKG_GPA
g4wihelp::config_fetch_bool "inst_gpa"
StrCmp $R0 "1" 0 calc_defaults_gpa_not_one
!insertmacro SelectSection ${SEC_gpa}
Goto calc_defaults_gpa_done
calc_defaults_gpa_not_one:
StrCmp $R0 "0" 0 calc_defaults_gpa_done
!insertmacro UnselectSection ${SEC_gpa}
calc_defaults_gpa_done:
!endif
!ifdef HAVE_PKG_COMPENDIUM
g4wihelp::config_fetch_bool "inst_compendium"
StrCmp $R0 "1" 0 calc_defaults_compendium_not_one
!insertmacro SelectSection ${SEC_compendium}
Goto calc_defaults_compendium_done
calc_defaults_compendium_not_one:
StrCmp $R0 "0" 0 calc_defaults_compendium_done
!insertmacro UnselectSection ${SEC_compendium}
calc_defaults_compendium_done:
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
g4wihelp::config_fetch_bool "inst_man_novice_de"
StrCmp $R0 "1" 0 calc_defaults_man_novice_de_not_one
!insertmacro SelectSection ${SEC_man_novice_de}
Goto calc_defaults_man_novice_de_done
calc_defaults_man_novice_de_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_novice_de_done
!insertmacro UnselectSection ${SEC_man_novice_de}
calc_defaults_man_novice_de_done:
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
g4wihelp::config_fetch_bool "inst_man_novice_en"
StrCmp $R0 "1" 0 calc_defaults_man_novice_en_not_one
!insertmacro SelectSection ${SEC_man_novice_en}
Goto calc_defaults_man_novice_en_done
calc_defaults_man_novice_en_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_novice_en_done
!insertmacro UnselectSection ${SEC_man_novice_en}
calc_defaults_man_novice_en_done:
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
g4wihelp::config_fetch_bool "inst_man_advanced_de"
StrCmp $R0 "1" 0 calc_defaults_man_advanced_de_not_one
!insertmacro SelectSection ${SEC_man_advanced_de}
Goto calc_defaults_man_advanced_de_done
calc_defaults_man_advanced_de_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_advanced_de_done
!insertmacro UnselectSection ${SEC_man_advanced_de}
calc_defaults_man_advanced_de_done:
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
g4wihelp::config_fetch_bool "inst_man_advanced_en"
StrCmp $R0 "1" 0 calc_defaults_man_advanced_en_not_one
!insertmacro SelectSection ${SEC_man_advanced_en}
Goto calc_defaults_man_advanced_en_done
calc_defaults_man_advanced_en_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_advanced_en_done
!insertmacro UnselectSection ${SEC_man_advanced_en}
calc_defaults_man_advanced_en_done:
!endif
+# Check if minimal install was requested on the command line
+
+StrCmp $is_minimal '1' select_minimal continue
+select_minimal:
+ !insertmacro UnselectSection ${SEC_kleopatra}
+ !insertmacro UnselectSection ${SEC_gpgol}
+ !insertmacro UnselectSection ${SEC_gpgex}
+ !insertmacro UnselectSection ${SEC_gpa}
+ !insertmacro UnselectSection ${SEC_compendium}
+
+# We only do pinentry and gnupg-w32
+ !insertmacro SelectSection ${SEC_paperkey}
+ !insertmacro SelectSection ${SEC_gnupg_w32}
+ !insertmacro SelectSection ${SEC_pinentry}
+continue:
FunctionEnd
Function CalcDepends
# This section could very well be autogenerated from the
# information in configure.ac. Note that it doesn't hurt to have
# stuff here for packages that we don't include.
# First clear all indirect dependencies.
!ifdef HAVE_PKG_LIBICONV
!insertmacro UnselectSection ${SEC_libiconv}
!endif
!ifdef HAVE_PKG_GETTEXT
!insertmacro UnselectSection ${SEC_gettext}
!endif
!ifdef HAVE_PKG_ZLIB
!insertmacro UnselectSection ${SEC_zlib}
!endif
!ifdef HAVE_PKG_LIBPNG
!insertmacro UnselectSection ${SEC_libpng}
!endif
!ifdef HAVE_PKG_PKGCONFIG
!insertmacro UnselectSection ${SEC_pkgconfig}
!endif
!ifdef HAVE_PKG_GLIB
!insertmacro UnselectSection ${SEC_glib}
!endif
!ifdef HAVE_PKG_ATK
!insertmacro UnselectSection ${SEC_atk}
!endif
!ifdef HAVE_PKG_PANGO
!insertmacro UnselectSection ${SEC_pango}
!endif
!ifdef HAVE_PKG_EXPAT
!insertmacro UnselectSection ${SEC_expat}
!endif
!ifdef HAVE_PKG_FREETYPE
!insertmacro UnselectSection ${SEC_freetype}
!endif
!ifdef HAVE_PKG_FONTCONFIG
!insertmacro UnselectSection ${SEC_fontconfig}
!endif
!ifdef HAVE_PKG_CAIRO
!insertmacro UnselectSection ${SEC_cairo}
!endif
!ifdef HAVE_PKG_GTK_
!insertmacro UnselectSection ${SEC_gtk_}
!endif
!ifdef HAVE_PKG_BZIP2
!insertmacro UnselectSection ${SEC_bzip2}
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!insertmacro UnselectSection ${SEC_libgpg_error}
!endif
!ifdef HAVE_PKG_W32PTH
!insertmacro UnselectSection ${SEC_w32pth}
!endif
!ifdef HAVE_PKG_LIBASSUAN
!insertmacro UnselectSection ${SEC_libassuan}
!endif
!ifdef HAVE_PKG_PINENTRY
!insertmacro UnselectSection ${SEC_pinentry}
!endif
!ifdef HAVE_PKG_GPGME
!insertmacro UnselectSection ${SEC_gpgme}
!endif
!ifdef HAVE_PKG_LIBGSASL
!insertmacro UnselectSection ${SEC_libgsasl}
!endif
!ifdef HAVE_PKG_LIBTASN1
!insertmacro UnselectSection ${SEC_libtasn1}
!endif
!ifdef HAVE_PKG_GNUTLS
!insertmacro UnselectSection ${SEC_gnutls}
!endif
!ifdef HAVE_PKG_CURL
!insertmacro UnselectSection ${SEC_curl}
!endif
!ifdef HAVE_PKG_QTBASE
!insertmacro UnselectSection ${SEC_qtbase}
!endif
!ifdef HAVE_PKG_QTTOOLS
!insertmacro UnselectSection ${SEC_qttools}
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!insertmacro UnselectSection ${SEC_qtwinextras}
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!insertmacro UnselectSection ${SEC_breeze_icons}
!endif
!ifdef HAVE_PKG_KCONFIG
!insertmacro UnselectSection ${SEC_kconfig}
!endif
!ifdef HAVE_PKG_KI18N
!insertmacro UnselectSection ${SEC_ki18n}
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!insertmacro UnselectSection ${SEC_kwidgetsaddons}
!endif
!ifdef HAVE_PKG_KCOMPLETION
!insertmacro UnselectSection ${SEC_kcompletion}
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!insertmacro UnselectSection ${SEC_kwindowsystem}
!endif
!ifdef HAVE_PKG_KCOREADDONS
!insertmacro UnselectSection ${SEC_kcoreaddons}
!endif
!ifdef HAVE_PKG_KCODECS
!insertmacro UnselectSection ${SEC_kcodecs}
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!insertmacro UnselectSection ${SEC_kconfigwidgets}
!endif
!ifdef HAVE_PKG_KXMLGUI
!insertmacro UnselectSection ${SEC_kxmlgui}
!endif
!ifdef HAVE_PKG_KICONTHEMES
!insertmacro UnselectSection ${SEC_kiconthemes}
!endif
!ifdef HAVE_PKG_KARCHIVE
!insertmacro UnselectSection ${SEC_karchive}
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!insertmacro UnselectSection ${SEC_kitemviews}
!endif
!ifdef HAVE_PKG_KITEMMODELS
!insertmacro UnselectSection ${SEC_kitemmodels}
!endif
!ifdef HAVE_PKG_KGUIADDONS
!insertmacro UnselectSection ${SEC_kguiaddons}
!endif
!ifdef HAVE_PKG_LIBKLEO
!insertmacro UnselectSection ${SEC_libkleo}
!endif
!ifdef HAVE_PKG_KMIME
!insertmacro UnselectSection ${SEC_kmime}
!endif
!ifdef HAVE_PKG_KDE_L10N
!insertmacro UnselectSection ${SEC_kde-l10n}
!endif
!ifdef HAVE_PKG_QTSVG
!insertmacro UnselectSection ${SEC_qtsvg}
!endif
# Always install gnupg2. This is also ensured by putting
# these packages in the RO section and enabling them by default, but
# it doesn't harm to add it explicitely here as well.
# TODO: Handle newer / other gnupg versions
!insertmacro SelectSection ${SEC_gnupg_w32}
# Then enable all dependencies, mostly in reverse build list order!
# First the explicitely installed packages.
!ifdef HAVE_PKG_PAPERKEY
!insertmacro SectionFlagIsSet ${SEC_paperkey} \
${SF_SELECTED} have_paperkey skip_paperkey
have_paperkey:
# All dependencies are linked in statically.
skip_paperkey:
!endif
!ifdef HAVE_PKG_GPGEX
!insertmacro SectionFlagIsSet ${SEC_gpgex} \
${SF_SELECTED} have_gpgex skip_gpgex
have_gpgex:
# This is not a build dependency, but it is a run-time dependency.
!insertmacro SectionFlagIsSet ${SEC_gpa} \
${SF_SELECTED} skipa_gpgex_dep_kleopatra need_gpgex_dep_kleopatra
need_gpgex_dep_kleopatra:
!insertmacro SelectSection ${SEC_kleopatra}
skipa_gpgex_dep_kleopatra:
# Other dependencies are linked in statically.
skip_gpgex:
!endif
!ifdef HAVE_PKG_GPGOL
!insertmacro SectionFlagIsSet ${SEC_gpgol} \
${SF_SELECTED} have_gpgol skip_gpgol
have_gpgol:
!insertmacro SelectSection ${SEC_gpgme}
# This is not a build dependency, but it is a run-time dependency.
!insertmacro SectionFlagIsSet ${SEC_gpa} \
${SF_SELECTED} skipa_gpgol_dep_kleopatra need_gpgol_dep_kleopatra
need_gpgol_dep_kleopatra:
!insertmacro SelectSection ${SEC_kleopatra}
skipa_gpgol_dep_kleopatra:
skip_gpgol:
!endif
!ifdef HAVE_PKG_KLEOPATRA
!insertmacro SectionFlagIsSet ${SEC_kleopatra} ${SF_SELECTED} have_kleopatra skip_kleopatra
have_kleopatra:
!insertmacro SelectSection ${SEC_gpgme}
# This drags in all the other KDE and Qt stuff.
!insertmacro SelectSection ${SEC_kleopatra}
skip_kleopatra:
!endif
!ifdef HAVE_PKG_GNUPG_W32
!insertmacro SectionFlagIsSet ${SEC_gnupg_w32} ${SF_SELECTED} have_gnupg_w32 skip_gnupg_w32
have_gnupg_w32:
!insertmacro SelectSection ${SEC_pinentry}
skip_gnupg_w32:
!endif
!ifdef HAVE_PKG_GPA
!insertmacro SectionFlagIsSet ${SEC_gpa} ${SF_SELECTED} have_gpa skip_gpa
have_gpa:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_gettext}
!insertmacro SelectSection ${SEC_zlib}
!insertmacro SelectSection ${SEC_gtk_}
!insertmacro SelectSection ${SEC_libpng}
!insertmacro SelectSection ${SEC_glib}
!insertmacro SelectSection ${SEC_gpgme}
skip_gpa:
!endif
# Now the implicitely installed packages.
!ifdef HAVE_PKG_KLEOPATRA
!insertmacro SectionFlagIsSet ${SEC_kleopatra} \
${SF_SELECTED} have_kleopatra_libs skip_kleopatra_libs
have_kleopatra_libs:
!insertmacro SelectSection ${SEC_qtbase}
!insertmacro SelectSection ${SEC_breeze_icons}
!insertmacro SelectSection ${SEC_kconfig}
!insertmacro SelectSection ${SEC_ki18n}
!insertmacro SelectSection ${SEC_kwidgetsaddons}
!insertmacro SelectSection ${SEC_kcompletion}
!insertmacro SelectSection ${SEC_kwindowsystem}
!insertmacro SelectSection ${SEC_kcoreaddons}
!insertmacro SelectSection ${SEC_kcodecs}
!insertmacro SelectSection ${SEC_kconfigwidgets}
!insertmacro SelectSection ${SEC_kxmlgui}
!insertmacro SelectSection ${SEC_kitemviews}
!insertmacro SelectSection ${SEC_kitemmodels}
!insertmacro SelectSection ${SEC_kiconthemes}
!insertmacro SelectSection ${SEC_karchive}
!insertmacro SelectSection ${SEC_kguiaddons}
!insertmacro SelectSection ${SEC_qtsvg}
!insertmacro SelectSection ${SEC_kmime}
!insertmacro SelectSection ${SEC_kde-l10n}
!insertmacro SelectSection ${SEC_libkleo}
!insertmacro SelectSection ${SEC_qttools}
!insertmacro SelectSection ${SEC_qtwinextras}
!insertmacro SelectSection ${SEC_boost}
!insertmacro SelectSection ${SEC_extra-cmake-modules}
skip_kleopatra_libs:
!endif
!ifdef HAVE_PKG_GPGME
!insertmacro SectionFlagIsSet ${SEC_gpgme} \
${SF_SELECTED} have_gpgme skip_gpgme
have_gpgme:
# GPGME does not depend on gnupg2. Do this in the
# actual application instead.
!insertmacro SelectSection ${SEC_libgpg_error}
!insertmacro SelectSection ${SEC_libassuan}
!ifdef HAVE_PKG_QTBASE
!insertmacro SelectSection ${SEC_qtbase}
!endif
skip_gpgme:
!endif
!ifdef HAVE_PKG_PINENTRY
!insertmacro SectionFlagIsSet ${SEC_pinentry} \
${SF_SELECTED} have_pinentry skip_pinentry
have_pinentry:
!insertmacro SelectSection ${SEC_libiconv}
!ifdef HAVE_PKG_QTBASE
!insertmacro SelectSection ${SEC_qtbase}
!endif
!ifdef HAVE_PKG_GTK_
!insertmacro SelectSection ${SEC_gtk_}
!endif
skip_pinentry:
!endif
!ifdef HAVE_PKG_QTBASE
!insertmacro SectionFlagIsSet ${SEC_qtbase} \
${SF_SELECTED} have_qt skip_qt
have_qt:
!insertmacro SelectSection ${SEC_libpng}
!insertmacro SelectSection ${SEC_zlib}
skip_qt:
!endif
!ifdef HAVE_PKG_LIBASSUAN
!insertmacro SectionFlagIsSet ${SEC_libassuan} ${SF_SELECTED} have_libassuan skip_libassuan
have_libassuan:
!insertmacro SelectSection ${SEC_libgpg_error}
!insertmacro SelectSection ${SEC_w32pth}
skip_libassuan:
!endif
# Package "w32pth" has no dependencies.
!ifdef HAVE_PKG_LIBGPG_ERROR
!insertmacro SectionFlagIsSet ${SEC_libgpg_error} ${SF_SELECTED} have_libgpg_error skip_libgpg_error
have_libgpg_error:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_gettext}
skip_libgpg_error:
!endif
# Package "bzip2" has no dependencies.
!ifdef HAVE_PKG_GTK_
!insertmacro SectionFlagIsSet ${SEC_gtk_} \
${SF_SELECTED} have_gtk_ skip_gtk_
have_gtk_:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_gettext}
!insertmacro SelectSection ${SEC_pkgconfig}
!insertmacro SelectSection ${SEC_atk}
!insertmacro SelectSection ${SEC_pango}
!insertmacro SelectSection ${SEC_glib}
!insertmacro SelectSection ${SEC_cairo}
skip_gtk_:
!endif
!ifdef HAVE_PKG_CAIRO
!insertmacro SectionFlagIsSet ${SEC_cairo} \
${SF_SELECTED} have_cairo skip_cairo
have_cairo:
!insertmacro SelectSection ${SEC_glib}
!insertmacro SelectSection ${SEC_pkgconfig}
!insertmacro SelectSection ${SEC_expat}
!insertmacro SelectSection ${SEC_freetype}
!insertmacro SelectSection ${SEC_fontconfig}
skip_cairo:
!endif
!ifdef HAVE_PKG_FONTCONFIG
!insertmacro SectionFlagIsSet ${SEC_fontconfig} \
${SF_SELECTED} have_fontconfig skip_fontconfig
have_fontconfig:
!insertmacro SelectSection ${SEC_pkgconfig}
!insertmacro SelectSection ${SEC_freetype}
skip_fontconfig:
!endif
!ifdef HAVE_PKG_FREETYPE
!insertmacro SectionFlagIsSet ${SEC_freetype} \
${SF_SELECTED} have_freetype skip_freetype
have_freetype:
!insertmacro SelectSection ${SEC_pkgconfig}
!insertmacro SelectSection ${SEC_expat}
skip_freetype:
!endif
# Package "expat" has no dependencies.
!ifdef HAVE_PKG_PANGO
!insertmacro SectionFlagIsSet ${SEC_pango} \
${SF_SELECTED} have_pango skip_pango
have_pango:
!insertmacro SelectSection ${SEC_glib}
!insertmacro SelectSection ${SEC_pkgconfig}
skip_pango:
!endif
!ifdef HAVE_PKG_ATK
!insertmacro SectionFlagIsSet ${SEC_atk} \
${SF_SELECTED} have_atk skip_atk
have_atk:
!insertmacro SelectSection ${SEC_glib}
!insertmacro SelectSection ${SEC_pkgconfig}
skip_atk:
!endif
!ifdef HAVE_PKG_GLIB
!insertmacro SectionFlagIsSet ${SEC_glib} \
${SF_SELECTED} have_glib skip_glib
have_glib:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_gettext}
!insertmacro SelectSection ${SEC_pkgconfig}
skip_glib:
!endif
# Package "pkgconfig" has no dependencies.
!ifdef HAVE_PKG_LIBPNG
!insertmacro SectionFlagIsSet ${SEC_libpng} \
${SF_SELECTED} have_libpng skip_libpng
have_libpng:
!insertmacro SelectSection ${SEC_pkgconfig}
skip_libpng:
!endif
# Package "zlib" has no dependencies.
!ifdef HAVE_PKG_GETTEXT
!insertmacro SectionFlagIsSet ${SEC_gettext} \
${SF_SELECTED} have_gettext skip_gettext
have_gettext:
!insertmacro SelectSection ${SEC_libiconv}
skip_gettext:
!endif
# Package "libiconv" has no dependencies.
FunctionEnd
Function .onInstFailed
Delete $TEMP\gpgspltmp.wav
FunctionEnd
Function .onInstSuccess
${MementoSectionSave}
Delete $TEMP\gpgspltmp.wav
FunctionEnd
Function .onSelChange
Call CalcDepends
FunctionEnd
# Note used anymore:
# This function is run from the finish page.
#Function RunOnFinish
#!ifdef HAVE_PKG_GPA
# SectionGetFlags ${SEC_gpa} $R0
# IntOp $R0 $R0 & ${SF_SELECTED}
# IntCmp $R0 ${SF_SELECTED} 0 no_gpa_avail
# Exec "$INSTDIR\gpa.exe"
# Return
# no_gpa_avail:
#!endif
# MessageBox MB_OK "$(T_NoKeyManager)"
#FunctionEnd
# This also must be in a central place. Also Urgs.
Section "-startmenu"
# NOT SetOutPath.
StrCpy $OUTDIR "%HOMEDRIVE%%HOMEPATH%"
# Make sure that the context of the automatic variables has been set to
# the "all users" shell folder. This guarantees that the menu gets written
# for all users. We have already checked that we are running as Admin; or
# we printed a warning that installation will not succeed.
SetShellVarContext all
# Check if the start menu entries where requested.
g4wihelp::config_fetch_bool "inst_start_menu"
StrCmp $R0 "0" no_start_menu
!ifdef HAVE_PKG_GPA
SectionGetFlags ${SEC_gpa} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_gpa_menu
CreateShortCut "$SMPROGRAMS\GPA.lnk" \
"$INSTDIR\bin\gpa.exe" \
"" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa)
no_gpa_menu:
!endif
!ifdef HAVE_PKG_KLEOPATRA
SectionGetFlags ${SEC_kleopatra} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_kleopatra_menu
CreateShortCut "$SMPROGRAMS\Kleopatra.lnk" \
"$INSTDIR\bin\kleopatra.exe" \
"" "$INSTDIR\bin\kleopatra.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_kleopatra)
no_kleopatra_menu:
!endif
no_start_menu:
# Check if the desktop entries where requested.
g4wihelp::config_fetch_bool "inst_desktop"
StrCmp $R0 "0" no_desktop
!ifdef HAVE_PKG_GPA
SectionGetFlags ${SEC_gpa} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_gpa_desktop
CreateShortCut "$DESKTOP\GPA.lnk" \
"$INSTDIR\bin\gpa.exe" \
"" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa)
no_gpa_desktop:
!endif
!ifdef HAVE_PKG_KLEOPATRA
SectionGetFlags ${SEC_kleopatra} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_kleopatra_desktop
CreateShortCut "$DESKTOP\Kleopatra.lnk" \
"$INSTDIR\bin\kleopatra.exe" \
"" "$INSTDIR\bin\kleopatra.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_kleopatra)
no_kleopatra_desktop:
!endif
no_desktop:
SectionEnd
diff --git a/src/installer.nsi b/src/installer.nsi
index 28eccc21..040d3fff 100644
--- a/src/installer.nsi
+++ b/src/installer.nsi
@@ -1,750 +1,754 @@
# 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 "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_WELCOMEPAGE_TEXT "${ABOUT_STR}"
!insertmacro MUI_PAGE_WELCOME
#!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 (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} \
"Click here for the project's homepage"
LangString T_MoreInfoURL ${LANG_ENGLISH} "http://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.
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
# 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
g4wihelp::KillProc "kleopatra.exe"
g4wihelp::KillProc "gpa.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"
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 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 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 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 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
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_XPisDeprecated ${LANG_ENGLISH} \
"Windows Versions before Windows Vista are no longer maintained by Gpg4win. \
$\r$\nSupport for them may be removed in a future 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}
!endif
+ ${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
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} ${AtLeastWinVista}
MessageBox MB_OK "$(T_XPisDeprecated)"
${Endif}
${MementoSectionRestore}
Call CalcDefaults
Call CalcDepends
Call CheckOtherGnuPGApps
FunctionEnd
Function un.onInit
!insertmacro MULTIUSER_UNINIT
# Remove the language preference.
!insertmacro MUI_UNGETLANGUAGE
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_FUNCTION_DESCRIPTION_END

File Metadata

Mime Type
text/x-diff
Expires
Thu, Dec 4, 1:10 PM (1 d, 18 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
68/49/012aeb8a5bc13732848e0ad2912b

Event Timeline