Hello community, here is the log from the commit of package python-nbxmpp for openSUSE:Factory checked in at 2015-01-12 09:49:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-nbxmpp (Old) and /work/SRC/openSUSE:Factory/.python-nbxmpp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbxmpp" Changes: -------- --- /work/SRC/openSUSE:Factory/python-nbxmpp/python-nbxmpp.changes 2014-10-18 09:10:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-nbxmpp.new/python-nbxmpp.changes 2015-01-12 09:49:49.000000000 +0100 @@ -1,0 +2,8 @@ +Sat Jan 10 13:20:09 UTC 2015 - sor.ale...@meowr.ru + +- Update to 0.5.2: + * Fix BOSH HTTP requests. + * Fix handling of binary SASL data for mechanism GSSAPI. + * Update MAM namespace. + +------------------------------------------------------------------- Old: ---- nbxmpp-0.5.1.tar.gz New: ---- nbxmpp-0.5.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-nbxmpp.spec ++++++ --- /var/tmp/diff_new_pack.NeuvFa/_old 2015-01-12 09:49:50.000000000 +0100 +++ /var/tmp/diff_new_pack.NeuvFa/_new 2015-01-12 09:49:50.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-nbxmpp # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define _name nbxmpp Name: python-nbxmpp -Version: 0.5.1 +Version: 0.5.2 Release: 0 Summary: XMPP library by Gajim team License: GPL-3.0+ @@ -64,6 +64,7 @@ %files doc %defattr(-,root,root) -%doc ChangeLog README doc/apidocs doc/examples +%doc ChangeLog README +%doc doc/apidocs doc/examples %changelog ++++++ nbxmpp-0.5.1.tar.gz -> nbxmpp-0.5.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/ChangeLog new/nbxmpp-0.5.2/ChangeLog --- old/nbxmpp-0.5.1/ChangeLog 2014-10-04 22:02:36.000000000 +0200 +++ new/nbxmpp-0.5.2/ChangeLog 2014-12-29 14:48:29.000000000 +0100 @@ -1,3 +1,9 @@ +python-nbxmpp 0.5.2 (27 December 2014) + + * Fix BOSH HTTP requests + * Fix handling of binary SASL data for mechanism GSSAPI + * Update MAM namespace + python-nbxmpp 0.5.1 (04 October 2014) * Fix printing network errors in a non-utf-8 console diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/PKG-INFO new/nbxmpp-0.5.2/PKG-INFO --- old/nbxmpp-0.5.1/PKG-INFO 2014-10-05 18:58:20.000000000 +0200 +++ new/nbxmpp-0.5.2/PKG-INFO 2014-12-29 14:49:20.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: nbxmpp -Version: 0.5.1 +Version: 0.5.2 Summary: Non blocking Jabber/XMPP module Home-page: http://python-nbxmpp.gajim.org Author: Yann Leboulanger diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/nbxmpp/__init__.py new/nbxmpp-0.5.2/nbxmpp/__init__.py --- old/nbxmpp-0.5.1/nbxmpp/__init__.py 2014-10-04 22:01:23.000000000 +0200 +++ new/nbxmpp-0.5.2/nbxmpp/__init__.py 2014-12-29 14:48:29.000000000 +0100 @@ -17,4 +17,4 @@ from .plugin import PlugIn from .smacks import Smacks -__version__ = "0.5.1" +__version__ = "0.5.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/nbxmpp/auth_nb.py new/nbxmpp-0.5.2/nbxmpp/auth_nb.py --- old/nbxmpp-0.5.1/nbxmpp/auth_nb.py 2014-04-24 21:32:10.000000000 +0200 +++ new/nbxmpp-0.5.2/nbxmpp/auth_nb.py 2014-12-29 14:48:29.000000000 +0100 @@ -301,7 +301,11 @@ split('\n')) incoming_data = challenge.getData() - data=base64.b64decode(incoming_data.encode('utf-8')).decode('utf-8') + data=base64.b64decode(incoming_data.encode('utf-8')) + + if self.mechanism != 'GSSAPI': + data=data.decode('utf-8') + ### Handle Auth result def on_auth_fail(reason): log.info('Failed SASL authentification: %s' % reason) @@ -352,7 +356,10 @@ raise NodeProcessed ### Perform auth step - log.info('Got challenge:' + data) + if self.mechanism != 'GSSAPI': + log.info('Got challenge:' + data) + else: + log.info('Got challenge') if self.mechanism == 'GSSAPI': if self.gss_step == GSS_STATE_STEP: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/nbxmpp/protocol.py new/nbxmpp-0.5.2/nbxmpp/protocol.py --- old/nbxmpp-0.5.1/nbxmpp/protocol.py 2014-04-24 21:27:35.000000000 +0200 +++ new/nbxmpp-0.5.2/nbxmpp/protocol.py 2014-12-29 14:48:29.000000000 +0100 @@ -100,7 +100,7 @@ NS_JINGLE_IBB = 'urn:xmpp:jingle:transports:ibb:1' # XEP-0261 NS_LAST = 'jabber:iq:last' NS_LOCATION = 'http://jabber.org/protocol/geoloc' # XEP-0080 -NS_MAM = 'urn:xmpp:mam:tmp' # XEP-0313 +NS_MAM = 'urn:xmpp:mam:0' # XEP-0313 NS_MESSAGE = 'message' # Jabberd2 NS_MOOD = 'http://jabber.org/protocol/mood' # XEP-0107 NS_MUC = 'http://jabber.org/protocol/muc' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/nbxmpp/transports_nb.py new/nbxmpp-0.5.2/nbxmpp/transports_nb.py --- old/nbxmpp-0.5.1/nbxmpp/transports_nb.py 2014-10-04 22:18:57.000000000 +0200 +++ new/nbxmpp-0.5.2/nbxmpp/transports_nb.py 2014-11-08 22:21:04.000000000 +0100 @@ -37,7 +37,6 @@ import time import traceback import base64 -import locale try: from urllib.parse import urlparse @@ -370,8 +369,7 @@ self._sock.setblocking(False) self._sock.connect((self.server, self.port)) except Exception as exc: - errnum, errstr = exc.errno,\ - exc.strerror.decode(locale.getpreferredencoding()) + errnum, errstr = exc.errno, exc.strerror if errnum in (errno.EINPROGRESS, errno.EALREADY, errno.EWOULDBLOCK): # connecting in progress @@ -474,7 +472,7 @@ self._sock.shutdown(socket.SHUT_RDWR) self._sock.close() except socket.error as e: - errstr = e.strerror.decode(locale.getpreferredencoding()) + errstr = e.strerror log.info('Error while disconnecting socket: %s' % errstr) self.fd = -1 NonBlockingTransport.disconnect(self, do_callback) @@ -558,7 +556,7 @@ return None self.sendbuff = self.sendqueue.pop(0) try: - send_count = self._send(self.sendbuff.encode("utf-8")) + send_count = self._send(self.sendbuff) if send_count: sent_data = self.sendbuff[:send_count] self.sendbuff = self.sendbuff[send_count:] @@ -602,8 +600,7 @@ except tls_nb.SSLWrapper.Error as e: log.info("_do_receive, caught SSL error, got %s:" % received, exc_info=True) - errnum, errstr = e.errno,\ - e.strerror.decode(locale.getpreferredencoding()) + errnum, errstr = e.errno, e.strerror if received == '': errstr = 'zero bytes on recv' @@ -766,9 +763,7 @@ Builds http message with given body. Values for headers and status line fields are taken from class variables """ - absolute_uri = '%s://%s:%s%s' % (self.http_protocol, self.http_host, - self.http_port, self.http_path) - headers = ['%s %s %s' % (method, absolute_uri, self.http_version), + headers = ['%s %s %s' % (method, self.http_path, self.http_version), 'Host: %s:%s' % (self.http_host, self.http_port), 'User-Agent: Gajim', 'Content-Type: text/xml; charset=utf-8', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/nbxmpp/xmpp_stringprep.py new/nbxmpp-0.5.2/nbxmpp/xmpp_stringprep.py --- old/nbxmpp-0.5.1/nbxmpp/xmpp_stringprep.py 2014-09-26 22:58:40.000000000 +0200 +++ new/nbxmpp-0.5.2/nbxmpp/xmpp_stringprep.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,246 +0,0 @@ -# -*- test-case-name: twisted.words.test.test_jabberxmppstringprep -*- -# -# Copyright (c) Twisted Matrix Laboratories. -# See LICENSE for details. - -import stringprep -from encodings import idna - -# We require Unicode version 3.2. -from unicodedata import ucd_3_2_0 as unicodedata - -from twisted.python.versions import Version -from twisted.python.deprecate import deprecatedModuleAttribute - -from zope.interface import Interface, implements - - -crippled = False -deprecatedModuleAttribute( - Version("Twisted", 13, 1, 0), - "crippled is always False", - __name__, - "crippled") - - - -class ILookupTable(Interface): - """ - Interface for character lookup classes. - """ - - def lookup(c): - """ - Return whether character is in this table. - """ - - - -class IMappingTable(Interface): - """ - Interface for character mapping classes. - """ - - def map(c): - """ - Return mapping for character. - """ - - - -class LookupTableFromFunction: - - implements(ILookupTable) - - def __init__(self, in_table_function): - self.lookup = in_table_function - - - -class LookupTable: - - implements(ILookupTable) - - def __init__(self, table): - self._table = table - - def lookup(self, c): - return c in self._table - - - -class MappingTableFromFunction: - - implements(IMappingTable) - - def __init__(self, map_table_function): - self.map = map_table_function - - - -class EmptyMappingTable: - - implements(IMappingTable) - - def __init__(self, in_table_function): - self._in_table_function = in_table_function - - def map(self, c): - if self._in_table_function(c): - return None - else: - return c - - - -class Profile: - def __init__(self, mappings=[], normalize=True, prohibiteds=[], - check_unassigneds=True, check_bidi=True): - self.mappings = mappings - self.normalize = normalize - self.prohibiteds = prohibiteds - self.do_check_unassigneds = check_unassigneds - self.do_check_bidi = check_bidi - - def prepare(self, string): - result = self.map(string) - if self.normalize: - result = unicodedata.normalize("NFKC", result) - self.check_prohibiteds(result) - if self.do_check_unassigneds: - self.check_unassigneds(result) - if self.do_check_bidi: - self.check_bidirectionals(result) - return result - - def map(self, string): - result = [] - - for c in string: - result_c = c - - for mapping in self.mappings: - result_c = mapping.map(c) - if result_c != c: - break - - if result_c is not None: - result.append(result_c) - - return u"".join(result) - - def check_prohibiteds(self, string): - for c in string: - for table in self.prohibiteds: - if table.lookup(c): - raise UnicodeError, "Invalid character %s" % repr(c) - - def check_unassigneds(self, string): - for c in string: - if stringprep.in_table_a1(c): - raise UnicodeError, "Unassigned code point %s" % repr(c) - - def check_bidirectionals(self, string): - found_LCat = False - found_RandALCat = False - - for c in string: - if stringprep.in_table_d1(c): - found_RandALCat = True - if stringprep.in_table_d2(c): - found_LCat = True - - if found_LCat and found_RandALCat: - raise UnicodeError, "Violation of BIDI Requirement 2" - - if found_RandALCat and not (stringprep.in_table_d1(string[0]) and - stringprep.in_table_d1(string[-1])): - raise UnicodeError, "Violation of BIDI Requirement 3" - - -class NamePrep: - """ Implements preparation of internationalized domain names. - - This class implements preparing internationalized domain names using the - rules defined in RFC 3491, section 4 (Conversion operations). - - We do not perform step 4 since we deal with unicode representations of - domain names and do not convert from or to ASCII representations using - punycode encoding. When such a conversion is needed, the C{idna} standard - library provides the C{ToUnicode()} and C{ToASCII()} functions. Note that - C{idna} itself assumes UseSTD3ASCIIRules to be false. - - The following steps are performed by C{prepare()}: - - - Split the domain name in labels at the dots (RFC 3490, 3.1) - - Apply nameprep proper on each label (RFC 3491) - - Enforce the restrictions on ASCII characters in host names by - assuming STD3ASCIIRules to be true. (STD 3) - - Rejoin the labels using the label separator U+002E (full stop). - - """ - - # Prohibited characters. - prohibiteds = [unichr(n) for n in range(0x00, 0x2c + 1) + - range(0x2e, 0x2f + 1) + - range(0x3a, 0x40 + 1) + - range(0x5b, 0x60 + 1) + - range(0x7b, 0x7f + 1) ] - - def prepare(self, string): - result = [] - - labels = idna.dots.split(string) - - if labels and len(labels[-1]) == 0: - trailing_dot = '.' - del labels[-1] - else: - trailing_dot = '' - - for label in labels: - result.append(self.nameprep(label)) - - return ".".join(result) + trailing_dot - - def check_prohibiteds(self, string): - for c in string: - if c in self.prohibiteds: - raise UnicodeError, "Invalid character %s" % repr(c) - - def nameprep(self, label): - label = idna.nameprep(label) - self.check_prohibiteds(label) - if label[0] == '-': - raise UnicodeError, "Invalid leading hyphen-minus" - if label[-1] == '-': - raise UnicodeError, "Invalid trailing hyphen-minus" - return label - - -C_11 = LookupTableFromFunction(stringprep.in_table_c11) -C_12 = LookupTableFromFunction(stringprep.in_table_c12) -C_21 = LookupTableFromFunction(stringprep.in_table_c21) -C_22 = LookupTableFromFunction(stringprep.in_table_c22) -C_3 = LookupTableFromFunction(stringprep.in_table_c3) -C_4 = LookupTableFromFunction(stringprep.in_table_c4) -C_5 = LookupTableFromFunction(stringprep.in_table_c5) -C_6 = LookupTableFromFunction(stringprep.in_table_c6) -C_7 = LookupTableFromFunction(stringprep.in_table_c7) -C_8 = LookupTableFromFunction(stringprep.in_table_c8) -C_9 = LookupTableFromFunction(stringprep.in_table_c9) - -B_1 = EmptyMappingTable(stringprep.in_table_b1) -B_2 = MappingTableFromFunction(stringprep.map_table_b2) - -nodeprep = Profile(mappings=[B_1, B_2], - prohibiteds=[C_11, C_12, C_21, C_22, - C_3, C_4, C_5, C_6, C_7, C_8, C_9, - LookupTable([u'"', u'&', u"'", u'/', - u':', u'<', u'>', u'@'])]) - -resourceprep = Profile(mappings=[B_1,], - prohibiteds=[C_12, C_21, C_22, - C_3, C_4, C_5, C_6, C_7, C_8, C_9]) - -nameprep = NamePrep() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.1/setup.py new/nbxmpp-0.5.2/setup.py --- old/nbxmpp-0.5.1/setup.py 2014-10-04 22:03:57.000000000 +0200 +++ new/nbxmpp-0.5.2/setup.py 2014-12-29 14:48:29.000000000 +0100 @@ -3,7 +3,7 @@ from distutils.core import setup setup(name='nbxmpp', - version='0.5.1', + version='0.5.2', description='Non blocking Jabber/XMPP module', author='Yann Leboulanger', author_email='aste...@lagaule.org', -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org