* w32installer.nsi: New.
authorWerner Koch <wk@gnupg.org>
Tue, 11 Jan 2005 12:03:22 +0000 (12:03 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 11 Jan 2005 12:03:22 +0000 (12:03 +0000)
* mk-w32-dist: Append ".txt" to some files.  Call makensis if
available.

scripts/ChangeLog
scripts/mk-w32-dist
scripts/w32installer.nsi [new file with mode: 0644]

index a5a9a3e..b4e53af 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-11  Werner Koch  <wk@g10code.com>
+
+       * w32installer.nsi: New.
+       * mk-w32-dist: Append ".txt" to some files.  Call makensis if
+       available.
+
 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
 
        * autogen.sh: automake needs --add-missing for conditional
index f3938eb..a73bfda 100755 (executable)
@@ -41,7 +41,7 @@ fi
 version=$(sed -n 's/^#[ ]*define[ ][ ]*VERSION[ ][ ]*\"\([0-9.a-z-]*\)\"/\1/p' $bindir/config.h)
 echo "building version $version"
 
-rm * 2>/dev/null || true
+rm * >/dev/null 2>/dev/null || true
 
 cp ${bindir}/g10/gpg.exe gpg.exe
 $STRIP gpg.exe
@@ -55,8 +55,8 @@ cp ${bindir}/tools/gpgsplit.exe gpgsplit.exe
 $STRIP gpgsplit.exe
 
 for i in FAQ; do
-  cp ${bindir}/doc/$i .
-  todos $i
+  cp ${bindir}/doc/$i $i.txt
+  todos $i.txt
 done
 man -Tlatin1 -l ${srcdir}/doc/gpg.1 | sed `printf "s/\b.//g"`  >gpg.man
 todos gpg.man
@@ -64,16 +64,16 @@ man -Tlatin1 -l ${srcdir}/doc/gpgv.1 | sed `printf "s/\b.//g"`  >gpgv.man
 todos gpgv.man
 man -Tlatin1 -l ${srcdir}/doc/gnupg.7 | sed `printf "s/\b.//g"`  >gnupg.man
 todos gnupg.man
-for i in README COPYING; do
-  cp ${srcdir}/$i .
-  todos $i
+for i in README COPYING NEWS; do
+  cp ${srcdir}/$i $i.txt
+  todos $i.txt
 done
 for i in README.W32 gnupg-w32.reg; do
   cp ${srcdir}/doc/$i .
   todos $i
 done
 
-# We must distribute the MO files in UTF-8, the conmversion is done by
+# We must distribute the MO files in UTF-8, the conversion is done by
 # gpg at runtime.
 for i in ${srcdir}/po/*.po; do
    lang=$(basename $i .po)
@@ -94,3 +94,6 @@ for i in ${srcdir}/po/*.po; do
    esac
 done
 zip -9 "gnupg-w32cli-${version}.zip" *
+if makensis -version >/dev/null 2>&1 ; then
+  makensis -v2 -nocd -DVERSION="${version}" ${srcdir}/scripts/w32installer.nsi
+fi
diff --git a/scripts/w32installer.nsi b/scripts/w32installer.nsi
new file mode 100644 (file)
index 0000000..8a3ebe1
--- /dev/null
@@ -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
+