Hello community,

here is the log from the commit of package python3-pyzmq for openSUSE:Factory 
checked in at 2015-01-25 21:15:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pyzmq (Old)
 and      /work/SRC/openSUSE:Factory/.python3-pyzmq.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-pyzmq"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pyzmq/python3-pyzmq.changes      
2014-12-01 14:01:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-pyzmq.new/python3-pyzmq.changes 
2015-01-25 21:15:02.000000000 +0100
@@ -1,0 +2,14 @@
+Sun Jan 25 01:37:22 UTC 2015 - [email protected]
+
+- update to version 14.5.0:
+  * use pickle.DEFAULT_PROTOCOL by default in send_pickle
+  * with the release of pip-6, OS X wheels are only marked as
+    10.6-intel, indicating that they should be installable on any
+    newer or single-arch Python.
+  * raise SSHException on failed check of host key
+  * fix method name in utils.wi32.allow_interrupt
+  * fork-related fixes in garbage collection thread
+  * add missing import in zmq.__init__, causing failure to import in
+    some circumstances
+
+-------------------------------------------------------------------

Old:
----
  pyzmq-14.4.1.tar.gz

New:
----
  pyzmq-14.5.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-pyzmq.spec ++++++
--- /var/tmp/diff_new_pack.BfLQ0M/_old  2015-01-25 21:15:03.000000000 +0100
+++ /var/tmp/diff_new_pack.BfLQ0M/_new  2015-01-25 21:15:03.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python3-pyzmq
 #
-# 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
@@ -17,7 +17,7 @@
 
 
 Name:           python3-pyzmq
-Version:        14.4.1
+Version:        14.5.0
 Release:        0
 Summary:        Python bindings for 0MQ
 License:        LGPL-3.0+

++++++ pyzmq-14.4.1.tar.gz -> pyzmq-14.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/.travis.yml new/pyzmq-14.5.0/.travis.yml
--- old/pyzmq-14.4.1/.travis.yml        2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/.travis.yml        2015-01-20 00:07:59.000000000 +0100
@@ -17,15 +17,15 @@
 before_install:
   - sudo add-apt-repository -y ppa:shnatsel/dnscrypt
   - sudo apt-get update
-  - if [[ $ZMQ != 'bundled' ]]; then sudo apt-get install -qq libzmq3-dev 
libsodium-dev; fi
-  - if [[ $TRAVIS_PYTHON_VERSION != 'pypy' ]]; then pip install -q cython 
--install-option='--no-cython-compile'; fi
-
-  - if [[ $ZMQ == 'master' ]]; then git clone --depth 1 
https://github.com/zeromq/libzmq; fi
-  - if [[ $ZMQ == 'master' ]]; then sh -c 'cd libzmq; sh autogen.sh; 
./configure; make -j; sudo make install; sudo ldconfig'; fi
-  - pip install -q --use-mirrors nose
+  - 'if [[ $ZMQ != bundled ]]; then sudo apt-get install -qq libzmq3-dev 
libsodium-dev; fi'
+  - 'if [[ $TRAVIS_PYTHON_VERSION != pypy ]]; then wget 
https://github.com/minrk/travis-wheels/archive/master.zip -O wheels.zip && 
unzip wheels.zip; fi'
+  - 'if [[ $TRAVIS_PYTHON_VERSION != pypy ]]; then pip install -q -f 
travis-wheels-master/wheelhouse cython; fi'
+  - 'if [[ $ZMQ == master ]]; then wget 
https://github.com/zeromq/libzmq/archive/master.zip -O libzmq-master.zip && 
unzip libzmq-master.zip; fi'
+  - 'if [[ $ZMQ == master ]]; then sh -c "cd libzmq-master; sh autogen.sh; 
./configure; make -j; sudo make install; sudo ldconfig"; fi'
+  - pip install -q nose
 
 install:
-  - if [[ $ZMQ == 'master' ]]; then export ZMQ=/usr/local; fi
+  - 'if [[ $ZMQ == master ]]; then export ZMQ=/usr/local; fi'
   - python setup.py build_ext --inplace --zmq=$ZMQ
 
 matrix:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/MANIFEST.in new/pyzmq-14.5.0/MANIFEST.in
--- old/pyzmq-14.4.1/MANIFEST.in        2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/MANIFEST.in        2015-01-20 00:07:59.000000000 +0100
@@ -10,10 +10,10 @@
 include setupegg.py
 include zmqversion.py
 include tox.ini
