Bug 1547131 - python3-libs should not pull in python3 executable
Summary: python3-libs should not pull in python3 executable
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: python3
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-02-20 15:11 UTC by Vít Ondruch
Modified: 2018-03-02 12:02 UTC (History)
11 users (show)

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:
Clone Of:
Environment:
Last Closed: 2018-02-22 13:00:21 UTC
Type: Bug


Attachments (Terms of Use)

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 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.


Note You need to log in before you can comment on or make changes to this bug.