diff options
Diffstat (limited to 'scripts/w32installer.nsi')
-rw-r--r-- | scripts/w32installer.nsi | 253 |
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 + |