|
|
Name: python-zmq
|
|
|
Version: 19.0.0
|
|
|
Release: %autorelease
|
|
|
Summary: Python bindings for zeromq
|
|
|
|
|
|
# As noted in https://github.com/zeromq/pyzmq/blob/v26.2.0/RELICENSE/README.md:
|
|
|
# pyzmq starting with 26.0.0 is fully licensed under the 3-clause Modified
|
|
|
# BSD License. A small part of the core (Cython backend only) was previously
|
|
|
# licensed under LGPLv3 for historical reasons. Permission has been granted
|
|
|
# by the contributors of the vast majority of those components to relicense
|
|
|
# under MPLv2 or BSD. This backend has been completely replaced in pyzmq 26,
|
|
|
# and the new implementation is fully licensed under BSD-3-Clause, so pyzmq
|
|
|
# is now under a single license.
|
|
|
# Since this package is currently at 19.0.0, the entire source is BSD-3-Clause
|
|
|
# (LICENSE.BSD), except:
|
|
|
# - Some core files (the low-level Cython bindings) are LGPL-3.0-or-later
|
|
|
# (LICENSE.LESSER); based on comments in file headers, this is:
|
|
|
# * zmq/backend/cython/_device.pyx.
|
|
|
# * zmq/include/zmq.h
|
|
|
# * zmq/include/zmq_utils.h
|
|
|
# - zmq/ssh/forward.py, which is derived from a Paramiko demo, is
|
|
|
# LGPL-2.1-or-later
|
|
|
# - The following are Apache-2.0:
|
|
|
# * zmq/eventloop/minitornado/ioloop.py
|
|
|
# * zmq/eventloop/minitornado/platform/auto.py
|
|
|
# * zmq/eventloop/minitornado/platform/interface.py
|
|
|
# * zmq/eventloop/minitornado/platform/posix.py
|
|
|
# * zmq/eventloop/minitornado/stack_context.py
|
|
|
# * zmq/eventloop/zmqstream.py
|
|
|
# - zmq/utils/sixcerpt.py, which is derived from python3dist(six), is MIT
|
|
|
# Additionally, the following do not affect the license of the binary RPMs:
|
|
|
# - tools/run_with_env.cmd is CC0-1.0; for distribution in the source RPM, it
|
|
|
# is covered by “Existing uses of CC0-1.0 on code files in Fedora packages
|
|
|
# prior to 2022-08-01, and subsequent upstream versions of those files in
|
|
|
# those packages, continue to be allowed. We encourage Fedora package
|
|
|
# maintainers to ask upstreams to relicense such files.”
|
|
|
# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/91#note_1151947383
|
|
|
# - examples/device/device.py and examples/win32-interrupt/display.py are
|
|
|
# LicenseRef-Fedora-Public-Domain; approved in “Review of
|
|
|
# python-zmq examples dedicated to the public domain,”
|
|
|
# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/616; see
|
|
|
# https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/716
|
|
|
# - The following are BSD-2-Clause, but are removed in %%prep:
|
|
|
# * bundled/zeromq/external/wepoll/
|
|
|
# - The following are LGPL-3.0-or-later, but are removed in %%prep:
|
|
|
# * bundled/zeromq/, except bundled/zeromq/external/wepoll/
|
|
|
License: %{shrink:
|
|
|
BSD-3-Clause AND
|
|
|
LGPL-3.0-or-later AND
|
|
|
LGPL-2.1-or-later AND
|
|
|
Apache-2.0 AND
|
|
|
MIT
|
|
|
}
|
|
|
URL: https://zeromq.org/languages/python/
|
|
|
Source0: %{pypi_source pyzmq}
|
|
|
# BUG: A file is licensed Apache-2.0, but the license text is not distributed
|
|
|
# https://github.com/zeromq/pyzmq/issues/2048
|
|
|
Source1: https://www.apache.org/licenses/LICENSE-2.0.txt#/LICENSE.Apache-2.0
|
|
|
|
|
|
BuildRequires: gcc
|
|
|
|
|
|
BuildRequires: zeromq-devel
|
|
|
|
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
|
|
BuildRequires: python%{python3_pkgversion}-Cython
|
|
|
|
|
|
%global common_description %{expand:
|
|
|
This package contains Python bindings for ZeroMQ. ØMQ is a lightweight and fast
|
|
|
messaging implementation.}
|
|
|
|
|
|
%description %{common_description}
|
|
|
|
|
|
|
|
|
%package -n python%{python3_pkgversion}-zmq
|
|
|
Summary: %{summary}
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-zmq}
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-pyzmq}
|
|
|
Provides: python%{python3_pkgversion}-pyzmq = %{version}-%{release}
|
|
|
|
|
|
%description -n python%{python3_pkgversion}-zmq %{common_description}
|
|
|
|
|
|
|
|
|
%package -n python%{python3_pkgversion}-zmq-tests
|
|
|
Summary: Test suite for Python bindings for zeromq
|
|
|
# This subpackage does not contain any of the files that are under other
|
|
|
# licenses; see the comment above the main License tag.
|
|
|
License: BSD-3-Clause
|
|
|
|
|
|
Requires: python%{python3_pkgversion}-zmq%{?_isa} = %{version}-%{release}
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-zmq-tests}
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-pyzmq-tests}
|
|
|
Provides: python%{python3_pkgversion}-pyzmq-tests = %{version}-%{release}
|
|
|
|
|
|
BuildRequires: python%{python3_pkgversion}-pytest
|
|
|
Requires: python%{python3_pkgversion}-pytest
|
|
|
BuildRequires: python%{python3_pkgversion}-tornado
|
|
|
Requires: python%{python3_pkgversion}-tornado
|
|
|
# Some tests in zmq/tests/test_context.py and zmq/tests/test_socket.py require
|
|
|
# pyczmq, which is not packaged and has not been updated in a decade.
|
|
|
#
|
|
|
# Enable more tests in zmq/tests/test_message.py:
|
|
|
BuildRequires: python%{python3_pkgversion}-numpy
|
|
|
Requires: python%{python3_pkgversion}-numpy
|
|
|
|
|
|
%description -n python%{python3_pkgversion}-zmq-tests %{common_description}
|
|
|
|
|
|
This package contains the test suite for the Python bindings.
|
|
|
|
|
|
|
|
|
%prep
|
|
|
%autosetup -n pyzmq-%{version}
|
|
|
|
|
|
# remove bundled libraries
|
|
|
rm -rv bundled/
|
|
|
|
|
|
# forcibly regenerate the Cython-generated .c files:
|
|
|
find zmq -name '*.c' -delete
|
|
|
|
|
|
# Remove useless shebangs in files that will be installed without executable
|
|
|
# permission. The pattern of selecting files before modifying them with sed
|
|
|
# keeps us from unnecessarily discarding the original mtimes on unmodified
|
|
|
# files.
|
|
|
find zmq -type f -name '*.py' \
|
|
|
-exec gawk '/^#!/ { print FILENAME }; { nextfile }' '{}' '+' |
|
|
|
xargs -r sed -r -i '1{/^#!/d}'
|
|
|
|
|
|
# BUG: A file is licensed Apache-2.0, but the license text is not distributed
|
|
|
# https://github.com/zeromq/pyzmq/issues/2048
|
|
|
cp -p '%{SOURCE1}' .
|
|
|
|
|
|
|
|
|
%build
|
|
|
%{python3} setup.py cython
|
|
|
%py3_build
|
|
|
|
|
|
|
|
|
%install
|
|
|
%py3_install
|
|
|
|
|
|
|
|
|
%check
|
|
|
# to avoid partially initialized zmq module from cwd
|
|
|
mkdir -p _empty
|
|
|
cd _empty
|
|
|
ln -s %{buildroot}%{python3_sitearch}/zmq/ ../pytest.ini ./
|
|
|
|
|
|
# test_draft seems to get incorrectly run:
|
|
|
# https://github.com/zeromq/pyzmq/issues/1853
|
|
|
k="${k-}${k+ and }not test_draft"
|
|
|
|
|
|
# Whatever it takes to build the Cython extension tests/cython_ext.pyx that is
|
|
|
# *in the tests*, we aren’t doing it. This goes away in later releases, so we
|
|
|
# don’t put any effort into figuring out how to make it work.
|
|
|
k="${k-}${k+ and }not test_cython"
|
|
|
|
|
|
# These hang; TODO: why?
|
|
|
k="${k-}${k+ and }not (TestAsyncioAuthentication and test_blacklist)"
|
|
|
k="${k-}${k+ and }not (TestAsyncioAuthentication and test_curve)"
|
|
|
k="${k-}${k+ and }not (TestAsyncioAuthentication and test_plain)"
|
|
|
|
|
|
%pytest -k "${k-}" -v -rs zmq/tests
|
|
|
|
|
|
|
|
|
%files -n python%{python3_pkgversion}-zmq
|
|
|
%license COPYING.*
|
|
|
%doc README.md
|
|
|
%{python3_sitearch}/pyzmq-%{version}-py%{python3_version}.egg-info
|
|
|
%{python3_sitearch}/zmq/
|
|
|
%exclude %{python3_sitearch}/zmq/tests/
|
|
|
|
|
|
%files -n python%{python3_pkgversion}-zmq-tests
|
|
|
%{python3_sitearch}/zmq/tests/
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
%autochangelog
|