-include tools
 include .travis.yml
 
 graft docs
+graft tools
 prune docs/build
 prune docs/gh-pages
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/PKG-INFO new/pyzmq-14.5.0/PKG-INFO
--- old/pyzmq-14.4.1/PKG-INFO   2014-10-31 19:10:50.000000000 +0100
+++ new/pyzmq-14.5.0/PKG-INFO   2015-01-20 00:08:24.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyzmq
-Version: 14.4.1
+Version: 14.5.0
 Summary: Python bindings for 0MQ
 Home-page: http://github.com/zeromq/pyzmq
 Author: Brian E. Granger, Min Ragan-Kelley
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/docs/source/changelog.rst 
new/pyzmq-14.5.0/docs/source/changelog.rst
--- old/pyzmq-14.4.1/docs/source/changelog.rst  2014-10-31 19:10:33.000000000 
+0100
+++ new/pyzmq-14.5.0/docs/source/changelog.rst  2015-01-20 00:07:59.000000000 
+0100
@@ -10,6 +10,23 @@
 `git log <https://github.com/zeromq/pyzmq/commits>`_
 
 
+14.5.0
+======
+
+Changes:
+
+- use pickle.DEFAULT_PROTOCOL by default in send_pickle
+- with the release of pip-6, OS X wheels are only marked as 10.6-intel,
+  indicating that they should be installable on any newer or single-arch 
Python.
+- raise SSHException on failed check of host key
+
+Bugfixes:
+
+- fix method name in utils.wi32.allow_interrupt
+- fork-related fixes in garbage collection thread
+- add missing import in ``zmq.__init__``, causing failure to import in some 
circumstances
+
+
 14.4.1
 ======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/docs/source/logging.rst 
new/pyzmq-14.5.0/docs/source/logging.rst
--- old/pyzmq-14.4.1/docs/source/logging.rst    2014-10-31 19:10:33.000000000 
+0100
+++ new/pyzmq-14.5.0/docs/source/logging.rst    2015-01-20 00:07:59.000000000 
+0100
@@ -14,7 +14,7 @@
 Python provides extensible logging facilities through its :py:mod:`logging` 
module. This
 module allows for easily extensible logging functionality through the use of
 :py:class:`~logging.Handler` objects. The most obvious case for hooking up 
pyzmq to
-logging would be to broadcast log messages over a PUB socket, so we have 
provides a
+logging would be to broadcast log messages over a PUB socket, so we have 
provided a
 :class:`.PUBHandler` class for doing just that.
 
 PUB/SUB and Topics
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/docs/source/serialization.rst 
new/pyzmq-14.5.0/docs/source/serialization.rst
--- old/pyzmq-14.4.1/docs/source/serialization.rst      2014-10-31 
19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/docs/source/serialization.rst      2015-01-20 
00:07:59.000000000 +0100
@@ -52,7 +52,7 @@
     def recv_zipped_pickle(socket, flags=0, protocol=-1):
         """inverse of send_zipped_pickle"""
         z = socket.recv(flags)
-        p = zlib.uncompress(z)
+        p = zlib.decompress(z)
         return pickle.loads(p)
 
 A common data structure in Python is the numpy array.  PyZMQ supports sending
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/setup.py new/pyzmq-14.5.0/setup.py
--- old/pyzmq-14.4.1/setup.py   2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/setup.py   2015-01-20 00:07:59.000000000 +0100
@@ -118,7 +118,7 @@
 
 # --- compiler settings -------------------------------------------------
 
-def bundled_settings():
+def bundled_settings(debug):
     """settings for linking extensions against bundled libzmq"""
     settings = {}
     settings['libraries'] = []
@@ -133,8 +133,12 @@
         # link against libzmq in build dir:
         plat = distutils.util.get_platform()
         temp = 'temp.%s-%s' % (plat, sys.version[0:3])
-        settings['libraries'].append('libzmq')
-        settings['library_dirs'].append(pjoin('build', temp, 'Release', 
'buildutils'))
+        if debug:
+            settings['libraries'].append('libzmq_d')
+            settings['library_dirs'].append(pjoin('build', temp, 'Debug', 
'buildutils'))
+        else:
+            settings['libraries'].append('libzmq')
+            settings['library_dirs'].append(pjoin('build', temp, 'Release', 
'buildutils'))
     
     return settings
 
