Bug 1705739

Summary: nothing provides python3.7dist(pyqt4)
Product: [Fedora] Fedora Reporter: Andreas Bleischwitz <ableisch>
Component: PyQt4Assignee: Rex Dieter <rdieter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 30CC: dwrobel, kde-sig, rdieter, than
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: PyQt4-4.12.3-6.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-15 01:35:16 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 Andreas Bleischwitz 2019-05-02 20:43:57 UTC
Description of problem:
Python3.7-pyqt4 is not provided by any package.

Version-Release number of selected component (if applicable):
Summary: Python bindings for Qt4
Name:    PyQt4
Version: 4.12.3
Release: 4%{?dist}

How reproducible:
Always

Steps to Reproduce:
1. # dnf install flatcam
Letzte Prüfung auf abgelaufene Metadaten: vor 0:20:17 am Do 02 Mai 2019 21:06:34 CEST.
Fehler: 
 Problem: conflicting requests
  - nothing provides python3.7dist(pyqt4) needed by flatcam-8.5-13.20180606git46454c293a9b.fc30.noarch
(try to add '--skip-broken' to skip uninstallable packages)

Actual results:
- install fails

Expected results:
- install succeeds

Additional info:
This may be an issue with "Provides" of PyQt4

Comment 1 Rex Dieter 2019-05-02 21:48:17 UTC
I'd argue the problem is more with the Requires: , no idea where it's coming from, but flatcam has only:
Requires:       python3-PyQt4

(re-assigning to flatcam)

Comment 2 Damian Wrobel 2019-05-06 14:55:57 UTC
>I'd argue the problem is more with the Requires: , no idea where it's coming

It's probably the result of last rebuild [1] which happened once python's automatically generated dependencies [2] has been enabled for >=f30.
Based on above install_requires PyQt4 [3] gets automatically translated into Required: python3.7dist(pyqt4).

If I'm correctly understood it we have at least two options:
 a) use %{?python_disable_dependency_generator} in flatcam.spec file - this will remove automatically generated "Required: python3.7dist(pyqt4)" and still use "Requires: python3-PyQt4" from the spec file.
 b) fix the python3-PyQt4 to provide standardized "pyqt4" name.

I would personally vote for b) as it would clearly help to clean up the flatcam.spec file in the future.


[1] https://src.fedoraproject.org/rpms/flatcam/c/1d004a97454d729ed112e094d985606fb70dbdc8?branch=master
[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_automatically_generated_dependencies
[3] https://src.fedoraproject.org/rpms/flatcam/blob/master/f/flatcam-setup-update.patch#_521

Comment 3 Andreas Bleischwitz 2019-05-06 15:06:38 UTC
> If I'm correctly understood it we have at least two options:
>  a) use %{?python_disable_dependency_generator} in flatcam.spec file - this
> will remove automatically generated "Required: python3.7dist(pyqt4)" and
> still use "Requires: python3-PyQt4" from the spec file.
>  b) fix the python3-PyQt4 to provide standardized "pyqt4" name.
> 
> I would personally vote for b) as it would clearly help to clean up the
> flatcam.spec file in the future.
> 

That's what I was thinking too, as other pyqt4 depended packages may run into that issue too.
Fixing the provides-section of pyqt4 would solve all of them.

Comment 4 Rex Dieter 2019-05-06 15:07:36 UTC
Ugh, turning that on *after* the mass rebuild was a bad idea (apparently?).

OK, I'll try rebuilding and see if those deps get added properly

Comment 5 Rex Dieter 2019-05-06 18:47:27 UTC
OK, so looks like PyQt4 does not support dist-info, so this is going to have to be done *manually*, if at all.  

I'm not sure why/how PyQt4 apps like flatcam expect it to exist. 

From reading, 
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_automatically_generated_dependencies

I dont' see any macro to support his either.  I see:
Provides: %{py3_dist pyqt4}

but that'll only generate:
Provides: python3dist(pyqt4)

I suppose I could try a little more ugly:
Provides: python%{python3_version}dist(pyqt4)

Comment 6 Fedora Update System 2019-05-06 20:33:24 UTC
PyQt4-4.12.3-6.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-900d410cf5

Comment 7 Fedora Update System 2019-05-07 02:13:12 UTC
PyQt4-4.12.3-6.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-900d410cf5

Comment 8 Andreas Bleischwitz 2019-05-07 07:00:57 UTC
@Rex,

I have been able to install flatcam and it installed the PyQt4 packages from updates-testing without complaining. Flatcam itself started and seem to work fine. I did only some basic operations though.

Thank you for modifying the provides section to have that sorted out.

Comment 9 Fedora Update System 2019-05-15 01:35:16 UTC
PyQt4-4.12.3-6.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.