| Summary: | python3-aiohttp has dependency on multidict>=2 which is not available in F24 and F25 | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Othman Madjoudj <athmanem> |
| Component: | python-multidict | Assignee: | Igor Gnatenko <ignatenko> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 25 | CC: | a.badger, ignatenko, mail, oliveriandrea, youssef.m.sourani |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-01-01 15:23:43 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | 1394250 | ||
| Bug Blocks: | 1379157 | ||
It seems that: F25 has => python-multidict-1.1.0-1.fc25.1 F26 (rawhide) has => python-multidict-2.1.1-1.fc26 Gns3 seems require a multidict version >= 1.2.2 and < 2, but F25 has version 1.1.0 while F26 has version 2.1.1-1... @Andrea: gns3-server or -gui does not depend directly on python-multidict, it depends on python3-aiohttp which depends on python3-multidict
Another example is xcat package
$ xcat
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 635, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 943, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 834, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (multidict 1.1.0 (/usr/lib64/python3.5/site-packages), Requirement.parse('multidict<2,>=1.2.2'), {'aiohttp'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/xcat", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2958, in <module>
@_call_aside
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2944, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2971, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 637, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 829, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'multidict<2,>=1.2.2' distribution was not found and is required by aiohttp
I have the same problem gns3server Error: raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'multidict<2,>=1.2.2' distribution was not found and is required by aiohttp release : fedora 25 x86_64 gns3vserver version : gns3-server-1.5.1-1.fc25.noarch python3-aiohttp version : python3-aiohttp-0.22.5-1.fc25.x86_64 python3-multidict version : python3-multidict-1.1.0-1.fc25.1.x86_64 cat /usr/lib/python3.5/site-packages/gns3_server-1.5.1-py3.5.egg-info/requires.txt : jsonschema>=2.4.0 aiohttp>=0.21.5 Jinja2>=2.7.3 raven>=5.2.0 psutil>=3.0.0 zipstream>=1.1.3 I see that fab upgraded python-aiohttp to version 1.0.5: http://koji.fedoraproject.org/koji/packageinfo?packageID=19224 This updated the python-multidict dependency to >= 2.0. Unfortunately, python-multidict is version 1.1.0 in Fedora 24 and Fedora 25. It's only version 2.1.1 in Fedora 26: http://koji.fedoraproject.org/koji/packageinfo?packageID=22601 We either need to update python-multidict in Fedora 24 and 25 to 2.1.1 (might be okay... dnf repoquery tells me that python-aiohttp is the only package in fedora that requires python-multidict) or downgrade python-aiohttp and upgrade python-multidict to a version greater than 1.2.2. Currently aiohttp is entirely broken (not just in packages which use egg-info) because multidict 2.x renames upstr to istr. aiohttp 1.0.5 uses the new, istr name which isn't found in the version of python-multidict that we're shipping: >>> import aiohttp Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.5/site-packages/aiohttp/__init__.py", line 9, in <module> from . import hdrs # noqa File "/usr/lib64/python3.5/site-packages/aiohttp/hdrs.py", line 2, in <module> from multidict import istr ImportError: cannot import name 'istr' CC'ing the python-ultidict maintainer so the package maintainers can work out what to do. 1.0.5 has also a dependency on async_timeout which is not available in Fedora afaik. $ cat /usr/lib64/python3.5/site-packages/aiohttp-1.0.5-py3.5.egg-info/requires.txt chardet multidict>=2.0 async_timeout ^^^^^^^^^^^^^ I built (building) python-multidict-2.1.2 for F24 / F25, so once you are done with other package -- feel free to submit update for multidict. I've submitted async_timeout for review RHBZ #1394250 multidict is available on F24/F25. |
Description of problem: python3-aiohttp-0.22.5-1 egg-info has dependency on multidict>=1.2.2,<2 which is not available in F25 (latest in repos is 1.1.0) This break GNS3 for example. Below some details. Version-Release number of selected component (if applicable): python3-aiohttp-0.22.5-1.fc25.x86_64 How reproducible: Update while updates-testing repo is enabled then run: gns3server Additional info: ]$ sudo dnf repoquery *multidict* Last metadata expiration check: 0:11:03 ago on Tue Oct 4 21:56:21 2016. python2-orderedmultidict-0:0.7.6-2.fc25.noarch python3-multidict-0:1.1.0-1.fc25.1.x86_64 python3-orderedmultidict-0:0.7.6-2.fc25.noarch ]$ cat /usr/lib64/python3.5/site-packages/aiohttp-0.22.5-py3.5.egg-info/requires.txt chardet multidict>=1.2.2,<2 ]$ gns3server Traceback (most recent call last): File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 635, in _build_master ws.require(__requires__) File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 943, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 834, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.ContextualVersionConflict: (multidict 1.1.0 (/usr/lib64/python3.5/site-packages), Requirement.parse('multidict<2,>=1.2.2'), {'aiohttp'}) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/gns3server", line 5, in <module> from pkg_resources import load_entry_point File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2958, in <module> @_call_aside File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2944, in _call_aside f(*args, **kwargs) File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2971, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 637, in _build_master return cls._build_from_requirements(__requires__) File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 829, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'multidict<2,>=1.2.2' distribution was not found and is required by aiohttp