Hello community, here is the log from the commit of package python-nbxmpp for openSUSE:Factory checked in at 2015-08-01 11:35:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-01-12 09:49:49.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python-nbxmpp.new/python-nbxmpp.changes 2015-08-01 11:35:11.000000000 +0200 @@ -1,0 +2,7 @@ +Mon Jul 20 11:52:43 UTC 2015 - sor.alexei@meowr.ru + +- Update to 0.5.3: + * Fix issue with pyopenssl 0.15.1. + * Fix decoding issues. + +------------------------------------------------------------------- Old: ---- nbxmpp-0.5.2.tar.gz New: ---- nbxmpp-0.5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-nbxmpp.spec ++++++ --- /var/tmp/diff_new_pack.4mEzdo/_old 2015-08-01 11:35:12.000000000 +0200 +++ /var/tmp/diff_new_pack.4mEzdo/_new 2015-08-01 11:35:12.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-nbxmpp # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 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 @@ -18,7 +18,7 @@ %define _name nbxmpp Name: python-nbxmpp -Version: 0.5.2 +Version: 0.5.3 Release: 0 Summary: XMPP library by Gajim team License: GPL-3.0+ @@ -28,11 +28,8 @@ BuildRequires: fdupes BuildRequires: python-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} <= 1110 -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%else BuildArch: noarch -%endif +%py_requires %description Python-nbxmpp is a Python library that provides a way for Python @@ -41,7 +38,7 @@ %package doc Summary: Nbxmpp Documentation -Group: Development/Languages/Python +Group: Documentation/Other %description doc This packages provides documentation of Nbxmpp API. ++++++ nbxmpp-0.5.2.tar.gz -> nbxmpp-0.5.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/ChangeLog new/nbxmpp-0.5.3/ChangeLog --- old/nbxmpp-0.5.2/ChangeLog 2014-12-29 14:48:29.000000000 +0100 +++ new/nbxmpp-0.5.3/ChangeLog 2015-07-16 21:07:45.000000000 +0200 @@ -1,3 +1,9 @@ +python-nbxmpp 0.5.3 (13 July 2015) + + * Fix receiving long utf8 strings under py3 + * Fix issue with pyopenssl 0.15.1 + * Fix decoding issues + python-nbxmpp 0.5.2 (27 December 2014) * Fix BOSH HTTP requests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/PKG-INFO new/nbxmpp-0.5.3/PKG-INFO --- old/nbxmpp-0.5.2/PKG-INFO 2014-12-29 14:49:20.000000000 +0100 +++ new/nbxmpp-0.5.3/PKG-INFO 2015-07-16 21:10:36.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: nbxmpp -Version: 0.5.2 +Version: 0.5.3 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.2/nbxmpp/__init__.py new/nbxmpp-0.5.3/nbxmpp/__init__.py --- old/nbxmpp-0.5.2/nbxmpp/__init__.py 2014-12-29 14:48:29.000000000 +0100 +++ new/nbxmpp-0.5.3/nbxmpp/__init__.py 2015-07-16 21:05:50.000000000 +0200 @@ -17,4 +17,4 @@ from .plugin import PlugIn from .smacks import Smacks -__version__ = "0.5.2" +__version__ = "0.5.3" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/nbxmpp/auth_nb.py new/nbxmpp-0.5.3/nbxmpp/auth_nb.py --- old/nbxmpp-0.5.2/nbxmpp/auth_nb.py 2014-12-29 14:48:29.000000000 +0100 +++ new/nbxmpp-0.5.3/nbxmpp/auth_nb.py 2015-06-14 14:26:56.000000000 +0200 @@ -422,7 +422,7 @@ r = 'c=' + scram_base64(self.scram_gs2) else: # Channel binding data goes in here too. - r = 'c=' + scram_base64(self.scram_gs2 + r = 'c=' + scram_base64(bytes(self.scram_gs2) + self.channel_binding) r += ',r=' + data['r'] self.scram_soup += r diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/nbxmpp/client_nb.py new/nbxmpp-0.5.3/nbxmpp/client_nb.py --- old/nbxmpp-0.5.2/nbxmpp/client_nb.py 2014-04-09 17:33:08.000000000 +0200 +++ new/nbxmpp-0.5.3/nbxmpp/client_nb.py 2015-03-17 20:32:43.000000000 +0100 @@ -150,7 +150,7 @@ def connect(self, on_connect, on_connect_failure, hostname=None, port=5222, on_proxy_failure=None, on_stream_error_cb=None, proxy=None, - secure_tuple=('tls', None, None, None)): + secure_tuple=('tls', None, None, None, None)): """ Open XMPP connection (open XML streams in both directions) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/nbxmpp/roster_nb.py new/nbxmpp-0.5.3/nbxmpp/roster_nb.py --- old/nbxmpp-0.5.2/nbxmpp/roster_nb.py 2014-04-09 17:32:20.000000000 +0200 +++ new/nbxmpp-0.5.3/nbxmpp/roster_nb.py 2015-05-10 14:45:29.000000000 +0200 @@ -242,16 +242,16 @@ """ Rename multiple contacts and sets their group lists """ - iq = Iq('set', NS_ROSTER) - query = iq.getTag('query') for i in items: + iq = Iq('set', NS_ROSTER) + query = iq.getTag('query') attrs = {'jid': i['jid']} if i['name']: attrs['name'] = i['name'] item = query.setTag('item', attrs) for group in i['groups']: item.addChild(node=Node('group', payload=[group])) - self._owner.send(iq) + self._owner.send(iq) def getItems(self): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/nbxmpp/transports_nb.py new/nbxmpp-0.5.3/nbxmpp/transports_nb.py --- old/nbxmpp-0.5.2/nbxmpp/transports_nb.py 2014-11-08 22:21:04.000000000 +0100 +++ new/nbxmpp-0.5.3/nbxmpp/transports_nb.py 2015-07-16 21:07:52.000000000 +0200 @@ -37,6 +37,8 @@ import time import traceback import base64 +import sys +import locale try: from urllib.parse import urlparse @@ -82,6 +84,15 @@ proxy_user, proxy_pass = proxy['user'], proxy['pass'] return tcp_host, tcp_port, proxy_user, proxy_pass +def decode_py2(string, encoding): + # decodes string into unicode if in py2 + # py3 has unicode strings by default + try: + string = string.decode(encoding) + except AttributeError: + pass + return string + #: timeout to connect to the server socket, it doesn't include auth CONNECT_TIMEOUT_SECONDS = 30 @@ -369,7 +380,8 @@ self._sock.setblocking(False) self._sock.connect((self.server, self.port)) except Exception as exc: - errnum, errstr = exc.errno, exc.strerror + errnum, errstr = exc.errno, \ + decode_py2(exc.strerror, locale.getpreferredencoding()) if errnum in (errno.EINPROGRESS, errno.EALREADY, errno.EWOULDBLOCK): # connecting in progress @@ -472,7 +484,7 @@ self._sock.shutdown(socket.SHUT_RDWR) self._sock.close() except socket.error as e: - errstr = e.strerror + errstr = decode_py2(e.strerror, locale.getpreferredencoding()) log.info('Error while disconnecting socket: %s' % errstr) self.fd = -1 NonBlockingTransport.disconnect(self, do_callback) @@ -567,7 +579,7 @@ self.sent_bytes_buff = b'' # try to decode sent data try: - sent_data = sent_data.decode('utf-8') + sent_data = decode_py2(sent_data, 'utf-8') except UnicodeDecodeError: for i in range(-1, -4, -1): char = sent_data[i] @@ -575,7 +587,7 @@ self.sent_bytes_buff = sent_data[i:] sent_data = sent_data[:i] break - sent_data = sent_data.decode('utf-8') + sent_data = decode_py2(sent_data, 'utf-8') self.raise_event(DATA_SENT, sent_data) except Exception: @@ -600,7 +612,8 @@ 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 + errnum, errstr = e.errno,\ + decode_py2(e.strerror, locale.getpreferredencoding()) if received == '': errstr = 'zero bytes on recv' @@ -636,15 +649,17 @@ # try to decode data try: - received = received.decode('utf-8') + received = decode_py2(received, 'utf-8') except UnicodeDecodeError: for i in range(-1, -4, -1): char = received[i] - if ord(char) & 0xc0 == 0xc0: + if sys.version_info[0] < 3: # with py2 we get a str + char = ord(char) + if char & 0xc0 == 0xc0: self.received_bytes_buff = received[i:] received = received[:i] break - received = received.decode('utf-8') + received = decode_py2(received, 'utf-8') # pass received data to owner if self.on_receive: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbxmpp-0.5.2/setup.py new/nbxmpp-0.5.3/setup.py --- old/nbxmpp-0.5.2/setup.py 2014-12-29 14:48:29.000000000 +0100 +++ new/nbxmpp-0.5.3/setup.py 2015-07-16 21:05:58.000000000 +0200 @@ -3,7 +3,7 @@ from distutils.core import setup setup(name='nbxmpp', - version='0.5.2', + version='0.5.3', description='Non blocking Jabber/XMPP module', author='Yann Leboulanger', author_email='asterix@lagaule.org',