# what it's called on pypi %global srcname pyzmq # what it's imported as %global libname zmq # name of egg info directory %global eggname %{srcname} # package name fragment %global pkgname %{libname} %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.} %global run_tests 0 Name: python-%{pkgname} Version: 19.0.0 Release: %autorelease Summary: Software library for fast, message-based applications License: LGPLv3+ and ASL 2.0 and BSD URL: https://zeromq.org/languages/python/ Source0: %pypi_source BuildRequires: gcc BuildRequires: chrpath BuildRequires: %{_bindir}/pathfix.py BuildRequires: zeromq-devel # For some tests # czmq currently FTBFS, so enable it some time later #BuildRequires: czmq-devel BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-Cython %if 0%{?run_tests} BuildRequires: python%{python3_pkgversion}-pytest BuildRequires: python%{python3_pkgversion}-tornado %endif %description %{common_description} %package -n python%{python3_pkgversion}-%{pkgname} Summary: %{summary} License: LGPLv3+ %{?python_provide:%python_provide python%{python3_pkgversion}-%{pkgname}} %{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}} Provides: python%{python3_pkgversion}-%{srcname} = %{version}-%{release} %description -n python%{python3_pkgversion}-%{pkgname} %{common_description} This package contains the python bindings. %package -n python%{python3_pkgversion}-%{pkgname}-tests Summary: %{summary}, testsuite License: LGPLv3+ Requires: python%{python3_pkgversion}-zmq = %{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-%{pkgname}-tests} %{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}-tests} Provides: python%{python3_pkgversion}-%{srcname}-tests = %{version}-%{release} %description -n python%{python3_pkgversion}-%{pkgname}-tests %{common_description} This package contains the testsuite for the python bindings. %prep %setup -q -n %{srcname}-%{version} # remove bundled libraries rm -rf bundled # forcibly regenerate the Cython-generated .c files: find zmq -name "*.c" -delete %{__python3} setup.py cython # remove shebangs for lib in zmq/eventloop/*.py; do sed '/\/usr\/bin\/env/d' $lib > $lib.new && touch -r $lib $lib.new && mv $lib.new $lib done # remove excecutable bits chmod -x examples/pubsub/topics_pub.py chmod -x examples/pubsub/topics_sub.py # delete hidden files #find examples -name '.*' | xargs rm -v %build %py3_build %install %global RPATH /zmq/{backend/cython,devices} %py3_install pathfix.py -pn -i %{__python3} %{buildroot}%{python3_sitearch} %check %if 0%{?run_tests} # Make sure we import from the install directory #rm zmq/__*.py PYTHONPATH=%{buildroot}%{python3_sitearch} \ %{__python3} setup.py test %endif %files -n python%{python3_pkgversion}-%{pkgname} %license COPYING.* %doc README.md # examples/ %{python3_sitearch}/%{eggname}-%{version}-py%{python3_version}.egg-info %{python3_sitearch}/%{libname} %exclude %{python3_sitearch}/%{libname}/tests %files -n python%{python3_pkgversion}-%{pkgname}-tests %{python3_sitearch}/%{libname}/tests %changelog %autochangelog