m (Typo fix) |
Churchyard (talk | contribs) (Change Ready For Wrangler) |
||
Line 199: | Line 199: | ||
--> | --> | ||
[[Category: | [[Category:ChangeReadyForWrangler]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Revision as of 11:09, 15 August 2018
Make ambiguous python shebangs error
Summary
The /usr/lib/rpm/redhat/brp-mangle-shebangs
buildroot policy script will be changed to make the build fail when it sees an ambiguous python shebang, such as #!/usr/bin/python
or #!/usr/bin/env python
. (The script has been warning in these cases for 2 Fedora releases already, saying This will become an ERROR.)
Owner
- Name: Miro Hrončok
- Email: <mhroncok@redhat.com>
- Release notes owner:
Current status
- Targeted release: Fedora 30
- Last updated: 2018-08-15
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
The buildroot policy script in /usr/lib/rpm/redhat/brp-mangle-shebangs
currently changes all python shebangs to python2 with a message like:
*** WARNING: mangling shebang in /usr/bin/taskotron_result from #!/usr/bin/python to #!/usr/bin/python2. This will become an ERROR, fix it manually!
We will change it to:
*** ERROR: ambiguous python shebang in /usr/bin/taskotron_result: #!/usr/bin/python. Change it to python3 (or python2) explicitly.
The script will exit with nonzero exit code, rendering the build failed.
The warning and a promise of the error was there for 2 releases (28 and 29). Taskotron check was also present.
There are standard mechanics to avoid this buildroot policy script or to block certain files form it. Those remain intact by this change. For details see Shebang lines and BuildRoot Policy Scripts sections of the packaging guidelines.
Benefit to Fedora
Packagers will be notified by build error if they accidentally have python2 shebangs (and python2 dependency) they didn't anticipate. It's up to them to decide what to do with such files, no automation can know.
Scope
- Proposal owners: change the script, change Python Packaging Guidelines.
- Other developers: fix their packages if they fail because of this
- Release engineering: #7679 (a check of an impact with Release Engineering is needed)
- List of deliverables: N/A (not a System Wide Change)
- Policies and guidelines: Adjust Python Packaging Guidelines slightly.
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
N/A (not a System Wide Change)
How To Test
Have an RPM package that tries to ship files with ambiguous python shebang. Observe the warning on Fedora 29 and the error on Fedora 30.
User Experience
Users should not notice this, expect there might be less unneeded python2 dependencies created by accident.
Dependencies
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism: 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)
- Blocks product? product
Documentation
The Python Packaging Guidelines will be the documentation.
Release Notes
TBD