Bug 1342497

Summary: pungi: pungi requires both Python 2 and Python 3
Product: [Fedora] Fedora Reporter: Tomas Orsava <torsava>
Component: pungiAssignee: Dennis Gilmore <dennis>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: admiller, dennis, lsedlar
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: 2016-06-06 09:37:55 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: 1285816, 1340802    

Description Tomas Orsava 2016-06-03 11:48:06 UTC
The pungi RPM requires both Python 2 and Python 3.

Except in very special circumstances, there is no need for one package
to drag in both Python stacks. Usually, this is a packaging error: for
example, a stray "/usr/bin/python" shebang in a Python 3 package can
introduce a Python 2 dependency.

Please split your package, or remove the stray dependencies.
There is a section on shebangs in the Python RPM Porting Guide [0]
which covers this issue.

It's ok to do this in Rawhide only, however, it would be greatly
appreciated if you could push it to Fedora 24 as well.


If anything is unclear, or if you need any kind of assistance, you can
ask on IRC (#fedora-python on Freenode), or reply here. We'll be happy
to help investigating or fixing this issue!


[0] http://python-rpm-porting.readthedocs.io/en/latest/application-modules.html#are-shebangs-dragging-you-down-to-python-2

Comment 1 Lubomír Sedlář 2016-06-06 06:44:34 UTC
This is fully intentional. Main codebase of Pungi is Python 2 only (mostly due to dependency on koji). However, there is a separate script that depends on pylorax, which is Python 3 only. This script is invoked at runtime as a subprocess.

See here for some more details:
https://pagure.io/pungi/blob/master/f/bin/pungi-pylorax-find-templates
It is used here:
https://pagure.io/pungi/blob/master/f/pungi/createiso.py#_11-18

What we could do is split this single script into a subpackage on its own, but the main package would still have to depend on it. Is that desirable? What advantages would it have?

Comment 2 Tomas Orsava 2016-06-06 09:37:55 UTC
Hi Lubomir!

Invoking it as a subprocess is fine, I apologize for a misfiled bug. In the vast majority of cases needing both Python stacks is a mistake, but in this case it does make sense.

That is not to say it wouldn't be better to have it all run entirely on Python 3, as Python 2 will be end-of-life quite soon and Fedora 25 will be distancing itself away from it as possible. Hopefully, upstream finds the time to port it in the future.

Thank you for the feedback!