make GPG work with gpg2 binary if present. Fixes #8268

This commit is contained in:
Yann Leboulanger 2016-02-21 18:54:31 +01:00
parent 3f89fafb44
commit 206746cbfb
2 changed files with 14 additions and 7 deletions

View File

@ -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
def test_gpg(binary='gpg'):
if os.name == 'nt':
gpg_cmd = 'gpg -h >nul 2>&1'
gpg_cmd = binary + ' -h >nul 2>&1'
else:
gpg_cmd = 'gpg -h >/dev/null 2>&1'
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

View File

@ -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