summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Mathys <eraserix@gmail.com>2016-08-18 19:23:18 +0200
committerAndrej Shadura <andrewsh@debian.org>2018-10-04 21:01:31 +0200
commitf850eb21e765dcf80b2749441199cff2394c8f27 (patch)
tree0b669a666ee4cd95e7c9fa76df3f4a3cb763f639
parent7d91eae6d43914d291b96b40e8c5bfa305c6131e (diff)
parent385778100dad9bed324a46f430ecf6df24af2d30 (diff)
Import Debian changes 1.1.5-1
mercurial-keyring (1.1.5-1) unstable; urgency=medium * New upstream release
-rw-r--r--HISTORY.txt13
-rw-r--r--PKG-INFO2
-rw-r--r--debian/changelog6
-rw-r--r--mercurial_keyring.egg-info/PKG-INFO2
-rw-r--r--mercurial_keyring.py48
-rw-r--r--setup.py2
6 files changed, 54 insertions, 19 deletions
diff --git a/HISTORY.txt b/HISTORY.txt
index 78b9a47..8bae494 100644
--- a/HISTORY.txt
+++ b/HISTORY.txt
@@ -1,3 +1,16 @@
+1.1.5
+~~~~~~~~~~~~~~~~~~
+
+Mercurial 3.9 compatibility.
+
+1.1.4
+~~~~~~~~~~~~~~~~~~
+
+Gracefully handle failures to save passwords - they are reported
+as warnings, but don't break the operation being executed.
+
+Compatibility fixes for upcoming 3.9 release (which changes SSL API
+noticeably, what impact SMTP passwords handling in mercurial_keyring).
1.1.3
~~~~~~~~~~~~~~~~~~
diff --git a/PKG-INFO b/PKG-INFO
index 179f8f9..6621a28 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: mercurial_keyring
-Version: 1.1.3
+Version: 1.1.5
Summary: Mercurial Keyring Extension
Home-page: http://bitbucket.org/Mekk/mercurial_keyring
Author: Marcin Kasperski
diff --git a/debian/changelog b/debian/changelog
index b68e075..8eddf14 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mercurial-keyring (1.1.5-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Christoph Mathys <eraserix@gmail.com> Thu, 18 Aug 2016 19:23:18 +0200
+
mercurial-keyring (1.1.3-1) unstable; urgency=medium
* New upstream release.
diff --git a/mercurial_keyring.egg-info/PKG-INFO b/mercurial_keyring.egg-info/PKG-INFO
index 412faad..5bb42d5 100644
--- a/mercurial_keyring.egg-info/PKG-INFO
+++ b/mercurial_keyring.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: mercurial-keyring
-Version: 1.1.3
+Version: 1.1.5
Summary: Mercurial Keyring Extension
Home-page: http://bitbucket.org/Mekk/mercurial_keyring
Author: Marcin Kasperski
diff --git a/mercurial_keyring.py b/mercurial_keyring.py
index d6dc31d..7f70e57 100644
--- a/mercurial_keyring.py
+++ b/mercurial_keyring.py
@@ -51,13 +51,6 @@ backend (by default keyring guesses, usually correctly, for example
you get KDE Wallet under KDE, and Gnome Keyring under Gnome or Unity).
'''
-from mercurial import util, sslutil
-from mercurial.i18n import _
-from mercurial.url import passwordmgr
-from mercurial import mail
-from mercurial.mail import SMTPS, STARTTLS
-from mercurial import encoding
-
import urllib2
import smtplib
import socket
@@ -65,6 +58,13 @@ import os
import sys
import re
+from mercurial import util, sslutil
+from mercurial.i18n import _
+from mercurial.url import passwordmgr
+from mercurial import mail
+from mercurial.mail import SMTPS, STARTTLS
+from mercurial import encoding
+
# pylint: disable=invalid-name, line-too-long, protected-access, too-many-arguments
###########################################################################
@@ -140,7 +140,6 @@ def import_keyring():
meu.disable_logging("keyring")
return mod
-
#################################################################
# Actual implementation
#################################################################
@@ -304,9 +303,13 @@ class HTTPPasswordHandler(object):
return url_user, url_passwd, self.SRC_URL, base_url
# Extract data from urllib (in case it was already stored)
- urllib_user, urllib_pwd \
- = urllib2.HTTPPasswordMgrWithDefaultRealm.find_user_password(
- pwmgr, realm, authuri)
+ if isinstance(pwmgr, urllib2.HTTPPasswordMgrWithDefaultRealm):
+ urllib_user, urllib_pwd = \
+ urllib2.HTTPPasswordMgrWithDefaultRealm.find_user_password(
+ pwmgr, realm, authuri)
+ else:
+ urllib_user, urllib_pwd = pwmgr.passwddb.find_user_password(
+ realm, authuri)
if urllib_user and urllib_pwd:
return urllib_user, urllib_pwd, self.SRC_URLCACHE, base_url
@@ -389,7 +392,11 @@ class HTTPPasswordHandler(object):
# Otherwise we won't be able to find the password so it
# does not make much sense to preserve it
_debug(ui, _("Saving password for %s to keyring") % user)
- password_store.set_http_password(final_url, user, pwd)
+ try:
+ password_store.set_http_password(final_url, user, pwd)
+ except keyring.errors.PasswordSetError, e:
+ ui.traceback()
+ ui.warn(_("warning: failed to save password in keyring\n"))
# Saving password to the memory cache
self.pwd_cache.store(realm, final_url, user, pwd)
@@ -617,7 +624,9 @@ def keyring_supported_smtp(ui, username):
raise util.Abort(_('invalid smtp.verifycert configuration: %s')
% (verifycert))
verifycert = False
- if (starttls or smtps) and verifycert:
+ if getattr(sslutil, 'sslkwargs', None) is None:
+ sslkwargs = None
+ elif (starttls or smtps) and verifycert:
sslkwargs = sslutil.sslkwargs(ui, mailhost)
else:
sslkwargs = {}
@@ -625,12 +634,16 @@ def keyring_supported_smtp(ui, username):
ui.note(_('(using smtps)\n'))
# mercurial 3.8 added a mandatory host arg
- if 'host' in SMTPS.__init__.__code__.co_varnames:
+ if not sslkwargs:
+ s = SMTPS(ui, local_hostname=local_hostname, host=mailhost)
+ elif 'host' in SMTPS.__init__.__code__.co_varnames:
s = SMTPS(sslkwargs, local_hostname=local_hostname, host=mailhost)
else:
s = SMTPS(sslkwargs, local_hostname=local_hostname)
elif starttls:
- if 'host' in STARTTLS.__init__.__code__.co_varnames:
+ if not sslkwargs:
+ s = STARTTLS(ui, local_hostname=local_hostname, host=mailhost)
+ elif 'host' in STARTTLS.__init__.__code__.co_varnames:
s = STARTTLS(sslkwargs, local_hostname=local_hostname, host=mailhost)
else:
s = STARTTLS(sslkwargs, local_hostname=local_hostname)
@@ -651,7 +664,10 @@ def keyring_supported_smtp(ui, username):
s.ehlo()
if (starttls or smtps) and verifycert:
ui.note(_('(verifying remote certificate)\n'))
- sslutil.validator(ui, mailhost)(s.sock, verifycert == 'strict')
+ if getattr(sslutil, 'validatesocket', None):
+ sslutil.validatesocket(s.sock)
+ else:
+ validator(ui, mailhost)(s.sock, verifycert == 'strict')
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
stored = password = password_store.get_smtp_password(
diff --git a/setup.py b/setup.py
index 723cc60..07b123d 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
-VERSION = '1.1.3'
+VERSION = '1.1.5'
# pylint: disable=unused-import