You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
python-zmq/python-zmq.spec

178 lines
6.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 arent doing it. This goes away in later releases, so we
# dont 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