Bug 2332436 - Please branch and build python3-aiohttp in epel10
Summary: Please branch and build python3-aiohttp in epel10
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-aiohttp
Version: epel10
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2345191 2347375 (view as bug list)
Depends On: 2331006 2345826 2345872
Blocks: 2332437 2347373 EPELPackagersSIG 2333516 2334175 2346170 2349270
TreeView+ depends on / blocked
 
Reported: 2024-12-15 00:46 UTC by Romain Geissler
Modified: 2025-03-18 02:41 UTC (History)
7 users (show)

Fixed In Version: python-aiohttp-3.11.13-1.el10_1 python-aiohttp-3.11.13-1.el10_0
Clone Of:
Environment:
Last Closed: 2025-03-10 01:03:17 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Romain Geissler 2024-12-15 00:46:30 UTC
Hi,

Please branch and build python3-aiohttp in epel10.

It will require this pull request to build fine: https://src.fedoraproject.org/rpms/python-aiohttp/pull-request/43

Cheers,
Romain

Comment 1 Jonathan Wright 2025-01-03 19:49:04 UTC
Bump.  This is blocking certbot in EPEL10 (through a chain of deps).

Comment 2 Ben Beasley 2025-01-03 23:11:07 UTC
I’m happy to help branch and build this, but please note the missing dependencies blocking this bug. Someone (not me) has to take responsibility for getting those branched and built first.

Additionally, aiohttp upstream has been in 3.11.x for some time, with 3.11.11 as the latest release. The primary maintainer of python-aiohttp in Fedora started work on that by uploading a new dependency, python-propcache, for review in bug 2318349. It would be great to get python-aiohttp up to date before branching since it has historically had reasonably regular security-related fixes.

Comment 3 Kaleb KEITHLEY 2025-02-12 13:28:59 UTC
*** Bug 2345191 has been marked as a duplicate of this bug. ***

Comment 4 Ben Beasley 2025-02-20 13:07:19 UTC
In https://src.fedoraproject.org/rpms/python-aiohttp/pull-request/50, I conditionalized the BuildRequires and integration tests for gunicorn (bug 2331004) and uvloop (bug 2332434). That leaves only yarl (bug 2345826) and propcache (bug 2345872) as hard blockers.

In a local mock build on EPEL10 with the above PR and with the above, there are still a couple of EPEL10-specific test failures that I don’t fully understand:

=================================== FAILURES ===================================
___________________ test_empty_header_name[c-parser-pyloop] ____________________
[gw1] linux -- Python 3.12.9 /usr/bin/python3

parser = <aiohttp._http_parser.HttpRequestParser object at 0x7f0f45c66560>

    def test_empty_header_name(parser) -> None:
        text = b"GET /test HTTP/1.1\r\n:test\r\n\r\n"
>       with pytest.raises(http_exceptions.BadHttpMessage):
E       Failed: DID NOT RAISE <class 'aiohttp.http_exceptions.BadHttpMessage'>

parser     = <aiohttp._http_parser.HttpRequestParser object at 0x7f0f45c66560>
text       = b'GET /test HTTP/1.1\r\n:test\r\n\r\n'

tests/test_http_parser.py:672: Failed
_ test_invalid_header_spacing[c-parser-pyloop-pre-empty-post-empty-name-empty] _
[gw10] linux -- Python 3.12.9 /usr/bin/python3

parser = <aiohttp._http_parser.HttpRequestParser object at 0x7f8670d2a400>
pad1 = b'', pad2 = b'', hdr = b''

    @pytest.mark.parametrize("hdr", [b"", b"foo"], ids=["name-empty", "with-name"])
    @pytest.mark.parametrize("pad2", _pad.keys(), ids=["post-" + n for n in _pad.values()])
    @pytest.mark.parametrize("pad1", _pad.keys(), ids=["pre-" + n for n in _pad.values()])
    def test_invalid_header_spacing(parser, pad1: bytes, pad2: bytes, hdr: bytes) -> None:
        text = b"GET /test HTTP/1.1\r\n%s%s%s: value\r\n\r\n" % (pad1, hdr, pad2)
        expectation = pytest.raises(http_exceptions.BadHttpMessage)
        if pad1 == pad2 == b"" and hdr != b"":
            # one entry in param matrix is correct: non-empty name, not padded
            expectation = nullcontext()
