add python3_other subpkg to epel7; prepare removal of python2 subpkg in Fedora

This commit is contained in:
Raphael Groner 2018-09-30 23:43:00 +02:00
parent be868c01e3
commit 937fa68eb3

View File

@ -1,117 +1,179 @@
%global distname PySocks
%global flatname pysocks
%global sum A Python SOCKS client module
%if 0%{?rhel}
%global with_python2 1
%endif
# FIXME maybe Fedora 31+ without python2 subpackage
# https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
%if 0%{?fedora} && 0%{?fedora} <= 30
%global with_python2 1
%endif
%if 0%{?rhel} >= 7
%global with_python3 1
%endif
%if 0%{?fedora}
%global with_python3 1
%global with_python3_tests 1
%endif
Name: python-pysocks
%global pypi_name PySocks
%global modname pysocks
%global sum A Python SOCKS client module
Name: python-%{modname}
Version: 1.6.8
Release: 4%{?dist}
Release: 5%{?dist}
Summary: %{sum}
License: BSD
URL: https://github.com/Anorov/PySocks
Source0: https://files.pythonhosted.org/packages/source/P/PySocks/PySocks-%{version}.tar.gz
URL: https://github.com/Anorov/%{pypi_name}
Source0: %pypi_source
BuildArch: noarch
%description
A fork of SocksiPy with bug fixes and extra features.
Acts as a drop-in replacement to the socket module. Featuring:
- SOCKS proxy client for Python 2.6 - 3.x
- TCP and UDP both supported
- HTTP proxy client included but not supported or recommended (you should use
urllib2's or requests' own HTTP proxy interface)
%global _description \
A fork of SocksiPy with bug fixes and extra features.\
\
Acts as a drop-in replacement to the socket module. Featuring:\
\
- SOCKS proxy client for Python 2.6 - 3.x\
- TCP and UDP both supported\
- HTTP proxy client included but not supported or recommended (you should use\
urllib2's or requests' own HTTP proxy interface)\
- urllib2 handler included.
%description
%_description
%package -n python2-%{flatname}
%if 0%{?with_python2}
%package -n python2-%{modname}
Summary: %{sum}
BuildRequires: python2-devel
BuildRequires: python%{?fedora:2}-setuptools
%{?python_provide:%python_provide python2-%{flatname}}
BuildRequires: python2-setuptools
# for tests
BuildRequires: python2-pytest
BuildRequires: python2-psutil
#BuildRequires: python2-test_server
%{?python_provide:%python_provide python2-%{modname}}
# SocksiPy is retired in F30, drop when Fedora 29 becomes EOL
# https://bugzilla.redhat.com/show_bug.cgi?id=1334407
%if 0%{?fedora} && 0%{?fedora} < 30
Obsoletes: python-SocksiPy
Obsoletes: python2-SocksiPy
Provides: python-SocksiPy
Provides: python2-SocksiPy
%endif
%description -n python2-%{modname}
%_description
This package is for Python2 only.
%endif
%description -n python2-%{flatname}
A fork of SocksiPy with bug fixes and extra features.
Acts as a drop-in replacement to the socket module. Featuring:
- SOCKS proxy client for Python 2.6 - 3.x
- TCP and UDP both supported
- HTTP proxy client included but not supported or recommended (you should use
urllib2's or requests' own HTTP proxy interface)
- urllib2 handler included.
%package -n python%{python3_pkgversion}-%{flatname}
%if 0%{?with_python3}
%package -n python%{python3_pkgversion}-%{modname}
Summary: %{sum}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
%{?python_provide:%python_provide python%{python3_pkgversion}-%{flatname}}
# for tests
%if 0%{?with_python3_tests}
BuildRequires: python%{python3_pkgversion}-pytest
BuildRequires: python%{python3_pkgversion}-psutil
#BuildRequires: python%%{python3_pkgversion}-test_server
%endif
%{?python_provide:%python_provide python%{python3_pkgversion}-%{modname}}
# This package doesn't actually exist... but if it did, we would conflict with
# it.
# This package doesn't actually exist...
# but if it did, we would conflict with it.
Conflicts: python%{python3_pkgversion}-SocksiPy
%description -n python%{python3_pkgversion}-%{modname}
%_description
This package is for Python3 version %{python3_version} only.
%endif
%description -n python%{python3_pkgversion}-%{flatname}
A fork of SocksiPy with bug fixes and extra features.
%if 0%{?python3_other_pkgversion}
%package -n python%{python3_other_pkgversion}-%{modname}
Summary: %{sum}
BuildRequires: python%{python3_other_pkgversion}-devel
BuildRequires: python%{python3_other_pkgversion}-setuptools
# for tests
%if 0%{?with_python3_tests}
BuildRequires: python%{python3_other_pkgversion}-pytest
BuildRequires: python%{python3_other_pkgversion}-psutil
#BuildRequires: python%%{python3_other_pkgversion}-test_server
%endif
%{?python_provide:%python_provide python%{python3_other_pkgversion}-%{modname}}
Acts as a drop-in replacement to the socket module. Featuring:
- SOCKS proxy client for Python 2.6 - 3.x
- TCP and UDP both supported
- HTTP proxy client included but not supported or recommended (you should use
urllib2's or requests' own HTTP proxy interface)
- urllib2 handler included.
%description -n python%{python3_other_pkgversion}-%{modname}
%_description
This package is for Python3 version %{python3_other_version} only.
%endif
%prep
%autosetup -n %{distname}-%{version}
%autosetup -n %{pypi_name}-%{version}
# drop useless 3rdparty code
rm -rfv test/bin
%build
%py2_build
%py3_build
%{?python3_other_pkgversion: %py3_other_build}
%install
%py2_install
%py3_install
%{?python3_other_pkgversion: %py3_other_install}
%check
# https://github.com/Anorov/PySocks/issues/37
# FIXME python module named test_server is needed but not packaged
%if 0
%{?with_python2: %{__python2} setup.py test}
%if 0%{?with_python3_tests}
%{?with_python3: %{__python3} setup.py test}
%{?python3_other_pkgversion: %{__python3_other} setup.py test}
%endif
%endif
#%%check
## No tests included in the tarball...
## https://github.com/Anorov/PySocks/issues/37
#%%{__python2} setup.py test
#%%if 0%%{?with_python3}
#%%{__python3} setup.py test
#%%endif
%files -n python2-%{flatname}
%if 0%{?with_python2}
%files -n python2-%{modname}
%doc README.md
%license LICENSE
%{python2_sitelib}/socks.py*
%{python2_sitelib}/sockshandler.py*
%{python2_sitelib}/%{distname}-%{version}*
%{python2_sitelib}/%{pypi_name}-%{version}*
%endif
%files -n python%{python3_pkgversion}-%{flatname}
%if 0%{?with_python3}
%files -n python%{python3_pkgversion}-%{modname}
%doc README.md
%license LICENSE
%{python3_sitelib}/socks.py*
%{python3_sitelib}/sockshandler.py*
%{python3_sitelib}/__pycache__/*socks*
%{python3_sitelib}/%{distname}-%{version}-*
%{python3_sitelib}/%{pypi_name}-%{version}-*
%endif
%if 0%{?python3_other_pkgversion}
%files -n python%{python3_other_pkgversion}-%{modname}
%doc README.md
%license LICENSE
%{python3_other_sitelib}/socks.py*
%{python3_other_sitelib}/sockshandler.py*
%{python3_other_sitelib}/__pycache__/*socks*
%{python3_other_sitelib}/%{pypi_name}-%{version}-*
%endif
%changelog
* Sun Sep 30 2018 Raphael Groner <projects.rg@smart.ms> - 1.6.8-5
- add python3_other subpackage for epel7
- prepare removal of python2 subpackage in Fedora
- use pypi macros
- try to enable tests provided actually from tarball
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild