aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/w32installer.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/w32installer.nsi')
-rw-r--r--scripts/w32installer.nsi253
1 files changed, 253 insertions, 0 deletions
diff --git a/scripts/w32installer.nsi b/scripts/w32installer.nsi
new file mode 100644
index 000000000..8a3ebe167
--- /dev/null
+++ b/scripts/w32installer.nsi
@@ -0,0 +1,253 @@
+; w32installer.nsi - W32 Installer definition -*- lisp -*-
+; Copyright (C) 2005 Free Software Foundation, Inc.
+;
+; This file is free software; as a special exception the author gives
+; unlimited permission to copy and/or distribute it, with or without
+; modifications, as long as this notice is preserved.
+;
+; This program is distributed in the hope that it will be useful, but
+; WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+;----------------------------------------------------------------------
+; This is an installer script used to create a W32 installer "exe" file
+; using NSIS. It is usually used by the mk-w32-dist script.
+;----------------------------------------------------------------------
+
+; TODO:
+; - Display credit for the installer
+; - Provide the location of the corresponding source
+; - Check for iconv.dll and optionalkly install or download it.
+; - Allow inclusion of the source into the installer.
+; - Translate all strings
+; - Setup the home directory and check for old (c:/gnupg located)
+; versions of the program
+
+; We use the modern UI.
+!include "MUI.nsh"
+
+; -------------
+; General stuff
+; -------------
+Name "GNU Privacy Guard"
+
+OutFile "gnupg-w32cli-${VERSION}.exe"
+
+InstallDir "$PROGRAMFILES\GNU\GnuPG"
+
+InstallDirRegKey HKCU "Software\GNU\GnuPG" ""
+
+SetCompressor lzma
+
+ReserveFile "COPYING.txt"
+
+; ------------------
+; Interface Settings
+; ------------------
+
+!define MUI_ABORTWARNING
+!define MUI_FINISHPAGE_NOAUTOCLOSE
+!define MUI_UNFINISHPAGE_NOAUTOCLOSE
+
+; Remember the installer language
+!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
+!define MUI_LANGDLL_REGISTRY_KEY "Software\GNU\GnuPG"
+!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
+
+
+; -----
+; Pages
+; -----
+
+!define MUI_WELCOMEPAGE_TEXT "$(T_About)"
+
+!insertmacro MUI_PAGE_WELCOME
+
+
+!define MUI_PAGE_HEADER_SUBTEXT \
+ "This software is licensed under the terms of the GNU General Public \
+ License (GPL) which guarantees your freedom to share and change Free \
+ Software."
+
+!define MUI_LICENSEPAGE_TEXT_BOTTOM \
+ "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."
+
+!define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
+
+!insertmacro MUI_PAGE_LICENSE "COPYING.txt"
+
+
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+!define MUI_FINISHPAGE_SHOWREADME "README.txt"
+!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(T_ShowReadme)"
+!define MUI_FINISHPAGE_LINK "Goto the GnuPG website"
+!define MUI_FINISHPAGE_LINK_LOCATION "http://www.gnupg.org"
+!insertmacro MUI_PAGE_FINISH
+
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+
+; -----------------
+; i18n Declarations
+; -----------------
+
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_LANGUAGE "German"
+
+; ------------------
+; Installer Sections
+; ------------------
+
+;InstType "full"
+;InstType "minimal"
+
+;----------------------
+Section "Base" SecBase
+; SectionIn 1 2 RO
+ SectionIn RO
+
+ SetOutPath "$INSTDIR"
+
+ File "README.txt"
+ File "README.W32"
+ File "COPYING.txt"
+ File "gpg.exe"
+ File "gpgkeys_finger.exe"
+ File "gpgkeys_hkp.exe"
+ File "gpgkeys_http.exe"
+ File "gpgkeys_ldap.exe"
+ File "*.mo"
+
+ WriteRegStr HKCU "Software\GNU\GnuPG" "" $INSTDIR
+
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd ; Section Base
+
+;------------------------
+Section "Tools" SecTools
+; SectionIn 1
+
+ File "gpgsplit.exe"
+ File "gpgv.exe"
+
+SectionEnd ; Section Tools
+
+;----------------------
+Section "Documentation" SecDoc
+; SectionIn 1
+
+ File "gnupg.man"
+ File "gpg.man"
+ File "gpgv.man"
+ File "NEWS.txt"
+ File "FAQ.txt"
+
+SectionEnd ; Section Documentation
+
+
+;------------------
+!ifdef WITH_SOURCE
+Section "Source" SecSource
+
+ ; Note that we include the uncompressed tarball because this allows
+ ; far better compression results for the distribution. We might
+ ; want to compress it again after installation.
+ File "gnupg-1.4.0.tar"
+
+SectionEnd ; Section Source
+!endif
+
+
+;------------------
+Section "Uninstall"
+
+ Delete "$INSTDIR\README.txt"
+ Delete "$INSTDIR\README.W32"
+ Delete "$INSTDIR\COPYING.txt"
+ Delete "$INSTDIR\gpg.exe"
+ Delete "$INSTDIR\gpgkeys_finger.exe"
+ Delete "$INSTDIR\gpgkeys_hkp.exe"
+ Delete "$INSTDIR\gpgkeys_http.exe"
+ Delete "$INSTDIR\gpgkeys_ldap.exe"
+ Delete "$INSTDIR\*.mo"
+ Delete "$INSTDIR\gpgsplit.exe"
+ Delete "$INSTDIR\gpgv.exe"
+ Delete "$INSTDIR\gnupg.man"
+ Delete "$INSTDIR\gpg.man"
+ Delete "$INSTDIR\gpgv.man"
+ Delete "$INSTDIR\NEWS.txt"
+ Delete "$INSTDIR\FAQ.txt"
+
+ Delete "$INSTDIR\Uninstall.exe"
+
+ RMDir "$INSTDIR"
+
+ DeleteRegKey /ifempty HKCU "Software\GNU\GnuPG"
+
+SectionEnd ; Uninstall
+
+
+; ---------
+; Functions
+; ---------
+
+Function .onInit
+
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
+
+
+Function un.onInit
+
+ !insertmacro MUI_UNGETLANGUAGE
+
+FunctionEnd
+
+
+; ------------
+; Descriptions
+; ------------
+
+
+LangString T_About ${LANG_ENGLISH} \
+ "GnuPG is GNU's tool for secure communication and data storage. \
+ It can be used to encrypt data and to create digital signatures. \
+ It includes an advanced key management facility and is compliant \
+ with the proposed OpenPGP Internet standard as described in RFC2440."
+LangString T_About ${LANG_GERMAN} \
+ "GnuPG is das Werzeug aus dem GNU Projekt zur sicheren Kommunikation \
+ sowie zum sicheren Speichern von Daten."
+LangString T_ShowReadme ${LANG_ENGLISH} "Show the README file"
+LangString T_ShowReadme ${LANG_GERMAN} "Die README Datei anzeigen"
+
+
+LangString DESC_SecBase ${LANG_ENGLISH} \
+ "The basic files used for the standard OpenPGP protocol"
+LangString DESC_SecBase ${LANG_GERMAN} \
+ "Die Basis Dateien zur Benutzung des OpenPGP Protokolls"
+
+LangString DESC_SecTools ${LANG_ENGLISH} \
+ "Extra tools like gpgv and gpgsplit"
+LangString DESC_SecTools ${LANG_GERMAN} \
+ "Weitere Tools wie gpgv und gpgsplit"
+
+LangString DESC_SecDoc ${LANG_ENGLISH} \
+ "Manual pages and a FAQ"
+LangString DESC_SecDoc ${LANG_GERMAN} \
+ "Handbuchseiten und eine FAQ"
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecBase} $(DESC_SecBase)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} $(DESC_SecTools)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecDoc} $(DESC_SecDoc)
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+