>       with expectation:
E       Failed: DID NOT RAISE <class 'aiohttp.http_exceptions.BadHttpMessage'>

expectation = <_pytest.python_api.RaisesContext object at 0x7f8670fb4380>
hdr        = b''
pad1       = b''
pad2       = b''
parser     = <aiohttp._http_parser.HttpRequestParser object at 0x7f8670d2a400>
text       = b'GET /test HTTP/1.1\r\n: value\r\n\r\n'

tests/test_http_parser.py:666: Failed
[…]
=========================== short test summary info ============================
[…]
XFAIL tests/test_connector.py::test_del_with_scheduled_cleanup[pyloop]
XFAIL tests/test_client_functional.py::test_broken_connection[pyloop]
XFAIL tests/test_http_parser.py::test_parse_uri_utf8[c-parser-pyloop] - reason: Not valid HTTP. Maybe update py-parser to reject later.
XFAIL tests/test_http_parser.py::test_http_request_parser_utf8_request_line[c-parser-pyloop] - Regression test for Py parser. May match C behaviour later.
XFAIL tests/test_http_parser.py::test_parse_unusual_request_line[c-parser-pyloop] - Regression test for Py parser. May match C behaviour later.
FAILED tests/test_http_parser.py::test_empty_header_name[c-parser-pyloop] - F...
FAILED tests/test_http_parser.py::test_invalid_header_spacing[c-parser-pyloop-pre-empty-post-empty-name-empty]
====== 2 failed, 3351 passed, 15 skipped, 5 xfailed, 5 warnings in 34.59s ======

These remind me of https://github.com/aio-libs/aiohttp/issues/8291, and I think they are related to the fact that the security fix in llhttp 9.2 was backported to llhttp 9.1.3 in EL10 rather than API/ABI-incompatibly updating llhttp. I am not up for the task of double-checking the backport or trying to understand the details of its interaction with python-aiohttp, so I guess skipping these two tests with a comment about the situation will be our only reasonable way forward.

Comment 5 Michel Lind 2025-02-24 20:12:05 UTC
*** Bug 2347375 has been marked as a duplicate of this bug. ***

Comment 6 Ben Beasley 2025-02-27 12:41:59 UTC
Since https://src.fedoraproject.org/rpms/python-aiohttp/pull-request/50 is now merged to Rawhide, an EPEL10 branch could be based on the current state of Rawhide.

I have conditionalized python-gunicorn (bug 2331004) and python-uvloop (bug 2332434) integration tests, so those are no longer blockers for EPEL10, but python-yarl (bug 2345826) and python-propcache (bug 2345872) are still missing hard dependencies. If those two were branched, then that would be enough for a successful python-aiohttp build.

