From Fedora Project Wiki

Revision as of 17:16, 7 March 2022 by Bcotton (talk | contribs)

Encourage Dropping Unused / Leaf Packages on i686

Summary

Package maintainers are encouraged to actively stop building their packages for i686, especially if supporting this architecture requires significant investment of time or resources, for no benefit. This will not apply to packages which are still depended on by other i686 packages, or which get used in a "multilib" context (i.e. for running 32-bit applications on x86_64).

Owner

Current status

  • Targeted release: Fedora Linux 37
  • Last updated: 2022-03-07
  • devel thread
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Fedora does no longer ship any deliverables for i686, not even RPM repositories for i686 are published any longer. The kernel package itself also dropped support for i686 in Fedora 31, so there has not been any way to run Fedora on 32-bit x86 systems for years. Only a tiny fraction of all packages that are built on i686 are actually used (i.e. "multilib" support for Wine, Steam, etc. on x86_64).

Feedback

(none yet)

Benefit to Fedora

Stopping to run unnecessary package builds on i686 will free up no small amount of resources. In particular, stopping to build for i686 could potentially free up almost half of the existing x86 builder resources in koji.

Additionally, support for building on 32-bit targets is starting to get dropped by upstream projects, and resource constraints of 32-bit architectures (i.e. per-process and total memory limits) also make building large libraries or applications increasingly difficult. With ARMv7 support having been removed from Fedora 37 already, i686 is the only remaining supported 32-bit architecture.

Encouraging package maintainers to drop i686 support from their packages (if possible), instead of requiring them to work around those resource constraints or missing upstream support, will significantly lower the maintenance burden, especially for some problematic packages.

Scope

  • Proposal owners:

Proposal owners will provide convenience scripts for checking whether a given package is a leaf package on i686, and will help with identifying potential candidate packages.

  • Other developers:

Package maintainers who are affected by 32-bit architecture / i686 specific problems are encouraged to investigate dropping support for i686 entirely, instead of having to invest time to fix or work around those issues, for very little benefit to Fedora. This can be done incrementally, as dropping support for i686 from some packages will in turn make other packages leaves on i686.

  • Release engineering: N/A

There are already no deliverables for i686, so there should be no impact on Release engineering.

  • Policies and guidelines:

Packages that drop support for i686 will no longer need to file a tracking bug and block the 32-bit x86 ExcludeArch tracker bug.

  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: N/A

Upgrade/compatibility impact

This Change only affects unused / leaf packages that are never installed on user systems (particularly because it has not been possible to install i686-based Fedora for years).

How To Test

The remaining use cases of i686 packages (i.e. "multilib") for popular 32-bit applications should continue to work. For example, installing the Steam client (steam.i686), Wine, or other applications that require 32-bit compatibility libraries should still be possible, and not fail due to broken dependencies.

User Experience

N/A

Dependencies

N/A

Contingency Plan

This Change is supposed to only affect unused components / leaf packages. However, if a package maintainer accidentally stops building a package on i686 despite it still being required for something else, this should be easy to revert - by adding back i686 architecture support to the affected packages, in reverse order. Since removal of support for i686 will happen slowly and incrementally, this should be relatively straightforward.

  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)

Documentation

N/A (not a System Wide Change)

Release Notes

Fedora packages will incrementally drop support for the i686 architecture (32-bit x86), where this support is no longer required. This is intended to reduce resource consumption of build servers. Additionally, it will make package maintenance for Fedora easier, because a growing number of projects already either no longer provide support for - or fail to build due to resource constraints on - 32-bit architectures.