5a6c0aa1c92c2cc42bccda243e9f66a707318fa0
[gpg4win.git] / src / inst-gnupg2.nsi
1 # inst-gnupg2.nsi - Installer snippet for gnupg2.     -*- coding: latin-1; -*-
2 # Copyright (C) 2007, 2008 g10 Code GmbH
3
4 # This file is part of Gpg4win.
5
6 # Gpg4win is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # Gpg4win is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 # MA 02110-1301, USA.
20
21
22 !ifdef prefix
23 !undef prefix
24 !endif
25 !define prefix ${ipdir}/gnupg2-${gpg4win_pkg_gnupg2_version}
26 !define source ${bpdir}/gnupg2-${gpg4win_pkg_gnupg2_version}
27
28
29 ${MementoSection} "GnuPG" SEC_gnupg2
30   SectionIn RO
31
32   SetOutPath "$INSTDIR"
33 !ifdef SOURCES
34   File "${gpg4win_pkg_gnupg2}"
35 !else
36   File "${prefix}/bin/gpg2.exe"
37   File "${prefix}/bin/gpgv2.exe"
38   File "${prefix}/bin/gpgsm.exe"
39
40   # Fixme: gpgsplit is missing.  I doubt that it makes sense to rename
41   # it like we did with gpg.  It might be better to install this tool
42   # into a subdirectory.
43
44   # If we are reinstalling, try to kill a possible running agent 
45   ifFileExists "$INSTDIR\gpg-connect-agent.exe"  0 no_gpg_connect_agent
46     ExecWait '"$INSTDIR\gpg-connect-agent.exe" killagent /bye'
47   no_gpg_connect_agent:
48
49   ClearErrors
50   SetOverwrite try
51   File "${prefix}/bin/gpg-agent.exe"
52   SetOverwrite lastused
53   ifErrors 0 +3
54       File /oname=gpg-agent.exe.tmp "${prefix}/bin/gpg-agent.exe"
55       Rename /REBOOTOK gpg-agent.exe.tmp gpg-agent.exe
56
57   File "${prefix}/bin/scdaemon.exe"
58   File "${prefix}/bin/gpgconf.exe"
59   File "${prefix}/bin/gpg-connect-agent.exe"
60
61
62   # As a special exception, these programs are not kept in
63   # libexec/gnupg, where they belong.  Please see the comment in
64   # gnupg/g10/keyserver.c::keyserver_spawn() for an explanation.
65   File "${prefix}/libexec/gpg2keys_finger.exe"
66   File "${prefix}/libexec/gpg2keys_hkp.exe"
67   File "${prefix}/libexec/gpg2keys_curl.exe"
68   File "${prefix}/libexec/gpg2keys_ldap.exe"
69   File /nonfatal "${prefix}/libexec/gpg2keys_kdns.exe"
70   File "${prefix}/libexec/gpg-protect-tool.exe"
71   File "${prefix}/libexec/gpg-preset-passphrase.exe"
72
73   # Install the wrappers into the PATH included directory.  These are
74   # our poor hacker's symlinks.  We always install wrappers
75   # gpg[v]->gpg[v]2.  If old applications are not able to to work with
76   # gpg2, they may still install a gpg1 version and use the installed
77   # version directly without the wrapper.
78   SetOutPath "$INSTDIR\pub"
79   File /oname=gpg.exe       "${BUILD_DIR}/gpgwrap-2.exe"
80   File /oname=gpgv.exe      "${BUILD_DIR}/gpgwrap-2.exe"
81   File /oname=gpg2.exe      "${BUILD_DIR}/gpgwrap.exe"
82   File /oname=gpgsm.exe     "${BUILD_DIR}/gpgwrap.exe"
83   File /oname=gpg-connect-agent.exe  "${BUILD_DIR}/gpgwrap.exe"
84   # fixme: gpgsplit is missing; see above
85
86   SetOutPath "$INSTDIR\share\gnupg"
87   File "${prefix}/share/gnupg/qualified.txt"
88   # Due to problems with kleoptra we currently do not install the
89   # common certificates anymore.
90   #File "${prefix}/share/gnupg/com-certs.pem"
91   File "${prefix}/share/gnupg/gpg-conf.skel"
92   # [fixme: Missing in gnupg2] File "${prefix}/share/gnupg/options.skel"
93   # [fixme: Missing in gnupg2] File "${prefix}/share/gnupg/FAQ"
94   # [fixme: Missing in gnupg2] File "${prefix}/share/gnupg/faq.html"
95   File "${prefix}/share/man/man1/gpg2.man"
96   File "${prefix}/share/man/man1/gpgv2.man"
97   File "${prefix}/share/man/man1/gpgsm.man"
98   File "${prefix}/share/man/man1/gpg-agent.man"
99   File "${prefix}/share/man/man1/scdaemon.man"
100   File "${prefix}/share/man/man1/gpg-connect-agent.man"
101   File "${prefix}/share/man/man1/gpgconf.man"
102
103   # Install the language files for gpg.  Note that the PO files are
104   # required to be UTF-8 encoded and that the post-install macro in
105   # Makefile.am needs to build them.  The language used depends on the
106   # current locale of the session and may be overriden using LC_ALL,
107   # LC_MESSAGES or LANG.
108
109   # 1. Remove posible left over files from old versions.
110   Delete "$INSTDIR\gnupg2.nls\*.mo"
111   RMDir  "$INSTDIR\gnupg2.nls"
112
113   # 2. Install the help files
114   File /nonfatal "${prefix}/share/gnupg/help.*.txt"
115
116   # 3. Install the mo files.
117   SetOutPath "$INSTDIR\share\locale\be\LC_MESSAGES"
118   File /nonfatal ${prefix}/share/locale/be/LC_MESSAGES/gnupg2.mo
119   SetOutPath "$INSTDIR\share\locale\ca\LC_MESSAGES"
120   File /nonfatal ${prefix}/share/locale/ca/LC_MESSAGES/gnupg2.mo
121   SetOutPath "$INSTDIR\share\locale\cs\LC_MESSAGES"
122   File /nonfatal ${prefix}/share/locale/cs/LC_MESSAGES/gnupg2.mo
123   SetOutPath "$INSTDIR\share\locale\da\LC_MESSAGES"
124   File /nonfatal ${prefix}/share/locale/da/LC_MESSAGES/gnupg2.mo
125   SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES"
126   File /nonfatal ${prefix}/share/locale/de/LC_MESSAGES/gnupg2.mo
127   SetOutPath "$INSTDIR\share\locale\el\LC_MESSAGES"
128   File /nonfatal ${prefix}/share/locale/el/LC_MESSAGES/gnupg2.mo
129   SetOutPath "$INSTDIR\share\locale\eo\LC_MESSAGES"
130   File /nonfatal ${prefix}/share/locale/eo/LC_MESSAGES/gnupg2.mo
131   SetOutPath "$INSTDIR\share\locale\es\LC_MESSAGES"
132   File /nonfatal ${prefix}/share/locale/es/LC_MESSAGES/gnupg2.mo
133   SetOutPath "$INSTDIR\share\locale\et\LC_MESSAGES"
134   File /nonfatal ${prefix}/share/locale/et/LC_MESSAGES/gnupg2.mo
135   SetOutPath "$INSTDIR\share\locale\fi\LC_MESSAGES"
136   File /nonfatal ${prefix}/share/locale/fi/LC_MESSAGES/gnupg2.mo
137   SetOutPath "$INSTDIR\share\locale\fr\LC_MESSAGES"
138   File /nonfatal ${prefix}/share/locale/fr/LC_MESSAGES/gnupg2.mo
139   SetOutPath "$INSTDIR\share\locale\gl\LC_MESSAGES"
140   File /nonfatal ${prefix}/share/locale/gl/LC_MESSAGES/gnupg2.mo
141   SetOutPath "$INSTDIR\share\locale\hu\LC_MESSAGES"
142   File /nonfatal ${prefix}/share/locale/hu/LC_MESSAGES/gnupg2.mo
143   SetOutPath "$INSTDIR\share\locale\id\LC_MESSAGES"
144   File /nonfatal ${prefix}/share/locale/id/LC_MESSAGES/gnupg2.mo
145   SetOutPath "$INSTDIR\share\locale\it\LC_MESSAGES"
146   File /nonfatal ${prefix}/share/locale/it/LC_MESSAGES/gnupg2.mo
147   SetOutPath "$INSTDIR\share\locale\ja\LC_MESSAGES"
148   File /nonfatal ${prefix}/share/locale/ja/LC_MESSAGES/gnupg2.mo
149   SetOutPath "$INSTDIR\share\locale\nb\LC_MESSAGES"
150   File /nonfatal ${prefix}/share/locale/nb/LC_MESSAGES/gnupg2.mo
151   SetOutPath "$INSTDIR\share\locale\pl\LC_MESSAGES"
152   File /nonfatal ${prefix}/share/locale/pl/LC_MESSAGES/gnupg2.mo
153   SetOutPath "$INSTDIR\share\locale\pt_BR\LC_MESSAGES"
154   File /nonfatal ${prefix}/share/locale/pt_BR/LC_MESSAGES/gnupg2.mo
155   SetOutPath "$INSTDIR\share\locale\pt\LC_MESSAGES"
156   File /nonfatal ${prefix}/share/locale/pt/LC_MESSAGES/gnupg2.mo
157   SetOutPath "$INSTDIR\share\locale\ro\LC_MESSAGES"
158   File /nonfatal ${prefix}/share/locale/ro/LC_MESSAGES/gnupg2.mo
159   SetOutPath "$INSTDIR\share\locale\ru\LC_MESSAGES"
160   File /nonfatal ${prefix}/share/locale/ru/LC_MESSAGES/gnupg2.mo
161   SetOutPath "$INSTDIR\share\locale\sk\LC_MESSAGES"
162   File /nonfatal ${prefix}/share/locale/sk/LC_MESSAGES/gnupg2.mo
163   SetOutPath "$INSTDIR\share\locale\sv\LC_MESSAGES"
164   File /nonfatal ${prefix}/share/locale/sv/LC_MESSAGES/gnupg2.mo
165   SetOutPath "$INSTDIR\share\locale\tr\LC_MESSAGES"
166   File /nonfatal ${prefix}/share/locale/tr/LC_MESSAGES/gnupg2.mo
167   SetOutPath "$INSTDIR\share\locale\zh_CN\LC_MESSAGES"
168   File /nonfatal ${prefix}/share/locale/zh_CN/LC_MESSAGES/gnupg2.mo
169   SetOutPath "$INSTDIR\share\locale\zh_TW\LC_MESSAGES"
170   File /nonfatal ${prefix}/share/locale/zh_TW/LC_MESSAGES/gnupg2.mo
171
172
173   # Always install the new template into COMMON_APPDATA folder.
174   SetShellVarContext all
175   SetOutPath "$APPDATA\GNU\etc\gnupg"
176   File /oname=gpgconf-conf.skel "${source}/doc/examples/gpgconf.conf"
177   SetShellVarContext current
178
179
180   # If requested, install the configuration files.
181   ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
182   StrCmp $0 "" no_config_gpg_conf_files
183   CreateDirectory "$0\gnupg"
184
185   g4wihelp::config_fetch "gpg.conf"
186   StrCmp $R0 "" no_config_gpg2_conf
187     CopyFiles $R0 "$0\gnupg\gpg.conf"
188   no_config_gpg2_conf:
189
190   g4wihelp::config_fetch "gpg-agent.conf"
191   StrCmp $R0 "" no_config_gpg_agent_conf
192     CopyFiles $R0 "$0\gnupg\gpg-agent.conf"
193   no_config_gpg_agent_conf:
194
195   g4wihelp::config_fetch "scdaemon.conf"
196   StrCmp $R0 "" no_config_scdaemon_conf
197     CopyFiles $R0 "$0\gnupg\scdaemon.conf"
198   no_config_scdaemon_conf:
199
200   g4wihelp::config_fetch "trustlist.txt"
201   StrCmp $R0 "" no_config_trustlist_txt
202     CopyFiles $R0 "$0\gnupg\trustlist.txt"
203   no_config_trustlist_txt:
204
205   no_config_gpg_conf_files:
206
207 !endif
208 ${MementoSectionEnd}
209
210 LangString DESC_SEC_gnupg2 ${LANG_ENGLISH} \
211    "GNU Privacy Guard"