Re: F43 Change Proposal: Drop i686 support (system wide)

2025-06-24 Thread Aoife Moloney via devel-announce
Apologies, for clarification this is an F44 change proposal.
-- 
___
devel-announce mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


F43 Change Proposal: Drop i686 support (system wide)

2025-06-24 Thread Aoife Moloney via devel-announce
Wiki - https://fedoraproject.org/wiki/Changes/Drop_i686_support
Discussion thread -
https://discussion.fedoraproject.org/t/f43-change-proposal-drop-i686-support-system-wide/156324

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==

Fedora package repositories for the x86_64 architecture no longer
include libraries for compatibility with 32-bit applications
("multilib"), and packages are no longer built for the i686
architecture.

== Owner ==

* Name: [[User:Decathorpe| Fabio Valentini]], [[User:Fale|Fale]],
[[User:Kevin|Kevin Fenzi]]
* Email: decathorpe (at) gmail (dot) com, mail (at) fale (dot) io,
kevin (at) scrye (dot) com



== Detailed Description ==

Fedora stopped providing
[https://fedoraproject.org/wiki/Changes/Stop_Building_i686_Kernels
kernel packages, installer images] and stopped publishing
[https://fedoraproject.org/wiki/Changes/Noi686Repositories i686
package repositories] with Fedora 31. However, packages were by
default still built for the i686 architecture, since they were
required for running 32-bit applications on x86_64 hosts ("multilib").

Since Fedora 37, leaf packages (i.e. packages that are not depended on
by other packages) can simply
[https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval stop
building for i686] without any reason, which has allowed package
maintainers to focus their work on architectures where packages are
actually shipped to users.

This Change Proposal implements the next two (and last) steps:

* Packages built for the i686 architecture are no longer included in
x86_64 repositories (dropping "multilib" support, i.e. support for
running 32-bit userspace on a 64-bit host).
* Packages are no longer built for the i686 architecture.

This is intentionally planned as a two-step process - the first step
(no longer including 32-bit libraries in the x86_64 repositories)
should be relatively easy to revert (if needed). The second step is
basically irreversible, since reversing it would require to partially
re-bootstrap the architecture.

Some packages will require changes to adapt for the removal of 32-bit
libraries from the x86_64 package repositories - notably, `wine` will
need to be built in the
[https://src.fedoraproject.org/rpms/wine/pull-request/19 "new WoW64"
configuration], which allows running 32-bit Windows applications on
top of 64-bit-only host systems.

It is planned to implement the first step as early as possible in the
development cycle, but before the mass rebuild at the latest. This
provides a transition period of at least four weeks to catch potential
issues *before* the potentially irreversible second step is
implemented (before the beta freeze).

When this Change is successfully implemented, a mechanism will be
provided to remove any installed i686 packages on upgrade to avoid
leaving behind packages that will no longer be updated, maintained, or
which might cause upgrade issues in the future.

== Feedback ==

N/Y

== Benefit to Fedora ==

By dropping completely the i686 architecture, Fedora will decrease the
burden on package maintainers, release engineering, infrastructure,
and users.

=== Package Maintainers ===

Building and maintaining packages for i686 (and 32-bit architectures
in general, but i686 is the last 32-bit architecture - partially -
supported by Fedora) has been requiring more and more effort.

Many projects have already been officially dropping support for
building and / or running on 32-bit architectures, requiring either
adding back support for this architecture downstream in Fedora, or
requiring packaging changes in a significant number of packages to
adapt to this dropped support.

By dropping support for the i686 architecture entirely, this
additional - and growing - maintenance burden is eliminated.

=== Release engineering ===

The process for including 32-bit libraries in the x86_64 repositories
is based on brittle heuristics and rules, which can be removed when
this change is implemented - simplifying the process for creating
x86_64 package repositories.

=== Infrastructure ===

No longer building packages for the i686 architecture frees up
resources on x86 build machines that will instead be available to
speed up x86_64 package builds.

=== Users ===

By dropping ~1 32-bit packages from the x86_64 repositories,
repository metadata will get smaller, which should speed up both
metadata downloads and any dnf operations that involve dependency
resolution.

== Scope ==

* Proposal owners:
** Prepare compose configuration changes to drop multilib support from
x86_64 repositories.
** Prepare builder configuration changes to drop the i686 architecture
from the f44 build target.

* Other developers:
** Adapt packages for