From Fedora Project Wiki

Revision as of 16:21, 3 January 2017 by Psabata (talk | contribs) (Initial draft)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Build Root Without Python

Summary

The goal of this change is to remove the full Python 2 and Python 3 installations from the minimal buildroot.

Owner

  • Name: Petr Šabata
  • Email: <contyk@redhat.com>
  • Release notes owner:

Current status

  • Targeted release: Fedora 26
  • Last updated: 2017-01-03
  • Tracker bug:

Detailed Description

Currently both Python 2 and Python 3 get pulled into the minimal buildroot as runtime dependencies of the koji build group components. We would like to change these dependency chains so that only the minimal system-python stack is required.

Once implemented, packages that require these at build time without explicitly buildrequiring them will fail to build until the build dependencies are corrected.

Benefit to Fedora

Smaller buildroot will enable faster and more reliable package building. It will also aid the Base Runtime and Modularity efforts, allowing us to ship various Python stacks as separate interchangeable modules without conflicts with the base system installation.

Scope

  • Proposal owners: The change owner will coordinate with package maintainers responsible for the packages pulling the Python 2 & Python 3 stacks into the minimal buildroot, implementing packaging changes required to change the situation. Note these changes have been already implemented
  • Other developers: Packagers maintaining packages that require Python 2 or Python 3 at build time should ensure these packages properly buildrequire the respective implementation.
  • Release engineering: A mass rebuild would help us identify the affected packages but it's by no means necessary. Depending on the implementation details, we may need to add and later remove Python 2 and Python 3 to/from the build and srpm-build groups.
  • Policies and guidelines: No changes.
  • Trademark approval: N/A

Upgrade/compatibility impact

This change only affects the minimal buildroot in our buildsystem and has no impact on the end users' installations.

How To Test

Attempting to scratch-rebuild the packages in either mock or koji is sufficient to check whether they suffer from an FTBFS issue or not.

User Experience

In general, Fedora packagers should enjoy slightly faster builds as the Python 2 and Python 3 stacks won't be unnecessarily downloaded and installed when building packages that don't them.

Dependencies

No dependencies.

Contingency Plan

  • Contingency mechanism: python and python3 can be added to the build and srpm-build groups; alternatively the packaging changes leading to the removal of python stacks from the minimal buildroot could be reverted.
  • Contingency deadline: Beta freeze
  • Blocks release? No
  • Blocks product? negatively affects the delivery of the modular Fedora 26 Server variant

Documentation

No explicit documentation. Our packaging guidelines already cover the need to list all the package dependencies and python's never been listed as an exception.

Release Notes