@@ -264,7 +268,7 @@
         cfg = self.config
         
         if cfg['libzmq_extension']:
-            settings = bundled_settings()
+            settings = bundled_settings(self.debug)
         else:
             settings = settings_from_prefix(cfg['zmq_prefix'], 
self.bundle_libzmq_dylib)
     
@@ -945,46 +949,7 @@
             'sdist': CheckSDist, 'constants': ConstantsCommand,
         }
 
-if 'bdist_wheel' in sys.argv and sys.platform == 'darwin':
-    from wheel.bdist_wheel import bdist_wheel
-    
-    class bdist_wheel_mac_tag(bdist_wheel):
-        """add 'current' platform tags to wheels
-        
-        A 10.6-intel wheel works on all 10.X >= 10.6 and arch in 32,64,intel.
-        
-        Since that would produce a ludicrous filename, just add the two most 
common:
-        
-        - current-intel
-        - current-x86_64
-        
-        partial workaround for pypa/pip#1465
-        """
-        def get_tag(self):
-            import platform
-            impl, abi, plat = bdist_wheel.get_tag(self)
-            plat_tag_re = re.compile(r'macosx_(\d+)_(\d+)_(.+)')
-            m = plat_tag_re.match(plat)
-            if m:
-                plat_tags = [plat]
-                major, minor, arch = m.groups()
-                arches = [arch]
-                if arch == 'intel':
-                    arches.append('x86_64')
-                host_list = re.findall('\d+', platform.mac_ver()[0])
-                host = (int(host_list[0]), int(host_list[1]))
-                host_s = '%s_%s' % tuple(host_list[:2])
-                target = (int(major), int(minor))
-                if host > target or len(arches) > 1:
-                    for arch in arches:
-                        plat_tags.append('macosx_%s_%s' % (host_s, arch))
-                
-                plat = '.'.join(sorted(set(plat_tags)))
-            return (impl, abi, plat)
-    
-    cmdclass['bdist_wheel'] = bdist_wheel_mac_tag
-    
-    
+
 def makename(path, ext):
     return os.path.abspath(pjoin('zmq', *path)) + ext
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/tools/release_windows.bat 
new/pyzmq-14.5.0/tools/release_windows.bat
--- old/pyzmq-14.4.1/tools/release_windows.bat  1970-01-01 01:00:00.000000000 
+0100
+++ new/pyzmq-14.5.0/tools/release_windows.bat  2015-01-20 00:07:59.000000000 
+0100
@@ -0,0 +1,51 @@
+@echo off
+REM build a pyzmq release on Windows
+REM 32+64b eggs on Python 27, and wheels on 27, 34
+REM that's 6 bdists
+REM requires Windows SDK 7.0 (for py2) and 7.1 (for py3)
+REM and Python installed in the locations: C:\Python34 (32b) and 
C:\Python34_64 (64b)
+
+REM run with cmd /k tools/release_windows.bat
+
+setlocal EnableDelayedExpansion
+
+set SDKS=C:\Program Files\Microsoft SDKs\Windows
+set SDK7=%SDKS%\v7.0
+set SDK71=%SDKS%\v7.1
+set DISTUTILS_USE_SDK=1
+set UPLOAD=%~1
+set PYROOT=C:\
+
+for %%p in (34, 27) do (
+  if "%%p"=="27" (
+    set SDK=%SDK7%
+  ) else (
+    set SDK=%SDK71%
+  )
+  
+  if "%%p"=="34" (
+    set cmd=build bdist_wheel --zmq=bundled %UPLOAD%
+  ) else (
+    set cmd=build bdist_egg bdist_wheel --zmq=bundled %UPLOAD%
+  )
+  for %%b in (64, 32) do (
+    if "%%b"=="64" (
+      set SUFFIX=_64
+      set ARCH=/x64
+    ) else (
+      set SUFFIX=
+      set ARCH=/x86
+    )
+    set PY=%PYROOT%\Python%%p!SUFFIX!\Python
+    echo !PY! !SDK!
+    !PY! -m pip install --upgrade setuptools pip wheel
+    
+    @call "!SDK!\Bin\SetEnv.cmd" /release !ARCH!
+    if !errorlevel! neq 0 exit /b !errorlevel!
+    @echo on
+    !PY! setupegg.py !cmd!
+    @echo off
+    if !errorlevel! neq 0 exit !errorlevel!
+  )
+)
+exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/tools/tasks.py 
new/pyzmq-14.5.0/tools/tasks.py
--- old/pyzmq-14.4.1/tools/tasks.py     1970-01-01 01:00:00.000000000 +0100
+++ new/pyzmq-14.5.0/tools/tasks.py     2015-01-20 00:07:59.000000000 +0100
@@ -0,0 +1,221 @@
+#!/usr/bin/env python
+"""
+invoke script for releasing pyzmq
+
+usage:
+
+    invoke release 14.3.1
+
+"""
+
+# Copyright (C) PyZMQ Developers
+# Distributed under the terms of the Modified BSD License.
+
+
+from __future__ import print_function
+
+import glob
+import os
+import pipes
+import re
+import shutil
+import sys
+
+from contextlib import contextmanager
+from subprocess import check_call
+
+from invoke import task, run as invoke_run
+
+pjoin = os.path.join
+
+repo = "[email protected]:zeromq/pyzmq"
+
+py_exes = {
+    '2.7' : "/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7",
+    '3.4' : "/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4",
+    'pypy': "/usr/local/bin/pypy",
+}
+egg_pys = {'2.7'}
+
+tmp = "/tmp"
+env_root = os.path.join(tmp, 'envs')
+repo_root = pjoin(tmp, 'pyzmq-release')
+sdist_root = pjoin(tmp, 'pyzmq-sdist')
+
+def _py(py):
+    return py_exes.get(py, py)
+
+def run(cmd, **kwargs):
+    """wrapper around invoke.run that accepts a Popen list"""
+    if isinstance(cmd, list):
+        cmd = " ".join(pipes.quote(s) for s in cmd)
+    kwargs.setdefault('echo', True)
+    return invoke_run(cmd, **kwargs)
+
+@contextmanager
+def cd(path):
+    """Context manager for temporary CWD"""
+    cwd = os.getcwd()
+    os.chdir(path)
+    try:
+        yield
+    finally:
+        os.chdir(cwd)
+
+@task
+def clone_repo(reset=False):
+    """Clone the repo"""
+    if os.path.exists(repo_root) and reset:
+        shutil.rmtree(repo_root)
+    if os.path.exists(repo_root):
+        with cd(repo_root):
+            run("git pull")
+    else:
+        run("git clone %s %s" % (repo, repo_root))
+
+@task
+def patch_version(vs):
+    """Patch zmq/sugar/version.py for the current release"""
+    major, minor, patch = vs_to_tup(vs)
+    version_py = pjoin(repo_root, 'zmq', 'sugar', 'version.py')
+    print("patching %s with %s" % (version_py, vs))
+    # read version.py, minus VERSION_ constants
+    with open(version_py) as f:
+        pre_lines = []
+        post_lines = []
+        lines = pre_lines
+        for line in f:
+            if line.startswith("VERSION_"):
+                lines = post_lines
+            else:
+                lines.append(line)
+    
+    # write new version.py with given VERSION_ constants
+    with open(version_py, 'w') as f:
+        for line in pre_lines:
+            f.write(line)
+        f.write('VERSION_MAJOR = %s\n' % major)
+        f.write('VERSION_MINOR = %s\n' % minor)
+        f.write('VERSION_PATCH = %s\n' % patch)
+        f.write('VERSION_EXTRA = ""\n')
+        for line in post_lines:
+            f.write(line)
+
+@task
+def tag(vs, push=False):
+    """Make the tag (don't push)"""
+    patch_version(vs)
+    with cd(repo_root):
+        run('git commit -a -m "release {}"'.format(vs))
+        run('git tag -a -m "release {0}" v{0}'.format(vs))
+        if push:
+            run('git push')
+            run('git push --tags')
+
+def make_env(py_exe, *packages):
+    """Make a virtualenv
+    
+    Assumes `which python` has the `virtualenv` package
+    """
+    py_exe = py_exes.get(py_exe, py_exe)
+    
+    if not os.path.exists(env_root):
+        os.makedirs(env_root)
+    
+    env = os.path.join(env_root, os.path.basename(py_exe))
+    py = pjoin(env, 'bin', 'python')
+    # new env
+    if not os.path.exists(py):
+        run('python -m virtualenv {} -p {}'.format(
+            pipes.quote(env),
+            pipes.quote(py_exe),
+        ))
+        py = pjoin(env, 'bin', 'python')
+        run([py, '-V'])
+        install(py, 'pip', 'setuptools')
+    install(py, *packages)
+    return py
+
+def build_sdist(py, upload=False):
+    """Build sdists
+    
+    Returns the path to the tarball
+    """
+    install(py, 'cython')
+    with cd(repo_root):
+        cmd = [py, 'setup.py', 'sdist', '--formats=zip,gztar']
+        if upload:
+            cmd.append('upload')
+        run(cmd)
+    
+    return glob.glob(pjoin(repo_root, 'dist', '*.tar.gz'))[0]
+
+@task
+def sdist(vs, upload=False):
+    clone_repo()
+    patch_version(vs)
+    tag(vs, push=upload)
+    py = make_env('2.7', 'cython')
+    tarball = build_sdist(py, upload=upload)
+    return untar(tarball)
+
+def install(py, *packages):
+    packages
+    run([py, '-m', 'pip', 'install', '--upgrade'] + list(packages))
+
+def vs_to_tup(vs):
+    """version string to tuple"""
+    return re.findall(r'\d+', vs)
+
+def tup_to_vs(tup):
+    """tuple to version string"""
+    return '.'.join(tup)
+
+def untar(tarball):
+    if os.path.exists(sdist_root):
+        shutil.rmtree(sdist_root)
+    os.makedirs(sdist_root)
+    with cd(sdist_root):
+        run(['tar', '-xzf', tarball])
+    
+    return glob.glob(pjoin(sdist_root, '*'))[0]
+
+def bdist(py, upload=False, wheel=True, egg=False):
+    py = make_env(py, 'wheel')
+    cmd = [py, 'setupegg.py']
+    if wheel:
+        cmd.append('bdist_wheel')
+    if egg:
+        cmd.append('bdist_egg')
+    if upload:
+        cmd.append('upload')
+    cmd.append('--zmq=bundled')
+    
+    run(cmd)
+
+@task
+def release(vs, upload=False):
+    """Release pyzmq"""
+    # start from scrach with clone and envs
+    clone_repo(reset=True)
+    if os.path.exists(env_root):
+        shutil.rmtree(env_root)
+    
+    path = sdist(vs, upload=upload)
+    
+    with cd(path):
+        for v in py_exes:
+            bdist(v, upload=upload, wheel=True, egg=(v in egg_pys))
+    
+    if upload:
+        gh_pages()
+
+@task
+def gh_pages():
+    py = make_env('2.7', 'cython', 'sphinx', 'numpydoc', 'gevent')
+    bin = os.path.dirname(py)
+    with cd(repo_root):
+        run([py, 'setup.py', 'install', '--zmq=bundled'])
+    with cd(pjoin(repo_root, 'docs')):
+        os.environ['PATH'] = '%s:%s' % (bin, os.environ['PATH'])
+        run('make gh-pages')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/__init__.py 
new/pyzmq-14.5.0/zmq/__init__.py
--- old/pyzmq-14.4.1/zmq/__init__.py    2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/__init__.py    2015-01-20 00:07:59.000000000 +0100
@@ -46,6 +46,7 @@
 
 # zmq top-level imports
 
