%global keycodemapdb_commit f5772a62ec52591ff6870b7e8ef32482371f22c6 %global x86virt_fw_version 0.2.0 %global qemu_arch x86_64 %global qemu_package_arch x86 Name: qemu Epoch: 2 Version: 11.1.0 Release: 1%{?dist} Summary: Modern x86-virt system emulator for KVM guests License: Apache-2.0 AND BSD-2-Clause AND BSD-2-Clause-Patent AND BSD-3-Clause AND FSFAP AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND MIT AND LicenseRef-Fedora-Public-Domain AND CC-BY-3.0 URL: https://www.qemu.org/ Source0: https://download.qemu.org/qemu-%{version}.tar.xz Source1: https://gitlab.com/qemu-project/keycodemapdb/-/archive/%{keycodemapdb_commit}/keycodemapdb-%{keycodemapdb_commit}.tar.gz Source2: https://github.com/fxzxmic/x86virt-fw/releases/download/%{x86virt_fw_version}/x86-virt.fd Source3: https://github.com/fxzxmic/x86virt-fw/releases/download/%{x86virt_fw_version}/vars.fd Source4: https://raw.githubusercontent.com/fxzxmic/x86virt-fw/%{x86virt_fw_version}/LICENSE Patch1: 0001-ui-gtk-make-application-integration-configurable.patch Patch2: 0002-hw-i386-add-the-modern-x86-virt-machine.patch ExclusiveArch: x86_64 BuildRequires: gcc BuildRequires: make BuildRequires: meson BuildRequires: ninja-build BuildRequires: perl BuildRequires: pkgconfig BuildRequires: python3 BuildRequires: python3-pip BuildRequires: python3-setuptools BuildRequires: python3-wheel BuildRequires: sed BuildRequires: systemd-rpm-macros BuildRequires: tar BuildRequires: pkgconfig(epoxy) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gthread-2.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gnutls) BuildRequires: pkgconfig(libcap-ng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(liburing) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(slirp) BuildRequires: pkgconfig(virglrenderer) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(zlib) Provides: qemu-common = %{epoch}:%{version}-%{release} Provides: qemu-system-%{qemu_package_arch} = %{epoch}:%{version}-%{release} Provides: qemu-system-%{qemu_package_arch}-core = %{epoch}:%{version}-%{release} Provides: qemu-ui-gtk = %{epoch}:%{version}-%{release} Provides: qemu-audio-pipewire = %{epoch}:%{version}-%{release} Obsoletes: qemu-common < %{epoch}:%{version}-%{release} Obsoletes: qemu-system-%{qemu_package_arch} < %{epoch}:%{version}-%{release} Obsoletes: qemu-system-%{qemu_package_arch}-core < %{epoch}:%{version}-%{release} Obsoletes: qemu-ui-gtk < %{epoch}:%{version}-%{release} Obsoletes: qemu-ui-sdl < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-alsa < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-dbus < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-jack < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-oss < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-pa < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-pipewire < %{epoch}:%{version}-%{release} Obsoletes: qemu-audio-sdl < %{epoch}:%{version}-%{release} %description This package is a deliberately small QEMU build centered on the modern, KVM-only x86-virt machine and its x86virt-fw UEFI firmware. It keeps PCIe, modern virtio devices, direct Linux EFI boot, libslirp user-mode networking, GTK display output, PipeWire audio, and OpenGL/virgl acceleration. It intentionally omits user-mode emulators, non-native architecture targets, TCG, PC-compatible machines and firmware, guest agent, qemu-img/tools, external network backends, VNC, SPICE, USB passthrough, TPM, Xen, VFIO, and legacy device models. %prep %autosetup -n qemu-%{version} -p1 -a1 mv keycodemapdb-%{keycodemapdb_commit} subprojects/keycodemapdb install -pm 0644 %{SOURCE2} pc-bios/x86-virt.fd install -pm 0644 %{SOURCE4} x86virt-fw-LICENSE cat > configs/devices/%{qemu_arch}-softmmu/minimal.mak <<'EOF' CONFIG_X86_VIRT=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BLK=y CONFIG_VIRTIO_SCSI=y CONFIG_VIRTIO_NET=y CONFIG_VIRTIO_RNG=y CONFIG_VIRTIO_RTC=y CONFIG_VIRTIO_BALLOON=y CONFIG_VIRTIO_INPUT=y CONFIG_VIRTIO_IOMMU=y CONFIG_VIRTIO_MEM=y CONFIG_VIRTIO_GPU=y CONFIG_VIRTIO_SND=y CONFIG_VIRTIO_SERIAL=y CONFIG_VHOST_VSOCK=y CONFIG_PVPANIC_PCI=y CONFIG_VMCOREINFO=y EOF %build ./configure \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ --datadir=%{_datadir} \ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_localstatedir} \ --mandir=%{_mandir} \ --docdir=%{_docdir}/%{name} \ --disable-download \ --target-list=%{qemu_arch}-softmmu \ --without-default-features \ --without-default-devices \ --with-devices-%{qemu_arch}=minimal \ --disable-qom-cast-debug \ --disable-relocatable \ --enable-pie \ --enable-stack-protector \ --enable-malloc-trim \ --enable-membarrier \ --enable-keyring \ --enable-seccomp \ --enable-cap-ng \ --enable-zstd \ --enable-gnutls \ --enable-kvm \ --disable-tcg \ -Dfdt=disabled \ --enable-slirp \ --enable-vhost-kernel \ --enable-vhost-net \ --enable-gtk \ --enable-opengl \ --enable-virglrenderer \ --enable-pixman \ --enable-png \ --enable-xkbcommon \ --audio-drv-list=pipewire \ --enable-pipewire \ --enable-trace-backends=nop \ --disable-install-blobs \ --enable-linux-io-uring \ --enable-werror %make_build %install %make_install find %{buildroot} -name '*.la' -delete rm -rf %{buildroot}%{_datadir}/qemu/dtb install -Dpm 0644 pc-bios/x86-virt.fd \ %{buildroot}%{_datadir}/qemu/x86-virt.fd install -Dpm 0644 %{SOURCE3} \ %{buildroot}%{_datadir}/qemu/x86-virt-vars.fd install -Dpm 0644 /dev/stdin %{buildroot}%{_sysusersdir}/qemu.conf <<'EOF' g kvm 36 u qemu 107 'qemu user' - - m qemu kvm EOF %check test -s %{buildroot}%{_datadir}/qemu/x86-virt.fd test -s %{buildroot}%{_datadir}/qemu/x86-virt-vars.fd %files %license COPYING COPYING.LIB LICENSE %license x86virt-fw-LICENSE %doc README.rst %{_bindir}/qemu-system-%{qemu_arch} %{_datadir}/qemu/ %{_datadir}/applications/qemu.desktop %{_datadir}/icons/hicolor/*/apps/qemu.* %{_sysusersdir}/qemu.conf %changelog * Fri Aug 28 2026 Fxzx micah <48860358+fxzxmicah@users.noreply.github.com> - 2:11.1.0-1 - Rebase the custom GTK and x86-virt changes onto QEMU 11.1.0. - Package x86virt-fw 0.2.0 code and variable-store images. - Remove the obsolete CXL and legacy PC firmware paths. - Use a strict feature whitelist with modern host hardening and memory tuning. * Wed May 20 2026 Fxzx micah <48860358+fxzxmicah@users.noreply.github.com> - 2:11.0.0-2 - Introduce a patch to improve the experience of the GTK display backend. * Mon Apr 27 2026 Fxzx micah <48860358+fxzxmicah@users.noreply.github.com> - 2:11.0.0-1 - Minimal KVM build for direct kernel/initramfs boot, virtio devices, slirp NAT, GTK display, PipeWire audio, and virgl. - https://github.com/fxzxmicah/qemu-mini/