116 lines
3.3 KiB
RPMSpec
116 lines
3.3 KiB
RPMSpec
%global _without_gevent 1
|
|
%global common_description %{expand:
|
|
The 0MQ lightweight messaging kernel is a library which extends the
|
|
standard socket interfaces with features traditionally provided by
|
|
specialized messaging middle-ware products. 0MQ sockets provide an
|
|
abstraction of asynchronous message queues, multiple messaging
|
|
patterns, message filtering (subscriptions), seamless access to
|
|
multiple transport protocols and more.}
|
|
|
|
Name: python-zmq
|
|
Version: 25.1.1
|
|
Release: %autorelease
|
|
Summary: Software library for fast, message-based applications
|
|
|
|
License: MPLv2.0 and ASL 2.0 and BSD
|
|
URL: https://zeromq.org/languages/python/
|
|
Source0: %{pypi_source pyzmq}
|
|
|
|
# Python 3.13 compatibility
|
|
Patch: https://github.com/zeromq/pyzmq/pull/1961.patch
|
|
|
|
BuildRequires: gcc
|
|
|
|
BuildRequires: pkgconfig(libzmq)
|
|
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
BuildRequires: python%{python3_pkgversion}-pytest
|
|
BuildRequires: python%{python3_pkgversion}-pytest-asyncio
|
|
BuildRequires: python%{python3_pkgversion}-tornado
|
|
BuildRequires: python%{python3_pkgversion}-numpy
|
|
|
|
# The gevent tests are automatically skipped when gevent is not installed.
|
|
# When bootstrapping new Python versions, gevent is often not available until very late.
|
|
# This bcond allows to ship zmq without gevent when needed.
|
|
%bcond gevent 1
|
|
%if %{with gevent}
|
|
BuildRequires: python%{python3_pkgversion}-gevent
|
|
%endif
|
|
|
|
%description %{common_description}
|
|
|
|
|
|
%package -n python%{python3_pkgversion}-zmq
|
|
Summary: %{summary}
|
|
License: MPL-2.0
|
|
%py_provides python%{python3_pkgversion}-pyzmq
|
|
|
|
%description -n python%{python3_pkgversion}-zmq %{common_description}
|
|
|
|
This package contains the python bindings.
|
|
|
|
|
|
%package -n python%{python3_pkgversion}-zmq-tests
|
|
Summary: %{summary}, testsuite
|
|
License: MPL-2.0
|
|
Requires: python%{python3_pkgversion}-zmq = %{version}-%{release}
|
|
%py_provides python%{python3_pkgversion}-pyzmq-tests
|
|
|
|
%description -n python%{python3_pkgversion}-zmq-tests %{common_description}
|
|
|
|
This package contains the testsuite for the python bindings.
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n pyzmq-%{version}
|
|
|
|
# Upstream is testing with cython 3 on 3.12
|
|
sed -i -e '/cython>=3/d' pyproject.toml test-requirements.txt
|
|
sed -i -e '/min_cython_version/s/"3.*"/"0.29"/' setup.py
|
|
|
|
# remove bundled libraries
|
|
rm -rf bundled
|
|
|
|
# remove the Cython .c files in order to regenerate them:
|
|
find zmq -name "*.c" -delete
|
|
|
|
# remove shebangs
|
|
grep -lr "^#\!/usr/bin/env python" | xargs sed -i "1d"
|
|
|
|
# remove excecutable bits
|
|
find . -type f -executable | xargs chmod -x
|
|
|
|
%generate_buildrequires
|
|
%pyproject_buildrequires
|
|
|
|
%build
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
%pyproject_install
|
|
%pyproject_save_files zmq
|
|
|
|
%check
|
|
# to avoid partially initialized zmq module from cwd
|
|
# test_draft seems to get incorrectly run - https://github.com/zeromq/pyzmq/issues/1853
|
|
cd %{_topdir}
|
|
%pytest --pyargs zmq -v --asyncio-mode auto \
|
|
%ifarch ppc64le
|
|
-k "not (test_draft or test_green_device or (Green and (test_raw or test_timeout or test_poll)))" # this crashes on Python 3.12, TODO investigate
|
|
%else
|
|
-k "not test_draft"
|
|
%endif
|
|
|
|
|
|
%files -n python%{python3_pkgversion}-zmq -f %{pyproject_files}
|
|
%doc README.md
|
|
%exclude %{python3_sitearch}/zmq/tests
|
|
|
|
%files -n python%{python3_pkgversion}-zmq-tests
|
|
%{python3_sitearch}/zmq/tests
|
|
|
|
|
|
%changelog
|
|
%autochangelog
|
|
|