Hello community, here is the log from the commit of package python-pure-sasl for openSUSE:Factory checked in at 2019-02-24 17:20:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pure-sasl (Old) and /work/SRC/openSUSE:Factory/.python-pure-sasl.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pure-sasl" Sun Feb 24 17:20:14 2019 rev:5 rq:678109 version:0.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pure-sasl/python-pure-sasl.changes 2018-12-07 14:34:21.127149153 +0100 +++ /work/SRC/openSUSE:Factory/.python-pure-sasl.new.28833/python-pure-sasl.changes 2019-02-24 17:20:24.300397063 +0100 @@ -1,0 +2,5 @@ +Fri Feb 22 04:57:47 UTC 2019 - Martin Herkt <9+suse@cirno.systems> + +- Update to 0.6.1 (no relevant changes in changelog) + +------------------------------------------------------------------- Old: ---- pure-sasl-0.5.1.tar.gz New: ---- pure-sasl-0.6.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pure-sasl.spec ++++++ --- /var/tmp/diff_new_pack.IzcvLA/_old 2019-02-24 17:20:26.688396638 +0100 +++ /var/tmp/diff_new_pack.IzcvLA/_new 2019-02-24 17:20:26.716396633 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pure-sasl # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without test Name: python-pure-sasl -Version: 0.5.1 +Version: 0.6.1 Release: 0 Summary: Pure Python client SASL implementation License: MIT ++++++ pure-sasl-0.5.1.tar.gz -> pure-sasl-0.6.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/CHANGES.rst new/pure-sasl-0.6.1/CHANGES.rst --- old/pure-sasl-0.5.1/CHANGES.rst 2018-05-19 01:09:41.000000000 +0200 +++ new/pure-sasl-0.6.1/CHANGES.rst 2019-02-21 22:49:12.000000000 +0100 @@ -1,3 +1,17 @@ +0.6.1 +===== +February 21st, 2019 + +* Import platform in setup.py + +0.6.0 +===== +February 21st, 2019 + +* Add support for Windows via winkerberos (#30) + +Thanks to @ryan-pip for this release + 0.5.1 ===== May 18th, 2018 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/PKG-INFO new/pure-sasl-0.6.1/PKG-INFO --- old/pure-sasl-0.5.1/PKG-INFO 2018-05-19 01:21:47.000000000 +0200 +++ new/pure-sasl-0.6.1/PKG-INFO 2019-02-21 22:52:32.000000000 +0100 @@ -1,10 +1,12 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pure-sasl -Version: 0.5.1 +Version: 0.6.1 Summary: Pure Python client SASL implementation Home-page: http://github.com/thobbs/pure-sasl -Author: Alex Shafer -Author-email: ashafe...@gmail.com +Author: Tyler Hobbs +Author-email: tylerlho...@gmail.com +Maintainer: Alex Shafer +Maintainer-email: ashafe...@gmail.com License: MIT Description: This package provides a reasonably high-level SASL client written in pure Python. New mechanisms may be integrated easily, but by default, @@ -24,3 +26,4 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Libraries :: Python Modules +Provides-Extra: GSSAPI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/pure_sasl.egg-info/PKG-INFO new/pure-sasl-0.6.1/pure_sasl.egg-info/PKG-INFO --- old/pure-sasl-0.5.1/pure_sasl.egg-info/PKG-INFO 2018-05-19 01:21:46.000000000 +0200 +++ new/pure-sasl-0.6.1/pure_sasl.egg-info/PKG-INFO 2019-02-21 22:52:32.000000000 +0100 @@ -1,10 +1,12 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pure-sasl -Version: 0.5.1 +Version: 0.6.1 Summary: Pure Python client SASL implementation Home-page: http://github.com/thobbs/pure-sasl -Author: Alex Shafer -Author-email: ashafe...@gmail.com +Author: Tyler Hobbs +Author-email: tylerlho...@gmail.com +Maintainer: Alex Shafer +Maintainer-email: ashafe...@gmail.com License: MIT Description: This package provides a reasonably high-level SASL client written in pure Python. New mechanisms may be integrated easily, but by default, @@ -24,3 +26,4 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Libraries :: Python Modules +Provides-Extra: GSSAPI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/puresasl/__init__.py new/pure-sasl-0.6.1/puresasl/__init__.py --- old/pure-sasl-0.5.1/puresasl/__init__.py 2018-05-19 01:09:41.000000000 +0200 +++ new/pure-sasl-0.6.1/puresasl/__init__.py 2019-02-21 22:49:58.000000000 +0100 @@ -1,5 +1,5 @@ -__version__ = '0.5.1' -__version_info__ = (0, 5, 1) +__version__ = '0.6.1' +__version_info__ = (0, 6, 1) class SASLError(Exception): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/puresasl/mechanisms.py new/pure-sasl-0.6.1/puresasl/mechanisms.py --- old/pure-sasl-0.5.1/puresasl/mechanisms.py 2018-05-19 00:38:40.000000000 +0200 +++ new/pure-sasl-0.6.1/puresasl/mechanisms.py 2019-02-21 21:11:00.000000000 +0100 @@ -4,6 +4,7 @@ import random import struct import sys +import platform from puresasl import SASLError, SASLProtocolException, QOP @@ -13,6 +14,15 @@ except ImportError: have_kerberos = False +if platform.system() == 'Windows': + try: + import winkerberos as kerberos + # Fix for different capitalisation in winkerberos method name + kerberos.authGSSClientUserName = kerberos.authGSSClientUsername + have_kerberos = True + except ImportError: + have_kerberos = False + PY3 = sys.version_info[0] == 3 if PY3: def _b(s): @@ -220,7 +230,7 @@ # functions used in DigestMD5 which were originally defined in the now-removed # util module -def bytes(text): +def to_bytes(text): """ Convert Unicode text to UTF-8 encoded bytes. @@ -252,7 +262,7 @@ :param text: A Unicode or byte string. """ - text = bytes(text) + text = to_bytes(text) return b'"' + text.replace(b'\\', b'\\\\').replace(b'"', b'\\"') + b'"' @@ -301,16 +311,16 @@ if getattr(self, 'realm', None) is not None: resp['realm'] = quote(self.realm) - resp['username'] = quote(bytes(self.username)) + resp['username'] = quote(to_bytes(self.username)) resp['nonce'] = quote(self.nonce) if self.nc == 0: - self.cnonce = bytes('%s' % random.random())[2:] + self.cnonce = to_bytes('%s' % random.random())[2:] resp['cnonce'] = quote(self.cnonce) self.nc += 1 - resp['nc'] = bytes('%08x' % self.nc) + resp['nc'] = to_bytes('%08x' % self.nc) self._digest_uri = ( - bytes(self.sasl.service) + b'/' + bytes(self.sasl.host)) + to_bytes(self.sasl.service) + b'/' + to_bytes(self.sasl.host)) resp['digest-uri'] = quote(self._digest_uri) a2 = b'AUTHENTICATE:' + self._digest_uri @@ -320,7 +330,7 @@ resp['response'] = self.gen_hash(a2) return b','.join( [ - bytes(k) + b'=' + bytes(v) + to_bytes(k) + b'=' + to_bytes(v) for k, v in resp.items() ] ) @@ -343,7 +353,7 @@ escaped = False for c in challenge: if sys.version_info[0] == 3: - c = bytes([c]) + c = to_bytes([c]) if in_var: if c.isspace(): continue @@ -386,9 +396,9 @@ def gen_hash(self, a2): if not getattr(self, 'key_hash', None): key_hash = hashlib.md5() - user = bytes(self.username) - password = bytes(self.password) - realm = bytes(self.realm) + user = to_bytes(self.username) + password = to_bytes(self.password) + realm = to_bytes(self.realm) kh = user + b':' + realm + b':' + password key_hash.update(kh) self.key_hash = key_hash.digest() @@ -398,14 +408,14 @@ a1.update(a1h) response = hashlib.md5() self._a1 = a1.digest() - rv = bytes(a1.hexdigest().lower()) + rv = to_bytes(a1.hexdigest().lower()) rv += b':' + self.nonce - rv += b':' + bytes('%08x' % self.nc) + rv += b':' + to_bytes('%08x' % self.nc) rv += b':' + self.cnonce rv += b':' + self.qop - rv += b':' + bytes(hashlib.md5(a2).hexdigest().lower()) + rv += b':' + to_bytes(hashlib.md5(a2).hexdigest().lower()) response.update(rv) - return bytes(response.hexdigest().lower()) + return to_bytes(response.hexdigest().lower()) def authenticate_server(self, cmp_hash): a2 = b':' + self._digest_uri diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/setup.cfg new/pure-sasl-0.6.1/setup.cfg --- old/pure-sasl-0.5.1/setup.cfg 2018-05-19 01:21:47.000000000 +0200 +++ new/pure-sasl-0.6.1/setup.cfg 2019-02-21 22:52:32.000000000 +0100 @@ -4,5 +4,4 @@ [egg_info] tag_build = tag_date = 0 -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pure-sasl-0.5.1/setup.py new/pure-sasl-0.6.1/setup.py --- old/pure-sasl-0.5.1/setup.py 2018-03-09 06:03:17.000000000 +0100 +++ new/pure-sasl-0.6.1/setup.py 2019-02-21 22:47:20.000000000 +0100 @@ -3,7 +3,9 @@ from setuptools import setup +import platform import puresasl +import sys setup(name='pure-sasl', version=puresasl.__version__, @@ -22,7 +24,7 @@ keywords='sasl', packages=['puresasl'], extras_require={ - 'GSSAPI': ['kerberos>=1.3.0'] + 'GSSAPI': ["winkerberos==0.7.0"] if platform.system() == 'Windows' else ['kerberos>=1.3.0'] }, classifiers=[ 'Development Status :: 4 - Beta',