Comment 7 Kaleb KEITHLEY 2025-02-27 13:18:53 UTC
My scratch build (https://koji.fedoraproject.org/koji/taskinfo?taskID=129656563, 
https://kojipkgs.fedoraproject.org/work/tasks/6579/129656579/root.log)  seems to show that only python-yarl is needed (In reply to Ben Beasley from comment #6)
> Since https://src.fedoraproject.org/rpms/python-aiohttp/pull-request/50 is
> now merged to Rawhide, an EPEL10 branch could be based on the current state
> of Rawhide.
> 
> I have conditionalized python-gunicorn (bug 2331004) and python-uvloop (bug
> 2332434) integration tests, so those are no longer blockers for EPEL10, but
> python-yarl (bug 2345826) and python-propcache (bug 2345872) are still
> missing hard dependencies. If those two were branched, then that would be
> enough for a successful python-aiohttp build.

Are you sure python-propcache is still needed?  My scratch build (https://koji.fedoraproject.org/koji/taskinfo?taskID=129656563, 
https://kojipkgs.fedoraproject.org/work/tasks/6579/129656579/root.log) is only complaining about python-yarl.

Comment 8 Kaleb KEITHLEY 2025-02-27 13:20:29 UTC
(In reply to Kaleb KEITHLEY from comment #7)
> My scratch build
> (https://koji.fedoraproject.org/koji/taskinfo?taskID=129656563, 
> https://kojipkgs.fedoraproject.org/work/tasks/6579/129656579/root.log) 
> seems to show that only python-yarl is needed (In reply to Ben Beasley from
> comment #6)
> > Since https://src.fedoraproject.org/rpms/python-aiohttp/pull-request/50 is
> > now merged to Rawhide, an EPEL10 branch could be based on the current state
> > of Rawhide.
> > 
> > I have conditionalized python-gunicorn (bug 2331004) and python-uvloop (bug
> > 2332434) integration tests, so those are no longer blockers for EPEL10, but
> > python-yarl (bug 2345826) and python-propcache (bug 2345872) are still
> > missing hard dependencies. If those two were branched, then that would be
> > enough for a successful python-aiohttp build.
> 
> Are you sure python-propcache is still needed?  My scratch build
> (https://koji.fedoraproject.org/koji/taskinfo?taskID=129656563, 
> https://kojipkgs.fedoraproject.org/work/tasks/6579/129656579/root.log) is
> only complaining about python-yarl.

My bad. I see that it's python-yarl requires python-propcache

Comment 9 Ben Beasley 2025-02-27 13:54:26 UTC
(In reply to Kaleb KEITHLEY from comment #8)
> 
> My bad. I see that it's python-yarl requires python-propcache

Not that the distinction is terribly important, but both

  python-aiohttp -> python-yarl -> python-propcache

and

  python-aiohttp -> python-propcache

exist as dependency chains. See:

  https://github.com/aio-libs/aiohttp/blob/6f09c515993ce754f009428df55b28bb77d202a6/setup.cfg#L60-L61
  https://github.com/aio-libs/yarl/blob/5862a36c1a228e28bd830eedb5c2ef2b39523657/setup.cfg#L70

Comment 10 Ben Beasley 2025-02-27 13:58:09 UTC
I see, Fabian already branched python-propcache to EPEL10, https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-b53fd9d1bd, but didn’t get around to closing the bug. Then you are right that only python-yarl is missing now.

Comment 11 Kaleb KEITHLEY 2025-02-28 12:48:04 UTC
scratch build for epel10.1 https://koji.fedoraproject.org/koji/taskinfo?taskID=129681906

Comment 12 Ben Beasley 2025-02-28 12:59:13 UTC
Ok, I see python-yarl was branched and built in https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-4f8708df9f, it went straight to stable due to karma, and a buildroot override https://bodhi.fedoraproject.org/overrides/python-yarl-1.18.3-1.el10_1 is active.

I can branch, build, and maintain this as a python-packagers-sig member and frequent group co-maintainer of the package. I’m inclined to wait a day or so for python-yarl to actually appear in the repos rather than relying on the buildroot override.

If you need this in EPEL10.0, you’ll have to get python-yarl built there as well.

Comment 13 Kaleb KEITHLEY 2025-03-01 11:00:19 UTC
(In reply to Ben Beasley from comment #12)
> 
> If you need this in EPEL10.0, you’ll have to get python-yarl built there as
> well.

python-yarl is built in epel10.0. Please build for both epel10.0 and epel10(.1)  Thanks

Comment 14 Fedora Update System 2025-03-01 13:00:57 UTC
FEDORA-EPEL-2025-b92d9dd8c6 (python-aiohttp-3.11.13-1.el10_1) has been submitted as an update to Fedora EPEL 10.1.
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-b92d9dd8c6

Comment 15 Ben Beasley 2025-03-01 13:01:41 UTC
EPEL10.0 to follow after https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-9d18d75ba0 reaches stable.

Comment 16 Fedora Update System 2025-03-02 01:22:17 UTC
FEDORA-EPEL-2025-b92d9dd8c6 has been pushed to the Fedora EPEL 10.1 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-b92d9dd8c6

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2025-03-09 11:15:13 UTC
FEDORA-EPEL-2025-fc7b3dad18 (python-aiohttp-3.11.13-1.el10_0) has been submitted as an update to Fedora EPEL 10.0.
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-fc7b3dad18

Comment 18 Fedora Update System 2025-03-10 01:03:17 UTC
FEDORA-EPEL-2025-b92d9dd8c6 (python-aiohttp-3.11.13-1.el10_1) has been pushed to the Fedora EPEL 10.1 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 19 Fedora Update System 2025-03-10 02:37:43 UTC
FEDORA-EPEL-2025-fc7b3dad18 has been pushed to the Fedora EPEL 10.0 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-fc7b3dad18

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 20 Fedora Update System 2025-03-18 02:41:12 UTC
FEDORA-EPEL-2025-fc7b3dad18 (python-aiohttp-3.11.13-1.el10_0) has been pushed to the Fedora EPEL 10.0 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.