No more automagic Python bytecompilation
Summary
Owner
- Name: Miro Hrončok
- Email: mhroncok@redhat.com
- Release notes owner:
Current status
- Targeted release: Fedora 29
- Last updated: 2018-02-01
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
Status quo
As for Fedora 28, all *.py
files outside of the /usr/lib(64)?/pythonX.Y/
directories are bytecompiled by %{__python}
(/usr/bin/python
).
This is overly magical and assumes several things (not always right):
- all files named
*.py
are Python modules that need to be bytecompiled - when a file is not in
/usr/lib(64)?/pythonX.Y/
it is intended for the/usr/bin/python
interpreter- That is currently Python 2, but may be removed or changed to Python 3 at any point in the future.
- This is only the default behavior, it can be changed by redefining
%__python
to:- python3: that currently happens in various packages and is documented in the guidelines as a way to do it
- python2: nobody does that, because the magic "just works" for this use case - relying on the fact that
/usr/bin/python
is currently python2- that assumption is forbidden by the Python packaging guidelines, yet here it is heavily used
See Packaging:Python Appendix for more information (this links to a specific revision so the link makes sense once this change is implemented and the guidelines are changed).
TODO put the example specfile that fails here
How we are changing it
TODO
Benefit to Fedora
Scope
- Proposal owners:
- Other developers: N/A (not a System Wide Change)
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- List of deliverables: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
N/A (not a System Wide Change)
How To Test
N/A (not a System Wide Change)
User Experience
N/A (not a System Wide Change)
Dependencies
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
- Blocks product? product
Documentation
N/A (not a System Wide Change)