Description of problem: The python3-dbus package doesn't provide python3.7dist(dbus-python) because it hasn't been rebuild on F30/rawhide yet. The missing alias breaks FreeIPA's CI on rawhide. rpmbuild seems to automatically create a dependency on python3.7dist(dbus-python) for "Requires: python3-dbus". Version-Release number of selected component (if applicable): dbus-libs-1.12.12-2.fc30.x86_64 python3-dbus-1.2.8-3.fc29.x86_64 How reproducible: always Steps to Reproduce: 1. Build FreeIPA packages on rawhide 2. Attempt to install packages on rawhide Actual results: Depsolve Error occured: Problem 1: package python3-ipatests-4.7.90test-0.fc30.noarch requires python3-ipaserver = 4.7.90test-0.fc30, but none of the providers can be installed - cannot install the best candidate for the job - nothing provides python3.7dist(dbus-python) needed by python3-ipaserver-4.7.90test-0.fc30.noarch Problem 2: package freeipa-server-4.7.90test-0.fc30.x86_64 requires python3-ipaserver = 4.7.90test-0.fc30, but none of the providers can be installed - cannot install the best candidate for the job - nothing provides python3.7dist(dbus-python) needed by python3-ipaserver-4.7.90test-0.fc30.noarch Problem 3: package freeipa-server-trust-ad-4.7.90test-0.fc30.x86_64 requires freeipa-server = 4.7.90test-0.fc30, but none of the providers can be installed - package freeipa-server-4.7.90test-0.fc30.x86_64 requires python3-ipaserver = 4.7.90test-0.fc30, but none of the providers can be installed - cannot install the best candidate for the job - nothing provides python3.7dist(dbus-python) needed by python3-ipaserver-4.7.90test-0.fc30.noarch Problem 4: package freeipa-server-dns-4.7.90test-0.fc30.noarch requires freeipa-server = 4.7.90test-0.fc30, but none of the providers can be installed - package freeipa-server-4.7.90test-0.fc30.x86_64 requires python3-ipaserver = 4.7.90test-0.fc30, but none of the providers can be installed - cannot install the best candidate for the job - nothing provides python3.7dist(dbus-python) needed by python3-ipaserver-4.7.90test-0.fc30.noarch Problem 5: package python3-ipaserver-4.7.2-1.fc30.noarch requires freeipa-server-common = 4.7.2-1.fc30, but none of the providers can be installed - package python3-ipa-desktop-profile-server-0.0.8-5.fc30.noarch requires python3-ipaserver, but none of the providers can be installed - package freeipa-server-common-4.7.2-1.fc30.noarch conflicts with ipa-server-common provided by freeipa-server-common-4.7.90test-0.fc30.noarch - package freeipa-desktop-profile-0.0.8-5.fc30.noarch requires python3-ipa-desktop-profile-server, but none of the providers can be installed - cannot install the best candidate for the job - conflicting requests - nothing provides python3.7dist(dbus-python) needed by python3-ipaserver-4.7.90test-0.fc30.noarch Expected results: no error Additional info: See http://freeipa-org-pr-ci.s3-website.eu-central-1.amazonaws.com/jobs/fe644ef0-10d0-11e9-b6c3-fa163e2682ec for rawhide builds and http://freeipa-org-pr-ci.s3-website.eu-central-1.amazonaws.com/jobs/6d8577c6-10dd-11e9-8242-fa163e7c6875 for install log
Re-assign to proper component.
FYI, for now I'm adding %{?python_disable_dependency_generator} to FreeIPA's spec file as workaround. This disables python3.7dist(dbus-python) dependency.
"The python3-dbus package doesn't provide python3.7dist(dbus-python) because it hasn't been rebuild on F30/rawhide yet" I don't think that's actually the reason, because now it has been rebuilt and it *still* doesn't provide these. I think the reason is that it includes the module itself, but no egg or wheel bits (because it uses its own build system which doesn't generate them, I think). So the dependency generator cannot generate the provides as it doesn't have the metadata. AFAICT the guidelines are silent on what should be done in this situation. Not sure if we're supposed to add the Provides in manually or patch in an egg file or what. It doesn't seem possible to do a filter on the Requires side, you can only turn the mechanism entirely on or off (it's just been turned off for freeipa for now).
The actual issue is that dbus-python is built wrong in Fedora. The setuptools metadata isn't built or installed in the package. For example, in Mageia, the metadata *is* there, because the package is built to provide it. I've made a PR to resolve the problem for dbus-python in Fedora: https://src.fedoraproject.org/rpms/dbus-python/pull-request/4
> AFAICT the guidelines are silent on what should be done in this situation. Not sure if we're supposed to add the Provides in manually or patch in an egg file or what. It doesn't seem possible to do a filter on the Requires side, you can only turn the mechanism entirely on or off (it's just been turned off for freeipa for now). If the package has no form of providing it natively, then you should not add it. Moreover, there's nothing for something using setuptools to depend on anyway in this case, so it's _usually_ a moot point.
This should be fixed now, so FreeIPA should be installable?
I disabled the Fedora's Python dependency generator in FreeIPA to temporarily work around the issue. The latest build of dbus-python provides the dist name. I'm confident that your fix works for us. Thanks! $ mock -r fedora-30-x86_64 install 'python3.7dist(dbus-python)' INFO: mock.py version 1.4.14 starting (python version = 3.7.2)... ... INFO: installing package(s): python3.7dist(dbus-python) ... Package python3-dbus-1.2.8-5.fc30.x86_64 is already installed. Dependencies resolved. Nothing to do. Complete!
(In reply to Christian Heimes from comment #7) > I disabled the Fedora's Python dependency generator in FreeIPA to > temporarily work around the issue. So now you should restore usage of the dep generator in FreeIPA. :)
Will we get this change in stable releases as well?
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle. Changing version to '31'.
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle. Changing version to 31.
(In reply to Till Maas from comment #9) > Will we get this change in stable releases as well? This has happened by Fedora 29 EOL :(