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
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.