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

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
11 years ago
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}
11 years ago
# remove bundled libraries
rm -rv bundled/
11 years ago
# 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
9 years ago
%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