mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-22 14:57:02 +01:00
* w32installer.nsi: Create a start menu entry and enhanced the
build environment. * mk-w32-dist: Add more support for above.
This commit is contained in:
parent
aa62bf505d
commit
eb0ee0ba44
@ -1,3 +1,9 @@
|
||||
2005-01-26 Werner Koch <wk@g10code.com>
|
||||
|
||||
* w32installer.nsi: Create a start menu entry and enhanced the
|
||||
build environment.
|
||||
* mk-w32-dist: Add more support for above.
|
||||
|
||||
2005-01-11 Werner Koch <wk@g10code.com>
|
||||
|
||||
* w32installer.nsi: New.
|
||||
|
@ -4,3 +4,4 @@ gnupg.spec.in
|
||||
autogen.sh
|
||||
mk-gpg-texi
|
||||
mk-w32-dist
|
||||
w32installer.nsi
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2000, 2001, 2002, 2004, 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
|
||||
@ -10,14 +10,19 @@
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
cd dist-w32
|
||||
|
||||
tmp="`echo $0 | sed 's,.*gnupg-\([^/]*\)/.*,\1,'`"
|
||||
|
||||
topdir=
|
||||
bindir=..
|
||||
|
||||
if [ -f ../README ]; then
|
||||
if [ -f "../gnupg-$tmp/README" ]; then
|
||||
srcdir="../gnupg-$tmp"
|
||||
bindir="../gnupg-$tmp"
|
||||
topdir=".."
|
||||
elif [ -f ../README ]; then
|
||||
srcdir=..
|
||||
elif [ -f ../../README ]; then
|
||||
srcdir=../..
|
||||
@ -37,7 +42,12 @@ else
|
||||
STRIP="mingw32 strip"
|
||||
fi
|
||||
|
||||
# If we don't have an installer we don't need to prepare for it.
|
||||
if ! makensis -version >/dev/null 2>&1 ; then
|
||||
topdir=
|
||||
fi
|
||||
|
||||
# Figure out the version
|
||||
version=$(sed -n 's/^#[ ]*define[ ][ ]*VERSION[ ][ ]*\"\([0-9.a-z-]*\)\"/\1/p' $bindir/config.h)
|
||||
prod_version=$(echo "$version"|awk -F'[^0-9]' '{print $1 "." $2 "." $3 ".1"}')
|
||||
echo "building version $version ($prod_version)"
|
||||
@ -79,6 +89,7 @@ done
|
||||
for i in ${srcdir}/po/*.po; do
|
||||
lang=$(basename $i .po)
|
||||
grep -s $lang ${srcdir}/po/LINGUAS >/dev/null || continue
|
||||
[ -f$lang.mo -a $lang.mo -nt $i ] && continue
|
||||
|
||||
fromset=`sed -n '/^"Content-Type:/ s/.*charset=\([a-zA-Z0-9_-]*\).*/\1/p' $i`
|
||||
case "$fromset" in
|
||||
@ -95,14 +106,50 @@ for i in ${srcdir}/po/*.po; do
|
||||
esac
|
||||
done
|
||||
|
||||
if makensis -version >/dev/null 2>&1 ; then
|
||||
echo "invokin installer as:"
|
||||
echo makensis -v3 -nocd -DVERSION="${version}" \
|
||||
# If we have a topdir, assume the full build environment and
|
||||
# prepare the installer
|
||||
if [ -n "$topdir" ]; then
|
||||
winpt_defs=
|
||||
src_defs=
|
||||
buildinfo="`date -u '+%Y-%m-%d %H:%M UTC'`"
|
||||
|
||||
# iconv.dll is a hard requirement
|
||||
if [ ! -f "$topdir/iconv/iconv.dll" ]; then
|
||||
echo "iconv.dll not availavle" >&2
|
||||
exit 1
|
||||
fi
|
||||
ln "$topdir/iconv/iconv.dll" iconv.dll
|
||||
for i in COPYING.LIB README.iconv; do
|
||||
cp ${topdir}/iconv/$i $i.txt
|
||||
todos $i.txt
|
||||
done
|
||||
|
||||
# WinPT is optional
|
||||
if [ -f "$topdir/winpt/WinPT.exe" ]; then
|
||||
ln "$topdir/winpt/WinPT.exe" WinPT.exe
|
||||
ln "$topdir/winpt/PTD.dll" PTD.dll
|
||||
cp "$topdir/winpt/README-0.9.txt" README.winpt.txt
|
||||
cp "$topdir/winpt/NEWS-0.9.txt" NEWS.winpt.txt
|
||||
cp "$topdir/winpt/keyserver.conf" keyserver.conf
|
||||
winpt_defs="-DWITH_WINPT"
|
||||
fi
|
||||
|
||||
# See whether we should include the source.
|
||||
if [ ! -d "$topdir/tarballs" ]; then
|
||||
# FIXME
|
||||
:
|
||||
fi
|
||||
|
||||
# Now run the installer
|
||||
echo "invoking installer as:"
|
||||
echo makensis -v2 -nocd -DVERSION="${version}" \
|
||||
-DPROD_VERSION="${prod_version}" \
|
||||
-DGNUPG_SRCDIR="${srcdir}" ${srcdir}/scripts/w32installer.nsi
|
||||
makensis -v3 -nocd -DVERSION="${version}" \
|
||||
-DGNUPG_SRCDIR="${srcdir}" ${winpt_defs} ${src_defs} \
|
||||
${srcdir}/scripts/w32installer.nsi
|
||||
BUILDINFO=$buildinfo makensis -v2 -nocd -DVERSION="${version}" \
|
||||
-DPROD_VERSION="${prod_version}" \
|
||||
-DGNUPG_SRCDIR="${srcdir}" ${srcdir}/scripts/w32installer.nsi
|
||||
-DGNUPG_SRCDIR="${srcdir}" ${winpt_defs} ${src_defs} \
|
||||
${srcdir}/scripts/w32installer.nsi
|
||||
echo "Installer created" >&2
|
||||
else
|
||||
zip -9 "gnupg-w32cli-${version}.zip" *
|
||||
|
@ -15,12 +15,6 @@
|
||||
; 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
|
||||
; - Translate all strings
|
||||
|
||||
|
||||
; We use the modern UI.
|
||||
!include "MUI.nsh"
|
||||
|
||||
@ -29,7 +23,11 @@
|
||||
; -------------
|
||||
Name "GNU Privacy Guard"
|
||||
|
||||
!ifdef WITH_WINPT
|
||||
OutFile "gnupg-w32-${VERSION}.exe"
|
||||
!else
|
||||
OutFile "gnupg-w32cli-${VERSION}.exe"
|
||||
!endif
|
||||
|
||||
InstallDir "$PROGRAMFILES\GNU\GnuPG"
|
||||
|
||||
@ -54,6 +52,15 @@ VIAddVersionKey "FileDescription" \
|
||||
"GnuPG: Encryption and digital signature tool"
|
||||
VIAddVersionKey "FileVersion" "${PROD_VERSION}"
|
||||
|
||||
; ----------------------
|
||||
; Variable declarations
|
||||
; ----------------------
|
||||
|
||||
Var MYTMP
|
||||
Var STARTMENU_FOLDER
|
||||
|
||||
Var DOC_INSTALLED
|
||||
Var WINPT_INSTALLED
|
||||
|
||||
; ------------------
|
||||
; Interface Settings
|
||||
@ -97,6 +104,13 @@ VIAddVersionKey "FileVersion" "${PROD_VERSION}"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GNU\GnuPG"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_SHOWREADME "README.txt"
|
||||
@ -156,8 +170,6 @@ Section "Base" SecBase
|
||||
|
||||
WriteRegStr HKLM "Software\GNU\GnuPG" "Install Directory" $INSTDIR
|
||||
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
SectionEnd ; Section Base
|
||||
|
||||
;----------------------
|
||||
@ -180,6 +192,29 @@ Section "Tools" SecTools
|
||||
|
||||
SectionEnd ; Section Tools
|
||||
|
||||
;------------------
|
||||
!ifdef WITH_WINPT
|
||||
Section "WinPT" SecWinPT
|
||||
; SectionIn 1
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
File "WinPT.exe"
|
||||
File "PTD.dll"
|
||||
File "keyserver.conf"
|
||||
|
||||
SetOutPath "$INSTDIR\Doc"
|
||||
|
||||
File "README.winpt.txt"
|
||||
|
||||
WriteRegStr HKCU "Software\GNU\GnuPG" "gpgProgram" "$INSTDIR\gpg.exe"
|
||||
|
||||
StrCpy $WINPT_INSTALLED 1
|
||||
|
||||
SectionEnd ; Section WinPT
|
||||
!endif
|
||||
|
||||
|
||||
;----------------------
|
||||
Section "Documentation" SecDoc
|
||||
; SectionIn 1
|
||||
@ -192,6 +227,12 @@ Section "Documentation" SecDoc
|
||||
File "NEWS.txt"
|
||||
File "FAQ.txt"
|
||||
|
||||
!ifdef WITH_WINPT
|
||||
File "NEWS.winpt.txt"
|
||||
!endif ; WITH_WINPT
|
||||
|
||||
StrCpy $DOC_INSTALLED 1
|
||||
|
||||
SectionEnd ; Section Documentation
|
||||
|
||||
|
||||
@ -204,15 +245,73 @@ 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"
|
||||
File "gnupg-${VERSION}.tar"
|
||||
|
||||
SectionEnd ; Section Source
|
||||
!endif
|
||||
|
||||
|
||||
;------------------
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; The last section is a hidden one; used to finish up things.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
Section "-Finish"
|
||||
|
||||
;;--------------------------
|
||||
;; Create the uninstaller
|
||||
;;--------------------------
|
||||
WriteUninstaller "$INSTDIR\uninst-gnupg.exe"
|
||||
|
||||
;;---------------------
|
||||
;; Create Menu entries
|
||||
;;---------------------
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
|
||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG README.lnk" \
|
||||
"$INSTDIR\Doc\README.txt"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG NEWS.lnk" \
|
||||
"$INSTDIR\Doc\NEWS.txt"
|
||||
|
||||
IntCmp $DOC_INSTALLED 1 0 +2 +2
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG Manual Page.lnk" \
|
||||
"$INSTDIR\Doc\gpg.man"
|
||||
|
||||
|
||||
IntCmp $WINPT_INSTALLED 1 0 no_winpt_menu no_winpt_menu
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\winpt.lnk" \
|
||||
"$INSTDIR\winpt.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\WinPT README.lnk" \
|
||||
"$INSTDIR\Doc\README.winpt.txt"
|
||||
IntCmp $DOC_INSTALLED 1 0 +2 +2
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\WinPT NEWS.lnk" \
|
||||
"$INSTDIR\Doc\NEWS.winpt.txt"
|
||||
|
||||
no_winpt_menu:
|
||||
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\uninst-gnupg.lnk" \
|
||||
"$INSTDIR\uninst-gnupg.exe"
|
||||
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
|
||||
|
||||
SectionEnd ; "-Finish"
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; Create the section for the uninstaller
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
Section "Uninstall"
|
||||
|
||||
;;------------------------
|
||||
;; Delete files
|
||||
;;------------------------
|
||||
Delete "$INSTDIR\gpg.exe"
|
||||
Delete "$INSTDIR\gpgkeys_finger.exe"
|
||||
Delete "$INSTDIR\gpgkeys_hkp.exe"
|
||||
@ -222,6 +321,8 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\Doc\README.txt"
|
||||
Delete "$INSTDIR\Doc\README.W32"
|
||||
Delete "$INSTDIR\Doc\COPYING.txt"
|
||||
Delete "$INSTDIR\Doc\COPYING.LIB.txt"
|
||||
Delete "$INSTDIR\Doc\README.iconv.txt"
|
||||
|
||||
Delete "$INSTDIR\iconv.dll"
|
||||
|
||||
@ -229,6 +330,11 @@ Section "Uninstall"
|
||||
|
||||
Delete "$INSTDIR\gpgsplit.exe"
|
||||
Delete "$INSTDIR\gpgv.exe"
|
||||
Delete "$INSTDIR\WinPT.exe"
|
||||
Delete "$INSTDIR\PTD.dll"
|
||||
Delete "$INSTDIR\Doc\README.winpt.txt"
|
||||
Delete "$INSTDIR\Doc\NEWS.winpt.txt"
|
||||
Delete "$INSTDIR\Doc\keyserver.conf"
|
||||
|
||||
Delete "$INSTDIR\Doc\gnupg.man"
|
||||
Delete "$INSTDIR\Doc\gpg.man"
|
||||
@ -236,13 +342,36 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\Doc\NEWS.txt"
|
||||
Delete "$INSTDIR\Doc\FAQ.txt"
|
||||
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
Delete "$INSTDIR\uninst-gnupg.exe"
|
||||
|
||||
;;------------------------
|
||||
;; Delete directories
|
||||
;;------------------------
|
||||
RMDir "$INSTDIR\Doc"
|
||||
RMDir "$INSTDIR\Src"
|
||||
RMDir "$INSTDIR\gnupg.nls"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
|
||||
;;---------------------------------------------------
|
||||
;; Delete the menu entries and any empty parent menus
|
||||
;;---------------------------------------------------
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MYTMP
|
||||
Delete "$SMPROGRAMS\$MYTMP\*.lnk"
|
||||
StrCpy $MYTMP "$SMPROGRAMS\$MYTMP"
|
||||
startMenuDeleteLoop:
|
||||
ClearErrors
|
||||
RMDir $MYTMP
|
||||
GetFullPathName $MYTMP "$MYTMP\.."
|
||||
IfErrors startMenuDeleteLoopDone
|
||||
StrCmp $MYTMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
|
||||
startMenuDeleteLoopDone:
|
||||
|
||||
|
||||
;;-----------------------
|
||||
;; Cleanup the registry
|
||||
;;-----------------------
|
||||
DeleteRegValue HKCU "Software\GNU\GnuPG" "Start Menu Folder"
|
||||
DeleteRegValue HKLM "Software\GNU\GnuPG" "Install Directory"
|
||||
DeleteRegKey /ifempty HKLM "Software\GNU\GnuPG"
|
||||
|
||||
@ -314,6 +443,10 @@ Function InstallIconv
|
||||
SetOutPath "$INSTDIR"
|
||||
File "iconv.dll"
|
||||
|
||||
SetOutPath "$INSTDIR\doc"
|
||||
File "COPYING.LIB.txt"
|
||||
File "README.iconv.txt"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
@ -327,11 +460,15 @@ LangString T_About ${LANG_ENGLISH} \
|
||||
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. \
|
||||
\r\n\r\nThis is GnuPG version ${VERSION}"
|
||||
\r\n\r\n$_CLICK \
|
||||
\r\n\r\n\r\n\r\n\r\nThis is GnuPG version ${VERSION}\r\n\
|
||||
built on $%BUILDINFO%"
|
||||
LangString T_About ${LANG_GERMAN} \
|
||||
"GnuPG is das Werzeug aus dem GNU Projekt zur sicheren Kommunikation \
|
||||
sowie zum sicheren Speichern von Daten. \
|
||||
\r\n\r\nThis is GnuPG version ${VERSION}"
|
||||
\r\n\r\n$_CLICK \
|
||||
\r\n\r\n\r\n\r\n\r\nDies ist GnuPG version ${VERSION}\r\n\
|
||||
erstellt am $%BUILDINFO%"
|
||||
LangString T_ShowReadme ${LANG_ENGLISH} "Show the README file"
|
||||
LangString T_ShowReadme ${LANG_GERMAN} "Die README Datei anzeigen"
|
||||
|
||||
@ -351,6 +488,13 @@ LangString DESC_SecTools ${LANG_ENGLISH} \
|
||||
LangString DESC_SecTools ${LANG_GERMAN} \
|
||||
"Weitere Tools wie gpgv und gpgsplit"
|
||||
|
||||
!ifdef WITH_WINPT
|
||||
LangString DESC_SecWinPT ${LANG_ENGLISH} \
|
||||
"The Windows Privacy Tray (WinPT)"
|
||||
LangString DESC_SecWinPT ${LANG_GERMAN} \
|
||||
"Der Windows Privacy Tray (WinPT)"
|
||||
!endif
|
||||
|
||||
LangString DESC_SecDoc ${LANG_ENGLISH} \
|
||||
"Manual pages and a FAQ"
|
||||
LangString DESC_SecDoc ${LANG_GERMAN} \
|
||||
@ -360,6 +504,9 @@ LangString DESC_SecDoc ${LANG_GERMAN} \
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecBase} $(DESC_SecBase)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecNLS} $(DESC_SecNLS)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecTools} $(DESC_SecTools)
|
||||
!ifdef WITH_WINPT
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecWinPT} $(DESC_SecWinPT)
|
||||
!endif
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecDoc} $(DESC_SecDoc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user