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

Reply via email to