On Thu, 13 Nov 2025 at 14:25, Allison King via devel-announce <[email protected]> wrote: > > Wiki: https://fedoraproject.org/wiki/Changes/DropQEMU32bitHostBuilds > > Discussion Thread: https://discussion.fedoraproject.org/t/172601 > > **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 == > The QEMU upstream project deprecated support for 32-bit host builds and will > start removing this in a near-term forthcoming release. It is not practical > for Fedora to re-enable 32-bit support over the long term, as QEMU's intent > with dropping 32-bit support code is to enable code to be changed to assume > 64-bit atomic ops in all builds. > Fedora will thus stop building the QEMU package on the i686 architecture.
So the 32 bit targets, like microcontroller emulation, remains, it's just the i686 builds? Just wondering as I use the emulators for a lot of testing of things. > == Owner == > * Name: [[User:berrange| Daniel Berrangé]] > * Email: [email protected] > > == Detailed Description == > The QEMU upstream project deprecated support for 32-bit host builds for > system emulator binaries in its 8.0.0 release (April 2023), and subsequently > deprecated all support for 32-bit host builds in its 10.0.0 release (April > 2025). > The QEMU deprecation policy > (https://www.qemu.org/docs/master/about/deprecated.html) requires the > deprecation notice to be present for a minimum of 2 release before the > feature is removed. It is thus possible that some aspects of 32-bit host > support will be removed in 10.2.0 (Dec 2025) with full removal likely in > 11.0.0 (April 2026). > It will not be practical for Fedora to re-enable support for 32-bit builds > with downstream patches, as QEMU intends to change its code to assume the > support of 64-bit atomic ops. > Fedora thus has to discontinue builds of QEMU on the i686 architecture, and > any packages which rely on QEMU provided binaries need to ensure they exclude > the i686 architecture. > Aside from upstream support, Fedora maintainers continue to expend (waste) > effort debugging koji build problems on i686 for binaries that will never be > present on any end user installation of Fedora, since QEMU has no multilib > components. The only place where the i686 binaries may get used is in koji > build roots for i686 builds via build dependencies. > > === Removed RPMs on i686 === > * qemu > * qemu-audio-alsa > * qemu-audio-dbus > * qemu-audio-jack > * qemu-audio-oss > * qemu-audio-pa > * qemu-audio-pipewire > * qemu-audio-sdl > * qemu-audio-spice > * qemu-block-blkio > * qemu-block-curl > * qemu-block-dmg > * qemu-block-gluster > * qemu-block-iscsi > * qemu-block-nfs > * qemu-block-rbd > * qemu-block-ssh > * qemu-char-baum > * qemu-char-spice > * qemu-common > * qemu-device-display-qxl > * qemu-device-display-vhost-user-gpu > * qemu-device-display-virtio-gpu > * qemu-device-display-virtio-gpu-ccw > * qemu-device-display-virtio-gpu-gl > * qemu-device-display-virtio-gpu-pci > * qemu-device-display-virtio-gpu-pci-gl > * qemu-device-display-virtio-gpu-pci-rutabaga > * qemu-device-display-virtio-gpu-rutabaga > * qemu-device-display-virtio-vga > * qemu-device-display-virtio-vga-gl > * qemu-device-display-virtio-vga-rutabaga > * qemu-device-uefi-vars > * qemu-device-usb-host > * qemu-device-usb-redirect > * qemu-device-usb-smartcard > * qemu-docs > * qemu-guest-agent > * qemu-img > * qemu-kvm > * qemu-kvm-core > * qemu-pr-helper > * qemu-rdp > * qemu-sanity-check > * qemu-sanity-check-nodeps > * qemu-system-aarch64 > * qemu-system-aarch64-core > * qemu-system-alpha > * qemu-system-alpha-core > * qemu-system-arm > * qemu-system-arm-core > * qemu-system-avr > * qemu-system-avr-core > * qemu-system-hppa > * qemu-system-hppa-core > * qemu-system-loongarch64 > * qemu-system-loongarch64-core > * qemu-system-m68k > * qemu-system-m68k-core > * qemu-system-microblaze > * qemu-system-microblaze-core > * qemu-system-mips > * qemu-system-mips-core > * qemu-system-or1k > * qemu-system-or1k-core > * qemu-system-ppc > * qemu-system-ppc-core > * qemu-system-riscv > * qemu-system-riscv-core > * qemu-system-rx > * qemu-system-rx-core > * qemu-system-s390x > * qemu-system-s390x-core > * qemu-system-sh4 > * qemu-system-sh4-core > * qemu-system-sparc > * qemu-system-sparc-core > * qemu-system-tricore > * qemu-system-tricore-core > * qemu-system-x86 > * qemu-system-x86-core > * qemu-system-xtensa > * qemu-system-xtensa-core > * qemu-tests > * qemu-tools > * qemu-ui-curses > * qemu-ui-dbus > * qemu-ui-egl-headless > * qemu-ui-gtk > * qemu-ui-opengl > * qemu-ui-sdl > * qemu-ui-spice-app > * qemu-ui-spice-core > * qemu-user > * qemu-user-binfmt > * qemu-user-static > * qemu-user-static-aarch64 > * qemu-user-static-alpha > * qemu-user-static-arm > * qemu-user-static-hexagon > * qemu-user-static-hppa > * qemu-user-static-loongarch64 > * qemu-user-static-m68k > * qemu-user-static-microblaze > * qemu-user-static-mips > * qemu-user-static-or1k > * qemu-user-static-ppc > * qemu-user-static-riscv > * qemu-user-static-s390x > * qemu-user-static-sh4 > * qemu-user-static-sparc > * qemu-user-static-x86 > * qemu-user-static-xtensa > * libvirt-daemon-qemu > * libvirt-daemon-driver-qemu > > === Removed binaries on i686 === > > * /usr/bin/qemu-aarch64 > * /usr/bin/qemu-aarch64_be > * /usr/bin/qemu-aarch64_be-static > * /usr/bin/qemu-aarch64-static > * /usr/bin/qemu-alpha > * /usr/bin/qemu-alpha-static > * /usr/bin/qemu-arm > * /usr/bin/qemu-armeb > * /usr/bin/qemu-armeb-static > * /usr/bin/qemu-arm-static > * /usr/bin/qemu-edid > * /usr/bin/qemu-ga > * /usr/bin/qemu-hexagon > * /usr/bin/qemu-hexagon-static > * /usr/bin/qemu-hppa > * /usr/bin/qemu-hppa-static > * /usr/bin/qemu-i386 > * /usr/bin/qemu-i386-static > * /usr/bin/qemu-img > * /usr/bin/qemu-io > * /usr/bin/qemu-keymap > * /usr/bin/qemu-kvm > * /usr/bin/qemu-loongarch64 > * /usr/bin/qemu-loongarch64-static > * /usr/bin/qemu-m68k > * /usr/bin/qemu-m68k-static > * /usr/bin/qemu-microblaze > * /usr/bin/qemu-microblazeel > * /usr/bin/qemu-microblazeel-static > * /usr/bin/qemu-microblaze-static > * /usr/bin/qemu-mips > * /usr/bin/qemu-mips64 > * /usr/bin/qemu-mips64el > * /usr/bin/qemu-mips64el-static > * /usr/bin/qemu-mips64-static > * /usr/bin/qemu-mipsel > * /usr/bin/qemu-mipsel-static > * /usr/bin/qemu-mipsn32 > * /usr/bin/qemu-mipsn32el > * /usr/bin/qemu-mipsn32el-static > * /usr/bin/qemu-mipsn32-static > * /usr/bin/qemu-mips-static > * /usr/bin/qemu-nbd > * /usr/bin/qemu-or1k > * /usr/bin/qemu-or1k-static > * /usr/bin/qemu-ppc > * /usr/bin/qemu-ppc64 > * /usr/bin/qemu-ppc64le > * /usr/bin/qemu-ppc64le-static > * /usr/bin/qemu-ppc64-static > * /usr/bin/qemu-ppc-static > * /usr/bin/qemu-pr-helper > * /usr/bin/qemu-rdp > * /usr/bin/qemu-riscv32 > * /usr/bin/qemu-riscv32-static > * /usr/bin/qemu-riscv64 > * /usr/bin/qemu-riscv64-static > * /usr/bin/qemu-s390x > * /usr/bin/qemu-s390x-static > * /usr/bin/qemu-sanity-check > * /usr/bin/qemu-sh4 > * /usr/bin/qemu-sh4eb > * /usr/bin/qemu-sh4eb-static > * /usr/bin/qemu-sh4-static > * /usr/bin/qemu-sparc > * /usr/bin/qemu-sparc32plus > * /usr/bin/qemu-sparc32plus-static > * /usr/bin/qemu-sparc64 > * /usr/bin/qemu-sparc64-static > * /usr/bin/qemu-sparc-static > * /usr/bin/qemu-storage-daemon > * /usr/bin/qemu-system-aarch64 > * /usr/bin/qemu-system-alpha > * /usr/bin/qemu-system-arm > * /usr/bin/qemu-system-avr > * /usr/bin/qemu-system-hppa > * /usr/bin/qemu-system-i386 > * /usr/bin/qemu-system-loongarch64 > * /usr/bin/qemu-system-m68k > * /usr/bin/qemu-system-microblaze > * /usr/bin/qemu-system-microblazeel > * /usr/bin/qemu-system-mips > * /usr/bin/qemu-system-mips64 > * /usr/bin/qemu-system-mips64el > * /usr/bin/qemu-system-mipsel > * /usr/bin/qemu-system-or1k > * /usr/bin/qemu-system-ppc > * /usr/bin/qemu-system-ppc64 > * /usr/bin/qemu-system-riscv32 > * /usr/bin/qemu-system-riscv64 > * /usr/bin/qemu-system-rx > * /usr/bin/qemu-system-s390x > * /usr/bin/qemu-system-sh4 > * /usr/bin/qemu-system-sh4eb > * /usr/bin/qemu-system-sparc > * /usr/bin/qemu-system-sparc64 > * /usr/bin/qemu-system-tricore > * /usr/bin/qemu-system-x86_64 > * /usr/bin/qemu-system-x86_64.rpm > * /usr/bin/qemu-system-xtensa > * /usr/bin/qemu-system-xtensaeb > * /usr/bin/qemu-trace-stap > * /usr/bin/qemu-vmsr-helper > * /usr/bin/qemu-x86_64 > * /usr/bin/qemu-x86_64-static > * /usr/bin/qemu-xtensa > * /usr/bin/qemu-xtensaeb > * /usr/bin/qemu-xtensaeb-static > * /usr/bin/qemu-xtensa-static > == Feedback == > TBD > == Benefit to Fedora == > Fedora QEMU maintainers no longer have to waste effort debugging periodic > failures on i686 builds, which are never installed by Fedora users. > Fedora QEMU maintainers will not have to hold QEMU back on an outdated > upstream release to retain i686 support. Such an outdated release will > accumulate CVEs and miss out on new features. > == Scope == > === Proposal owners === > * Submit PRs to any Fedora RPMs that pull in QEMU packages in i686 build > roots to "ExcludeArch: i686" > * Add 'ExcludeArch: i686' to QEMU > === Other developers === > * Merge any PRs submitted to their packages which depend on QEMU in i686 > build roots. (Most are already merged) > === Release engineering === > N/A > === Policies and guidelines === > N/A > === Trademark approval=== > N/A > === Alignment with the Fedora Strategy === > N/A > == Upgrade/compatibility impact == > Fedora already dropped i686 as an installable architecture many releases ago. > i686 packages are only consumed in multilib context, and QEMU does not have > any binaries that are relevant to multilib. Thus there should be no impact on > end user deployments of Fedora from dropping of i686 builds for QEMU. > Downstream maintainers who consume Fedora content (eg Copr, RPM Fusion) who > rely on i686 QEMU builds as dependencies in a build root will have to add > `ExcludeArch: i686` to any affected RPM spec files. > > == Early Testing (Optional) == > leafdrop is used to identify all packages which need adapting before QEMU is > made to ExcludeArch. Final validation will be a lack of any new FTBFS after > QEMU excludes i686. > > == How To Test == > * Observe that there are no i686 packages of QEMU in the koji builds in > rawhide after the exclusion of i686. > * Observe that there are no newly discovered FTBFS issue reported after the > exclusion of QEMU on i686. > > == User Experience == > i686 is not a deployment architecture for Fedora any more so no deployment > experience changes. > Developers relying on QEMU in i686 build roots will have to add ExcludeArch. > > == Dependencies == > Most dependencies which pull QEMU into i686 build roots have already had an > 'ExcludeArch: i686' added. Currently identified remaining deps on QEMU > (direct & indirect) are: > * appliance-tools - [PR blocked pending acceptance of livecd-tools PR] > * condor - https://src.fedoraproject.org/rpms/condor/pull-request/5 ✅ > * fence-agents - > https://src.fedoraproject.org/rpms/fence-agents/pull-request/7 ✅ > * genimage - https://src.fedoraproject.org/rpms/genimage/pull-request/1 ✅ > * gnome-boxes - > https://src.fedoraproject.org/rpms/gnome-boxes/pull-request/18 ✅ > * kiwi - https://src.fedoraproject.org/rpms/kiwi/pull-request/12 > * libvirt - libvirt-daemon-driver-qemu & libvirt-daemon-qemu sub-RPMs to be > disabled > * libvirt-sandbox - > https://src.fedoraproject.org/rpms/libvirt-sandbox/pull-request/2 > * livecd-tools - > https://src.fedoraproject.org/rpms/livecd-tools/pull-request/5 > * nbdkit - https://src.fedoraproject.org/rpms/nbdkit/pull-request/10 ✅ > * rubygem-ruby-libvirt - > https://src.fedoraproject.org/rpms/rubygem-ruby-libvirt/pull-request/4 ✅ > * vhostmd - https://src.fedoraproject.org/rpms/vhostmd/pull-request/5 ✅ > > == Contingency Plan == > > == Documentation == > This change proposal is sufficient documentation for the removal of i686 > builds. > > == Release Notes == > i686 builds of QEMU are no longer available. > -- > _______________________________________________ > 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 -- _______________________________________________ devel 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
