From Fedora Project Wiki
No edit summary
(update for feedback)
Line 3: Line 3:
== Summary ==
== 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).
Package maintainers are empowered to stop building their packages for i686 - especially if supporting this architecture requires significant investment of time or resources. 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). Dropping i686 architecture support from a leaf package will no longer be considered a breaking change, will not require any announcements, or tracker bugs.


== Owner ==
== Owner ==
Line 33: Line 33:


Fedora does no longer ship any deliverables for i686, not even RPM repositories for i686 are published any longer. The kernel package itself also [[Changes/Stop Building i686 Kernels|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).
Fedora does no longer ship any deliverables for i686, not even RPM repositories for i686 are published any longer. The kernel package itself also [[Changes/Stop Building i686 Kernels|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).
Package maintainers who no longer wish to build their packages for i686 will be able to drop support for this architecture - if the package is unused there - without the requirement for an announcement or a tracker bug.
For packages that still have dependent packages on i686, package maintainers can coordinate with maintainers of the packages in their dependency trees to start removing support for i686, starting from the leaf packages, similar to how other breaking changes, like SONAME bumps, are handled.


== Feedback ==
== Feedback ==


(none yet)
The Proposal owner has expanded the detailed description and clarified some parts of the proposal based on feedback from the devel list.


== Benefit to Fedora ==
== 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.
Stopping to run package builds on i686 for packages that are unused will free up koji builder resources. 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.
 
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.
Allowing package maintainers to drop i686 support from their packages (if possible), without the requirement for announcements or tracker bugs, 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 ==
== Scope ==
Line 98: Line 100:
== Release Notes ==
== 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.
Fedora packages will incrementally drop support for the i686 architecture (32-bit x86), where this support is no longer required. This is intended to help reduce needless resource consumption of build servers, and 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.

Revision as of 14:16, 10 March 2022

Encourage Dropping Unused / Leaf Packages on i686

Summary

Package maintainers are empowered to stop building their packages for i686 - especially if supporting this architecture requires significant investment of time or resources. 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). Dropping i686 architecture support from a leaf package will no longer be considered a breaking change, will not require any announcements, or tracker bugs.

Owner

Current status

  • Targeted release: Fedora Linux 37
  • Last updated: 2022-03-10
  • 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).

Package maintainers who no longer wish to build their packages for i686 will be able to drop support for this architecture - if the package is unused there - without the requirement for an announcement or a tracker bug.

For packages that still have dependent packages on i686, package maintainers can coordinate with maintainers of the packages in their dependency trees to start removing support for i686, starting from the leaf packages, similar to how other breaking changes, like SONAME bumps, are handled.

Feedback

The Proposal owner has expanded the detailed description and clarified some parts of the proposal based on feedback from the devel list.

Benefit to Fedora

Stopping to run package builds on i686 for packages that are unused will free up koji builder resources. 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.

Allowing package maintainers to drop i686 support from their packages (if possible), without the requirement for announcements or tracker bugs, 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 by adding ExcludeArch: %{ix86} to the package's spec file, 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 help reduce needless resource consumption of build servers, and 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.