Bug 1663693

Summary: Package does not provide python3.7dist(dbus-python)
Product: [Fedora] Fedora Reporter: Christian Heimes <cheimes>
Component: dbus-pythonAssignee: Alternative GTK desktop environments <alt-gtk-de-sig>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 31CC: alt-gtk-de-sig, awilliam, bugzilla, cheimes, fge, ignatenko, john.j5live, mclasen, mhroncok, ngompa13, rdieter, rhughes, rstrode, sandmann, shawn.p.huang, stefano, TicoTimo, till
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-12 10:02:36 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:
Embargoed:

Description Christian Heimes 2019-01-06 16:08:05 UTC
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

Comment 1 Orion Poplawski 2019-01-06 21:57:48 UTC
Re-assign to proper component.

Comment 2 Christian Heimes 2019-01-08 12:30:38 UTC
FYI, for now I'm adding %{?python_disable_dependency_generator} to FreeIPA's spec file as workaround. This disables python3.7dist(dbus-python) dependency.

Comment 3 Adam Williamson 2019-02-12 00:38:52 UTC
"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).

Comment 4 Neal Gompa 2019-02-12 01:36:23 UTC
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

Comment 5 Neal Gompa 2019-02-12 01:37:25 UTC
> 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.

Comment 6 Neal Gompa 2019-02-14 01:25:42 UTC
This should be fixed now, so FreeIPA should be installable?

Comment 7 Christian Heimes 2019-02-26 14:47:54 UTC
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!

Comment 8 Neal Gompa 2019-02-26 15:13:11 UTC
(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. :)

Comment 9 Till Maas 2019-04-17 17:54:20 UTC
Will we  get this change in stable releases as well?

Comment 10 Ben Cotton 2019-08-13 16:57:41 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 11 Ben Cotton 2019-08-13 19:27:22 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 12 Miro HronĨok 2020-02-12 10:02:36 UTC
(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 :(