+from zmq import backend
 from zmq.backend import *
 from zmq import sugar
 from zmq.sugar import *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/_device.c 
new/pyzmq-14.5.0/zmq/backend/cython/_device.c
--- old/pyzmq-14.4.1/zmq/backend/cython/_device.c       2014-10-31 
19:10:48.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/_device.c       2015-01-20 
00:08:21.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -296,11 +295,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -535,8 +534,6 @@
   PyObject *(*recv)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, 
int __pyx_skip_dispatch, struct 
__pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args);
 };
 static struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket 
*__pyx_vtabptr_3zmq_7backend_6cython_6socket_Socket;
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -1907,7 +1904,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/_poll.c 
new/pyzmq-14.5.0/zmq/backend/cython/_poll.c
--- old/pyzmq-14.4.1/zmq/backend/cython/_poll.c 2014-10-31 19:10:48.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/_poll.c 2015-01-20 00:08:22.000000000 
+0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -297,11 +296,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -536,8 +535,6 @@
   PyObject *(*recv)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, 
int __pyx_skip_dispatch, struct 
__pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args);
 };
 static struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket 
*__pyx_vtabptr_3zmq_7backend_6cython_6socket_Socket;
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -2406,7 +2403,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/_version.c 
new/pyzmq-14.5.0/zmq/backend/cython/_version.c
--- old/pyzmq-14.4.1/zmq/backend/cython/_version.c      2014-10-31 
19:10:48.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/_version.c      2015-01-20 
00:08:22.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -292,11 +291,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -423,8 +422,6 @@
 };
 
 /*--- Type declarations ---*/
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -855,7 +852,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/constants.c 
new/pyzmq-14.5.0/zmq/backend/cython/constants.c
--- old/pyzmq-14.4.1/zmq/backend/cython/constants.c     2014-10-31 
19:10:49.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/constants.c     2015-01-20 
00:08:22.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -292,11 +291,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -424,8 +423,6 @@
 };
 
 /*--- Type declarations ---*/
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -3504,7 +3501,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/context.c 
new/pyzmq-14.5.0/zmq/backend/cython/context.c
--- old/pyzmq-14.4.1/zmq/backend/cython/context.c       2014-10-31 
19:10:49.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/context.c       2015-01-20 
00:08:23.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -298,11 +297,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -475,8 +474,6 @@
 static CYTHON_INLINE int 
