Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1728273
Summary: | dxf2gcode fails to build on Fedora 31 (rawhide) | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> | ||||
Component: | python-qt5 | Assignee: | Rex Dieter <rdieter> | ||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | rawhide | CC: | dwrobel, igor.raits, kde-sig, rdieter, than | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2019-07-31 13:38:38 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: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 1700317, 1686977, 1732841 | ||||||
Attachments: |
|
Description
Miro Hrončok
2019-07-09 13:56:10 UTC
Created attachment 1593770 [details] dxf2gcode rebuild in rawhide using python 3.8.0b2 I didn't have any problems rebuilding dxf2gcode using python 3.8.0b2. [sw@dell source]$ python3 --version Python 3.8.0b2 [sw@dell source]$ rpm -qv python3 python3-3.8.0~b2-1.fc31.x86_64 [sw@dell source]$ rpm -qv python3-qt5 python3-qt5-5.12.3-2.fc31.x86_64 [sw@dell source]$ rpmbuild --rebuild https://kojipkgs.fedoraproject.org//packages/dxf2gcode/20190103/3.fc30/src/dxf2gcode-20190103-3.fc30.src.rpm && echo OK OK [sw@dell source]$ Please let me know if it works for you. I think that I can reproduce the problem by uninstalling manually python3-qt5 package as I don't see it being installed here[1], however based on [2] it should be installed. ------------------------------------------------------------------------ [sw@dell source]$ head -n2 /usr/bin/pyuic5 #!/usr/bin/sh /usr/bin/python3 -Ic "import PyQt5.uic.pyuic" &> /dev/null [sw@dell source]$ /usr/bin/python3 -Ic "import PyQt5.uic.pyuic" Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'PyQt5.uic' [sw@dell source]$ sudo dnf install python3-qt5 -y Last metadata expiration check: 0:16:10 ago on Fri 26 Jul 2019 07:59:04 PM UTC. Dependencies resolved. =================================================================================================================================================================================================================== Package Architecture Version Repository Size =================================================================================================================================================================================================================== Installing: python3-qt5 x86_64 5.12.3-2.fc31 group_python-python3.8 1.4 M Transaction Summary =================================================================================================================================================================================================================== Install 1 Package /usr/lib/python3.8/site-packages/dnf/package.py:57: DeprecationWarning: PY_SSIZE_T_CLEAN will be required for '#' formats return super(Package, self).chksum Total download size: 1.4 M Installed size: 8.5 M Downloading Packages: python3-qt5-5.12.3-2.fc31.x86_64.rpm 631 kB/s | 1.4 MB 00:02 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 629 kB/s | 1.4 MB 00:02 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-qt5-5.12.3-2.fc31.x86_64 1/1 Running scriptlet: python3-qt5-5.12.3-2.fc31.x86_64 1/1 Verifying : python3-qt5-5.12.3-2.fc31.x86_64 1/1 Installed: python3-qt5-5.12.3-2.fc31.x86_64 Complete! [sw@dell source]$ /usr/bin/python3 -Ic "import PyQt5.uic.pyuic" [sw@dell source]$ echo $? 0 [sw@dell source]$ ./make make_py_uic.py make-srpms.sh make_tr.py [sw@dell source]$ ./make_py_uic.py Using platform tools "pyuic5" and "pyrcc5" pyuic5 /tmp/tmp5l90g7zz -o dxf2gcode_ui5.py pyrcc5 -o dxf2gcode_images5_rc.py dxf2gcode_images.qrc Please consider to not commit any auto-generated files. READY [sw@dell source]$ echo $? 0 [sw@dell source]$ ------------------------------------------------------------------------ Excerpt from [1]: DEBUG util.py:587: Installing: DEBUG util.py:587: python2-qt5 x86_645.12.3-2.fc31 copr_base 1.3 M DEBUG util.py:587: python3-configobj noarch5.0.6-15.fc31 copr_base 62 k DEBUG util.py:587: python3-devel x86_643.8.0~b2-1.fc31 copr_base 214 k DEBUG util.py:587: python3-pyopengl x86_643.1.1a1-15.fc31 copr_base 2.3 M DEBUG util.py:587: python3-qt5-base x86_645.12.3-2.fc31 copr_base 3.0 M Instead of python3-qt5, python2-qt5 is installed and that's seem to be the problem, which probably would need a further investigation. [1] https://copr-be.cloud.fedoraproject.org/results/@python/python3.8/fedora-rawhide-x86_64/00965355-dxf2gcode/root.log.gz [2] https://src.fedoraproject.org/rpms/dxf2gcode/blob/master/f/dxf2gcode.spec#_26 > Instead of python3-qt5, python2-qt5 is installed and that's seem to be the problem, which probably would need a further investigation.
That's caused by this:
$ repoquery --repo=rawhide --whatprovides '/usr/bin/pyuic5'
python2-qt5-0:5.12.3-2.fc31.i686
python2-qt5-0:5.12.3-2.fc31.x86_64
python3-qt5-0:5.12.3-2.fc31.i686
python3-qt5-0:5.12.3-2.fc31.x86_64
So the file is provided by both packages.
Installing /usr/bin/pyuic5 brings in python2-qt5 (alphabetically sooner) and the file is:
$ cat /usr/bin/pyuic5
#!/usr/bin/sh
/usr/bin/python3 -Ic "import PyQt5.uic.pyuic" &> /dev/null
if [ $? -eq 0 ]; then
exec /usr/bin/python3 -Im PyQt5.uic.pyuic ${1+"$@"}
else
exec /usr/bin/python2 -c "import sys; del sys.path[0]; import PyQt5.uic.pyuic; PyQt5.uic.pyuic.main()" ${1+"$@"}
fi
You should probably stick with buildrequiring python3-qt5 explicitly. CCing Rex for thoughts.
I'll echo what Miro said, you should explictly add BuildRequires: tag on one of python2-qt5 or python3-qt5 to ensure it's built using the environment you intend. The script contents above is mostly a hack to make it work with either one (python3 being preferred if available). (Suggestions welcome there if anyone has better ideas on how to handle that). Adding "Suggests: pythonX-qt5" to pythonX-qt5-base might make this case: BuildRequires: /usr/bin/pyuic5 BuildRequires: python3dist(pyqt5) resolve more appropriately (untested assumption). IMHO the change [3] introduced by Igor: -BuildRequires: python3-qt5 +BuildRequires: python3dist(pyqt5) was a good move and I would prefer not to revert it. Mostly because "BuildRequires: python3dist(pyqt5)" precisely specifies in which environment we're interested in (python3 not python2). So despite of issues with 'pyuic5' having in spec file: BuildRequires: python3dist(pyqt5) should pull in: python3-qt5 as well (not only python3-qt5-base - assuming we would like to be aligned with what 'pip install PyQt5' would have installed). Please have a look at my today's attempt to rebuilt spec file from master for: {f29,f30,rawhide} [4] - in each case I don't see 'python3-qt5' to be installed. [3] https://src.fedoraproject.org/rpms/dxf2gcode/c/b8cb12fc45c3e0e89ba38c9627d39c3fcc815c9f?branch=master [4] https://copr.fedorainfracloud.org/coprs/dwrobel/dxf2gcode/build/987741/ $ rpm -q --whatprovides 'python3dist(pyqt5)' python3-qt5-base-5.12.2-5.fc30.x86_64 Unfortunately not (currently). Another alternative is we could consider: pyuic5 (and friends) from python?-qt5 to python?-qt5-base I'll look into that in the meantime. (In reply to Rex Dieter from comment #7) > $ rpm -q --whatprovides 'python3dist(pyqt5)' > python3-qt5-base-5.12.2-5.fc30.x86_64 > > Unfortunately not (currently). Isn't that somehow related to bug 1730635? If that's the case, it should also very likely solve dxf2gcode problem. (In reply to Rex Dieter from comment #8) > Another alternative is we could consider: > pyuic5 (and friends) from python?-qt5 to python?-qt5-base > From dxf2gcode standpoint it would be transparent as it explicitly requires [5]: BuildRequires: /usr/bin/pyuic5 > I'll look into that in the meantime. Thank you. [5] https://src.fedoraproject.org/rpms/dxf2gcode/blob/master/f/dxf2gcode.spec#_23 We'll see if this helps, %changelog * Tue Jul 30 2019 Rex Dieter <rdieter> - 5.12.3-5 - move pyuic and friends to -base (#1728273) - move Provides: PyQt5 to python3-qt5 (#1730635) I did a scratch build [6] and it succeed. There is no single python2 package being installed: $ curl -s https://kojipkgs.fedoraproject.org//work/tasks/574/36700574/root.log | grep python2 $ Although, python3-qt5 is still not installed (only python3-qt5-base): $ curl -s https://kojipkgs.fedoraproject.org//work/tasks/574/36700574/root.log | grep python3-qt5 DEBUG util.py:587: python3-qt5-base x86_64 5.12.3-5.fc31 build 3.2 M DEBUG util.py:587: python3-qt5-base-5.12.3-5.fc31.x86_64 (In reply to Rex Dieter from comment #10) > - move pyuic and friends to -base (#1728273) The build failure itself seems to be fixed. > - move Provides: PyQt5 to python3-qt5 (#1730635) python3dist(pyqt5) - still does not pull in python3-qt5 [6] https://koji.fedoraproject.org/koji/taskinfo?taskID=36700574 Sorry, I accidently dropped Rex instead of me not interested... Not implicitly pulling in python3-qt5 is no longer a problem, since the needed file content was moved to -base. I'll consider this issue closed (from python-qt5 point of view). |