Bug 1547131

Summary: python3-libs should not pull in python3 executable
Product: [Fedora] Fedora Reporter: Vít Ondruch <vondruch>
Component: python3Assignee: Miro Hrončok <mhroncok>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: bkabrda, cstratak, dmalcolm, ishcherb, lzachar, mcyprian, mhroncok, pviktori, rkuska, tomspur, torsava
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python3-3.6.4-15.fc29, python3-3.6.4-15.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-02-22 13:00:21 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 Vít Ondruch 2018-02-20 15:11:22 UTC
Description of problem:
Python3-libs should not depend on /usr/bin/python3.6:

~~~
$ rpm -qR python3-libs

... snip ...

/usr/bin/python3.6

... snip ...
~~~

If this dependency is really required, then the split of -libs package makes no sense.


Version-Release number of selected component (if applicable):
$ rpm -q python3-libs
python3-libs-3.6.4-1.fc28.x86_64


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:
python3-libs depends on /usr/bin/python3.6 and therefore on python3 package.


Expected results:
python3-libs does not depend on python3 package


Additional info:

Comment 1 Miro Hrončok 2018-02-20 15:25:07 UTC
On my Fedora 27, following files have the shebang that pulls the dependency:


/usr/lib64/python3.6/base64.py
/usr/lib64/python3.6/cProfile.py
/usr/lib64/python3.6/cgi.py
/usr/lib64/python3.6/encodings/rot_13.py
/usr/lib64/python3.6/idlelib/pyshell.py
/usr/lib64/python3.6/keyword.py
/usr/lib64/python3.6/lib2to3/pgen2/token.py
/usr/lib64/python3.6/pdb.py
/usr/lib64/python3.6/platform.py
/usr/lib64/python3.6/profile.py
/usr/lib64/python3.6/quopri.py
/usr/lib64/python3.6/smtpd.py
/usr/lib64/python3.6/smtplib.py
/usr/lib64/python3.6/symbol.py
/usr/lib64/python3.6/tabnanny.py
/usr/lib64/python3.6/tarfile.py
/usr/lib64/python3.6/timeit.py
/usr/lib64/python3.6/trace.py
/usr/lib64/python3.6/uu.py
/usr/lib64/python3.6/webbrowser.py

Those files are executable and have a "main part" that gets run when executed. I however wonder how beneficial this actually is and how many users need to execute them.

Comment 2 Petr Viktorin (pviktori) 2018-02-21 08:10:58 UTC
I doubt anyone would call `/usr/lib64/python3.6/keyword.py` rather than `python3 -m keyword`.
But, I guess that's an upstream issue (and earliest we can get it in there is 3.8).

Should we only recommend /usr/bin/python3, instead of requiring it? That would make sense to me. Runnable scripts are not the main-purpose of python3-libs and the error message of missing python3 is nice and actionable. But, things stand, you do need python3 to get the full functionality.

Comment 3 Vít Ondruch 2018-02-21 09:32:20 UTC
Filtering the autogenerated "Requires: /usr/bin/python3.6" replacing it by Recommends makes sense to me.

Comment 4 Miro Hrončok 2018-02-21 13:42:23 UTC
PR for python37 https://src.fedoraproject.org/rpms/python37/pull-request/7

Comment 5 Miro Hrončok 2018-02-22 13:00:21 UTC
Given the severity of this, I don't consider backporting to stable Fedoras  necessary. Feel free to reopen if you disagree.

Comment 6 Vít Ondruch 2018-03-02 09:44:01 UTC
Thx for fixing this. The buildroot is slimmer by ~3 packages due to this change.

Comment 7 Miro Hrončok 2018-03-02 10:23:12 UTC
Do you know what pulls python3-libs into the buildroot and whether it works without python3?

Comment 8 Vít Ondruch 2018-03-02 12:02:58 UTC
It appears to be gdb-headless.