Hide Forgot
This package does not provide "python2-<module>". As per Python packaging guidelines [0], when there are two versions of module "foo", the two packages must provide: "python3-foo" for Python 3 "python2-foo" for Python 2 "python-foo" for the system default Python (currently 2, but this might change in the future) Please use the %python_provide macro [1] to specify the correct provides. It's fine to do this in Rawhide only. If anything is unclear, or if you need any kind of assistance with this issue, you can ask on IRC (#fedora-python on Freenode), or reply here. We'll be happy to help! [0] https://fedoraproject.org/wiki/Packaging:Python [1] https://fedoraproject.org/wiki/Packaging:Python#The_.25python_provide_macro
(In reply to Charalampos Stratakis from comment #0) > Please use the %python_provide macro [1] to specify the correct provides. It is already being used: http://pkgs.fedoraproject.org/cgit/rpms/pyflakes.git/tree/pyflakes.spec#n19 > %{?python_provide:%python_provide python2-%{name}} The expanded Provides doesn't seem to make it to the built packages though. Any ideas why?
(In reply to Ville Skyttä from comment #1) > (In reply to Charalampos Stratakis from comment #0) > > Please use the %python_provide macro [1] to specify the correct provides. > > It is already being used: > http://pkgs.fedoraproject.org/cgit/rpms/pyflakes.git/tree/pyflakes.spec#n19 > > %{?python_provide:%python_provide python2-%{name}} > > The expanded Provides doesn't seem to make it to the built packages though. > Any ideas why? The macro is supposed to expand by being used with a python2-<foo> subpackage, thus making the python-<foo> namespace a virtual provides. As it seems now it provides a virtual "python-<foo>" name. As it is now the SPEC file of pyflakes, the virtual provides of the python2-<foo> and python-<foo> need to either explicitly be declared with: Provides: python-pyflakes = %{version}-%{release} Provides: python2-pyflakes = %{version}-%{release} And then omitting the macro. I would recommend though, as pyflakes has both python2 and python3 support, to make the package compliant with the more recent packaging as well as naming [1] guidelines. [1] https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines#Python_modules Attaching a patch for that. Already tested it from copr and users who have already installed the package can do a dnf update and python2-pyflakes will replace the pyflakes rpm (and also virtually provides the python and python2 namespace). Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=16682480 Output of rpm -qp --provides on python2-pyflakes-1.3.0-3.fc26.noarch.rpm: pyflakes = 1.3.0-3.fc26 python-pyflakes = 1.3.0-3.fc26 python2-pyflakes = 1.3.0-3.fc26 python2.7dist(pyflakes) = 1.3.0 python2dist(pyflakes) = 1.3.0
Created attachment 1226380 [details] Modernize SPEC and fix the python2 namespaces.
Comment on attachment 1226380 [details] Modernize SPEC and fix the python2 namespaces. Patch looks otherwise ok on surface, but breaks EL6 build; python2-setuptools doesn't exist for it. https://kojipkgs.fedoraproject.org//work/tasks/421/16800421/root.log
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'.
The Provides was added in 1.5.0-4. Other modernization maybe follows as part of the ongoing effort on Python 3 as default currently being discussed on fedora-devel.