# Conditional build:
%bcond_without sdl # SDL UI and audio support
%bcond_without opengl # Don't require GL deps
-%bcond_without ceph # Ceph/RBD support
+%bcond_with canokey # CanoKey support
+%bcond_with ceph # Ceph/RBD support
%bcond_without glusterfs # GlusterFS backend
%bcond_without rdma # RDMA-based migration support
%bcond_without gtk3 # Do not build GTK+ UI
%bcond_without iscsi # iscsi support
%bcond_without libnfs # NFS support
%bcond_without multipath # Multipath support
+%bcond_with pipewire # pipewire support
%bcond_without pmem # libpmem (persistent memory) support
%bcond_without seccomp # seccomp support
%bcond_without usbredir # usb network redirection support
%bcond_without system_seabios # system seabios binary
%bcond_without snappy # snappy compression library
%bcond_without user_static # build linux-user static packages
+%bcond_with vfio_user # vfio-user server support
%bcond_with lttng # lttng-ust trace backend support [needs update]
%bcond_without systemtap # SystemTap/dtrace trace backend support
%bcond_without virgl # build virgl support
%bcond_without xkbcommon # xkbcommon support
-%if %{without gtk}
+%if %{without gtk3}
%undefine with_vte
%endif
%ifarch x32
Summary: QEMU CPU Emulator
Summary(pl.UTF-8): QEMU - emulator procesora
Name: qemu
-Version: 7.1.0
+Version: 8.2.4
Release: 1
License: GPL v2, BSD (edk2 firmware files)
Group: Applications/Emulators
Source0: https://download.qemu.org/%{name}-%{version}.tar.xz
-# Source0-md5: 3be5458a9171b4ec5220c65d5d52bdcf
+# Source0-md5: aa5c2f004d513b746f25a00cfec8eaa5
# Loads kvm kernel modules at boot
Source3: kvm-modules-load.conf
# Creates /dev/kvm
Source12: 99-%{name}-guest-agent.rules
Source13: %{name}-guest-agent.init
Source14: %{name}-guest-agent.logrotate
-Patch0: %{name}-no-fortify.patch
-Patch2: %{name}-user-execve.patch
-Patch3: %{name}-xattr.patch
-Patch4: libjpeg-boolean.patch
+Patch0: %{name}-cflags.patch
+Patch2: %{name}-xattr.patch
+Patch3: libjpeg-boolean.patch
+Patch5: %{name}-u2f-emu.patch
+Patch6: %{name}-linux-mount.patch
+Patch7: libvfio-user-types.patch
+Patch8: libvfio-user-alloca.patch
URL: https://www.qemu.org/
%{?with_opengl:BuildRequires: Mesa-libgbm-devel}
%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
%{?with_sdl:BuildRequires: SDL2-devel >= 2.0}
%{?with_sdl:BuildRequires: SDL2_image-devel >= 2.0}
BuildRequires: alsa-lib-devel
-BuildRequires: bcc >= 0.16.21-2
+BuildRequires: bison
%{?with_brlapi:BuildRequires: brlapi-devel}
BuildRequires: bzip2-devel
-BuildRequires: capstone-devel >= 3.0.5
-%{?with_ceph:BuildRequires: ceph-devel}
-BuildRequires: curl-devel
+%{?with_canokey:BuildRequires: canokey-qemu-devel}
+BuildRequires: capstone-devel >= 4.0
+%{?with_ceph:BuildRequires: ceph-devel >= 12}
+BuildRequires: curl-devel >= 7.29.0
BuildRequires: cyrus-sasl-devel >= 2
-BuildRequires: glib2-devel >= 1:2.48
+BuildRequires: daxctl-devel >= 57
+BuildRequires: flex
+BuildRequires: gcc >= 6:7.4
+BuildRequires: gettext-tools
+BuildRequires: glib2-devel >= 1:2.75.3
# minimal is 3.4 but new features are used up to 6
%{?with_glusterfs:BuildRequires: glusterfs-devel >= 6}
-BuildRequires: gnutls-devel >= 3.1.18
-%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.16}
+BuildRequires: gnutls-devel >= 3.6.14
+%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.22.0}
+BuildRequires: jack-audio-connection-kit-devel
+%{?with_vfio_user:BuildRequires: json-c-devel >= 0.11}
+BuildRequires: keyutils-devel
BuildRequires: libaio-devel
+BuildRequires: libblkio-devel >= 1.3.0
+BuildRequires: libbpf-devel
%{?with_smartcard:BuildRequires: libcacard-devel >= 2.5.1}
BuildRequires: libcap-ng-devel
+BuildRequires: libdrm-devel
%{?with_opengl:BuildRequires: libepoxy-devel}
-BuildRequires: libfdt-devel >= 1.4.2
+BuildRequires: libfdt-devel >= 1.5.1
+BuildRequires: libfuse3-devel >= 3.8
%{?with_rdma:BuildRequires: libibverbs-devel}
%{?with_iscsi:BuildRequires: libiscsi-devel >= 1.9.0}
%{?with_rdma:BuildRequires: libibumad-devel}
BuildRequires: libjpeg-devel
%{?with_libnfs:BuildRequires: libnfs-devel >= 1.9.3}
-BuildRequires: libpng-devel
+BuildRequires: libpng-devel >= 2:1.6.34
%{?with_rdma:BuildRequires: librdmacm-devel}
%{?with_seccomp:BuildRequires: libseccomp-devel >= 2.3.0}
-BuildRequires: libssh-devel >= 0.8
-BuildRequires: libslirp-devel >= 4.0.0
+BuildRequires: libselinux-devel
+BuildRequires: libssh-devel >= 0.8.7
+BuildRequires: libslirp-devel >= 4.7
+BuildRequires: libstdc++-devel >= 6:4.7
# for tests only
#BuildRequires: libtasn1-devel
+BuildRequires: libu2f-emu-devel
BuildRequires: libusb-devel >= 1.0.22
-BuildRequires: liburing-devel
+BuildRequires: liburing-devel >= 0.3
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel >= 2.0
-%{?with_lttng:BuildRequires: lttng-ust-devel}
+%{?with_lttng:BuildRequires: lttng-ust-devel >= 2.1}
BuildRequires: lzfse-devel
BuildRequires: lzo-devel >= 2
+BuildRequires: meson >= 0.63.0
%{?with_multipath:BuildRequires: multipath-tools-devel}
BuildRequires: ncurses-devel
-# also libgcrypt-devel >= 1.5.0 possible, but gnutls already pulls nettle
-BuildRequires: nettle-devel >= 2.7.1
+# also libgcrypt-devel >= 1.8 possible, but gnutls already pulls nettle
+BuildRequires: nettle-devel >= 3.4
+BuildRequires: ninja >= 1.5
%{?with_smartcard:BuildRequires: nss-devel >= 1:3.12.8}
BuildRequires: numactl-devel
BuildRequires: pam-devel
BuildRequires: perl-Encode
BuildRequires: perl-tools-pod
+%{?with_pipewire:BuildRequires: pipewire-devel >= 0.3.60}
BuildRequires: pixman-devel >= 0.21.8
BuildRequires: pkgconfig
%{?with_pmem:BuildRequires: pmdk-devel}
%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
-BuildRequires: python3 >= 1:3.5
+BuildRequires: python3 >= 1:3.7
+BuildRequires: python3-sphinx_rtd_theme >= 0.5
+BuildRequires: python3-tomli >= 1.2.0
+BuildRequires: rpm-build >= 4.6
BuildRequires: rpmbuild(macros) >= 1.644
%{?with_system_seabios:BuildRequires: seabios}
BuildRequires: sed >= 4.0
%{?with_snappy:BuildRequires: snappy-devel}
-BuildRequires: sphinx-pdg
+BuildRequires: sphinx-pdg >= 1.6
%if %{with spice}
-BuildRequires: spice-protocol >= 0.12.3
-BuildRequires: spice-server-devel >= 0.12.5
+BuildRequires: spice-protocol >= 0.14.0
+BuildRequires: spice-server-devel >= 0.14.0
%endif
-%{?with_systemtap:BuildRequires: systemtap-devel}
+%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
+BuildRequires: tar >= 1:1.22
BuildRequires: texi2html
BuildRequires: texinfo
%{?with_multipath:BuildRequires: udev-devel}
%{?with_virgl:BuildRequires: virglrenderer-devel}
%{?with_vte:BuildRequires: vte-devel >= 0.32.0}
# xencontrol xenstore xenguest xenforeignmemory xengnttab xenevtchn xendevicemodel; xentoolcore for xen 4.10+
-# min version is 4.2, more features up to 4.10
-%{?with_xen:BuildRequires: xen-devel >= 4.10}
+# min version is 4.2, more features up to 4.11
+%{?with_xen:BuildRequires: xen-devel >= 4.11}
BuildRequires: xfsprogs-devel
-%{?with_xkbcommon:BuildRequires: xorg-lib-libxkbcommon-devel}
+%if %{with xkbcommon}
+BuildRequires: xkeyboard-config
+BuildRequires: xorg-lib-libxkbcommon-devel
+%endif
BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xz
BuildRequires: zlib-devel
BuildRequires: zstd-devel >= 1.4.0
%if %{with user_static}
-BuildRequires: glib2-static >= 1:2.48
+BuildRequires: glib2-static >= 1:2.75.3
BuildRequires: glibc-static
-BuildRequires: pcre-static
+BuildRequires: libstdc++-static >= 6:4.7
+BuildRequires: pcre2-8-static >= 10.32
BuildRequires: zlib-static
%endif
Requires: %{name}-img = %{version}-%{release}
Requires: %{name}-system-x86 = %{version}-%{release}
Requires: %{name}-system-xtensa = %{version}-%{release}
Requires: %{name}-user = %{version}-%{release}
-Obsoletes: qemu-kvm
+Obsoletes: qemu-kvm < 2
ExcludeArch: i386
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define systempkg_req \
-Requires: capstone >= 3.0.5 \
+Requires: capstone >= 4.0 \
+Requires: daxctl-libs >= 57 \
%{?with_smartcard:Requires: libcacard >= 2.5.1} \
-Requires: libfdt >= 1.4.2 \
+Requires: libfdt >= 1.5.1 \
+Requires: libfuse3 >= 3.8 \
+%{?with_iscsi:Requires: libiscsi >= 1.9.0} \
+Requires: libpng >= 2:1.6.34 \
%if %{with seccomp} \
Requires: libseccomp >= 2.3.0 \
%endif \
-Requires: libslirp >= 4.0.0 \
+Requires: libslirp >= 4.7 \
+Requires: liburing >= 0.3 \
Requires: libusb >= 1.0.22 \
+Requires: libxdp >= 1.4.0 \
Requires: pixman >= 0.21.8 \
%if %{with spice} \
-Requires: spice-server-libs >= 0.12.5 \
+Requires: spice-server-libs >= 0.14.0 \
%endif \
%if %{with usbredir} \
Requires: usbredir >= 0.6 \
-%endif \
-Requires: zstd >= 1.4.0
+%endif
# don't strip/chrpath anything in there; these are boot images, roms etc
%define _noautostrip .*%{_datadir}/qemu/.*
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
-Requires: glib2 >= 1:2.48
-Requires: gnutls-libs >= 3.1.18
-%{?with_gtk3:Requires: gtk+3 >= 3.16}
-Requires: nettle >= 2.7.1
+Requires: glib2 >= 1:2.75.3
+Requires: gnutls-libs >= 3.6.14
+%{?with_gtk3:Requires: gtk+3 >= 3.22.0}
+Requires: libblkio >= 1.3.0
+Requires: nettle >= 3.4
%{?with_vte:Requires: vte >= 0.32.0}
+Requires: zstd >= 1.4.0
+Suggests: virtiofsd
Provides: group(qemu)
Provides: user(qemu)
-Obsoletes: qemu-kvm-common
+Obsoletes: qemu-kvm-common < 2
Obsoletes: qemu-module-block-archipelago < 2.9.0
-Obsoletes: qemu-system-lm32
-Obsoletes: qemu-system-moxie
-Obsoletes: qemu-system-unicore32
+Obsoletes: qemu-system-lm32 < 5.2
+Obsoletes: qemu-system-moxie < 6.1
+Obsoletes: qemu-system-unicore32 < 5.2
Conflicts: qemu < 1.0-2
%description common
środowiska QEMU.
%package devel
-Summary: Development files for programs using qemu
-Summary(pl.UTF-8): Pliki programistyczne do programów wykorzystujących qemu
+Summary: Header file for QEMU plugins development
+Summary(pl.UTF-8): Plik nagłówkowy do tworzenia wtyczek QEMU
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
%description devel
-This package contains the header files needed for developing programs
-using the QEMU.
+Header file for QEMU plugins development.
%description devel -l pl.UTF-8
-Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
-wykorzystujących QEMU.
+Plik nagłówkowy do tworzenia wtyczek QEMU.
%package img
Summary: QEMU command line tool for manipulating disk images
Summary(pl.UTF-8): Narzędzie QEMU do operacji na obrazach dysków
Group: Applications/Emulators
-Obsoletes: qemu-kvm-img
+Obsoletes: qemu-kvm-img < 2
Conflicts: qemu < 1.0-2
%description img
Ten pakiet udostępnia działające z linii poleceń narzędzia do operacji
na obrazach dysków.
+%package ivshmem
+Summary: Client and server for QEMU ivshmem device
+Summary(pl.UTF-8): Klient i serwer dla urzÄ\85dzeia ivshmem QEMU
+Group: Development/Tools
+
+%description ivshmem
+This package provides client and server tools for QEMU's ivshmem
+device.
+
+%description ivshmem -l pl.UTF-8
+Ten pakiet udostępnia działające z linii poleceń narzędzia dla
+urządzenia ivshmem QEMU.
+
%package user
Summary: QEMU user mode emulation of qemu targets
Summary(pl.UTF-8): QEMU - emulacja trybu użytkownika środowisk qemu
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
-Obsoletes: qemu-kvm-user
+Obsoletes: qemu-kvm-user < 2
%description user
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-aarch64
+Obsoletes: qemu-kvm-system-aarch64 < 2
%description system-aarch64
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-alpha
+Obsoletes: qemu-kvm-system-alpha < 2
%description system-alpha
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-arm
+Obsoletes: qemu-kvm-system-arm < 2
%description system-arm
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-avr
+Obsoletes: qemu-kvm-system-avr < 2
%description system-avr
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-cris
+Obsoletes: qemu-kvm-system-cris < 2
%description system-cris
QEMU is a generic and open source processor emulator which achieves a
Ten pakiet zawiera emulator systemu z procesorem HP/PA (PA-RISC).
-%package system-loongarch
-Summary: QEMU system emulator for Loongson
-Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Loongson
-Group: Applications/Emulators
-Requires: %{name}-common = %{version}-%{release}
-%systempkg_req
-
-%description system-loongarch
-QEMU is a generic and open source processor emulator which achieves a
-good emulation speed by using dynamic translation.
-
-This package provides the system emulator with Loongson CPU.
-
-%description system-loongarch -l pl.UTF-8
-QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający
-dobrą szybkość emulacji dzięki użyciu translacji dynamicznej.
-
-Ten pakiet zawiera emulator systemu z procesorem Loongson.
-
%package system-m68k
Summary: QEMU system emulator for m68k
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem m68k
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-m68k
+Obsoletes: qemu-kvm-system-m68k < 2
%description system-m68k
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-microblaze
+Obsoletes: qemu-kvm-system-microblaze < 2
%description system-microblaze
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-mips
+Obsoletes: qemu-kvm-system-mips < 2
%description system-mips
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-or1k
-Obsoletes: qemu-system-or32
+Obsoletes: qemu-kvm-system-or1k < 2
+Obsoletes: qemu-system-or32 < 2.9.0
%description system-or1k
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-ppc
+Obsoletes: qemu-kvm-system-ppc < 2
%description system-ppc
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-s390x
+Obsoletes: qemu-kvm-system-s390x < 2
%description system-s390x
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-sh4
+Obsoletes: qemu-kvm-system-sh4 < 2
%description system-sh4
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-sparc
+Obsoletes: qemu-kvm-system-sparc < 2
%description system-sparc
QEMU is a generic and open source processor emulator which achieves a
This package provides the system emulator with TriCore CPU.
-%description system-sparc -l pl.UTF-8
+%description system-tricore -l pl.UTF-8
QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający
dobrą szybkość emulacji dzięki użyciu translacji dynamicznej.
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem x86
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
-%{?with_system_seabios:Requires: seabios}
+%{?with_vfio_user:Requires: libvfio-user = %{version}-%{release}}
+%{?with_system_seabios:Requires: seabios >= 1.11.0}
%systempkg_req
-Obsoletes: kvm
-Obsoletes: qemu-kvm-system-x86
+Obsoletes: kvm < 89
+Obsoletes: qemu-kvm-system-x86 < 2
%description system-x86
QEMU is a generic and open source processor emulator which achieves a
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
%systempkg_req
-Obsoletes: qemu-kvm-system-xtensa
+Obsoletes: qemu-kvm-system-xtensa < 2
%description system-xtensa
QEMU is a generic and open source processor emulator which achieves a
Summary: QEMU guest agent
Summary(pl.UTF-8): Agent gościa QEMU
Group: Daemons
-Requires: glib2 >= 1:2.48
-Obsoletes: qemu-kvm-guest-agent
+Requires: glib2 >= 1:2.75.3
+Requires: liburing >= 0.3
+Obsoletes: qemu-kvm-guest-agent < 2
Conflicts: SysVinit < 2.96-2
%description guest-agent
Ten pakiet nie musi być zainstalowany w systemie hosta.
+%package module-audio-jack
+Summary: QEMU module for JACK audio output
+Summary(pl.UTF-8): Moduł QEMU z wyjściem dźwięku JACK
+Group: Applications/Emulators
+Requires: %{name}-common = %{version}-%{release}
+
+%description module-audio-jack
+QEMU module for JACK audio output.
+
+%description module-audio-jack -l pl.UTF-8
+Moduł QEMU z wyjściem dźwięku JACK.
+
+%package module-audio-pipewire
+Summary: QEMU module for PipeWire audio output
+Summary(pl.UTF-8): Moduł QEMU z wyjściem dźwięku PipeWire
+Group: Applications/Emulators
+Requires: %{name}-common = %{version}-%{release}
+Requires: pipewire-libs >= 0.3.60
+
+%description module-audio-pipewire
+QEMU module for PipeWire audio output.
+
+%description module-audio-pipewire -l pl.UTF-8
+Moduł QEMU z wyjściem dźwięku PipeWire.
+
%package module-block-curl
Summary: QEMU module for 'curl' block devices
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'curl'
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
+Requires: curl-libs >= 7.29.0
%description module-block-curl
QEMU block device support for CURL. It allows to access remote disks
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'rbd'
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
+Requires: ceph-libs >= 12
%description module-block-rbd
QEMU block device support for Ceph/RBD volumes.
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'ssh'
Group: Applications/Emulators
Requires: %{name}-common = %{version}-%{release}
-Requires: libssh >= 0.8
+Requires: libssh >= 0.8.7
%description module-block-ssh
QEMU block device support for accessing remote disks using the Secure
Moduł urządzeń blokowych QEMU do dostępu do zdalnych dysków poprzez
protokół SSH (Secure Shell).
+%package module-ui-dbus
+Summary: QEMU DBus UI driver
+Summary(pl.UTF-8): Sterownik interfejsu użytkownika DBus dla QEMU
+Group: Applications/Emulators
+Requires: %{name}-common = %{version}-%{release}
+
+%description module-ui-dbus
+QEMU DBus UI driver.
+
+%description module-ui-dbus -l pl.UTF-8
+Sterownik interfejsu użytkownika DBus dla QEMU.
+
%package module-ui-gtk
Summary: QEMU GTK UI driver
Summary(pl.UTF-8): Sterownik interfejsu użytkownika GTK dla QEMU
%description -n systemtap-qemu -l pl.UTF-8
Sondy systemtap/dtrace dla QEMU.
+%package -n libvfio-user
+Summary: vfio-user library
+Summary(pl.UTF-8): Biblioteka vfio-user
+Group: Libraries
+Requires: json-c >= 0.11
+
+%description -n libvfio-user
+vfio-user is a framework that allows implementing PCI devices in
+userspace. Clients (such as qemu) talk the vfio-user protocol over a
+UNIX socket to a server. This library, libvfio-user, provides an API
+for implementing such servers.
+
+%description -n libvfio-user -l pl.UTF-8
+vfio-user to szkielet pozwalający implementować urządzenia PCI w
+przestrzeni użytkownika. Klienci (jak qemu) komunikują się z serwerem
+protokołem vfio-user przez gniazdo uniksowe.
+
+%package -n libvfio-user-devel
+Summary: Header files for vfio-user library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki vfio-user
+Group: Development/Libraries
+Requires: libvfio-user = %{version}-%{release}
+
+%description -n libvfio-user-devel
+Header files for vfio-user library.
+
+%description -n libvfio-user-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki vfio-user.
+
%prep
%setup -q
%patch0 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%{__sed} -i '1s,/usr/bin/env python3,%{__python3},' scripts/qemu-trace-stap
%if %{with systemtap}
# don't require stap binary during build
-%{__sed} -i -e "s/has 'stap'/true/" configure
+%{__sed} -i -e "s/stap.found()/true/" meson.build docs/meson.build scripts/meson.build
%endif
+
+%if %{without smartcard}
+%{__sed} -i -e '/^config USB_SMARTCARD/,/^$/ s/default y/default n/' hw/usb/Kconfig
+%endif
+%ifarch x32
+# xen-emu supports only LP64 __x86_64__ case
+%{__sed} -i -e '/^config XEN_EMU/,$ s/default y/default n/' hw/i386/Kconfig
+
+# plain x32 doesn't provide __sync_bool_compare_and_swap_16 - fail int128_t/ATOMIC128 tests earlier
+%{__sed} -i -e '/^has_int128_type = / s/$/FAILME/' meson.build
+%endif
+
%build
build() {
"$@"
%{__make} \
- V=1 \
- %{!?with_smartcard:CONFIG_USB_SMARTCARD=n}
+ V=1
cd ..
}
build dynamic \
--extra-cflags="%{rpmcflags} %{rpmcppflags}" \
--extra-ldflags="%{rpmldflags} -Wl,-z,relro -Wl,-z,now" \
- --audio-drv-list="alsa%{?with_oss:,oss}%{?with_sdl:,sdl}%{?with_pulseaudio:,pa}" \
+ --audio-drv-list="alsa,jack%{?with_oss:,oss}%{?with_pulseaudio:,pa}%{?with_sdl:,sdl}" \
--enable-attr \
%{__enable_disable brlapi} \
+ %{__enable_disable canokey} \
--enable-cap-ng \
+ --enable-capstone \
--enable-curl \
--enable-curses \
--enable-docs \
%{!?with_gtk3:--disable-gtk} \
%{__enable_disable iscsi libiscsi} \
%{__enable_disable libnfs} \
+ %{__enable_disable pipewire} \
%{__enable_disable pmem libpmem} \
--enable-lzo \
%{__enable_disable multipath mpath} \
%{__enable_disable rdma} \
%{__enable_disable sdl} \
%{__enable_disable seccomp} \
- --enable-slirp=system \
+ --enable-slirp \
%{__enable_disable spice} \
%{__enable_disable smartcard} \
%{__enable_disable snappy} \
--enable-tpm \
%{__enable_disable usbredir usb-redir} \
--enable-vde \
+ %{?with_vfio_user:--enable-vfio-user-server} \
%{__enable_disable virgl virglrenderer} \
--enable-virtfs \
--enable-vnc-jpeg \
%if %{with user_static}
build static \
--disable-brlapi \
+ --disable-canokey \
--disable-cap-ng \
--disable-capstone \
--disable-curl \
%if %{with user_static}
%{__make} -C build-static install \
- %{!?with_smartcard:CONFIG_USB_SMARTCARD=n} \
DESTDIR=$RPM_BUILD_ROOT
# Give all QEMU user emulators a -static suffix
%endif
%{__make} -C build-dynamic install \
- %{!?with_smartcard:CONFIG_USB_SMARTCARD=n} \
DESTDIR=$RPM_BUILD_ROOT
# let rpm generate dependencies
install -p %{SOURCE9} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned
install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf
-# For the qemu-guest-agent subpackage install the udev rules.
install -p %{SOURCE12} $RPM_BUILD_ROOT/lib/udev/rules.d
install -p %{SOURCE13} $RPM_BUILD_ROOT/etc/rc.d/init.d/qemu-ga
%if %{with system_seabios}
ln -sf /usr/share/seabios/bios.bin $RPM_BUILD_ROOT%{_datadir}/%{name}/bios-256k.bin
# bios.bin provided by qemu is stripped to 128k, with no Xen support, keep it
-for f in $RPM_BUILD_ROOT%{_datadir}/%{name}/*.aml ; do
- bn="$(basename $f)"
- if [ -e "/usr/share/seabios/$bn" ] ; then
- ln -sf "/usr/share/seabios/$bn" "$f"
- fi
-done
%endif
%if %{with gtk3}
: > qemu.lang
%endif
+for t in client server; do
+ cp -p build-dynamic/contrib/ivshmem-$t/ivshmem-$t $RPM_BUILD_ROOT%{_bindir}
+done
+
+# test modules
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/accel-qtest-*.so
# Windows installer icon, not used
%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/qemu-nsis.bmp
# packaged as %doc
%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/edk2-licenses.txt
+# cleanup Sphinx files
+%{__rm} $RPM_BUILD_ROOT%{_docdir}/qemu/{.buildinfo,objects.inv}
+
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --del qemu-ga
fi
+%post -n libvfio-user -p /sbin/ldconfig
+%postun -n libvfio-user -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/vhost-user-gpu
%endif
%attr(755,root,root) %{_libexecdir}/virtfs-proxy-helper
-%attr(755,root,root) %{_libexecdir}/virtiofsd
%dir %{_libdir}/%{name}
# modules without too many external dependencies
+%attr(755,root,root) %{_libdir}/%{name}/block-blkio.so
%attr(755,root,root) %{_libdir}/%{name}/block-dmg-bz2.so
%attr(755,root,root) %{_libdir}/%{name}/block-dmg-lzfse.so
+%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-i386.so
+%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-x86_64.so
%attr(755,root,root) %{_libdir}/%{name}/audio-alsa.so
-%attr(755,root,root) %{_libdir}/%{name}/audio-dbus.so
-%attr(755,root,root) %{_libdir}/%{name}/audio-jack.so
%if %{with oss}
%attr(755,root,root) %{_libdir}/%{name}/audio-oss.so
%endif
%if %{with pulseaudio}
%attr(755,root,root) %{_libdir}/%{name}/audio-pa.so
%endif
-%if %{with spice}
-%attr(755,root,root) %{_libdir}/%{name}/audio-spice.so
-%attr(755,root,root) %{_libdir}/%{name}/chardev-spice.so
-%attr(755,root,root) %{_libdir}/%{name}/hw-display-qxl.so
+%if %{with brlapi}
+%attr(755,root,root) %{_libdir}/%{name}/chardev-baum.so
%endif
+%attr(755,root,root) %{_libdir}/%{name}/hw-display-qxl.so
%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu.so
-%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-gl.so
+%{?with_virgl:%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-gl.so}
%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci.so
-%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci-gl.so
+%{?with_virgl:%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci-gl.so}
%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-vga.so
%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-vga-gl.so
%attr(755,root,root) %{_libdir}/%{name}/hw-s390x-virtio-gpu-ccw.so
%attr(755,root,root) %{_libdir}/%{name}/hw-usb-host.so
+%attr(755,root,root) %{_libdir}/%{name}/ui-curses.so
+%if %{with usbredir}
%attr(755,root,root) %{_libdir}/%{name}/hw-usb-redirect.so
+%endif
+%if %{with smartcard}
%attr(755,root,root) %{_libdir}/%{name}/hw-usb-smartcard.so
-%attr(755,root,root) %{_libdir}/%{name}/ui-curses.so
-%attr(755,root,root) %{_libdir}/%{name}/ui-dbus.so
-%attr(755,root,root) %{_libdir}/%{name}/ui-egl-headless.so
+%endif
%if %{with opengl}
+%attr(755,root,root) %{_libdir}/%{name}/ui-egl-headless.so
%attr(755,root,root) %{_libdir}/%{name}/ui-opengl.so
%endif
%if %{with spice}
+%attr(755,root,root) %{_libdir}/%{name}/audio-spice.so
+%attr(755,root,root) %{_libdir}/%{name}/chardev-spice.so
%attr(755,root,root) %{_libdir}/%{name}/ui-spice-app.so
%attr(755,root,root) %{_libdir}/%{name}/ui-spice-core.so
%endif
%dir %{_datadir}/%{name}/firmware
%{_datadir}/%{name}/keymaps
%{_datadir}/%{name}/trace-events-all
-%dir %{_datadir}/%{name}/vhost-user
%if %{with virgl}
+%dir %{_datadir}/%{name}/vhost-user
%{_datadir}/%{name}/vhost-user/50-qemu-gpu.json
%endif
-%{_datadir}/%{name}/vhost-user/50-qemu-virtiofsd.json
%{_desktopdir}/qemu.desktop
%{_iconsdir}/hicolor/*x*/apps/qemu.png
%{_iconsdir}/hicolor/32x32/apps/qemu.bmp
%{_mandir}/man1/qemu.1*
%{_mandir}/man1/qemu-storage-daemon.1*
%{_mandir}/man1/virtfs-proxy-helper.1*
-%{_mandir}/man1/virtiofsd.1*
%{_mandir}/man7/qemu-block-drivers.7*
%{_mandir}/man7/qemu-cpu-models.7*
%{_mandir}/man7/qemu-qmp-ref.7*
%attr(755,root,root) %{_bindir}/qemu-img
%{_mandir}/man1/qemu-img.1*
+%files ivshmem
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/ivshmem-client
+%attr(755,root,root) %{_bindir}/ivshmem-server
+
%files user
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-aarch64
%attr(755,root,root) %{_bindir}/qemu-x86_64-static
%attr(755,root,root) %{_bindir}/qemu-xtensa-static
%attr(755,root,root) %{_bindir}/qemu-xtensaeb-static
-%if %{with systemtap}
-%attr(755,root,root) %{_bindir}/qemu-trace-stap-static
-%endif
+%{?with_systemtap:%attr(755,root,root) %{_bindir}/qemu-trace-stap-static}
%endif
%files system-aarch64
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-aarch64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-aarch64.so
%{_datadir}/%{name}/edk2-aarch64-code.fd
%{_datadir}/%{name}/firmware/60-edk2-aarch64.json
%files system-alpha
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-alpha
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-alpha.so
%{_datadir}/%{name}/palcode-clipper
%files system-arm
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-arm
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-arm.so
%{_datadir}/%{name}/edk2-arm-code.fd
%{_datadir}/%{name}/edk2-arm-vars.fd
%{_datadir}/%{name}/firmware/60-edk2-arm.json
%files system-avr
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-avr
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-avr.so
+
%files system-cris
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-cris
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-cris.so
%files system-hppa
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-hppa
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-hppa.so
%{_datadir}/%{name}/hppa-firmware.img
-%files system-loongarch
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/qemu-system-loongarch64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-loongarch64.so
-
%files system-m68k
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-m68k
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-m68k.so
%files system-microblaze
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-microblaze
%attr(755,root,root) %{_bindir}/qemu-system-microblazeel
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-microblaze.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-microblazeel.so
%files system-mips
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qemu-system-loongarch64
%attr(755,root,root) %{_bindir}/qemu-system-mips
%attr(755,root,root) %{_bindir}/qemu-system-mipsel
%attr(755,root,root) %{_bindir}/qemu-system-mips64
%attr(755,root,root) %{_bindir}/qemu-system-mips64el
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-mips.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-mips64.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-mips64el.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-mipsel.so
%files system-nios2
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-nios2
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-nios2.so
%files system-or1k
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-or1k
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-or1k.so
%files system-ppc
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-ppc
%attr(755,root,root) %{_bindir}/qemu-system-ppc64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-ppc.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-ppc64.so
%{_datadir}/%{name}/bamboo.dtb
%{_datadir}/%{name}/canyonlands.dtb
%{_datadir}/%{name}/openbios-ppc
%{_datadir}/%{name}/slof.bin
%{_datadir}/%{name}/u-boot.e500
%{_datadir}/%{name}/u-boot-sam460-20100605.bin
+%{_datadir}/%{name}/vof.bin
+%{_datadir}/%{name}/vof-nvram.bin
%files system-riscv32
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-riscv32
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-riscv32.so
%{_datadir}/%{name}/opensbi-riscv32-generic-fw_dynamic.bin
%files system-riscv64
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-riscv64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-riscv64.so
%{_datadir}/%{name}/opensbi-riscv64-generic-fw_dynamic.bin
%files system-rx
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-rx
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-rx.so
%files system-s390x
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-s390x
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-s390x.so
%{_datadir}/%{name}/s390-ccw.img
%{_datadir}/%{name}/s390-netboot.img
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-sh4
%attr(755,root,root) %{_bindir}/qemu-system-sh4eb
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-sh4.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-sh4eb.so
%files system-sparc
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-sparc
%attr(755,root,root) %{_bindir}/qemu-system-sparc64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-sparc.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-sparc64.so
%{_datadir}/%{name}/QEMU,cgthree.bin
%{_datadir}/%{name}/QEMU,tcx.bin
%{_datadir}/%{name}/openbios-sparc32
%files system-tricore
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-tricore
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-tricore.so
%files system-x86
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-i386
%attr(755,root,root) %{_bindir}/qemu-system-x86_64
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-i386.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-x86_64.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-i386.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-x86_64.so
%ifarch %{ix86} %{x8664} x32
%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/kvm.conf
/lib/udev/rules.d/80-kvm.rules
%{_datadir}/%{name}/pxe-rtl8139.rom
%{_datadir}/%{name}/pxe-virtio.rom
%{_datadir}/%{name}/qboot.rom
-%{_datadir}/%{name}/sgabios.bin
%{_datadir}/%{name}/vgabios.bin
%{_datadir}/%{name}/vgabios-ati.bin
%{_datadir}/%{name}/vgabios-bochs-display.bin
%{_datadir}/%{name}/vgabios-stdvga.bin
%{_datadir}/%{name}/vgabios-virtio.bin
%{_datadir}/%{name}/vgabios-vmware.bin
-%{_datadir}/%{name}/vof.bin
-%{_datadir}/%{name}/vof-nvram.bin
%{_datadir}/%{name}/firmware/50-edk2-i386-secure.json
%{_datadir}/%{name}/firmware/50-edk2-x86_64-secure.json
%{_datadir}/%{name}/firmware/60-edk2-i386.json
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-xtensa
%attr(755,root,root) %{_bindir}/qemu-system-xtensaeb
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-xtensa.so
-%attr(755,root,root) %{_libdir}/%{name}/accel-qtest-xtensaeb.so
%files guest-agent
%defattr(644,root,root,755)
%{_mandir}/man7/qemu-ga-ref.7*
%{_mandir}/man8/qemu-ga.8*
+%files module-audio-jack
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audio-jack.so
+
+%if %{with pipewire}
+%files module-audio-pipewire
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audio-pipewire.so
+%endif
+
%files module-block-curl
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/%{name}/block-curl.so
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/%{name}/block-ssh.so
+%files module-ui-dbus
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audio-dbus.so
+%attr(755,root,root) %{_libdir}/%{name}/ui-dbus.so
+
%if %{with gtk3}
%files module-ui-gtk
%defattr(644,root,root,755)
%{_datadir}/systemtap/tapset/qemu-*.stp
%{_mandir}/man1/qemu-trace-stap.1*
%endif
+
+%if %{with vfio_user}
+%files -n libvfio-user
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvfio-user.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libvfio-user.so.0
+
+%files -n libvfio-user-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvfio-user.so
+%{_includedir}/vfio-user
+%endif