%global pypi_name twisted
%global common_description %{expand:
Twisted is a networking engine written in Python, supporting numerous protocols.
It contains a web server, numerous chat clients, chat servers, mail servers
and more.}
Name: python-%{pypi_name}
Version: 21.7.0
Release: %autorelease
Summary: Twisted is a networking engine written in Python
License: MIT
URL: http://twistedmatrix.com/
VCS: https://github.com/twisted/twisted
Source0: %{pypi_source Twisted}
BuildArch: noarch
%description %{common_description}
%package -n python3-%{pypi_name}
Summary: %{summary}
BuildRequires: gcc
BuildRequires: git-core
BuildRequires: python3-devel >= 3.3
BuildRequires: python3dist(pip) >= 19
BuildRequires: python3dist(packaging)
BuildRequires: python3dist(setuptools) >= 40.8
BuildRequires: python3dist(wheel)
BuildRequires: python3-Cython
BuildRequires: python3dist(appdirs) >= 1.4
BuildRequires: python3dist(automat) >= 0.8
BuildRequires: python3dist(attrs) >= 19.2.0
BuildRequires: python3dist(bcrypt) >= 3.0.0
BuildRequires: python3dist(constantly) >= 15.1
BuildRequires: python3dist(cryptography) >= 2.6
BuildRequires: (python3dist(h2) >= 3 with python3dist(h2) < 5)
BuildRequires: python3dist(hyperlink) >= 17.1.1
BuildRequires: python3dist(idna) >= 2.4
BuildRequires: python3dist(incremental) >= 16.10.1
BuildRequires: (python3dist(priority) >= 1.1 with python3dist(priority) < 3)
BuildRequires: python3dist(pyasn1)
BuildRequires: python3dist(pyopenssl) >= 16
BuildRequires: python3dist(pyserial) >= 3
BuildRequires: python3dist(service-identity) >= 18.1
BuildRequires: python3dist(setuptools)
BuildRequires: python3dist(sphinx) >= 1.3.1
BuildRequires: python3dist(sphinx-rtd-theme)
BuildRequires: python3dist(zope.interface) >= 4.4.2
BuildRequires: python3dist(pyhamcrest) >= 1.9
%{?python_extras_subpkg:Recommends: python3-%{pypi_name}+tls}
%{!?python_extras_subpkg:Recommends: python3dist(service-identity) >= 18.1}
%description -n python3-%{pypi_name} %{common_description}
%{?python_extras_subpkg:%python_extras_subpkg -n python3-%{pypi_name} -i %{python3_sitelib}/*.dist-info tls}
%prep
%autosetup -p1 -n Twisted-%{version}
# Relax python priority dep
sed -i "s|priority >= 1.1.0, < 2.0|priority >= 1.1.0, < 3.0|" setup.cfg
%build
%pyproject_wheel
%install
%pyproject_install
# no-manual-page-for-binary
mkdir -p %{buildroot}%{_mandir}/man1/
for s in conch core mail; do
cp -a docs/$s/man/*.1 %{buildroot}%{_mandir}/man1/
done
# Packages that install arch-independent twisted plugins install here.
# https://bugzilla.redhat.com/show_bug.cgi?id=1252140
mkdir -p %{buildroot}%{python3_sitelib}/twisted/plugins
# Move and symlink python3 scripts
# no-manual-page-for-binary: man page is trial and twistd
mv %{buildroot}%{_bindir}/trial %{buildroot}%{_bindir}/trial-%{python3_version}
ln -s ./trial-%{python3_version} %{buildroot}%{_bindir}/trial-3
ln -s ./trial-%{python3_version} %{buildroot}%{_bindir}/trial
mv %{buildroot}%{_bindir}/twistd %{buildroot}%{_bindir}/twistd-%{python3_version}
ln -s ./twistd-%{python3_version} %{buildroot}%{_bindir}/twistd-3
ln -s ./twistd-%{python3_version} %{buildroot}%{_bindir}/twistd
# ambiguous shebangs
pathfix.py -pn -i %{__python3} %{buildroot}%{python3_sitelib}
%pyproject_save_files twisted
%check
# can't get this to work within the buildroot yet due to multicast
# https://twistedmatrix.com/trac/ticket/7494
PATH=%{buildroot}%{_bindir}:$PATH PYTHONPATH=%{buildroot}%{python3_sitelib} %{buildroot}%{_bindir}/trial twisted ||:
%files -n python3-twisted -f %{pyproject_files}
%doc NEWS.rst README.rst
%license LICENSE
%{_bindir}/trial-3*
%{_bindir}/twistd-3*
%{_bindir}/cftp
%{_bindir}/ckeygen
%{_bindir}/conch
%{_bindir}/mailmail
%{_bindir}/pyhtmlizer
%{_bindir}/tkconch
%{_bindir}/trial
%{_bindir}/twist
%{_bindir}/twistd
%{_mandir}/man1/cftp.1*
%{_mandir}/man1/ckeygen.1*
%{_mandir}/man1/conch.1*
%{_mandir}/man1/mailmail.1*
%{_mandir}/man1/pyhtmlizer.1*
%{_mandir}/man1/tkconch.1*
%{_mandir}/man1/trial.1*
%{_mandir}/man1/twistd.1*
%changelog
%autochangelog