__pyx_f_3zmq_7backend_6cython_7context_7Context__term(struct 
__pyx_obj_3zmq_7backend_6cython_7context_Context *);
 static CYTHON_INLINE void 
__pyx_f_3zmq_7backend_6cython_7context_7Context__add_socket(struct 
__pyx_obj_3zmq_7backend_6cython_7context_Context *, void *);
 static CYTHON_INLINE void 
__pyx_f_3zmq_7backend_6cython_7context_7Context__remove_socket(struct 
__pyx_obj_3zmq_7backend_6cython_7context_Context *, void *);
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -3371,7 +3368,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/error.c 
new/pyzmq-14.5.0/zmq/backend/cython/error.c
--- old/pyzmq-14.4.1/zmq/backend/cython/error.c 2014-10-31 19:10:49.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/error.c 2015-01-20 00:08:23.000000000 
+0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -292,11 +291,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -423,8 +422,6 @@
 };
 
 /*--- Type declarations ---*/
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -1030,7 +1027,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/message.c 
new/pyzmq-14.5.0/zmq/backend/cython/message.c
--- old/pyzmq-14.4.1/zmq/backend/cython/message.c       2014-10-31 
19:10:50.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/message.c       2015-01-20 
00:08:23.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -298,11 +297,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -502,8 +501,6 @@
 };
 static struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame 
