Make it optional to install native-messaging
authorAndre Heinecke <aheinecke@intevation.de>
Mon, 2 Jul 2018 16:04:12 +0000 (18:04 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Mon, 2 Jul 2018 16:04:12 +0000 (18:04 +0200)
* src/Makefile.am (EXTRA_DIST): Add inst-gpgme-browser.nsi
* src/inst-gpgme-browser.nsi: New.
* src/inst-sections.nsi, src/installer.nsi: Update accordingly.
* src/uninst-gpgme.nsi: Remove the browser integration.
* po: Auto update.

--
This is mostly in an extra inst file so that it can be
sorted when including.

18 files changed:
po/POTFILES.in
po/ar.po
po/cz.po
po/de.po
po/es.po
po/fr.po
po/it.po
po/nl.po
po/no.po
po/pt.po
po/ru.po
po/zh_CN.po
po/zh_TW.po
src/Makefile.am
src/inst-gpgme-browser.nsi [new file with mode: 0644]
src/inst-sections.nsi
src/installer.nsi
src/uninst-gpgme.nsi

index 14d980d..5cac064 100644 (file)
@@ -8,5 +8,6 @@ src/inst-gpa.nsi
 src/inst-gpg4win.nsi
 src/inst-gpgex.nsi
 src/inst-gpgol.nsi
+src/inst-gpgme-browser.nsi
 src/inst-kleopatra.nsi
 src/inst-compendium.nsi
index fd741bc..1243c0d 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -356,6 +356,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "þGnuPG áÃæÊáæß"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index a4326d2..cdf0bab 100644 (file)
--- a/po/cz.po
+++ b/po/cz.po
@@ -364,6 +364,11 @@ msgstr ""
 "který se pou\9eívá pro \9aifrování zpráv pomocí OpenPGP nebo S/MIME. Vy\9eaduje "
 "Kleopatra, nebo GPA."
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 1ea68da..559132b 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -437,6 +437,11 @@ msgstr ""
 "verwendet wird, um Nachrichten mit OpenPGP oder S/MIME zu verschlüsseln. "
 "Benötigt Kleopatra oder GPA."
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index cfa734d..a0b4c0f 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -362,6 +362,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG para Outlook (GpgOL)"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 9158740..b12416c 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -365,6 +365,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG pour Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 8589027..acf1bd7 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -364,6 +364,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG per Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 8dc4b1c..b10c122 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -384,6 +384,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG voor Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr "Sleutelbeheerder voor OpenPGP en X.509 en algemene crypto dialogen."
index 9b948dc..776c6a3 100644 (file)
--- a/po/no.po
+++ b/po/no.po
@@ -366,6 +366,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG for Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr "Nøkkelhåndterer for OpenPGP og X.509 og vanlige krypto dialoger."
index 00b23d7..cef38aa 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -377,6 +377,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG para Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 3cbd636..17fa087 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -364,6 +364,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr "GnuPG äëÿ MS Outlook"
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr ""
index 9bec06c..5a6412b 100644 (file)
@@ -345,6 +345,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr ""
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr "OpenPGP ºÍ X.509 ÃÜÔ¿¹ÜÀíÆ÷ºÍ³£ÓüӽâÃÜ´°¿Ú¡£"
index a91e451..7667382 100644 (file)
@@ -345,6 +345,11 @@ msgctxt "DESC_SEC_gpgol"
 msgid "GnuPG for Outlook"
 msgstr ""
 
+msgctxt "DESC_SEC_gpgme_browser"
+msgid ""
+"Register GnuPG as native messaging service e.g. for the Mailvelope extension."
+msgstr ""
+
 msgctxt "DESC_SEC_kleopatra"
 msgid "Keymanager for OpenPGP and X.509 and common crypto dialogs."
 msgstr "OpenPGP ©M X.509 ª÷Æ_ºÞ²z¾¹©M±`¥Î¥[¸Ñ±Kµøµ¡¡C"
index 6ca272f..acb9995 100644 (file)
@@ -87,6 +87,7 @@ EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi \
         inst-boost.nsi uninst-boost.nsi \
         inst-extra-cmake-modules.nsi uninst-extra-cmake-modules.nsi \
         inst-gpg4win-tools.nsi uninst-gpg4win-tools.nsi \
+        inst-gpgme-browser.nsi \
         inst-final.nsi index.theme \
         slideshow/slides.dat \
         slideshow/slide1-gpgol.png \
diff --git a/src/inst-gpgme-browser.nsi b/src/inst-gpgme-browser.nsi
new file mode 100644 (file)
index 0000000..135113f
--- /dev/null
@@ -0,0 +1,71 @@
+# inst-gpgme-browser.nsi - Installer snippet for gpgme natiove msg.
+# Copyright (C) 2018 Intevation 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
+
+# We need StrRep
+!include "StrFunc.nsh"
+${StrRep}
+
+# Browser integration. Opt in for now.
+${MementoUnselectedSection} "Browser integration" SEC_gpgme_browser
+
+!ifndef SOURCES
+
+  SetOutPath "$INSTDIR\bin"
+
+  # Replace the backslashes in the install path by double backslashes
+  push $2
+  ${StrRep} $2 "$INSTDIR" "\" "\\"
+
+  push $1
+  FileOpen $1 "$INSTDIR\bin\gpgme-chrome.json" "w"
+  FileWrite $1 '{$\r$\n'
+  FileWrite $1 '"name": "gpgmejson",$\r$\n'
+  FileWrite $1 '"description": "Javascript-binding for gnupg",$\r$\n'
+  FileWrite $1 '"path": "$2\\bin\\gpgme-json.exe",$\r$\n'
+  FileWrite $1 '"type": "stdio",$\r$\n'
+  FileWrite $1 '"allowed_origins": [$\r$\n'
+  FileWrite $1 '       "chrome-extension://kajibbejlbohfaggdiogboambcijhkke/"$\r$\n'
+  FileWrite $1 ']$\r$\n'
+  FileWrite $1 '}$\r$\n'
+  FileClose $1
+  pop $1
+
+  push $1
+  FileOpen $1 "$INSTDIR\bin\gpgme-mozilla.json" "w"
+  FileWrite $1 '{$\r$\n'
+  FileWrite $1 '"name": "gpgmejson",$\r$\n'
+  FileWrite $1 '"description": "Javascript-binding for gnupg",$\r$\n'
+  FileWrite $1 '"path": "$2\\bin\\gpgme-json.exe",$\r$\n'
+  FileWrite $1 '"type": "stdio",$\r$\n'
+  FileWrite $1 '"allowed_extensions": [$\r$\n'
+  FileWrite $1 '       "jid1-AQqSMBYb0a8ADg@jetpack"$\r$\n'
+  FileWrite $1 '       ]$\r$\n'
+  FileWrite $1 '}$\r$\n'
+  pop $1
+
+  pop $2
+
+  WriteRegStr SHCTX "Software\Google\Chrome\NativeMessagingHosts\gpgmejson" "" "$INSTDIR\bin\gpgme-chrome.json"
+  WriteRegStr SHCTX "Software\Mozilla\NativeMessagingHosts\gpgmejson" "" "$INSTDIR\bin\gpgme-mozilla.json"
+!endif
+
+${MementoSectionEnd}
+
+LangString DESC_SEC_gpgme_browser ${LANG_ENGLISH} \
+   "Register GnuPG as native messaging service e.g. for the Mailvelope extension."
index 7565154..b293e26 100644 (file)
 !include "inst-man_advanced_de.nsi"
 !endif
 
+!include "inst-gpgme-browser.nsi"
+
 !include "inst-final.nsi"
 
 # We have to invoke the uninstallers in reverse order!
@@ -536,6 +538,7 @@ select_minimal:
    !insertmacro UnselectSection ${SEC_gpgol}
    !insertmacro UnselectSection ${SEC_gpgex}
    !insertmacro UnselectSection ${SEC_gpa}
+   !insertmacro UnselectSection ${SEC_gpgme_browser}
    !insertmacro UnselectSection ${SEC_compendium}
 
 # We only do pinentry and gnupg-w32
@@ -786,6 +789,11 @@ Function CalcDepends
   skip_gpa:
 !endif
 
+!insertmacro SectionFlagIsSet ${SEC_gpgme_browser} ${SF_SELECTED} have_gpgme_browser skip_gpgme_browser
+have_gpgme_browser:
+!insertmacro SelectSection ${SEC_gpgme}
+skip_gpgme_browser:
+
   # Now the implicitely installed packages.
 
 !ifdef HAVE_PKG_KLEOPATRA
index 340b033..24b8f90 100644 (file)
@@ -36,6 +36,7 @@
 
 # We use the modern UI 2.
 !include "MUI2.nsh"
+
 !ifdef DEBUG
 !undef DEBUG
 !endif
@@ -796,5 +797,7 @@ FunctionEnd
 !ifdef HAVE_PKG_MAN_ADVANCED_DE
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC_man_advanced_de} $(DESC_SEC_man_advanced_de)
 !endif
+
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC_gpgme_browser} $(DESC_SEC_gpgme_browser)
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
index f76f724..a36bc06 100644 (file)
@@ -39,5 +39,10 @@ Section "-un.gpgme"
   Delete "$INSTDIR\lib\libgpgme.imp"
   Delete "$INSTDIR\lib\libgpgme-glib.imp"
   Delete "$INSTDIR\include\gpgme.h"
+  Delete "$INSTDIR\bin\gpgme-chrome.json"
+  Delete "$INSTDIR\bin\gpgme-mozilla.json"
+
+  DeleteRegKey SHCTX "Software\Google\Chrome\NativeMessagingHosts\gpgmejson"
+  DeleteRegKey SHCTX "Software\Mozilla\NativeMessagingHosts\gpgmejson"
 !endif
 SectionEnd