X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;ds=sidebyside;f=qemu.spec;h=9ba92b7f5ba36ca327184777d7671865c8fed6dc;hb=HEAD;hp=26203dba5ae969e3f4942c475336973f9becec0e;hpb=3d49db8a0d710f24eaf8fdb628ab0e989130d4a1;p=packages%2Fqemu.git diff --git a/qemu.spec b/qemu.spec index 26203db..06eb502 100644 --- a/qemu.spec +++ b/qemu.spec @@ -4,7 +4,8 @@ # 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 @@ -18,18 +19,20 @@ %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 @@ -43,12 +46,12 @@ Summary: QEMU CPU Emulator Summary(pl.UTF-8): QEMU - emulator procesora Name: qemu -Version: 6.2.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: a077669ce58b6ee07ec355e54aad25be +# Source0-md5: aa5c2f004d513b746f25a00cfec8eaa5 # Loads kvm kernel modules at boot Source3: kvm-modules-load.conf # Creates /dev/kvm @@ -62,10 +65,12 @@ Source12: 99-%{name}-guest-agent.rules Source13: %{name}-guest-agent.init Source14: %{name}-guest-agent.logrotate Patch0: %{name}-cflags.patch -Patch2: %{name}-user-execve.patch -Patch3: %{name}-xattr.patch -Patch4: libjpeg-boolean.patch -Patch5: x32.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} @@ -73,66 +78,88 @@ URL: https://www.qemu.org/ %{?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} @@ -143,17 +170,22 @@ BuildRequires: which %{?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} @@ -179,27 +211,31 @@ Requires: %{name}-system-tricore = %{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: 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/.* @@ -246,18 +282,21 @@ Requires(pre): /bin/id 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 @@ -274,24 +313,22 @@ Ten pakiet udostępnia wspólne pliki wymagane przez wszystkie ś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 @@ -302,12 +339,25 @@ images. 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ądzeia 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 @@ -346,7 +396,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem AArch64 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 @@ -366,7 +416,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Alpha 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 @@ -386,7 +436,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z 32-bitowym procesorem ARM 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 @@ -406,7 +456,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem AVR 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 @@ -426,7 +476,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem CRIS 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 @@ -465,7 +515,7 @@ 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 @@ -487,7 +537,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem MicroBlaze 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 @@ -507,7 +557,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem MIPS 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 @@ -546,8 +596,8 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem OpenRISC 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 @@ -567,7 +617,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem PowerPC 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 @@ -644,7 +694,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem S390x (IBM Z) 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 @@ -664,7 +714,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem SH4 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 @@ -684,7 +734,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem SPARC 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 @@ -711,7 +761,7 @@ good emulation speed by using dynamic translation. 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. @@ -722,10 +772,11 @@ Summary: QEMU system emulator for x86 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 @@ -745,7 +796,7 @@ Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Xtensa 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 @@ -763,8 +814,9 @@ Ten pakiet zawiera emulator systemu z procesorem Xtensa. 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 @@ -787,11 +839,37 @@ systemach-gościach, komunikującego się kanałem virtio-serial o nazwie 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 @@ -849,6 +927,7 @@ Summary: QEMU module for 'rbd' block devices 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. @@ -861,7 +940,7 @@ Summary: QEMU module for 'ssh' block devices 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 @@ -871,6 +950,18 @@ Shell (SSH) protocol. 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 @@ -908,20 +999,63 @@ systemtap/dtrace probes for 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() { @@ -947,8 +1081,7 @@ build() { "$@" %{__make} \ - V=1 \ - %{!?with_smartcard:CONFIG_USB_SMARTCARD=n} + V=1 cd .. } @@ -956,11 +1089,12 @@ build() { 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=system \ + --enable-capstone \ --enable-curl \ --enable-curses \ --enable-docs \ @@ -969,6 +1103,7 @@ build dynamic \ %{!?with_gtk3:--disable-gtk} \ %{__enable_disable iscsi libiscsi} \ %{__enable_disable libnfs} \ + %{__enable_disable pipewire} \ %{__enable_disable pmem libpmem} \ --enable-lzo \ %{__enable_disable multipath mpath} \ @@ -979,17 +1114,17 @@ build dynamic \ %{__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 \ - --enable-vnc-png \ --enable-vnc-sasl \ %{!?with_vte:--disable-vte} \ %{__enable_disable xen} \ @@ -998,6 +1133,7 @@ build dynamic \ %if %{with user_static} build static \ --disable-brlapi \ + --disable-canokey \ --disable-cap-ng \ --disable-capstone \ --disable-curl \ @@ -1033,7 +1169,6 @@ install -d \ %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 @@ -1044,7 +1179,6 @@ done %endif %{__make} -C build-dynamic install \ - %{!?with_smartcard:CONFIG_USB_SMARTCARD=n} \ DESTDIR=$RPM_BUILD_ROOT # let rpm generate dependencies @@ -1071,7 +1205,6 @@ install -p ksmctl $RPM_BUILD_ROOT%{_sbindir} 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 @@ -1080,12 +1213,6 @@ install -p %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.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} @@ -1096,11 +1223,20 @@ done : > 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 @@ -1126,6 +1262,9 @@ if [ "$1" = "0" ]; then /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) @@ -1153,40 +1292,46 @@ fi %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-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-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 @@ -1194,11 +1339,10 @@ fi %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 @@ -1206,7 +1350,6 @@ fi %{_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* @@ -1224,6 +1367,11 @@ fi %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 @@ -1236,6 +1384,7 @@ fi %attr(755,root,root) %{_bindir}/qemu-hppa %attr(755,root,root) %{_bindir}/qemu-i386 %attr(755,root,root) %{_bindir}/qemu-io +%attr(755,root,root) %{_bindir}/qemu-loongarch64 %attr(755,root,root) %{_bindir}/qemu-m68k %attr(755,root,root) %{_bindir}/qemu-microblaze %attr(755,root,root) %{_bindir}/qemu-microblazeel @@ -1274,6 +1423,7 @@ fi %attr(755,root,root) %{_bindir}/qemu-hexagon-static %attr(755,root,root) %{_bindir}/qemu-hppa-static %attr(755,root,root) %{_bindir}/qemu-i386-static +%attr(755,root,root) %{_bindir}/qemu-loongarch64-static %attr(755,root,root) %{_bindir}/qemu-m68k-static %attr(755,root,root) %{_bindir}/qemu-microblaze-static %attr(755,root,root) %{_bindir}/qemu-microblazeel-static @@ -1299,28 +1449,23 @@ fi %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 @@ -1329,57 +1474,45 @@ fi %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-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 @@ -1390,30 +1523,26 @@ fi %{_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 -%{_datadir}/%{name}/opensbi-riscv32-generic-fw_dynamic.elf %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 -%{_datadir}/%{name}/opensbi-riscv64-generic-fw_dynamic.elf %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 @@ -1421,15 +1550,11 @@ fi %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 @@ -1438,16 +1563,11 @@ fi %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 @@ -1481,7 +1601,6 @@ fi %{_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 @@ -1500,8 +1619,6 @@ fi %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) @@ -1512,6 +1629,16 @@ fi %{_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 @@ -1544,6 +1671,11 @@ fi %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) @@ -1564,3 +1696,15 @@ fi %{_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