From 206746cbfb0876c2a1778bf083f1010505778156 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sun, 21 Feb 2016 18:54:31 +0100
Subject: [PATCH] make GPG work with gpg2 binary if present. Fixes #8268

---
 src/common/gajim.py | 17 ++++++++++++-----
 src/common/gpg.py   |  4 ++--
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/common/gajim.py b/src/common/gajim.py
index a1d824ec3..b0524135c 100644
--- a/src/common/gajim.py
+++ b/src/common/gajim.py
@@ -160,6 +160,7 @@ except ImportError:
     HAVE_PYCRYPTO = False
 
 HAVE_GPG = True
+GPG_BINARY = 'gpg'
 try:
     __import__('common.gnupg', globals(), locals(), [], 0)
 except ImportError:
@@ -167,11 +168,17 @@ except ImportError:
 else:
     import os
     import subprocess
-    if os.name == 'nt':
-        gpg_cmd = 'gpg -h >nul 2>&1'
-    else:
-        gpg_cmd = 'gpg -h >/dev/null 2>&1'
-    if subprocess.call(gpg_cmd, shell=True):
+    def test_gpg(binary='gpg'):
+        if os.name == 'nt':
+            gpg_cmd = binary + ' -h >nul 2>&1'
+        else:
+            gpg_cmd = binary + ' -h >/dev/null 2>&1'
+        if subprocess.call(gpg_cmd, shell=True):
+            return False
+        return True
+    if test_gpg(binary='gpg2'):
+        GPG_BINARY = 'gpg2'
+    if not test_gpg(binary='gpg'):
         HAVE_GPG = False
 
 HAVE_PYOPENSSL = True
diff --git a/src/common/gpg.py b/src/common/gpg.py
index d986fefee..666ab1a05 100644
--- a/src/common/gpg.py
+++ b/src/common/gpg.py
@@ -22,7 +22,7 @@
 ## along with Gajim. If not, see <http://www.gnu.org/licenses/>.
 ##
 
-from common.gajim import HAVE_GPG
+from common.gajim import HAVE_GPG, GPG_BINARY
 import os
 
 if HAVE_GPG:
@@ -30,7 +30,7 @@ if HAVE_GPG:
 
     class GnuPG(gnupg.GPG):
         def __init__(self, use_agent=False):
-            gnupg.GPG.__init__(self)
+            gnupg.GPG.__init__(self, gpgbinary=GPG_BINARY)
             self.encoding = 'utf-8'
             self.decode_errors = 'replace'
             self.passphrase = None