Remove Kleowrap and Gpgwrap
[gpg4win.git] / src / inst-gpg4win.nsi
index 2b4d531..6b530a9 100644 (file)
@@ -1,18 +1,18 @@
 # inst-gpg4win.nsi - Hidden section for common files. -*- coding: latin-1; -*-
 # Copyright (C) 2006 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
@@ -23,31 +23,59 @@ Section "-gpg4win" SEC_gpg4win
 !ifdef SOURCES
   SetOutPath "$INSTDIR"
   File "${BUILD_DIR}/../gpg4win-${VERSION}.tar.bz2"
-!else 
+!else
+
+# Uninstall an old version if found.
+  ClearErrors
+  ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "DisplayVersion"
+  IfErrors skip_uninst 0
+  StrCmp $0 "" skip_uninst
+  DetailPrint  "$(T_UninstallingOldVersion)$0"
+  ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "UninstallString"
+  IfErrors skip_uninst 0
+  ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPG4Win" "InstallLocation"
+  IfErrors skip_uninst 0
+
+  ExecWait '$0 /S _?=$1'
+# Deleting here does not work?
+  Delete /REBOOTOK "$1\gpg4win-uninstall.exe"
+  RmDir "$1"
+
+skip_uninst:
   SetOutPath "$INSTDIR\share\gpg4win"
 
   File "${BUILD_DIR}/README.en.txt"
   File "${BUILD_DIR}/README.de.txt"
+  File /oname=README.ar.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.cz.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.es.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.fr.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.it.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.pt.txt "${BUILD_DIR}/README.en.txt"
+  File /oname=README.ru.txt "${BUILD_DIR}/README.en.txt"
+  File "${BUILD_DIR}/HOWTO-SMIME.en.txt"
+  File "${BUILD_DIR}/HOWTO-SMIME.de.txt"
+
   File "${BUILD_DIR}/versioninfo.txt"
 
   # Write a version file.
+  DetailPrint "Opening VERSION file for writing"
   FileOpen $0 "$INSTDIR\VERSION" w
   FileWrite $0 "${PACKAGE}$\r$\n"
   FileWrite $0 "${VERSION}$\r$\n"
   FileClose $0
+  DetailPrint "VERSION closed"
 
-  # Register the install directory for the GnuPG suite.
-  WriteRegStr HKLM "Software\GNU\GnuPG" "Install Directory" $INSTDIR
-
-  # Also write it to be recalled on new installation.  Currently
-  # disabled.
-  # WriteRegStr HKLM "Software\GNU\${PRETTY_PACKAGE_SHORT}" "Install Directory" $INSTDIR
+  # Register the install directory for Gpg4win suite.
+  WriteRegStr HKLM "Software\${PRETTY_PACKAGE_SHORT}" "Install Directory" $INSTDIR
+  DetailPrint "Saved install directory in the registry"
 
   # We used to determine the language using a Registry entry.
-  # Although we don't want to delete the user's Lang Resgistry Setting
-  # becuase he might have have selected a different language than his
+  # Although we don't want to delete the user's Lang Registry Setting
+  # because he might have have selected a different language than his
   # default.  We delete the global Lang of the installation.
-  DeleteRegValue HKLM "Software\GNU\GnuPG" "Lang" 
+  DeleteRegValue HKLM "Software\GNU\GnuPG" "Lang"
+  DetailPrint "Deleted obsolete Lang entry"
 
   # This old key is required for GPGee.  Please do not use in new
   # applications.
@@ -58,10 +86,21 @@ Section "-gpg4win" SEC_gpg4win
   #       the user under HKCU.
   #WriteRegStr HKLM "Software\GNU\GnuPG" "gpgProgram" "$INSTDIR\gpg.exe"
   DeleteRegValue HKLM "Software\GNU\GnuPG" "gpgProgram"
+  DetailPrint "Deleted obsolete gpgProgram value"
+
+  # Install gpg4win included tools
+  SetOutPath "$INSTDIR\bin"
+  File "${BUILD_DIR}/sha1sum.exe"
+  File "${BUILD_DIR}/sha256sum.exe"
+  File "${BUILD_DIR}/md5sum.exe"
+  File "${BUILD_DIR}/mkportable.exe"
 
-  # Add the public directory to the PATH
-  Push "$INSTDIR\pub"
-  Call AddToPath
+  # Install the mingw32 runtime libraries.  They are stored in the
+  # build directory with a different suffix, so that makensis does not
+  # list symbol names.
+  File /oname=libstdc++-6.dll     "${BUILD_DIR}/libstdc++-6.dll-x"
+  File /oname=libgcc_s_sjlj-1.dll "${BUILD_DIR}/libgcc_s_sjlj-1.dll-x"
+  File /oname=libwinpthread-1.dll "${BUILD_DIR}/libwinpthread-1.dll-x"
 
 !endif
 
@@ -70,5 +109,8 @@ SectionEnd
 LangString DESC_Menu_gpg4win_readme ${LANG_ENGLISH} \
    "General information on Gpg4win"
 
+LangString DESC_Menu_gpg4win_howtosmime ${LANG_ENGLISH} \
+   "Instruction to configure S/MIME"
+
 LangString DESC_Menu_gnupg_faq ${LANG_ENGLISH} \
    "Show the Frequently Asked Questions document for GnuPG"