pkgsrc/net/py-zmq/Makefile

26 lines
760 B
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.36 2022/07/02 09:31:44 adam Exp $
DISTNAME= pyzmq-23.2.0
PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/^py//}
Simplify PKGNAME regex. CATEGORIES+=python. Updated to latest release, 14.3.0. From docs/source/changelog.rst: 14.3.0 ====== - PyZMQ no longer calls :meth:`Socket.close` or :meth:`Context.term` during process cleanup. Changes to garbage collection in Python 3.4 make this impossible to do sensibly. - :meth:`ZMQStream.close` closes its socket immediately, rather than scheduling a timeout. - Raise the original ImportError when importing zmq fails. Should be more informative than `no module cffi...`. .. warning:: Users of Python 3.4 should not use pyzmq < 14.3, due to changes in garbage collection. 14.2.0 ====== New Stuff --------- - Raise new ZMQVersionError when a requested method is not supported by the linked libzmq. For backward compatibility, this subclasses NotImplementedError. Bugs Fixed ---------- - Memory leak introduced in pyzmq-14.0 in zero copy. - OverflowError on 32 bit systems in zero copy. 14.1.0 ====== Security -------- The headline features for 14.1 are adding better support for libzmq's security features. - When libzmq is bundled as a Python extension (e.g. wheels, eggs), libsodium is also bundled (excluding Windows), ensuring that libzmq security is available to users who install from wheels - New :mod:`zmq.auth`, implementing zeromq's ZAP authentication, modeled on czmq zauth. For more information, see the `examples <https://github.com/zeromq/pyzmq/tree/master/examples/>`_. Other New Stuff --------------- - Add PYZMQ_BACKEND for enabling use of backends outside the pyzmq codebase. - Add :attr:`~.Context.underlying` property and :meth:`~.Context.shadow` method to Context and Socket, for handing off sockets and contexts. between pyzmq and other bindings (mainly pyczmq_). - Add TOS, ROUTER_HANDOVER, and IPC_FILTER constants from libzmq-4.1-dev. - Add Context option support in the CFFI backend. - Various small unicode and build fixes, as always. - :meth:`~.Socket.send_json` and :meth:`~.Socket.recv_json` pass any extra kwargs to ``json.dumps/loads``. .. _pyczmq: https://github.com/zeromq/pyczmq Deprecations ------------ - ``Socket.socket_type`` is deprecated, in favor of ``Socket.type``, which has been available since 2.1.
2014-06-09 01:58:51 +02:00
CATEGORIES= net python
2016-06-08 19:43:20 +02:00
MASTER_SITES= ${MASTER_SITE_PYPI:=p/pyzmq/}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://github.com/zeromq/pyzmq
COMMENT= Python bindings for zeromq
Update py-zmq to 2.2.0.1. ================ Changes in PyZMQ ================ 2.2.0.1 ======= This is a tech-preview release, to try out some new features. It is expected to be short-lived, as there are likely to be issues to iron out, particularly with the new pip-install support. Experimental New Stuff ---------------------- These features are marked 'experimental', which means that their APIs are not set in stone, and may be removed or changed in incompatible ways in later releases. Threadsafe ZMQStream ******************** With the IOLoop inherited from tornado, there is exactly one method that is threadsafe: :meth:`.IOLoop.add_callback`. With this release, we are trying an experimental option to pass all IOLoop calls via this method, so that ZMQStreams can be used from one thread while the IOLoop runs in another. To try out a threadsafe stream: .. sourcecode:: python stream = ZMQStream(socket, threadsafe=True) pip install pyzmq ***************** PyZMQ should now be pip installable, even on systems without libzmq. In these cases, when pyzmq fails to find an appropriate libzmq to link against, it will try to build libzmq as a Python extension. This work is derived from `pyzmq_static <https://github.com/brandon-rhodes/pyzmq-static>`_. To this end, PyZMQ source distributions include the sources for libzmq (2.2.0) and libuuid (2.21), both used under the LGPL. zmq.green ********* The excellent `gevent_zeromq <https://github.com/traviscline/gevent_zeromq>`_ socket subclass which provides `gevent <http://www.gevent.org/>`_ compatibility has been merged as :mod:`zmq.green`. .. seealso:: :ref:`zmq_green` Bugs fixed ---------- * TIMEO sockopts are properly included for libzmq-2.2.0 * avoid garbage collection of sockets after fork (would cause ``assert (mailbox.cpp:79)``). 2.2.0 ===== Some effort has gone into refining the pyzmq API in this release to make it a model for other language bindings. This is principally made in a few renames of objects and methods, all of which leave the old name for backwards compatibility. .. note:: As of this release, all code outside ``zmq.core`` is BSD licensed (where possible), to allow more permissive use of less-critical code and utilities. Name Changes ------------ * The :class:`~.Message` class has been renamed to :class:`~.Frame`, to better match other zmq bindings. The old Message name remains for backwards-compatibility. Wherever pyzmq docs say "Message", they should refer to a complete zmq atom of communication (one or more Frames, connected by ZMQ_SNDMORE). Please report any remaining instances of Message==MessagePart with an Issue (or better yet a Pull Request). * All ``foo_unicode`` methods are now called ``foo_string`` (``_unicode`` remains for backwards compatibility). This is not only for cross-language consistency, but it makes more sense in Python 3, where native strings are unicode, and the ``_unicode`` suffix was wedded too much to Python 2. Other Changes and Removals -------------------------- * ``prefix`` removed as an unused keyword argument from :meth:`~.Socket.send_multipart`. * ZMQStream :meth:`~.ZMQStream.send` default has been changed to `copy=True`, so it matches Socket :meth:`~.Socket.send`. * ZMQStream :meth:`~.ZMQStream.on_err` is deprecated, because it never did anything. * Python 2.5 compatibility has been dropped, and some code has been cleaned up to reflect no-longer-needed hacks. * Some Cython files in :mod:`zmq.core` have been split, to reduce the amount of Cython-compiled code. Much of the body of these files were pure Python, and thus did not benefit from the increased compile time. This change also aims to ease maintaining feature parity in other projects, such as `pyzmq-ctypes <https://github.com/svpcom/pyzmq-ctypes>`_. New Stuff --------- * :class:`~.Context` objects can now set default options when they create a socket. These are set and accessed as attributes to the context. Socket options that do not apply to a socket (e.g. SUBSCRIBE on non-SUB sockets) will simply be ignored. * :meth:`~.ZMQStream.on_recv_stream` has been added, which adds the stream itself as a second argument to the callback, making it easier to use a single callback on multiple streams. * A :attr:`~Frame.more` boolean attribute has been added to the :class:`~.Frame` (née Message) class, so that frames can be identified as terminal without extra queires of :attr:`~.Socket.rcvmore`. Experimental New Stuff ---------------------- These features are marked 'experimental', which means that their APIs are not set in stone, and may be removed or changed in incompatible ways in later releases. * :mod:`zmq.web` added for load-balancing requests in a tornado webapp with zeromq.
2013-01-24 13:37:58 +01:00
LICENSE= gnu-lgpl-v3 AND modified-bsd
DEPENDS+= ${PYPKGPREFIX}-cython-[0-9]*:../../devel/py-cython
DEPENDS+= ${PYPKGPREFIX}-packaging-[0-9]*:../../devel/py-packaging
py-zmq: updated to 22.3.0 22.3.0 ====== Fixes: - Fix `strlcpy` compilation issues on alpine, freebsd. Adds new build-time dependency on `packaging`. - In event-loop integration: warn instead of raise when triggering callback on a socket whose context has been closed. - Bundled libzmq in wheels backport a patch to avoid crashes due to inappropriate closing of libsodium's random generator when using CurveZMQ. Changes: - New ResourceWarnings when contexts and sockets are closed by garbage collection, which can be a source of hangs and leaks (matches open files) 22.2.1 ====== Fix bundling of wepoll on Windows. 22.2.0 ====== New features: - IPC support on Windows: where available (64bit Windows wheels and bundled libzmq when compiling from source, via wepoll), IPC should work on appropriate Windows versions. - Nicer reprs of contexts and sockets - Memory allocated by `recv(copy=False)` is no longer read-only - asyncio: Always reference current loop instead of attaching to the current loop at instantiation time. This fixes e.g. contexts and/or sockets instantiated prior to a call to `asyncio.run`. - ssh: `$PYZMQ_PARAMIKO_HOST_KEY_POLICY` can be used to set the missing host key policy, e.g. `AutoAdd`. Fixes: - Fix memory corruption in gevent integration - Fix `memoryview(zmq.Frame)` with cffi backend - Fix threadsafety issue when closing sockets Changes: - pypy Windows wheels are 64b-only, following an update in cibuildwheel 2.0 - deprecate `zmq.utils.jsonapi` and remove support for non-stdlib json implementations in `send/recv_json`. Custom serialization methods should be used instead. 22.1.0 ====== New features: - asyncio: experimental support for Proactor eventloop if tornado 6.1 is available by running a selector in a background thread. Fixes: - Windows: fix type of `socket.FD` option in win-amd64 - asyncio: Cancel timers when using HWM with async Sockets Other changes: - Windows: update bundled libzmq dll URLs for Windows. Windows wheels no longer include concrt140.dll. - adopt pre-commit for formatting, linting 22.0.3 ====== - Fix fork-safety bug in garbage collection thread (regression in 20.0) when using subprocesses. - Start uploading universal wheels for ARM Macs. 22.0.2 ====== - Add workaround for bug in DLL loading for Windows wheels with conda Python >= 3.8 22.0.1 ====== - Fix type of ``Frame.bytes`` for non-copying recvs with CFFI backend (regression in 21.0) - Add manylinux wheels for pypy 22.0.0 ====== This is a major release due to changes in wheels and building on Windows. Code changes from 21.0 are minimal. - Some typing fixes - Bump bundled libzmq to 4.3.4 - Strip unused symbols in manylinux wheels, resulting in dramatically smaller binaries. This matches behavior in v20 and earlier. - Windows CPython wheels bundle public libzmq binary builds, instead of building libzmq as a Python Extension. This means they include libsodium for the first time. - Our own implementation of bundling libzmq into pyzmq on Windows is removed, instead relying on delvewheel (or installations putting dlls on %PATH%) to bundle dependency dlls. - The (new in 21.0) Windows wheels for PyPy likely require the Windows vcredist package. This may have always been the case, but the delvewheel approach doesn't seem to work. - Windows + PyPy is now the only remaining case where a wheel has libzmq built as an Extension. All other builds ship libzmq built using its own tooling, which should result in better, more stable builds. 21.0.2 ====== - Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, matching wheel ABI tag). 21.0.1 ====== pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 instead of VS2019), fixing compatibility with some older Windows on all Pythons and removing requirement of VC++ redistributable package on latest Windows and Python < 3.8. There still appears to be a compatibility issue with Windows 7 that will be fixed ASAP. Until then, you can pin ``pip install pyzmq<21``. There are no changes from 21.0.0 for other platforms. 21.0 ==== pyzmq 21 is a major version bump because of dropped support for old Pythons and some changes in packaging. CPython users should not face major compatibility issues if installation works at all :) PyPy users may see issues with the new implementation of send/recv. If you do, please report them! The big changes are: - drop support for Python 3.5. Python >= 3.6 is required - mypy type stubs, which should improve static analysis of pyzmq, especially for dynamically defined attributes such as zmq constants. These are new! Let us know if you find any issues. - support for zero-copy and sending bufferables with cffi backend. This is experimental! Please report issues. - More wheels! - linux-aarch64 on Python 3.7-3.9 - wheels for pypy36, 37 on Linux and Windows (previously just mac) We've totally redone the wheel-building setup, so let us know if you start seeing instalation issues! Packaging updates: - Require Python >= 3.6, required for good type annotation support - Wheels for macOS no longer build libzmq as a Python Extension, instead 'real' libzmq is built and linked to libsodium, bundled with delocate. This matches the longstanding behavior of Linux wheels, and should result in better performance. - Add manylinux wheels for linux-aarch64. These bundle an older version of libzmq than the rest. - Build wheels for python3.8, 3.9 with manylinux2010 instead of manylinux1. Wheels for older Pythons will still be built on manylinux1. - rework cffi backend in setup.py - All wheels are built on GitHub Actions (most with cibuildwheel) instead of Min's laptop (finally!). New features: - zero-copy support in CFFI backend (``send(copy=False)`` now does something). - Support sending any buffer-interface-providing objects in CFFI backend. Bugs fixed: - Errors during teardown of asyncio Sockets - Missing MSVCP140.dll in Python 3.9 wheels on Windows, causing vcruntime-redist package to be required to use the Python 3.9 wheels for pyzmq 20.0 20.0 ==== 20.0 is a major version bump because of dropped support for old Pythons and some changes in packaging, but there are only small changes for users with relatively recent versions of Python. Packaging updates: - Update bundled libzmq to 4.3.3 - Drop support for Python < 3.5 (all versions of Python < 3.6 are EOL at time of release) - Require setuptools to build from source - Require Cython 0.29 to build from version control (sdists still ship .c files, so will never need Cython) - Respect $PKG_CONFIG env for finding libzmq when building from source New features: - :meth:`.Socket.bind` and :meth:`.Socket.connect` can now be used as context managers. Fixes: - Better error when libzmq is bundled and fails to be loaded. - Hold GIL while calling ``zmq_curve_`` functions, which may fix apparent threadsafety issues.
2021-11-14 21:17:08 +01:00
TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
USE_TOOLS+= pkg-config
py-zmq: updated to 22.3.0 22.3.0 ====== Fixes: - Fix `strlcpy` compilation issues on alpine, freebsd. Adds new build-time dependency on `packaging`. - In event-loop integration: warn instead of raise when triggering callback on a socket whose context has been closed. - Bundled libzmq in wheels backport a patch to avoid crashes due to inappropriate closing of libsodium's random generator when using CurveZMQ. Changes: - New ResourceWarnings when contexts and sockets are closed by garbage collection, which can be a source of hangs and leaks (matches open files) 22.2.1 ====== Fix bundling of wepoll on Windows. 22.2.0 ====== New features: - IPC support on Windows: where available (64bit Windows wheels and bundled libzmq when compiling from source, via wepoll), IPC should work on appropriate Windows versions. - Nicer reprs of contexts and sockets - Memory allocated by `recv(copy=False)` is no longer read-only - asyncio: Always reference current loop instead of attaching to the current loop at instantiation time. This fixes e.g. contexts and/or sockets instantiated prior to a call to `asyncio.run`. - ssh: `$PYZMQ_PARAMIKO_HOST_KEY_POLICY` can be used to set the missing host key policy, e.g. `AutoAdd`. Fixes: - Fix memory corruption in gevent integration - Fix `memoryview(zmq.Frame)` with cffi backend - Fix threadsafety issue when closing sockets Changes: - pypy Windows wheels are 64b-only, following an update in cibuildwheel 2.0 - deprecate `zmq.utils.jsonapi` and remove support for non-stdlib json implementations in `send/recv_json`. Custom serialization methods should be used instead. 22.1.0 ====== New features: - asyncio: experimental support for Proactor eventloop if tornado 6.1 is available by running a selector in a background thread. Fixes: - Windows: fix type of `socket.FD` option in win-amd64 - asyncio: Cancel timers when using HWM with async Sockets Other changes: - Windows: update bundled libzmq dll URLs for Windows. Windows wheels no longer include concrt140.dll. - adopt pre-commit for formatting, linting 22.0.3 ====== - Fix fork-safety bug in garbage collection thread (regression in 20.0) when using subprocesses. - Start uploading universal wheels for ARM Macs. 22.0.2 ====== - Add workaround for bug in DLL loading for Windows wheels with conda Python >= 3.8 22.0.1 ====== - Fix type of ``Frame.bytes`` for non-copying recvs with CFFI backend (regression in 21.0) - Add manylinux wheels for pypy 22.0.0 ====== This is a major release due to changes in wheels and building on Windows. Code changes from 21.0 are minimal. - Some typing fixes - Bump bundled libzmq to 4.3.4 - Strip unused symbols in manylinux wheels, resulting in dramatically smaller binaries. This matches behavior in v20 and earlier. - Windows CPython wheels bundle public libzmq binary builds, instead of building libzmq as a Python Extension. This means they include libsodium for the first time. - Our own implementation of bundling libzmq into pyzmq on Windows is removed, instead relying on delvewheel (or installations putting dlls on %PATH%) to bundle dependency dlls. - The (new in 21.0) Windows wheels for PyPy likely require the Windows vcredist package. This may have always been the case, but the delvewheel approach doesn't seem to work. - Windows + PyPy is now the only remaining case where a wheel has libzmq built as an Extension. All other builds ship libzmq built using its own tooling, which should result in better, more stable builds. 21.0.2 ====== - Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, matching wheel ABI tag). 21.0.1 ====== pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 instead of VS2019), fixing compatibility with some older Windows on all Pythons and removing requirement of VC++ redistributable package on latest Windows and Python < 3.8. There still appears to be a compatibility issue with Windows 7 that will be fixed ASAP. Until then, you can pin ``pip install pyzmq<21``. There are no changes from 21.0.0 for other platforms. 21.0 ==== pyzmq 21 is a major version bump because of dropped support for old Pythons and some changes in packaging. CPython users should not face major compatibility issues if installation works at all :) PyPy users may see issues with the new implementation of send/recv. If you do, please report them! The big changes are: - drop support for Python 3.5. Python >= 3.6 is required - mypy type stubs, which should improve static analysis of pyzmq, especially for dynamically defined attributes such as zmq constants. These are new! Let us know if you find any issues. - support for zero-copy and sending bufferables with cffi backend. This is experimental! Please report issues. - More wheels! - linux-aarch64 on Python 3.7-3.9 - wheels for pypy36, 37 on Linux and Windows (previously just mac) We've totally redone the wheel-building setup, so let us know if you start seeing instalation issues! Packaging updates: - Require Python >= 3.6, required for good type annotation support - Wheels for macOS no longer build libzmq as a Python Extension, instead 'real' libzmq is built and linked to libsodium, bundled with delocate. This matches the longstanding behavior of Linux wheels, and should result in better performance. - Add manylinux wheels for linux-aarch64. These bundle an older version of libzmq than the rest. - Build wheels for python3.8, 3.9 with manylinux2010 instead of manylinux1. Wheels for older Pythons will still be built on manylinux1. - rework cffi backend in setup.py - All wheels are built on GitHub Actions (most with cibuildwheel) instead of Min's laptop (finally!). New features: - zero-copy support in CFFI backend (``send(copy=False)`` now does something). - Support sending any buffer-interface-providing objects in CFFI backend. Bugs fixed: - Errors during teardown of asyncio Sockets - Missing MSVCP140.dll in Python 3.9 wheels on Windows, causing vcruntime-redist package to be required to use the Python 3.9 wheels for pyzmq 20.0 20.0 ==== 20.0 is a major version bump because of dropped support for old Pythons and some changes in packaging, but there are only small changes for users with relatively recent versions of Python. Packaging updates: - Update bundled libzmq to 4.3.3 - Drop support for Python < 3.5 (all versions of Python < 3.6 are EOL at time of release) - Require setuptools to build from source - Require Cython 0.29 to build from version control (sdists still ship .c files, so will never need Cython) - Respect $PKG_CONFIG env for finding libzmq when building from source New features: - :meth:`.Socket.bind` and :meth:`.Socket.connect` can now be used as context managers. Fixes: - Better error when libzmq is bundled and fails to be loaded. - Hold GIL while calling ``zmq_curve_`` functions, which may fix apparent threadsafety issues.
2021-11-14 21:17:08 +01:00
PYTHON_VERSIONS_INCOMPATIBLE= 27
PYSETUPBUILDARGS+= --zmq=${BUILDLINK_PREFIX.zeromq:Q}
py-zmq: updated to 22.3.0 22.3.0 ====== Fixes: - Fix `strlcpy` compilation issues on alpine, freebsd. Adds new build-time dependency on `packaging`. - In event-loop integration: warn instead of raise when triggering callback on a socket whose context has been closed. - Bundled libzmq in wheels backport a patch to avoid crashes due to inappropriate closing of libsodium's random generator when using CurveZMQ. Changes: - New ResourceWarnings when contexts and sockets are closed by garbage collection, which can be a source of hangs and leaks (matches open files) 22.2.1 ====== Fix bundling of wepoll on Windows. 22.2.0 ====== New features: - IPC support on Windows: where available (64bit Windows wheels and bundled libzmq when compiling from source, via wepoll), IPC should work on appropriate Windows versions. - Nicer reprs of contexts and sockets - Memory allocated by `recv(copy=False)` is no longer read-only - asyncio: Always reference current loop instead of attaching to the current loop at instantiation time. This fixes e.g. contexts and/or sockets instantiated prior to a call to `asyncio.run`. - ssh: `$PYZMQ_PARAMIKO_HOST_KEY_POLICY` can be used to set the missing host key policy, e.g. `AutoAdd`. Fixes: - Fix memory corruption in gevent integration - Fix `memoryview(zmq.Frame)` with cffi backend - Fix threadsafety issue when closing sockets Changes: - pypy Windows wheels are 64b-only, following an update in cibuildwheel 2.0 - deprecate `zmq.utils.jsonapi` and remove support for non-stdlib json implementations in `send/recv_json`. Custom serialization methods should be used instead. 22.1.0 ====== New features: - asyncio: experimental support for Proactor eventloop if tornado 6.1 is available by running a selector in a background thread. Fixes: - Windows: fix type of `socket.FD` option in win-amd64 - asyncio: Cancel timers when using HWM with async Sockets Other changes: - Windows: update bundled libzmq dll URLs for Windows. Windows wheels no longer include concrt140.dll. - adopt pre-commit for formatting, linting 22.0.3 ====== - Fix fork-safety bug in garbage collection thread (regression in 20.0) when using subprocesses. - Start uploading universal wheels for ARM Macs. 22.0.2 ====== - Add workaround for bug in DLL loading for Windows wheels with conda Python >= 3.8 22.0.1 ====== - Fix type of ``Frame.bytes`` for non-copying recvs with CFFI backend (regression in 21.0) - Add manylinux wheels for pypy 22.0.0 ====== This is a major release due to changes in wheels and building on Windows. Code changes from 21.0 are minimal. - Some typing fixes - Bump bundled libzmq to 4.3.4 - Strip unused symbols in manylinux wheels, resulting in dramatically smaller binaries. This matches behavior in v20 and earlier. - Windows CPython wheels bundle public libzmq binary builds, instead of building libzmq as a Python Extension. This means they include libsodium for the first time. - Our own implementation of bundling libzmq into pyzmq on Windows is removed, instead relying on delvewheel (or installations putting dlls on %PATH%) to bundle dependency dlls. - The (new in 21.0) Windows wheels for PyPy likely require the Windows vcredist package. This may have always been the case, but the delvewheel approach doesn't seem to work. - Windows + PyPy is now the only remaining case where a wheel has libzmq built as an Extension. All other builds ship libzmq built using its own tooling, which should result in better, more stable builds. 21.0.2 ====== - Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, matching wheel ABI tag). 21.0.1 ====== pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 instead of VS2019), fixing compatibility with some older Windows on all Pythons and removing requirement of VC++ redistributable package on latest Windows and Python < 3.8. There still appears to be a compatibility issue with Windows 7 that will be fixed ASAP. Until then, you can pin ``pip install pyzmq<21``. There are no changes from 21.0.0 for other platforms. 21.0 ==== pyzmq 21 is a major version bump because of dropped support for old Pythons and some changes in packaging. CPython users should not face major compatibility issues if installation works at all :) PyPy users may see issues with the new implementation of send/recv. If you do, please report them! The big changes are: - drop support for Python 3.5. Python >= 3.6 is required - mypy type stubs, which should improve static analysis of pyzmq, especially for dynamically defined attributes such as zmq constants. These are new! Let us know if you find any issues. - support for zero-copy and sending bufferables with cffi backend. This is experimental! Please report issues. - More wheels! - linux-aarch64 on Python 3.7-3.9 - wheels for pypy36, 37 on Linux and Windows (previously just mac) We've totally redone the wheel-building setup, so let us know if you start seeing instalation issues! Packaging updates: - Require Python >= 3.6, required for good type annotation support - Wheels for macOS no longer build libzmq as a Python Extension, instead 'real' libzmq is built and linked to libsodium, bundled with delocate. This matches the longstanding behavior of Linux wheels, and should result in better performance. - Add manylinux wheels for linux-aarch64. These bundle an older version of libzmq than the rest. - Build wheels for python3.8, 3.9 with manylinux2010 instead of manylinux1. Wheels for older Pythons will still be built on manylinux1. - rework cffi backend in setup.py - All wheels are built on GitHub Actions (most with cibuildwheel) instead of Min's laptop (finally!). New features: - zero-copy support in CFFI backend (``send(copy=False)`` now does something). - Support sending any buffer-interface-providing objects in CFFI backend. Bugs fixed: - Errors during teardown of asyncio Sockets - Missing MSVCP140.dll in Python 3.9 wheels on Windows, causing vcruntime-redist package to be required to use the Python 3.9 wheels for pyzmq 20.0 20.0 ==== 20.0 is a major version bump because of dropped support for old Pythons and some changes in packaging, but there are only small changes for users with relatively recent versions of Python. Packaging updates: - Update bundled libzmq to 4.3.3 - Drop support for Python < 3.5 (all versions of Python < 3.6 are EOL at time of release) - Require setuptools to build from source - Require Cython 0.29 to build from version control (sdists still ship .c files, so will never need Cython) - Respect $PKG_CONFIG env for finding libzmq when building from source New features: - :meth:`.Socket.bind` and :meth:`.Socket.connect` can now be used as context managers. Fixes: - Better error when libzmq is bundled and fails to be loaded. - Hold GIL while calling ``zmq_curve_`` functions, which may fix apparent threadsafety issues.
2021-11-14 21:17:08 +01:00
.include "../../lang/python/egg.mk"
.include "../../net/zeromq/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"