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