diff options
author | Christoph Mathys <eraserix@gmail.com> | 2016-08-18 19:23:18 +0200 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2018-10-04 21:01:31 +0200 |
commit | f850eb21e765dcf80b2749441199cff2394c8f27 (patch) | |
tree | 0b669a666ee4cd95e7c9fa76df3f4a3cb763f639 | |
parent | 7d91eae6d43914d291b96b40e8c5bfa305c6131e (diff) | |
parent | 385778100dad9bed324a46f430ecf6df24af2d30 (diff) |
Import Debian changes 1.1.5-1
mercurial-keyring (1.1.5-1) unstable; urgency=medium
* New upstream release
-rw-r--r-- | HISTORY.txt | 13 | ||||
-rw-r--r-- | PKG-INFO | 2 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | mercurial_keyring.egg-info/PKG-INFO | 2 | ||||
-rw-r--r-- | mercurial_keyring.py | 48 | ||||
-rw-r--r-- | setup.py | 2 |
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 ~~~~~~~~~~~~~~~~~~ @@ -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( @@ -1,5 +1,5 @@ -VERSION = '1.1.3' +VERSION = '1.1.5' # pylint: disable=unused-import |