%bcond_without tests Name: python-aiohttp Version: 3.8.4 Release: 1%{?dist} Summary: Python HTTP client/server for asyncio License: Apache-2.0 URL: https://github.com/aio-libs/aiohttp # We use requirements/*.txt to generate test dependencies; these files are not # present in the PyPI sdist, so we must use the GitHub archive. Source0: %{url}/archive/v%{version}/aiohttp-%{version}.tar.gz # downstream only patch Patch: 0001-Unbundle-llhttp.patch # [3.8] Make the 3.10 related xfails non-strict # https://github.com/aio-libs/aiohttp/pull/7178 # Fixes: # python-aiohttp: FTBFS in Fedora 36, 37, and 38/Rawhide # https://bugzilla.redhat.com/show_bug.cgi?id=2158175 Patch: %{url}/pull/7178.patch BuildRequires: gcc BuildRequires: llhttp-devel BuildRequires: python3-devel BuildRequires: python3dist(cython) %global common_description %{expand: Python HTTP client/server for asyncio which supports both the client and the server side of the HTTP protocol, client and server websocket, and webservers with middlewares and pluggable routing.} %description %{common_description} %package -n python3-aiohttp Summary: %{summary} Recommends: python3-aiohttp+speedups %description -n python3-aiohttp %{common_description} %pyproject_extras_subpkg -n python3-aiohttp speedups %prep %autosetup -p 1 -n aiohttp-%{version} # Remove bundled llhttp rm -rvf vendor/llhttp # Disable test coverage reports # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters sed -r -i '/--cov=/d' setup.cfg # We don’t use %%tox because it just runs pytest with coverage analysis; rather # than patching out the coverage invocation, we can run pytest directly. Still, # it is useful to generate test dependencies from tox.ini. # Upstream supports both brotlipy and Brotli, in theory; we have the latter. sed -r -i \ -e 's/^[[:blank:]]*coverage$/# &/' \ -e 's/^[[:blank:]]*-e[[:blank:]]+\.$/# &/' \ -e 's/brotlipy/Brotli/' \ tox.ini # Unpin dependency versions in requirements files, so we can use them to # generate additional dependencies. Comment out a few optional test # dependencies that are not yet packaged, as well as coverage dependencies. sed -r -i \ -e 's/==[^#;]+//' \ -e 's/^(proxy[-\.]py|python-on-whales|wait-for-it)/# &/' \ -e 's/^(coverage|pytest-cov|mypy)/# &/' \ -e 's/^(setuptools-git)/# &/' \ requirements/*.txt %if 0%{?el9} # The python-cchardet package, specified for Python 3.9 and older, was never # built for EPEL9, and was orphaned and retired in F37. It should be fine to # patch this out of the “speedups” extra, as python-charset-normalizer should # do the same job anyway. sed -r -i 's/^[[:blank:]]*cchardet;/# &/' setup.cfg requirements/*.txt %endif # Remove files generated by Cython to regenerate them grep -rl '/\* Generated by Cython' | xargs -r rm -v %generate_buildrequires %{pyproject_buildrequires \ requirements/base.txt %{?with_tests:requirements/test.txt -t}} %build # Recreate removed Cython files using commands extracted from the Makefile. # We don't run make directly, as it pip-installs Cython. # # We don't need a real git checkout, but we do need a .git directory to help # certain scripts find the root of the source tree. mkdir -p .git # See the aiohttp/_find_header.c target in the Makefile; this also generates # _headers.pyi. %{python3} tools/gen.py # Now we can invoke Cython. %{python3} -m cython -3 aiohttp/*.pyx -I aiohttp # Now we need to remove the .git directory again, because its presence will # lead the actual build astray, something like: # Install submodules when building from git clone # Hint: # git submodule update --init rm -rvf .git # Now we can actually proceed with building the package. %pyproject_wheel %install %pyproject_install %pyproject_save_files aiohttp %check %if %{with tests} # Fixes problems importing compiled extensions from subprocesses. export PYTHONSAFEPATH=1 # Work around RHBZ#2183385 # python-aiohttp fails to build with the latest setuptools version # https://bugzilla.redhat.com/show_bug.cgi?id=2183385 export PYTHONWARNINGS='ignore::DeprecationWarning:pkg_resources' # Setting PYTHONSAFEPATH works only for Python 3.11+, so we must skip any # affected tests on older Pythons. %if v"%{python3_version}" < v"3.11" k="${k-}${k+ and }not test_no_warnings" %endif # test_proxy_functional.py requires python3dist(proxy-py) ignore="${ignore-} --ignore=tests/test_proxy_functional.py" # test_client_session_timeout_zero requires DNS k="${k-}${k+ and }not test_client_session_timeout_zero" # Unexplained flaky error during teardown: # E RuntimeError: Event loop is closed k="${k-}${k+ and }not test_static_file_if_match" k="${k-}${k+ and }not test_static_file_if_none_match" %ifarch %{arm32} # Unexplained error during teardown: # ResourceWarning: unclosed transport <_SelectorSocketTransport fd=15> k="${k-}${k+ and }not test_tcp_connector_fingerprint_fail[pyloop]" %endif %pytest ${ignore-} -k "${k-}" %else %pyproject_check_import -e aiohttp.pytest_plugin %endif %files -n python3-aiohttp -f %{pyproject_files} %doc CHANGES.rst %doc HISTORY.rst %doc README.rst %changelog * Mon Feb 13 2023 Benjamin A. Beasley - 3.8.4-1 - Update to 3.8.4 (close RHBZ#2169212) * Fri Jan 20 2023 Benjamin A. Beasley - 3.8.3-6 - Make three xfails non-strict (close RHBZ#2158175) * Fri Jan 20 2023 Fedora Release Engineering - 3.8.3-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sat Dec 03 2022 Benjamin A. Beasley - 3.8.3-4 - Stop patching out python-re-assert; it is now in EPEL9 * Thu Nov 03 2022 Benjamin A. Beasley - 3.8.3-3 - Skip a test that leaks a socket file descriptor on 32-bit ARM * Sat Oct 08 2022 Benjamin A. Beasley - 3.8.3-2 - Port to pyproject-rpm-macros - Add metapackage for “speedups” extra - Update License to SPDX - Add conditionals for EPEL9 support * Mon Sep 26 2022 Tomáš Hrnčiar - 3.8.3-1 - Update to 3.8.3 * Thu Aug 18 2022 Stephen Gallagher - 3.8.1-8 - Rebuilt for llhttp soname bump * Fri Jul 22 2022 Fedora Release Engineering - 3.8.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Jun 16 2022 Miro Hrončok - 3.8.1-6 - Skip less tests, set the global event loop in _setupAsyncioRunner * Tue Jun 14 2022 Python Maint - 3.8.1-5 - Rebuilt for Python 3.11 * Thu Apr 28 2022 Carl George - 3.8.1-4 - Add upstream patch for pytest 7 compatibility - Resolves: rhbz#2059944 * Fri Jan 21 2022 Fedora Release Engineering - 3.8.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Dec 24 2021 Benjamin A. Beasley - 3.8.1-2 - Stop disabling debug packages - Unbundle llhttp - Run the tests * Wed Dec 01 2021 Fabian Affolter - 3.8.1-1 - Update to latest upstream release 3.8.1 * Thu Nov 25 2021 Fabian Affolter - 3.8.0-1 - Update to latest upstream release 3.8.0 * Fri Jul 23 2021 Fedora Release Engineering - 3.7.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Fri Jun 04 2021 Python Maint - 3.7.4-2 - Rebuilt for Python 3.10 * Sat Feb 27 2021 Fabian Affolter - 3.7.4-1 - Update to latest upstream release 3.7.4 * Thu Feb 04 2021 Miro Hrončok - 3.7.3-3 - Allow installation with chardet 4 * Wed Jan 27 2021 Fedora Release Engineering - 3.7.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Dec 11 2020 Fabian Affolter - 3.7.3-1 - Update to latest upstream release 3.7.3 * Wed Dec 09 2020 Fabian Affolter - 3.7.2-1 - Update to latest upstream release 3.7.2 * Mon Oct 26 2020 Fabian Affolter - 3.7.1-1 - Update to new upstream version 3.7.1 * Wed Oct 14 2020 Fabian Affolter - 3.6.3-1 - Update to new upstream version 3.6.3 * Tue Jul 28 2020 Fedora Release Engineering - 3.6.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Sun May 24 2020 Miro Hrončok - 3.6.2-4 - Rebuilt for Python 3.9 * Wed Apr 08 2020 Carl George - 3.6.2-3 - Don't build for s390x on EL8 * Thu Jan 30 2020 Fedora Release Engineering - 3.6.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Fri Oct 25 2019 Fabian Affolter - 3.6.2-1 - Update to new upstream version 3.6.2 * Sat Sep 21 2019 Fabian Affolter - 3.6.1-1 - Update to new upstream version 3.6.1 * Wed Sep 18 2019 Fabian Affolter - 3.6.0-1 - Update to new upstream version 3.6.0 * Mon Aug 19 2019 Miro Hrončok - 3.5.4-5 - Rebuilt for Python 3.8 * Fri Jul 26 2019 Fedora Release Engineering - 3.5.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Sat Jun 01 2019 Fabian Affolter - 3.5.4-3 - Remove dep generator * Sat Feb 02 2019 Fedora Release Engineering - 3.5.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Sat Jan 12 2019 Fabian Affolter - 3.5.4-1 - Update to new upstream version 3.5.4 * Fri Jan 11 2019 Fabian Affolter - 3.5.3-1 - Update to new upstream version 3.5.3 * Thu Jan 10 2019 Fabian Affolter - 3.5.2-1 - Update to new upstream version 3.5.2 * Wed Dec 26 2018 Fabian Affolter - 3.5.1-1 - Update to new upstream version 3.5.1 * Thu Sep 06 2018 Fabian Affolter - 3.4.4-1 - Update to new upstream version 3.4.4 (rhbz#1625634) * Wed Sep 05 2018 Igor Gnatenko - 3.4.3-1 - Update to 3.4.3 * Sun Sep 02 2018 Igor Gnatenko - 3.4.2-1 - Update to 3.4.2 * Mon Aug 27 2018 Igor Gnatenko - 3.4.0-4 - Unbundle http-parser (rhbz#1622508) * Mon Aug 27 2018 Fabian Affolter - 3.4.0-3 - Fix rhbz#1622310 * Sat Aug 25 2018 Igor Gnatenko - 3.4.0-2 - Recommend aiodns * Sat Aug 25 2018 Fabian Affolter - 3.4.0-1 - Update to new upstream version 3.4.0 (rhbz#1622288) * Fri Jul 13 2018 Fedora Release Engineering - 3.3.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Tue Jun 19 2018 Miro Hrončok - 3.3.2-2 - Rebuilt for Python 3.7 * Tue Jun 12 2018 Fabian Affolter - 3.3.2-1 - Update to new upstream version 3.3.2 * Wed Jun 06 2018 Fabian Affolter - 3.3.1-1 - Update to new upstream version 3.3.1 * Fri Jun 01 2018 Fabian Affolter - 3.3.0-1 - Update to new upstream version 3.3.0 (rhbz#1585170) * Thu May 10 2018 Fabian Affolter - 3.2.1-1 - Update to new upstream version 3.2.1 (rhbz#1576796) * Mon May 07 2018 Fabian Affolter - 3.2.0-1 - Update to new upstream version 3.2.0 (rhbz#1575435) * Sat Apr 14 2018 Fabian Affolter - 3.1.3-1 - Update to new upstream version 3.1.3 (rhbz#1567093) * Fri Apr 06 2018 Fabian Affolter - 3.1.2-1 - Update to new upstream version 3.1.2 * Tue Mar 27 2018 Fabian Affolter - 3.1.1-1 - Update to new upstream version 3.1.1 * Fri Mar 23 2018 Fabian Affolter - 3.1.0-1 - Update to new upstream version 3.1.0 * Thu Mar 15 2018 Fabian Affolter - 3.0.9-1 - Update to new upstream version 3.0.9 (rhbz#1556612) * Tue Mar 13 2018 Fabian Affolter - 3.0.8-1 - Update to new upstream version 3.0.8 * Fri Mar 09 2018 Fabian Affolter - 3.0.7-1 - Update to new upstream version 3.0.7 (rhbz#1548601) * Tue Mar 06 2018 Fabian Affolter - 3.0.6-1 - Update to new upstream version 3.0.6 (rhbz#1548601) * Wed Feb 28 2018 Fabian Affolter - 3.0.5-1 - Update to new upstream version 3.0.5 (rhbz#1548601) * Mon Feb 12 2018 Fabian Affolter - 3.0.1-1 - Update to new upstream version 3.0.1 * Mon Feb 12 2018 Fabian Affolter - 3.0.0-1 - Update to new upstream version 3.0.0 (rhbz#1544413) * Fri Feb 09 2018 Fedora Release Engineering - 2.3.10-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Fri Feb 02 2018 Fabian Affolter - 2.3.10-1 - Update to new upstream version 2.3.10 (rhbz#1541369) * Fri Jan 19 2018 Igor Gnatenko - 2.3.9-2 - Enable usage of dependency generator * Wed Jan 17 2018 Igor Gnatenko - 2.3.9-1 - Update to 2.3.9 * Mon Jan 15 2018 Fabian Affolter - 2.3.8-1 - Update to new upstream version 2.3.8 * Wed Dec 27 2017 Fabian Affolter - 2.3.7-1 - Update to new upstream version 2.3.7 (rhbz#1529275) * Mon Dec 04 2017 Fabian Affolter - 2.3.6-1 - Update to new upstream version 2.3.6 * Fri Dec 01 2017 Fabian Affolter - 2.3.5-1 - Update to new upstream version 2.3.5 * Fri Nov 17 2017 Fabian Affolter - 2.3.3-1 - Update to new upstream version 2.3.3 (rhbz#1514434) * Thu Nov 02 2017 Igor Gnatenko - 2.3.2-1 - Update to 2.3.2 * Fri Oct 20 2017 Fabian Affolter - 2.3.1-1 - Update to new upstream version 2.3.1 (rhbz#1504339) * Wed Oct 18 2017 Fabian Affolter - 2.3.0-1 - Update to new upstream version 2.3.0 * Fri Aug 04 2017 Fabian Affolter - 2.2.5-1 - Update to new upstream version 2.2.5 * Thu Aug 03 2017 Fabian Affolter - 2.2.4-1 - Update to new upstream version 2.2.4 * Thu Aug 03 2017 Fedora Release Engineering - 2.2.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Thu Jul 27 2017 Fedora Release Engineering - 2.2.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Thu Jul 06 2017 Fabian Affolter - 2.2.3-1 - Update to new upstream version 2.2.3 (rhbz#1467742) * Mon Jul 03 2017 Fabian Affolter - 2.2.2-1 - Update to new upstream version 2.2.2 * Mon Jul 03 2017 Fabian Affolter - 2.2.1-1 - Update to new upstream version 2.2.1 (rhbz#1467114) * Tue Jun 20 2017 Fabian Affolter - 2.2.0-1 - Update to new upstream version 2.2.0 (rhbz#1463234) * Sat May 27 2017 Fabian Affolter - 2.1.0-1 - Update URL - Update to new upstream version 2.1.0 (rhbz#1456063) * Fri Apr 14 2017 Igor Gnatenko - 2.0.7-1 - Update to 2.0.7 * Fri Apr 07 2017 Igor Gnatenko - 2.0.6-1 - Update to 2.0.6 * Thu Mar 30 2017 Igor Gnatenko - 2.0.5-1 - Update to 2.0.5 * Tue Mar 28 2017 Igor Gnatenko - 2.0.4-1 - Update to 2.0.4 * Sat Mar 25 2017 Fabian Affolter - 2.0.3-1 - Update to new upstream version 2.0.3 (rhbz#1435844) * Thu Mar 23 2017 Igor Gnatenko - 2.0.2-3 - Specify proper yarl version * Thu Mar 23 2017 Igor Gnatenko - 2.0.2-2 - Fix requires * Thu Mar 23 2017 Fabian Affolter - 2.0.2-1 - Update to new upstream version 2.0.2 (rhbz#1432690) * Wed Mar 15 2017 Igor Gnatenko - 1.3.4-1 - Update to 1.3.4 * Mon Feb 20 2017 Fabian Affolter - 1.3.3-1 - Update to new upstream version 1.3.3 (rhbz#1423053) * Thu Feb 09 2017 Igor Gnatenko - 1.3-1 - Update to 1.3 * Sun Jan 22 2017 Fabian Affolter - 1.2-1 - Update to new upstream version 1.2 - Add new requirement - Add real description * Sun Jan 01 2017 Igor Gnatenko - 1.0.5-3 - Add missing dependency on async-timeout (RHBZ #1391287) * Mon Dec 19 2016 Miro Hrončok - 1.0.5-2 - Rebuild for Python 3.6 * Mon Oct 31 2016 Fabian Affolter - 1.0.5-1 - Update to new upstream version 1.0.5 * Tue Aug 30 2016 Fabian Affolter - 0.22.5-1 - Update to new upstream version 0.22.5 * Wed Aug 10 2016 Igor Gnatenko - 0.21.6-4 - Move requires under real subpackage * Tue Jul 19 2016 Fedora Release Engineering - 0.21.6-3 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Thu Jun 23 2016 Igor Gnatenko - 0.21.6-2 - Add missing Requires: python3-multidict (RHBZ #1349576) * Thu May 12 2016 Igor Gnatenko - 0.21.6-1 - Update to 0.21.6 * Tue Mar 22 2016 Fabian Affolter - 0.21.5-1 - Update to new upstream version 0.21.5 * Sat Mar 05 2016 Fabian Affolter - 0.21.2-1 - Update to new upstream version 0.21.2 * Sun Feb 14 2016 Fabian Affolter - 0.21.1-1 - Add requirements (rhbz#1300186) - Update to new upstream version 0.21.1 * Thu Feb 04 2016 Fabian Affolter - 0.21.0-1 - Update to new upstream version 0.21.0 * Thu Feb 04 2016 Fedora Release Engineering - 0.19.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Fri Nov 27 2015 Fabian Affolter - 0.19.0-1 - Update py3 - Update to new upstream version 0.19.0 * Tue Nov 10 2015 Fedora Release Engineering - 0.17.4-2 - Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 * Fri Oct 16 2015 Fabian Affolter - 0.17.4-1 - Update to new upstream version 0.17.4 * Sat Aug 01 2015 Fabian Affolter - 0.16.6-2 - Fix license * Sat Aug 01 2015 Fabian Affolter - 0.16.6-1 - Update to lastest upstream release 0.16.6 (rhbz#1231670) * Thu Jun 18 2015 Fedora Release Engineering - 0.16.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Mon Jun 15 2015 Fabian Affolter - 0.16.5-1 - Update to lastest upstream release 0.16.5 (rhbz#1231670) * Wed Nov 26 2014 Fabian Affolter - 0.10.2-1 - Update to lastest upstream release 0.10.2 * Wed Oct 08 2014 Fabian Affolter - 0.9.1-2 - Build only a py3 package * Wed Feb 26 2014 Fabian Affolter - 0.9.1-1 - Initial package for Fedora