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