From 18aea701fc2d1f7bcd9daf3659a112a59e10598e Mon Sep 17 00:00:00 2001 From: tuibuilder_pel7x64builder0 Date: Sun, 7 Feb 2021 00:41:40 +0100 Subject: [PATCH] future package created Signed-off-by: tuibuilder_pel7x64builder0 --- ...re-skip_tests_with_connection_errors.patch | 50 ++++ SPECS/future.spec | 246 ++++++++++++++++++ 2 files changed, 296 insertions(+) create mode 100644 SOURCES/future-skip_tests_with_connection_errors.patch create mode 100644 SPECS/future.spec diff --git a/SOURCES/future-skip_tests_with_connection_errors.patch b/SOURCES/future-skip_tests_with_connection_errors.patch new file mode 100644 index 0000000..8005d93 --- /dev/null +++ b/SOURCES/future-skip_tests_with_connection_errors.patch @@ -0,0 +1,50 @@ +##Skipping tests due to connection failures on Fedora build-system +##See https://github.com/PythonCharmers/python-future/issues/165 + +--- tests/test_future/test_standard_library.orig.py 2014-11-21 12:52:03.000000000 +0100 ++++ tests/test_future/test_standard_library.py 2015-09-02 11:37:36.808826777 +0200 +@@ -318,7 +318,7 @@ + import builtins + self.assertTrue(hasattr(builtins, 'tuple')) + +- # @unittest.skip("ssl support has been stripped out for now ...") ++ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...") + def test_urllib_request_ssl_redirect(self): + """ + This site redirects to https://... +@@ -332,6 +332,7 @@ + # pprint(r.read().decode('utf-8')) + self.assertTrue(True) + ++ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...") + def test_moves_urllib_request_http(self): + """ + This site (python-future.org) uses plain http (as of 2014-09-23). +@@ -343,6 +343,7 @@ + data = r.read() + self.assertTrue(b'' in data) + ++ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...") + def test_urllib_request_http(self): + """ + This site (python-future.org) uses plain http (as of 2014-09-23). + +--- tests/test_future/test_requests.orig.py 2014-11-21 12:52:03.000000000 +0100 ++++ tests/test_future/test_requests.py 2015-09-02 11:39:01.509378296 +0200 +@@ -57,6 +57,7 @@ + This class tests whether the requests module conflicts with the + standard library import hooks, as in issue #19. + """ ++ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...") + def test_remove_hooks_then_requests(self): + code = """ + from future import standard_library +@@ -79,6 +80,7 @@ + self.assertTrue(True) + + ++ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...") + def test_requests_cm(self): + """ + Tests whether requests can be used importing standard_library modules + diff --git a/SPECS/future.spec b/SPECS/future.spec new file mode 100644 index 0000000..981f6ef --- /dev/null +++ b/SPECS/future.spec @@ -0,0 +1,246 @@ +%{!?python2_shortver: %global python2_shortver %(%{__python2} -c 'import sys; print(str(sys.version_info.major) + "." + str(sys.version_info.minor))')} +%{!?python3_shortver: %global python3_shortver %(%{__python3} -c 'import sys; print(str(sys.version_info.major) + "." + str(sys.version_info.minor))')} +%{!?__python2: %global __python2 /usr/bin/python2} +%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?python3_shortver: %global python3_shortver %(%{__python3} -c 'import sys; print(str(sys.version_info.major) + "." + str(sys.version_info.minor))')} + +Name: future +Summary: Easy, clean, reliable Python 2/3 compatibility +Version: 0.16.0 +Release: 6%{?dist} +License: MIT +Group: Applications/Engineering +URL: http://python-future.org/ +Source0: https://github.com/PythonCharmers/python-future/archive/v%{version}.tar.gz#/python-future-%{version}.tar.gz +BuildArch: noarch +##https://github.com/PythonCharmers/python-future/issues/165 +Patch0: %{name}-skip_tests_with_connection_errors.patch +BuildRequires: python2-devel +BuildRequires: python-setuptools +BuildRequires: numpy +BuildRequires: python-requests +BuildRequires: pytest + +%description +%{name} is the missing compatibility layer between Python 2 and +Python 3. It allows you to use a single, clean Python 3.x-compatible +codebase to support both Python 2 and Python 3 with minimal overhead. + +It provides ``future`` and ``past`` packages with backports and forward +ports of features from Python 3 and 2. It also comes with ``futurize`` and +``pasteurize``, customized 2to3-based scripts that helps you to convert +either Py2 or Py3 code easily to support both Python 2 and 3 in a single +clean Py3-style codebase, module by module. + +%package -n python2-%{name} +Summary: Easy, clean, reliable Python 2/3 compatibility +%{?python_provide:%python_provide python2-%{name}} +Provides: future = 0:%{version}-%{release} +%description -n python2-%{name} +Python2 %{name} is the missing compatibility layer between Python 2 and +Python 3. It allows you to use a single, clean Python 3.x-compatible +codebase to support both Python 2 and Python 3 with minimal overhead. + +It provides ``future`` and ``past`` packages with backports and forward +ports of features from Python 3 and 2. It also comes with ``futurize`` and +``pasteurize``, customized 2to3-based scripts that helps you to convert +either Py2 or Py3 code easily to support both Python 2 and 3 in a single +clean Py3-style codebase, module by module. + +%package -n python%{python3_pkgversion}-%{name} +Summary: Easy, clean, reliable Python 2/3 compatibility +%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-numpy +BuildRequires: python%{python3_pkgversion}-requests +BuildRequires: python%{python3_pkgversion}-pytest + +%description -n python%{python3_pkgversion}-%{name} +Python3-%{name} is the missing compatibility layer between Python 2 and +Python 3. It allows you to use a single, clean Python 3.x-compatible +codebase to support both Python 2 and Python 3 with minimal overhead. + +It provides ``future`` and ``past`` packages with backports and forward +ports of features from Python 3 and 2. It also comes with ``futurize`` and +``pasteurize``, customized 2to3-based scripts that helps you to convert +either Py2 or Py3 code easily to support both Python 2 and 3 in a single +clean Py3-style codebase, module by module. + +%prep +%setup -qc + +mv python-future-%{version} python2 +pushd python2 +find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python2}|' +%patch0 -p0 +popd + +cp -a python2 python3 +find python3 -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' + +%build +pushd python2 +CFLAGS="%{optflags}" %{__python2} setup.py build --executable="%{__python2} -s" +popd + +pushd python3 +CFLAGS="%{optflags}" %{__python3} setup.py build --executable="%{__python3} -s" +popd + +%install + +pushd python3 +CFLAGS="%{optflags}" %{__python3} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT +mv $RPM_BUILD_ROOT%{_bindir}/futurize $RPM_BUILD_ROOT%{_bindir}/python%{python3_pkgversion}-futurize +mv $RPM_BUILD_ROOT%{_bindir}/pasteurize $RPM_BUILD_ROOT%{_bindir}/python%{python3_pkgversion}-pasteurize +sed -i -e '/^#!\//, 1d' $RPM_BUILD_ROOT%{python3_sitelib}/future/backports/test/pystone.py + +for i in futurize-3 futurize-%{?python3_shortver}; do + touch $i + install -p $i $RPM_BUILD_ROOT%{_bindir} + ln -sf %{_bindir}/python%{python3_pkgversion}-futurize $RPM_BUILD_ROOT%{_bindir}/$i +done +for i in pasteurize-3 pasteurize-%{?python3_shortver}; do + touch $i + install -p $i $RPM_BUILD_ROOT%{_bindir} + ln -sf %{_bindir}/python%{python3_pkgversion}-pasteurize $RPM_BUILD_ROOT%{_bindir}/$i +done +popd + +pushd python2 +CFLAGS="%{optflags}" %{__python2} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT +cp -p $RPM_BUILD_ROOT%{_bindir}/futurize $RPM_BUILD_ROOT%{_bindir}/python%{python2_version}-futurize +cp -p $RPM_BUILD_ROOT%{_bindir}/pasteurize $RPM_BUILD_ROOT%{_bindir}/python%{python2_version}-pasteurize + +for i in futurize futurize-2 futurize-%{python2_version}; do + touch $i + install -p $i $RPM_BUILD_ROOT%{_bindir} + ln -sf %{_bindir}/python%{python2_version}-futurize $RPM_BUILD_ROOT%{_bindir}/$i +done +for i in pasteurize pasteurize-2 pasteurize-%{python2_version}; do + touch $i + install -p $i $RPM_BUILD_ROOT%{_bindir} + ln -sf %{_bindir}/python%{python2_version}-pasteurize $RPM_BUILD_ROOT%{_bindir}/$i +done +sed -i -e '/^#!\//, 1d' $RPM_BUILD_ROOT%{python2_sitelib}/future/backports/test/pystone.py +popd + +##This packages ships PEM certificates in future/backports/test directory +##It's for testing purpose, i guess. Ignore them. +%check +pushd python2 +PYTHONPATH=$PWD/build/lib py.test -v +popd + +pushd python3 +PYTHONPATH=$PWD/build/lib py.test-%{python3_pkgversion} -v +popd + +%files -n python2-%{name} +%{!?_licensedir:%global license %doc} +%doc python2/README.rst +%license python2/LICENSE.txt +%{_bindir}/futurize +%{_bindir}/futurize-2* +%{_bindir}/pasteurize +%{_bindir}/pasteurize-2* +%{_bindir}/python%{python2_version}-futurize +%{_bindir}/python%{python2_version}-pasteurize +%{python2_sitelib}/future/ +%{python2_sitelib}/past/ +%{python2_sitelib}/libfuturize/ +%{python2_sitelib}/libpasteurize/ +%{python2_sitelib}/tkinter/ +%{python2_sitelib}/_dummy_thread/ +%{python2_sitelib}/_markupbase/ +%{python2_sitelib}/_thread/ +%{python2_sitelib}/builtins/ +%{python2_sitelib}/copyreg/ +%{python2_sitelib}/html/ +%{python2_sitelib}/http/ +%{python2_sitelib}/queue/ +%{python2_sitelib}/reprlib/ +%{python2_sitelib}/socketserver/ +%{python2_sitelib}/winreg/ +%{python2_sitelib}/xmlrpc/ +%{python2_sitelib}/*.egg-info + +%files -n python%{python3_pkgversion}-%{name} +%{!?_licensedir:%global license %doc} +%license python3/LICENSE.txt +%doc python3/README.rst +%{_bindir}/futurize-3 +%{_bindir}/futurize-%{?python3_shortver} +%{_bindir}/pasteurize-3 +%{_bindir}/pasteurize-%{?python3_shortver} +%{_bindir}/python%{python3_pkgversion}-futurize +%{_bindir}/python%{python3_pkgversion}-pasteurize +%{python3_sitelib}/future/ +%{python3_sitelib}/past/ +%{python3_sitelib}/libfuturize/ +%{python3_sitelib}/libpasteurize/ +%{python3_sitelib}/*.egg-info + +%changelog +* Fri Dec 15 2017 Antonio Trande - 0.16.0-6 +- Python3 built on epel7 + +* Wed Jul 26 2017 Fedora Release Engineering - 0.16.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.16.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro HronĨok - 0.16.0-3 +- Rebuild for Python 3.6 + +* Tue Dec 13 2016 Antonio Trande - 0.16.0-2 +- BR Python2 dependencies unversioned on epel6 + +* Tue Dec 13 2016 Antonio Trande - 0.16.0-1 +- Update to 0.16.0 + +* Wed Aug 17 2016 Antonio Trande - 0.15.2-10 +- Rebuild for Python 3.5.2 + +* Tue Jul 19 2016 Fedora Release Engineering - 0.15.2-9 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Wed Feb 03 2016 Fedora Release Engineering - 0.15.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 29 2016 Antonio Trande - 0.15.2-7 +- Renamed Python2 package + +* Thu Dec 10 2015 Antonio Trande - 0.15.2-6 +- SPEC file adapted to recent guidelines for Python + +* Fri Nov 13 2015 Antonio Trande 0.15.2-5 +- Rebuild + +* Fri Nov 13 2015 Antonio Trande 0.15.2-4 +- Python3 tests temporarily disabled with Python35 + +* Tue Nov 10 2015 Fedora Release Engineering +- 0.15.2-3 - Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Mon Sep 14 2015 Antonio Trande 0.15.2-2 +- Patch0 updated + +* Fri Sep 11 2015 Antonio Trande 0.15.2-1 +- Update to 0.15.2 + +* Wed Sep 02 2015 Antonio Trande 0.15.0-4 +- Added patch to exclude failed tests (patch0) + +* Wed Aug 26 2015 Antonio Trande 0.15.0-3 +- Added python-provides macro + +* Thu Jul 30 2015 Antonio Trande 0.15.0-2 +- Fixed Python3 packaging on Fedora +- Removed configparser backport (patch1) + +* Tue Jul 28 2015 Antonio Trande 0.15.0-1 +- Initial build