*__pyx_vtabptr_3zmq_7backend_6cython_7message_Frame;
 static PyObject 
*__pyx_f_3zmq_7backend_6cython_7message_5Frame__getbuffer(struct 
__pyx_obj_3zmq_7backend_6cython_7message_Frame *);
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -6648,7 +6645,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/socket.c 
new/pyzmq-14.5.0/zmq/backend/cython/socket.c
--- old/pyzmq-14.4.1/zmq/backend/cython/socket.c        2014-10-31 
19:10:50.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/socket.c        2015-01-20 
00:08:24.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -299,11 +298,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -645,8 +644,6 @@
   PyObject *(*recv)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, 
int __pyx_skip_dispatch, struct 
__pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args);
 };
 static struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket 
*__pyx_vtabptr_3zmq_7backend_6cython_6socket_Socket;
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -9155,7 +9152,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/backend/cython/utils.c 
new/pyzmq-14.5.0/zmq/backend/cython/utils.c
--- old/pyzmq-14.4.1/zmq/backend/cython/utils.c 2014-10-31 19:10:50.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/backend/cython/utils.c 2015-01-20 00:08:24.000000000 
+0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -292,11 +291,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -437,8 +436,6 @@
   void *watch;
 };
 
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -911,9 +908,9 @@
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_FromString(__pyx_v_public_key); if 
(unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; 
__pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_public_key); if 
(unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; 
__pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = __Pyx_PyObject_FromString(__pyx_v_secret_key); if 
(unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; 
__pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_secret_key); if 
(unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; 
__pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = 
__pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
@@ -1852,7 +1849,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/devices/monitoredqueue.c 
new/pyzmq-14.5.0/zmq/devices/monitoredqueue.c
--- old/pyzmq-14.4.1/zmq/devices/monitoredqueue.c       2014-10-31 
19:10:48.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/devices/monitoredqueue.c       2015-01-20 
00:08:21.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.21.1 */
+/* Generated by Cython 0.21.2 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -19,7 +19,7 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_21_1"
+#define CYTHON_ABI "0_21_2"
 #include <stddef.h>
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -203,7 +203,6 @@
   return value;
 }
 #endif
-#define __Pyx_void_to_None(void_result) (void_result, Py_INCREF(Py_None), 
Py_None)
 #ifdef __cplusplus
 template<typename T>
 void __Pyx_call_destructor(T* x) {
@@ -297,11 +296,11 @@
 #endif
 #define __Pyx_PyObject_AsSString(s)    ((signed char*) 
__Pyx_PyObject_AsString(s))
 #define __Pyx_PyObject_AsUString(s)    ((unsigned char*) 
__Pyx_PyObject_AsString(s))
-#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const 
char*)s)
-#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
-#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
-#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
-#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const 
char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const 
char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const 
char*)s)
 #if PY_MAJOR_VERSION < 3
 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 {
@@ -537,8 +536,6 @@
   PyObject *(*recv)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, 
int __pyx_skip_dispatch, struct 
__pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args);
 };
 static struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket 
*__pyx_vtabptr_3zmq_7backend_6cython_6socket_Socket;
-
-/* --- Runtime support code (head) --- */
 #ifndef CYTHON_REFNANNY
   #define CYTHON_REFNANNY 0
 #endif
@@ -4370,7 +4367,7 @@
   #endif
 }
 
-/* --- Runtime support code --- */
+/* Runtime support code */
 #if CYTHON_REFNANNY
 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
     PyObject *m = NULL, *p = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/ssh/tunnel.py 
new/pyzmq-14.5.0/zmq/ssh/tunnel.py
--- old/pyzmq-14.4.1/zmq/ssh/tunnel.py  2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/ssh/tunnel.py  2015-01-20 00:07:59.000000000 +0100
@@ -23,12 +23,14 @@
     with warnings.catch_warnings():
         warnings.simplefilter('ignore', DeprecationWarning)
         import paramiko
+        SSHException = paramiko.ssh_exception.SSHException
 except ImportError:
     paramiko = None
+    class SSHException(Exception):
+        pass
 else:
     from .forward import forward_tunnel
 
-
 try:
     import pexpect
 except ImportError:
@@ -87,11 +89,14 @@
     # pop SSH_ASKPASS from env
     env = os.environ.copy()
     env.pop('SSH_ASKPASS', None)
-    
+
+    ssh_newkey = 'Are you sure you want to continue connecting'
     p = pexpect.spawn(cmd, env=env)
     while True:
         try:
-            p.expect('[Pp]assword:', timeout=.1)
+            i = p.expect([ssh_newkey, '[Pp]assword:'], timeout=.1)
+            if i==0:
+                raise SSHException('The authenticity of the host can\'t be 
established.')
         except pexpect.TIMEOUT:
             continue
         except pexpect.EOF:
@@ -225,11 +230,14 @@
     env = os.environ.copy()
     env.pop('SSH_ASKPASS', None)
     
+    ssh_newkey = 'Are you sure you want to continue connecting'
     tunnel = pexpect.spawn(cmd, env=env)
     failed = False
     while True:
         try:
-            tunnel.expect('[Pp]assword:', timeout=.1)
+            i = tunnel.expect([ssh_newkey, '[Pp]assword:'], timeout=.1)
+            if i==0:
+                raise SSHException('The authenticity of the host can\'t be 
established.')
         except pexpect.TIMEOUT:
             continue
         except pexpect.EOF:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/sugar/socket.py 
new/pyzmq-14.5.0/zmq/sugar/socket.py
--- old/pyzmq-14.4.1/zmq/sugar/socket.py        2014-10-31 19:10:33.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/sugar/socket.py        2015-01-20 00:07:59.000000000 
+0100
@@ -33,6 +33,11 @@
     cPickle = None
     import pickle
 
+try:
+    DEFAULT_PROTOCOL = pickle.DEFAULT_PROTOCOL
+except AttributeError:
+    DEFAULT_PROTOCOL = pickle.HIGHEST_PROTOCOL
+
 
 class Socket(SocketBase, AttributeSetter):
     """The ZMQ socket object
@@ -346,7 +351,7 @@
     
     recv_unicode = recv_string
     
-    def send_pyobj(self, obj, flags=0, protocol=-1):
+    def send_pyobj(self, obj, flags=0, protocol=DEFAULT_PROTOCOL):
         """send a Python object as a message using pickle to serialize
 
         Parameters
@@ -356,9 +361,8 @@
         flags : int
             Any valid send flag.
         protocol : int
-            The pickle protocol number to use. Default of -1 will select
-            the highest supported number. Use 0 for multiple platform
-            support.
+            The pickle protocol number to use. The default is 
pickle.DEFAULT_PROTOCOl
+            where defined, and pickle.HIGHEST_PROTOCOL elsewhere.
         """
         msg = pickle.dumps(obj, protocol)
         return self.send(msg, flags)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/sugar/version.py 
new/pyzmq-14.5.0/zmq/sugar/version.py
--- old/pyzmq-14.4.1/zmq/sugar/version.py       2014-10-31 19:10:35.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/sugar/version.py       2015-01-20 00:08:01.000000000 
+0100
@@ -8,8 +8,8 @@
 
 
 VERSION_MAJOR = 14
-VERSION_MINOR = 4
-VERSION_PATCH = 1
+VERSION_MINOR = 5
+VERSION_PATCH = 0
 VERSION_EXTRA = ""
 __version__ = '%i.%i.%i' % (VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/tests/test_socket.py 
new/pyzmq-14.5.0/zmq/tests/test_socket.py
--- old/pyzmq-14.4.1/zmq/tests/test_socket.py   2014-10-31 19:10:33.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/tests/test_socket.py   2015-01-20 00:07:59.000000000 
+0100
@@ -173,7 +173,6 @@
         "test set/getsockopt roundtrip."
         p = self.context.socket(zmq.PUB)
         self.sockets.append(p)
-        self.assertEqual(p.getsockopt(zmq.LINGER), -1)
         p.setsockopt(zmq.LINGER, 11)
         self.assertEqual(p.getsockopt(zmq.LINGER), 11)
     
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/utils/garbage.py 
new/pyzmq-14.5.0/zmq/utils/garbage.py
--- old/pyzmq-14.4.1/zmq/utils/garbage.py       2014-10-31 19:10:33.000000000 
+0100
+++ new/pyzmq-14.5.0/zmq/utils/garbage.py       2015-01-20 00:07:59.000000000 
+0100
@@ -31,12 +31,14 @@
     def run(self):
         # detect fork at begining of the thread
         if getpid is None or getpid() != self.pid:
+            self.ready.set()
             return
-        s = self.gc.context.socket(zmq.PULL)
-        s.linger = 0
-        s.bind(self.gc.url)
-
-        self.ready.set()
+        try:
+            s = self.gc.context.socket(zmq.PULL)
+            s.linger = 0
+            s.bind(self.gc.url)
+        finally:
+            self.ready.set()
         
         while True:
             # detect fork
@@ -110,6 +112,9 @@
         """stop the garbage-collection thread"""
         if not self.is_alive():
             return
+        self._stop()
+    
+    def _stop(self):
         push = self.context.socket(zmq.PUSH)
         push.connect(self.url)
         push.send(b'DIE')
@@ -117,6 +122,7 @@
         self.thread.join()
         self.context.term()
         self.refs.clear()
+        self.context = None
     
     def start(self):
         """Start a new garbage collection thread.
@@ -124,6 +130,10 @@
         Creates a new zmq Context used for garbage collection.
         Under most circumstances, this will only be called once per process.
         """
+        if self.thread is not None and self.pid != getpid():
+            # It's re-starting, must free earlier thread's context
+            # since a fork probably broke it
+            self._stop()
         self.pid = getpid()
         self.refs = {}
         self.thread = GarbageCollectorThread(self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyzmq-14.4.1/zmq/utils/win32.py 
new/pyzmq-14.5.0/zmq/utils/win32.py
--- old/pyzmq-14.4.1/zmq/utils/win32.py 2014-10-31 19:10:33.000000000 +0100
+++ new/pyzmq-14.5.0/zmq/utils/win32.py 2015-01-20 00:07:59.000000000 +0100
@@ -94,7 +94,7 @@
     class allow_interrupt(_allow_interrupt):
         __doc__ = _allow_interrupt.__doc__
 
-        def init_action(self, action):
+        def _init_action(self, action):
             if action is None:
                 action = lambda: None
             self.action = action

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to